[
  {
    "path": ".devcontainer/devcontainer.json",
    "content": "// For format details, see https://aka.ms/devcontainer.json. For config options, see the\n// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node\n{\n\t\"name\": \"StableStudio dev\",\n\t\"image\": \"mcr.microsoft.com/devcontainers/typescript-node:0-18\",\n\t// avoid git \"dubious ownership\" errors, which break yarn \n\t\"postStartCommand\": \"git config --global --add safe.directory ${containerWorkspaceFolder} && yarn install\",\t\t\n\t\"customizations\": {\n\t\t\"vscode\": {\n\t\t\t\"settings\": {},\n\t\t\t\"extensions\": [\n\t\t\t\t\"vscode.typescript-language-features\"\n\t\t\t]\n\t\t}\n\t},\n\t\"features\": {\n\t\t\"ghcr.io/devcontainers/features/github-cli:1\": {\n\t\t\t\n\t\t}\n\t},\n\t\"portsAttributes\": {\n\t\t\"3000\": {\n\t\t\t\"label\": \"Application\",\n\t\t\t\"onAutoForward\": \"openBrowserOnce\"\n\t\t}\n\t}\n}\n"
  },
  {
    "path": ".devcontainer/gpu-webui/devcontainer.json",
    "content": "// For format details, see https://aka.ms/devcontainer.json. For config options, see the\n// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node\n{\n\t\"name\": \"StableStudio+WebUI GPU dev\",\n\t\"image\": \"mcr.microsoft.com/devcontainers/typescript-node:0-18\",\t\n\t\"postCreateCommand\": \"cd /home/node && git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git webui && cd webui && python -m venv ~/.webui-venv && bash -c 'source ~/.webui-venv/bin/activate' && pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118 && pip install -r requirements_versions.txt\",\n\t// avoid git \"dubious ownership\" errors, which break yarn \n\t\"postStartCommand\": \"git config --global --add safe.directory ${containerWorkspaceFolder} && yarn\",\t\n\t\"postAttachCommand\": \"echo 'To start the backend, run: cd ~/webui; ./webui.sh'\",\n\t\"customizations\": {\n\t\t\"vscode\": {\n\t\t\t\"settings\": {\n\t\t\t\t\"python.defaultInterpreterPath\": \"/home/node/.webui-venv/stability-generator/bin/python\"\n\t\t\t},\n\t\t\t\"extensions\": [\n\t\t\t\t\"vscode.typescript-language-features\"\n\t\t\t]\n\t\t}\n\t},\n\t\"features\": {\n\t\t\"ghcr.io/devcontainers/features/nvidia-cuda:1\": {\n\t\t\t\"cudaVersion\": \"11.8\",\n\t\t\t\"installCudnn\": true,\n\t\t\t\"installNvtx\": true\n\t\t},\n\t\t\"ghcr.io/devcontainers/features/python:1\": {\n\t\t\t\"version\": \"3.10.6\"\n\t\t},\n\t\t\"ghcr.io/devcontainers-contrib/features/apt-get-packages:1\": {\n\t\t\t\"packages\": \"libgl1-mesa-glx\"\n\t\t},\n\t\t\"ghcr.io/devcontainers/features/github-cli:1\": {\n\t\t\t\n\t\t}\n\t},\n\t\"remoteEnv\": {\n\t\t\"COMMANDLINE_ARGS\": \"--nowebui --cors-allow-origins=http://localhost:3000\",\n\t\t\"venv_dir\": \"/home/node/.webui-venv\"\n\t},\n\t\"runArgs\": [\"--gpus\", \"all\"],\n\t\"portsAttributes\": {\n\t\t\"3000\": {\n\t\t\t\"label\": \"Application\",\n\t\t\t\"onAutoForward\": \"openBrowserOnce\"\n\t\t},\n\t\t\"7861\": {\n\t\t\t\"label\": \"Backend\",\n\t\t\t\"onAutoForward\": \"ignore\"\n\t\t}\n\t}\t\n}\n"
  },
  {
    "path": ".eslintrc.json",
    "content": "{\n  \"root\": true,\n\n  \"parser\": \"@typescript-eslint/parser\",\n  \"parserOptions\": {\n    \"ecmaVersion\": 2018,\n    \"ecmaFeatures\": { \"jsx\": true },\n    \"sourceType\": \"module\",\n    \"project\": \"./tsconfig.json\",\n    \"extraFileExtensions\": [\".md\"]\n  },\n\n  \"extends\": [\n    \"plugin:@typescript-eslint/recommended\",\n    \"plugin:react/recommended\",\n    \"plugin:react-hooks/recommended\",\n    \"plugin:prettier/recommended\",\n    \"plugin:markdown/recommended\"\n  ],\n\n  \"plugins\": [\"react\", \"react-hooks\", \"import\"],\n  \"settings\": { \"react\": { \"version\": \"detect\" } },\n\n  \"rules\": {\n    \"prettier/prettier\": [\"error\", {}, { \"usePrettierrc\": true }],\n\n    \"react/react-in-jsx-scope\": \"off\",\n    \"react/jsx-no-undef\": \"off\",\n    \"react/prop-types\": \"off\",\n    \"react-hooks/rules-of-hooks\": \"off\",\n    \"react/no-unknown-property\": [\"error\", { \"ignore\": [\"css\"] }],\n    \"react/display-name\": \"off\",\n\n    \"@typescript-eslint/no-namespace\": \"off\",\n    \"@typescript-eslint/no-unused-vars\": [\n      \"error\",\n      { \"varsIgnorePattern\": \"^_\", \"argsIgnorePattern\": \"^_\" }\n    ],\n\n    \"no-unused-vars\": [\n      \"error\",\n      { \"varsIgnorePattern\": \"^_\", \"argsIgnorePattern\": \"^_\" }\n    ],\n\n    \"import/order\": [\n      \"error\",\n      {\n        \"newlines-between\": \"always-and-inside-groups\",\n        \"alphabetize\": { \"order\": \"asc\", \"caseInsensitive\": true },\n\n        \"groups\": [\"builtin\", \"external\", \"parent\", \"index\", \"sibling\"],\n        \"pathGroups\": [\n          { \"pattern\": \"~/**\", \"group\": \"external\" },\n          { \"pattern\": \".\", \"group\": \"sibling\" }\n        ]\n      }\n    ],\n\n    \"sort-imports\": [\n      \"error\",\n      {\n        \"ignoreCase\": true,\n        \"ignoreDeclarationSort\": true\n      }\n    ]\n  }\n}\n"
  },
  {
    "path": ".gitattributes",
    "content": "* text=auto eol=lf\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n**Describe the bug**\nA clear and concise description of what the bug is.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Go to '...'\n2. Click on '....'\n3. Scroll down to '....'\n4. See error\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Screenshots**\nIf applicable, add screenshots to help explain your problem.\n\n**Desktop (please complete the following information):**\n - OS: [e.g. iOS]\n - Browser [e.g. chrome, safari]\n - Version [e.g. 22]\n\n**Smartphone (please complete the following information):**\n - Device: [e.g. iPhone6]\n - OS: [e.g. iOS8.1]\n - Browser [e.g. stock browser, safari]\n - Version [e.g. 22]\n\n**Additional context**\nAdd any other context about the problem here.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: new feature\nassignees: ''\n\n---\n\n**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\n.idea\n*.iml\n\nnode_modules\n\n.pnp.*\n.yarn/*\n!.yarn/patches\n!.yarn/plugins\n!.yarn/releases\n!.yarn/sdks\n!.yarn/versions\n"
  },
  {
    "path": ".husky/common.sh",
    "content": "command_exists () {\n  command -v \"$1\" >/dev/null 2>&1\n}\n\n# Windows 10, Git Bash and Yarn workaround\nif command_exists winpty && test -t 1; then\n  exec < /dev/tty\nfi"
  },
  {
    "path": ".husky/pre-push",
    "content": "#!/usr/bin/env sh\n. \"$(dirname -- \"$0\")/_/husky.sh\"\n. \"$(dirname \"$0\")/common.sh\"\n\n# Ensure the entire project still compiles\nblue=$(tput setaf 4)\nnormal=$(tput sgr0)\nprintf \"%b\" \"${blue}Type checking... ${normal}\"\nyarn stablestudio-ui build:types\n\n# Run the lint-staged job in the root package.json\nyarn lint-staged\n"
  },
  {
    "path": ".prettierrc",
    "content": "{\n  \"endOfLine\": \"auto\"\n}\n"
  },
  {
    "path": ".vscode/launch.json",
    "content": "{\n  // Use IntelliSense to learn about possible attributes.\n  // Hover to view descriptions of existing attributes.\n  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"name\": \"Launch UI in Chrome\",\n      \"type\": \"chrome\",\n      \"request\": \"launch\",\n      \"url\": \"http://localhost:3000\",\n      \"webRoot\": \"${workspaceFolder}\"\n    },\n    {\n      \"name\": \"Launch UI in Edge\",\n      \"type\": \"msedge\",\n      \"request\": \"launch\",\n      \"url\": \"http://localhost:3000\",\n      \"webRoot\": \"${workspaceFolder}\"\n    },\n    {\n        \"name\": \"Attach to Chrome\",\n        \"port\": 9222,\n        \"request\": \"attach\",\n        \"type\": \"pwa-chrome\",\n        \"urlFilter\": \"http://localhost:3000/*\",\n        \"webRoot\": \"${workspaceFolder}\"\n    }\n  ]\n}\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n  \"typescript.tsdk\": \"node_modules/typescript/lib\",\n  \"typescript.enablePromptUseWorkspaceTsdk\": true\n}\n"
  },
  {
    "path": ".yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs",
    "content": "/* eslint-disable */\n//prettier-ignore\nmodule.exports = {\nname: \"@yarnpkg/plugin-workspace-tools\",\nfactory: function (require) {\nvar plugin=(()=>{var _r=Object.create;var we=Object.defineProperty;var Er=Object.getOwnPropertyDescriptor;var br=Object.getOwnPropertyNames;var xr=Object.getPrototypeOf,Cr=Object.prototype.hasOwnProperty;var W=(e=>typeof require<\"u\"?require:typeof Proxy<\"u\"?new Proxy(e,{get:(r,t)=>(typeof require<\"u\"?require:r)[t]}):e)(function(e){if(typeof require<\"u\")return require.apply(this,arguments);throw new Error('Dynamic require of \"'+e+'\" is not supported')});var q=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),wr=(e,r)=>{for(var t in r)we(e,t,{get:r[t],enumerable:!0})},Je=(e,r,t,n)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let s of br(r))!Cr.call(e,s)&&s!==t&&we(e,s,{get:()=>r[s],enumerable:!(n=Er(r,s))||n.enumerable});return e};var Be=(e,r,t)=>(t=e!=null?_r(xr(e)):{},Je(r||!e||!e.__esModule?we(t,\"default\",{value:e,enumerable:!0}):t,e)),Sr=e=>Je(we({},\"__esModule\",{value:!0}),e);var ve=q(ee=>{\"use strict\";ee.isInteger=e=>typeof e==\"number\"?Number.isInteger(e):typeof e==\"string\"&&e.trim()!==\"\"?Number.isInteger(Number(e)):!1;ee.find=(e,r)=>e.nodes.find(t=>t.type===r);ee.exceedsLimit=(e,r,t=1,n)=>n===!1||!ee.isInteger(e)||!ee.isInteger(r)?!1:(Number(r)-Number(e))/Number(t)>=n;ee.escapeNode=(e,r=0,t)=>{let n=e.nodes[r];!n||(t&&n.type===t||n.type===\"open\"||n.type===\"close\")&&n.escaped!==!0&&(n.value=\"\\\\\"+n.value,n.escaped=!0)};ee.encloseBrace=e=>e.type!==\"brace\"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;ee.isInvalidBrace=e=>e.type!==\"brace\"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0===0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;ee.isOpenOrClose=e=>e.type===\"open\"||e.type===\"close\"?!0:e.open===!0||e.close===!0;ee.reduce=e=>e.reduce((r,t)=>(t.type===\"text\"&&r.push(t.value),t.type===\"range\"&&(t.type=\"text\"),r),[]);ee.flatten=(...e)=>{let r=[],t=n=>{for(let s=0;s<n.length;s++){let i=n[s];Array.isArray(i)?t(i,r):i!==void 0&&r.push(i)}return r};return t(e),r}});var He=q((Vn,rt)=>{\"use strict\";var tt=ve();rt.exports=(e,r={})=>{let t=(n,s={})=>{let i=r.escapeInvalid&&tt.isInvalidBrace(s),a=n.invalid===!0&&r.escapeInvalid===!0,c=\"\";if(n.value)return(i||a)&&tt.isOpenOrClose(n)?\"\\\\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let p of n.nodes)c+=t(p);return c};return t(e)}});var st=q((Jn,nt)=>{\"use strict\";nt.exports=function(e){return typeof e==\"number\"?e-e===0:typeof e==\"string\"&&e.trim()!==\"\"?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var ht=q((es,pt)=>{\"use strict\";var at=st(),le=(e,r,t)=>{if(at(e)===!1)throw new TypeError(\"toRegexRange: expected the first argument to be a number\");if(r===void 0||e===r)return String(e);if(at(r)===!1)throw new TypeError(\"toRegexRange: expected the second argument to be a number.\");let n={relaxZeros:!0,...t};typeof n.strictZeros==\"boolean\"&&(n.relaxZeros=n.strictZeros===!1);let s=String(n.relaxZeros),i=String(n.shorthand),a=String(n.capture),c=String(n.wrap),p=e+\":\"+r+\"=\"+s+i+a+c;if(le.cache.hasOwnProperty(p))return le.cache[p].result;let m=Math.min(e,r),h=Math.max(e,r);if(Math.abs(m-h)===1){let y=e+\"|\"+r;return n.capture?`(${y})`:n.wrap===!1?y:`(?:${y})`}let R=ft(e)||ft(r),f={min:e,max:r,a:m,b:h},$=[],_=[];if(R&&(f.isPadded=R,f.maxLen=String(f.max).length),m<0){let y=h<0?Math.abs(h):1;_=it(y,Math.abs(m),f,n),m=f.a=0}return h>=0&&($=it(m,h,f,n)),f.negatives=_,f.positives=$,f.result=vr(_,$,n),n.capture===!0?f.result=`(${f.result})`:n.wrap!==!1&&$.length+_.length>1&&(f.result=`(?:${f.result})`),le.cache[p]=f,f.result};function vr(e,r,t){let n=Me(e,r,\"-\",!1,t)||[],s=Me(r,e,\"\",!1,t)||[],i=Me(e,r,\"-?\",!0,t)||[];return n.concat(i).concat(s).join(\"|\")}function Hr(e,r){let t=1,n=1,s=ut(e,t),i=new Set([r]);for(;e<=s&&s<=r;)i.add(s),t+=1,s=ut(e,t);for(s=ct(r+1,n)-1;e<s&&s<=r;)i.add(s),n+=1,s=ct(r+1,n)-1;return i=[...i],i.sort(kr),i}function $r(e,r,t){if(e===r)return{pattern:e,count:[],digits:0};let n=Tr(e,r),s=n.length,i=\"\",a=0;for(let c=0;c<s;c++){let[p,m]=n[c];p===m?i+=p:p!==\"0\"||m!==\"9\"?i+=Lr(p,m,t):a++}return a&&(i+=t.shorthand===!0?\"\\\\d\":\"[0-9]\"),{pattern:i,count:[a],digits:s}}function it(e,r,t,n){let s=Hr(e,r),i=[],a=e,c;for(let p=0;p<s.length;p++){let m=s[p],h=$r(String(a),String(m),n),R=\"\";if(!t.isPadded&&c&&c.pattern===h.pattern){c.count.length>1&&c.count.pop(),c.count.push(h.count[0]),c.string=c.pattern+lt(c.count),a=m+1;continue}t.isPadded&&(R=Or(m,t,n)),h.string=R+h.pattern+lt(h.count),i.push(h),a=m+1,c=h}return i}function Me(e,r,t,n,s){let i=[];for(let a of e){let{string:c}=a;!n&&!ot(r,\"string\",c)&&i.push(t+c),n&&ot(r,\"string\",c)&&i.push(t+c)}return i}function Tr(e,r){let t=[];for(let n=0;n<e.length;n++)t.push([e[n],r[n]]);return t}function kr(e,r){return e>r?1:r>e?-1:0}function ot(e,r,t){return e.some(n=>n[r]===t)}function ut(e,r){return Number(String(e).slice(0,-r)+\"9\".repeat(r))}function ct(e,r){return e-e%Math.pow(10,r)}function lt(e){let[r=0,t=\"\"]=e;return t||r>1?`{${r+(t?\",\"+t:\"\")}}`:\"\"}function Lr(e,r,t){return`[${e}${r-e===1?\"\":\"-\"}${r}]`}function ft(e){return/^-?(0+)\\d/.test(e)}function Or(e,r,t){if(!r.isPadded)return e;let n=Math.abs(r.maxLen-String(e).length),s=t.relaxZeros!==!1;switch(n){case 0:return\"\";case 1:return s?\"0?\":\"0\";case 2:return s?\"0{0,2}\":\"00\";default:return s?`0{0,${n}}`:`0{${n}}`}}le.cache={};le.clearCache=()=>le.cache={};pt.exports=le});var Ue=q((ts,Et)=>{\"use strict\";var Nr=W(\"util\"),At=ht(),dt=e=>e!==null&&typeof e==\"object\"&&!Array.isArray(e),Ir=e=>r=>e===!0?Number(r):String(r),Pe=e=>typeof e==\"number\"||typeof e==\"string\"&&e!==\"\",Ae=e=>Number.isInteger(+e),De=e=>{let r=`${e}`,t=-1;if(r[0]===\"-\"&&(r=r.slice(1)),r===\"0\")return!1;for(;r[++t]===\"0\";);return t>0},Br=(e,r,t)=>typeof e==\"string\"||typeof r==\"string\"?!0:t.stringify===!0,Mr=(e,r,t)=>{if(r>0){let n=e[0]===\"-\"?\"-\":\"\";n&&(e=e.slice(1)),e=n+e.padStart(n?r-1:r,\"0\")}return t===!1?String(e):e},gt=(e,r)=>{let t=e[0]===\"-\"?\"-\":\"\";for(t&&(e=e.slice(1),r--);e.length<r;)e=\"0\"+e;return t?\"-\"+e:e},Pr=(e,r)=>{e.negatives.sort((a,c)=>a<c?-1:a>c?1:0),e.positives.sort((a,c)=>a<c?-1:a>c?1:0);let t=r.capture?\"\":\"?:\",n=\"\",s=\"\",i;return e.positives.length&&(n=e.positives.join(\"|\")),e.negatives.length&&(s=`-(${t}${e.negatives.join(\"|\")})`),n&&s?i=`${n}|${s}`:i=n||s,r.wrap?`(${t}${i})`:i},mt=(e,r,t,n)=>{if(t)return At(e,r,{wrap:!1,...n});let s=String.fromCharCode(e);if(e===r)return s;let i=String.fromCharCode(r);return`[${s}-${i}]`},Rt=(e,r,t)=>{if(Array.isArray(e)){let n=t.wrap===!0,s=t.capture?\"\":\"?:\";return n?`(${s}${e.join(\"|\")})`:e.join(\"|\")}return At(e,r,t)},yt=(...e)=>new RangeError(\"Invalid range arguments: \"+Nr.inspect(...e)),_t=(e,r,t)=>{if(t.strictRanges===!0)throw yt([e,r]);return[]},Dr=(e,r)=>{if(r.strictRanges===!0)throw new TypeError(`Expected step \"${e}\" to be a number`);return[]},Ur=(e,r,t=1,n={})=>{let s=Number(e),i=Number(r);if(!Number.isInteger(s)||!Number.isInteger(i)){if(n.strictRanges===!0)throw yt([e,r]);return[]}s===0&&(s=0),i===0&&(i=0);let a=s>i,c=String(e),p=String(r),m=String(t);t=Math.max(Math.abs(t),1);let h=De(c)||De(p)||De(m),R=h?Math.max(c.length,p.length,m.length):0,f=h===!1&&Br(e,r,n)===!1,$=n.transform||Ir(f);if(n.toRegex&&t===1)return mt(gt(e,R),gt(r,R),!0,n);let _={negatives:[],positives:[]},y=T=>_[T<0?\"negatives\":\"positives\"].push(Math.abs(T)),E=[],S=0;for(;a?s>=i:s<=i;)n.toRegex===!0&&t>1?y(s):E.push(Mr($(s,S),R,f)),s=a?s-t:s+t,S++;return n.toRegex===!0?t>1?Pr(_,n):Rt(E,null,{wrap:!1,...n}):E},Gr=(e,r,t=1,n={})=>{if(!Ae(e)&&e.length>1||!Ae(r)&&r.length>1)return _t(e,r,n);let s=n.transform||(f=>String.fromCharCode(f)),i=`${e}`.charCodeAt(0),a=`${r}`.charCodeAt(0),c=i>a,p=Math.min(i,a),m=Math.max(i,a);if(n.toRegex&&t===1)return mt(p,m,!1,n);let h=[],R=0;for(;c?i>=a:i<=a;)h.push(s(i,R)),i=c?i-t:i+t,R++;return n.toRegex===!0?Rt(h,null,{wrap:!1,options:n}):h},$e=(e,r,t,n={})=>{if(r==null&&Pe(e))return[e];if(!Pe(e)||!Pe(r))return _t(e,r,n);if(typeof t==\"function\")return $e(e,r,1,{transform:t});if(dt(t))return $e(e,r,0,t);let s={...n};return s.capture===!0&&(s.wrap=!0),t=t||s.step||1,Ae(t)?Ae(e)&&Ae(r)?Ur(e,r,t,s):Gr(e,r,Math.max(Math.abs(t),1),s):t!=null&&!dt(t)?Dr(t,s):$e(e,r,1,t)};Et.exports=$e});var Ct=q((rs,xt)=>{\"use strict\";var qr=Ue(),bt=ve(),Kr=(e,r={})=>{let t=(n,s={})=>{let i=bt.isInvalidBrace(s),a=n.invalid===!0&&r.escapeInvalid===!0,c=i===!0||a===!0,p=r.escapeInvalid===!0?\"\\\\\":\"\",m=\"\";if(n.isOpen===!0||n.isClose===!0)return p+n.value;if(n.type===\"open\")return c?p+n.value:\"(\";if(n.type===\"close\")return c?p+n.value:\")\";if(n.type===\"comma\")return n.prev.type===\"comma\"?\"\":c?n.value:\"|\";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let h=bt.reduce(n.nodes),R=qr(...h,{...r,wrap:!1,toRegex:!0});if(R.length!==0)return h.length>1&&R.length>1?`(${R})`:R}if(n.nodes)for(let h of n.nodes)m+=t(h,n);return m};return t(e)};xt.exports=Kr});var vt=q((ns,St)=>{\"use strict\";var Wr=Ue(),wt=He(),he=ve(),fe=(e=\"\",r=\"\",t=!1)=>{let n=[];if(e=[].concat(e),r=[].concat(r),!r.length)return e;if(!e.length)return t?he.flatten(r).map(s=>`{${s}}`):r;for(let s of e)if(Array.isArray(s))for(let i of s)n.push(fe(i,r,t));else for(let i of r)t===!0&&typeof i==\"string\"&&(i=`{${i}}`),n.push(Array.isArray(i)?fe(s,i,t):s+i);return he.flatten(n)},jr=(e,r={})=>{let t=r.rangeLimit===void 0?1e3:r.rangeLimit,n=(s,i={})=>{s.queue=[];let a=i,c=i.queue;for(;a.type!==\"brace\"&&a.type!==\"root\"&&a.parent;)a=a.parent,c=a.queue;if(s.invalid||s.dollar){c.push(fe(c.pop(),wt(s,r)));return}if(s.type===\"brace\"&&s.invalid!==!0&&s.nodes.length===2){c.push(fe(c.pop(),[\"{}\"]));return}if(s.nodes&&s.ranges>0){let R=he.reduce(s.nodes);if(he.exceedsLimit(...R,r.step,t))throw new RangeError(\"expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.\");let f=Wr(...R,r);f.length===0&&(f=wt(s,r)),c.push(fe(c.pop(),f)),s.nodes=[];return}let p=he.encloseBrace(s),m=s.queue,h=s;for(;h.type!==\"brace\"&&h.type!==\"root\"&&h.parent;)h=h.parent,m=h.queue;for(let R=0;R<s.nodes.length;R++){let f=s.nodes[R];if(f.type===\"comma\"&&s.type===\"brace\"){R===1&&m.push(\"\"),m.push(\"\");continue}if(f.type===\"close\"){c.push(fe(c.pop(),m,p));continue}if(f.value&&f.type!==\"open\"){m.push(fe(m.pop(),f.value));continue}f.nodes&&n(f,s)}return m};return he.flatten(n(e))};St.exports=jr});var $t=q((ss,Ht)=>{\"use strict\";Ht.exports={MAX_LENGTH:1024*64,CHAR_0:\"0\",CHAR_9:\"9\",CHAR_UPPERCASE_A:\"A\",CHAR_LOWERCASE_A:\"a\",CHAR_UPPERCASE_Z:\"Z\",CHAR_LOWERCASE_Z:\"z\",CHAR_LEFT_PARENTHESES:\"(\",CHAR_RIGHT_PARENTHESES:\")\",CHAR_ASTERISK:\"*\",CHAR_AMPERSAND:\"&\",CHAR_AT:\"@\",CHAR_BACKSLASH:\"\\\\\",CHAR_BACKTICK:\"`\",CHAR_CARRIAGE_RETURN:\"\\r\",CHAR_CIRCUMFLEX_ACCENT:\"^\",CHAR_COLON:\":\",CHAR_COMMA:\",\",CHAR_DOLLAR:\"$\",CHAR_DOT:\".\",CHAR_DOUBLE_QUOTE:'\"',CHAR_EQUAL:\"=\",CHAR_EXCLAMATION_MARK:\"!\",CHAR_FORM_FEED:\"\\f\",CHAR_FORWARD_SLASH:\"/\",CHAR_HASH:\"#\",CHAR_HYPHEN_MINUS:\"-\",CHAR_LEFT_ANGLE_BRACKET:\"<\",CHAR_LEFT_CURLY_BRACE:\"{\",CHAR_LEFT_SQUARE_BRACKET:\"[\",CHAR_LINE_FEED:`\n`,CHAR_NO_BREAK_SPACE:\"\\xA0\",CHAR_PERCENT:\"%\",CHAR_PLUS:\"+\",CHAR_QUESTION_MARK:\"?\",CHAR_RIGHT_ANGLE_BRACKET:\">\",CHAR_RIGHT_CURLY_BRACE:\"}\",CHAR_RIGHT_SQUARE_BRACKET:\"]\",CHAR_SEMICOLON:\";\",CHAR_SINGLE_QUOTE:\"'\",CHAR_SPACE:\" \",CHAR_TAB:\"\t\",CHAR_UNDERSCORE:\"_\",CHAR_VERTICAL_LINE:\"|\",CHAR_ZERO_WIDTH_NOBREAK_SPACE:\"\\uFEFF\"}});var Nt=q((as,Ot)=>{\"use strict\";var Fr=He(),{MAX_LENGTH:Tt,CHAR_BACKSLASH:Ge,CHAR_BACKTICK:Qr,CHAR_COMMA:Xr,CHAR_DOT:Zr,CHAR_LEFT_PARENTHESES:Yr,CHAR_RIGHT_PARENTHESES:zr,CHAR_LEFT_CURLY_BRACE:Vr,CHAR_RIGHT_CURLY_BRACE:Jr,CHAR_LEFT_SQUARE_BRACKET:kt,CHAR_RIGHT_SQUARE_BRACKET:Lt,CHAR_DOUBLE_QUOTE:en,CHAR_SINGLE_QUOTE:tn,CHAR_NO_BREAK_SPACE:rn,CHAR_ZERO_WIDTH_NOBREAK_SPACE:nn}=$t(),sn=(e,r={})=>{if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");let t=r||{},n=typeof t.maxLength==\"number\"?Math.min(Tt,t.maxLength):Tt;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let s={type:\"root\",input:e,nodes:[]},i=[s],a=s,c=s,p=0,m=e.length,h=0,R=0,f,$={},_=()=>e[h++],y=E=>{if(E.type===\"text\"&&c.type===\"dot\"&&(c.type=\"text\"),c&&c.type===\"text\"&&E.type===\"text\"){c.value+=E.value;return}return a.nodes.push(E),E.parent=a,E.prev=c,c=E,E};for(y({type:\"bos\"});h<m;)if(a=i[i.length-1],f=_(),!(f===nn||f===rn)){if(f===Ge){y({type:\"text\",value:(r.keepEscaping?f:\"\")+_()});continue}if(f===Lt){y({type:\"text\",value:\"\\\\\"+f});continue}if(f===kt){p++;let E=!0,S;for(;h<m&&(S=_());){if(f+=S,S===kt){p++;continue}if(S===Ge){f+=_();continue}if(S===Lt&&(p--,p===0))break}y({type:\"text\",value:f});continue}if(f===Yr){a=y({type:\"paren\",nodes:[]}),i.push(a),y({type:\"text\",value:f});continue}if(f===zr){if(a.type!==\"paren\"){y({type:\"text\",value:f});continue}a=i.pop(),y({type:\"text\",value:f}),a=i[i.length-1];continue}if(f===en||f===tn||f===Qr){let E=f,S;for(r.keepQuotes!==!0&&(f=\"\");h<m&&(S=_());){if(S===Ge){f+=S+_();continue}if(S===E){r.keepQuotes===!0&&(f+=S);break}f+=S}y({type:\"text\",value:f});continue}if(f===Vr){R++;let E=c.value&&c.value.slice(-1)===\"$\"||a.dollar===!0;a=y({type:\"brace\",open:!0,close:!1,dollar:E,depth:R,commas:0,ranges:0,nodes:[]}),i.push(a),y({type:\"open\",value:f});continue}if(f===Jr){if(a.type!==\"brace\"){y({type:\"text\",value:f});continue}let E=\"close\";a=i.pop(),a.close=!0,y({type:E,value:f}),R--,a=i[i.length-1];continue}if(f===Xr&&R>0){if(a.ranges>0){a.ranges=0;let E=a.nodes.shift();a.nodes=[E,{type:\"text\",value:Fr(a)}]}y({type:\"comma\",value:f}),a.commas++;continue}if(f===Zr&&R>0&&a.commas===0){let E=a.nodes;if(R===0||E.length===0){y({type:\"text\",value:f});continue}if(c.type===\"dot\"){if(a.range=[],c.value+=f,c.type=\"range\",a.nodes.length!==3&&a.nodes.length!==5){a.invalid=!0,a.ranges=0,c.type=\"text\";continue}a.ranges++,a.args=[];continue}if(c.type===\"range\"){E.pop();let S=E[E.length-1];S.value+=c.value+f,c=S,a.ranges--;continue}y({type:\"dot\",value:f});continue}y({type:\"text\",value:f})}do if(a=i.pop(),a.type!==\"root\"){a.nodes.forEach(T=>{T.nodes||(T.type===\"open\"&&(T.isOpen=!0),T.type===\"close\"&&(T.isClose=!0),T.nodes||(T.type=\"text\"),T.invalid=!0)});let E=i[i.length-1],S=E.nodes.indexOf(a);E.nodes.splice(S,1,...a.nodes)}while(i.length>0);return y({type:\"eos\"}),s};Ot.exports=sn});var Mt=q((is,Bt)=>{\"use strict\";var It=He(),an=Ct(),on=vt(),un=Nt(),X=(e,r={})=>{let t=[];if(Array.isArray(e))for(let n of e){let s=X.create(n,r);Array.isArray(s)?t.push(...s):t.push(s)}else t=[].concat(X.create(e,r));return r&&r.expand===!0&&r.nodupes===!0&&(t=[...new Set(t)]),t};X.parse=(e,r={})=>un(e,r);X.stringify=(e,r={})=>It(typeof e==\"string\"?X.parse(e,r):e,r);X.compile=(e,r={})=>(typeof e==\"string\"&&(e=X.parse(e,r)),an(e,r));X.expand=(e,r={})=>{typeof e==\"string\"&&(e=X.parse(e,r));let t=on(e,r);return r.noempty===!0&&(t=t.filter(Boolean)),r.nodupes===!0&&(t=[...new Set(t)]),t};X.create=(e,r={})=>e===\"\"||e.length<3?[e]:r.expand!==!0?X.compile(e,r):X.expand(e,r);Bt.exports=X});var me=q((os,qt)=>{\"use strict\";var cn=W(\"path\"),se=\"\\\\\\\\/\",Pt=`[^${se}]`,ie=\"\\\\.\",ln=\"\\\\+\",fn=\"\\\\?\",Te=\"\\\\/\",pn=\"(?=.)\",Dt=\"[^/]\",qe=`(?:${Te}|$)`,Ut=`(?:^|${Te})`,Ke=`${ie}{1,2}${qe}`,hn=`(?!${ie})`,dn=`(?!${Ut}${Ke})`,gn=`(?!${ie}{0,1}${qe})`,An=`(?!${Ke})`,mn=`[^.${Te}]`,Rn=`${Dt}*?`,Gt={DOT_LITERAL:ie,PLUS_LITERAL:ln,QMARK_LITERAL:fn,SLASH_LITERAL:Te,ONE_CHAR:pn,QMARK:Dt,END_ANCHOR:qe,DOTS_SLASH:Ke,NO_DOT:hn,NO_DOTS:dn,NO_DOT_SLASH:gn,NO_DOTS_SLASH:An,QMARK_NO_DOT:mn,STAR:Rn,START_ANCHOR:Ut},yn={...Gt,SLASH_LITERAL:`[${se}]`,QMARK:Pt,STAR:`${Pt}*?`,DOTS_SLASH:`${ie}{1,2}(?:[${se}]|$)`,NO_DOT:`(?!${ie})`,NO_DOTS:`(?!(?:^|[${se}])${ie}{1,2}(?:[${se}]|$))`,NO_DOT_SLASH:`(?!${ie}{0,1}(?:[${se}]|$))`,NO_DOTS_SLASH:`(?!${ie}{1,2}(?:[${se}]|$))`,QMARK_NO_DOT:`[^.${se}]`,START_ANCHOR:`(?:^|[${se}])`,END_ANCHOR:`(?:[${se}]|$)`},_n={alnum:\"a-zA-Z0-9\",alpha:\"a-zA-Z\",ascii:\"\\\\x00-\\\\x7F\",blank:\" \\\\t\",cntrl:\"\\\\x00-\\\\x1F\\\\x7F\",digit:\"0-9\",graph:\"\\\\x21-\\\\x7E\",lower:\"a-z\",print:\"\\\\x20-\\\\x7E \",punct:\"\\\\-!\\\"#$%&'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~\",space:\" \\\\t\\\\r\\\\n\\\\v\\\\f\",upper:\"A-Z\",word:\"A-Za-z0-9_\",xdigit:\"A-Fa-f0-9\"};qt.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:_n,REGEX_BACKSLASH:/\\\\(?![*+?^${}(|)[\\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\\].,$*+?^{}()|\\\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\\\?)((\\W)(\\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,REPLACEMENTS:{\"***\":\"*\",\"**/**\":\"**\",\"**/**/**\":\"**\"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:cn.sep,extglobChars(e){return{\"!\":{type:\"negate\",open:\"(?:(?!(?:\",close:`))${e.STAR})`},\"?\":{type:\"qmark\",open:\"(?:\",close:\")?\"},\"+\":{type:\"plus\",open:\"(?:\",close:\")+\"},\"*\":{type:\"star\",open:\"(?:\",close:\")*\"},\"@\":{type:\"at\",open:\"(?:\",close:\")\"}}},globChars(e){return e===!0?yn:Gt}}});var Re=q(F=>{\"use strict\";var En=W(\"path\"),bn=process.platform===\"win32\",{REGEX_BACKSLASH:xn,REGEX_REMOVE_BACKSLASH:Cn,REGEX_SPECIAL_CHARS:wn,REGEX_SPECIAL_CHARS_GLOBAL:Sn}=me();F.isObject=e=>e!==null&&typeof e==\"object\"&&!Array.isArray(e);F.hasRegexChars=e=>wn.test(e);F.isRegexChar=e=>e.length===1&&F.hasRegexChars(e);F.escapeRegex=e=>e.replace(Sn,\"\\\\$1\");F.toPosixSlashes=e=>e.replace(xn,\"/\");F.removeBackslashes=e=>e.replace(Cn,r=>r===\"\\\\\"?\"\":r);F.supportsLookbehinds=()=>{let e=process.version.slice(1).split(\".\").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};F.isWindows=e=>e&&typeof e.windows==\"boolean\"?e.windows:bn===!0||En.sep===\"\\\\\";F.escapeLast=(e,r,t)=>{let n=e.lastIndexOf(r,t);return n===-1?e:e[n-1]===\"\\\\\"?F.escapeLast(e,r,n-1):`${e.slice(0,n)}\\\\${e.slice(n)}`};F.removePrefix=(e,r={})=>{let t=e;return t.startsWith(\"./\")&&(t=t.slice(2),r.prefix=\"./\"),t};F.wrapOutput=(e,r={},t={})=>{let n=t.contains?\"\":\"^\",s=t.contains?\"\":\"$\",i=`${n}(?:${e})${s}`;return r.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var Yt=q((cs,Zt)=>{\"use strict\";var Kt=Re(),{CHAR_ASTERISK:We,CHAR_AT:vn,CHAR_BACKWARD_SLASH:ye,CHAR_COMMA:Hn,CHAR_DOT:je,CHAR_EXCLAMATION_MARK:Fe,CHAR_FORWARD_SLASH:Xt,CHAR_LEFT_CURLY_BRACE:Qe,CHAR_LEFT_PARENTHESES:Xe,CHAR_LEFT_SQUARE_BRACKET:$n,CHAR_PLUS:Tn,CHAR_QUESTION_MARK:Wt,CHAR_RIGHT_CURLY_BRACE:kn,CHAR_RIGHT_PARENTHESES:jt,CHAR_RIGHT_SQUARE_BRACKET:Ln}=me(),Ft=e=>e===Xt||e===ye,Qt=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},On=(e,r)=>{let t=r||{},n=e.length-1,s=t.parts===!0||t.scanToEnd===!0,i=[],a=[],c=[],p=e,m=-1,h=0,R=0,f=!1,$=!1,_=!1,y=!1,E=!1,S=!1,T=!1,L=!1,z=!1,I=!1,re=0,K,g,v={value:\"\",depth:0,isGlob:!1},k=()=>m>=n,l=()=>p.charCodeAt(m+1),H=()=>(K=g,p.charCodeAt(++m));for(;m<n;){g=H();let M;if(g===ye){T=v.backslashes=!0,g=H(),g===Qe&&(S=!0);continue}if(S===!0||g===Qe){for(re++;k()!==!0&&(g=H());){if(g===ye){T=v.backslashes=!0,H();continue}if(g===Qe){re++;continue}if(S!==!0&&g===je&&(g=H())===je){if(f=v.isBrace=!0,_=v.isGlob=!0,I=!0,s===!0)continue;break}if(S!==!0&&g===Hn){if(f=v.isBrace=!0,_=v.isGlob=!0,I=!0,s===!0)continue;break}if(g===kn&&(re--,re===0)){S=!1,f=v.isBrace=!0,I=!0;break}}if(s===!0)continue;break}if(g===Xt){if(i.push(m),a.push(v),v={value:\"\",depth:0,isGlob:!1},I===!0)continue;if(K===je&&m===h+1){h+=2;continue}R=m+1;continue}if(t.noext!==!0&&(g===Tn||g===vn||g===We||g===Wt||g===Fe)===!0&&l()===Xe){if(_=v.isGlob=!0,y=v.isExtglob=!0,I=!0,g===Fe&&m===h&&(z=!0),s===!0){for(;k()!==!0&&(g=H());){if(g===ye){T=v.backslashes=!0,g=H();continue}if(g===jt){_=v.isGlob=!0,I=!0;break}}continue}break}if(g===We){if(K===We&&(E=v.isGlobstar=!0),_=v.isGlob=!0,I=!0,s===!0)continue;break}if(g===Wt){if(_=v.isGlob=!0,I=!0,s===!0)continue;break}if(g===$n){for(;k()!==!0&&(M=H());){if(M===ye){T=v.backslashes=!0,H();continue}if(M===Ln){$=v.isBracket=!0,_=v.isGlob=!0,I=!0;break}}if(s===!0)continue;break}if(t.nonegate!==!0&&g===Fe&&m===h){L=v.negated=!0,h++;continue}if(t.noparen!==!0&&g===Xe){if(_=v.isGlob=!0,s===!0){for(;k()!==!0&&(g=H());){if(g===Xe){T=v.backslashes=!0,g=H();continue}if(g===jt){I=!0;break}}continue}break}if(_===!0){if(I=!0,s===!0)continue;break}}t.noext===!0&&(y=!1,_=!1);let w=p,B=\"\",o=\"\";h>0&&(B=p.slice(0,h),p=p.slice(h),R-=h),w&&_===!0&&R>0?(w=p.slice(0,R),o=p.slice(R)):_===!0?(w=\"\",o=p):w=p,w&&w!==\"\"&&w!==\"/\"&&w!==p&&Ft(w.charCodeAt(w.length-1))&&(w=w.slice(0,-1)),t.unescape===!0&&(o&&(o=Kt.removeBackslashes(o)),w&&T===!0&&(w=Kt.removeBackslashes(w)));let u={prefix:B,input:e,start:h,base:w,glob:o,isBrace:f,isBracket:$,isGlob:_,isExtglob:y,isGlobstar:E,negated:L,negatedExtglob:z};if(t.tokens===!0&&(u.maxDepth=0,Ft(g)||a.push(v),u.tokens=a),t.parts===!0||t.tokens===!0){let M;for(let b=0;b<i.length;b++){let V=M?M+1:h,J=i[b],Q=e.slice(V,J);t.tokens&&(b===0&&h!==0?(a[b].isPrefix=!0,a[b].value=B):a[b].value=Q,Qt(a[b]),u.maxDepth+=a[b].depth),(b!==0||Q!==\"\")&&c.push(Q),M=J}if(M&&M+1<e.length){let b=e.slice(M+1);c.push(b),t.tokens&&(a[a.length-1].value=b,Qt(a[a.length-1]),u.maxDepth+=a[a.length-1].depth)}u.slashes=i,u.parts=c}return u};Zt.exports=On});var er=q((ls,Jt)=>{\"use strict\";var ke=me(),Z=Re(),{MAX_LENGTH:Le,POSIX_REGEX_SOURCE:Nn,REGEX_NON_SPECIAL_CHARS:In,REGEX_SPECIAL_CHARS_BACKREF:Bn,REPLACEMENTS:zt}=ke,Mn=(e,r)=>{if(typeof r.expandRange==\"function\")return r.expandRange(...e,r);e.sort();let t=`[${e.join(\"-\")}]`;try{new RegExp(t)}catch{return e.map(s=>Z.escapeRegex(s)).join(\"..\")}return t},de=(e,r)=>`Missing ${e}: \"${r}\" - use \"\\\\\\\\${r}\" to match literal characters`,Vt=(e,r)=>{if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");e=zt[e]||e;let t={...r},n=typeof t.maxLength==\"number\"?Math.min(Le,t.maxLength):Le,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);let i={type:\"bos\",value:\"\",output:t.prepend||\"\"},a=[i],c=t.capture?\"\":\"?:\",p=Z.isWindows(r),m=ke.globChars(p),h=ke.extglobChars(m),{DOT_LITERAL:R,PLUS_LITERAL:f,SLASH_LITERAL:$,ONE_CHAR:_,DOTS_SLASH:y,NO_DOT:E,NO_DOT_SLASH:S,NO_DOTS_SLASH:T,QMARK:L,QMARK_NO_DOT:z,STAR:I,START_ANCHOR:re}=m,K=A=>`(${c}(?:(?!${re}${A.dot?y:R}).)*?)`,g=t.dot?\"\":E,v=t.dot?L:z,k=t.bash===!0?K(t):I;t.capture&&(k=`(${k})`),typeof t.noext==\"boolean\"&&(t.noextglob=t.noext);let l={input:e,index:-1,start:0,dot:t.dot===!0,consumed:\"\",output:\"\",prefix:\"\",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:a};e=Z.removePrefix(e,l),s=e.length;let H=[],w=[],B=[],o=i,u,M=()=>l.index===s-1,b=l.peek=(A=1)=>e[l.index+A],V=l.advance=()=>e[++l.index]||\"\",J=()=>e.slice(l.index+1),Q=(A=\"\",O=0)=>{l.consumed+=A,l.index+=O},Ee=A=>{l.output+=A.output!=null?A.output:A.value,Q(A.value)},Rr=()=>{let A=1;for(;b()===\"!\"&&(b(2)!==\"(\"||b(3)===\"?\");)V(),l.start++,A++;return A%2===0?!1:(l.negated=!0,l.start++,!0)},be=A=>{l[A]++,B.push(A)},oe=A=>{l[A]--,B.pop()},C=A=>{if(o.type===\"globstar\"){let O=l.braces>0&&(A.type===\"comma\"||A.type===\"brace\"),d=A.extglob===!0||H.length&&(A.type===\"pipe\"||A.type===\"paren\");A.type!==\"slash\"&&A.type!==\"paren\"&&!O&&!d&&(l.output=l.output.slice(0,-o.output.length),o.type=\"star\",o.value=\"*\",o.output=k,l.output+=o.output)}if(H.length&&A.type!==\"paren\"&&(H[H.length-1].inner+=A.value),(A.value||A.output)&&Ee(A),o&&o.type===\"text\"&&A.type===\"text\"){o.value+=A.value,o.output=(o.output||\"\")+A.value;return}A.prev=o,a.push(A),o=A},xe=(A,O)=>{let d={...h[O],conditions:1,inner:\"\"};d.prev=o,d.parens=l.parens,d.output=l.output;let x=(t.capture?\"(\":\"\")+d.open;be(\"parens\"),C({type:A,value:O,output:l.output?\"\":_}),C({type:\"paren\",extglob:!0,value:V(),output:x}),H.push(d)},yr=A=>{let O=A.close+(t.capture?\")\":\"\"),d;if(A.type===\"negate\"){let x=k;A.inner&&A.inner.length>1&&A.inner.includes(\"/\")&&(x=K(t)),(x!==k||M()||/^\\)+$/.test(J()))&&(O=A.close=`)$))${x}`),A.inner.includes(\"*\")&&(d=J())&&/^\\.[^\\\\/.]+$/.test(d)&&(O=A.close=`)${d})${x})`),A.prev.type===\"bos\"&&(l.negatedExtglob=!0)}C({type:\"paren\",extglob:!0,value:u,output:O}),oe(\"parens\")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\\]{}\"])/.test(e)){let A=!1,O=e.replace(Bn,(d,x,P,j,G,Ie)=>j===\"\\\\\"?(A=!0,d):j===\"?\"?x?x+j+(G?L.repeat(G.length):\"\"):Ie===0?v+(G?L.repeat(G.length):\"\"):L.repeat(P.length):j===\".\"?R.repeat(P.length):j===\"*\"?x?x+j+(G?k:\"\"):k:x?d:`\\\\${d}`);return A===!0&&(t.unescape===!0?O=O.replace(/\\\\/g,\"\"):O=O.replace(/\\\\+/g,d=>d.length%2===0?\"\\\\\\\\\":d?\"\\\\\":\"\")),O===e&&t.contains===!0?(l.output=e,l):(l.output=Z.wrapOutput(O,l,r),l)}for(;!M();){if(u=V(),u===\"\\0\")continue;if(u===\"\\\\\"){let d=b();if(d===\"/\"&&t.bash!==!0||d===\".\"||d===\";\")continue;if(!d){u+=\"\\\\\",C({type:\"text\",value:u});continue}let x=/^\\\\+/.exec(J()),P=0;if(x&&x[0].length>2&&(P=x[0].length,l.index+=P,P%2!==0&&(u+=\"\\\\\")),t.unescape===!0?u=V():u+=V(),l.brackets===0){C({type:\"text\",value:u});continue}}if(l.brackets>0&&(u!==\"]\"||o.value===\"[\"||o.value===\"[^\")){if(t.posix!==!1&&u===\":\"){let d=o.value.slice(1);if(d.includes(\"[\")&&(o.posix=!0,d.includes(\":\"))){let x=o.value.lastIndexOf(\"[\"),P=o.value.slice(0,x),j=o.value.slice(x+2),G=Nn[j];if(G){o.value=P+G,l.backtrack=!0,V(),!i.output&&a.indexOf(o)===1&&(i.output=_);continue}}}(u===\"[\"&&b()!==\":\"||u===\"-\"&&b()===\"]\")&&(u=`\\\\${u}`),u===\"]\"&&(o.value===\"[\"||o.value===\"[^\")&&(u=`\\\\${u}`),t.posix===!0&&u===\"!\"&&o.value===\"[\"&&(u=\"^\"),o.value+=u,Ee({value:u});continue}if(l.quotes===1&&u!=='\"'){u=Z.escapeRegex(u),o.value+=u,Ee({value:u});continue}if(u==='\"'){l.quotes=l.quotes===1?0:1,t.keepQuotes===!0&&C({type:\"text\",value:u});continue}if(u===\"(\"){be(\"parens\"),C({type:\"paren\",value:u});continue}if(u===\")\"){if(l.parens===0&&t.strictBrackets===!0)throw new SyntaxError(de(\"opening\",\"(\"));let d=H[H.length-1];if(d&&l.parens===d.parens+1){yr(H.pop());continue}C({type:\"paren\",value:u,output:l.parens?\")\":\"\\\\)\"}),oe(\"parens\");continue}if(u===\"[\"){if(t.nobracket===!0||!J().includes(\"]\")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(de(\"closing\",\"]\"));u=`\\\\${u}`}else be(\"brackets\");C({type:\"bracket\",value:u});continue}if(u===\"]\"){if(t.nobracket===!0||o&&o.type===\"bracket\"&&o.value.length===1){C({type:\"text\",value:u,output:`\\\\${u}`});continue}if(l.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(de(\"opening\",\"[\"));C({type:\"text\",value:u,output:`\\\\${u}`});continue}oe(\"brackets\");let d=o.value.slice(1);if(o.posix!==!0&&d[0]===\"^\"&&!d.includes(\"/\")&&(u=`/${u}`),o.value+=u,Ee({value:u}),t.literalBrackets===!1||Z.hasRegexChars(d))continue;let x=Z.escapeRegex(o.value);if(l.output=l.output.slice(0,-o.value.length),t.literalBrackets===!0){l.output+=x,o.value=x;continue}o.value=`(${c}${x}|${o.value})`,l.output+=o.value;continue}if(u===\"{\"&&t.nobrace!==!0){be(\"braces\");let d={type:\"brace\",value:u,output:\"(\",outputIndex:l.output.length,tokensIndex:l.tokens.length};w.push(d),C(d);continue}if(u===\"}\"){let d=w[w.length-1];if(t.nobrace===!0||!d){C({type:\"text\",value:u,output:u});continue}let x=\")\";if(d.dots===!0){let P=a.slice(),j=[];for(let G=P.length-1;G>=0&&(a.pop(),P[G].type!==\"brace\");G--)P[G].type!==\"dots\"&&j.unshift(P[G].value);x=Mn(j,t),l.backtrack=!0}if(d.comma!==!0&&d.dots!==!0){let P=l.output.slice(0,d.outputIndex),j=l.tokens.slice(d.tokensIndex);d.value=d.output=\"\\\\{\",u=x=\"\\\\}\",l.output=P;for(let G of j)l.output+=G.output||G.value}C({type:\"brace\",value:u,output:x}),oe(\"braces\"),w.pop();continue}if(u===\"|\"){H.length>0&&H[H.length-1].conditions++,C({type:\"text\",value:u});continue}if(u===\",\"){let d=u,x=w[w.length-1];x&&B[B.length-1]===\"braces\"&&(x.comma=!0,d=\"|\"),C({type:\"comma\",value:u,output:d});continue}if(u===\"/\"){if(o.type===\"dot\"&&l.index===l.start+1){l.start=l.index+1,l.consumed=\"\",l.output=\"\",a.pop(),o=i;continue}C({type:\"slash\",value:u,output:$});continue}if(u===\".\"){if(l.braces>0&&o.type===\"dot\"){o.value===\".\"&&(o.output=R);let d=w[w.length-1];o.type=\"dots\",o.output+=u,o.value+=u,d.dots=!0;continue}if(l.braces+l.parens===0&&o.type!==\"bos\"&&o.type!==\"slash\"){C({type:\"text\",value:u,output:R});continue}C({type:\"dot\",value:u,output:R});continue}if(u===\"?\"){if(!(o&&o.value===\"(\")&&t.noextglob!==!0&&b()===\"(\"&&b(2)!==\"?\"){xe(\"qmark\",u);continue}if(o&&o.type===\"paren\"){let x=b(),P=u;if(x===\"<\"&&!Z.supportsLookbehinds())throw new Error(\"Node.js v10 or higher is required for regex lookbehinds\");(o.value===\"(\"&&!/[!=<:]/.test(x)||x===\"<\"&&!/<([!=]|\\w+>)/.test(J()))&&(P=`\\\\${u}`),C({type:\"text\",value:u,output:P});continue}if(t.dot!==!0&&(o.type===\"slash\"||o.type===\"bos\")){C({type:\"qmark\",value:u,output:z});continue}C({type:\"qmark\",value:u,output:L});continue}if(u===\"!\"){if(t.noextglob!==!0&&b()===\"(\"&&(b(2)!==\"?\"||!/[!=<:]/.test(b(3)))){xe(\"negate\",u);continue}if(t.nonegate!==!0&&l.index===0){Rr();continue}}if(u===\"+\"){if(t.noextglob!==!0&&b()===\"(\"&&b(2)!==\"?\"){xe(\"plus\",u);continue}if(o&&o.value===\"(\"||t.regex===!1){C({type:\"plus\",value:u,output:f});continue}if(o&&(o.type===\"bracket\"||o.type===\"paren\"||o.type===\"brace\")||l.parens>0){C({type:\"plus\",value:u});continue}C({type:\"plus\",value:f});continue}if(u===\"@\"){if(t.noextglob!==!0&&b()===\"(\"&&b(2)!==\"?\"){C({type:\"at\",extglob:!0,value:u,output:\"\"});continue}C({type:\"text\",value:u});continue}if(u!==\"*\"){(u===\"$\"||u===\"^\")&&(u=`\\\\${u}`);let d=In.exec(J());d&&(u+=d[0],l.index+=d[0].length),C({type:\"text\",value:u});continue}if(o&&(o.type===\"globstar\"||o.star===!0)){o.type=\"star\",o.star=!0,o.value+=u,o.output=k,l.backtrack=!0,l.globstar=!0,Q(u);continue}let A=J();if(t.noextglob!==!0&&/^\\([^?]/.test(A)){xe(\"star\",u);continue}if(o.type===\"star\"){if(t.noglobstar===!0){Q(u);continue}let d=o.prev,x=d.prev,P=d.type===\"slash\"||d.type===\"bos\",j=x&&(x.type===\"star\"||x.type===\"globstar\");if(t.bash===!0&&(!P||A[0]&&A[0]!==\"/\")){C({type:\"star\",value:u,output:\"\"});continue}let G=l.braces>0&&(d.type===\"comma\"||d.type===\"brace\"),Ie=H.length&&(d.type===\"pipe\"||d.type===\"paren\");if(!P&&d.type!==\"paren\"&&!G&&!Ie){C({type:\"star\",value:u,output:\"\"});continue}for(;A.slice(0,3)===\"/**\";){let Ce=e[l.index+4];if(Ce&&Ce!==\"/\")break;A=A.slice(3),Q(\"/**\",3)}if(d.type===\"bos\"&&M()){o.type=\"globstar\",o.value+=u,o.output=K(t),l.output=o.output,l.globstar=!0,Q(u);continue}if(d.type===\"slash\"&&d.prev.type!==\"bos\"&&!j&&M()){l.output=l.output.slice(0,-(d.output+o.output).length),d.output=`(?:${d.output}`,o.type=\"globstar\",o.output=K(t)+(t.strictSlashes?\")\":\"|$)\"),o.value+=u,l.globstar=!0,l.output+=d.output+o.output,Q(u);continue}if(d.type===\"slash\"&&d.prev.type!==\"bos\"&&A[0]===\"/\"){let Ce=A[1]!==void 0?\"|$\":\"\";l.output=l.output.slice(0,-(d.output+o.output).length),d.output=`(?:${d.output}`,o.type=\"globstar\",o.output=`${K(t)}${$}|${$}${Ce})`,o.value+=u,l.output+=d.output+o.output,l.globstar=!0,Q(u+V()),C({type:\"slash\",value:\"/\",output:\"\"});continue}if(d.type===\"bos\"&&A[0]===\"/\"){o.type=\"globstar\",o.value+=u,o.output=`(?:^|${$}|${K(t)}${$})`,l.output=o.output,l.globstar=!0,Q(u+V()),C({type:\"slash\",value:\"/\",output:\"\"});continue}l.output=l.output.slice(0,-o.output.length),o.type=\"globstar\",o.output=K(t),o.value+=u,l.output+=o.output,l.globstar=!0,Q(u);continue}let O={type:\"star\",value:u,output:k};if(t.bash===!0){O.output=\".*?\",(o.type===\"bos\"||o.type===\"slash\")&&(O.output=g+O.output),C(O);continue}if(o&&(o.type===\"bracket\"||o.type===\"paren\")&&t.regex===!0){O.output=u,C(O);continue}(l.index===l.start||o.type===\"slash\"||o.type===\"dot\")&&(o.type===\"dot\"?(l.output+=S,o.output+=S):t.dot===!0?(l.output+=T,o.output+=T):(l.output+=g,o.output+=g),b()!==\"*\"&&(l.output+=_,o.output+=_)),C(O)}for(;l.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(de(\"closing\",\"]\"));l.output=Z.escapeLast(l.output,\"[\"),oe(\"brackets\")}for(;l.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(de(\"closing\",\")\"));l.output=Z.escapeLast(l.output,\"(\"),oe(\"parens\")}for(;l.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(de(\"closing\",\"}\"));l.output=Z.escapeLast(l.output,\"{\"),oe(\"braces\")}if(t.strictSlashes!==!0&&(o.type===\"star\"||o.type===\"bracket\")&&C({type:\"maybe_slash\",value:\"\",output:`${$}?`}),l.backtrack===!0){l.output=\"\";for(let A of l.tokens)l.output+=A.output!=null?A.output:A.value,A.suffix&&(l.output+=A.suffix)}return l};Vt.fastpaths=(e,r)=>{let t={...r},n=typeof t.maxLength==\"number\"?Math.min(Le,t.maxLength):Le,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);e=zt[e]||e;let i=Z.isWindows(r),{DOT_LITERAL:a,SLASH_LITERAL:c,ONE_CHAR:p,DOTS_SLASH:m,NO_DOT:h,NO_DOTS:R,NO_DOTS_SLASH:f,STAR:$,START_ANCHOR:_}=ke.globChars(i),y=t.dot?R:h,E=t.dot?f:h,S=t.capture?\"\":\"?:\",T={negated:!1,prefix:\"\"},L=t.bash===!0?\".*?\":$;t.capture&&(L=`(${L})`);let z=g=>g.noglobstar===!0?L:`(${S}(?:(?!${_}${g.dot?m:a}).)*?)`,I=g=>{switch(g){case\"*\":return`${y}${p}${L}`;case\".*\":return`${a}${p}${L}`;case\"*.*\":return`${y}${L}${a}${p}${L}`;case\"*/*\":return`${y}${L}${c}${p}${E}${L}`;case\"**\":return y+z(t);case\"**/*\":return`(?:${y}${z(t)}${c})?${E}${p}${L}`;case\"**/*.*\":return`(?:${y}${z(t)}${c})?${E}${L}${a}${p}${L}`;case\"**/.*\":return`(?:${y}${z(t)}${c})?${a}${p}${L}`;default:{let v=/^(.*?)\\.(\\w+)$/.exec(g);if(!v)return;let k=I(v[1]);return k?k+a+v[2]:void 0}}},re=Z.removePrefix(e,T),K=I(re);return K&&t.strictSlashes!==!0&&(K+=`${c}?`),K};Jt.exports=Vt});var rr=q((fs,tr)=>{\"use strict\";var Pn=W(\"path\"),Dn=Yt(),Ze=er(),Ye=Re(),Un=me(),Gn=e=>e&&typeof e==\"object\"&&!Array.isArray(e),D=(e,r,t=!1)=>{if(Array.isArray(e)){let h=e.map(f=>D(f,r,t));return f=>{for(let $ of h){let _=$(f);if(_)return _}return!1}}let n=Gn(e)&&e.tokens&&e.input;if(e===\"\"||typeof e!=\"string\"&&!n)throw new TypeError(\"Expected pattern to be a non-empty string\");let s=r||{},i=Ye.isWindows(r),a=n?D.compileRe(e,r):D.makeRe(e,r,!1,!0),c=a.state;delete a.state;let p=()=>!1;if(s.ignore){let h={...r,ignore:null,onMatch:null,onResult:null};p=D(s.ignore,h,t)}let m=(h,R=!1)=>{let{isMatch:f,match:$,output:_}=D.test(h,a,r,{glob:e,posix:i}),y={glob:e,state:c,regex:a,posix:i,input:h,output:_,match:$,isMatch:f};return typeof s.onResult==\"function\"&&s.onResult(y),f===!1?(y.isMatch=!1,R?y:!1):p(h)?(typeof s.onIgnore==\"function\"&&s.onIgnore(y),y.isMatch=!1,R?y:!1):(typeof s.onMatch==\"function\"&&s.onMatch(y),R?y:!0)};return t&&(m.state=c),m};D.test=(e,r,t,{glob:n,posix:s}={})=>{if(typeof e!=\"string\")throw new TypeError(\"Expected input to be a string\");if(e===\"\")return{isMatch:!1,output:\"\"};let i=t||{},a=i.format||(s?Ye.toPosixSlashes:null),c=e===n,p=c&&a?a(e):e;return c===!1&&(p=a?a(e):e,c=p===n),(c===!1||i.capture===!0)&&(i.matchBase===!0||i.basename===!0?c=D.matchBase(e,r,t,s):c=r.exec(p)),{isMatch:Boolean(c),match:c,output:p}};D.matchBase=(e,r,t,n=Ye.isWindows(t))=>(r instanceof RegExp?r:D.makeRe(r,t)).test(Pn.basename(e));D.isMatch=(e,r,t)=>D(r,t)(e);D.parse=(e,r)=>Array.isArray(e)?e.map(t=>D.parse(t,r)):Ze(e,{...r,fastpaths:!1});D.scan=(e,r)=>Dn(e,r);D.compileRe=(e,r,t=!1,n=!1)=>{if(t===!0)return e.output;let s=r||{},i=s.contains?\"\":\"^\",a=s.contains?\"\":\"$\",c=`${i}(?:${e.output})${a}`;e&&e.negated===!0&&(c=`^(?!${c}).*$`);let p=D.toRegex(c,r);return n===!0&&(p.state=e),p};D.makeRe=(e,r={},t=!1,n=!1)=>{if(!e||typeof e!=\"string\")throw new TypeError(\"Expected a non-empty string\");let s={negated:!1,fastpaths:!0};return r.fastpaths!==!1&&(e[0]===\".\"||e[0]===\"*\")&&(s.output=Ze.fastpaths(e,r)),s.output||(s=Ze(e,r)),D.compileRe(s,r,t,n)};D.toRegex=(e,r)=>{try{let t=r||{};return new RegExp(e,t.flags||(t.nocase?\"i\":\"\"))}catch(t){if(r&&r.debug===!0)throw t;return/$^/}};D.constants=Un;tr.exports=D});var sr=q((ps,nr)=>{\"use strict\";nr.exports=rr()});var cr=q((hs,ur)=>{\"use strict\";var ir=W(\"util\"),or=Mt(),ae=sr(),ze=Re(),ar=e=>e===\"\"||e===\"./\",N=(e,r,t)=>{r=[].concat(r),e=[].concat(e);let n=new Set,s=new Set,i=new Set,a=0,c=h=>{i.add(h.output),t&&t.onResult&&t.onResult(h)};for(let h=0;h<r.length;h++){let R=ae(String(r[h]),{...t,onResult:c},!0),f=R.state.negated||R.state.negatedExtglob;f&&a++;for(let $ of e){let _=R($,!0);!(f?!_.isMatch:_.isMatch)||(f?n.add(_.output):(n.delete(_.output),s.add(_.output)))}}let m=(a===r.length?[...i]:[...s]).filter(h=>!n.has(h));if(t&&m.length===0){if(t.failglob===!0)throw new Error(`No matches found for \"${r.join(\", \")}\"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?r.map(h=>h.replace(/\\\\/g,\"\")):r}return m};N.match=N;N.matcher=(e,r)=>ae(e,r);N.isMatch=(e,r,t)=>ae(r,t)(e);N.any=N.isMatch;N.not=(e,r,t={})=>{r=[].concat(r).map(String);let n=new Set,s=[],a=N(e,r,{...t,onResult:c=>{t.onResult&&t.onResult(c),s.push(c.output)}});for(let c of s)a.includes(c)||n.add(c);return[...n]};N.contains=(e,r,t)=>{if(typeof e!=\"string\")throw new TypeError(`Expected a string: \"${ir.inspect(e)}\"`);if(Array.isArray(r))return r.some(n=>N.contains(e,n,t));if(typeof r==\"string\"){if(ar(e)||ar(r))return!1;if(e.includes(r)||e.startsWith(\"./\")&&e.slice(2).includes(r))return!0}return N.isMatch(e,r,{...t,contains:!0})};N.matchKeys=(e,r,t)=>{if(!ze.isObject(e))throw new TypeError(\"Expected the first argument to be an object\");let n=N(Object.keys(e),r,t),s={};for(let i of n)s[i]=e[i];return s};N.some=(e,r,t)=>{let n=[].concat(e);for(let s of[].concat(r)){let i=ae(String(s),t);if(n.some(a=>i(a)))return!0}return!1};N.every=(e,r,t)=>{let n=[].concat(e);for(let s of[].concat(r)){let i=ae(String(s),t);if(!n.every(a=>i(a)))return!1}return!0};N.all=(e,r,t)=>{if(typeof e!=\"string\")throw new TypeError(`Expected a string: \"${ir.inspect(e)}\"`);return[].concat(r).every(n=>ae(n,t)(e))};N.capture=(e,r,t)=>{let n=ze.isWindows(t),i=ae.makeRe(String(e),{...t,capture:!0}).exec(n?ze.toPosixSlashes(r):r);if(i)return i.slice(1).map(a=>a===void 0?\"\":a)};N.makeRe=(...e)=>ae.makeRe(...e);N.scan=(...e)=>ae.scan(...e);N.parse=(e,r)=>{let t=[];for(let n of[].concat(e||[]))for(let s of or(String(n),r))t.push(ae.parse(s,r));return t};N.braces=(e,r)=>{if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return r&&r.nobrace===!0||!/\\{.*\\}/.test(e)?[e]:or(e,r)};N.braceExpand=(e,r)=>{if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return N.braces(e,{...r,expand:!0})};ur.exports=N});var fr=q((ds,lr)=>{\"use strict\";lr.exports=(e,...r)=>new Promise(t=>{t(e(...r))})});var hr=q((gs,Ve)=>{\"use strict\";var qn=fr(),pr=e=>{if(e<1)throw new TypeError(\"Expected `concurrency` to be a number from 1 and up\");let r=[],t=0,n=()=>{t--,r.length>0&&r.shift()()},s=(c,p,...m)=>{t++;let h=qn(c,...m);p(h),h.then(n,n)},i=(c,p,...m)=>{t<e?s(c,p,...m):r.push(s.bind(null,c,p,...m))},a=(c,...p)=>new Promise(m=>i(c,m,...p));return Object.defineProperties(a,{activeCount:{get:()=>t},pendingCount:{get:()=>r.length}}),a};Ve.exports=pr;Ve.exports.default=pr});var Fn={};wr(Fn,{default:()=>jn});var Se=W(\"@yarnpkg/cli\"),ne=W(\"@yarnpkg/core\"),et=W(\"@yarnpkg/core\"),ue=W(\"clipanion\"),ce=class extends Se.BaseCommand{constructor(){super(...arguments);this.json=ue.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.production=ue.Option.Boolean(\"--production\",!1,{description:\"Only install regular dependencies by omitting dev dependencies\"});this.all=ue.Option.Boolean(\"-A,--all\",!1,{description:\"Install the entire project\"});this.workspaces=ue.Option.Rest()}async execute(){let t=await ne.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:s}=await ne.Project.find(t,this.context.cwd),i=await ne.Cache.find(t);await n.restoreInstallState({restoreResolutions:!1});let a;if(this.all)a=new Set(n.workspaces);else if(this.workspaces.length===0){if(!s)throw new Se.WorkspaceRequiredError(n.cwd,this.context.cwd);a=new Set([s])}else a=new Set(this.workspaces.map(p=>n.getWorkspaceByIdent(et.structUtils.parseIdent(p))));for(let p of a)for(let m of this.production?[\"dependencies\"]:ne.Manifest.hardDependencies)for(let h of p.manifest.getForScope(m).values()){let R=n.tryWorkspaceByDescriptor(h);R!==null&&a.add(R)}for(let p of n.workspaces)a.has(p)?this.production&&p.manifest.devDependencies.clear():(p.manifest.installConfig=p.manifest.installConfig||{},p.manifest.installConfig.selfReferences=!1,p.manifest.dependencies.clear(),p.manifest.devDependencies.clear(),p.manifest.peerDependencies.clear(),p.manifest.scripts.clear());return(await ne.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await n.install({cache:i,report:p,persistProject:!1})})).exitCode()}};ce.paths=[[\"workspaces\",\"focus\"]],ce.usage=ue.Command.Usage({category:\"Workspace-related commands\",description:\"install a single workspace and its dependencies\",details:\"\\n      This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\\n\\n      Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\\n\\n      If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\\n    \"});var Ne=W(\"@yarnpkg/cli\"),ge=W(\"@yarnpkg/core\"),_e=W(\"@yarnpkg/core\"),Y=W(\"@yarnpkg/core\"),gr=W(\"@yarnpkg/plugin-git\"),U=W(\"clipanion\"),Oe=Be(cr()),Ar=W(\"os\"),mr=Be(hr()),te=Be(W(\"typanion\")),pe=class extends Ne.BaseCommand{constructor(){super(...arguments);this.recursive=U.Option.Boolean(\"-R,--recursive\",!1,{description:\"Find packages via dependencies/devDependencies instead of using the workspaces field\"});this.from=U.Option.Array(\"--from\",[],{description:\"An array of glob pattern idents from which to base any recursion\"});this.all=U.Option.Boolean(\"-A,--all\",!1,{description:\"Run the command on all workspaces of a project\"});this.verbose=U.Option.Boolean(\"-v,--verbose\",!1,{description:\"Prefix each output line with the name of the originating workspace\"});this.parallel=U.Option.Boolean(\"-p,--parallel\",!1,{description:\"Run the commands in parallel\"});this.interlaced=U.Option.Boolean(\"-i,--interlaced\",!1,{description:\"Print the output of commands in real-time instead of buffering it\"});this.jobs=U.Option.String(\"-j,--jobs\",{description:\"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`\",validator:te.isOneOf([te.isEnum([\"unlimited\"]),te.applyCascade(te.isNumber(),[te.isInteger(),te.isAtLeast(1)])])});this.topological=U.Option.Boolean(\"-t,--topological\",!1,{description:\"Run the command after all workspaces it depends on (regular) have finished\"});this.topologicalDev=U.Option.Boolean(\"--topological-dev\",!1,{description:\"Run the command after all workspaces it depends on (regular + dev) have finished\"});this.include=U.Option.Array(\"--include\",[],{description:\"An array of glob pattern idents; only matching workspaces will be traversed\"});this.exclude=U.Option.Array(\"--exclude\",[],{description:\"An array of glob pattern idents; matching workspaces won't be traversed\"});this.publicOnly=U.Option.Boolean(\"--no-private\",{description:\"Avoid running the command on private workspaces\"});this.since=U.Option.String(\"--since\",{description:\"Only include workspaces that have been changed since the specified ref.\",tolerateBoolean:!0});this.commandName=U.Option.String();this.args=U.Option.Proxy()}async execute(){let t=await ge.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:s}=await ge.Project.find(t,this.context.cwd);if(!this.all&&!s)throw new Ne.WorkspaceRequiredError(n.cwd,this.context.cwd);await n.restoreInstallState();let i=this.cli.process([this.commandName,...this.args]),a=i.path.length===1&&i.path[0]===\"run\"&&typeof i.scriptName<\"u\"?i.scriptName:null;if(i.path.length===0)throw new U.UsageError(\"Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script\");let c=this.all?n.topLevelWorkspace:s,p=this.since?Array.from(await gr.gitUtils.fetchChangedWorkspaces({ref:this.since,project:n})):[c,...this.from.length>0?c.getRecursiveWorkspaceChildren():[]],m=g=>Oe.default.isMatch(Y.structUtils.stringifyIdent(g.locator),this.from),h=this.from.length>0?p.filter(m):p,R=new Set([...h,...h.map(g=>[...this.recursive?this.since?g.getRecursiveWorkspaceDependents():g.getRecursiveWorkspaceDependencies():g.getRecursiveWorkspaceChildren()]).flat()]),f=[],$=!1;if(a!=null&&a.includes(\":\")){for(let g of n.workspaces)if(g.manifest.scripts.has(a)&&($=!$,$===!1))break}for(let g of R)a&&!g.manifest.scripts.has(a)&&!$&&!(await ge.scriptUtils.getWorkspaceAccessibleBinaries(g)).has(a)||a===process.env.npm_lifecycle_event&&g.cwd===s.cwd||this.include.length>0&&!Oe.default.isMatch(Y.structUtils.stringifyIdent(g.locator),this.include)||this.exclude.length>0&&Oe.default.isMatch(Y.structUtils.stringifyIdent(g.locator),this.exclude)||this.publicOnly&&g.manifest.private===!0||f.push(g);let _=this.parallel?this.jobs===\"unlimited\"?1/0:Number(this.jobs)||Math.max(1,(0,Ar.cpus)().length/2):1,y=_===1?!1:this.parallel,E=y?this.interlaced:!0,S=(0,mr.default)(_),T=new Map,L=new Set,z=0,I=null,re=!1,K=await _e.StreamReport.start({configuration:t,stdout:this.context.stdout},async g=>{let v=async(k,{commandIndex:l})=>{if(re)return-1;!y&&this.verbose&&l>1&&g.reportSeparator();let H=Kn(k,{configuration:t,verbose:this.verbose,commandIndex:l}),[w,B]=dr(g,{prefix:H,interlaced:E}),[o,u]=dr(g,{prefix:H,interlaced:E});try{this.verbose&&g.reportInfo(null,`${H} Process started`);let M=Date.now(),b=await this.cli.run([this.commandName,...this.args],{cwd:k.cwd,stdout:w,stderr:o})||0;w.end(),o.end(),await B,await u;let V=Date.now();if(this.verbose){let J=t.get(\"enableTimers\")?`, completed in ${Y.formatUtils.pretty(t,V-M,Y.formatUtils.Type.DURATION)}`:\"\";g.reportInfo(null,`${H} Process exited (exit code ${b})${J}`)}return b===130&&(re=!0,I=b),b}catch(M){throw w.end(),o.end(),await B,await u,M}};for(let k of f)T.set(k.anchoredLocator.locatorHash,k);for(;T.size>0&&!g.hasErrors();){let k=[];for(let[w,B]of T){if(L.has(B.anchoredDescriptor.descriptorHash))continue;let o=!0;if(this.topological||this.topologicalDev){let u=this.topologicalDev?new Map([...B.manifest.dependencies,...B.manifest.devDependencies]):B.manifest.dependencies;for(let M of u.values()){let b=n.tryWorkspaceByDescriptor(M);if(o=b===null||!T.has(b.anchoredLocator.locatorHash),!o)break}}if(!!o&&(L.add(B.anchoredDescriptor.descriptorHash),k.push(S(async()=>{let u=await v(B,{commandIndex:++z});return T.delete(w),L.delete(B.anchoredDescriptor.descriptorHash),u})),!y))break}if(k.length===0){let w=Array.from(T.values()).map(B=>Y.structUtils.prettyLocator(t,B.anchoredLocator)).join(\", \");g.reportError(_e.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${w})`);return}let H=(await Promise.all(k)).find(w=>w!==0);I===null&&(I=typeof H<\"u\"?1:I),(this.topological||this.topologicalDev)&&typeof H<\"u\"&&g.reportError(_e.MessageName.UNNAMED,\"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph\")}});return I!==null?I:K.exitCode()}};pe.paths=[[\"workspaces\",\"foreach\"]],pe.usage=U.Command.Usage({category:\"Workspace-related commands\",description:\"run a command on all workspaces\",details:\"\\n      This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\\n\\n      - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\\n\\n      - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\\n\\n      - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\\n\\n      - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project. By default yarn runs the command only on current and all its descendant workspaces.\\n\\n      - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\\n\\n      - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\\n\\n      - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\\n\\n      - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\\n\\n      Adding the `-v,--verbose` flag will cause Yarn to print more information; in particular the name of the workspace that generated the output will be printed at the front of each line.\\n\\n      If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\\n    \",examples:[[\"Publish current and all descendant packages\",\"yarn workspaces foreach npm publish --tolerate-republish\"],[\"Run build script on current and all descendant packages\",\"yarn workspaces foreach run build\"],[\"Run build script on current and all descendant packages in parallel, building package dependencies first\",\"yarn workspaces foreach -pt run build\"],[\"Run build script on several packages and all their dependencies, building dependencies first\",\"yarn workspaces foreach -ptR --from '{workspace-a,workspace-b}' run build\"]]});function dr(e,{prefix:r,interlaced:t}){let n=e.createStreamReporter(r),s=new Y.miscUtils.DefaultStream;s.pipe(n,{end:!1}),s.on(\"finish\",()=>{n.end()});let i=new Promise(c=>{n.on(\"finish\",()=>{c(s.active)})});if(t)return[s,i];let a=new Y.miscUtils.BufferStream;return a.pipe(s,{end:!1}),a.on(\"finish\",()=>{s.end()}),[a,i]}function Kn(e,{configuration:r,commandIndex:t,verbose:n}){if(!n)return null;let i=`[${Y.structUtils.stringifyIdent(e.locator)}]:`,a=[\"#2E86AB\",\"#A23B72\",\"#F18F01\",\"#C73E1D\",\"#CCE2A3\"],c=a[t%a.length];return Y.formatUtils.pretty(r,i,c)}var Wn={commands:[ce,pe]},jn=Wn;return Sr(Fn);})();\n/*!\n * fill-range <https://github.com/jonschlinkert/fill-range>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n/*!\n * is-number <https://github.com/jonschlinkert/is-number>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n/*!\n * to-regex-range <https://github.com/micromatch/to-regex-range>\n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\nreturn plugin;\n}\n};\n"
  },
  {
    "path": ".yarn/releases/yarn-3.3.0.cjs",
    "content": "#!/usr/bin/env node\n/* eslint-disable */\n//prettier-ignore\n(()=>{var lfe=Object.create;var GS=Object.defineProperty;var cfe=Object.getOwnPropertyDescriptor;var ufe=Object.getOwnPropertyNames;var gfe=Object.getPrototypeOf,ffe=Object.prototype.hasOwnProperty;var J=(r=>typeof require<\"u\"?require:typeof Proxy<\"u\"?new Proxy(r,{get:(e,t)=>(typeof require<\"u\"?require:e)[t]}):r)(function(r){if(typeof require<\"u\")return require.apply(this,arguments);throw new Error('Dynamic require of \"'+r+'\" is not supported')});var y=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ht=(r,e)=>{for(var t in e)GS(r,t,{get:e[t],enumerable:!0})},hfe=(r,e,t,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of ufe(e))!ffe.call(r,n)&&n!==t&&GS(r,n,{get:()=>e[n],enumerable:!(i=cfe(e,n))||i.enumerable});return r};var ne=(r,e,t)=>(t=r!=null?lfe(gfe(r)):{},hfe(e||!r||!r.__esModule?GS(t,\"default\",{value:r,enumerable:!0}):t,r));var iU=y((iZe,rU)=>{rU.exports=tU;tU.sync=Lfe;var $1=J(\"fs\");function Nfe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(\";\"),t.indexOf(\"\")!==-1))return!0;for(var i=0;i<t.length;i++){var n=t[i].toLowerCase();if(n&&r.substr(-n.length).toLowerCase()===n)return!0}return!1}function eU(r,e,t){return!r.isSymbolicLink()&&!r.isFile()?!1:Nfe(e,t)}function tU(r,e,t){$1.stat(r,function(i,n){t(i,i?!1:eU(n,r,e))})}function Lfe(r,e){return eU($1.statSync(r),r,e)}});var AU=y((nZe,aU)=>{aU.exports=sU;sU.sync=Tfe;var nU=J(\"fs\");function sU(r,e,t){nU.stat(r,function(i,n){t(i,i?!1:oU(n,e))})}function Tfe(r,e){return oU(nU.statSync(r),e)}function oU(r,e){return r.isFile()&&Ofe(r,e)}function Ofe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt(\"100\",8),l=parseInt(\"010\",8),c=parseInt(\"001\",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var cU=y((oZe,lU)=>{var sZe=J(\"fs\"),LI;process.platform===\"win32\"||global.TESTING_WINDOWS?LI=iU():LI=AU();lU.exports=sv;sv.sync=Mfe;function sv(r,e,t){if(typeof e==\"function\"&&(t=e,e={}),!t){if(typeof Promise!=\"function\")throw new TypeError(\"callback not provided\");return new Promise(function(i,n){sv(r,e||{},function(s,o){s?n(s):i(o)})})}LI(r,e||{},function(i,n){i&&(i.code===\"EACCES\"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function Mfe(r,e){try{return LI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code===\"EACCES\")return!1;throw t}}});var CU=y((aZe,dU)=>{var Xg=process.platform===\"win32\"||process.env.OSTYPE===\"cygwin\"||process.env.OSTYPE===\"msys\",uU=J(\"path\"),Kfe=Xg?\";\":\":\",gU=cU(),fU=r=>Object.assign(new Error(`not found: ${r}`),{code:\"ENOENT\"}),hU=(r,e)=>{let t=e.colon||Kfe,i=r.match(/\\//)||Xg&&r.match(/\\\\/)?[\"\"]:[...Xg?[process.cwd()]:[],...(e.path||process.env.PATH||\"\").split(t)],n=Xg?e.pathExt||process.env.PATHEXT||\".EXE;.CMD;.BAT;.COM\":\"\",s=Xg?n.split(t):[\"\"];return Xg&&r.indexOf(\".\")!==-1&&s[0]!==\"\"&&s.unshift(\"\"),{pathEnv:i,pathExt:s,pathExtExe:n}},pU=(r,e,t)=>{typeof e==\"function\"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=hU(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(fU(r));let f=i[c],h=/^\".*\"$/.test(f)?f.slice(1,-1):f,p=uU.join(h,r),C=!h&&/^\\.[\\\\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];gU(c+p,{pathExt:s},(C,w)=>{if(!C&&w)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Ufe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=hU(r,e),s=[];for(let o=0;o<t.length;o++){let a=t[o],l=/^\".*\"$/.test(a)?a.slice(1,-1):a,c=uU.join(l,r),u=!l&&/^\\.[\\\\\\/]/.test(r)?r.slice(0,2)+c:c;for(let g=0;g<i.length;g++){let f=u+i[g];try{if(gU.sync(f,{pathExt:n}))if(e.all)s.push(f);else return f}catch{}}}if(e.all&&s.length)return s;if(e.nothrow)return null;throw fU(r)};dU.exports=pU;pU.sync=Ufe});var EU=y((AZe,ov)=>{\"use strict\";var mU=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!==\"win32\"?\"PATH\":Object.keys(e).reverse().find(i=>i.toUpperCase()===\"PATH\")||\"Path\"};ov.exports=mU;ov.exports.default=mU});var BU=y((lZe,wU)=>{\"use strict\";var IU=J(\"path\"),Hfe=CU(),Gfe=EU();function yU(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=Hfe.sync(r.command,{path:t[Gfe({env:t})],pathExt:e?IU.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=IU.resolve(n?r.options.cwd:\"\",o)),o}function Yfe(r){return yU(r)||yU(r,!0)}wU.exports=Yfe});var QU=y((cZe,Av)=>{\"use strict\";var av=/([()\\][%!^\"`<>&|;, *?])/g;function jfe(r){return r=r.replace(av,\"^$1\"),r}function qfe(r,e){return r=`${r}`,r=r.replace(/(\\\\*)\"/g,'$1$1\\\\\"'),r=r.replace(/(\\\\*)$/,\"$1$1\"),r=`\"${r}\"`,r=r.replace(av,\"^$1\"),e&&(r=r.replace(av,\"^$1\")),r}Av.exports.command=jfe;Av.exports.argument=qfe});var SU=y((uZe,bU)=>{\"use strict\";bU.exports=/^#!(.*)/});var xU=y((gZe,vU)=>{\"use strict\";var Jfe=SU();vU.exports=(r=\"\")=>{let e=r.match(Jfe);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,\"\").split(\" \"),n=t.split(\"/\").pop();return n===\"env\"?i:i?`${n} ${i}`:n}});var DU=y((fZe,PU)=>{\"use strict\";var lv=J(\"fs\"),Wfe=xU();function zfe(r){let t=Buffer.alloc(150),i;try{i=lv.openSync(r,\"r\"),lv.readSync(i,t,0,150,0),lv.closeSync(i)}catch{}return Wfe(t.toString())}PU.exports=zfe});var NU=y((hZe,FU)=>{\"use strict\";var Vfe=J(\"path\"),kU=BU(),RU=QU(),Xfe=DU(),_fe=process.platform===\"win32\",Zfe=/\\.(?:com|exe)$/i,$fe=/node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;function ehe(r){r.file=kU(r);let e=r.file&&Xfe(r.file);return e?(r.args.unshift(r.file),r.command=e,kU(r)):r.file}function the(r){if(!_fe)return r;let e=ehe(r),t=!Zfe.test(e);if(r.options.forceShell||t){let i=$fe.test(e);r.command=Vfe.normalize(r.command),r.command=RU.command(r.command),r.args=r.args.map(s=>RU.argument(s,i));let n=[r.command].concat(r.args).join(\" \");r.args=[\"/d\",\"/s\",\"/c\",`\"${n}\"`],r.command=process.env.comspec||\"cmd.exe\",r.options.windowsVerbatimArguments=!0}return r}function rhe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:the(i)}FU.exports=rhe});var OU=y((pZe,TU)=>{\"use strict\";var cv=process.platform===\"win32\";function uv(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:\"ENOENT\",errno:\"ENOENT\",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function ihe(r,e){if(!cv)return;let t=r.emit;r.emit=function(i,n){if(i===\"exit\"){let s=LU(n,e,\"spawn\");if(s)return t.call(r,\"error\",s)}return t.apply(r,arguments)}}function LU(r,e){return cv&&r===1&&!e.file?uv(e.original,\"spawn\"):null}function nhe(r,e){return cv&&r===1&&!e.file?uv(e.original,\"spawnSync\"):null}TU.exports={hookChildProcess:ihe,verifyENOENT:LU,verifyENOENTSync:nhe,notFoundError:uv}});var hv=y((dZe,_g)=>{\"use strict\";var MU=J(\"child_process\"),gv=NU(),fv=OU();function KU(r,e,t){let i=gv(r,e,t),n=MU.spawn(i.command,i.args,i.options);return fv.hookChildProcess(n,i),n}function she(r,e,t){let i=gv(r,e,t),n=MU.spawnSync(i.command,i.args,i.options);return n.error=n.error||fv.verifyENOENTSync(n.status,i),n}_g.exports=KU;_g.exports.spawn=KU;_g.exports.sync=she;_g.exports._parse=gv;_g.exports._enoent=fv});var HU=y((CZe,UU)=>{\"use strict\";function ohe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function cc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name=\"SyntaxError\",typeof Error.captureStackTrace==\"function\"&&Error.captureStackTrace(this,cc)}ohe(cc,Error);cc.buildMessage=function(r,e){var t={literal:function(c){return'\"'+n(c.text)+'\"'},class:function(c){var u=\"\",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+\"-\"+s(c.parts[g][1]):s(c.parts[g]);return\"[\"+(c.inverted?\"^\":\"\")+u+\"]\"},any:function(c){return\"any character\"},end:function(c){return\"end of input\"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(u){return\"\\\\x0\"+i(u)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(u){return\"\\\\x\"+i(u)})}function s(c){return c.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\]/g,\"\\\\]\").replace(/\\^/g,\"\\\\^\").replace(/-/g,\"\\\\-\").replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(u){return\"\\\\x0\"+i(u)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(u){return\"\\\\x\"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,f;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,f=1;g<u.length;g++)u[g-1]!==u[g]&&(u[f]=u[g],f++);u.length=f}switch(u.length){case 1:return u[0];case 2:return u[0]+\" or \"+u[1];default:return u.slice(0,-1).join(\", \")+\", or \"+u[u.length-1]}}function l(c){return c?'\"'+n(c)+'\"':\"end of input\"}return\"Expected \"+a(r)+\" but \"+l(e)+\" found.\"};function ahe(r,e){e=e!==void 0?e:{};var t={},i={Start:xA},n=xA,s=function(m){return m||[]},o=function(m,b,F){return[{command:m,type:b}].concat(F||[])},a=function(m,b){return[{command:m,type:b||\";\"}]},l=function(m){return m},c=\";\",u=de(\";\",!1),g=\"&\",f=de(\"&\",!1),h=function(m,b){return b?{chain:m,then:b}:{chain:m}},p=function(m,b){return{type:m,line:b}},C=\"&&\",w=de(\"&&\",!1),B=\"||\",v=de(\"||\",!1),D=function(m,b){return b?{...m,then:b}:m},L=function(m,b){return{type:m,chain:b}},H=\"|&\",j=de(\"|&\",!1),$=\"|\",V=de(\"|\",!1),W=\"=\",Z=de(\"=\",!1),A=function(m,b){return{name:m,args:[b]}},ae=function(m){return{name:m,args:[]}},ge=\"(\",_=de(\"(\",!1),T=\")\",N=de(\")\",!1),ue=function(m,b){return{type:\"subshell\",subshell:m,args:b}},we=\"{\",Le=de(\"{\",!1),Pe=\"}\",Te=de(\"}\",!1),se=function(m,b){return{type:\"group\",group:m,args:b}},Ae=function(m,b){return{type:\"command\",args:b,envs:m}},Qe=function(m){return{type:\"envs\",envs:m}},fe=function(m){return m},le=function(m){return m},Ge=/^[0-9]/,ie=Ye([[\"0\",\"9\"]],!1,!1),Y=function(m,b,F){return{type:\"redirection\",subtype:b,fd:m!==null?parseInt(m):null,args:[F]}},he=\">>\",re=de(\">>\",!1),me=\">&\",tt=de(\">&\",!1),Rt=\">\",It=de(\">\",!1),Kr=\"<<<\",oi=de(\"<<<\",!1),pi=\"<&\",pr=de(\"<&\",!1),di=\"<\",ai=de(\"<\",!1),Os=function(m){return{type:\"argument\",segments:[].concat(...m)}},dr=function(m){return m},Bi=\"$'\",_n=de(\"$'\",!1),ha=\"'\",mA=de(\"'\",!1),Dg=function(m){return[{type:\"text\",text:m}]},Zn='\"\"',EA=de('\"\"',!1),pa=function(){return{type:\"text\",text:\"\"}},jp='\"',IA=de('\"',!1),yA=function(m){return m},Br=function(m){return{type:\"arithmetic\",arithmetic:m,quoted:!0}},zl=function(m){return{type:\"shell\",shell:m,quoted:!0}},kg=function(m){return{type:\"variable\",...m,quoted:!0}},Eo=function(m){return{type:\"text\",text:m}},Rg=function(m){return{type:\"arithmetic\",arithmetic:m,quoted:!1}},qp=function(m){return{type:\"shell\",shell:m,quoted:!1}},Jp=function(m){return{type:\"variable\",...m,quoted:!1}},xr=function(m){return{type:\"glob\",pattern:m}},oe=/^[^']/,Io=Ye([\"'\"],!0,!1),kn=function(m){return m.join(\"\")},Fg=/^[^$\"]/,Qt=Ye([\"$\",'\"'],!0,!1),Vl=`\\\\\n`,Rn=de(`\\\\\n`,!1),$n=function(){return\"\"},es=\"\\\\\",ut=de(\"\\\\\",!1),yo=/^[\\\\$\"`]/,at=Ye([\"\\\\\",\"$\",'\"',\"`\"],!1,!1),ln=function(m){return m},S=\"\\\\a\",Tt=de(\"\\\\a\",!1),Ng=function(){return\"a\"},Xl=\"\\\\b\",Wp=de(\"\\\\b\",!1),zp=function(){return\"\\b\"},Vp=/^[Ee]/,Xp=Ye([\"E\",\"e\"],!1,!1),_p=function(){return\"\\x1B\"},G=\"\\\\f\",yt=de(\"\\\\f\",!1),wA=function(){return\"\\f\"},Wi=\"\\\\n\",_l=de(\"\\\\n\",!1),We=function(){return`\n`},da=\"\\\\r\",Lg=de(\"\\\\r\",!1),lI=function(){return\"\\r\"},Zp=\"\\\\t\",cI=de(\"\\\\t\",!1),ar=function(){return\"\t\"},Fn=\"\\\\v\",Zl=de(\"\\\\v\",!1),$p=function(){return\"\\v\"},Ms=/^[\\\\'\"?]/,Ca=Ye([\"\\\\\",\"'\",'\"',\"?\"],!1,!1),cn=function(m){return String.fromCharCode(parseInt(m,16))},De=\"\\\\x\",Tg=de(\"\\\\x\",!1),$l=\"\\\\u\",Ks=de(\"\\\\u\",!1),ec=\"\\\\U\",BA=de(\"\\\\U\",!1),Og=function(m){return String.fromCodePoint(parseInt(m,16))},Mg=/^[0-7]/,ma=Ye([[\"0\",\"7\"]],!1,!1),Ea=/^[0-9a-fA-f]/,$e=Ye([[\"0\",\"9\"],[\"a\",\"f\"],[\"A\",\"f\"]],!1,!1),wo=rt(),QA=\"-\",tc=de(\"-\",!1),Us=\"+\",rc=de(\"+\",!1),uI=\".\",ed=de(\".\",!1),Kg=function(m,b,F){return{type:\"number\",value:(m===\"-\"?-1:1)*parseFloat(b.join(\"\")+\".\"+F.join(\"\"))}},td=function(m,b){return{type:\"number\",value:(m===\"-\"?-1:1)*parseInt(b.join(\"\"))}},gI=function(m){return{type:\"variable\",...m}},ic=function(m){return{type:\"variable\",name:m}},fI=function(m){return m},Ug=\"*\",bA=de(\"*\",!1),Fr=\"/\",hI=de(\"/\",!1),Hs=function(m,b,F){return{type:b===\"*\"?\"multiplication\":\"division\",right:F}},Gs=function(m,b){return b.reduce((F,U)=>({left:F,...U}),m)},Hg=function(m,b,F){return{type:b===\"+\"?\"addition\":\"subtraction\",right:F}},SA=\"$((\",R=de(\"$((\",!1),q=\"))\",pe=de(\"))\",!1),Ne=function(m){return m},xe=\"$(\",qe=de(\"$(\",!1),dt=function(m){return m},Ft=\"${\",Nn=de(\"${\",!1),bS=\":-\",s1=de(\":-\",!1),o1=function(m,b){return{name:m,defaultValue:b}},SS=\":-}\",a1=de(\":-}\",!1),A1=function(m){return{name:m,defaultValue:[]}},vS=\":+\",l1=de(\":+\",!1),c1=function(m,b){return{name:m,alternativeValue:b}},xS=\":+}\",u1=de(\":+}\",!1),g1=function(m){return{name:m,alternativeValue:[]}},PS=function(m){return{name:m}},f1=\"$\",h1=de(\"$\",!1),p1=function(m){return e.isGlobPattern(m)},d1=function(m){return m},DS=/^[a-zA-Z0-9_]/,kS=Ye([[\"a\",\"z\"],[\"A\",\"Z\"],[\"0\",\"9\"],\"_\"],!1,!1),RS=function(){return O()},FS=/^[$@*?#a-zA-Z0-9_\\-]/,NS=Ye([\"$\",\"@\",\"*\",\"?\",\"#\",[\"a\",\"z\"],[\"A\",\"Z\"],[\"0\",\"9\"],\"_\",\"-\"],!1,!1),C1=/^[(){}<>$|&; \\t\"']/,Gg=Ye([\"(\",\")\",\"{\",\"}\",\"<\",\">\",\"$\",\"|\",\"&\",\";\",\" \",\"\t\",'\"',\"'\"],!1,!1),LS=/^[<>&; \\t\"']/,TS=Ye([\"<\",\">\",\"&\",\";\",\" \",\"\t\",'\"',\"'\"],!1,!1),pI=/^[ \\t]/,dI=Ye([\" \",\"\t\"],!1,!1),Q=0,Re=0,vA=[{line:1,column:1}],d=0,E=[],I=0,k;if(\"startRule\"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule \"`+e.startRule+'\".');n=i[e.startRule]}function O(){return r.substring(Re,Q)}function X(){return Et(Re,Q)}function te(m,b){throw b=b!==void 0?b:Et(Re,Q),Fi([At(m)],r.substring(Re,Q),b)}function ye(m,b){throw b=b!==void 0?b:Et(Re,Q),Ln(m,b)}function de(m,b){return{type:\"literal\",text:m,ignoreCase:b}}function Ye(m,b,F){return{type:\"class\",parts:m,inverted:b,ignoreCase:F}}function rt(){return{type:\"any\"}}function wt(){return{type:\"end\"}}function At(m){return{type:\"other\",description:m}}function et(m){var b=vA[m],F;if(b)return b;for(F=m-1;!vA[F];)F--;for(b=vA[F],b={line:b.line,column:b.column};F<m;)r.charCodeAt(F)===10?(b.line++,b.column=1):b.column++,F++;return vA[m]=b,b}function Et(m,b){var F=et(m),U=et(b);return{start:{offset:m,line:F.line,column:F.column},end:{offset:b,line:U.line,column:U.column}}}function Be(m){Q<d||(Q>d&&(d=Q,E=[]),E.push(m))}function Ln(m,b){return new cc(m,null,null,b)}function Fi(m,b,F){return new cc(cc.buildMessage(m,b),m,b,F)}function xA(){var m,b;return m=Q,b=Ur(),b===t&&(b=null),b!==t&&(Re=m,b=s(b)),m=b,m}function Ur(){var m,b,F,U,ce;if(m=Q,b=Hr(),b!==t){for(F=[],U=Me();U!==t;)F.push(U),U=Me();F!==t?(U=Ia(),U!==t?(ce=ts(),ce===t&&(ce=null),ce!==t?(Re=m,b=o(b,U,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;if(m===t)if(m=Q,b=Hr(),b!==t){for(F=[],U=Me();U!==t;)F.push(U),U=Me();F!==t?(U=Ia(),U===t&&(U=null),U!==t?(Re=m,b=a(b,U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;return m}function ts(){var m,b,F,U,ce;for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();if(b!==t)if(F=Ur(),F!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();U!==t?(Re=m,b=l(F),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;return m}function Ia(){var m;return r.charCodeAt(Q)===59?(m=c,Q++):(m=t,I===0&&Be(u)),m===t&&(r.charCodeAt(Q)===38?(m=g,Q++):(m=t,I===0&&Be(f))),m}function Hr(){var m,b,F;return m=Q,b=m1(),b!==t?(F=Jge(),F===t&&(F=null),F!==t?(Re=m,b=h(b,F),m=b):(Q=m,m=t)):(Q=m,m=t),m}function Jge(){var m,b,F,U,ce,be,ft;for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();if(b!==t)if(F=Wge(),F!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();if(U!==t)if(ce=Hr(),ce!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(Re=m,b=p(F,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;return m}function Wge(){var m;return r.substr(Q,2)===C?(m=C,Q+=2):(m=t,I===0&&Be(w)),m===t&&(r.substr(Q,2)===B?(m=B,Q+=2):(m=t,I===0&&Be(v))),m}function m1(){var m,b,F;return m=Q,b=Xge(),b!==t?(F=zge(),F===t&&(F=null),F!==t?(Re=m,b=D(b,F),m=b):(Q=m,m=t)):(Q=m,m=t),m}function zge(){var m,b,F,U,ce,be,ft;for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();if(b!==t)if(F=Vge(),F!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();if(U!==t)if(ce=m1(),ce!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(Re=m,b=L(F,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;return m}function Vge(){var m;return r.substr(Q,2)===H?(m=H,Q+=2):(m=t,I===0&&Be(j)),m===t&&(r.charCodeAt(Q)===124?(m=$,Q++):(m=t,I===0&&Be(V))),m}function CI(){var m,b,F,U,ce,be;if(m=Q,b=D1(),b!==t)if(r.charCodeAt(Q)===61?(F=W,Q++):(F=t,I===0&&Be(Z)),F!==t)if(U=y1(),U!==t){for(ce=[],be=Me();be!==t;)ce.push(be),be=Me();ce!==t?(Re=m,b=A(b,U),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;else Q=m,m=t;if(m===t)if(m=Q,b=D1(),b!==t)if(r.charCodeAt(Q)===61?(F=W,Q++):(F=t,I===0&&Be(Z)),F!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();U!==t?(Re=m,b=ae(b),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;return m}function Xge(){var m,b,F,U,ce,be,ft,Bt,Vr,Ci,rs;for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();if(b!==t)if(r.charCodeAt(Q)===40?(F=ge,Q++):(F=t,I===0&&Be(_)),F!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();if(U!==t)if(ce=Ur(),ce!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(Q)===41?(ft=T,Q++):(ft=t,I===0&&Be(N)),ft!==t){for(Bt=[],Vr=Me();Vr!==t;)Bt.push(Vr),Vr=Me();if(Bt!==t){for(Vr=[],Ci=rd();Ci!==t;)Vr.push(Ci),Ci=rd();if(Vr!==t){for(Ci=[],rs=Me();rs!==t;)Ci.push(rs),rs=Me();Ci!==t?(Re=m,b=ue(ce,Vr),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;if(m===t){for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();if(b!==t)if(r.charCodeAt(Q)===123?(F=we,Q++):(F=t,I===0&&Be(Le)),F!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();if(U!==t)if(ce=Ur(),ce!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(Q)===125?(ft=Pe,Q++):(ft=t,I===0&&Be(Te)),ft!==t){for(Bt=[],Vr=Me();Vr!==t;)Bt.push(Vr),Vr=Me();if(Bt!==t){for(Vr=[],Ci=rd();Ci!==t;)Vr.push(Ci),Ci=rd();if(Vr!==t){for(Ci=[],rs=Me();rs!==t;)Ci.push(rs),rs=Me();Ci!==t?(Re=m,b=se(ce,Vr),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;if(m===t){for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();if(b!==t){for(F=[],U=CI();U!==t;)F.push(U),U=CI();if(F!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();if(U!==t){if(ce=[],be=I1(),be!==t)for(;be!==t;)ce.push(be),be=I1();else ce=t;if(ce!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(Re=m,b=Ae(F,ce),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;if(m===t){for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();if(b!==t){if(F=[],U=CI(),U!==t)for(;U!==t;)F.push(U),U=CI();else F=t;if(F!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();U!==t?(Re=m,b=Qe(F),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}}}return m}function E1(){var m,b,F,U,ce;for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();if(b!==t){if(F=[],U=mI(),U!==t)for(;U!==t;)F.push(U),U=mI();else F=t;if(F!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();U!==t?(Re=m,b=fe(F),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t;return m}function I1(){var m,b,F;for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();if(b!==t?(F=rd(),F!==t?(Re=m,b=le(F),m=b):(Q=m,m=t)):(Q=m,m=t),m===t){for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();b!==t?(F=mI(),F!==t?(Re=m,b=le(F),m=b):(Q=m,m=t)):(Q=m,m=t)}return m}function rd(){var m,b,F,U,ce;for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();return b!==t?(Ge.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(ie)),F===t&&(F=null),F!==t?(U=_ge(),U!==t?(ce=mI(),ce!==t?(Re=m,b=Y(F,U,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function _ge(){var m;return r.substr(Q,2)===he?(m=he,Q+=2):(m=t,I===0&&Be(re)),m===t&&(r.substr(Q,2)===me?(m=me,Q+=2):(m=t,I===0&&Be(tt)),m===t&&(r.charCodeAt(Q)===62?(m=Rt,Q++):(m=t,I===0&&Be(It)),m===t&&(r.substr(Q,3)===Kr?(m=Kr,Q+=3):(m=t,I===0&&Be(oi)),m===t&&(r.substr(Q,2)===pi?(m=pi,Q+=2):(m=t,I===0&&Be(pr)),m===t&&(r.charCodeAt(Q)===60?(m=di,Q++):(m=t,I===0&&Be(ai))))))),m}function mI(){var m,b,F;for(m=Q,b=[],F=Me();F!==t;)b.push(F),F=Me();return b!==t?(F=y1(),F!==t?(Re=m,b=le(F),m=b):(Q=m,m=t)):(Q=m,m=t),m}function y1(){var m,b,F;if(m=Q,b=[],F=w1(),F!==t)for(;F!==t;)b.push(F),F=w1();else b=t;return b!==t&&(Re=m,b=Os(b)),m=b,m}function w1(){var m,b;return m=Q,b=Zge(),b!==t&&(Re=m,b=dr(b)),m=b,m===t&&(m=Q,b=$ge(),b!==t&&(Re=m,b=dr(b)),m=b,m===t&&(m=Q,b=efe(),b!==t&&(Re=m,b=dr(b)),m=b,m===t&&(m=Q,b=tfe(),b!==t&&(Re=m,b=dr(b)),m=b))),m}function Zge(){var m,b,F,U;return m=Q,r.substr(Q,2)===Bi?(b=Bi,Q+=2):(b=t,I===0&&Be(_n)),b!==t?(F=nfe(),F!==t?(r.charCodeAt(Q)===39?(U=ha,Q++):(U=t,I===0&&Be(mA)),U!==t?(Re=m,b=Dg(F),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function $ge(){var m,b,F,U;return m=Q,r.charCodeAt(Q)===39?(b=ha,Q++):(b=t,I===0&&Be(mA)),b!==t?(F=rfe(),F!==t?(r.charCodeAt(Q)===39?(U=ha,Q++):(U=t,I===0&&Be(mA)),U!==t?(Re=m,b=Dg(F),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function efe(){var m,b,F,U;if(m=Q,r.substr(Q,2)===Zn?(b=Zn,Q+=2):(b=t,I===0&&Be(EA)),b!==t&&(Re=m,b=pa()),m=b,m===t)if(m=Q,r.charCodeAt(Q)===34?(b=jp,Q++):(b=t,I===0&&Be(IA)),b!==t){for(F=[],U=B1();U!==t;)F.push(U),U=B1();F!==t?(r.charCodeAt(Q)===34?(U=jp,Q++):(U=t,I===0&&Be(IA)),U!==t?(Re=m,b=yA(F),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;return m}function tfe(){var m,b,F;if(m=Q,b=[],F=Q1(),F!==t)for(;F!==t;)b.push(F),F=Q1();else b=t;return b!==t&&(Re=m,b=yA(b)),m=b,m}function B1(){var m,b;return m=Q,b=x1(),b!==t&&(Re=m,b=Br(b)),m=b,m===t&&(m=Q,b=P1(),b!==t&&(Re=m,b=zl(b)),m=b,m===t&&(m=Q,b=US(),b!==t&&(Re=m,b=kg(b)),m=b,m===t&&(m=Q,b=ife(),b!==t&&(Re=m,b=Eo(b)),m=b))),m}function Q1(){var m,b;return m=Q,b=x1(),b!==t&&(Re=m,b=Rg(b)),m=b,m===t&&(m=Q,b=P1(),b!==t&&(Re=m,b=qp(b)),m=b,m===t&&(m=Q,b=US(),b!==t&&(Re=m,b=Jp(b)),m=b,m===t&&(m=Q,b=afe(),b!==t&&(Re=m,b=xr(b)),m=b,m===t&&(m=Q,b=ofe(),b!==t&&(Re=m,b=Eo(b)),m=b)))),m}function rfe(){var m,b,F;for(m=Q,b=[],oe.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(Io));F!==t;)b.push(F),oe.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(Io));return b!==t&&(Re=m,b=kn(b)),m=b,m}function ife(){var m,b,F;if(m=Q,b=[],F=b1(),F===t&&(Fg.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(Qt))),F!==t)for(;F!==t;)b.push(F),F=b1(),F===t&&(Fg.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(Qt)));else b=t;return b!==t&&(Re=m,b=kn(b)),m=b,m}function b1(){var m,b,F;return m=Q,r.substr(Q,2)===Vl?(b=Vl,Q+=2):(b=t,I===0&&Be(Rn)),b!==t&&(Re=m,b=$n()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Be(ut)),b!==t?(yo.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(at)),F!==t?(Re=m,b=ln(F),m=b):(Q=m,m=t)):(Q=m,m=t)),m}function nfe(){var m,b,F;for(m=Q,b=[],F=S1(),F===t&&(oe.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(Io)));F!==t;)b.push(F),F=S1(),F===t&&(oe.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(Io)));return b!==t&&(Re=m,b=kn(b)),m=b,m}function S1(){var m,b,F;return m=Q,r.substr(Q,2)===S?(b=S,Q+=2):(b=t,I===0&&Be(Tt)),b!==t&&(Re=m,b=Ng()),m=b,m===t&&(m=Q,r.substr(Q,2)===Xl?(b=Xl,Q+=2):(b=t,I===0&&Be(Wp)),b!==t&&(Re=m,b=zp()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Be(ut)),b!==t?(Vp.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(Xp)),F!==t?(Re=m,b=_p(),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===G?(b=G,Q+=2):(b=t,I===0&&Be(yt)),b!==t&&(Re=m,b=wA()),m=b,m===t&&(m=Q,r.substr(Q,2)===Wi?(b=Wi,Q+=2):(b=t,I===0&&Be(_l)),b!==t&&(Re=m,b=We()),m=b,m===t&&(m=Q,r.substr(Q,2)===da?(b=da,Q+=2):(b=t,I===0&&Be(Lg)),b!==t&&(Re=m,b=lI()),m=b,m===t&&(m=Q,r.substr(Q,2)===Zp?(b=Zp,Q+=2):(b=t,I===0&&Be(cI)),b!==t&&(Re=m,b=ar()),m=b,m===t&&(m=Q,r.substr(Q,2)===Fn?(b=Fn,Q+=2):(b=t,I===0&&Be(Zl)),b!==t&&(Re=m,b=$p()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Be(ut)),b!==t?(Ms.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(Ca)),F!==t?(Re=m,b=ln(F),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=sfe()))))))))),m}function sfe(){var m,b,F,U,ce,be,ft,Bt,Vr,Ci,rs,HS;return m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Be(ut)),b!==t?(F=OS(),F!==t?(Re=m,b=cn(F),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===De?(b=De,Q+=2):(b=t,I===0&&Be(Tg)),b!==t?(F=Q,U=Q,ce=OS(),ce!==t?(be=Tn(),be!==t?(ce=[ce,be],U=ce):(Q=U,U=t)):(Q=U,U=t),U===t&&(U=OS()),U!==t?F=r.substring(F,Q):F=U,F!==t?(Re=m,b=cn(F),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===$l?(b=$l,Q+=2):(b=t,I===0&&Be(Ks)),b!==t?(F=Q,U=Q,ce=Tn(),ce!==t?(be=Tn(),be!==t?(ft=Tn(),ft!==t?(Bt=Tn(),Bt!==t?(ce=[ce,be,ft,Bt],U=ce):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t),U!==t?F=r.substring(F,Q):F=U,F!==t?(Re=m,b=cn(F),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===ec?(b=ec,Q+=2):(b=t,I===0&&Be(BA)),b!==t?(F=Q,U=Q,ce=Tn(),ce!==t?(be=Tn(),be!==t?(ft=Tn(),ft!==t?(Bt=Tn(),Bt!==t?(Vr=Tn(),Vr!==t?(Ci=Tn(),Ci!==t?(rs=Tn(),rs!==t?(HS=Tn(),HS!==t?(ce=[ce,be,ft,Bt,Vr,Ci,rs,HS],U=ce):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t),U!==t?F=r.substring(F,Q):F=U,F!==t?(Re=m,b=Og(F),m=b):(Q=m,m=t)):(Q=m,m=t)))),m}function OS(){var m;return Mg.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Be(ma)),m}function Tn(){var m;return Ea.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Be($e)),m}function ofe(){var m,b,F,U,ce;if(m=Q,b=[],F=Q,r.charCodeAt(Q)===92?(U=es,Q++):(U=t,I===0&&Be(ut)),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(wo)),ce!==t?(Re=F,U=ln(ce),F=U):(Q=F,F=t)):(Q=F,F=t),F===t&&(F=Q,U=Q,I++,ce=k1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(wo)),ce!==t?(Re=F,U=ln(ce),F=U):(Q=F,F=t)):(Q=F,F=t)),F!==t)for(;F!==t;)b.push(F),F=Q,r.charCodeAt(Q)===92?(U=es,Q++):(U=t,I===0&&Be(ut)),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(wo)),ce!==t?(Re=F,U=ln(ce),F=U):(Q=F,F=t)):(Q=F,F=t),F===t&&(F=Q,U=Q,I++,ce=k1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(wo)),ce!==t?(Re=F,U=ln(ce),F=U):(Q=F,F=t)):(Q=F,F=t));else b=t;return b!==t&&(Re=m,b=kn(b)),m=b,m}function MS(){var m,b,F,U,ce,be;if(m=Q,r.charCodeAt(Q)===45?(b=QA,Q++):(b=t,I===0&&Be(tc)),b===t&&(r.charCodeAt(Q)===43?(b=Us,Q++):(b=t,I===0&&Be(rc))),b===t&&(b=null),b!==t){if(F=[],Ge.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Be(ie)),U!==t)for(;U!==t;)F.push(U),Ge.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Be(ie));else F=t;if(F!==t)if(r.charCodeAt(Q)===46?(U=uI,Q++):(U=t,I===0&&Be(ed)),U!==t){if(ce=[],Ge.test(r.charAt(Q))?(be=r.charAt(Q),Q++):(be=t,I===0&&Be(ie)),be!==t)for(;be!==t;)ce.push(be),Ge.test(r.charAt(Q))?(be=r.charAt(Q),Q++):(be=t,I===0&&Be(ie));else ce=t;ce!==t?(Re=m,b=Kg(b,F,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;if(m===t){if(m=Q,r.charCodeAt(Q)===45?(b=QA,Q++):(b=t,I===0&&Be(tc)),b===t&&(r.charCodeAt(Q)===43?(b=Us,Q++):(b=t,I===0&&Be(rc))),b===t&&(b=null),b!==t){if(F=[],Ge.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Be(ie)),U!==t)for(;U!==t;)F.push(U),Ge.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Be(ie));else F=t;F!==t?(Re=m,b=td(b,F),m=b):(Q=m,m=t)}else Q=m,m=t;if(m===t&&(m=Q,b=US(),b!==t&&(Re=m,b=gI(b)),m=b,m===t&&(m=Q,b=nc(),b!==t&&(Re=m,b=ic(b)),m=b,m===t)))if(m=Q,r.charCodeAt(Q)===40?(b=ge,Q++):(b=t,I===0&&Be(_)),b!==t){for(F=[],U=Me();U!==t;)F.push(U),U=Me();if(F!==t)if(U=v1(),U!==t){for(ce=[],be=Me();be!==t;)ce.push(be),be=Me();ce!==t?(r.charCodeAt(Q)===41?(be=T,Q++):(be=t,I===0&&Be(N)),be!==t?(Re=m,b=fI(U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t}return m}function KS(){var m,b,F,U,ce,be,ft,Bt;if(m=Q,b=MS(),b!==t){for(F=[],U=Q,ce=[],be=Me();be!==t;)ce.push(be),be=Me();if(ce!==t)if(r.charCodeAt(Q)===42?(be=Ug,Q++):(be=t,I===0&&Be(bA)),be===t&&(r.charCodeAt(Q)===47?(be=Fr,Q++):(be=t,I===0&&Be(hI))),be!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=MS(),Bt!==t?(Re=U,ce=Hs(b,be,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t;for(;U!==t;){for(F.push(U),U=Q,ce=[],be=Me();be!==t;)ce.push(be),be=Me();if(ce!==t)if(r.charCodeAt(Q)===42?(be=Ug,Q++):(be=t,I===0&&Be(bA)),be===t&&(r.charCodeAt(Q)===47?(be=Fr,Q++):(be=t,I===0&&Be(hI))),be!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=MS(),Bt!==t?(Re=U,ce=Hs(b,be,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t}F!==t?(Re=m,b=Gs(b,F),m=b):(Q=m,m=t)}else Q=m,m=t;return m}function v1(){var m,b,F,U,ce,be,ft,Bt;if(m=Q,b=KS(),b!==t){for(F=[],U=Q,ce=[],be=Me();be!==t;)ce.push(be),be=Me();if(ce!==t)if(r.charCodeAt(Q)===43?(be=Us,Q++):(be=t,I===0&&Be(rc)),be===t&&(r.charCodeAt(Q)===45?(be=QA,Q++):(be=t,I===0&&Be(tc))),be!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=KS(),Bt!==t?(Re=U,ce=Hg(b,be,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t;for(;U!==t;){for(F.push(U),U=Q,ce=[],be=Me();be!==t;)ce.push(be),be=Me();if(ce!==t)if(r.charCodeAt(Q)===43?(be=Us,Q++):(be=t,I===0&&Be(rc)),be===t&&(r.charCodeAt(Q)===45?(be=QA,Q++):(be=t,I===0&&Be(tc))),be!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=KS(),Bt!==t?(Re=U,ce=Hg(b,be,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t}F!==t?(Re=m,b=Gs(b,F),m=b):(Q=m,m=t)}else Q=m,m=t;return m}function x1(){var m,b,F,U,ce,be;if(m=Q,r.substr(Q,3)===SA?(b=SA,Q+=3):(b=t,I===0&&Be(R)),b!==t){for(F=[],U=Me();U!==t;)F.push(U),U=Me();if(F!==t)if(U=v1(),U!==t){for(ce=[],be=Me();be!==t;)ce.push(be),be=Me();ce!==t?(r.substr(Q,2)===q?(be=q,Q+=2):(be=t,I===0&&Be(pe)),be!==t?(Re=m,b=Ne(U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;return m}function P1(){var m,b,F,U;return m=Q,r.substr(Q,2)===xe?(b=xe,Q+=2):(b=t,I===0&&Be(qe)),b!==t?(F=Ur(),F!==t?(r.charCodeAt(Q)===41?(U=T,Q++):(U=t,I===0&&Be(N)),U!==t?(Re=m,b=dt(F),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function US(){var m,b,F,U,ce,be;return m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Be(Nn)),b!==t?(F=nc(),F!==t?(r.substr(Q,2)===bS?(U=bS,Q+=2):(U=t,I===0&&Be(s1)),U!==t?(ce=E1(),ce!==t?(r.charCodeAt(Q)===125?(be=Pe,Q++):(be=t,I===0&&Be(Te)),be!==t?(Re=m,b=o1(F,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Be(Nn)),b!==t?(F=nc(),F!==t?(r.substr(Q,3)===SS?(U=SS,Q+=3):(U=t,I===0&&Be(a1)),U!==t?(Re=m,b=A1(F),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Be(Nn)),b!==t?(F=nc(),F!==t?(r.substr(Q,2)===vS?(U=vS,Q+=2):(U=t,I===0&&Be(l1)),U!==t?(ce=E1(),ce!==t?(r.charCodeAt(Q)===125?(be=Pe,Q++):(be=t,I===0&&Be(Te)),be!==t?(Re=m,b=c1(F,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Be(Nn)),b!==t?(F=nc(),F!==t?(r.substr(Q,3)===xS?(U=xS,Q+=3):(U=t,I===0&&Be(u1)),U!==t?(Re=m,b=g1(F),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Be(Nn)),b!==t?(F=nc(),F!==t?(r.charCodeAt(Q)===125?(U=Pe,Q++):(U=t,I===0&&Be(Te)),U!==t?(Re=m,b=PS(F),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.charCodeAt(Q)===36?(b=f1,Q++):(b=t,I===0&&Be(h1)),b!==t?(F=nc(),F!==t?(Re=m,b=PS(F),m=b):(Q=m,m=t)):(Q=m,m=t)))))),m}function afe(){var m,b,F;return m=Q,b=Afe(),b!==t?(Re=Q,F=p1(b),F?F=void 0:F=t,F!==t?(Re=m,b=d1(b),m=b):(Q=m,m=t)):(Q=m,m=t),m}function Afe(){var m,b,F,U,ce;if(m=Q,b=[],F=Q,U=Q,I++,ce=R1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(wo)),ce!==t?(Re=F,U=ln(ce),F=U):(Q=F,F=t)):(Q=F,F=t),F!==t)for(;F!==t;)b.push(F),F=Q,U=Q,I++,ce=R1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(wo)),ce!==t?(Re=F,U=ln(ce),F=U):(Q=F,F=t)):(Q=F,F=t);else b=t;return b!==t&&(Re=m,b=kn(b)),m=b,m}function D1(){var m,b,F;if(m=Q,b=[],DS.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(kS)),F!==t)for(;F!==t;)b.push(F),DS.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(kS));else b=t;return b!==t&&(Re=m,b=RS()),m=b,m}function nc(){var m,b,F;if(m=Q,b=[],FS.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(NS)),F!==t)for(;F!==t;)b.push(F),FS.test(r.charAt(Q))?(F=r.charAt(Q),Q++):(F=t,I===0&&Be(NS));else b=t;return b!==t&&(Re=m,b=RS()),m=b,m}function k1(){var m;return C1.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Be(Gg)),m}function R1(){var m;return LS.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Be(TS)),m}function Me(){var m,b;if(m=[],pI.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Be(dI)),b!==t)for(;b!==t;)m.push(b),pI.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Be(dI));else m=t;return m}if(k=n(),k!==t&&Q===r.length)return k;throw k!==t&&Q<r.length&&Be(wt()),Fi(E,d<r.length?r.charAt(d):null,d<r.length?Et(d,d+1):Et(d,d))}UU.exports={SyntaxError:cc,parse:ahe}});var jU=y((kZe,YU)=>{\"use strict\";function Ahe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function gc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name=\"SyntaxError\",typeof Error.captureStackTrace==\"function\"&&Error.captureStackTrace(this,gc)}Ahe(gc,Error);gc.buildMessage=function(r,e){var t={literal:function(c){return'\"'+n(c.text)+'\"'},class:function(c){var u=\"\",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+\"-\"+s(c.parts[g][1]):s(c.parts[g]);return\"[\"+(c.inverted?\"^\":\"\")+u+\"]\"},any:function(c){return\"any character\"},end:function(c){return\"end of input\"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(u){return\"\\\\x0\"+i(u)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(u){return\"\\\\x\"+i(u)})}function s(c){return c.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\]/g,\"\\\\]\").replace(/\\^/g,\"\\\\^\").replace(/-/g,\"\\\\-\").replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(u){return\"\\\\x0\"+i(u)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(u){return\"\\\\x\"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,f;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,f=1;g<u.length;g++)u[g-1]!==u[g]&&(u[f]=u[g],f++);u.length=f}switch(u.length){case 1:return u[0];case 2:return u[0]+\" or \"+u[1];default:return u.slice(0,-1).join(\", \")+\", or \"+u[u.length-1]}}function l(c){return c?'\"'+n(c)+'\"':\"end of input\"}return\"Expected \"+a(r)+\" but \"+l(e)+\" found.\"};function lhe(r,e){e=e!==void 0?e:{};var t={},i={resolution:Ae},n=Ae,s=\"/\",o=ge(\"/\",!1),a=function(ie,Y){return{from:ie,descriptor:Y}},l=function(ie){return{descriptor:ie}},c=\"@\",u=ge(\"@\",!1),g=function(ie,Y){return{fullName:ie,description:Y}},f=function(ie){return{fullName:ie}},h=function(){return W()},p=/^[^\\/@]/,C=_([\"/\",\"@\"],!0,!1),w=/^[^\\/]/,B=_([\"/\"],!0,!1),v=0,D=0,L=[{line:1,column:1}],H=0,j=[],$=0,V;if(\"startRule\"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule \"`+e.startRule+'\".');n=i[e.startRule]}function W(){return r.substring(D,v)}function Z(){return Le(D,v)}function A(ie,Y){throw Y=Y!==void 0?Y:Le(D,v),se([ue(ie)],r.substring(D,v),Y)}function ae(ie,Y){throw Y=Y!==void 0?Y:Le(D,v),Te(ie,Y)}function ge(ie,Y){return{type:\"literal\",text:ie,ignoreCase:Y}}function _(ie,Y,he){return{type:\"class\",parts:ie,inverted:Y,ignoreCase:he}}function T(){return{type:\"any\"}}function N(){return{type:\"end\"}}function ue(ie){return{type:\"other\",description:ie}}function we(ie){var Y=L[ie],he;if(Y)return Y;for(he=ie-1;!L[he];)he--;for(Y=L[he],Y={line:Y.line,column:Y.column};he<ie;)r.charCodeAt(he)===10?(Y.line++,Y.column=1):Y.column++,he++;return L[ie]=Y,Y}function Le(ie,Y){var he=we(ie),re=we(Y);return{start:{offset:ie,line:he.line,column:he.column},end:{offset:Y,line:re.line,column:re.column}}}function Pe(ie){v<H||(v>H&&(H=v,j=[]),j.push(ie))}function Te(ie,Y){return new gc(ie,null,null,Y)}function se(ie,Y,he){return new gc(gc.buildMessage(ie,Y),ie,Y,he)}function Ae(){var ie,Y,he,re;return ie=v,Y=Qe(),Y!==t?(r.charCodeAt(v)===47?(he=s,v++):(he=t,$===0&&Pe(o)),he!==t?(re=Qe(),re!==t?(D=ie,Y=a(Y,re),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=Qe(),Y!==t&&(D=ie,Y=l(Y)),ie=Y),ie}function Qe(){var ie,Y,he,re;return ie=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(he=c,v++):(he=t,$===0&&Pe(u)),he!==t?(re=Ge(),re!==t?(D=ie,Y=g(Y,re),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=fe(),Y!==t&&(D=ie,Y=f(Y)),ie=Y),ie}function fe(){var ie,Y,he,re,me;return ie=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Pe(u)),Y!==t?(he=le(),he!==t?(r.charCodeAt(v)===47?(re=s,v++):(re=t,$===0&&Pe(o)),re!==t?(me=le(),me!==t?(D=ie,Y=h(),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=le(),Y!==t&&(D=ie,Y=h()),ie=Y),ie}function le(){var ie,Y,he;if(ie=v,Y=[],p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(C)),he!==t)for(;he!==t;)Y.push(he),p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(C));else Y=t;return Y!==t&&(D=ie,Y=h()),ie=Y,ie}function Ge(){var ie,Y,he;if(ie=v,Y=[],w.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(B)),he!==t)for(;he!==t;)Y.push(he),w.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(B));else Y=t;return Y!==t&&(D=ie,Y=h()),ie=Y,ie}if(V=n(),V!==t&&v===r.length)return V;throw V!==t&&v<r.length&&Pe(N()),se(j,H<r.length?r.charAt(H):null,H<r.length?Le(H,H+1):Le(H,H))}YU.exports={SyntaxError:gc,parse:lhe}});var hc=y((FZe,fc)=>{\"use strict\";function JU(r){return typeof r>\"u\"||r===null}function che(r){return typeof r==\"object\"&&r!==null}function uhe(r){return Array.isArray(r)?r:JU(r)?[]:[r]}function ghe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t<i;t+=1)n=s[t],r[n]=e[n];return r}function fhe(r,e){var t=\"\",i;for(i=0;i<e;i+=1)t+=r;return t}function hhe(r){return r===0&&Number.NEGATIVE_INFINITY===1/r}fc.exports.isNothing=JU;fc.exports.isObject=che;fc.exports.toArray=uhe;fc.exports.repeat=fhe;fc.exports.isNegativeZero=hhe;fc.exports.extend=ghe});var ef=y((NZe,WU)=>{\"use strict\";function dd(r,e){Error.call(this),this.name=\"YAMLException\",this.reason=r,this.mark=e,this.message=(this.reason||\"(unknown reason)\")+(this.mark?\" \"+this.mark.toString():\"\"),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||\"\"}dd.prototype=Object.create(Error.prototype);dd.prototype.constructor=dd;dd.prototype.toString=function(e){var t=this.name+\": \";return t+=this.reason||\"(unknown reason)\",!e&&this.mark&&(t+=\" \"+this.mark.toString()),t};WU.exports=dd});var XU=y((LZe,VU)=>{\"use strict\";var zU=hc();function Iv(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}Iv.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i=\"\",n=this.position;n>0&&`\\0\\r\n\\x85\\u2028\\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=\" ... \",n+=5;break}for(s=\"\",o=this.position;o<this.buffer.length&&`\\0\\r\n\\x85\\u2028\\u2029`.indexOf(this.buffer.charAt(o))===-1;)if(o+=1,o-this.position>t/2-1){s=\" ... \",o-=5;break}return a=this.buffer.slice(n,o),zU.repeat(\" \",e)+i+a+s+`\n`+zU.repeat(\" \",e+this.position-n+i.length)+\"^\"};Iv.prototype.toString=function(e){var t,i=\"\";return this.name&&(i+='in \"'+this.name+'\" '),i+=\"at line \"+(this.line+1)+\", column \"+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`:\n`+t)),i};VU.exports=Iv});var Ai=y((TZe,ZU)=>{\"use strict\";var _U=ef(),phe=[\"kind\",\"resolve\",\"construct\",\"instanceOf\",\"predicate\",\"represent\",\"defaultStyle\",\"styleAliases\"],dhe=[\"scalar\",\"sequence\",\"mapping\"];function Che(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function mhe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(phe.indexOf(t)===-1)throw new _U('Unknown option \"'+t+'\" is met in definition of \"'+r+'\" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Che(e.styleAliases||null),dhe.indexOf(this.kind)===-1)throw new _U('Unknown kind \"'+this.kind+'\" is specified for \"'+r+'\" YAML type.')}ZU.exports=mhe});var pc=y((OZe,e2)=>{\"use strict\";var $U=hc(),GI=ef(),Ehe=Ai();function yv(r,e,t){var i=[];return r.include.forEach(function(n){t=yv(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Ihe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(i);return r}function tf(r){this.include=r.include||[],this.implicit=r.implicit||[],this.explicit=r.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!==\"scalar\")throw new GI(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\")}),this.compiledImplicit=yv(this,\"implicit\",[]),this.compiledExplicit=yv(this,\"explicit\",[]),this.compiledTypeMap=Ihe(this.compiledImplicit,this.compiledExplicit)}tf.DEFAULT=null;tf.create=function(){var e,t;switch(arguments.length){case 1:e=tf.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new GI(\"Wrong number of arguments for Schema.create function\")}if(e=$U.toArray(e),t=$U.toArray(t),!e.every(function(i){return i instanceof tf}))throw new GI(\"Specified list of super schemas (or a single Schema object) contains a non-Schema object.\");if(!t.every(function(i){return i instanceof Ehe}))throw new GI(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");return new tf({include:e,explicit:t})};e2.exports=tf});var r2=y((MZe,t2)=>{\"use strict\";var yhe=Ai();t2.exports=new yhe(\"tag:yaml.org,2002:str\",{kind:\"scalar\",construct:function(r){return r!==null?r:\"\"}})});var n2=y((KZe,i2)=>{\"use strict\";var whe=Ai();i2.exports=new whe(\"tag:yaml.org,2002:seq\",{kind:\"sequence\",construct:function(r){return r!==null?r:[]}})});var o2=y((UZe,s2)=>{\"use strict\";var Bhe=Ai();s2.exports=new Bhe(\"tag:yaml.org,2002:map\",{kind:\"mapping\",construct:function(r){return r!==null?r:{}}})});var YI=y((HZe,a2)=>{\"use strict\";var Qhe=pc();a2.exports=new Qhe({explicit:[r2(),n2(),o2()]})});var l2=y((GZe,A2)=>{\"use strict\";var bhe=Ai();function She(r){if(r===null)return!0;var e=r.length;return e===1&&r===\"~\"||e===4&&(r===\"null\"||r===\"Null\"||r===\"NULL\")}function vhe(){return null}function xhe(r){return r===null}A2.exports=new bhe(\"tag:yaml.org,2002:null\",{kind:\"scalar\",resolve:She,construct:vhe,predicate:xhe,represent:{canonical:function(){return\"~\"},lowercase:function(){return\"null\"},uppercase:function(){return\"NULL\"},camelcase:function(){return\"Null\"}},defaultStyle:\"lowercase\"})});var u2=y((YZe,c2)=>{\"use strict\";var Phe=Ai();function Dhe(r){if(r===null)return!1;var e=r.length;return e===4&&(r===\"true\"||r===\"True\"||r===\"TRUE\")||e===5&&(r===\"false\"||r===\"False\"||r===\"FALSE\")}function khe(r){return r===\"true\"||r===\"True\"||r===\"TRUE\"}function Rhe(r){return Object.prototype.toString.call(r)===\"[object Boolean]\"}c2.exports=new Phe(\"tag:yaml.org,2002:bool\",{kind:\"scalar\",resolve:Dhe,construct:khe,predicate:Rhe,represent:{lowercase:function(r){return r?\"true\":\"false\"},uppercase:function(r){return r?\"TRUE\":\"FALSE\"},camelcase:function(r){return r?\"True\":\"False\"}},defaultStyle:\"lowercase\"})});var f2=y((jZe,g2)=>{\"use strict\";var Fhe=hc(),Nhe=Ai();function Lhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function The(r){return 48<=r&&r<=55}function Ohe(r){return 48<=r&&r<=57}function Mhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n===\"-\"||n===\"+\")&&(n=r[++t]),n===\"0\"){if(t+1===e)return!0;if(n=r[++t],n===\"b\"){for(t++;t<e;t++)if(n=r[t],n!==\"_\"){if(n!==\"0\"&&n!==\"1\")return!1;i=!0}return i&&n!==\"_\"}if(n===\"x\"){for(t++;t<e;t++)if(n=r[t],n!==\"_\"){if(!Lhe(r.charCodeAt(t)))return!1;i=!0}return i&&n!==\"_\"}for(;t<e;t++)if(n=r[t],n!==\"_\"){if(!The(r.charCodeAt(t)))return!1;i=!0}return i&&n!==\"_\"}if(n===\"_\")return!1;for(;t<e;t++)if(n=r[t],n!==\"_\"){if(n===\":\")break;if(!Ohe(r.charCodeAt(t)))return!1;i=!0}return!i||n===\"_\"?!1:n!==\":\"?!0:/^(:[0-5]?[0-9])+$/.test(r.slice(t))}function Khe(r){var e=r,t=1,i,n,s=[];return e.indexOf(\"_\")!==-1&&(e=e.replace(/_/g,\"\")),i=e[0],(i===\"-\"||i===\"+\")&&(i===\"-\"&&(t=-1),e=e.slice(1),i=e[0]),e===\"0\"?0:i===\"0\"?e[1]===\"b\"?t*parseInt(e.slice(2),2):e[1]===\"x\"?t*parseInt(e,16):t*parseInt(e,8):e.indexOf(\":\")!==-1?(e.split(\":\").forEach(function(o){s.unshift(parseInt(o,10))}),e=0,n=1,s.forEach(function(o){e+=o*n,n*=60}),t*e):t*parseInt(e,10)}function Uhe(r){return Object.prototype.toString.call(r)===\"[object Number]\"&&r%1===0&&!Fhe.isNegativeZero(r)}g2.exports=new Nhe(\"tag:yaml.org,2002:int\",{kind:\"scalar\",resolve:Mhe,construct:Khe,predicate:Uhe,represent:{binary:function(r){return r>=0?\"0b\"+r.toString(2):\"-0b\"+r.toString(2).slice(1)},octal:function(r){return r>=0?\"0\"+r.toString(8):\"-0\"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?\"0x\"+r.toString(16).toUpperCase():\"-0x\"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:\"decimal\",styleAliases:{binary:[2,\"bin\"],octal:[8,\"oct\"],decimal:[10,\"dec\"],hexadecimal:[16,\"hex\"]}})});var d2=y((qZe,p2)=>{\"use strict\";var h2=hc(),Hhe=Ai(),Ghe=new RegExp(\"^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");function Yhe(r){return!(r===null||!Ghe.test(r)||r[r.length-1]===\"_\")}function jhe(r){var e,t,i,n;return e=r.replace(/_/g,\"\").toLowerCase(),t=e[0]===\"-\"?-1:1,n=[],\"+-\".indexOf(e[0])>=0&&(e=e.slice(1)),e===\".inf\"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===\".nan\"?NaN:e.indexOf(\":\")>=0?(e.split(\":\").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var qhe=/^[-+]?[0-9]+e/;function Jhe(r,e){var t;if(isNaN(r))switch(e){case\"lowercase\":return\".nan\";case\"uppercase\":return\".NAN\";case\"camelcase\":return\".NaN\"}else if(Number.POSITIVE_INFINITY===r)switch(e){case\"lowercase\":return\".inf\";case\"uppercase\":return\".INF\";case\"camelcase\":return\".Inf\"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case\"lowercase\":return\"-.inf\";case\"uppercase\":return\"-.INF\";case\"camelcase\":return\"-.Inf\"}else if(h2.isNegativeZero(r))return\"-0.0\";return t=r.toString(10),qhe.test(t)?t.replace(\"e\",\".e\"):t}function Whe(r){return Object.prototype.toString.call(r)===\"[object Number]\"&&(r%1!==0||h2.isNegativeZero(r))}p2.exports=new Hhe(\"tag:yaml.org,2002:float\",{kind:\"scalar\",resolve:Yhe,construct:jhe,predicate:Whe,represent:Jhe,defaultStyle:\"lowercase\"})});var wv=y((JZe,C2)=>{\"use strict\";var zhe=pc();C2.exports=new zhe({include:[YI()],implicit:[l2(),u2(),f2(),d2()]})});var Bv=y((WZe,m2)=>{\"use strict\";var Vhe=pc();m2.exports=new Vhe({include:[wv()]})});var w2=y((zZe,y2)=>{\"use strict\";var Xhe=Ai(),E2=new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"),I2=new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\");function _he(r){return r===null?!1:E2.exec(r)!==null||I2.exec(r)!==null}function Zhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=E2.exec(r),e===null&&(e=I2.exec(r)),e===null)throw new Error(\"Date resolve error\");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+=\"0\";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]===\"-\"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function $he(r){return r.toISOString()}y2.exports=new Xhe(\"tag:yaml.org,2002:timestamp\",{kind:\"scalar\",resolve:_he,construct:Zhe,instanceOf:Date,represent:$he})});var Q2=y((VZe,B2)=>{\"use strict\";var epe=Ai();function tpe(r){return r===\"<<\"||r===null}B2.exports=new epe(\"tag:yaml.org,2002:merge\",{kind:\"scalar\",resolve:tpe})});var v2=y((XZe,S2)=>{\"use strict\";var dc;try{b2=J,dc=b2(\"buffer\").Buffer}catch{}var b2,rpe=Ai(),Qv=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\\r`;function ipe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=Qv;for(t=0;t<n;t++)if(e=s.indexOf(r.charAt(t)),!(e>64)){if(e<0)return!1;i+=6}return i%8===0}function npe(r){var e,t,i=r.replace(/[\\r\\n=]/g,\"\"),n=i.length,s=Qv,o=0,a=[];for(e=0;e<n;e++)e%4===0&&e&&(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),dc?dc.from?dc.from(a):new dc(a):a}function spe(r){var e=\"\",t=0,i,n,s=r.length,o=Qv;for(i=0;i<s;i++)i%3===0&&i&&(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function ope(r){return dc&&dc.isBuffer(r)}S2.exports=new rpe(\"tag:yaml.org,2002:binary\",{kind:\"scalar\",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var P2=y((_Ze,x2)=>{\"use strict\";var ape=Ai(),Ape=Object.prototype.hasOwnProperty,lpe=Object.prototype.toString;function cpe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t<i;t+=1){if(n=a[t],o=!1,lpe.call(n)!==\"[object Object]\")return!1;for(s in n)if(Ape.call(n,s))if(!o)o=!0;else return!1;if(!o)return!1;if(e.indexOf(s)===-1)e.push(s);else return!1}return!0}function upe(r){return r!==null?r:[]}x2.exports=new ape(\"tag:yaml.org,2002:omap\",{kind:\"sequence\",resolve:cpe,construct:upe})});var k2=y((ZZe,D2)=>{\"use strict\";var gpe=Ai(),fpe=Object.prototype.toString;function hpe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1){if(i=o[e],fpe.call(i)!==\"[object Object]\"||(n=Object.keys(i),n.length!==1))return!1;s[e]=[n[0],i[n[0]]]}return!0}function ppe(r){if(r===null)return[];var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1)i=o[e],n=Object.keys(i),s[e]=[n[0],i[n[0]]];return s}D2.exports=new gpe(\"tag:yaml.org,2002:pairs\",{kind:\"sequence\",resolve:hpe,construct:ppe})});var F2=y(($Ze,R2)=>{\"use strict\";var dpe=Ai(),Cpe=Object.prototype.hasOwnProperty;function mpe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Cpe.call(t,e)&&t[e]!==null)return!1;return!0}function Epe(r){return r!==null?r:{}}R2.exports=new dpe(\"tag:yaml.org,2002:set\",{kind:\"mapping\",resolve:mpe,construct:Epe})});var rf=y((e$e,N2)=>{\"use strict\";var Ipe=pc();N2.exports=new Ipe({include:[Bv()],implicit:[w2(),Q2()],explicit:[v2(),P2(),k2(),F2()]})});var T2=y((t$e,L2)=>{\"use strict\";var ype=Ai();function wpe(){return!0}function Bpe(){}function Qpe(){return\"\"}function bpe(r){return typeof r>\"u\"}L2.exports=new ype(\"tag:yaml.org,2002:js/undefined\",{kind:\"scalar\",resolve:wpe,construct:Bpe,predicate:bpe,represent:Qpe})});var M2=y((r$e,O2)=>{\"use strict\";var Spe=Ai();function vpe(r){if(r===null||r.length===0)return!1;var e=r,t=/\\/([gim]*)$/.exec(r),i=\"\";return!(e[0]===\"/\"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!==\"/\"))}function xpe(r){var e=r,t=/\\/([gim]*)$/.exec(r),i=\"\";return e[0]===\"/\"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function Ppe(r){var e=\"/\"+r.source+\"/\";return r.global&&(e+=\"g\"),r.multiline&&(e+=\"m\"),r.ignoreCase&&(e+=\"i\"),e}function Dpe(r){return Object.prototype.toString.call(r)===\"[object RegExp]\"}O2.exports=new Spe(\"tag:yaml.org,2002:js/regexp\",{kind:\"scalar\",resolve:vpe,construct:xpe,predicate:Dpe,represent:Ppe})});var H2=y((i$e,U2)=>{\"use strict\";var jI;try{K2=J,jI=K2(\"esprima\")}catch{typeof window<\"u\"&&(jI=window.esprima)}var K2,kpe=Ai();function Rpe(r){if(r===null)return!1;try{var e=\"(\"+r+\")\",t=jI.parse(e,{range:!0});return!(t.type!==\"Program\"||t.body.length!==1||t.body[0].type!==\"ExpressionStatement\"||t.body[0].expression.type!==\"ArrowFunctionExpression\"&&t.body[0].expression.type!==\"FunctionExpression\")}catch{return!1}}function Fpe(r){var e=\"(\"+r+\")\",t=jI.parse(e,{range:!0}),i=[],n;if(t.type!==\"Program\"||t.body.length!==1||t.body[0].type!==\"ExpressionStatement\"||t.body[0].expression.type!==\"ArrowFunctionExpression\"&&t.body[0].expression.type!==\"FunctionExpression\")throw new Error(\"Failed to resolve function\");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type===\"BlockStatement\"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,\"return \"+e.slice(n[0],n[1]))}function Npe(r){return r.toString()}function Lpe(r){return Object.prototype.toString.call(r)===\"[object Function]\"}U2.exports=new kpe(\"tag:yaml.org,2002:js/function\",{kind:\"scalar\",resolve:Rpe,construct:Fpe,predicate:Lpe,represent:Npe})});var Cd=y((n$e,Y2)=>{\"use strict\";var G2=pc();Y2.exports=G2.DEFAULT=new G2({include:[rf()],explicit:[T2(),M2(),H2()]})});var AH=y((s$e,md)=>{\"use strict\";var Qa=hc(),X2=ef(),Tpe=XU(),_2=rf(),Ope=Cd(),FA=Object.prototype.hasOwnProperty,qI=1,Z2=2,$2=3,JI=4,bv=1,Mpe=2,j2=3,Kpe=/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,Upe=/[\\x85\\u2028\\u2029]/,Hpe=/[,\\[\\]\\{\\}]/,eH=/^(?:!|!!|![a-z\\-]+!)$/i,tH=/^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;function q2(r){return Object.prototype.toString.call(r)}function So(r){return r===10||r===13}function mc(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function nf(r){return r===44||r===91||r===93||r===123||r===125}function Gpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Ype(r){return r===120?2:r===117?4:r===85?8:0}function jpe(r){return 48<=r&&r<=57?r-48:-1}function J2(r){return r===48?\"\\0\":r===97?\"\\x07\":r===98?\"\\b\":r===116||r===9?\"\t\":r===110?`\n`:r===118?\"\\v\":r===102?\"\\f\":r===114?\"\\r\":r===101?\"\\x1B\":r===32?\" \":r===34?'\"':r===47?\"/\":r===92?\"\\\\\":r===78?\"\\x85\":r===95?\"\\xA0\":r===76?\"\\u2028\":r===80?\"\\u2029\":\"\"}function qpe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var rH=new Array(256),iH=new Array(256);for(Cc=0;Cc<256;Cc++)rH[Cc]=J2(Cc)?1:0,iH[Cc]=J2(Cc);var Cc;function Jpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||Ope,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function nH(r,e){return new X2(e,new Tpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw nH(r,e)}function WI(r,e){r.onWarning&&r.onWarning.call(null,nH(r,e))}var W2={YAML:function(e,t,i){var n,s,o;e.version!==null&&gt(e,\"duplication of %YAML directive\"),i.length!==1&&gt(e,\"YAML directive accepts exactly one argument\"),n=/^([0-9]+)\\.([0-9]+)$/.exec(i[0]),n===null&&gt(e,\"ill-formed argument of the YAML directive\"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&gt(e,\"unacceptable YAML version of the document\"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&WI(e,\"unsupported YAML version of the document\")},TAG:function(e,t,i){var n,s;i.length!==2&&gt(e,\"TAG directive accepts exactly two arguments\"),n=i[0],s=i[1],eH.test(n)||gt(e,\"ill-formed tag handle (first argument) of the TAG directive\"),FA.call(e.tagMap,n)&&gt(e,'there is a previously declared suffix for \"'+n+'\" tag handle'),tH.test(s)||gt(e,\"ill-formed tag prefix (second argument) of the TAG directive\"),e.tagMap[n]=s}};function RA(r,e,t,i){var n,s,o,a;if(e<t){if(a=r.input.slice(e,t),i)for(n=0,s=a.length;n<s;n+=1)o=a.charCodeAt(n),o===9||32<=o&&o<=1114111||gt(r,\"expected valid JSON character\");else Kpe.test(a)&&gt(r,\"the stream contains non-printable characters\");r.result+=a}}function z2(r,e,t,i){var n,s,o,a;for(Qa.isObject(t)||gt(r,\"cannot merge mappings; the provided source object is unacceptable\"),n=Object.keys(t),o=0,a=n.length;o<a;o+=1)s=n[o],FA.call(e,s)||(e[s]=t[s],i[s]=!0)}function sf(r,e,t,i,n,s,o,a){var l,c;if(Array.isArray(n))for(n=Array.prototype.slice.call(n),l=0,c=n.length;l<c;l+=1)Array.isArray(n[l])&&gt(r,\"nested arrays are not supported inside keys\"),typeof n==\"object\"&&q2(n[l])===\"[object Object]\"&&(n[l]=\"[object Object]\");if(typeof n==\"object\"&&q2(n)===\"[object Object]\"&&(n=\"[object Object]\"),n=String(n),e===null&&(e={}),i===\"tag:yaml.org,2002:merge\")if(Array.isArray(s))for(l=0,c=s.length;l<c;l+=1)z2(r,e,s[l],t);else z2(r,e,s,t);else!r.json&&!FA.call(t,n)&&FA.call(e,n)&&(r.line=o||r.line,r.position=a||r.position,gt(r,\"duplicated mapping key\")),e[n]=s,delete t[n];return e}function Sv(r){var e;e=r.input.charCodeAt(r.position),e===10?r.position++:e===13?(r.position++,r.input.charCodeAt(r.position)===10&&r.position++):gt(r,\"a line break is expected\"),r.line+=1,r.lineStart=r.position}function _r(r,e,t){for(var i=0,n=r.input.charCodeAt(r.position);n!==0;){for(;mc(n);)n=r.input.charCodeAt(++r.position);if(e&&n===35)do n=r.input.charCodeAt(++r.position);while(n!==10&&n!==13&&n!==0);if(So(n))for(Sv(r),n=r.input.charCodeAt(r.position),i++,r.lineIndent=0;n===32;)r.lineIndent++,n=r.input.charCodeAt(++r.position);else break}return t!==-1&&i!==0&&r.lineIndent<t&&WI(r,\"deficient indentation\"),i}function zI(r){var e=r.position,t;return t=r.input.charCodeAt(e),!!((t===45||t===46)&&t===r.input.charCodeAt(e+1)&&t===r.input.charCodeAt(e+2)&&(e+=3,t=r.input.charCodeAt(e),t===0||fn(t)))}function vv(r,e){e===1?r.result+=\" \":e>1&&(r.result+=Qa.repeat(`\n`,e-1))}function Wpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),fn(h)||nf(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&nf(n)))return!1;for(r.kind=\"scalar\",r.result=\"\",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&nf(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&zI(r)||t&&nf(h))break;if(So(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,_r(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(RA(r,s,o,!1),vv(r,r.line-l),s=o=r.position,a=!1),mc(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return RA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function zpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind=\"scalar\",r.result=\"\",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(RA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else So(t)?(RA(r,i,n,!0),vv(r,_r(r,!1,e)),i=n=r.position):r.position===r.lineStart&&zI(r)?gt(r,\"unexpected end of the document within a single quoted scalar\"):(r.position++,n=r.position);gt(r,\"unexpected end of the stream within a single quoted scalar\")}function Vpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind=\"scalar\",r.result=\"\",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return RA(r,t,r.position,!0),r.position++,!0;if(a===92){if(RA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),So(a))_r(r,!1,e);else if(a<256&&rH[a])r.result+=iH[a],r.position++;else if((o=Ype(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=Gpe(a))>=0?s=(s<<4)+o:gt(r,\"expected hexadecimal character\");r.result+=qpe(s),r.position++}else gt(r,\"unknown escape sequence\");t=i=r.position}else So(a)?(RA(r,t,i,!0),vv(r,_r(r,!1,e)),t=i=r.position):r.position===r.lineStart&&zI(r)?gt(r,\"unexpected end of the document within a double quoted scalar\"):(r.position++,i=r.position)}gt(r,\"unexpected end of the stream within a double quoted scalar\")}function Xpe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,w;if(w=r.input.charCodeAt(r.position),w===91)l=93,g=!1,s=[];else if(w===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),w=r.input.charCodeAt(++r.position);w!==0;){if(_r(r,!0,e),w=r.input.charCodeAt(r.position),w===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?\"mapping\":\"sequence\",r.result=s,!0;t||gt(r,\"missed comma between flow collection entries\"),p=h=C=null,c=u=!1,w===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,_r(r,!0,e))),i=r.line,of(r,e,qI,!1,!0),p=r.tag,h=r.result,_r(r,!0,e),w=r.input.charCodeAt(r.position),(u||r.line===i)&&w===58&&(c=!0,w=r.input.charCodeAt(++r.position),_r(r,!0,e),of(r,e,qI,!1,!0),C=r.result),g?sf(r,s,f,p,h,C):c?s.push(sf(r,null,f,p,h,C)):s.push(h),_r(r,!0,e),w=r.input.charCodeAt(r.position),w===44?(t=!0,w=r.input.charCodeAt(++r.position)):t=!1}gt(r,\"unexpected end of the stream within a flow collection\")}function _pe(r,e){var t,i,n=bv,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind=\"scalar\",r.result=\"\";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)bv===n?n=g===43?j2:Mpe:gt(r,\"repeat of a chomping mode identifier\");else if((u=jpe(g))>=0)u===0?gt(r,\"bad explicit indentation width of a block scalar; it cannot be less than one\"):o?gt(r,\"repeat of an indentation width identifier\"):(a=e+u-1,o=!0);else break;if(mc(g)){do g=r.input.charCodeAt(++r.position);while(mc(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!So(g)&&g!==0)}for(;g!==0;){for(Sv(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndent<a)&&g===32;)r.lineIndent++,g=r.input.charCodeAt(++r.position);if(!o&&r.lineIndent>a&&(a=r.lineIndent),So(g)){l++;continue}if(r.lineIndent<a){n===j2?r.result+=Qa.repeat(`\n`,s?1+l:l):n===bv&&s&&(r.result+=`\n`);break}for(i?mc(g)?(c=!0,r.result+=Qa.repeat(`\n`,s?1+l:l)):c?(c=!1,r.result+=Qa.repeat(`\n`,l+1)):l===0?s&&(r.result+=\" \"):r.result+=Qa.repeat(`\n`,l):r.result+=Qa.repeat(`\n`,s?1+l:l),s=!0,o=!0,l=0,t=r.position;!So(g)&&g!==0;)g=r.input.charCodeAt(++r.position);RA(r,t,r.position,!1)}return!0}function V2(r,e){var t,i=r.tag,n=r.anchor,s=[],o,a=!1,l;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),l=r.input.charCodeAt(r.position);l!==0&&!(l!==45||(o=r.input.charCodeAt(r.position+1),!fn(o)));){if(a=!0,r.position++,_r(r,!0,-1)&&r.lineIndent<=e){s.push(null),l=r.input.charCodeAt(r.position);continue}if(t=r.line,of(r,e,$2,!1,!0),s.push(r.result),_r(r,!0,-1),l=r.input.charCodeAt(r.position),(r.line===t||r.lineIndent>e)&&l!==0)gt(r,\"bad indentation of a sequence entry\");else if(r.lineIndent<e)break}return a?(r.tag=i,r.anchor=n,r.kind=\"sequence\",r.result=s,!0):!1}function Zpe(r,e,t){var i,n,s,o,a=r.tag,l=r.anchor,c={},u={},g=null,f=null,h=null,p=!1,C=!1,w;for(r.anchor!==null&&(r.anchorMap[r.anchor]=c),w=r.input.charCodeAt(r.position);w!==0;){if(i=r.input.charCodeAt(r.position+1),s=r.line,o=r.position,(w===63||w===58)&&fn(i))w===63?(p&&(sf(r,c,u,g,f,null),g=f=h=null),C=!0,p=!0,n=!0):p?(p=!1,n=!0):gt(r,\"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\"),r.position+=1,w=i;else if(of(r,t,Z2,!1,!0))if(r.line===s){for(w=r.input.charCodeAt(r.position);mc(w);)w=r.input.charCodeAt(++r.position);if(w===58)w=r.input.charCodeAt(++r.position),fn(w)||gt(r,\"a whitespace character is expected after the key-value separator within a block mapping\"),p&&(sf(r,c,u,g,f,null),g=f=h=null),C=!0,p=!1,n=!1,g=r.tag,f=r.result;else if(C)gt(r,\"can not read an implicit mapping pair; a colon is missed\");else return r.tag=a,r.anchor=l,!0}else if(C)gt(r,\"can not read a block mapping entry; a multiline key may not be an implicit key\");else return r.tag=a,r.anchor=l,!0;else break;if((r.line===s||r.lineIndent>e)&&(of(r,e,JI,!0,n)&&(p?f=r.result:h=r.result),p||(sf(r,c,u,g,f,h,s,o),g=f=h=null),_r(r,!0,-1),w=r.input.charCodeAt(r.position)),r.lineIndent>e&&w!==0)gt(r,\"bad indentation of a mapping entry\");else if(r.lineIndent<e)break}return p&&sf(r,c,u,g,f,null),C&&(r.tag=a,r.anchor=l,r.kind=\"mapping\",r.result=c),C}function $pe(r){var e,t=!1,i=!1,n,s,o;if(o=r.input.charCodeAt(r.position),o!==33)return!1;if(r.tag!==null&&gt(r,\"duplication of a tag property\"),o=r.input.charCodeAt(++r.position),o===60?(t=!0,o=r.input.charCodeAt(++r.position)):o===33?(i=!0,n=\"!!\",o=r.input.charCodeAt(++r.position)):n=\"!\",e=r.position,t){do o=r.input.charCodeAt(++r.position);while(o!==0&&o!==62);r.position<r.length?(s=r.input.slice(e,r.position),o=r.input.charCodeAt(++r.position)):gt(r,\"unexpected end of the stream within a verbatim tag\")}else{for(;o!==0&&!fn(o);)o===33&&(i?gt(r,\"tag suffix cannot contain exclamation marks\"):(n=r.input.slice(e-1,r.position+1),eH.test(n)||gt(r,\"named tag handle cannot contain such characters\"),i=!0,e=r.position+1)),o=r.input.charCodeAt(++r.position);s=r.input.slice(e,r.position),Hpe.test(s)&&gt(r,\"tag suffix cannot contain flow indicator characters\")}return s&&!tH.test(s)&&gt(r,\"tag name cannot contain such characters: \"+s),t?r.tag=s:FA.call(r.tagMap,n)?r.tag=r.tagMap[n]+s:n===\"!\"?r.tag=\"!\"+s:n===\"!!\"?r.tag=\"tag:yaml.org,2002:\"+s:gt(r,'undeclared tag handle \"'+n+'\"'),!0}function ede(r){var e,t;if(t=r.input.charCodeAt(r.position),t!==38)return!1;for(r.anchor!==null&&gt(r,\"duplication of an anchor property\"),t=r.input.charCodeAt(++r.position),e=r.position;t!==0&&!fn(t)&&!nf(t);)t=r.input.charCodeAt(++r.position);return r.position===e&&gt(r,\"name of an anchor node must contain at least one character\"),r.anchor=r.input.slice(e,r.position),!0}function tde(r){var e,t,i;if(i=r.input.charCodeAt(r.position),i!==42)return!1;for(i=r.input.charCodeAt(++r.position),e=r.position;i!==0&&!fn(i)&&!nf(i);)i=r.input.charCodeAt(++r.position);return r.position===e&&gt(r,\"name of an alias node must contain at least one character\"),t=r.input.slice(e,r.position),FA.call(r.anchorMap,t)||gt(r,'unidentified alias \"'+t+'\"'),r.result=r.anchorMap[t],_r(r,!0,-1),!0}function of(r,e,t,i,n){var s,o,a,l=1,c=!1,u=!1,g,f,h,p,C;if(r.listener!==null&&r.listener(\"open\",r),r.tag=null,r.anchor=null,r.kind=null,r.result=null,s=o=a=JI===t||$2===t,i&&_r(r,!0,-1)&&(c=!0,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)),l===1)for(;$pe(r)||ede(r);)_r(r,!0,-1)?(c=!0,a=s,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)):a=!1;if(a&&(a=c||n),(l===1||JI===t)&&(qI===t||Z2===t?p=e:p=e+1,C=r.position-r.lineStart,l===1?a&&(V2(r,C)||Zpe(r,C,p))||Xpe(r,p)?u=!0:(o&&_pe(r,p)||zpe(r,p)||Vpe(r,p)?u=!0:tde(r)?(u=!0,(r.tag!==null||r.anchor!==null)&&gt(r,\"alias node should not have any properties\")):Wpe(r,p,qI===t)&&(u=!0,r.tag===null&&(r.tag=\"?\")),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):l===0&&(u=a&&V2(r,C))),r.tag!==null&&r.tag!==\"!\")if(r.tag===\"?\"){for(r.result!==null&&r.kind!==\"scalar\"&&gt(r,'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"'+r.kind+'\"'),g=0,f=r.implicitTypes.length;g<f;g+=1)if(h=r.implicitTypes[g],h.resolve(r.result)){r.result=h.construct(r.result),r.tag=h.tag,r.anchor!==null&&(r.anchorMap[r.anchor]=r.result);break}}else FA.call(r.typeMap[r.kind||\"fallback\"],r.tag)?(h=r.typeMap[r.kind||\"fallback\"][r.tag],r.result!==null&&h.kind!==r.kind&&gt(r,\"unacceptable node kind for !<\"+r.tag+'> tag; it should be \"'+h.kind+'\", not \"'+r.kind+'\"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,\"cannot resolve a node with !<\"+r.tag+\"> explicit tag\")):gt(r,\"unknown tag !<\"+r.tag+\">\");return r.listener!==null&&r.listener(\"close\",r),r.tag!==null||r.anchor!==null||u}function rde(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(_r(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&&gt(r,\"directive name must not be less than one character in length\");o!==0;){for(;mc(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!So(o));break}if(So(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&Sv(r),FA.call(W2,i)?W2[i](r,i,n):WI(r,'unknown document directive \"'+i+'\"')}if(_r(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,_r(r,!0,-1)):s&&gt(r,\"directives end mark is expected\"),of(r,r.lineIndent-1,JI,!1,!0),_r(r,!0,-1),r.checkLineBreaks&&Upe.test(r.input.slice(e,r.position))&&WI(r,\"non-ASCII line breaks are interpreted as content\"),r.documents.push(r.result),r.position===r.lineStart&&zI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,_r(r,!0,-1));return}if(r.position<r.length-1)gt(r,\"end of the stream or a document separator is expected\");else return}function sH(r,e){r=String(r),e=e||{},r.length!==0&&(r.charCodeAt(r.length-1)!==10&&r.charCodeAt(r.length-1)!==13&&(r+=`\n`),r.charCodeAt(0)===65279&&(r=r.slice(1)));var t=new Jpe(r,e),i=r.indexOf(\"\\0\");for(i!==-1&&(t.position=i,gt(t,\"null byte is not allowed in input\")),t.input+=\"\\0\";t.input.charCodeAt(t.position)===32;)t.lineIndent+=1,t.position+=1;for(;t.position<t.length-1;)rde(t);return t.documents}function oH(r,e,t){e!==null&&typeof e==\"object\"&&typeof t>\"u\"&&(t=e,e=null);var i=sH(r,t);if(typeof e!=\"function\")return i;for(var n=0,s=i.length;n<s;n+=1)e(i[n])}function aH(r,e){var t=sH(r,e);if(t.length!==0){if(t.length===1)return t[0];throw new X2(\"expected a single document in the stream, but found more\")}}function ide(r,e,t){return typeof e==\"object\"&&e!==null&&typeof t>\"u\"&&(t=e,e=null),oH(r,e,Qa.extend({schema:_2},t))}function nde(r,e){return aH(r,Qa.extend({schema:_2},e))}md.exports.loadAll=oH;md.exports.load=aH;md.exports.safeLoadAll=ide;md.exports.safeLoad=nde});var kH=y((o$e,kv)=>{\"use strict\";var Id=hc(),yd=ef(),sde=Cd(),ode=rf(),dH=Object.prototype.toString,CH=Object.prototype.hasOwnProperty,ade=9,Ed=10,Ade=13,lde=32,cde=33,ude=34,mH=35,gde=37,fde=38,hde=39,pde=42,EH=44,dde=45,IH=58,Cde=61,mde=62,Ede=63,Ide=64,yH=91,wH=93,yde=96,BH=123,wde=124,QH=125,Li={};Li[0]=\"\\\\0\";Li[7]=\"\\\\a\";Li[8]=\"\\\\b\";Li[9]=\"\\\\t\";Li[10]=\"\\\\n\";Li[11]=\"\\\\v\";Li[12]=\"\\\\f\";Li[13]=\"\\\\r\";Li[27]=\"\\\\e\";Li[34]='\\\\\"';Li[92]=\"\\\\\\\\\";Li[133]=\"\\\\N\";Li[160]=\"\\\\_\";Li[8232]=\"\\\\L\";Li[8233]=\"\\\\P\";var Bde=[\"y\",\"Y\",\"yes\",\"Yes\",\"YES\",\"on\",\"On\",\"ON\",\"n\",\"N\",\"no\",\"No\",\"NO\",\"off\",\"Off\",\"OFF\"];function Qde(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n<s;n+=1)o=i[n],a=String(e[o]),o.slice(0,2)===\"!!\"&&(o=\"tag:yaml.org,2002:\"+o.slice(2)),l=r.compiledTypeMap.fallback[o],l&&CH.call(l.styleAliases,a)&&(a=l.styleAliases[a]),t[o]=a;return t}function lH(r){var e,t,i;if(e=r.toString(16).toUpperCase(),r<=255)t=\"x\",i=2;else if(r<=65535)t=\"u\",i=4;else if(r<=4294967295)t=\"U\",i=8;else throw new yd(\"code point within a string may not be greater than 0xFFFFFFFF\");return\"\\\\\"+t+Id.repeat(\"0\",i-e.length)+e}function bde(r){this.schema=r.schema||sde,this.indent=Math.max(1,r.indent||2),this.noArrayIndent=r.noArrayIndent||!1,this.skipInvalid=r.skipInvalid||!1,this.flowLevel=Id.isNothing(r.flowLevel)?-1:r.flowLevel,this.styleMap=Qde(this.schema,r.styles||null),this.sortKeys=r.sortKeys||!1,this.lineWidth=r.lineWidth||80,this.noRefs=r.noRefs||!1,this.noCompatMode=r.noCompatMode||!1,this.condenseFlow=r.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result=\"\",this.duplicates=[],this.usedDuplicates=null}function cH(r,e){for(var t=Id.repeat(\" \",e),i=0,n=-1,s=\"\",o,a=r.length;i<a;)n=r.indexOf(`\n`,i),n===-1?(o=r.slice(i),i=a):(o=r.slice(i,n+1),i=n+1),o.length&&o!==`\n`&&(s+=t),s+=o;return s}function xv(r,e){return`\n`+Id.repeat(\" \",r.indent*e)}function Sde(r,e){var t,i,n;for(t=0,i=r.implicitTypes.length;t<i;t+=1)if(n=r.implicitTypes[t],n.resolve(e))return!0;return!1}function Dv(r){return r===lde||r===ade}function af(r){return 32<=r&&r<=126||161<=r&&r<=55295&&r!==8232&&r!==8233||57344<=r&&r<=65533&&r!==65279||65536<=r&&r<=1114111}function vde(r){return af(r)&&!Dv(r)&&r!==65279&&r!==Ade&&r!==Ed}function uH(r,e){return af(r)&&r!==65279&&r!==EH&&r!==yH&&r!==wH&&r!==BH&&r!==QH&&r!==IH&&(r!==mH||e&&vde(e))}function xde(r){return af(r)&&r!==65279&&!Dv(r)&&r!==dde&&r!==Ede&&r!==IH&&r!==EH&&r!==yH&&r!==wH&&r!==BH&&r!==QH&&r!==mH&&r!==fde&&r!==pde&&r!==cde&&r!==wde&&r!==Cde&&r!==mde&&r!==hde&&r!==ude&&r!==gde&&r!==Ide&&r!==yde}function bH(r){var e=/^\\n* /;return e.test(r)}var SH=1,vH=2,xH=3,PH=4,VI=5;function Pde(r,e,t,i,n){var s,o,a,l=!1,c=!1,u=i!==-1,g=-1,f=xde(r.charCodeAt(0))&&!Dv(r.charCodeAt(r.length-1));if(e)for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),!af(o))return VI;a=s>0?r.charCodeAt(s-1):null,f=f&&uH(o,a)}else{for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),o===Ed)l=!0,u&&(c=c||s-g-1>i&&r[g+1]!==\" \",g=s);else if(!af(o))return VI;a=s>0?r.charCodeAt(s-1):null,f=f&&uH(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==\" \"}return!l&&!c?f&&!n(r)?SH:vH:t>9&&bH(r)?VI:c?PH:xH}function Dde(r,e,t,i){r.dump=function(){if(e.length===0)return\"''\";if(!r.noCompatMode&&Bde.indexOf(e)!==-1)return\"'\"+e+\"'\";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return Sde(r,l)}switch(Pde(e,o,r.indent,s,a)){case SH:return e;case vH:return\"'\"+e.replace(/'/g,\"''\")+\"'\";case xH:return\"|\"+gH(e,r.indent)+fH(cH(e,n));case PH:return\">\"+gH(e,r.indent)+fH(cH(kde(e,s),n));case VI:return'\"'+Rde(e,s)+'\"';default:throw new yd(\"impossible error: invalid scalar style\")}}()}function gH(r,e){var t=bH(r)?String(e):\"\",i=r[r.length-1]===`\n`,n=i&&(r[r.length-2]===`\n`||r===`\n`),s=n?\"+\":i?\"\":\"-\";return t+s+`\n`}function fH(r){return r[r.length-1]===`\n`?r.slice(0,-1):r}function kde(r,e){for(var t=/(\\n+)([^\\n]*)/g,i=function(){var c=r.indexOf(`\n`);return c=c!==-1?c:r.length,t.lastIndex=c,hH(r.slice(0,c),e)}(),n=r[0]===`\n`||r[0]===\" \",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===\" \",i+=a+(!n&&!s&&l!==\"\"?`\n`:\"\")+hH(l,e),n=s}return i}function hH(r,e){if(r===\"\"||r[0]===\" \")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l=\"\";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=`\n`+r.slice(n,s),n=s+1),o=a;return l+=`\n`,r.length-n>e&&o>n?l+=r.slice(n,o)+`\n`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Rde(r){for(var e=\"\",t,i,n,s=0;s<r.length;s++){if(t=r.charCodeAt(s),t>=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=lH((t-55296)*1024+i-56320+65536),s++;continue}n=Li[t],e+=!n&&af(t)?r[s]:n||lH(t)}return e}function Fde(r,e,t){var i=\"\",n=r.tag,s,o;for(s=0,o=t.length;s<o;s+=1)Ec(r,e,t[s],!1,!1)&&(s!==0&&(i+=\",\"+(r.condenseFlow?\"\":\" \")),i+=r.dump);r.tag=n,r.dump=\"[\"+i+\"]\"}function Nde(r,e,t,i){var n=\"\",s=r.tag,o,a;for(o=0,a=t.length;o<a;o+=1)Ec(r,e+1,t[o],!0,!0)&&((!i||o!==0)&&(n+=xv(r,e)),r.dump&&Ed===r.dump.charCodeAt(0)?n+=\"-\":n+=\"- \",n+=r.dump);r.tag=s,r.dump=n||\"[]\"}function Lde(r,e,t){var i=\"\",n=r.tag,s=Object.keys(t),o,a,l,c,u;for(o=0,a=s.length;o<a;o+=1)u=\"\",o!==0&&(u+=\", \"),r.condenseFlow&&(u+='\"'),l=s[o],c=t[l],Ec(r,e,l,!1,!1)&&(r.dump.length>1024&&(u+=\"? \"),u+=r.dump+(r.condenseFlow?'\"':\"\")+\":\"+(r.condenseFlow?\"\":\" \"),Ec(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump=\"{\"+i+\"}\"}function Tde(r,e,t,i){var n=\"\",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys==\"function\")o.sort(r.sortKeys);else if(r.sortKeys)throw new yd(\"sortKeys must be a boolean or a function\");for(a=0,l=o.length;a<l;a+=1)f=\"\",(!i||a!==0)&&(f+=xv(r,e)),c=o[a],u=t[c],Ec(r,e+1,c,!0,!0,!0)&&(g=r.tag!==null&&r.tag!==\"?\"||r.dump&&r.dump.length>1024,g&&(r.dump&&Ed===r.dump.charCodeAt(0)?f+=\"?\":f+=\"? \"),f+=r.dump,g&&(f+=xv(r,e)),Ec(r,e+1,u,!0,g)&&(r.dump&&Ed===r.dump.charCodeAt(0)?f+=\":\":f+=\": \",f+=r.dump,n+=f));r.tag=s,r.dump=n||\"{}\"}function pH(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s<o;s+=1)if(a=n[s],(a.instanceOf||a.predicate)&&(!a.instanceOf||typeof e==\"object\"&&e instanceof a.instanceOf)&&(!a.predicate||a.predicate(e))){if(r.tag=t?a.tag:\"?\",a.represent){if(l=r.styleMap[a.tag]||a.defaultStyle,dH.call(a.represent)===\"[object Function]\")i=a.represent(e,l);else if(CH.call(a.represent,l))i=a.represent[l](e,l);else throw new yd(\"!<\"+a.tag+'> tag resolver accepts not \"'+l+'\" style');r.dump=i}return!0}return!1}function Ec(r,e,t,i,n,s){r.tag=null,r.dump=t,pH(r,t,!1)||pH(r,t,!0);var o=dH.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o===\"[object Object]\"||o===\"[object Array]\",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!==\"?\"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump=\"*ref_\"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o===\"[object Object]\")i&&Object.keys(r.dump).length!==0?(Tde(r,e,r.dump,n),c&&(r.dump=\"&ref_\"+l+r.dump)):(Lde(r,e,r.dump),c&&(r.dump=\"&ref_\"+l+\" \"+r.dump));else if(o===\"[object Array]\"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(Nde(r,u,r.dump,n),c&&(r.dump=\"&ref_\"+l+r.dump)):(Fde(r,u,r.dump),c&&(r.dump=\"&ref_\"+l+\" \"+r.dump))}else if(o===\"[object String]\")r.tag!==\"?\"&&Dde(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new yd(\"unacceptable kind of an object to dump \"+o)}r.tag!==null&&r.tag!==\"?\"&&(r.dump=\"!<\"+r.tag+\"> \"+r.dump)}return!0}function Ode(r,e){var t=[],i=[],n,s;for(Pv(r,t,i),n=0,s=i.length;n<s;n+=1)e.duplicates.push(t[i[n]]);e.usedDuplicates=new Array(s)}function Pv(r,e,t){var i,n,s;if(r!==null&&typeof r==\"object\")if(n=e.indexOf(r),n!==-1)t.indexOf(n)===-1&&t.push(n);else if(e.push(r),Array.isArray(r))for(n=0,s=r.length;n<s;n+=1)Pv(r[n],e,t);else for(i=Object.keys(r),n=0,s=i.length;n<s;n+=1)Pv(r[i[n]],e,t)}function DH(r,e){e=e||{};var t=new bde(e);return t.noRefs||Ode(r,t),Ec(t,0,r,!0,!0)?t.dump+`\n`:\"\"}function Mde(r,e){return DH(r,Id.extend({schema:ode},e))}kv.exports.dump=DH;kv.exports.safeDump=Mde});var FH=y((a$e,Lr)=>{\"use strict\";var XI=AH(),RH=kH();function _I(r){return function(){throw new Error(\"Function \"+r+\" is deprecated and cannot be used.\")}}Lr.exports.Type=Ai();Lr.exports.Schema=pc();Lr.exports.FAILSAFE_SCHEMA=YI();Lr.exports.JSON_SCHEMA=wv();Lr.exports.CORE_SCHEMA=Bv();Lr.exports.DEFAULT_SAFE_SCHEMA=rf();Lr.exports.DEFAULT_FULL_SCHEMA=Cd();Lr.exports.load=XI.load;Lr.exports.loadAll=XI.loadAll;Lr.exports.safeLoad=XI.safeLoad;Lr.exports.safeLoadAll=XI.safeLoadAll;Lr.exports.dump=RH.dump;Lr.exports.safeDump=RH.safeDump;Lr.exports.YAMLException=ef();Lr.exports.MINIMAL_SCHEMA=YI();Lr.exports.SAFE_SCHEMA=rf();Lr.exports.DEFAULT_SCHEMA=Cd();Lr.exports.scan=_I(\"scan\");Lr.exports.parse=_I(\"parse\");Lr.exports.compose=_I(\"compose\");Lr.exports.addConstructor=_I(\"addConstructor\")});var LH=y((A$e,NH)=>{\"use strict\";var Kde=FH();NH.exports=Kde});var OH=y((l$e,TH)=>{\"use strict\";function Ude(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Ic(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name=\"SyntaxError\",typeof Error.captureStackTrace==\"function\"&&Error.captureStackTrace(this,Ic)}Ude(Ic,Error);Ic.buildMessage=function(r,e){var t={literal:function(c){return'\"'+n(c.text)+'\"'},class:function(c){var u=\"\",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+\"-\"+s(c.parts[g][1]):s(c.parts[g]);return\"[\"+(c.inverted?\"^\":\"\")+u+\"]\"},any:function(c){return\"any character\"},end:function(c){return\"end of input\"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(u){return\"\\\\x0\"+i(u)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(u){return\"\\\\x\"+i(u)})}function s(c){return c.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\]/g,\"\\\\]\").replace(/\\^/g,\"\\\\^\").replace(/-/g,\"\\\\-\").replace(/\\0/g,\"\\\\0\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x0F]/g,function(u){return\"\\\\x0\"+i(u)}).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,function(u){return\"\\\\x\"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,f;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,f=1;g<u.length;g++)u[g-1]!==u[g]&&(u[f]=u[g],f++);u.length=f}switch(u.length){case 1:return u[0];case 2:return u[0]+\" or \"+u[1];default:return u.slice(0,-1).join(\", \")+\", or \"+u[u.length-1]}}function l(c){return c?'\"'+n(c)+'\"':\"end of input\"}return\"Expected \"+a(r)+\" but \"+l(e)+\" found.\"};function Hde(r,e){e=e!==void 0?e:{};var t={},i={Start:Ks},n=Ks,s=function(R){return[].concat(...R)},o=\"-\",a=ar(\"-\",!1),l=function(R){return R},c=function(R){return Object.assign({},...R)},u=\"#\",g=ar(\"#\",!1),f=Zl(),h=function(){return{}},p=\":\",C=ar(\":\",!1),w=function(R,q){return{[R]:q}},B=\",\",v=ar(\",\",!1),D=function(R,q){return q},L=function(R,q,pe){return Object.assign({},...[R].concat(q).map(Ne=>({[Ne]:pe})))},H=function(R){return R},j=function(R){return R},$=Ms(\"correct indentation\"),V=\" \",W=ar(\" \",!1),Z=function(R){return R.length===SA*Hg},A=function(R){return R.length===(SA+1)*Hg},ae=function(){return SA++,!0},ge=function(){return SA--,!0},_=function(){return Lg()},T=Ms(\"pseudostring\"),N=/^[^\\r\\n\\t ?:,\\][{}#&*!|>'\"%@`\\-]/,ue=Fn([\"\\r\",`\n`,\"\t\",\" \",\"?\",\":\",\",\",\"]\",\"[\",\"{\",\"}\",\"#\",\"&\",\"*\",\"!\",\"|\",\">\",\"'\",'\"',\"%\",\"@\",\"`\",\"-\"],!0,!1),we=/^[^\\r\\n\\t ,\\][{}:#\"']/,Le=Fn([\"\\r\",`\n`,\"\t\",\" \",\",\",\"]\",\"[\",\"{\",\"}\",\":\",\"#\",'\"',\"'\"],!0,!1),Pe=function(){return Lg().replace(/^ *| *$/g,\"\")},Te=\"--\",se=ar(\"--\",!1),Ae=/^[a-zA-Z\\/0-9]/,Qe=Fn([[\"a\",\"z\"],[\"A\",\"Z\"],\"/\",[\"0\",\"9\"]],!1,!1),fe=/^[^\\r\\n\\t :,]/,le=Fn([\"\\r\",`\n`,\"\t\",\" \",\":\",\",\"],!0,!1),Ge=\"null\",ie=ar(\"null\",!1),Y=function(){return null},he=\"true\",re=ar(\"true\",!1),me=function(){return!0},tt=\"false\",Rt=ar(\"false\",!1),It=function(){return!1},Kr=Ms(\"string\"),oi='\"',pi=ar('\"',!1),pr=function(){return\"\"},di=function(R){return R},ai=function(R){return R.join(\"\")},Os=/^[^\"\\\\\\0-\\x1F\\x7F]/,dr=Fn(['\"',\"\\\\\",[\"\\0\",\"\u001f\"],\"\\x7F\"],!0,!1),Bi='\\\\\"',_n=ar('\\\\\"',!1),ha=function(){return'\"'},mA=\"\\\\\\\\\",Dg=ar(\"\\\\\\\\\",!1),Zn=function(){return\"\\\\\"},EA=\"\\\\/\",pa=ar(\"\\\\/\",!1),jp=function(){return\"/\"},IA=\"\\\\b\",yA=ar(\"\\\\b\",!1),Br=function(){return\"\\b\"},zl=\"\\\\f\",kg=ar(\"\\\\f\",!1),Eo=function(){return\"\\f\"},Rg=\"\\\\n\",qp=ar(\"\\\\n\",!1),Jp=function(){return`\n`},xr=\"\\\\r\",oe=ar(\"\\\\r\",!1),Io=function(){return\"\\r\"},kn=\"\\\\t\",Fg=ar(\"\\\\t\",!1),Qt=function(){return\"\t\"},Vl=\"\\\\u\",Rn=ar(\"\\\\u\",!1),$n=function(R,q,pe,Ne){return String.fromCharCode(parseInt(`0x${R}${q}${pe}${Ne}`))},es=/^[0-9a-fA-F]/,ut=Fn([[\"0\",\"9\"],[\"a\",\"f\"],[\"A\",\"F\"]],!1,!1),yo=Ms(\"blank space\"),at=/^[ \\t]/,ln=Fn([\" \",\"\t\"],!1,!1),S=Ms(\"white space\"),Tt=/^[ \\t\\n\\r]/,Ng=Fn([\" \",\"\t\",`\n`,\"\\r\"],!1,!1),Xl=`\\r\n`,Wp=ar(`\\r\n`,!1),zp=`\n`,Vp=ar(`\n`,!1),Xp=\"\\r\",_p=ar(\"\\r\",!1),G=0,yt=0,wA=[{line:1,column:1}],Wi=0,_l=[],We=0,da;if(\"startRule\"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule \"`+e.startRule+'\".');n=i[e.startRule]}function Lg(){return r.substring(yt,G)}function lI(){return cn(yt,G)}function Zp(R,q){throw q=q!==void 0?q:cn(yt,G),$l([Ms(R)],r.substring(yt,G),q)}function cI(R,q){throw q=q!==void 0?q:cn(yt,G),Tg(R,q)}function ar(R,q){return{type:\"literal\",text:R,ignoreCase:q}}function Fn(R,q,pe){return{type:\"class\",parts:R,inverted:q,ignoreCase:pe}}function Zl(){return{type:\"any\"}}function $p(){return{type:\"end\"}}function Ms(R){return{type:\"other\",description:R}}function Ca(R){var q=wA[R],pe;if(q)return q;for(pe=R-1;!wA[pe];)pe--;for(q=wA[pe],q={line:q.line,column:q.column};pe<R;)r.charCodeAt(pe)===10?(q.line++,q.column=1):q.column++,pe++;return wA[R]=q,q}function cn(R,q){var pe=Ca(R),Ne=Ca(q);return{start:{offset:R,line:pe.line,column:pe.column},end:{offset:q,line:Ne.line,column:Ne.column}}}function De(R){G<Wi||(G>Wi&&(Wi=G,_l=[]),_l.push(R))}function Tg(R,q){return new Ic(R,null,null,q)}function $l(R,q,pe){return new Ic(Ic.buildMessage(R,q),R,q,pe)}function Ks(){var R;return R=Og(),R}function ec(){var R,q,pe;for(R=G,q=[],pe=BA();pe!==t;)q.push(pe),pe=BA();return q!==t&&(yt=R,q=s(q)),R=q,R}function BA(){var R,q,pe,Ne,xe;return R=G,q=Ea(),q!==t?(r.charCodeAt(G)===45?(pe=o,G++):(pe=t,We===0&&De(a)),pe!==t?(Ne=Fr(),Ne!==t?(xe=ma(),xe!==t?(yt=R,q=l(xe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function Og(){var R,q,pe;for(R=G,q=[],pe=Mg();pe!==t;)q.push(pe),pe=Mg();return q!==t&&(yt=R,q=c(q)),R=q,R}function Mg(){var R,q,pe,Ne,xe,qe,dt,Ft,Nn;if(R=G,q=Fr(),q===t&&(q=null),q!==t){if(pe=G,r.charCodeAt(G)===35?(Ne=u,G++):(Ne=t,We===0&&De(g)),Ne!==t){if(xe=[],qe=G,dt=G,We++,Ft=Gs(),We--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,We===0&&De(f)),Ft!==t?(dt=[dt,Ft],qe=dt):(G=qe,qe=t)):(G=qe,qe=t),qe!==t)for(;qe!==t;)xe.push(qe),qe=G,dt=G,We++,Ft=Gs(),We--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,We===0&&De(f)),Ft!==t?(dt=[dt,Ft],qe=dt):(G=qe,qe=t)):(G=qe,qe=t);else xe=t;xe!==t?(Ne=[Ne,xe],pe=Ne):(G=pe,pe=t)}else G=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Ne=[],xe=Hs(),xe!==t)for(;xe!==t;)Ne.push(xe),xe=Hs();else Ne=t;Ne!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=Ea(),q!==t?(pe=tc(),pe!==t?(Ne=Fr(),Ne===t&&(Ne=null),Ne!==t?(r.charCodeAt(G)===58?(xe=p,G++):(xe=t,We===0&&De(C)),xe!==t?(qe=Fr(),qe===t&&(qe=null),qe!==t?(dt=ma(),dt!==t?(yt=R,q=w(pe,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Ea(),q!==t?(pe=Us(),pe!==t?(Ne=Fr(),Ne===t&&(Ne=null),Ne!==t?(r.charCodeAt(G)===58?(xe=p,G++):(xe=t,We===0&&De(C)),xe!==t?(qe=Fr(),qe===t&&(qe=null),qe!==t?(dt=ma(),dt!==t?(yt=R,q=w(pe,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=Ea(),q!==t)if(pe=Us(),pe!==t)if(Ne=Fr(),Ne!==t)if(xe=uI(),xe!==t){if(qe=[],dt=Hs(),dt!==t)for(;dt!==t;)qe.push(dt),dt=Hs();else qe=t;qe!==t?(yt=R,q=w(pe,xe),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=Ea(),q!==t)if(pe=Us(),pe!==t){if(Ne=[],xe=G,qe=Fr(),qe===t&&(qe=null),qe!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,We===0&&De(v)),dt!==t?(Ft=Fr(),Ft===t&&(Ft=null),Ft!==t?(Nn=Us(),Nn!==t?(yt=xe,qe=D(pe,Nn),xe=qe):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t),xe!==t)for(;xe!==t;)Ne.push(xe),xe=G,qe=Fr(),qe===t&&(qe=null),qe!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,We===0&&De(v)),dt!==t?(Ft=Fr(),Ft===t&&(Ft=null),Ft!==t?(Nn=Us(),Nn!==t?(yt=xe,qe=D(pe,Nn),xe=qe):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t);else Ne=t;Ne!==t?(xe=Fr(),xe===t&&(xe=null),xe!==t?(r.charCodeAt(G)===58?(qe=p,G++):(qe=t,We===0&&De(C)),qe!==t?(dt=Fr(),dt===t&&(dt=null),dt!==t?(Ft=ma(),Ft!==t?(yt=R,q=L(pe,Ne,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function ma(){var R,q,pe,Ne,xe,qe,dt;if(R=G,q=G,We++,pe=G,Ne=Gs(),Ne!==t?(xe=$e(),xe!==t?(r.charCodeAt(G)===45?(qe=o,G++):(qe=t,We===0&&De(a)),qe!==t?(dt=Fr(),dt!==t?(Ne=[Ne,xe,qe,dt],pe=Ne):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t),We--,pe!==t?(G=q,q=void 0):q=t,q!==t?(pe=Hs(),pe!==t?(Ne=wo(),Ne!==t?(xe=ec(),xe!==t?(qe=QA(),qe!==t?(yt=R,q=H(xe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Gs(),q!==t?(pe=wo(),pe!==t?(Ne=Og(),Ne!==t?(xe=QA(),xe!==t?(yt=R,q=H(Ne),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=rc(),q!==t){if(pe=[],Ne=Hs(),Ne!==t)for(;Ne!==t;)pe.push(Ne),Ne=Hs();else pe=t;pe!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function Ea(){var R,q,pe;for(We++,R=G,q=[],r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&De(W));pe!==t;)q.push(pe),r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&De(W));return q!==t?(yt=G,pe=Z(q),pe?pe=void 0:pe=t,pe!==t?(q=[q,pe],R=q):(G=R,R=t)):(G=R,R=t),We--,R===t&&(q=t,We===0&&De($)),R}function $e(){var R,q,pe;for(R=G,q=[],r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&De(W));pe!==t;)q.push(pe),r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&De(W));return q!==t?(yt=G,pe=A(q),pe?pe=void 0:pe=t,pe!==t?(q=[q,pe],R=q):(G=R,R=t)):(G=R,R=t),R}function wo(){var R;return yt=G,R=ae(),R?R=void 0:R=t,R}function QA(){var R;return yt=G,R=ge(),R?R=void 0:R=t,R}function tc(){var R;return R=ic(),R===t&&(R=ed()),R}function Us(){var R,q,pe;if(R=ic(),R===t){if(R=G,q=[],pe=Kg(),pe!==t)for(;pe!==t;)q.push(pe),pe=Kg();else q=t;q!==t&&(yt=R,q=_()),R=q}return R}function rc(){var R;return R=td(),R===t&&(R=gI(),R===t&&(R=ic(),R===t&&(R=ed()))),R}function uI(){var R;return R=td(),R===t&&(R=ic(),R===t&&(R=Kg())),R}function ed(){var R,q,pe,Ne,xe,qe;if(We++,R=G,N.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&De(ue)),q!==t){for(pe=[],Ne=G,xe=Fr(),xe===t&&(xe=null),xe!==t?(we.test(r.charAt(G))?(qe=r.charAt(G),G++):(qe=t,We===0&&De(Le)),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);Ne!==t;)pe.push(Ne),Ne=G,xe=Fr(),xe===t&&(xe=null),xe!==t?(we.test(r.charAt(G))?(qe=r.charAt(G),G++):(qe=t,We===0&&De(Le)),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);pe!==t?(yt=R,q=Pe(),R=q):(G=R,R=t)}else G=R,R=t;return We--,R===t&&(q=t,We===0&&De(T)),R}function Kg(){var R,q,pe,Ne,xe;if(R=G,r.substr(G,2)===Te?(q=Te,G+=2):(q=t,We===0&&De(se)),q===t&&(q=null),q!==t)if(Ae.test(r.charAt(G))?(pe=r.charAt(G),G++):(pe=t,We===0&&De(Qe)),pe!==t){for(Ne=[],fe.test(r.charAt(G))?(xe=r.charAt(G),G++):(xe=t,We===0&&De(le));xe!==t;)Ne.push(xe),fe.test(r.charAt(G))?(xe=r.charAt(G),G++):(xe=t,We===0&&De(le));Ne!==t?(yt=R,q=Pe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function td(){var R,q;return R=G,r.substr(G,4)===Ge?(q=Ge,G+=4):(q=t,We===0&&De(ie)),q!==t&&(yt=R,q=Y()),R=q,R}function gI(){var R,q;return R=G,r.substr(G,4)===he?(q=he,G+=4):(q=t,We===0&&De(re)),q!==t&&(yt=R,q=me()),R=q,R===t&&(R=G,r.substr(G,5)===tt?(q=tt,G+=5):(q=t,We===0&&De(Rt)),q!==t&&(yt=R,q=It()),R=q),R}function ic(){var R,q,pe,Ne;return We++,R=G,r.charCodeAt(G)===34?(q=oi,G++):(q=t,We===0&&De(pi)),q!==t?(r.charCodeAt(G)===34?(pe=oi,G++):(pe=t,We===0&&De(pi)),pe!==t?(yt=R,q=pr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=oi,G++):(q=t,We===0&&De(pi)),q!==t?(pe=fI(),pe!==t?(r.charCodeAt(G)===34?(Ne=oi,G++):(Ne=t,We===0&&De(pi)),Ne!==t?(yt=R,q=di(pe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),We--,R===t&&(q=t,We===0&&De(Kr)),R}function fI(){var R,q,pe;if(R=G,q=[],pe=Ug(),pe!==t)for(;pe!==t;)q.push(pe),pe=Ug();else q=t;return q!==t&&(yt=R,q=ai(q)),R=q,R}function Ug(){var R,q,pe,Ne,xe,qe;return Os.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,We===0&&De(dr)),R===t&&(R=G,r.substr(G,2)===Bi?(q=Bi,G+=2):(q=t,We===0&&De(_n)),q!==t&&(yt=R,q=ha()),R=q,R===t&&(R=G,r.substr(G,2)===mA?(q=mA,G+=2):(q=t,We===0&&De(Dg)),q!==t&&(yt=R,q=Zn()),R=q,R===t&&(R=G,r.substr(G,2)===EA?(q=EA,G+=2):(q=t,We===0&&De(pa)),q!==t&&(yt=R,q=jp()),R=q,R===t&&(R=G,r.substr(G,2)===IA?(q=IA,G+=2):(q=t,We===0&&De(yA)),q!==t&&(yt=R,q=Br()),R=q,R===t&&(R=G,r.substr(G,2)===zl?(q=zl,G+=2):(q=t,We===0&&De(kg)),q!==t&&(yt=R,q=Eo()),R=q,R===t&&(R=G,r.substr(G,2)===Rg?(q=Rg,G+=2):(q=t,We===0&&De(qp)),q!==t&&(yt=R,q=Jp()),R=q,R===t&&(R=G,r.substr(G,2)===xr?(q=xr,G+=2):(q=t,We===0&&De(oe)),q!==t&&(yt=R,q=Io()),R=q,R===t&&(R=G,r.substr(G,2)===kn?(q=kn,G+=2):(q=t,We===0&&De(Fg)),q!==t&&(yt=R,q=Qt()),R=q,R===t&&(R=G,r.substr(G,2)===Vl?(q=Vl,G+=2):(q=t,We===0&&De(Rn)),q!==t?(pe=bA(),pe!==t?(Ne=bA(),Ne!==t?(xe=bA(),xe!==t?(qe=bA(),qe!==t?(yt=R,q=$n(pe,Ne,xe,qe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function bA(){var R;return es.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,We===0&&De(ut)),R}function Fr(){var R,q;if(We++,R=[],at.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&De(ln)),q!==t)for(;q!==t;)R.push(q),at.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&De(ln));else R=t;return We--,R===t&&(q=t,We===0&&De(yo)),R}function hI(){var R,q;if(We++,R=[],Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&De(Ng)),q!==t)for(;q!==t;)R.push(q),Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&De(Ng));else R=t;return We--,R===t&&(q=t,We===0&&De(S)),R}function Hs(){var R,q,pe,Ne,xe,qe;if(R=G,q=Gs(),q!==t){for(pe=[],Ne=G,xe=Fr(),xe===t&&(xe=null),xe!==t?(qe=Gs(),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);Ne!==t;)pe.push(Ne),Ne=G,xe=Fr(),xe===t&&(xe=null),xe!==t?(qe=Gs(),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);pe!==t?(q=[q,pe],R=q):(G=R,R=t)}else G=R,R=t;return R}function Gs(){var R;return r.substr(G,2)===Xl?(R=Xl,G+=2):(R=t,We===0&&De(Wp)),R===t&&(r.charCodeAt(G)===10?(R=zp,G++):(R=t,We===0&&De(Vp)),R===t&&(r.charCodeAt(G)===13?(R=Xp,G++):(R=t,We===0&&De(_p)))),R}let Hg=2,SA=0;if(da=n(),da!==t&&G===r.length)return da;throw da!==t&&G<r.length&&De($p()),$l(_l,Wi<r.length?r.charAt(Wi):null,Wi<r.length?cn(Wi,Wi+1):cn(Wi,Wi))}TH.exports={SyntaxError:Ic,parse:Hde}});var YH=y((h$e,Fv)=>{\"use strict\";var Jde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n<r.length;n++){let s=r[n];e&&/[a-zA-Z]/.test(s)&&s.toUpperCase()===s?(r=r.slice(0,n)+\"-\"+r.slice(n),e=!1,i=t,t=!0,n++):t&&i&&/[a-zA-Z]/.test(s)&&s.toLowerCase()===s?(r=r.slice(0,n-1)+\"-\"+r.slice(n-1),i=t,t=!1,e=!0):(e=s.toLowerCase()===s&&s.toUpperCase()!==s,i=t,t=s.toUpperCase()===s&&s.toLowerCase()!==s)}return r},GH=(r,e)=>{if(!(typeof r==\"string\"||Array.isArray(r)))throw new TypeError(\"Expected the input to be `string | string[]`\");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join(\"-\"):r=r.trim(),r.length===0?\"\":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=Jde(r)),r=r.replace(/^[_.\\- ]+/,\"\").toLowerCase().replace(/[_.\\- ]+(\\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\\d+(\\w|$)/g,n=>n.toUpperCase()),t(r))};Fv.exports=GH;Fv.exports.default=GH});var jH=y((p$e,Wde)=>{Wde.exports=[{name:\"AppVeyor\",constant:\"APPVEYOR\",env:\"APPVEYOR\",pr:\"APPVEYOR_PULL_REQUEST_NUMBER\"},{name:\"Azure Pipelines\",constant:\"AZURE_PIPELINES\",env:\"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI\",pr:\"SYSTEM_PULLREQUEST_PULLREQUESTID\"},{name:\"Appcircle\",constant:\"APPCIRCLE\",env:\"AC_APPCIRCLE\"},{name:\"Bamboo\",constant:\"BAMBOO\",env:\"bamboo_planKey\"},{name:\"Bitbucket Pipelines\",constant:\"BITBUCKET\",env:\"BITBUCKET_COMMIT\",pr:\"BITBUCKET_PR_ID\"},{name:\"Bitrise\",constant:\"BITRISE\",env:\"BITRISE_IO\",pr:\"BITRISE_PULL_REQUEST\"},{name:\"Buddy\",constant:\"BUDDY\",env:\"BUDDY_WORKSPACE_ID\",pr:\"BUDDY_EXECUTION_PULL_REQUEST_ID\"},{name:\"Buildkite\",constant:\"BUILDKITE\",env:\"BUILDKITE\",pr:{env:\"BUILDKITE_PULL_REQUEST\",ne:\"false\"}},{name:\"CircleCI\",constant:\"CIRCLE\",env:\"CIRCLECI\",pr:\"CIRCLE_PULL_REQUEST\"},{name:\"Cirrus CI\",constant:\"CIRRUS\",env:\"CIRRUS_CI\",pr:\"CIRRUS_PR\"},{name:\"AWS CodeBuild\",constant:\"CODEBUILD\",env:\"CODEBUILD_BUILD_ARN\"},{name:\"Codefresh\",constant:\"CODEFRESH\",env:\"CF_BUILD_ID\",pr:{any:[\"CF_PULL_REQUEST_NUMBER\",\"CF_PULL_REQUEST_ID\"]}},{name:\"Codeship\",constant:\"CODESHIP\",env:{CI_NAME:\"codeship\"}},{name:\"Drone\",constant:\"DRONE\",env:\"DRONE\",pr:{DRONE_BUILD_EVENT:\"pull_request\"}},{name:\"dsari\",constant:\"DSARI\",env:\"DSARI\"},{name:\"GitHub Actions\",constant:\"GITHUB_ACTIONS\",env:\"GITHUB_ACTIONS\",pr:{GITHUB_EVENT_NAME:\"pull_request\"}},{name:\"GitLab CI\",constant:\"GITLAB\",env:\"GITLAB_CI\",pr:\"CI_MERGE_REQUEST_ID\"},{name:\"GoCD\",constant:\"GOCD\",env:\"GO_PIPELINE_LABEL\"},{name:\"LayerCI\",constant:\"LAYERCI\",env:\"LAYERCI\",pr:\"LAYERCI_PULL_REQUEST\"},{name:\"Hudson\",constant:\"HUDSON\",env:\"HUDSON_URL\"},{name:\"Jenkins\",constant:\"JENKINS\",env:[\"JENKINS_URL\",\"BUILD_ID\"],pr:{any:[\"ghprbPullId\",\"CHANGE_ID\"]}},{name:\"Magnum CI\",constant:\"MAGNUM\",env:\"MAGNUM\"},{name:\"Netlify CI\",constant:\"NETLIFY\",env:\"NETLIFY\",pr:{env:\"PULL_REQUEST\",ne:\"false\"}},{name:\"Nevercode\",constant:\"NEVERCODE\",env:\"NEVERCODE\",pr:{env:\"NEVERCODE_PULL_REQUEST\",ne:\"false\"}},{name:\"Render\",constant:\"RENDER\",env:\"RENDER\",pr:{IS_PULL_REQUEST:\"true\"}},{name:\"Sail CI\",constant:\"SAIL\",env:\"SAILCI\",pr:\"SAIL_PULL_REQUEST_NUMBER\"},{name:\"Semaphore\",constant:\"SEMAPHORE\",env:\"SEMAPHORE\",pr:\"PULL_REQUEST_NUMBER\"},{name:\"Screwdriver\",constant:\"SCREWDRIVER\",env:\"SCREWDRIVER\",pr:{env:\"SD_PULL_REQUEST\",ne:\"false\"}},{name:\"Shippable\",constant:\"SHIPPABLE\",env:\"SHIPPABLE\",pr:{IS_PULL_REQUEST:\"true\"}},{name:\"Solano CI\",constant:\"SOLANO\",env:\"TDDIUM\",pr:\"TDDIUM_PR_ID\"},{name:\"Strider CD\",constant:\"STRIDER\",env:\"STRIDER\"},{name:\"TaskCluster\",constant:\"TASKCLUSTER\",env:[\"TASK_ID\",\"RUN_ID\"]},{name:\"TeamCity\",constant:\"TEAMCITY\",env:\"TEAMCITY_VERSION\"},{name:\"Travis CI\",constant:\"TRAVIS\",env:\"TRAVIS\",pr:{env:\"TRAVIS_PULL_REQUEST\",ne:\"false\"}},{name:\"Vercel\",constant:\"VERCEL\",env:\"NOW_BUILDER\"},{name:\"Visual Studio App Center\",constant:\"APPCENTER\",env:\"APPCENTER_BUILD_ID\"}]});var yc=y(Mn=>{\"use strict\";var JH=jH(),vo=process.env;Object.defineProperty(Mn,\"_vendors\",{value:JH.map(function(r){return r.constant})});Mn.name=null;Mn.isPR=null;JH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return qH(i)});if(Mn[r.constant]=t,t)switch(Mn.name=r.name,typeof r.pr){case\"string\":Mn.isPR=!!vo[r.pr];break;case\"object\":\"env\"in r.pr?Mn.isPR=r.pr.env in vo&&vo[r.pr.env]!==r.pr.ne:\"any\"in r.pr?Mn.isPR=r.pr.any.some(function(i){return!!vo[i]}):Mn.isPR=qH(r.pr);break;default:Mn.isPR=null}});Mn.isCI=!!(vo.CI||vo.CONTINUOUS_INTEGRATION||vo.BUILD_NUMBER||vo.RUN_ID||Mn.name);function qH(r){return typeof r==\"string\"?!!vo[r]:Object.keys(r).every(function(e){return vo[e]===r[e]})}});var ey=y(Kn=>{\"use strict\";Object.defineProperty(Kn,\"__esModule\",{value:!0});var zde=0,Vde=1,Xde=2,_de=\"\u0001\",Zde=\"\\0\",$de=-1,eCe=/^(-h|--help)(?:=([0-9]+))?$/,tCe=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,rCe=/^-[a-zA-Z]{2,}$/,iCe=/^([^=]+)=([\\s\\S]*)$/,nCe=process.env.DEBUG_CLI===\"1\";Kn.BATCH_REGEX=rCe;Kn.BINDING_REGEX=iCe;Kn.DEBUG=nCe;Kn.END_OF_INPUT=Zde;Kn.HELP_COMMAND_INDEX=$de;Kn.HELP_REGEX=eCe;Kn.NODE_ERRORED=Xde;Kn.NODE_INITIAL=zde;Kn.NODE_SUCCESS=Vde;Kn.OPTION_REGEX=tCe;Kn.START_OF_INPUT=_de});var ty=y(Bd=>{\"use strict\";Object.defineProperty(Bd,\"__esModule\",{value:!0});var sCe=ey(),Nv=class extends Error{constructor(e){super(e),this.clipanion={type:\"usage\"},this.name=\"UsageError\"}},Lv=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:\"none\"},this.name=\"UnknownSyntaxError\",this.candidates.length===0)this.message=\"Command not found, but we're not sure what's the alternative.\";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i}\n\n${this.candidates.map(({usage:n})=>`$ ${n}`).join(`\n`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean:\n\n$ ${i}\n${Ov(e)}`}else this.message=`Command not found; did you mean one of:\n\n${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(`\n`)}\n\n${Ov(e)}`}},Tv=class extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:\"none\"},this.name=\"AmbiguousSyntaxError\",this.message=`Cannot find which to pick amongst the following alternatives:\n\n${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(`\n`)}\n\n${Ov(e)}`}},Ov=r=>`While running ${r.filter(e=>e!==sCe.END_OF_INPUT).map(e=>{let t=JSON.stringify(e);return e.match(/\\s/)||e.length===0||t!==`\"${e}\"`?t:e}).join(\" \")}`;Bd.AmbiguousSyntaxError=Tv;Bd.UnknownSyntaxError=Lv;Bd.UsageError=Nv});var Sa=y(NA=>{\"use strict\";Object.defineProperty(NA,\"__esModule\",{value:!0});var WH=ty(),zH=Symbol(\"clipanion/isOption\");function oCe(r){return{...r,[zH]:!0}}function aCe(r,e){return typeof r>\"u\"?[r,e]:typeof r==\"object\"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function Mv(r,e=!1){let t=r.replace(/^\\.: /,\"\");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function VH(r,e){return e.length===1?new WH.UsageError(`${r}: ${Mv(e[0],!0)}`):new WH.UsageError(`${r}:\n${e.map(t=>`\n- ${Mv(t)}`).join(\"\")}`)}function ACe(r,e,t){if(typeof t>\"u\")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw VH(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}NA.applyValidator=ACe;NA.cleanValidationError=Mv;NA.formatError=VH;NA.isOptionSymbol=zH;NA.makeCommandOption=oCe;NA.rerouteArguments=aCe});var ns=y(st=>{\"use strict\";Object.defineProperty(st,\"__esModule\",{value:!0});var XH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,_H=/^#[0-9a-f]{6}$/i,ZH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,$H=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,eG=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,Kv=/^(?:[1-9]\\d{3}(-?)(?:(?:0[1-9]|1[0-2])\\1(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])\\1(?:29|30)|(?:0[13578]|1[02])(?:\\1)31|00[1-9]|0[1-9]\\d|[12]\\d{2}|3(?:[0-5]\\d|6[0-5]))|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\\2)29|-?366))T(?:[01]\\d|2[0-3])(:?)[0-5]\\d(?:\\3[0-5]\\d)?(?:Z|[+-][01]\\d(?:\\3[0-5]\\d)?)$/,tG=r=>()=>r;function bt({test:r}){return tG(r)()}function Zr(r){return r===null?\"null\":r===void 0?\"undefined\":r===\"\"?\"an empty string\":JSON.stringify(r)}function LA(r,e){var t,i,n;return typeof e==\"number\"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:\".\"}[${e}]`:XH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:\"\"}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:\".\"}[${JSON.stringify(e)}]`}function wc(r,e){return t=>{let i=r[e];return r[e]=t,wc(r,e).bind(null,i)}}function rG(r,e){return t=>{r[e]=t}}function ry(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:\".\"}: ${t}`),!1}var iG=()=>bt({test:(r,e)=>!0});function lCe(r){return bt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Zr(r)})`):!0})}var cCe=()=>bt({test:(r,e)=>typeof r!=\"string\"?pt(e,`Expected a string (got ${Zr(r)})`):!0});function uCe(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return bt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Zr(i)})`)})}var gCe=new Map([[\"true\",!0],[\"True\",!0],[\"1\",!0],[1,!0],[\"false\",!1],[\"False\",!1],[\"0\",!1],[0,!1]]),fCe=()=>bt({test:(r,e)=>{var t;if(typeof r!=\"boolean\"){if(typeof(e==null?void 0:e.coercions)<\"u\"){if(typeof(e==null?void 0:e.coercion)>\"u\")return pt(e,\"Unbound coercion result\");let i=gCe.get(r);if(typeof i<\"u\")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:\".\",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Zr(r)})`)}return!0}}),hCe=()=>bt({test:(r,e)=>{var t;if(typeof r!=\"number\"){if(typeof(e==null?void 0:e.coercions)<\"u\"){if(typeof(e==null?void 0:e.coercion)>\"u\")return pt(e,\"Unbound coercion result\");let i;if(typeof r==\"string\"){let n;try{n=JSON.parse(r)}catch{}if(typeof n==\"number\")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<\"u\")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:\".\",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Zr(r)})`)}return!0}}),pCe=()=>bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<\"u\"){if(typeof(e==null?void 0:e.coercion)>\"u\")return pt(e,\"Unbound coercion result\");let i;if(typeof r==\"string\"&&Kv.test(r))i=new Date(r);else{let n;if(typeof r==\"string\"){let s;try{s=JSON.parse(r)}catch{}typeof s==\"number\"&&(n=s)}else typeof r==\"number\"&&(n=r);if(typeof n<\"u\")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<\"u\")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:\".\",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Zr(r)})`)}return!0}}),dCe=(r,{delimiter:e}={})=>bt({test:(t,i)=>{var n;if(typeof t==\"string\"&&typeof e<\"u\"&&typeof(i==null?void 0:i.coercions)<\"u\"){if(typeof(i==null?void 0:i.coercion)>\"u\")return pt(i,\"Unbound coercion result\");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:\".\",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Zr(t)})`);let s=!0;for(let o=0,a=t.length;o<a&&(s=r(t[o],Object.assign(Object.assign({},i),{p:LA(i,o),coercion:wc(t,o)}))&&s,!(!s&&(i==null?void 0:i.errors)==null));++o);return s}}),CCe=(r,{delimiter:e}={})=>{let t=nG(r.length);return bt({test:(i,n)=>{var s;if(typeof i==\"string\"&&typeof e<\"u\"&&typeof(n==null?void 0:n.coercions)<\"u\"){if(typeof(n==null?void 0:n.coercion)>\"u\")return pt(n,\"Unbound coercion result\");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:\".\",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Zr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;a<l&&a<r.length&&(o=r[a](i[a],Object.assign(Object.assign({},n),{p:LA(n,a),coercion:wc(i,a)}))&&o,!(!o&&(n==null?void 0:n.errors)==null));++a);return o}})},mCe=(r,{keys:e=null}={})=>bt({test:(t,i)=>{if(typeof t!=\"object\"||t===null)return pt(i,`Expected an object (got ${Zr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o<a&&(s||(i==null?void 0:i.errors)!=null);++o){let l=n[o],c=t[l];if(l===\"__proto__\"||l===\"constructor\"){s=pt(Object.assign(Object.assign({},i),{p:LA(i,l)}),\"Unsafe property name\");continue}if(e!==null&&!e(l,i)){s=!1;continue}if(!r(c,Object.assign(Object.assign({},i),{p:LA(i,l),coercion:wc(t,l)}))){s=!1;continue}}return s}}),ECe=(r,{extra:e=null}={})=>{let t=Object.keys(r);return bt({test:(i,n)=>{if(typeof i!=\"object\"||i===null)return pt(n,`Expected an object (got ${Zr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l===\"constructor\"||l===\"__proto__\")a=pt(Object.assign(Object.assign({},n),{p:LA(n,l)}),\"Unsafe property name\");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<\"u\"?a=c(u,Object.assign(Object.assign({},n),{p:LA(n,l),coercion:wc(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:LA(n,l)}),`Extraneous property (got ${Zr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:rG(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},ICe=r=>bt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Zr(e)})`)}),yCe=(r,{exclusive:e=!1}={})=>bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<\"u\"?[]:void 0;for(let c=0,u=r.length;c<u;++c){let g=typeof(i==null?void 0:i.errors)<\"u\"?[]:void 0,f=typeof(i==null?void 0:i.coercions)<\"u\"?[]:void 0;if(r[c](t,Object.assign(Object.assign({},i),{errors:g,coercions:f,p:`${(n=i==null?void 0:i.p)!==null&&n!==void 0?n:\".\"}#${c+1}`}))){if(a.push([`#${c+1}`,f]),!e)break}else l==null||l.push(g[0])}if(a.length===1){let[,c]=a[0];return typeof c<\"u\"&&((s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...c)),!0}return a.length>1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(\", \")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),wCe=(r,e)=>bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<\"u\"?wc(o,\"value\"):void 0,l=typeof(i==null?void 0:i.coercions)<\"u\"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<\"u\")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<\"u\"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>\"u\")return pt(i,\"Unbound coercion result\");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:\".\",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),BCe=r=>bt({test:(e,t)=>typeof e>\"u\"?!0:r(e,t)}),QCe=r=>bt({test:(e,t)=>e===null?!0:r(e,t)}),bCe=r=>bt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),SCe=r=>bt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),nG=r=>bt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),vCe=({map:r}={})=>bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;s<o;++s){let a=e[s],l=typeof r<\"u\"?r(a):a;if(i.has(l)){if(n.has(l))continue;pt(t,`Expected to contain unique elements; got a duplicate with ${Zr(e)}`),n.add(l)}else i.add(l)}return n.size===0}}),xCe=()=>bt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),PCe=()=>bt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),DCe=r=>bt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),kCe=r=>bt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),RCe=(r,e)=>bt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),FCe=(r,e)=>bt({test:(t,i)=>t>=r&&t<e?!0:pt(i,`Expected to be in the [${r}; ${e}[ range (got ${t})`)}),NCe=({unsafe:r=!1}={})=>bt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),LCe=r=>bt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Zr(e)})`)}),TCe=()=>bt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),OCe=()=>bt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),MCe=()=>bt({test:(r,e)=>eG.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Zr(r)})`)}),KCe=()=>bt({test:(r,e)=>Kv.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Zr(r)})`)}),UCe=({alpha:r=!1})=>bt({test:(e,t)=>(r?_H.test(e):ZH.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Zr(e)})`)}),HCe=()=>bt({test:(r,e)=>$H.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Zr(r)})`)}),GCe=(r=iG())=>bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Zr(e)})`)}return r(i,t)}}),YCe=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${ry(s.length,\"property\",\"properties\")} ${s.map(o=>`\"${o}\"`).join(\", \")}`):!0}})},jCe=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${ry(s.length,\"property\",\"properties\")} ${s.map(o=>`\"${o}\"`).join(\", \")}`):!0}})},qCe=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`\"${o}\"`).join(\", \")}`):!0}})};(function(r){r.Forbids=\"Forbids\",r.Requires=\"Requires\"})(st.KeyRelationship||(st.KeyRelationship={}));var JCe={[st.KeyRelationship.Forbids]:{expect:!1,message:\"forbids using\"},[st.KeyRelationship.Requires]:{expect:!0,message:\"requires using\"}},WCe=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=JCe[e];return bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property \"${r}\" ${o.message} ${ry(u.length,\"property\",\"properties\")} ${u.map(g=>`\"${g}\"`).join(\", \")}`):!0}})};st.applyCascade=wCe;st.base64RegExp=$H;st.colorStringAlphaRegExp=ZH;st.colorStringRegExp=_H;st.computeKey=LA;st.getPrintable=Zr;st.hasExactLength=nG;st.hasForbiddenKeys=jCe;st.hasKeyRelationship=WCe;st.hasMaxLength=SCe;st.hasMinLength=bCe;st.hasMutuallyExclusiveKeys=qCe;st.hasRequiredKeys=YCe;st.hasUniqueItems=vCe;st.isArray=dCe;st.isAtLeast=DCe;st.isAtMost=kCe;st.isBase64=HCe;st.isBoolean=fCe;st.isDate=pCe;st.isDict=mCe;st.isEnum=uCe;st.isHexColor=UCe;st.isISO8601=KCe;st.isInExclusiveRange=FCe;st.isInInclusiveRange=RCe;st.isInstanceOf=ICe;st.isInteger=NCe;st.isJSON=GCe;st.isLiteral=lCe;st.isLowerCase=TCe;st.isNegative=xCe;st.isNullable=QCe;st.isNumber=hCe;st.isObject=ECe;st.isOneOf=yCe;st.isOptional=BCe;st.isPositive=PCe;st.isString=cCe;st.isTuple=CCe;st.isUUID4=MCe;st.isUnknown=iG;st.isUpperCase=OCe;st.iso8601RegExp=Kv;st.makeCoercionFn=wc;st.makeSetter=rG;st.makeTrait=tG;st.makeValidator=bt;st.matchesRegExp=LCe;st.plural=ry;st.pushError=pt;st.simpleKeyRegExp=XH;st.uuid4RegExp=eG});var Bc=y(Uv=>{\"use strict\";Object.defineProperty(Uv,\"__esModule\",{value:!0});var sG=Sa();function zCe(r){if(r&&r.__esModule)return r;var e=Object.create(null);return r&&Object.keys(r).forEach(function(t){if(t!==\"default\"){var i=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:function(){return r[t]}})}}),e.default=r,Object.freeze(e)}var Qd=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(function(){return zCe(ns())}),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw sG.formatError(\"Invalid option schema\",l);for(let[,g]of c)g()}else if(t!=null)throw new Error(\"Invalid command schema\");let i=await this.execute();return typeof i<\"u\"?i:0}};Qd.isOption=sG.isOptionSymbol;Qd.Default=[];Uv.Command=Qd});var Gv=y(bd=>{\"use strict\";Object.defineProperty(bd,\"__esModule\",{value:!0});var oG=80,Hv=Array(oG).fill(\"\\u2501\");for(let r=0;r<=24;++r)Hv[Hv.length-r]=`\\x1B[38;5;${232+r}m\\u2501`;var VCe={header:r=>`\\x1B[1m\\u2501\\u2501\\u2501 ${r}${r.length<oG-5?` ${Hv.slice(r.length+5).join(\"\")}`:\":\"}\\x1B[0m`,bold:r=>`\\x1B[1m${r}\\x1B[22m`,error:r=>`\\x1B[31m\\x1B[1m${r}\\x1B[22m\\x1B[39m`,code:r=>`\\x1B[36m${r}\\x1B[39m`},XCe={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function _Ce(r){let e=r.split(`\n`),t=e.filter(n=>n.match(/\\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(`\n`)}function ZCe(r,{format:e,paragraphs:t}){return r=r.replace(/\\r\\n?/g,`\n`),r=_Ce(r),r=r.replace(/^\\n+|\\n+$/g,\"\"),r=r.replace(/^(\\s*)-([^\\n]*?)\\n+/gm,`$1-$2\n\n`),r=r.replace(/\\n(\\n)?\\n*/g,\"$1\"),t&&(r=r.split(/\\n/).map(i=>{let n=i.match(/^\\s*[*-][\\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(`\n`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,\"g\")).map((o,a)=>\" \".repeat(s)+(a===0?\"- \":\"  \")+o).join(`\n`)}).join(`\n\n`)),r=r.replace(/(`+)((?:.|[\\n])*?)\\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\\*\\*)((?:.|[\\n])*?)\\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r}\n`:\"\"}bd.formatMarkdownish=ZCe;bd.richFormat=VCe;bd.textFormat=XCe});var ay=y(Ar=>{\"use strict\";Object.defineProperty(Ar,\"__esModule\",{value:!0});var lt=ey(),sy=ty();function Vi(r){lt.DEBUG&&console.log(r)}var aG={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:lt.HELP_COMMAND_INDEX};function Yv(){return{nodes:[Ti(),Ti(),Ti()]}}function AG(r){let e=Yv(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s<n.nodes.length;++s)qv(s)||e.nodes.push(pG(n.nodes[s],i));i+=n.nodes.length-2}for(let n of t)Qc(e,lt.NODE_INITIAL,n);return e}function ss(r,e){return r.nodes.push(e),r.nodes.length-1}function lG(r){let e=new Set,t=i=>{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(lt.NODE_INITIAL)}function cG(r,{prefix:e=\"\"}={}){if(lt.DEBUG){Vi(`${e}Nodes are:`);for(let t=0;t<r.nodes.length;++t)Vi(`${e}  ${t}: ${JSON.stringify(r.nodes[t])}`)}}function jv(r,e,t=!1){Vi(`Running a vm on ${JSON.stringify(e)}`);let i=[{node:lt.NODE_INITIAL,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];cG(r,{prefix:\"  \"});let n=[lt.START_OF_INPUT,...e];for(let s=0;s<n.length;++s){let o=n[s];Vi(`  Processing ${JSON.stringify(o)}`);let a=[];for(let{node:l,state:c}of i){Vi(`    Current node is ${l}`);let u=r.nodes[l];if(l===lt.NODE_ERRORED){a.push({node:l,state:c});continue}console.assert(u.shortcuts.length===0,\"Shortcuts should have been eliminated by now\");let g=Object.prototype.hasOwnProperty.call(u.statics,o);if(!t||s<n.length-1||g)if(g){let f=u.statics[o];for(let{to:h,reducer:p}of f)a.push({node:h,state:typeof p<\"u\"?Sd(ny,p,c,o):c}),Vi(`      Static transition to ${h} found`)}else Vi(\"      No static transition found\");else{let f=!1;for(let h of Object.keys(u.statics))if(!!h.startsWith(o)){if(o===h)for(let{to:p,reducer:C}of u.statics[h])a.push({node:p,state:typeof C<\"u\"?Sd(ny,C,c,o):c}),Vi(`      Static transition to ${p} found`);else for(let{to:p}of u.statics[h])a.push({node:p,state:{...c,remainder:h.slice(o.length)}}),Vi(`      Static transition to ${p} found (partial match)`);f=!0}f||Vi(\"      No partial static transition found\")}if(o!==lt.END_OF_INPUT)for(let[f,{to:h,reducer:p}]of u.dynamics)Sd(vd,f,c,o)&&(a.push({node:h,state:typeof p<\"u\"?Sd(ny,p,c,o):c}),Vi(`      Dynamic transition to ${h} found (via ${f})`))}if(a.length===0&&o===lt.END_OF_INPUT&&e.length===1)return[{node:lt.NODE_INITIAL,state:aG}];if(a.length===0)throw new sy.UnknownSyntaxError(e,i.filter(({node:l})=>l!==lt.NODE_ERRORED).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===lt.NODE_ERRORED))throw new sy.UnknownSyntaxError(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uG(a)}if(i.length>0){Vi(\"  Results:\");for(let s of i)Vi(`    - ${s.node} -> ${JSON.stringify(s.state)}`)}else Vi(\"  No results\");return i}function $Ce(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,lt.END_OF_INPUT)){for(let{to:t}of r.statics[lt.END_OF_INPUT])if(t===lt.NODE_SUCCESS)return!0}return!1}function eme(r,e,t){let i=t&&e.length>0?[\"\"]:[],n=jv(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let C=r.nodes[p],w=Object.keys(C.statics);for(let B of Object.keys(C.statics)){let v=w[0];for(let{to:D,reducer:L}of C.statics[v])L===\"pushPath\"&&(u||l.push(v),g.push(D))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=$Ce(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==lt.END_OF_INPUT||!f.startsWith(\"-\")&&h.some(({reducer:p})=>p===\"pushPath\"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===lt.NODE_ERRORED)continue;let p=dG(f,c);if(p!==null)for(let C of p)a([...i,C],l)}}return[...s].sort()}function tme(r,e){let t=jv(r,[...e,lt.END_OF_INPUT]);return gG(e,t.map(({state:i})=>i))}function uG(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gG(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new sy.UnknownSyntaxError(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fG(c);if(u.length>1)throw new sy.AmbiguousSyntaxError(r,u.map(g=>g.candidateUsage));return u[0]}function fG(r){let e=[],t=[];for(let i of r)i.selectedIndex===lt.HELP_COMMAND_INDEX?t.push(i):e.push(i);return t.length>0&&e.push({...aG,path:hG(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function hG(r,e,...t){return e===void 0?Array.from(r):hG(r.filter((i,n)=>i===e[n]),...t)}function Ti(){return{dynamics:[],shortcuts:[],statics:{}}}function qv(r){return r===lt.NODE_SUCCESS||r===lt.NODE_ERRORED}function iy(r,e=0){return{to:qv(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function pG(r,e=0){let t=Ti();for(let[i,n]of r.dynamics)t.dynamics.push([i,iy(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(iy(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>iy(s,e));return t}function Ei(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function Qc(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function xo(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function Sd(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function dG(r,e){let t=Array.isArray(r)?vd[r[0]]:vd[r];if(typeof t.suggest>\"u\")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var vd={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!==\"-\"&&e.startsWith(\"-\"),isNotOptionLike:(r,e)=>r.ignoreOptions||e===\"-\"||!e.startsWith(\"-\"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&lt.BATCH_REGEX.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(lt.BINDING_REGEX);return!r.ignoreOptions&&!!n&&lt.OPTION_REGEX.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&lt.HELP_REGEX.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith(\"-\")&&lt.OPTION_REGEX.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith(\"-\")&&!lt.OPTION_REGEX.test(e)};vd.isOption.suggest=(r,e,t=!0)=>t?null:[e];var ny={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(lt.BINDING_REGEX);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Po})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(lt.HELP_REGEX);return typeof i<\"u\"?{...r,options:[{name:\"-c\",value:String(t)},{name:\"-i\",value:i}]}:{...r,options:[{name:\"-c\",value:String(t)}]}},setError:(r,e,t)=>e===lt.END_OF_INPUT?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} (\"${e}\").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Po=Symbol(),oy=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e=\"arg\",required:t=!0}={}){if(!t&&this.arity.extra===Po)throw new Error(\"Optional parameters cannot be declared when using .rest() or .proxy()\");if(!t&&this.arity.trailing.length>0)throw new Error(\"Optional parameters cannot be declared after the required trailing positional arguments\");!t&&this.arity.extra!==Po?this.arity.extra.push(e):this.arity.extra!==Po&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e=\"arg\",required:t=0}={}){if(this.arity.extra===Po)throw new Error(\"Infinite lists cannot be declared multiple times in the same command\");if(this.arity.trailing.length>0)throw new Error(\"Infinite lists cannot be declared after the required trailing positional arguments\");for(let i=0;i<t;++i)this.addPositional({name:e});this.arity.extra=Po}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,description:t,arity:i=0,hidden:n=!1,required:s=!1,allowBinding:o=!0}){if(!o&&i>1)throw new Error(\"The arity cannot be higher than 1 when the option only supports the --arg=value syntax\");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h<a;++h)g.push(` #${h}`);let f=`${o.join(\",\")}${g.join(\"\")}`;!t&&c?n.push({definition:f,description:c,required:u}):i.push(u?`<${f}>`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Po?i.push(\"...\"):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(\" \"),options:n}}compile(){if(typeof this.context>\"u\")throw new Error(\"Assertion failed: No context attached\");let e=Yv(),t=lt.NODE_INITIAL,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=ss(e,Ti()),xo(e,lt.NODE_INITIAL,lt.START_OF_INPUT,t,[\"setCandidateState\",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?\"always\":\"isNotOptionLike\",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let f=ss(e,Ti());Qc(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f<a.length;++f){let h=ss(e,Ti());xo(e,l,a[f],h,\"pushPath\"),l=h}if(this.arity.leading.length>0||!this.arity.proxy){let f=ss(e,Ti());Ei(e,l,\"isHelp\",f,[\"useHelp\",this.cliIndex]),xo(e,f,lt.END_OF_INPUT,lt.NODE_SUCCESS,[\"setSelectedIndex\",lt.HELP_COMMAND_INDEX]),this.registerOptions(e,l)}this.arity.leading.length>0&&xo(e,l,lt.END_OF_INPUT,lt.NODE_ERRORED,[\"setError\",\"Not enough positional arguments\"]);let c=l;for(let f=0;f<this.arity.leading.length;++f){let h=ss(e,Ti());this.arity.proxy||this.registerOptions(e,h),(this.arity.trailing.length>0||f+1!==this.arity.leading.length)&&xo(e,h,lt.END_OF_INPUT,lt.NODE_ERRORED,[\"setError\",\"Not enough positional arguments\"]),Ei(e,c,\"isNotOptionLike\",h,\"pushPositional\"),c=h}let u=c;if(this.arity.extra===Po||this.arity.extra.length>0){let f=ss(e,Ti());if(Qc(e,c,f),this.arity.extra===Po){let h=ss(e,Ti());this.arity.proxy||this.registerOptions(e,h),Ei(e,c,s,h,\"pushExtraNoLimits\"),Ei(e,h,s,h,\"pushExtraNoLimits\"),Qc(e,h,f)}else for(let h=0;h<this.arity.extra.length;++h){let p=ss(e,Ti());this.arity.proxy||this.registerOptions(e,p),Ei(e,u,s,p,\"pushExtra\"),Qc(e,p,f),u=p}u=f}this.arity.trailing.length>0&&xo(e,u,lt.END_OF_INPUT,lt.NODE_ERRORED,[\"setError\",\"Not enough positional arguments\"]);let g=u;for(let f=0;f<this.arity.trailing.length;++f){let h=ss(e,Ti());this.arity.proxy||this.registerOptions(e,h),f+1<this.arity.trailing.length&&xo(e,h,lt.END_OF_INPUT,lt.NODE_ERRORED,[\"setError\",\"Not enough positional arguments\"]),Ei(e,g,\"isNotOptionLike\",h,\"pushPositional\"),g=h}Ei(e,g,s,lt.NODE_ERRORED,[\"setError\",\"Extraneous positional argument\"]),xo(e,g,lt.END_OF_INPUT,lt.NODE_SUCCESS,[\"setSelectedIndex\",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,t){Ei(e,t,[\"isOption\",\"--\"],t,\"inhibateOptions\"),Ei(e,t,[\"isBatchOption\",this.allOptionNames],t,\"pushBatch\"),Ei(e,t,[\"isBoundOption\",this.allOptionNames,this.options],t,\"pushBound\"),Ei(e,t,[\"isUnsupportedOption\",this.allOptionNames],lt.NODE_ERRORED,[\"setError\",\"Unsupported option name\"]),Ei(e,t,[\"isInvalidOption\"],lt.NODE_ERRORED,[\"setError\",\"Invalid option name\"]);for(let i of this.options){let n=i.names.reduce((s,o)=>o.length>s.length?o:s,\"\");if(i.arity===0)for(let s of i.names)Ei(e,t,[\"isOption\",s,i.hidden||s!==n],t,\"pushTrue\"),s.startsWith(\"--\")&&!s.startsWith(\"--no-\")&&Ei(e,t,[\"isNegatedOption\",s],t,[\"pushFalse\",s]);else{let s=ss(e,Ti());for(let o of i.names)Ei(e,t,[\"isOption\",o,i.hidden||o!==n],s,\"pushUndefined\");for(let o=0;o<i.arity;++o){let a=ss(e,Ti());xo(e,s,lt.END_OF_INPUT,lt.NODE_ERRORED,\"setOptionArityError\"),Ei(e,s,\"isOptionLike\",lt.NODE_ERRORED,\"setOptionArityError\");let l=i.arity===1?\"setStringValue\":\"pushStringValue\";Ei(e,s,\"isNotOptionLike\",a,l),s=a}Qc(e,s,t)}}}},xd=class{constructor({binaryName:e=\"...\"}={}){this.builders=[],this.opts={binaryName:e}}static build(e,t={}){return new xd(t).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(let t of e)t(this.command());return this}command(){let e=new oy(this.builders.length,this.opts);return this.builders.push(e),e}compile(){let e=[],t=[];for(let n of this.builders){let{machine:s,context:o}=n.compile();e.push(s),t.push(o)}let i=AG(e);return lG(i),{machine:i,contexts:t,process:n=>tme(i,n),suggest:(n,s)=>eme(i,n,s)}}};Ar.CliBuilder=xd;Ar.CommandBuilder=oy;Ar.NoLimits=Po;Ar.aggregateHelpStates=fG;Ar.cloneNode=pG;Ar.cloneTransition=iy;Ar.debug=Vi;Ar.debugMachine=cG;Ar.execute=Sd;Ar.injectNode=ss;Ar.isTerminalNode=qv;Ar.makeAnyOfMachine=AG;Ar.makeNode=Ti;Ar.makeStateMachine=Yv;Ar.reducers=ny;Ar.registerDynamic=Ei;Ar.registerShortcut=Qc;Ar.registerStatic=xo;Ar.runMachineInternal=jv;Ar.selectBestState=gG;Ar.simplifyMachine=lG;Ar.suggest=dG;Ar.tests=vd;Ar.trimSmallerBranches=uG});var CG=y(Jv=>{\"use strict\";Object.defineProperty(Jv,\"__esModule\",{value:!0});var rme=Bc(),Pd=class extends rme.Command{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new Pd(t);i.path=e.path;for(let n of e.options)switch(n.name){case\"-c\":i.commands.push(Number(n.value));break;case\"-i\":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<\"u\"&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),e.length===0)this.context.stdout.write(this.cli.usage());else if(e.length===1)this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write(`Multiple commands match your selection:\n`),this.context.stdout.write(`\n`);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(`\n`),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands.\n`)}}};Jv.HelpCommand=Pd});var BG=y(Wv=>{\"use strict\";Object.defineProperty(Wv,\"__esModule\",{value:!0});var ime=ey(),mG=Bc(),nme=J(\"tty\"),sme=ay(),hn=Gv(),ome=CG();function ame(r){return r&&typeof r==\"object\"&&\"default\"in r?r:{default:r}}var EG=ame(nme),IG=Symbol(\"clipanion/errorCommand\");function Ame(){return process.env.FORCE_COLOR===\"0\"?1:process.env.FORCE_COLOR===\"1\"||typeof process.stdout<\"u\"&&process.stdout.isTTY?8:1}var TA=class{constructor({binaryLabel:e,binaryName:t=\"...\",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new sme.CliBuilder({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new TA(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c==\"object\"&&c!==null&&c[mG.Command.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<\"u\")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case ime.HELP_COMMAND_INDEX:return ome.HelpCommand.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>\"u\")throw new Error(\"Assertion failed: Expected the command class to have been registered.\");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[IG]=a,l}}break}}async run(e,t){var i;let n,s={...TA.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?lme(s):wG,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>\"u\")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<\"u\"?hn.formatMarkdownish(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<\"u\"?hn.formatMarkdownish(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<\"u\"?hn.formatMarkdownish(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<\"u\"?i.usage.examples.map(([f,h])=>[hn.formatMarkdownish(f,{format:this.format(e),paragraphs:!1}),h.replace(/\\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n=\"$ \"}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<\"u\";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof mG.Command?e.constructor:e,a=\"\";if(o)if(i){let{description:l=\"\",details:c=\"\",examples:u=[]}=o.usage||{};l!==\"\"&&(a+=hn.formatMarkdownish(l,{format:this.format(t),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=`\n`),(c!==\"\"||u.length>0)&&(a+=`${this.format(t).header(\"Usage\")}\n`,a+=`\n`);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g}\n`,f.length>0){a+=`\n`,a+=`${hn.richFormat.header(\"Options\")}\n`;let h=f.reduce((p,C)=>Math.max(p,C.definition.length),0);a+=`\n`;for(let{definition:p,description:C}of f)a+=`  ${this.format(t).bold(p.padEnd(h))}    ${hn.formatMarkdownish(C,{format:this.format(t),paragraphs:!1})}`}if(c!==\"\"&&(a+=`\n`,a+=`${this.format(t).header(\"Details\")}\n`,a+=`\n`,a+=hn.formatMarkdownish(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=`\n`,a+=`${this.format(t).header(\"Examples\")}\n`;for(let[h,p]of u)a+=`\n`,a+=hn.formatMarkdownish(h,{format:this.format(t),paragraphs:!1}),a+=`${p.replace(/^/m,`  ${this.format(t).bold(n)}`).replace(/\\$0/g,this.binaryName)}\n`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l}\n`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage>\"u\")continue;let p=typeof f.usage.category<\"u\"?hn.formatMarkdownish(f.usage.category,{format:this.format(t),paragraphs:!1}):null,C=l.get(p);typeof C>\"u\"&&l.set(p,C=[]);let{usage:w}=this.getUsageByIndex(h);C.push({commandClass:f,usage:w})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,\"en\",{usage:\"sort\",caseFirst:\"upper\"})),u=typeof this.binaryLabel<\"u\",g=typeof this.binaryVersion<\"u\";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)}\n\n`:u?a+=`${this.format(t).header(`${this.binaryLabel}`)}\n`:a+=`${this.format(t).header(`${this.binaryVersion}`)}\n`,a+=`  ${this.format(t).bold(n)}${this.binaryName} <command>\n`):a+=`${this.format(t).bold(n)}${this.binaryName} <command>\n`;for(let f of c){let h=l.get(f).slice().sort((C,w)=>C.usage.localeCompare(w.usage,\"en\",{usage:\"sort\",caseFirst:\"upper\"})),p=f!==null?f.trim():\"General commands\";a+=`\n`,a+=`${this.format(t).header(`${p}`)}\n`;for(let{commandClass:C,usage:w}of h){let B=C.usage.description||\"undocumented\";a+=`\n`,a+=`  ${this.format(t).bold(w)}\n`,a+=`    ${hn.formatMarkdownish(B,{format:this.format(t),paragraphs:!1})}`}}a+=`\n`,a+=hn.formatMarkdownish(\"You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.\",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[IG])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o=\"\",a=e.name.replace(/([a-z])([A-Z])/g,\"$1 $2\");a===\"Error\"&&(a=\"Internal Error\"),o+=`${this.format(n).error(a)}: ${e.message}\n`;let l=e.clipanion;return typeof l<\"u\"?l.type===\"usage\"&&(o+=`\n`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\\n/,\"\")}\n`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:TA.defaultContext.colorDepth>1)?hn.richFormat:hn.textFormat}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>\"u\")throw new Error(\"Assertion failed: Unregistered command\");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};TA.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:\"getColorDepth\"in EG.default.WriteStream.prototype?EG.default.WriteStream.prototype.getColorDepth():Ame()};var yG;function lme(r){let e=yG;if(typeof e>\"u\"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return wG;let{AsyncLocalStorage:t}=J(\"async_hooks\");e=yG=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>\"u\"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>\"u\"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function wG(r){return r()}Wv.Cli=TA});var QG=y(zv=>{\"use strict\";Object.defineProperty(zv,\"__esModule\",{value:!0});var cme=Bc(),Ay=class extends cme.Command{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}\n`)}};Ay.paths=[[\"--clipanion=definitions\"]];zv.DefinitionsCommand=Ay});var bG=y(Vv=>{\"use strict\";Object.defineProperty(Vv,\"__esModule\",{value:!0});var ume=Bc(),ly=class extends ume.Command{async execute(){this.context.stdout.write(this.cli.usage())}};ly.paths=[[\"-h\"],[\"--help\"]];Vv.HelpCommand=ly});var SG=y(Xv=>{\"use strict\";Object.defineProperty(Xv,\"__esModule\",{value:!0});var gme=Bc(),cy=class extends gme.Command{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:\"<unknown>\"}\n`)}};cy.paths=[[\"-v\"],[\"--version\"]];Xv.VersionCommand=cy});var vG=y(Dd=>{\"use strict\";Object.defineProperty(Dd,\"__esModule\",{value:!0});var fme=QG(),hme=bG(),pme=SG();Dd.DefinitionsCommand=fme.DefinitionsCommand;Dd.HelpCommand=hme.HelpCommand;Dd.VersionCommand=pme.VersionCommand});var PG=y(_v=>{\"use strict\";Object.defineProperty(_v,\"__esModule\",{value:!0});var xG=Sa();function dme(r,e,t){let[i,n]=xG.rerouteArguments(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(\",\"),a=new Set(o);return xG.makeCommandOption({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<\"u\"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}_v.Array=dme});var kG=y(Zv=>{\"use strict\";Object.defineProperty(Zv,\"__esModule\",{value:!0});var DG=Sa();function Cme(r,e,t){let[i,n]=DG.rerouteArguments(e,t!=null?t:{}),s=r.split(\",\"),o=new Set(s);return DG.makeCommandOption({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}Zv.Boolean=Cme});var FG=y($v=>{\"use strict\";Object.defineProperty($v,\"__esModule\",{value:!0});var RG=Sa();function mme(r,e,t){let[i,n]=RG.rerouteArguments(e,t!=null?t:{}),s=r.split(\",\"),o=new Set(s);return RG.makeCommandOption({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}$v.Counter=mme});var NG=y(ex=>{\"use strict\";Object.defineProperty(ex,\"__esModule\",{value:!0});var Eme=Sa();function Ime(r={}){return Eme.makeCommandOption({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}ex.Proxy=Ime});var LG=y(tx=>{\"use strict\";Object.defineProperty(tx,\"__esModule\",{value:!0});var yme=Sa(),wme=ay();function Bme(r={}){return yme.makeCommandOption({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===wme.NoLimits||a.extra===!1&&o<e.arity.leading.length},s=0;for(;s<i.positionals.length&&n(s);)s+=1;return i.positionals.splice(0,s).map(({value:o})=>o)}})}tx.Rest=Bme});var TG=y(rx=>{\"use strict\";Object.defineProperty(rx,\"__esModule\",{value:!0});var kd=Sa(),Qme=ay();function bme(r,e,t){let[i,n]=kd.rerouteArguments(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(\",\"),a=new Set(o);return kd.makeCommandOption({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f==\"string\"?kd.applyValidator(g!=null?g:c,f,n.validator):f}})}function Sme(r={}){let{required:e=!0}=r;return kd.makeCommandOption({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o<n.positionals.length;++o){if(n.positionals[o].extra===Qme.NoLimits||e&&n.positionals[o].extra===!0||!e&&n.positionals[o].extra===!1)continue;let[a]=n.positionals.splice(o,1);return kd.applyValidator((s=r.name)!==null&&s!==void 0?s:i,a.value,r.validator)}}})}function vme(r,...e){return typeof r==\"string\"?bme(r,...e):Sme(r)}rx.String=vme});var OG=y(pn=>{\"use strict\";Object.defineProperty(pn,\"__esModule\",{value:!0});var Af=Sa(),xme=PG(),Pme=kG(),Dme=FG(),kme=NG(),Rme=LG(),Fme=TG();pn.applyValidator=Af.applyValidator;pn.cleanValidationError=Af.cleanValidationError;pn.formatError=Af.formatError;pn.isOptionSymbol=Af.isOptionSymbol;pn.makeCommandOption=Af.makeCommandOption;pn.rerouteArguments=Af.rerouteArguments;pn.Array=xme.Array;pn.Boolean=Pme.Boolean;pn.Counter=Dme.Counter;pn.Proxy=kme.Proxy;pn.Rest=Rme.Rest;pn.String=Fme.String});var Xe=y(OA=>{\"use strict\";Object.defineProperty(OA,\"__esModule\",{value:!0});var Nme=ty(),Lme=Bc(),Tme=Gv(),Ome=BG(),Mme=vG(),Kme=OG();OA.UsageError=Nme.UsageError;OA.Command=Lme.Command;OA.formatMarkdownish=Tme.formatMarkdownish;OA.Cli=Ome.Cli;OA.Builtins=Mme;OA.Option=Kme});var KG=y((M$e,MG)=>{\"use strict\";MG.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var lf=y((K$e,ix)=>{\"use strict\";var Ume=KG(),UG=r=>{if(r<1)throw new TypeError(\"Expected `concurrency` to be a number from 1 and up\");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=Ume(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{t<r?n(a,l,...c):e.push(n.bind(null,a,l,...c))},o=(a,...l)=>new Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};ix.exports=UG;ix.exports.default=UG});var Rd=y((H$e,HG)=>{var Hme=\"2.0.0\",Gme=Number.MAX_SAFE_INTEGER||9007199254740991,Yme=16;HG.exports={SEMVER_SPEC_VERSION:Hme,MAX_LENGTH:256,MAX_SAFE_INTEGER:Gme,MAX_SAFE_COMPONENT_LENGTH:Yme}});var Fd=y((G$e,GG)=>{var jme=typeof process==\"object\"&&process.env&&process.env.NODE_DEBUG&&/\\bsemver\\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error(\"SEMVER\",...r):()=>{};GG.exports=jme});var bc=y((KA,YG)=>{var{MAX_SAFE_COMPONENT_LENGTH:nx}=Rd(),qme=Fd();KA=YG.exports={};var Jme=KA.re=[],_e=KA.src=[],Ze=KA.t={},Wme=0,St=(r,e,t)=>{let i=Wme++;qme(i,e),Ze[r]=i,_e[i]=e,Jme[i]=new RegExp(e,t?\"g\":void 0)};St(\"NUMERICIDENTIFIER\",\"0|[1-9]\\\\d*\");St(\"NUMERICIDENTIFIERLOOSE\",\"[0-9]+\");St(\"NONNUMERICIDENTIFIER\",\"\\\\d*[a-zA-Z-][a-zA-Z0-9-]*\");St(\"MAINVERSION\",`(${_e[Ze.NUMERICIDENTIFIER]})\\\\.(${_e[Ze.NUMERICIDENTIFIER]})\\\\.(${_e[Ze.NUMERICIDENTIFIER]})`);St(\"MAINVERSIONLOOSE\",`(${_e[Ze.NUMERICIDENTIFIERLOOSE]})\\\\.(${_e[Ze.NUMERICIDENTIFIERLOOSE]})\\\\.(${_e[Ze.NUMERICIDENTIFIERLOOSE]})`);St(\"PRERELEASEIDENTIFIER\",`(?:${_e[Ze.NUMERICIDENTIFIER]}|${_e[Ze.NONNUMERICIDENTIFIER]})`);St(\"PRERELEASEIDENTIFIERLOOSE\",`(?:${_e[Ze.NUMERICIDENTIFIERLOOSE]}|${_e[Ze.NONNUMERICIDENTIFIER]})`);St(\"PRERELEASE\",`(?:-(${_e[Ze.PRERELEASEIDENTIFIER]}(?:\\\\.${_e[Ze.PRERELEASEIDENTIFIER]})*))`);St(\"PRERELEASELOOSE\",`(?:-?(${_e[Ze.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${_e[Ze.PRERELEASEIDENTIFIERLOOSE]})*))`);St(\"BUILDIDENTIFIER\",\"[0-9A-Za-z-]+\");St(\"BUILD\",`(?:\\\\+(${_e[Ze.BUILDIDENTIFIER]}(?:\\\\.${_e[Ze.BUILDIDENTIFIER]})*))`);St(\"FULLPLAIN\",`v?${_e[Ze.MAINVERSION]}${_e[Ze.PRERELEASE]}?${_e[Ze.BUILD]}?`);St(\"FULL\",`^${_e[Ze.FULLPLAIN]}$`);St(\"LOOSEPLAIN\",`[v=\\\\s]*${_e[Ze.MAINVERSIONLOOSE]}${_e[Ze.PRERELEASELOOSE]}?${_e[Ze.BUILD]}?`);St(\"LOOSE\",`^${_e[Ze.LOOSEPLAIN]}$`);St(\"GTLT\",\"((?:<|>)?=?)\");St(\"XRANGEIDENTIFIERLOOSE\",`${_e[Ze.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);St(\"XRANGEIDENTIFIER\",`${_e[Ze.NUMERICIDENTIFIER]}|x|X|\\\\*`);St(\"XRANGEPLAIN\",`[v=\\\\s]*(${_e[Ze.XRANGEIDENTIFIER]})(?:\\\\.(${_e[Ze.XRANGEIDENTIFIER]})(?:\\\\.(${_e[Ze.XRANGEIDENTIFIER]})(?:${_e[Ze.PRERELEASE]})?${_e[Ze.BUILD]}?)?)?`);St(\"XRANGEPLAINLOOSE\",`[v=\\\\s]*(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:${_e[Ze.PRERELEASELOOSE]})?${_e[Ze.BUILD]}?)?)?`);St(\"XRANGE\",`^${_e[Ze.GTLT]}\\\\s*${_e[Ze.XRANGEPLAIN]}$`);St(\"XRANGELOOSE\",`^${_e[Ze.GTLT]}\\\\s*${_e[Ze.XRANGEPLAINLOOSE]}$`);St(\"COERCE\",`(^|[^\\\\d])(\\\\d{1,${nx}})(?:\\\\.(\\\\d{1,${nx}}))?(?:\\\\.(\\\\d{1,${nx}}))?(?:$|[^\\\\d])`);St(\"COERCERTL\",_e[Ze.COERCE],!0);St(\"LONETILDE\",\"(?:~>?)\");St(\"TILDETRIM\",`(\\\\s*)${_e[Ze.LONETILDE]}\\\\s+`,!0);KA.tildeTrimReplace=\"$1~\";St(\"TILDE\",`^${_e[Ze.LONETILDE]}${_e[Ze.XRANGEPLAIN]}$`);St(\"TILDELOOSE\",`^${_e[Ze.LONETILDE]}${_e[Ze.XRANGEPLAINLOOSE]}$`);St(\"LONECARET\",\"(?:\\\\^)\");St(\"CARETTRIM\",`(\\\\s*)${_e[Ze.LONECARET]}\\\\s+`,!0);KA.caretTrimReplace=\"$1^\";St(\"CARET\",`^${_e[Ze.LONECARET]}${_e[Ze.XRANGEPLAIN]}$`);St(\"CARETLOOSE\",`^${_e[Ze.LONECARET]}${_e[Ze.XRANGEPLAINLOOSE]}$`);St(\"COMPARATORLOOSE\",`^${_e[Ze.GTLT]}\\\\s*(${_e[Ze.LOOSEPLAIN]})$|^$`);St(\"COMPARATOR\",`^${_e[Ze.GTLT]}\\\\s*(${_e[Ze.FULLPLAIN]})$|^$`);St(\"COMPARATORTRIM\",`(\\\\s*)${_e[Ze.GTLT]}\\\\s*(${_e[Ze.LOOSEPLAIN]}|${_e[Ze.XRANGEPLAIN]})`,!0);KA.comparatorTrimReplace=\"$1$2$3\";St(\"HYPHENRANGE\",`^\\\\s*(${_e[Ze.XRANGEPLAIN]})\\\\s+-\\\\s+(${_e[Ze.XRANGEPLAIN]})\\\\s*$`);St(\"HYPHENRANGELOOSE\",`^\\\\s*(${_e[Ze.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${_e[Ze.XRANGEPLAINLOOSE]})\\\\s*$`);St(\"STAR\",\"(<|>)?=?\\\\s*\\\\*\");St(\"GTE0\",\"^\\\\s*>=\\\\s*0.0.0\\\\s*$\");St(\"GTE0PRE\",\"^\\\\s*>=\\\\s*0.0.0-0\\\\s*$\")});var Nd=y((Y$e,jG)=>{var zme=[\"includePrerelease\",\"loose\",\"rtl\"],Vme=r=>r?typeof r!=\"object\"?{loose:!0}:zme.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};jG.exports=Vme});var gy=y((j$e,WG)=>{var qG=/^[0-9]+$/,JG=(r,e)=>{let t=qG.test(r),i=qG.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:r<e?-1:1},Xme=(r,e)=>JG(e,r);WG.exports={compareIdentifiers:JG,rcompareIdentifiers:Xme}});var Oi=y((q$e,_G)=>{var fy=Fd(),{MAX_LENGTH:zG,MAX_SAFE_INTEGER:hy}=Rd(),{re:VG,t:XG}=bc(),_me=Nd(),{compareIdentifiers:Ld}=gy(),Un=class{constructor(e,t){if(t=_me(t),e instanceof Un){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!=\"string\")throw new TypeError(`Invalid Version: ${e}`);if(e.length>zG)throw new TypeError(`version is longer than ${zG} characters`);fy(\"SemVer\",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?VG[XG.LOOSE]:VG[XG.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>hy||this.major<0)throw new TypeError(\"Invalid major version\");if(this.minor>hy||this.minor<0)throw new TypeError(\"Invalid minor version\");if(this.patch>hy||this.patch<0)throw new TypeError(\"Invalid patch version\");i[4]?this.prerelease=i[4].split(\".\").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<hy)return s}return n}):this.prerelease=[],this.build=i[5]?i[5].split(\".\"):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(\".\")}`),this.version}toString(){return this.version}compare(e){if(fy(\"SemVer.compare\",this.version,this.options,e),!(e instanceof Un)){if(typeof e==\"string\"&&e===this.version)return 0;e=new Un(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof Un||(e=new Un(e,this.options)),Ld(this.major,e.major)||Ld(this.minor,e.minor)||Ld(this.patch,e.patch)}comparePre(e){if(e instanceof Un||(e=new Un(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let i=this.prerelease[t],n=e.prerelease[t];if(fy(\"prerelease compare\",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return Ld(i,n)}while(++t)}compareBuild(e){e instanceof Un||(e=new Un(e,this.options));let t=0;do{let i=this.build[t],n=e.build[t];if(fy(\"prerelease compare\",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return Ld(i,n)}while(++t)}inc(e,t){switch(e){case\"premajor\":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc(\"pre\",t);break;case\"preminor\":this.prerelease.length=0,this.patch=0,this.minor++,this.inc(\"pre\",t);break;case\"prepatch\":this.prerelease.length=0,this.inc(\"patch\",t),this.inc(\"pre\",t);break;case\"prerelease\":this.prerelease.length===0&&this.inc(\"patch\",t),this.inc(\"pre\",t);break;case\"major\":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case\"minor\":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case\"patch\":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case\"pre\":if(this.prerelease.length===0)this.prerelease=[0];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]==\"number\"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};_G.exports=Un});var Sc=y((J$e,tY)=>{var{MAX_LENGTH:Zme}=Rd(),{re:ZG,t:$G}=bc(),eY=Oi(),$me=Nd(),eEe=(r,e)=>{if(e=$me(e),r instanceof eY)return r;if(typeof r!=\"string\"||r.length>Zme||!(e.loose?ZG[$G.LOOSE]:ZG[$G.FULL]).test(r))return null;try{return new eY(r,e)}catch{return null}};tY.exports=eEe});var iY=y((W$e,rY)=>{var tEe=Sc(),rEe=(r,e)=>{let t=tEe(r,e);return t?t.version:null};rY.exports=rEe});var sY=y((z$e,nY)=>{var iEe=Sc(),nEe=(r,e)=>{let t=iEe(r.trim().replace(/^[=v]+/,\"\"),e);return t?t.version:null};nY.exports=nEe});var aY=y((V$e,oY)=>{var sEe=Oi(),oEe=(r,e,t,i)=>{typeof t==\"string\"&&(i=t,t=void 0);try{return new sEe(r,t).inc(e,i).version}catch{return null}};oY.exports=oEe});var os=y((X$e,lY)=>{var AY=Oi(),aEe=(r,e,t)=>new AY(r,t).compare(new AY(e,t));lY.exports=aEe});var py=y((_$e,cY)=>{var AEe=os(),lEe=(r,e,t)=>AEe(r,e,t)===0;cY.exports=lEe});var fY=y((Z$e,gY)=>{var uY=Sc(),cEe=py(),uEe=(r,e)=>{if(cEe(r,e))return null;{let t=uY(r),i=uY(e),n=t.prerelease.length||i.prerelease.length,s=n?\"pre\":\"\",o=n?\"prerelease\":\"\";for(let a in t)if((a===\"major\"||a===\"minor\"||a===\"patch\")&&t[a]!==i[a])return s+a;return o}};gY.exports=uEe});var pY=y(($$e,hY)=>{var gEe=Oi(),fEe=(r,e)=>new gEe(r,e).major;hY.exports=fEe});var CY=y((eet,dY)=>{var hEe=Oi(),pEe=(r,e)=>new hEe(r,e).minor;dY.exports=pEe});var EY=y((tet,mY)=>{var dEe=Oi(),CEe=(r,e)=>new dEe(r,e).patch;mY.exports=CEe});var yY=y((ret,IY)=>{var mEe=Sc(),EEe=(r,e)=>{let t=mEe(r,e);return t&&t.prerelease.length?t.prerelease:null};IY.exports=EEe});var BY=y((iet,wY)=>{var IEe=os(),yEe=(r,e,t)=>IEe(e,r,t);wY.exports=yEe});var bY=y((net,QY)=>{var wEe=os(),BEe=(r,e)=>wEe(r,e,!0);QY.exports=BEe});var dy=y((set,vY)=>{var SY=Oi(),QEe=(r,e,t)=>{let i=new SY(r,t),n=new SY(e,t);return i.compare(n)||i.compareBuild(n)};vY.exports=QEe});var PY=y((oet,xY)=>{var bEe=dy(),SEe=(r,e)=>r.sort((t,i)=>bEe(t,i,e));xY.exports=SEe});var kY=y((aet,DY)=>{var vEe=dy(),xEe=(r,e)=>r.sort((t,i)=>vEe(i,t,e));DY.exports=xEe});var Td=y((Aet,RY)=>{var PEe=os(),DEe=(r,e,t)=>PEe(r,e,t)>0;RY.exports=DEe});var Cy=y((cet,FY)=>{var kEe=os(),REe=(r,e,t)=>kEe(r,e,t)<0;FY.exports=REe});var sx=y((uet,NY)=>{var FEe=os(),NEe=(r,e,t)=>FEe(r,e,t)!==0;NY.exports=NEe});var my=y((get,LY)=>{var LEe=os(),TEe=(r,e,t)=>LEe(r,e,t)>=0;LY.exports=TEe});var Ey=y((fet,TY)=>{var OEe=os(),MEe=(r,e,t)=>OEe(r,e,t)<=0;TY.exports=MEe});var ox=y((het,OY)=>{var KEe=py(),UEe=sx(),HEe=Td(),GEe=my(),YEe=Cy(),jEe=Ey(),qEe=(r,e,t,i)=>{switch(e){case\"===\":return typeof r==\"object\"&&(r=r.version),typeof t==\"object\"&&(t=t.version),r===t;case\"!==\":return typeof r==\"object\"&&(r=r.version),typeof t==\"object\"&&(t=t.version),r!==t;case\"\":case\"=\":case\"==\":return KEe(r,t,i);case\"!=\":return UEe(r,t,i);case\">\":return HEe(r,t,i);case\">=\":return GEe(r,t,i);case\"<\":return YEe(r,t,i);case\"<=\":return jEe(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};OY.exports=qEe});var KY=y((pet,MY)=>{var JEe=Oi(),WEe=Sc(),{re:Iy,t:yy}=bc(),zEe=(r,e)=>{if(r instanceof JEe)return r;if(typeof r==\"number\"&&(r=String(r)),typeof r!=\"string\")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(Iy[yy.COERCE]);else{let i;for(;(i=Iy[yy.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),Iy[yy.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;Iy[yy.COERCERTL].lastIndex=-1}return t===null?null:WEe(`${t[2]}.${t[3]||\"0\"}.${t[4]||\"0\"}`,e)};MY.exports=zEe});var HY=y((det,UY)=>{\"use strict\";UY.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var Od=y((Cet,GY)=>{\"use strict\";GY.exports=Ht;Ht.Node=vc;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach==\"function\")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t<i;t++)e.push(arguments[t]);return e}Ht.prototype.removeNode=function(r){if(r.list!==this)throw new Error(\"removing node which does not belong to this list\");var e=r.next,t=r.prev;return e&&(e.prev=t),t&&(t.next=e),r===this.head&&(this.head=e),r===this.tail&&(this.tail=t),r.list.length--,r.next=null,r.prev=null,r.list=null,e};Ht.prototype.unshiftNode=function(r){if(r!==this.head){r.list&&r.list.removeNode(r);var e=this.head;r.list=this,r.next=e,e&&(e.prev=r),this.head=r,this.tail||(this.tail=r),this.length++}};Ht.prototype.pushNode=function(r){if(r!==this.tail){r.list&&r.list.removeNode(r);var e=this.tail;r.list=this,r.prev=e,e&&(e.next=r),this.tail=r,this.head||(this.head=r),this.length++}};Ht.prototype.push=function(){for(var r=0,e=arguments.length;r<e;r++)XEe(this,arguments[r]);return this.length};Ht.prototype.unshift=function(){for(var r=0,e=arguments.length;r<e;r++)_Ee(this,arguments[r]);return this.length};Ht.prototype.pop=function(){if(!!this.tail){var r=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,r}};Ht.prototype.shift=function(){if(!!this.head){var r=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,r}};Ht.prototype.forEach=function(r,e){e=e||this;for(var t=this.head,i=0;t!==null;i++)r.call(e,t.value,i,this),t=t.next};Ht.prototype.forEachReverse=function(r,e){e=e||this;for(var t=this.tail,i=this.length-1;t!==null;i--)r.call(e,t.value,i,this),t=t.prev};Ht.prototype.get=function(r){for(var e=0,t=this.head;t!==null&&e<r;e++)t=t.next;if(e===r&&t!==null)return t.value};Ht.prototype.getReverse=function(r){for(var e=0,t=this.tail;t!==null&&e<r;e++)t=t.prev;if(e===r&&t!==null)return t.value};Ht.prototype.map=function(r,e){e=e||this;for(var t=new Ht,i=this.head;i!==null;)t.push(r.call(e,i.value,this)),i=i.next;return t};Ht.prototype.mapReverse=function(r,e){e=e||this;for(var t=new Ht,i=this.tail;i!==null;)t.push(r.call(e,i.value,this)),i=i.prev;return t};Ht.prototype.reduce=function(r,e){var t,i=this.head;if(arguments.length>1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError(\"Reduce of empty list with no initial value\");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError(\"Reduce of empty list with no initial value\");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(;n!==null&&i<e;i++,n=n.next)t.push(n.value);return t};Ht.prototype.sliceReverse=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(var s=[],i=0;n&&i<e;i++)s.push(n.value),n=this.removeNode(n);n===null&&(n=this.tail),n!==this.head&&n!==this.tail&&(n=n.prev);for(var i=0;i<t.length;i++)n=VEe(this,n,t[i]);return s};Ht.prototype.reverse=function(){for(var r=this.head,e=this.tail,t=r;t!==null;t=t.prev){var i=t.prev;t.prev=t.next,t.next=i}return this.head=e,this.tail=r,this};function VEe(r,e,t){var i=e===r.head?new vc(t,null,e,r):new vc(t,e,e.next,r);return i.next===null&&(r.tail=i),i.prev===null&&(r.head=i),r.length++,i}function XEe(r,e){r.tail=new vc(e,r.tail,null,r),r.head||(r.head=r.tail),r.length++}function _Ee(r,e){r.head=new vc(e,null,r.head,r),r.tail||(r.tail=r.head),r.length++}function vc(r,e,t,i){if(!(this instanceof vc))return new vc(r,e,t,i);this.list=i,this.value=r,e?(e.next=this,this.prev=e):this.prev=null,t?(t.prev=this,this.next=t):this.next=null}try{HY()(Ht)}catch{}});var WY=y((met,JY)=>{\"use strict\";var ZEe=Od(),xc=Symbol(\"max\"),xa=Symbol(\"length\"),cf=Symbol(\"lengthCalculator\"),Kd=Symbol(\"allowStale\"),Pc=Symbol(\"maxAge\"),va=Symbol(\"dispose\"),YY=Symbol(\"noDisposeOnSet\"),Ii=Symbol(\"lruList\"),zs=Symbol(\"cache\"),qY=Symbol(\"updateAgeOnGet\"),ax=()=>1,lx=class{constructor(e){if(typeof e==\"number\"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!=\"number\"||e.max<0))throw new TypeError(\"max must be a non-negative number\");let t=this[xc]=e.max||1/0,i=e.length||ax;if(this[cf]=typeof i!=\"function\"?ax:i,this[Kd]=e.stale||!1,e.maxAge&&typeof e.maxAge!=\"number\")throw new TypeError(\"maxAge must be a number\");this[Pc]=e.maxAge||0,this[va]=e.dispose,this[YY]=e.noDisposeOnSet||!1,this[qY]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!=\"number\"||e<0)throw new TypeError(\"max must be a non-negative number\");this[xc]=e||1/0,Md(this)}get max(){return this[xc]}set allowStale(e){this[Kd]=!!e}get allowStale(){return this[Kd]}set maxAge(e){if(typeof e!=\"number\")throw new TypeError(\"maxAge must be a non-negative number\");this[Pc]=e,Md(this)}get maxAge(){return this[Pc]}set lengthCalculator(e){typeof e!=\"function\"&&(e=ax),e!==this[cf]&&(this[cf]=e,this[xa]=0,this[Ii].forEach(t=>{t.length=this[cf](t.value,t.key),this[xa]+=t.length})),Md(this)}get lengthCalculator(){return this[cf]}get length(){return this[xa]}get itemCount(){return this[Ii].length}rforEach(e,t){t=t||this;for(let i=this[Ii].tail;i!==null;){let n=i.prev;jY(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[Ii].head;i!==null;){let n=i.next;jY(this,e,i,t),i=n}}keys(){return this[Ii].toArray().map(e=>e.key)}values(){return this[Ii].toArray().map(e=>e.value)}reset(){this[va]&&this[Ii]&&this[Ii].length&&this[Ii].forEach(e=>this[va](e.key,e.value)),this[zs]=new Map,this[Ii]=new ZEe,this[xa]=0}dump(){return this[Ii].map(e=>wy(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Ii]}set(e,t,i){if(i=i||this[Pc],i&&typeof i!=\"number\")throw new TypeError(\"maxAge must be a number\");let n=i?Date.now():0,s=this[cf](t,e);if(this[zs].has(e)){if(s>this[xc])return uf(this,this[zs].get(e)),!1;let l=this[zs].get(e).value;return this[va]&&(this[YY]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[xa]+=s-l.length,l.length=s,this.get(e),Md(this),!0}let o=new cx(e,t,s,n,i);return o.length>this[xc]?(this[va]&&this[va](e,t),!1):(this[xa]+=o.length,this[Ii].unshift(o),this[zs].set(e,this[Ii].head),Md(this),!0)}has(e){if(!this[zs].has(e))return!1;let t=this[zs].get(e).value;return!wy(this,t)}get(e){return Ax(this,e,!0)}peek(e){return Ax(this,e,!1)}pop(){let e=this[Ii].tail;return e?(uf(this,e),e.value):null}del(e){uf(this,this[zs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[zs].forEach((e,t)=>Ax(this,t,!1))}},Ax=(r,e,t)=>{let i=r[zs].get(e);if(i){let n=i.value;if(wy(r,n)){if(uf(r,i),!r[Kd])return}else t&&(r[qY]&&(i.value.now=Date.now()),r[Ii].unshiftNode(i));return n.value}},wy=(r,e)=>{if(!e||!e.maxAge&&!r[Pc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Pc]&&t>r[Pc]},Md=r=>{if(r[xa]>r[xc])for(let e=r[Ii].tail;r[xa]>r[xc]&&e!==null;){let t=e.prev;uf(r,e),e=t}},uf=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[xa]-=t.length,r[zs].delete(t.key),r[Ii].removeNode(e)}},cx=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},jY=(r,e,t,i)=>{let n=t.value;wy(r,n)&&(uf(r,t),r[Kd]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};JY.exports=lx});var as=y((Eet,_Y)=>{var Dc=class{constructor(e,t){if(t=eIe(t),e instanceof Dc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new Dc(e.raw,t);if(e instanceof ux)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\\s*\\|\\|\\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!VY(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&sIe(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(\" \").trim()).join(\"||\").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(\",\")}:${e}`,n=zY.get(i);if(n)return n;let s=this.options.loose,o=s?Mi[bi.HYPHENRANGELOOSE]:Mi[bi.HYPHENRANGE];e=e.replace(o,pIe(this.options.includePrerelease)),jr(\"hyphen replace\",e),e=e.replace(Mi[bi.COMPARATORTRIM],rIe),jr(\"comparator trim\",e,Mi[bi.COMPARATORTRIM]),e=e.replace(Mi[bi.TILDETRIM],iIe),e=e.replace(Mi[bi.CARETTRIM],nIe),e=e.split(/\\s+/).join(\" \");let a=s?Mi[bi.COMPARATORLOOSE]:Mi[bi.COMPARATOR],l=e.split(\" \").map(f=>oIe(f,this.options)).join(\" \").split(/\\s+/).map(f=>hIe(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new ux(f,this.options)),c=l.length,u=new Map;for(let f of l){if(VY(f))return[f];u.set(f.value,f)}u.size>1&&u.has(\"\")&&u.delete(\"\");let g=[...u.values()];return zY.set(i,g),g}intersects(e,t){if(!(e instanceof Dc))throw new TypeError(\"a Range is required\");return this.set.some(i=>XY(i,t)&&e.set.some(n=>XY(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e==\"string\")try{e=new tIe(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(dIe(this.set[t],e,this.options))return!0;return!1}};_Y.exports=Dc;var $Ee=WY(),zY=new $Ee({max:1e3}),eIe=Nd(),ux=Ud(),jr=Fd(),tIe=Oi(),{re:Mi,t:bi,comparatorTrimReplace:rIe,tildeTrimReplace:iIe,caretTrimReplace:nIe}=bc(),VY=r=>r.value===\"<0.0.0-0\",sIe=r=>r.value===\"\",XY=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},oIe=(r,e)=>(jr(\"comp\",r,e),r=lIe(r,e),jr(\"caret\",r),r=aIe(r,e),jr(\"tildes\",r),r=uIe(r,e),jr(\"xrange\",r),r=fIe(r,e),jr(\"stars\",r),r),Xi=r=>!r||r.toLowerCase()===\"x\"||r===\"*\",aIe=(r,e)=>r.trim().split(/\\s+/).map(t=>AIe(t,e)).join(\" \"),AIe=(r,e)=>{let t=e.loose?Mi[bi.TILDELOOSE]:Mi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{jr(\"tilde\",r,i,n,s,o,a);let l;return Xi(n)?l=\"\":Xi(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:Xi(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(jr(\"replaceTilde pr\",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,jr(\"tilde return\",l),l})},lIe=(r,e)=>r.trim().split(/\\s+/).map(t=>cIe(t,e)).join(\" \"),cIe=(r,e)=>{jr(\"caret\",r,e);let t=e.loose?Mi[bi.CARETLOOSE]:Mi[bi.CARET],i=e.includePrerelease?\"-0\":\"\";return r.replace(t,(n,s,o,a,l)=>{jr(\"caret\",r,n,s,o,a,l);let c;return Xi(s)?c=\"\":Xi(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:Xi(a)?s===\"0\"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(jr(\"replaceCaret pr\",l),s===\"0\"?o===\"0\"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(jr(\"no pr\"),s===\"0\"?o===\"0\"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),jr(\"caret return\",c),c})},uIe=(r,e)=>(jr(\"replaceXRanges\",r,e),r.split(/\\s+/).map(t=>gIe(t,e)).join(\" \")),gIe=(r,e)=>{r=r.trim();let t=e.loose?Mi[bi.XRANGELOOSE]:Mi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{jr(\"xRange\",r,i,n,s,o,a,l);let c=Xi(s),u=c||Xi(o),g=u||Xi(a),f=g;return n===\"=\"&&f&&(n=\"\"),l=e.includePrerelease?\"-0\":\"\",c?n===\">\"||n===\"<\"?i=\"<0.0.0-0\":i=\"*\":n&&f?(u&&(o=0),a=0,n===\">\"?(n=\">=\",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n===\"<=\"&&(n=\"<\",u?s=+s+1:o=+o+1),n===\"<\"&&(l=\"-0\"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),jr(\"xRange return\",i),i})},fIe=(r,e)=>(jr(\"replaceStars\",r,e),r.trim().replace(Mi[bi.STAR],\"\")),hIe=(r,e)=>(jr(\"replaceGTE0\",r,e),r.trim().replace(Mi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],\"\")),pIe=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>(Xi(i)?t=\"\":Xi(n)?t=`>=${i}.0.0${r?\"-0\":\"\"}`:Xi(s)?t=`>=${i}.${n}.0${r?\"-0\":\"\"}`:o?t=`>=${t}`:t=`>=${t}${r?\"-0\":\"\"}`,Xi(c)?l=\"\":Xi(u)?l=`<${+c+1}.0.0-0`:Xi(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),dIe=(r,e,t)=>{for(let i=0;i<r.length;i++)if(!r[i].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let i=0;i<r.length;i++)if(jr(r[i].semver),r[i].semver!==ux.ANY&&r[i].semver.prerelease.length>0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Ud=y((Iet,rj)=>{var Hd=Symbol(\"SemVer ANY\"),gf=class{static get ANY(){return Hd}constructor(e,t){if(t=CIe(t),e instanceof gf){if(e.loose===!!t.loose)return e;e=e.value}fx(\"comparator\",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Hd?this.value=\"\":this.value=this.operator+this.semver.version,fx(\"comp\",this)}parse(e){let t=this.options.loose?ZY[$Y.COMPARATORLOOSE]:ZY[$Y.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:\"\",this.operator===\"=\"&&(this.operator=\"\"),i[2]?this.semver=new ej(i[2],this.options.loose):this.semver=Hd}toString(){return this.value}test(e){if(fx(\"Comparator.test\",e,this.options.loose),this.semver===Hd||e===Hd)return!0;if(typeof e==\"string\")try{e=new ej(e,this.options)}catch{return!1}return gx(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof gf))throw new TypeError(\"a Comparator is required\");if((!t||typeof t!=\"object\")&&(t={loose:!!t,includePrerelease:!1}),this.operator===\"\")return this.value===\"\"?!0:new tj(e.value,t).test(this.value);if(e.operator===\"\")return e.value===\"\"?!0:new tj(this.value,t).test(e.semver);let i=(this.operator===\">=\"||this.operator===\">\")&&(e.operator===\">=\"||e.operator===\">\"),n=(this.operator===\"<=\"||this.operator===\"<\")&&(e.operator===\"<=\"||e.operator===\"<\"),s=this.semver.version===e.semver.version,o=(this.operator===\">=\"||this.operator===\"<=\")&&(e.operator===\">=\"||e.operator===\"<=\"),a=gx(this.semver,\"<\",e.semver,t)&&(this.operator===\">=\"||this.operator===\">\")&&(e.operator===\"<=\"||e.operator===\"<\"),l=gx(this.semver,\">\",e.semver,t)&&(this.operator===\"<=\"||this.operator===\"<\")&&(e.operator===\">=\"||e.operator===\">\");return i||n||s&&o||a||l}};rj.exports=gf;var CIe=Nd(),{re:ZY,t:$Y}=bc(),gx=ox(),fx=Fd(),ej=Oi(),tj=as()});var Gd=y((yet,ij)=>{var mIe=as(),EIe=(r,e,t)=>{try{e=new mIe(e,t)}catch{return!1}return e.test(r)};ij.exports=EIe});var sj=y((wet,nj)=>{var IIe=as(),yIe=(r,e)=>new IIe(r,e).set.map(t=>t.map(i=>i.value).join(\" \").trim().split(\" \"));nj.exports=yIe});var aj=y((Bet,oj)=>{var wIe=Oi(),BIe=as(),QIe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new BIe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new wIe(i,t))}),i};oj.exports=QIe});var lj=y((Qet,Aj)=>{var bIe=Oi(),SIe=as(),vIe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new SIe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new bIe(i,t))}),i};Aj.exports=vIe});var gj=y((bet,uj)=>{var hx=Oi(),xIe=as(),cj=Td(),PIe=(r,e)=>{r=new xIe(r,e);let t=new hx(\"0.0.0\");if(r.test(t)||(t=new hx(\"0.0.0-0\"),r.test(t)))return t;t=null;for(let i=0;i<r.set.length;++i){let n=r.set[i],s=null;n.forEach(o=>{let a=new hx(o.semver.version);switch(o.operator){case\">\":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case\"\":case\">=\":(!s||cj(a,s))&&(s=a);break;case\"<\":case\"<=\":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||cj(t,s))&&(t=s)}return t&&r.test(t)?t:null};uj.exports=PIe});var hj=y((vet,fj)=>{var DIe=as(),kIe=(r,e)=>{try{return new DIe(r,e).range||\"*\"}catch{return null}};fj.exports=kIe});var By=y((xet,mj)=>{var RIe=Oi(),Cj=Ud(),{ANY:FIe}=Cj,NIe=as(),LIe=Gd(),pj=Td(),dj=Cy(),TIe=Ey(),OIe=my(),MIe=(r,e,t,i)=>{r=new RIe(r,i),e=new NIe(e,i);let n,s,o,a,l;switch(t){case\">\":n=pj,s=TIe,o=dj,a=\">\",l=\">=\";break;case\"<\":n=dj,s=OIe,o=pj,a=\"<\",l=\"<=\";break;default:throw new TypeError('Must provide a hilo val of \"<\" or \">\"')}if(LIe(r,e,i))return!1;for(let c=0;c<e.set.length;++c){let u=e.set[c],g=null,f=null;if(u.forEach(h=>{h.semver===FIe&&(h=new Cj(\">=0.0.0\")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};mj.exports=MIe});var Ij=y((Pet,Ej)=>{var KIe=By(),UIe=(r,e,t)=>KIe(r,e,\">\",t);Ej.exports=UIe});var wj=y((Det,yj)=>{var HIe=By(),GIe=(r,e,t)=>HIe(r,e,\"<\",t);yj.exports=GIe});var bj=y((ket,Qj)=>{var Bj=as(),YIe=(r,e,t)=>(r=new Bj(r,t),e=new Bj(e,t),r.intersects(e));Qj.exports=YIe});var vj=y((Ret,Sj)=>{var jIe=Gd(),qIe=os();Sj.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>qIe(u,g,t));for(let u of o)jIe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push(\"*\"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(\" || \"),c=typeof e.raw==\"string\"?e.raw:String(e);return l.length<c.length?l:e}});var Rj=y((Fet,kj)=>{var xj=as(),Qy=Ud(),{ANY:px}=Qy,Yd=Gd(),dx=os(),JIe=(r,e,t={})=>{if(r===e)return!0;r=new xj(r,t),e=new xj(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=WIe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},WIe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===px){if(e.length===1&&e[0].semver===px)return!0;t.includePrerelease?r=[new Qy(\">=0.0.0-0\")]:r=[new Qy(\">=0.0.0\")]}if(e.length===1&&e[0].semver===px){if(t.includePrerelease)return!0;e=[new Qy(\">=0.0.0\")]}let i=new Set,n,s;for(let h of r)h.operator===\">\"||h.operator===\">=\"?n=Pj(n,h,t):h.operator===\"<\"||h.operator===\"<=\"?s=Dj(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=dx(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==\">=\"||s.operator!==\"<=\"))return null}for(let h of i){if(n&&!Yd(h,String(n),t)||s&&!Yd(h,String(s),t))return null;for(let p of e)if(!Yd(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator===\"<\"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===\">\"||h.operator===\">=\",c=c||h.operator===\"<\"||h.operator===\"<=\",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===\">\"||h.operator===\">=\"){if(a=Pj(n,h,t),a===h&&a!==n)return!1}else if(n.operator===\">=\"&&!Yd(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator===\"<\"||h.operator===\"<=\"){if(l=Dj(s,h,t),l===h&&l!==s)return!1}else if(s.operator===\"<=\"&&!Yd(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},Pj=(r,e,t)=>{if(!r)return e;let i=dx(r.semver,e.semver,t);return i>0?r:i<0||e.operator===\">\"&&r.operator===\">=\"?e:r},Dj=(r,e,t)=>{if(!r)return e;let i=dx(r.semver,e.semver,t);return i<0?r:i>0||e.operator===\"<\"&&r.operator===\"<=\"?e:r};kj.exports=JIe});var $r=y((Net,Fj)=>{var Cx=bc();Fj.exports={re:Cx.re,src:Cx.src,tokens:Cx.t,SEMVER_SPEC_VERSION:Rd().SEMVER_SPEC_VERSION,SemVer:Oi(),compareIdentifiers:gy().compareIdentifiers,rcompareIdentifiers:gy().rcompareIdentifiers,parse:Sc(),valid:iY(),clean:sY(),inc:aY(),diff:fY(),major:pY(),minor:CY(),patch:EY(),prerelease:yY(),compare:os(),rcompare:BY(),compareLoose:bY(),compareBuild:dy(),sort:PY(),rsort:kY(),gt:Td(),lt:Cy(),eq:py(),neq:sx(),gte:my(),lte:Ey(),cmp:ox(),coerce:KY(),Comparator:Ud(),Range:as(),satisfies:Gd(),toComparators:sj(),maxSatisfying:aj(),minSatisfying:lj(),minVersion:gj(),validRange:hj(),outside:By(),gtr:Ij(),ltr:wj(),intersects:bj(),simplifyRange:vj(),subset:Rj()}});var mx=y(by=>{\"use strict\";Object.defineProperty(by,\"__esModule\",{value:!0});by.VERSION=void 0;by.VERSION=\"9.1.0\"});var Gt=y((exports,module)=>{\"use strict\";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i<n;i++)(s||!(i in e))&&(s||(s=Array.prototype.slice.call(e,0,i)),s[i]=e[i]);return r.concat(s||Array.prototype.slice.call(e))};Object.defineProperty(exports,\"__esModule\",{value:!0});exports.toFastProperties=exports.timer=exports.peek=exports.isES2015MapSupported=exports.PRINT_WARNING=exports.PRINT_ERROR=exports.packArray=exports.IDENTITY=exports.NOOP=exports.merge=exports.groupBy=exports.defaults=exports.assignNoOverwrite=exports.assign=exports.zipObject=exports.sortBy=exports.indexOf=exports.some=exports.difference=exports.every=exports.isObject=exports.isRegExp=exports.isArray=exports.partial=exports.uniq=exports.compact=exports.reduce=exports.findAll=exports.find=exports.cloneObj=exports.cloneArr=exports.contains=exports.has=exports.pick=exports.reject=exports.filter=exports.dropRight=exports.drop=exports.isFunction=exports.isUndefined=exports.isString=exports.forEach=exports.last=exports.first=exports.flatten=exports.map=exports.mapValues=exports.values=exports.keys=exports.isEmpty=void 0;exports.upperFirst=void 0;function isEmpty(r){return r&&r.length===0}exports.isEmpty=isEmpty;function keys(r){return r==null?[]:Object.keys(r)}exports.keys=keys;function values(r){for(var e=[],t=Object.keys(r),i=0;i<t.length;i++)e.push(r[t[i]]);return e}exports.values=values;function mapValues(r,e){for(var t=[],i=keys(r),n=0;n<i.length;n++){var s=i[n];t.push(e.call(null,r[s],s))}return t}exports.mapValues=mapValues;function map(r,e){for(var t=[],i=0;i<r.length;i++)t.push(e.call(null,r[i],i));return t}exports.map=map;function flatten(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];Array.isArray(i)?e=e.concat(flatten(i)):e.push(i)}return e}exports.flatten=flatten;function first(r){return isEmpty(r)?void 0:r[0]}exports.first=first;function last(r){var e=r&&r.length;return e?r[e-1]:void 0}exports.last=last;function forEach(r,e){if(Array.isArray(r))for(var t=0;t<r.length;t++)e.call(null,r[t],t);else if(isObject(r))for(var i=keys(r),t=0;t<i.length;t++){var n=i[t],s=r[n];e.call(null,s,n)}else throw Error(\"non exhaustive match\")}exports.forEach=forEach;function isString(r){return typeof r==\"string\"}exports.isString=isString;function isUndefined(r){return r===void 0}exports.isUndefined=isUndefined;function isFunction(r){return r instanceof Function}exports.isFunction=isFunction;function drop(r,e){return e===void 0&&(e=1),r.slice(e,r.length)}exports.drop=drop;function dropRight(r,e){return e===void 0&&(e=1),r.slice(0,r.length-e)}exports.dropRight=dropRight;function filter(r,e){var t=[];if(Array.isArray(r))for(var i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.filter=filter;function reject(r,e){return filter(r,function(t){return!e(t)})}exports.reject=reject;function pick(r,e){for(var t=Object.keys(r),i={},n=0;n<t.length;n++){var s=t[n],o=r[s];e(o)&&(i[s]=o)}return i}exports.pick=pick;function has(r,e){return isObject(r)?r.hasOwnProperty(e):!1}exports.has=has;function contains(r,e){return find(r,function(t){return t===e})!==void 0}exports.contains=contains;function cloneArr(r){for(var e=[],t=0;t<r.length;t++)e.push(r[t]);return e}exports.cloneArr=cloneArr;function cloneObj(r){var e={};for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e}exports.cloneObj=cloneObj;function find(r,e){for(var t=0;t<r.length;t++){var i=r[t];if(e.call(null,i))return i}}exports.find=find;function findAll(r,e){for(var t=[],i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.findAll=findAll;function reduce(r,e,t){for(var i=Array.isArray(r),n=i?r:values(r),s=i?[]:keys(r),o=t,a=0;a<n.length;a++)o=e.call(null,o,n[a],i?a:s[a]);return o}exports.reduce=reduce;function compact(r){return reject(r,function(e){return e==null})}exports.compact=compact;function uniq(r,e){e===void 0&&(e=function(i){return i});var t=[];return reduce(r,function(i,n){var s=e(n);return contains(t,s)?i:(t.push(s),i.concat(n))},[])}exports.uniq=uniq;function partial(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];var i=[null],n=i.concat(e);return Function.bind.apply(r,n)}exports.partial=partial;function isArray(r){return Array.isArray(r)}exports.isArray=isArray;function isRegExp(r){return r instanceof RegExp}exports.isRegExp=isRegExp;function isObject(r){return r instanceof Object}exports.isObject=isObject;function every(r,e){for(var t=0;t<r.length;t++)if(!e(r[t],t))return!1;return!0}exports.every=every;function difference(r,e){return reject(r,function(t){return contains(e,t)})}exports.difference=difference;function some(r,e){for(var t=0;t<r.length;t++)if(e(r[t]))return!0;return!1}exports.some=some;function indexOf(r,e){for(var t=0;t<r.length;t++)if(r[t]===e)return t;return-1}exports.indexOf=indexOf;function sortBy(r,e){var t=cloneArr(r);return t.sort(function(i,n){return e(i)-e(n)}),t}exports.sortBy=sortBy;function zipObject(r,e){if(r.length!==e.length)throw Error(\"can't zipObject with different number of keys and values!\");for(var t={},i=0;i<r.length;i++)t[r[i]]=e[i];return t}exports.zipObject=zipObject;function assign(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];r[a]=n[a]}return r}exports.assign=assign;function assignNoOverwrite(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];has(r,a)||(r[a]=n[a])}return r}exports.assignNoOverwrite=assignNoOverwrite;function defaults(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return assignNoOverwrite.apply(void 0,__spreadArray([{}],r,!1))}exports.defaults=defaults;function groupBy(r,e){var t={};return forEach(r,function(i){var n=e(i),s=t[n];s?s.push(i):t[n]=[i]}),t}exports.groupBy=groupBy;function merge(r,e){for(var t=cloneObj(r),i=keys(e),n=0;n<i.length;n++){var s=i[n],o=e[s];t[s]=o}return t}exports.merge=merge;function NOOP(){}exports.NOOP=NOOP;function IDENTITY(r){return r}exports.IDENTITY=IDENTITY;function packArray(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];e.push(i!==void 0?i:void 0)}return e}exports.packArray=packArray;function PRINT_ERROR(r){console&&console.error&&console.error(\"Error: \"+r)}exports.PRINT_ERROR=PRINT_ERROR;function PRINT_WARNING(r){console&&console.warn&&console.warn(\"Warning: \"+r)}exports.PRINT_WARNING=PRINT_WARNING;function isES2015MapSupported(){return typeof Map==\"function\"}exports.isES2015MapSupported=isES2015MapSupported;function peek(r){return r[r.length-1]}exports.peek=peek;function timer(r){var e=new Date().getTime(),t=r(),i=new Date().getTime(),n=i-e;return{time:n,value:t}}exports.timer=timer;function toFastProperties(toBecomeFast){function FakeConstructor(){}FakeConstructor.prototype=toBecomeFast;var fakeInstance=new FakeConstructor;function fakeAccess(){return typeof fakeInstance.bar}return fakeAccess(),fakeAccess(),toBecomeFast;eval(toBecomeFast)}exports.toFastProperties=toFastProperties;function upperFirst(r){if(!r)return r;var e=getCharacterFromCodePointAt(r,0);return e.toUpperCase()+r.substring(e.length)}exports.upperFirst=upperFirst;var surrogatePairPattern=/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/;function getCharacterFromCodePointAt(r,e){var t=r.substring(e,e+1);return surrogatePairPattern.test(t)?t:r[e]}});var vy=y((Nj,Sy)=>{(function(r,e){typeof define==\"function\"&&define.amd?define([],e):typeof Sy==\"object\"&&Sy.exports?Sy.exports=e():r.regexpToAst=e()})(typeof self<\"u\"?self:Nj,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar(\"/\");var C=this.disjunction();this.consumeChar(\"/\");for(var w={type:\"Flags\",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case\"g\":o(w,\"global\");break;case\"i\":o(w,\"ignoreCase\");break;case\"m\":o(w,\"multiLine\");break;case\"u\":o(w,\"unicode\");break;case\"y\":o(w,\"sticky\");break}if(this.idx!==this.input.length)throw Error(\"Redundant input: \"+this.input.substring(this.idx));return{type:\"Pattern\",flags:w,value:C,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],C=this.idx;for(p.push(this.alternative());this.peekChar()===\"|\";)this.consumeChar(\"|\"),p.push(this.alternative());return{type:\"Disjunction\",value:p,loc:this.loc(C)}},r.prototype.alternative=function(){for(var p=[],C=this.idx;this.isTerm();)p.push(this.term());return{type:\"Alternative\",value:p,loc:this.loc(C)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case\"^\":return{type:\"StartAnchor\",loc:this.loc(p)};case\"$\":return{type:\"EndAnchor\",loc:this.loc(p)};case\"\\\\\":switch(this.popChar()){case\"b\":return{type:\"WordBoundary\",loc:this.loc(p)};case\"B\":return{type:\"NonWordBoundary\",loc:this.loc(p)}}throw Error(\"Invalid Assertion Escape\");case\"(\":this.consumeChar(\"?\");var C;switch(this.popChar()){case\"=\":C=\"Lookahead\";break;case\"!\":C=\"NegativeLookahead\";break}a(C);var w=this.disjunction();return this.consumeChar(\")\"),{type:C,value:w,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var C,w=this.idx;switch(this.popChar()){case\"*\":C={atLeast:0,atMost:1/0};break;case\"+\":C={atLeast:1,atMost:1/0};break;case\"?\":C={atLeast:0,atMost:1};break;case\"{\":var B=this.integerIncludingZero();switch(this.popChar()){case\"}\":C={atLeast:B,atMost:B};break;case\",\":var v;this.isDigit()?(v=this.integerIncludingZero(),C={atLeast:B,atMost:v}):C={atLeast:B,atMost:1/0},this.consumeChar(\"}\");break}if(p===!0&&C===void 0)return;a(C);break}if(!(p===!0&&C===void 0))return a(C),this.peekChar(0)===\"?\"?(this.consumeChar(\"?\"),C.greedy=!1):C.greedy=!0,C.type=\"Quantifier\",C.loc=this.loc(w),C},r.prototype.atom=function(){var p,C=this.idx;switch(this.peekChar()){case\".\":p=this.dotAll();break;case\"\\\\\":p=this.atomEscape();break;case\"[\":p=this.characterClass();break;case\"(\":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(C),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar(\".\"),{type:\"Set\",complement:!0,value:[n(`\n`),n(\"\\r\"),n(\"\\u2028\"),n(\"\\u2029\")]}},r.prototype.atomEscape=function(){switch(this.consumeChar(\"\\\\\"),this.peekChar()){case\"1\":case\"2\":case\"3\":case\"4\":case\"5\":case\"6\":case\"7\":case\"8\":case\"9\":return this.decimalEscapeAtom();case\"d\":case\"D\":case\"s\":case\"S\":case\"w\":case\"W\":return this.characterClassEscape();case\"f\":case\"n\":case\"r\":case\"t\":case\"v\":return this.controlEscapeAtom();case\"c\":return this.controlLetterEscapeAtom();case\"0\":return this.nulCharacterAtom();case\"x\":return this.hexEscapeSequenceAtom();case\"u\":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:\"GroupBackReference\",value:p}},r.prototype.characterClassEscape=function(){var p,C=!1;switch(this.popChar()){case\"d\":p=u;break;case\"D\":p=u,C=!0;break;case\"s\":p=f;break;case\"S\":p=f,C=!0;break;case\"w\":p=g;break;case\"W\":p=g,C=!0;break}return a(p),{type:\"Set\",value:p,complement:C}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case\"f\":p=n(\"\\f\");break;case\"n\":p=n(`\n`);break;case\"r\":p=n(\"\\r\");break;case\"t\":p=n(\"\t\");break;case\"v\":p=n(\"\\v\");break}return a(p),{type:\"Character\",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar(\"c\");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error(\"Invalid \");var C=p.toUpperCase().charCodeAt(0)-64;return{type:\"Character\",value:C}},r.prototype.nulCharacterAtom=function(){return this.consumeChar(\"0\"),{type:\"Character\",value:n(\"\\0\")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar(\"x\"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar(\"u\"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:\"Character\",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case`\n`:case\"\\r\":case\"\\u2028\":case\"\\u2029\":case\"\\\\\":case\"]\":throw Error(\"TBD\");default:var p=this.popChar();return{type:\"Character\",value:n(p)}}},r.prototype.characterClass=function(){var p=[],C=!1;for(this.consumeChar(\"[\"),this.peekChar(0)===\"^\"&&(this.consumeChar(\"^\"),C=!0);this.isClassAtom();){var w=this.classAtom(),B=w.type===\"Character\";if(B&&this.isRangeDash()){this.consumeChar(\"-\");var v=this.classAtom(),D=v.type===\"Character\";if(D){if(v.value<w.value)throw Error(\"Range out of order in character class\");p.push({from:w.value,to:v.value})}else s(w.value,p),p.push(n(\"-\")),s(v.value,p)}else s(w.value,p)}return this.consumeChar(\"]\"),{type:\"Set\",complement:C,value:p}},r.prototype.classAtom=function(){switch(this.peekChar()){case\"]\":case`\n`:case\"\\r\":case\"\\u2028\":case\"\\u2029\":throw Error(\"TBD\");case\"\\\\\":return this.classEscape();default:return this.classPatternCharacterAtom()}},r.prototype.classEscape=function(){switch(this.consumeChar(\"\\\\\"),this.peekChar()){case\"b\":return this.consumeChar(\"b\"),{type:\"Character\",value:n(\"\\b\")};case\"d\":case\"D\":case\"s\":case\"S\":case\"w\":case\"W\":return this.characterClassEscape();case\"f\":case\"n\":case\"r\":case\"t\":case\"v\":return this.controlEscapeAtom();case\"c\":return this.controlLetterEscapeAtom();case\"0\":return this.nulCharacterAtom();case\"x\":return this.hexEscapeSequenceAtom();case\"u\":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.group=function(){var p=!0;switch(this.consumeChar(\"(\"),this.peekChar(0)){case\"?\":this.consumeChar(\"?\"),this.consumeChar(\":\"),p=!1;break;default:this.groupIdx++;break}var C=this.disjunction();this.consumeChar(\")\");var w={type:\"Group\",capturing:p,value:C};return p&&(w.idx=this.groupIdx),w},r.prototype.positiveInteger=function(){var p=this.popChar();if(i.test(p)===!1)throw Error(\"Expecting a positive integer\");for(;t.test(this.peekChar(0));)p+=this.popChar();return parseInt(p,10)},r.prototype.integerIncludingZero=function(){var p=this.popChar();if(t.test(p)===!1)throw Error(\"Expecting an integer\");for(;t.test(this.peekChar(0));)p+=this.popChar();return parseInt(p,10)},r.prototype.patternCharacter=function(){var p=this.popChar();switch(p){case`\n`:case\"\\r\":case\"\\u2028\":case\"\\u2029\":case\"^\":case\"$\":case\"\\\\\":case\".\":case\"*\":case\"+\":case\"?\":case\"(\":case\")\":case\"[\":case\"|\":throw Error(\"TBD\");default:return{type:\"Character\",value:n(p)}}},r.prototype.isRegExpFlag=function(){switch(this.peekChar(0)){case\"g\":case\"i\":case\"m\":case\"u\":case\"y\":return!0;default:return!1}},r.prototype.isRangeDash=function(){return this.peekChar()===\"-\"&&this.isClassAtom(1)},r.prototype.isDigit=function(){return t.test(this.peekChar(0))},r.prototype.isClassAtom=function(p){switch(p===void 0&&(p=0),this.peekChar(p)){case\"]\":case`\n`:case\"\\r\":case\"\\u2028\":case\"\\u2029\":return!1;default:return!0}},r.prototype.isTerm=function(){return this.isAtom()||this.isAssertion()},r.prototype.isAtom=function(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case\".\":case\"\\\\\":case\"[\":case\"(\":return!0;default:return!1}},r.prototype.isAssertion=function(){switch(this.peekChar(0)){case\"^\":case\"$\":return!0;case\"\\\\\":switch(this.peekChar(1)){case\"b\":case\"B\":return!0;default:return!1}case\"(\":return this.peekChar(1)===\"?\"&&(this.peekChar(2)===\"=\"||this.peekChar(2)===\"!\");default:return!1}},r.prototype.isQuantifier=function(){var p=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(p)}},r.prototype.isPatternCharacter=function(){switch(this.peekChar()){case\"^\":case\"$\":case\"\\\\\":case\".\":case\"*\":case\"+\":case\"?\":case\"(\":case\")\":case\"[\":case\"|\":case\"/\":case`\n`:case\"\\r\":case\"\\u2028\":case\"\\u2029\":return!1;default:return!0}},r.prototype.parseHexDigits=function(p){for(var C=\"\",w=0;w<p;w++){var B=this.popChar();if(e.test(B)===!1)throw Error(\"Expecting a HexDecimal digits\");C+=B}var v=parseInt(C,16);return{type:\"Character\",value:v}},r.prototype.peekChar=function(p){return p===void 0&&(p=0),this.input[this.idx+p]},r.prototype.popChar=function(){var p=this.peekChar(0);return this.consumeChar(),p},r.prototype.consumeChar=function(p){if(p!==void 0&&this.input[this.idx]!==p)throw Error(\"Expected: '\"+p+\"' but found: '\"+this.input[this.idx]+\"' at offset: \"+this.idx);if(this.idx>=this.input.length)throw Error(\"Unexpected end of input\");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,C){p.length!==void 0?p.forEach(function(w){C.push(w)}):C.push(p)}function o(p,C){if(p[C]===!0)throw\"duplicate flag \"+C;p[C]=!0}function a(p){if(p===void 0)throw Error(\"Internal Error - Should never get here!\")}function l(){throw Error(\"Internal Error - Should never get here!\")}var c,u=[];for(c=n(\"0\");c<=n(\"9\");c++)u.push(c);var g=[n(\"_\")].concat(u);for(c=n(\"a\");c<=n(\"z\");c++)g.push(c);for(c=n(\"A\");c<=n(\"Z\");c++)g.push(c);var f=[n(\" \"),n(\"\\f\"),n(`\n`),n(\"\\r\"),n(\"\t\"),n(\"\\v\"),n(\"\t\"),n(\"\\xA0\"),n(\"\\u1680\"),n(\"\\u2000\"),n(\"\\u2001\"),n(\"\\u2002\"),n(\"\\u2003\"),n(\"\\u2004\"),n(\"\\u2005\"),n(\"\\u2006\"),n(\"\\u2007\"),n(\"\\u2008\"),n(\"\\u2009\"),n(\"\\u200A\"),n(\"\\u2028\"),n(\"\\u2029\"),n(\"\\u202F\"),n(\"\\u205F\"),n(\"\\u3000\"),n(\"\\uFEFF\")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var w=p[C];p.hasOwnProperty(C)&&(w.type!==void 0?this.visit(w):Array.isArray(w)&&w.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case\"Pattern\":this.visitPattern(p);break;case\"Flags\":this.visitFlags(p);break;case\"Disjunction\":this.visitDisjunction(p);break;case\"Alternative\":this.visitAlternative(p);break;case\"StartAnchor\":this.visitStartAnchor(p);break;case\"EndAnchor\":this.visitEndAnchor(p);break;case\"WordBoundary\":this.visitWordBoundary(p);break;case\"NonWordBoundary\":this.visitNonWordBoundary(p);break;case\"Lookahead\":this.visitLookahead(p);break;case\"NegativeLookahead\":this.visitNegativeLookahead(p);break;case\"Character\":this.visitCharacter(p);break;case\"Set\":this.visitSet(p);break;case\"Group\":this.visitGroup(p);break;case\"GroupBackReference\":this.visitGroupBackReference(p);break;case\"Quantifier\":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:\"0.5.0\"}})});var Py=y(ff=>{\"use strict\";Object.defineProperty(ff,\"__esModule\",{value:!0});ff.clearRegExpParserCache=ff.getRegExpAst=void 0;var zIe=vy(),xy={},VIe=new zIe.RegExpParser;function XIe(r){var e=r.toString();if(xy.hasOwnProperty(e))return xy[e];var t=VIe.pattern(e);return xy[e]=t,t}ff.getRegExpAst=XIe;function _Ie(){xy={}}ff.clearRegExpParserCache=_Ie});var Kj=y(dn=>{\"use strict\";var ZIe=dn&&dn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dn,\"__esModule\",{value:!0});dn.canMatchCharCode=dn.firstCharOptimizedIndices=dn.getOptimizedStartCodesIndices=dn.failedOptimizationPrefixMsg=void 0;var Tj=vy(),As=Gt(),Oj=Py(),Pa=Ix(),Mj=\"Complement Sets are not supported for first char optimization\";dn.failedOptimizationPrefixMsg=`Unable to use \"first char\" lexer optimizations:\n`;function $Ie(r,e){e===void 0&&(e=!1);try{var t=(0,Oj.getRegExpAst)(r),i=ky(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===Mj)e&&(0,As.PRINT_WARNING)(\"\"+dn.failedOptimizationPrefixMsg+(\"\tUnable to optimize: < \"+r.toString()+` >\n`)+`\tComplement Sets cannot be automatically optimized.\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n=\"\";e&&(n=`\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,As.PRINT_ERROR)(dn.failedOptimizationPrefixMsg+`\n`+(\"\tFailed parsing: < \"+r.toString()+` >\n`)+(\"\tUsing the regexp-to-ast library version: \"+Tj.VERSION+`\n`)+\"\tPlease open an issue at: https://github.com/bd82/regexp-to-ast/issues\"+n)}}return[]}dn.getOptimizedStartCodesIndices=$Ie;function ky(r,e,t){switch(r.type){case\"Disjunction\":for(var i=0;i<r.value.length;i++)ky(r.value[i],e,t);break;case\"Alternative\":for(var n=r.value,i=0;i<n.length;i++){var s=n[i];switch(s.type){case\"EndAnchor\":case\"GroupBackReference\":case\"Lookahead\":case\"NegativeLookahead\":case\"StartAnchor\":case\"WordBoundary\":case\"NonWordBoundary\":continue}var o=s;switch(o.type){case\"Character\":Dy(o.value,e,t);break;case\"Set\":if(o.complement===!0)throw Error(Mj);(0,As.forEach)(o.value,function(c){if(typeof c==\"number\")Dy(c,e,t);else{var u=c;if(t===!0)for(var g=u.from;g<=u.to;g++)Dy(g,e,t);else{for(var g=u.from;g<=u.to&&g<Pa.minOptimizationVal;g++)Dy(g,e,t);if(u.to>=Pa.minOptimizationVal)for(var f=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,h=u.to,p=(0,Pa.charCodeToOptimizedIndex)(f),C=(0,Pa.charCodeToOptimizedIndex)(h),w=p;w<=C;w++)e[w]=w}}});break;case\"Group\":ky(o.value,e,t);break;default:throw Error(\"Non Exhaustive Match\")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type===\"Group\"&&Ex(o)===!1||o.type!==\"Group\"&&a===!1)break}break;default:throw Error(\"non exhaustive match!\")}return(0,As.values)(e)}dn.firstCharOptimizedIndices=ky;function Dy(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&eye(r,e)}function eye(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function Lj(r,e){return(0,As.find)(r.value,function(t){if(typeof t==\"number\")return(0,As.contains)(e,t);var i=t;return(0,As.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Ex(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,As.isArray)(r.value)?(0,As.every)(r.value,Ex):Ex(r.value):!1}var tye=function(r){ZIe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case\"Lookahead\":this.visitLookahead(t);return;case\"NegativeLookahead\":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,As.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?Lj(t,this.targetCharCodes)===void 0&&(this.found=!0):Lj(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(Tj.BaseRegExpVisitor);function rye(r,e){if(e instanceof RegExp){var t=(0,Oj.getRegExpAst)(e),i=new tye(r);return i.visit(t),i.found}else return(0,As.find)(e,function(n){return(0,As.contains)(r,n.charCodeAt(0))})!==void 0}dn.canMatchCharCode=rye});var Ix=y(Je=>{\"use strict\";var Uj=Je&&Je.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Je,\"__esModule\",{value:!0});Je.charCodeToOptimizedIndex=Je.minOptimizationVal=Je.buildLineBreakIssueMessage=Je.LineTerminatorOptimizedTester=Je.isShortPattern=Je.isCustomPattern=Je.cloneEmptyGroups=Je.performWarningRuntimeChecks=Je.performRuntimeChecks=Je.addStickyFlag=Je.addStartOfInput=Je.findUnreachablePatterns=Je.findModesThatDoNotExist=Je.findInvalidGroupType=Je.findDuplicatePatterns=Je.findUnsupportedFlags=Je.findStartOfInputAnchor=Je.findEmptyMatchRegExps=Je.findEndOfInputAnchor=Je.findInvalidPatterns=Je.findMissingPatterns=Je.validatePatterns=Je.analyzeTokenTypes=Je.enableSticky=Je.disableSticky=Je.SUPPORT_STICKY=Je.MODES=Je.DEFAULT_MODE=void 0;var Hj=vy(),ir=jd(),Se=Gt(),hf=Kj(),Gj=Py(),Do=\"PATTERN\";Je.DEFAULT_MODE=\"defaultMode\";Je.MODES=\"modes\";Je.SUPPORT_STICKY=typeof new RegExp(\"(?:)\").sticky==\"boolean\";function iye(){Je.SUPPORT_STICKY=!1}Je.disableSticky=iye;function nye(){Je.SUPPORT_STICKY=!0}Je.enableSticky=nye;function sye(r,e){e=(0,Se.defaults)(e,{useSticky:Je.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:\"full\",lineTerminatorCharacters:[\"\\r\",`\n`],tracer:function(v,D){return D()}});var t=e.tracer;t(\"initCharCodeToOptimizedIndexMap\",function(){pye()});var i;t(\"Reject Lexer.NA\",function(){i=(0,Se.reject)(r,function(v){return v[Do]===ir.Lexer.NA})});var n=!1,s;t(\"Transform Patterns\",function(){n=!1,s=(0,Se.map)(i,function(v){var D=v[Do];if((0,Se.isRegExp)(D)){var L=D.source;return L.length===1&&L!==\"^\"&&L!==\"$\"&&L!==\".\"&&!D.ignoreCase?L:L.length===2&&L[0]===\"\\\\\"&&!(0,Se.contains)([\"d\",\"D\",\"s\",\"S\",\"t\",\"r\",\"n\",\"t\",\"0\",\"c\",\"b\",\"B\",\"f\",\"v\",\"w\",\"W\"],L[1])?L[1]:e.useSticky?Bx(D):wx(D)}else{if((0,Se.isFunction)(D))return n=!0,{exec:D};if((0,Se.has)(D,\"exec\"))return n=!0,D;if(typeof D==\"string\"){if(D.length===1)return D;var H=D.replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\"),j=new RegExp(H);return e.useSticky?Bx(j):wx(j)}else throw Error(\"non exhaustive match\")}})});var o,a,l,c,u;t(\"misc mapping\",function(){o=(0,Se.map)(i,function(v){return v.tokenTypeIdx}),a=(0,Se.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,Se.isString)(D))return D;if((0,Se.isUndefined)(D))return!1;throw Error(\"non exhaustive match\")}}),l=(0,Se.map)(i,function(v){var D=v.LONGER_ALT;if(D){var L=(0,Se.isArray)(D)?(0,Se.map)(D,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,D)];return L}}),c=(0,Se.map)(i,function(v){return v.PUSH_MODE}),u=(0,Se.map)(i,function(v){return(0,Se.has)(v,\"POP_MODE\")})});var g;t(\"Line Terminator Handling\",function(){var v=rq(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(D){return!1}),e.positionTracking!==\"onlyOffset\"&&(g=(0,Se.map)(i,function(D){if((0,Se.has)(D,\"LINE_BREAKS\"))return D.LINE_BREAKS;if(eq(D,v)===!1)return(0,hf.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t(\"Misc Mapping #2\",function(){f=(0,Se.map)(i,bx),h=(0,Se.map)(s,$j),p=(0,Se.reduce)(i,function(v,D){var L=D.GROUP;return(0,Se.isString)(L)&&L!==ir.Lexer.SKIPPED&&(v[L]=[]),v},{}),C=(0,Se.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var w=!0,B=[];return e.safeMode||t(\"First Char Optimization\",function(){B=(0,Se.reduce)(i,function(v,D,L){if(typeof D.PATTERN==\"string\"){var H=D.PATTERN.charCodeAt(0),j=Qx(H);yx(v,j,C[L])}else if((0,Se.isArray)(D.START_CHARS_HINT)){var $;(0,Se.forEach)(D.START_CHARS_HINT,function(W){var Z=typeof W==\"string\"?W.charCodeAt(0):W,A=Qx(Z);$!==A&&($=A,yx(v,A,C[L]))})}else if((0,Se.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)w=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(\"\"+hf.failedOptimizationPrefixMsg+(\"\tUnable to analyze < \"+D.PATTERN.toString()+` > pattern.\n`)+`\tThe regexp unicode flag is not currently supported by the regexp-to-ast library.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var V=(0,hf.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(V)&&(w=!1),(0,Se.forEach)(V,function(W){yx(v,W,C[L])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(\"\"+hf.failedOptimizationPrefixMsg+(\"\tTokenType: <\"+D.name+`> is using a custom token pattern without providing <start_chars_hint> parameter.\n`)+`\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),w=!1;return v},[])}),t(\"ArrayPacking\",function(){B=(0,Se.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:w}}Je.analyzeTokenTypes=sye;function oye(r,e){var t=[],i=Yj(r);t=t.concat(i.errors);var n=jj(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(aye(s)),t=t.concat(Xj(s)),t=t.concat(_j(s,e)),t=t.concat(Zj(s)),t}Je.validatePatterns=oye;function aye(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[Do])});return e=e.concat(qj(t)),e=e.concat(Wj(t)),e=e.concat(zj(t)),e=e.concat(Vj(t)),e=e.concat(Jj(t)),e}function Yj(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,Do)}),t=(0,Se.map)(e,function(n){return{message:\"Token Type: ->\"+n.name+\"<- missing static 'PATTERN' property\",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}Je.findMissingPatterns=Yj;function jj(r){var e=(0,Se.filter)(r,function(n){var s=n[Do];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,\"exec\")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:\"Token Type: ->\"+n.name+\"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.\",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}Je.findInvalidPatterns=jj;var Aye=/[^\\\\][\\$]/;function qj(r){var e=function(n){Uj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(Hj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[Do];try{var o=(0,Gj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return Aye.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error:\n\tToken Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$'\n\tSee chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Je.findEndOfInputAnchor=qj;function Jj(r){var e=(0,Se.filter)(r,function(i){var n=i[Do];return n.test(\"\")}),t=(0,Se.map)(e,function(i){return{message:\"Token Type: ->\"+i.name+\"<- static 'PATTERN' must not match an empty string\",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Je.findEmptyMatchRegExps=Jj;var lye=/[^\\\\[][\\^]|^\\^/;function Wj(r){var e=function(n){Uj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(Hj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[Do];try{var o=(0,Gj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return lye.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error:\n\tToken Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^'\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Je.findStartOfInputAnchor=Wj;function zj(r){var e=(0,Se.filter)(r,function(i){var n=i[Do];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Se.map)(e,function(i){return{message:\"Token Type: ->\"+i.name+\"<- static 'PATTERN' may NOT contain global('g') or multiline('m')\",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Je.findUnsupportedFlags=zj;function Vj(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:\"The same RegExp pattern ->\"+a+\"<-\"+(\"has been used in all of the following Token Types: \"+o.join(\", \")+\" <-\"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Je.findDuplicatePatterns=Vj;function Xj(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,\"GROUP\"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:\"Token Type: ->\"+i.name+\"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String\",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Je.findInvalidGroupType=Xj;function _j(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s=\"Token Type: ->\"+n.name+\"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->\"+n.PUSH_MODE+\"<-which does not exist\";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Je.findModesThatDoNotExist=_j;function Zj(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&uye(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n<a&&cye(o,i.PATTERN)){var c=\"Token: ->\"+l.name+`<- can never be matched.\n`+(\"Because it appears AFTER the Token Type ->\"+i.name+\"<-\")+`in the lexer's definition.\nSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Je.findUnreachablePatterns=Zj;function cye(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,\"exec\"))return e.exec(r,0,[],{});if(typeof e==\"string\")return e===r;throw Error(\"non exhaustive match\")}}function uye(r){var e=[\".\",\"\\\\\",\"[\",\"]\",\"|\",\"^\",\"$\",\"(\",\")\",\"?\",\"*\",\"+\",\"{\"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function wx(r){var e=r.ignoreCase?\"i\":\"\";return new RegExp(\"^(?:\"+r.source+\")\",e)}Je.addStartOfInput=wx;function Bx(r){var e=r.ignoreCase?\"iy\":\"y\";return new RegExp(\"\"+r.source,e)}Je.addStickyFlag=Bx;function gye(r,e,t){var i=[];return(0,Se.has)(r,Je.DEFAULT_MODE)||i.push({message:\"A MultiMode Lexer cannot be initialized without a <\"+Je.DEFAULT_MODE+`> property in its definition\n`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,Je.MODES)||i.push({message:\"A MultiMode Lexer cannot be initialized without a <\"+Je.MODES+`> property in its definition\n`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,Je.MODES)&&(0,Se.has)(r,Je.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:\"A MultiMode Lexer cannot be initialized with a \"+Je.DEFAULT_MODE+\": <\"+r.defaultMode+`>which does not exist\n`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,Je.MODES)&&(0,Se.forEach)(r.modes,function(n,s){(0,Se.forEach)(n,function(o,a){(0,Se.isUndefined)(o)&&i.push({message:\"A Lexer cannot be initialized using an undefined Token Type. Mode:\"+(\"<\"+s+\"> at index: <\"+a+`>\n`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Je.performRuntimeChecks=gye;function fye(r,e,t){var i=[],n=!1,s=(0,Se.compact)((0,Se.flatten)((0,Se.mapValues)(r.modes,function(l){return l}))),o=(0,Se.reject)(s,function(l){return l[Do]===ir.Lexer.NA}),a=rq(t);return e&&(0,Se.forEach)(o,function(l){var c=eq(l,a);if(c!==!1){var u=tq(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Se.has)(l,\"LINE_BREAKS\")?l.LINE_BREAKS===!0&&(n=!0):(0,hf.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found.\n\tThis Lexer has been defined to track line and column information,\n\tBut none of the Token Types can be identified as matching a line terminator.\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \n\tfor details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Je.performWarningRuntimeChecks=fye;function hye(r){var e={},t=(0,Se.keys)(r);return(0,Se.forEach)(t,function(i){var n=r[i];if((0,Se.isArray)(n))e[i]=[];else throw Error(\"non exhaustive match\")}),e}Je.cloneEmptyGroups=hye;function bx(r){var e=r.PATTERN;if((0,Se.isRegExp)(e))return!1;if((0,Se.isFunction)(e))return!0;if((0,Se.has)(e,\"exec\"))return!0;if((0,Se.isString)(e))return!1;throw Error(\"non exhaustive match\")}Je.isCustomPattern=bx;function $j(r){return(0,Se.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Je.isShortPattern=$j;Je.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t<e;t++){var i=r.charCodeAt(t);if(i===10)return this.lastIndex=t+1,!0;if(i===13)return r.charCodeAt(t+1)===10?this.lastIndex=t+2:this.lastIndex=t+1,!0}return!1},lastIndex:0};function eq(r,e){if((0,Se.has)(r,\"LINE_BREAKS\"))return!1;if((0,Se.isRegExp)(r.PATTERN)){try{(0,hf.canMatchCharCode)(e,r.PATTERN)}catch(t){return{issue:ir.LexerDefinitionErrorType.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if((0,Se.isString)(r.PATTERN))return!1;if(bx(r))return{issue:ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK};throw Error(\"non exhaustive match\")}}function tq(r,e){if(e.issue===ir.LexerDefinitionErrorType.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.\n`+(\"\tThe problem is in the <\"+r.name+`> Token Type\n`)+(\"\t Root cause: \"+e.errMsg+`.\n`)+\"\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR\";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.\n`+(\"\tThe problem is in the <\"+r.name+`> Token Type\n`)+\"\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK\";throw Error(\"non exhaustive match\")}Je.buildLineBreakIssueMessage=tq;function rq(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function yx(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Je.minOptimizationVal=256;var Ry=[];function Qx(r){return r<Je.minOptimizationVal?r:Ry[r]}Je.charCodeToOptimizedIndex=Qx;function pye(){if((0,Se.isEmpty)(Ry)){Ry=new Array(65536);for(var r=0;r<65536;r++)Ry[r]=r>255?255+~~(r/255):r}}});var pf=y(Nt=>{\"use strict\";Object.defineProperty(Nt,\"__esModule\",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var ei=Gt();function dye(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=dye;function Cye(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=Cye;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function mye(r){var e=iq(r);nq(e),oq(e),sq(e),(0,ei.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=mye;function iq(r){for(var e=(0,ei.cloneArr)(r),t=r,i=!0;i;){t=(0,ei.compact)((0,ei.flatten)((0,ei.map)(t,function(s){return s.CATEGORIES})));var n=(0,ei.difference)(t,e);e=e.concat(n),(0,ei.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=iq;function nq(r){(0,ei.forEach)(r,function(e){aq(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),Sx(e)&&!(0,ei.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Sx(e)||(e.CATEGORIES=[]),Aq(e)||(e.categoryMatches=[]),lq(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=nq;function sq(r){(0,ei.forEach)(r,function(e){e.categoryMatches=[],(0,ei.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=sq;function oq(r){(0,ei.forEach)(r,function(e){vx([],e)})}Nt.assignCategoriesMapProp=oq;function vx(r,e){(0,ei.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,ei.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,ei.contains)(i,t)||vx(i,t)})}Nt.singleAssignCategoriesToksMap=vx;function aq(r){return(0,ei.has)(r,\"tokenTypeIdx\")}Nt.hasShortKeyProperty=aq;function Sx(r){return(0,ei.has)(r,\"CATEGORIES\")}Nt.hasCategoriesProperty=Sx;function Aq(r){return(0,ei.has)(r,\"categoryMatches\")}Nt.hasExtendingTokensTypesProperty=Aq;function lq(r){return(0,ei.has)(r,\"categoryMatchesMap\")}Nt.hasExtendingTokensTypesMapProperty=lq;function Eye(r){return(0,ei.has)(r,\"tokenTypeIdx\")}Nt.isTokenType=Eye});var xx=y(Fy=>{\"use strict\";Object.defineProperty(Fy,\"__esModule\",{value:!0});Fy.defaultLexerErrorProvider=void 0;Fy.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return\"Unable to pop Lexer Mode after encountering Token ->\"+r.image+\"<- The Mode Stack is empty\"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return\"unexpected character: ->\"+r.charAt(e)+\"<- at offset: \"+e+\",\"+(\" skipped \"+t+\" characters.\")}}});var jd=y(kc=>{\"use strict\";Object.defineProperty(kc,\"__esModule\",{value:!0});kc.Lexer=kc.LexerDefinitionErrorType=void 0;var Vs=Ix(),nr=Gt(),Iye=pf(),yye=xx(),wye=Py(),Bye;(function(r){r[r.MISSING_PATTERN=0]=\"MISSING_PATTERN\",r[r.INVALID_PATTERN=1]=\"INVALID_PATTERN\",r[r.EOI_ANCHOR_FOUND=2]=\"EOI_ANCHOR_FOUND\",r[r.UNSUPPORTED_FLAGS_FOUND=3]=\"UNSUPPORTED_FLAGS_FOUND\",r[r.DUPLICATE_PATTERNS_FOUND=4]=\"DUPLICATE_PATTERNS_FOUND\",r[r.INVALID_GROUP_TYPE_FOUND=5]=\"INVALID_GROUP_TYPE_FOUND\",r[r.PUSH_MODE_DOES_NOT_EXIST=6]=\"PUSH_MODE_DOES_NOT_EXIST\",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]=\"MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE\",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]=\"MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY\",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]=\"MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST\",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]=\"LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED\",r[r.SOI_ANCHOR_FOUND=11]=\"SOI_ANCHOR_FOUND\",r[r.EMPTY_MATCH_PATTERN=12]=\"EMPTY_MATCH_PATTERN\",r[r.NO_LINE_BREAKS_FLAGS=13]=\"NO_LINE_BREAKS_FLAGS\",r[r.UNREACHABLE_PATTERN=14]=\"UNREACHABLE_PATTERN\",r[r.IDENTIFY_TERMINATOR=15]=\"IDENTIFY_TERMINATOR\",r[r.CUSTOM_LINE_BREAK=16]=\"CUSTOM_LINE_BREAK\"})(Bye=kc.LexerDefinitionErrorType||(kc.LexerDefinitionErrorType={}));var qd={deferDefinitionErrorsHandling:!1,positionTracking:\"full\",lineTerminatorsPattern:/\\n|\\r\\n?/g,lineTerminatorCharacters:[`\n`,\"\\r\"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:yye.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(qd);var Qye=function(){function r(e,t){var i=this;if(t===void 0&&(t=qd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t==\"boolean\")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(qd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n==\"number\"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT(\"Lexer Constructor\",function(){var s,o=!0;i.TRACE_INIT(\"Lexer Config handling\",function(){if(i.config.lineTerminatorsPattern===qd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Vs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===qd.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('\"safeMode\" and \"ensureOptimizations\" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[Vs.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[Vs.DEFAULT_MODE]=Vs.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT(\"performRuntimeChecks\",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Vs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT(\"performWarningRuntimeChecks\",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Vs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT(\"Mode: <\"+g+\"> processing\",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT(\"validatePatterns\",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Vs.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,Iye.augmentTokenTypes)(u);var f;i.TRACE_INIT(\"analyzeTokenTypes\",function(){f=(0,Vs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`-----------------------\n`);throw new Error(`Errors detected in definition of Lexer:\n`+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT(\"Choosing sub-methods implementations\",function(){if(Vs.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid <positionTracking> config option: \"'+i.config.positionTracking+'\"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT(\"Failed Optimization Warnings\",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error(\"Lexer Modes: < \"+u.join(\", \")+` > cannot be optimized.\n\t Disable the \"ensureOptimizations\" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.\n\t Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT(\"clearRegExpParserCache\",function(){(0,wye.clearRegExpParserCache)()}),i.TRACE_INIT(\"toFastProperties\",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`-----------------------\n`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:\n`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,w,B,v,D,L=e,H=L.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),Z=[],A=this.trackStartLines?1:void 0,ae=this.trackStartLines?1:void 0,ge=(0,Vs.cloneEmptyGroups)(this.emptyGroups),_=this.trackStartLines,T=this.config.lineTerminatorsPattern,N=0,ue=[],we=[],Le=[],Pe=[];Object.freeze(Pe);var Te=void 0;function se(){return ue}function Ae(dr){var Bi=(0,Vs.charCodeToOptimizedIndex)(dr),_n=we[Bi];return _n===void 0?Pe:_n}var Qe=function(dr){if(Le.length===1&&dr.tokenType.PUSH_MODE===void 0){var Bi=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(dr);Z.push({offset:dr.startOffset,line:dr.startLine!==void 0?dr.startLine:void 0,column:dr.startColumn!==void 0?dr.startColumn:void 0,length:dr.image.length,message:Bi})}else{Le.pop();var _n=(0,nr.last)(Le);ue=i.patternIdxToConfig[_n],we=i.charCodeToPatternIdxToConfig[_n],N=ue.length;var ha=i.canModeBeOptimized[_n]&&i.config.safeMode===!1;we&&ha?Te=Ae:Te=se}};function fe(dr){Le.push(dr),we=this.charCodeToPatternIdxToConfig[dr],ue=this.patternIdxToConfig[dr],N=ue.length,N=ue.length;var Bi=this.canModeBeOptimized[dr]&&this.config.safeMode===!1;we&&Bi?Te=Ae:Te=se}fe.call(this,t);for(var le;j<H;){c=null;var Ge=L.charCodeAt(j),ie=Te(Ge),Y=ie.length;for(n=0;n<Y;n++){le=ie[n];var he=le.pattern;u=null;var re=le.short;if(re!==!1?Ge===re&&(c=he):le.isCustom===!0?(D=he.exec(L,j,W,ge),D!==null?(c=D[0],D.payload!==void 0&&(u=D.payload)):c=null):(this.updateLastIndex(he,j),c=this.match(he,e,j)),c!==null){if(l=le.longerAlt,l!==void 0){var me=l.length;for(o=0;o<me;o++){var tt=ue[l[o]],Rt=tt.pattern;if(g=null,tt.isCustom===!0?(D=Rt.exec(L,j,W,ge),D!==null?(a=D[0],D.payload!==void 0&&(g=D.payload)):a=null):(this.updateLastIndex(Rt,j),a=this.match(Rt,e,j)),a&&a.length>c.length){c=a,u=g,le=tt;break}}}break}}if(c!==null){if(f=c.length,h=le.group,h!==void 0&&(p=le.tokenTypeIdx,C=this.createTokenInstance(c,j,p,le.tokenType,A,ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,ae=this.computeNewColumn(ae,f),_===!0&&le.canLineTerminator===!0){var It=0,Kr=void 0,oi=void 0;T.lastIndex=0;do Kr=T.test(c),Kr===!0&&(oi=T.lastIndex-1,It++);while(Kr===!0);It!==0&&(A=A+It,ae=f-oi,this.updateTokenEndLineColumnLocation(C,h,oi,It,A,ae,f))}this.handleModes(le,Qe,fe,C)}else{for(var pi=j,pr=A,di=ae,ai=!1;!ai&&j<H;)for(B=L.charCodeAt(j),e=this.chopInput(e,1),j++,s=0;s<N;s++){var Os=ue[s],he=Os.pattern,re=Os.short;if(re!==!1?L.charCodeAt(j)===re&&(ai=!0):Os.isCustom===!0?ai=he.exec(L,j,W,ge)!==null:(this.updateLastIndex(he,j),ai=he.exec(e)!==null),ai===!0)break}w=j-pi,v=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(L,pi,w,pr,di),Z.push({offset:pi,line:pr,column:di,length:w,message:v})}}return this.hasCustom||(W.length=$),{tokens:W,groups:ge,errors:Z}},r.prototype.handleModes=function(e,t,i,n){if(e.pop===!0){var s=e.push;t(n),s!==void 0&&i.call(this,s)}else e.push!==void 0&&i.call(this,e.push)},r.prototype.chopInput=function(e,t){return e.substring(t)},r.prototype.updateLastIndex=function(e,t){e.lastIndex=t},r.prototype.updateTokenEndLineColumnLocation=function(e,t,i,n,s,o,a){var l,c;t!==void 0&&(l=i===a-1,c=l?-1:0,n===1&&l===!0||(e.endLine=s+c,e.endColumn=o-1+-c))},r.prototype.computeNewColumn=function(e,t){return e+t},r.prototype.createTokenInstance=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return null},r.prototype.createOffsetOnlyToken=function(e,t,i,n){return{image:e,startOffset:t,tokenTypeIdx:i,tokenType:n}},r.prototype.createStartOnlyToken=function(e,t,i,n,s,o){return{image:e,startOffset:t,startLine:s,startColumn:o,tokenTypeIdx:i,tokenType:n}},r.prototype.createFullToken=function(e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:t+a-1,startLine:s,endLine:s,startColumn:o,endColumn:o+a-1,tokenTypeIdx:i,tokenType:n}},r.prototype.addToken=function(e,t,i){return 666},r.prototype.addTokenUsingPush=function(e,t,i){return e.push(i),t},r.prototype.addTokenUsingMemberAccess=function(e,t,i){return e[t]=i,t++,t},r.prototype.handlePayload=function(e,t){},r.prototype.handlePayloadNoCustom=function(e,t){},r.prototype.handlePayloadWithCustom=function(e,t){t!==null&&(e.payload=t)},r.prototype.match=function(e,t,i){return null},r.prototype.matchWithTest=function(e,t,i){var n=e.test(t);return n===!0?t.substring(i,e.lastIndex):null},r.prototype.matchWithExec=function(e,t){var i=e.exec(t);return i!==null?i[0]:i},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(\"\t\");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+\"--> <\"+e+\">\");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+\"<-- <\"+e+\"> time: \"+s+\"ms\"),this.traceInitIndent--,o}else return t()},r.SKIPPED=\"This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.\",r.NA=/NOT_APPLICABLE/,r}();kc.Lexer=Qye});var UA=y(Si=>{\"use strict\";Object.defineProperty(Si,\"__esModule\",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var Xs=Gt(),bye=jd(),Px=pf();function Sye(r){return mq(r)?r.LABEL:r.name}Si.tokenLabel=Sye;function vye(r){return r.name}Si.tokenName=vye;function mq(r){return(0,Xs.isString)(r.LABEL)&&r.LABEL!==\"\"}Si.hasTokenLabel=mq;var xye=\"parent\",cq=\"categories\",uq=\"label\",gq=\"group\",fq=\"push_mode\",hq=\"pop_mode\",pq=\"longer_alt\",dq=\"line_breaks\",Cq=\"start_chars_hint\";function Eq(r){return Pye(r)}Si.createToken=Eq;function Pye(r){var e=r.pattern,t={};if(t.name=r.name,(0,Xs.isUndefined)(e)||(t.PATTERN=e),(0,Xs.has)(r,xye))throw`The parent property is no longer supported.\nSee: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,Xs.has)(r,cq)&&(t.CATEGORIES=r[cq]),(0,Px.augmentTokenTypes)([t]),(0,Xs.has)(r,uq)&&(t.LABEL=r[uq]),(0,Xs.has)(r,gq)&&(t.GROUP=r[gq]),(0,Xs.has)(r,hq)&&(t.POP_MODE=r[hq]),(0,Xs.has)(r,fq)&&(t.PUSH_MODE=r[fq]),(0,Xs.has)(r,pq)&&(t.LONGER_ALT=r[pq]),(0,Xs.has)(r,dq)&&(t.LINE_BREAKS=r[dq]),(0,Xs.has)(r,Cq)&&(t.START_CHARS_HINT=r[Cq]),t}Si.EOF=Eq({name:\"EOF\",pattern:bye.Lexer.NA});(0,Px.augmentTokenTypes)([Si.EOF]);function Dye(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=Dye;function kye(r,e){return(0,Px.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=kye});var Cn=y(Wt=>{\"use strict\";var Da=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,\"__esModule\",{value:!0});Wt.serializeProduction=Wt.serializeGrammar=Wt.Terminal=Wt.Alternation=Wt.RepetitionWithSeparator=Wt.Repetition=Wt.RepetitionMandatoryWithSeparator=Wt.RepetitionMandatory=Wt.Option=Wt.Alternative=Wt.Rule=Wt.NonTerminal=Wt.AbstractProduction=void 0;var lr=Gt(),Rye=UA(),ko=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,\"definition\",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,lr.forEach)(this.definition,function(t){t.accept(e)})},r}();Wt.AbstractProduction=ko;var Iq=function(r){Da(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,\"definition\",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(ko);Wt.NonTerminal=Iq;var yq=function(r){Da(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText=\"\",(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Rule=yq;var wq=function(r){Da(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Alternative=wq;var Bq=function(r){Da(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Option=Bq;var Qq=function(r){Da(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionMandatory=Qq;var bq=function(r){Da(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionMandatoryWithSeparator=bq;var Sq=function(r){Da(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Repetition=Sq;var vq=function(r){Da(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionWithSeparator=vq;var xq=function(r){Da(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,\"definition\",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(ko);Wt.Alternation=xq;var Ny=function(){function r(e){this.idx=1,(0,lr.assign)(this,(0,lr.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();Wt.Terminal=Ny;function Fye(r){return(0,lr.map)(r,Jd)}Wt.serializeGrammar=Fye;function Jd(r){function e(s){return(0,lr.map)(s,Jd)}if(r instanceof Iq){var t={type:\"NonTerminal\",name:r.nonTerminalName,idx:r.idx};return(0,lr.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof wq)return{type:\"Alternative\",definition:e(r.definition)};if(r instanceof Bq)return{type:\"Option\",idx:r.idx,definition:e(r.definition)};if(r instanceof Qq)return{type:\"RepetitionMandatory\",idx:r.idx,definition:e(r.definition)};if(r instanceof bq)return{type:\"RepetitionMandatoryWithSeparator\",idx:r.idx,separator:Jd(new Ny({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof vq)return{type:\"RepetitionWithSeparator\",idx:r.idx,separator:Jd(new Ny({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Sq)return{type:\"Repetition\",idx:r.idx,definition:e(r.definition)};if(r instanceof xq)return{type:\"Alternation\",idx:r.idx,definition:e(r.definition)};if(r instanceof Ny){var i={type:\"Terminal\",name:r.terminalType.name,label:(0,Rye.tokenLabel)(r.terminalType),idx:r.idx};(0,lr.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,lr.isRegExp)(n)?n.source:n),i}else{if(r instanceof yq)return{type:\"Rule\",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error(\"non exhaustive match\")}}}Wt.serializeProduction=Jd});var Ty=y(Ly=>{\"use strict\";Object.defineProperty(Ly,\"__esModule\",{value:!0});Ly.RestWalker=void 0;var Dx=Gt(),mn=Cn(),Nye=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Dx.forEach)(e.definition,function(n,s){var o=(0,Dx.drop)(e.definition,s+1);if(n instanceof mn.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof mn.Terminal)i.walkTerminal(n,o,t);else if(n instanceof mn.Alternative)i.walkFlat(n,o,t);else if(n instanceof mn.Option)i.walkOption(n,o,t);else if(n instanceof mn.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof mn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof mn.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof mn.Repetition)i.walkMany(n,o,t);else if(n instanceof mn.Alternation)i.walkOr(n,o,t);else throw Error(\"non exhaustive match\")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new mn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=Pq(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new mn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=Pq(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Dx.forEach)(e.definition,function(o){var a=new mn.Alternative({definition:[o]});n.walk(a,s)})},r}();Ly.RestWalker=Nye;function Pq(r,e,t){var i=[new mn.Option({definition:[new mn.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var df=y(Oy=>{\"use strict\";Object.defineProperty(Oy,\"__esModule\",{value:!0});Oy.GAstVisitor=void 0;var Ro=Cn(),Lye=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error(\"non exhaustive match\")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Oy.GAstVisitor=Lye});var zd=y(Ki=>{\"use strict\";var Tye=Ki&&Ki.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ki,\"__esModule\",{value:!0});Ki.collectMethods=Ki.DslMethodsCollectorVisitor=Ki.getProductionDslName=Ki.isBranchingProd=Ki.isOptionalProd=Ki.isSequenceProd=void 0;var Wd=Gt(),Qr=Cn(),Oye=df();function Mye(r){return r instanceof Qr.Alternative||r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionMandatory||r instanceof Qr.RepetitionMandatoryWithSeparator||r instanceof Qr.RepetitionWithSeparator||r instanceof Qr.Terminal||r instanceof Qr.Rule}Ki.isSequenceProd=Mye;function kx(r,e){e===void 0&&(e=[]);var t=r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionWithSeparator;return t?!0:r instanceof Qr.Alternation?(0,Wd.some)(r.definition,function(i){return kx(i,e)}):r instanceof Qr.NonTerminal&&(0,Wd.contains)(e,r)?!1:r instanceof Qr.AbstractProduction?(r instanceof Qr.NonTerminal&&e.push(r),(0,Wd.every)(r.definition,function(i){return kx(i,e)})):!1}Ki.isOptionalProd=kx;function Kye(r){return r instanceof Qr.Alternation}Ki.isBranchingProd=Kye;function Uye(r){if(r instanceof Qr.NonTerminal)return\"SUBRULE\";if(r instanceof Qr.Option)return\"OPTION\";if(r instanceof Qr.Alternation)return\"OR\";if(r instanceof Qr.RepetitionMandatory)return\"AT_LEAST_ONE\";if(r instanceof Qr.RepetitionMandatoryWithSeparator)return\"AT_LEAST_ONE_SEP\";if(r instanceof Qr.RepetitionWithSeparator)return\"MANY_SEP\";if(r instanceof Qr.Repetition)return\"MANY\";if(r instanceof Qr.Terminal)return\"CONSUME\";throw Error(\"non exhaustive match\")}Ki.getProductionDslName=Uye;var Dq=function(r){Tye(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator=\"-\",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+\"Terminal\";(0,Wd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+\"Terminal\";(0,Wd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(Oye.GAstVisitor);Ki.DslMethodsCollectorVisitor=Dq;var My=new Dq;function Hye(r){My.reset(),r.accept(My);var e=My.dslMethods;return My.reset(),e}Ki.collectMethods=Hye});var Fx=y(Fo=>{\"use strict\";Object.defineProperty(Fo,\"__esModule\",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var Ky=Gt(),kq=Cn(),Rx=zd();function Uy(r){if(r instanceof kq.NonTerminal)return Uy(r.referencedRule);if(r instanceof kq.Terminal)return Nq(r);if((0,Rx.isSequenceProd)(r))return Rq(r);if((0,Rx.isBranchingProd)(r))return Fq(r);throw Error(\"non exhaustive match\")}Fo.first=Uy;function Rq(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Rx.isOptionalProd)(s),e=e.concat(Uy(s)),i=i+1,n=t.length>i;return(0,Ky.uniq)(e)}Fo.firstForSequence=Rq;function Fq(r){var e=(0,Ky.map)(r.definition,function(t){return Uy(t)});return(0,Ky.uniq)((0,Ky.flatten)(e))}Fo.firstForBranching=Fq;function Nq(r){return[r.terminalType]}Fo.firstForTerminal=Nq});var Nx=y(Hy=>{\"use strict\";Object.defineProperty(Hy,\"__esModule\",{value:!0});Hy.IN=void 0;Hy.IN=\"_~IN~_\"});var Kq=y(ls=>{\"use strict\";var Gye=ls&&ls.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(ls,\"__esModule\",{value:!0});ls.buildInProdFollowPrefix=ls.buildBetweenProdsFollowPrefix=ls.computeAllProdsFollows=ls.ResyncFollowsWalker=void 0;var Yye=Ty(),jye=Fx(),Lq=Gt(),Tq=Nx(),qye=Cn(),Oq=function(r){Gye(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=Mq(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new qye.Alternative({definition:o}),l=(0,jye.first)(a);this.follows[s]=l},e}(Yye.RestWalker);ls.ResyncFollowsWalker=Oq;function Jye(r){var e={};return(0,Lq.forEach)(r,function(t){var i=new Oq(t).startWalking();(0,Lq.assign)(e,i)}),e}ls.computeAllProdsFollows=Jye;function Mq(r,e){return r.name+e+Tq.IN}ls.buildBetweenProdsFollowPrefix=Mq;function Wye(r){var e=r.terminalType.name;return e+r.idx+Tq.IN}ls.buildInProdFollowPrefix=Wye});var Vd=y(ka=>{\"use strict\";Object.defineProperty(ka,\"__esModule\",{value:!0});ka.defaultGrammarValidatorErrorProvider=ka.defaultGrammarResolverErrorProvider=ka.defaultParserErrorProvider=void 0;var Cf=UA(),zye=Gt(),_s=Gt(),Lx=Cn(),Uq=zd();ka.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,Cf.hasTokenLabel)(e),o=s?\"--> \"+(0,Cf.tokenLabel)(e)+\" <--\":\"token of type --> \"+e.name+\" <--\",a=\"Expecting \"+o+\" but found --> '\"+t.image+\"' <--\";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return\"Redundant input, expecting EOF but found: \"+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o=\"Expecting: \",a=(0,_s.first)(t).image,l=`\nbut found: '`+a+\"'\";if(n)return o+n+l;var c=(0,_s.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,_s.map)(c,function(h){return\"[\"+(0,_s.map)(h,function(p){return(0,Cf.tokenLabel)(p)}).join(\", \")+\"]\"}),g=(0,_s.map)(u,function(h,p){return\"  \"+(p+1)+\". \"+h}),f=`one of these possible Token sequences:\n`+g.join(`\n`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s=\"Expecting: \",o=(0,_s.first)(t).image,a=`\nbut found: '`+o+\"'\";if(i)return s+i+a;var l=(0,_s.map)(e,function(u){return\"[\"+(0,_s.map)(u,function(g){return(0,Cf.tokenLabel)(g)}).join(\",\")+\"]\"}),c=`expecting at least one iteration which starts with one of these possible Token sequences::\n  `+(\"<\"+l.join(\" ,\")+\">\");return s+c+a}};Object.freeze(ka.defaultParserErrorProvider);ka.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t=\"Invalid grammar, reference to a rule which is not defined: ->\"+e.nonTerminalName+`<-\ninside top level rule: ->`+r.name+\"<-\";return t}};ka.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Lx.Terminal?u.terminalType.name:u instanceof Lx.NonTerminal?u.nonTerminalName:\"\"}var i=r.name,n=(0,_s.first)(e),s=n.idx,o=(0,Uq.getProductionDslName)(n),a=t(n),l=s>0,c=\"->\"+o+(l?s:\"\")+\"<- \"+(a?\"with argument: ->\"+a+\"<-\":\"\")+`\n                  appears more than once (`+e.length+\" times) in the top level rule: ->\"+i+`<-.                  \n                  For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES \n                  `;return c=c.replace(/[ \\t]+/g,\" \"),c=c.replace(/\\s\\s+/g,`\n`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar.\n`+(\"The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <\"+r.name+`>.\n`)+`To resolve this make sure each Terminal and Non-Terminal names are unique\nThis is easy to accomplish by using the convention that Terminal names start with an uppercase letter\nand Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,Cf.tokenLabel)(n)}).join(\", \"),t=r.alternation.idx===0?\"\":r.alternation.idx,i=\"Ambiguous alternatives: <\"+r.ambiguityIndices.join(\" ,\")+`> due to common lookahead prefix\n`+(\"in <OR\"+t+\"> inside <\"+r.topLevelRule.name+`> Rule,\n`)+(\"<\"+e+`> may appears as a prefix path in all these alternatives.\n`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\nFor Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,Cf.tokenLabel)(n)}).join(\", \"),t=r.alternation.idx===0?\"\":r.alternation.idx,i=\"Ambiguous Alternatives Detected: <\"+r.ambiguityIndices.join(\" ,\")+\"> in <OR\"+t+\">\"+(\" inside <\"+r.topLevelRule.name+`> Rule,\n`)+(\"<\"+e+`> may appears as a prefix path in all these alternatives.\n`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,Uq.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t=\"The repetition <\"+e+\"> within Rule <\"+r.topLevelRule.name+`> can never consume any tokens.\nThis could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return\"deprecated\"},buildEmptyAlternationError:function(r){var e=\"Ambiguous empty alternative: <\"+(r.emptyChoiceIdx+1)+\">\"+(\" in <OR\"+r.alternation.idx+\"> inside <\"+r.topLevelRule.name+`> Rule.\n`)+\"Only the last alternative may be an empty alternative.\";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives:\n`+(\"<OR\"+r.alternation.idx+\"> inside <\"+r.topLevelRule.name+`> Rule.\n has `+(r.alternation.definition.length+1)+\" alternatives.\");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=zye.map(r.leftRecursionPath,function(s){return s.name}),i=e+\" --> \"+t.concat([e]).join(\" --> \"),n=`Left Recursion found in grammar.\n`+(\"rule: <\"+e+`> can be invoked from itself (directly or indirectly)\n`)+(`without consuming any Tokens. The grammar path that causes this is: \n `+i+`\n`)+` To fix this refactor your grammar to remove the left recursion.\nsee: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return\"deprecated\"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Lx.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t=\"Duplicate definition, rule: ->\"+e+\"<- is already defined in the grammar: ->\"+r.grammarName+\"<-\";return t}}});var Yq=y(HA=>{\"use strict\";var Vye=HA&&HA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(HA,\"__esModule\",{value:!0});HA.GastRefResolverVisitor=HA.resolveGrammar=void 0;var Xye=Hn(),Hq=Gt(),_ye=df();function Zye(r,e){var t=new Gq(r,e);return t.resolveRefs(),t.errors}HA.resolveGrammar=Zye;var Gq=function(r){Vye(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,Hq.forEach)((0,Hq.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:Xye.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(_ye.GAstVisitor);HA.GastRefResolverVisitor=Gq});var _d=y(Tr=>{\"use strict\";var Rc=Tr&&Tr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Tr,\"__esModule\",{value:!0});Tr.nextPossibleTokensAfter=Tr.possiblePathsFrom=Tr.NextTerminalAfterAtLeastOneSepWalker=Tr.NextTerminalAfterAtLeastOneWalker=Tr.NextTerminalAfterManySepWalker=Tr.NextTerminalAfterManyWalker=Tr.AbstractNextTerminalAfterProductionWalker=Tr.NextAfterTokenWalker=Tr.AbstractNextPossibleTokensWalker=void 0;var jq=Ty(),Kt=Gt(),$ye=Fx(),Dt=Cn(),qq=function(r){Rc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName=\"\",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error(\"The path does not start with the walker's top Rule!\");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName=\"\",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(jq.RestWalker);Tr.AbstractNextPossibleTokensWalker=qq;var ewe=function(r){Rc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName=\"\",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new Dt.Alternative({definition:s});this.possibleTokTypes=(0,$ye.first)(o),this.found=!0}},e}(qq);Tr.NextAfterTokenWalker=ewe;var Xd=function(r){Rc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(jq.RestWalker);Tr.AbstractNextTerminalAfterProductionWalker=Xd;var twe=function(r){Rc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(Xd);Tr.NextTerminalAfterManyWalker=twe;var rwe=function(r){Rc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(Xd);Tr.NextTerminalAfterManySepWalker=rwe;var iwe=function(r){Rc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(Xd);Tr.NextTerminalAfterAtLeastOneWalker=iwe;var nwe=function(r){Rc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(Xd);Tr.NextTerminalAfterAtLeastOneSepWalker=nwe;function Jq(r,e,t){t===void 0&&(t=[]),t=(0,Kt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(r,n+1))}function o(c){var u=Jq(s(c),e,t);return i.concat(u)}for(;t.length<e&&n<r.length;){var a=r[n];if(a instanceof Dt.Alternative)return o(a.definition);if(a instanceof Dt.NonTerminal)return o(a.definition);if(a instanceof Dt.Option)i=o(a.definition);else if(a instanceof Dt.RepetitionMandatory){var l=a.definition.concat([new Dt.Repetition({definition:a.definition})]);return o(l)}else if(a instanceof Dt.RepetitionMandatoryWithSeparator){var l=[new Dt.Alternative({definition:a.definition}),new Dt.Repetition({definition:[new Dt.Terminal({terminalType:a.separator})].concat(a.definition)})];return o(l)}else if(a instanceof Dt.RepetitionWithSeparator){var l=a.definition.concat([new Dt.Repetition({definition:[new Dt.Terminal({terminalType:a.separator})].concat(a.definition)})]);i=o(l)}else if(a instanceof Dt.Repetition){var l=a.definition.concat([new Dt.Repetition({definition:a.definition})]);i=o(l)}else{if(a instanceof Dt.Alternation)return(0,Kt.forEach)(a.definition,function(c){(0,Kt.isEmpty)(c.definition)===!1&&(i=o(c.definition))}),i;if(a instanceof Dt.Terminal)t.push(a.terminalType);else throw Error(\"non exhaustive match\")}n++}return i.push({partialPath:t,suffixDef:(0,Kt.drop)(r,n)}),i}Tr.possiblePathsFrom=Jq;function swe(r,e,t,i){var n=\"EXIT_NONE_TERMINAL\",s=[n],o=\"EXIT_ALTERNATIVE\",a=!1,l=e.length,c=l-i-1,u=[],g=[];for(g.push({idx:-1,def:r,ruleStack:[],occurrenceStack:[]});!(0,Kt.isEmpty)(g);){var f=g.pop();if(f===o){a&&(0,Kt.last)(g).idx<=c&&g.pop();continue}var h=f.def,p=f.idx,C=f.ruleStack,w=f.occurrenceStack;if(!(0,Kt.isEmpty)(h)){var B=h[0];if(B===n){var v={idx:p,def:(0,Kt.drop)(h),ruleStack:(0,Kt.dropRight)(C),occurrenceStack:(0,Kt.dropRight)(w)};g.push(v)}else if(B instanceof Dt.Terminal)if(p<l-1){var D=p+1,L=e[D];if(t(L,B.terminalType)){var v={idx:D,def:(0,Kt.drop)(h),ruleStack:C,occurrenceStack:w};g.push(v)}}else if(p===l-1)u.push({nextTokenType:B.terminalType,nextTokenOccurrence:B.idx,ruleStack:C,occurrenceStack:w}),a=!0;else throw Error(\"non exhaustive match\");else if(B instanceof Dt.NonTerminal){var H=(0,Kt.cloneArr)(C);H.push(B.nonTerminalName);var j=(0,Kt.cloneArr)(w);j.push(B.idx);var v={idx:p,def:B.definition.concat(s,(0,Kt.drop)(h)),ruleStack:H,occurrenceStack:j};g.push(v)}else if(B instanceof Dt.Option){var $={idx:p,def:(0,Kt.drop)(h),ruleStack:C,occurrenceStack:w};g.push($),g.push(o);var V={idx:p,def:B.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:w};g.push(V)}else if(B instanceof Dt.RepetitionMandatory){var W=new Dt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([W],(0,Kt.drop)(h)),v={idx:p,def:Z,ruleStack:C,occurrenceStack:w};g.push(v)}else if(B instanceof Dt.RepetitionMandatoryWithSeparator){var A=new Dt.Terminal({terminalType:B.separator}),W=new Dt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([W],(0,Kt.drop)(h)),v={idx:p,def:Z,ruleStack:C,occurrenceStack:w};g.push(v)}else if(B instanceof Dt.RepetitionWithSeparator){var $={idx:p,def:(0,Kt.drop)(h),ruleStack:C,occurrenceStack:w};g.push($),g.push(o);var A=new Dt.Terminal({terminalType:B.separator}),ae=new Dt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([ae],(0,Kt.drop)(h)),V={idx:p,def:Z,ruleStack:C,occurrenceStack:w};g.push(V)}else if(B instanceof Dt.Repetition){var $={idx:p,def:(0,Kt.drop)(h),ruleStack:C,occurrenceStack:w};g.push($),g.push(o);var ae=new Dt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([ae],(0,Kt.drop)(h)),V={idx:p,def:Z,ruleStack:C,occurrenceStack:w};g.push(V)}else if(B instanceof Dt.Alternation)for(var ge=B.definition.length-1;ge>=0;ge--){var _=B.definition[ge],T={idx:p,def:_.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:w};g.push(T),g.push(o)}else if(B instanceof Dt.Alternative)g.push({idx:p,def:B.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:w});else if(B instanceof Dt.Rule)g.push(owe(B,p,C,w));else throw Error(\"non exhaustive match\")}}return u}Tr.nextPossibleTokensAfter=swe;function owe(r,e,t,i){var n=(0,Kt.cloneArr)(t);n.push(r.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Zd=y(_t=>{\"use strict\";var Vq=_t&&_t.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(_t,\"__esModule\",{value:!0});_t.areTokenCategoriesNotUsed=_t.isStrictPrefixOfPath=_t.containsPath=_t.getLookaheadPathsForOptionalProd=_t.getLookaheadPathsForOr=_t.lookAheadSequenceFromAlternatives=_t.buildSingleAlternativeLookaheadFunction=_t.buildAlternativesLookAheadFunc=_t.buildLookaheadFuncForOptionalProd=_t.buildLookaheadFuncForOr=_t.getProdType=_t.PROD_TYPE=void 0;var sr=Gt(),Wq=_d(),awe=Ty(),Gy=pf(),GA=Cn(),Awe=df(),li;(function(r){r[r.OPTION=0]=\"OPTION\",r[r.REPETITION=1]=\"REPETITION\",r[r.REPETITION_MANDATORY=2]=\"REPETITION_MANDATORY\",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]=\"REPETITION_MANDATORY_WITH_SEPARATOR\",r[r.REPETITION_WITH_SEPARATOR=4]=\"REPETITION_WITH_SEPARATOR\",r[r.ALTERNATION=5]=\"ALTERNATION\"})(li=_t.PROD_TYPE||(_t.PROD_TYPE={}));function lwe(r){if(r instanceof GA.Option)return li.OPTION;if(r instanceof GA.Repetition)return li.REPETITION;if(r instanceof GA.RepetitionMandatory)return li.REPETITION_MANDATORY;if(r instanceof GA.RepetitionMandatoryWithSeparator)return li.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof GA.RepetitionWithSeparator)return li.REPETITION_WITH_SEPARATOR;if(r instanceof GA.Alternation)return li.ALTERNATION;throw Error(\"non exhaustive match\")}_t.getProdType=lwe;function cwe(r,e,t,i,n,s){var o=_q(r,e,t),a=Mx(o)?Gy.tokenStructuredMatcherNoCategories:Gy.tokenStructuredMatcher;return s(o,i,a,n)}_t.buildLookaheadFuncForOr=cwe;function uwe(r,e,t,i,n,s){var o=Zq(r,e,n,t),a=Mx(o)?Gy.tokenStructuredMatcherNoCategories:Gy.tokenStructuredMatcher;return s(o[0],a,i)}_t.buildLookaheadFuncForOptionalProd=uwe;function gwe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u<n;u++){var g=r[u],f=g.length,h=c[u];if(h!==void 0&&h.call(this)===!1)continue;e:for(var p=0;p<f;p++){for(var C=g[p],w=C.length,B=0;B<w;B++){var v=this.LA(B+1);if(t(v,C[B])===!1)continue e}return u}}};if(s&&!i){var o=(0,sr.map)(r,function(l){return(0,sr.flatten)(l)}),a=(0,sr.reduce)(o,function(l,c,u){return(0,sr.forEach)(c,function(g){(0,sr.has)(l,g.tokenTypeIdx)||(l[g.tokenTypeIdx]=u),(0,sr.forEach)(g.categoryMatches,function(f){(0,sr.has)(l,f)||(l[f]=u)})}),l},[]);return function(){var l=this.LA(1);return a[l.tokenTypeIdx]}}else return function(){for(var l=0;l<n;l++){var c=r[l],u=c.length;e:for(var g=0;g<u;g++){for(var f=c[g],h=f.length,p=0;p<h;p++){var C=this.LA(p+1);if(t(C,f[p])===!1)continue e}return l}}}}_t.buildAlternativesLookAheadFunc=gwe;function fwe(r,e,t){var i=(0,sr.every)(r,function(c){return c.length===1}),n=r.length;if(i&&!t){var s=(0,sr.flatten)(r);if(s.length===1&&(0,sr.isEmpty)(s[0].categoryMatches)){var o=s[0],a=o.tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===a}}else{var l=(0,sr.reduce)(s,function(c,u,g){return c[u.tokenTypeIdx]=!0,(0,sr.forEach)(u.categoryMatches,function(f){c[f]=!0}),c},[]);return function(){var c=this.LA(1);return l[c.tokenTypeIdx]===!0}}}else return function(){e:for(var c=0;c<n;c++){for(var u=r[c],g=u.length,f=0;f<g;f++){var h=this.LA(f+1);if(e(h,u[f])===!1)continue e}return!0}return!1}}_t.buildSingleAlternativeLookaheadFunction=fwe;var hwe=function(r){Vq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.topProd=t,s.targetOccurrence=i,s.targetProdType=n,s}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.restDef},e.prototype.checkIsTarget=function(t,i,n,s){return t.idx===this.targetOccurrence&&this.targetProdType===i?(this.restDef=n.concat(s),!0):!1},e.prototype.walkOption=function(t,i,n){this.checkIsTarget(t,li.OPTION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOne=function(t,i,n){this.checkIsTarget(t,li.REPETITION_MANDATORY,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOneSep=function(t,i,n){this.checkIsTarget(t,li.REPETITION_MANDATORY_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkMany=function(t,i,n){this.checkIsTarget(t,li.REPETITION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkManySep=function(t,i,n){this.checkIsTarget(t,li.REPETITION_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e}(awe.RestWalker),Xq=function(r){Vq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.targetOccurrence=t,s.targetProdType=i,s.targetRef=n,s.result=[],s}return e.prototype.checkIsTarget=function(t,i){t.idx===this.targetOccurrence&&this.targetProdType===i&&(this.targetRef===void 0||t===this.targetRef)&&(this.result=t.definition)},e.prototype.visitOption=function(t){this.checkIsTarget(t,li.OPTION)},e.prototype.visitRepetition=function(t){this.checkIsTarget(t,li.REPETITION)},e.prototype.visitRepetitionMandatory=function(t){this.checkIsTarget(t,li.REPETITION_MANDATORY)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.checkIsTarget(t,li.REPETITION_MANDATORY_WITH_SEPARATOR)},e.prototype.visitRepetitionWithSeparator=function(t){this.checkIsTarget(t,li.REPETITION_WITH_SEPARATOR)},e.prototype.visitAlternation=function(t){this.checkIsTarget(t,li.ALTERNATION)},e}(Awe.GAstVisitor);function zq(r){for(var e=new Array(r),t=0;t<r;t++)e[t]=[];return e}function Tx(r){for(var e=[\"\"],t=0;t<r.length;t++){for(var i=r[t],n=[],s=0;s<e.length;s++){var o=e[s];n.push(o+\"_\"+i.tokenTypeIdx);for(var a=0;a<i.categoryMatches.length;a++){var l=\"_\"+i.categoryMatches[a];n.push(o+l)}}e=n}return e}function pwe(r,e,t){for(var i=0;i<r.length;i++)if(i!==t)for(var n=r[i],s=0;s<e.length;s++){var o=e[s];if(n[o]===!0)return!1}return!0}function Ox(r,e){for(var t=(0,sr.map)(r,function(u){return(0,Wq.possiblePathsFrom)([u],1)}),i=zq(t.length),n=(0,sr.map)(t,function(u){var g={};return(0,sr.forEach)(u,function(f){var h=Tx(f.partialPath);(0,sr.forEach)(h,function(p){g[p]=!0})}),g}),s=t,o=1;o<=e;o++){var a=s;s=zq(a.length);for(var l=function(u){for(var g=a[u],f=0;f<g.length;f++){var h=g[f].partialPath,p=g[f].suffixDef,C=Tx(h),w=pwe(n,C,u);if(w||(0,sr.isEmpty)(p)||h.length===e){var B=i[u];if($q(B,h)===!1){B.push(h);for(var v=0;v<C.length;v++){var D=C[v];n[u][D]=!0}}}else{var L=(0,Wq.possiblePathsFrom)(p,o+1,h);s[u]=s[u].concat(L),(0,sr.forEach)(L,function(H){var j=Tx(H.partialPath);(0,sr.forEach)(j,function($){n[u][$]=!0})})}}},c=0;c<a.length;c++)l(c)}return i}_t.lookAheadSequenceFromAlternatives=Ox;function _q(r,e,t,i){var n=new Xq(r,li.ALTERNATION,i);return e.accept(n),Ox(n.result,t)}_t.getLookaheadPathsForOr=_q;function Zq(r,e,t,i){var n=new Xq(r,t);e.accept(n);var s=n.result,o=new hwe(e,r,t),a=o.startWalking(),l=new GA.Alternative({definition:s}),c=new GA.Alternative({definition:a});return Ox([l,c],i)}_t.getLookaheadPathsForOptionalProd=Zq;function $q(r,e){e:for(var t=0;t<r.length;t++){var i=r[t];if(i.length===e.length){for(var n=0;n<i.length;n++){var s=e[n],o=i[n],a=s===o||o.categoryMatchesMap[s.tokenTypeIdx]!==void 0;if(a===!1)continue e}return!0}}return!1}_t.containsPath=$q;function dwe(r,e){return r.length<e.length&&(0,sr.every)(r,function(t,i){var n=e[i];return t===n||n.categoryMatchesMap[t.tokenTypeIdx]})}_t.isStrictPrefixOfPath=dwe;function Mx(r){return(0,sr.every)(r,function(e){return(0,sr.every)(e,function(t){return(0,sr.every)(t,function(i){return(0,sr.isEmpty)(i.categoryMatches)})})})}_t.areTokenCategoriesNotUsed=Mx});var jx=y(zt=>{\"use strict\";var Kx=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,\"__esModule\",{value:!0});zt.checkPrefixAlternativesAmbiguities=zt.validateSomeNonEmptyLookaheadPath=zt.validateTooManyAlts=zt.RepetionCollector=zt.validateAmbiguousAlternationAlternatives=zt.validateEmptyOrAlternative=zt.getFirstNoneTerminal=zt.validateNoLeftRecursion=zt.validateRuleIsOverridden=zt.validateRuleDoesNotAlreadyExist=zt.OccurrenceValidationCollector=zt.identifyProductionForDuplicates=zt.validateGrammar=void 0;var er=Gt(),br=Gt(),No=Hn(),Ux=zd(),mf=Zd(),Cwe=_d(),Zs=Cn(),Hx=df();function mwe(r,e,t,i,n){var s=er.map(r,function(h){return Ewe(h,i)}),o=er.map(r,function(h){return Gx(h,h,i)}),a=[],l=[],c=[];(0,br.every)(o,br.isEmpty)&&(a=(0,br.map)(r,function(h){return nJ(h,i)}),l=(0,br.map)(r,function(h){return sJ(h,e,i)}),c=AJ(r,e,i));var u=wwe(r,t,i),g=(0,br.map)(r,function(h){return aJ(h,i)}),f=(0,br.map)(r,function(h){return iJ(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}zt.validateGrammar=mwe;function Ewe(r,e){var t=new rJ;r.accept(t);var i=t.allProductions,n=er.groupBy(i,eJ),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,Ux.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=tJ(l);return f&&(g.parameter=f),g});return o}function eJ(r){return(0,Ux.getProductionDslName)(r)+\"_#_\"+r.idx+\"_#_\"+tJ(r)}zt.identifyProductionForDuplicates=eJ;function tJ(r){return r instanceof Zs.Terminal?r.terminalType.name:r instanceof Zs.NonTerminal?r.nonTerminalName:\"\"}var rJ=function(r){Kx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}(Hx.GAstVisitor);zt.OccurrenceValidationCollector=rJ;function iJ(r,e,t,i){var n=[],s=(0,br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}zt.validateRuleDoesNotAlreadyExist=iJ;function Iwe(r,e,t){var i=[],n;return er.contains(e,r)||(n=\"Invalid rule override, rule: ->\"+r+\"<- cannot be overridden in the grammar: ->\"+t+\"<-as it is not defined in any of the super grammars \",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}zt.validateRuleIsOverridden=Iwe;function Gx(r,e,t,i){i===void 0&&(i=[]);var n=[],s=$d(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),Gx(r,u,t,g)});return n.concat(er.flatten(c))}zt.validateNoLeftRecursion=Gx;function $d(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof Zs.NonTerminal)e.push(t.referencedRule);else if(t instanceof Zs.Alternative||t instanceof Zs.Option||t instanceof Zs.RepetitionMandatory||t instanceof Zs.RepetitionMandatoryWithSeparator||t instanceof Zs.RepetitionWithSeparator||t instanceof Zs.Repetition)e=e.concat($d(t.definition));else if(t instanceof Zs.Alternation)e=er.flatten(er.map(t.definition,function(o){return $d(o.definition)}));else if(!(t instanceof Zs.Terminal))throw Error(\"non exhaustive match\");var i=(0,Ux.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat($d(s))}else return e}zt.getFirstNoneTerminal=$d;var Yx=function(r){Kx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}(Hx.GAstVisitor);function nJ(r,e){var t=new Yx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,Cwe.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}zt.validateEmptyOrAlternative=nJ;function sJ(r,e,t){var i=new Yx;r.accept(i);var n=i.alternations;n=(0,br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,mf.getLookaheadPathsForOr)(l,r,c,a),g=ywe(u,a,r,t),f=lJ(u,a,r,t);return o.concat(g,f)},[]);return s}zt.validateAmbiguousAlternationAlternatives=sJ;var oJ=function(r){Kx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}(Hx.GAstVisitor);zt.RepetionCollector=oJ;function aJ(r,e){var t=new Yx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}zt.validateTooManyAlts=aJ;function AJ(r,e,t){var i=[];return(0,br.forEach)(r,function(n){var s=new oJ;n.accept(s);var o=s.allProductions;(0,br.forEach)(o,function(a){var l=(0,mf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,mf.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,br.isEmpty)((0,br.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}zt.validateSomeNonEmptyLookaheadPath=AJ;function ywe(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,br.forEach)(l,function(u){var g=[c];(0,br.forEach)(r,function(f,h){c!==h&&(0,mf.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,mf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function lJ(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(o,a,l){var c=(0,br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,br.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx<l&&(0,mf.isStrictPrefixOfPath)(f.path,c)}),g=(0,br.map)(u,function(f){var h=[f.idx+1,l+1],p=e.idx===0?\"\":e.idx,C=i.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:h,prefixPath:f.path});return{message:C,type:No.ParserDefinitionErrorType.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:p,alternatives:h}});n=n.concat(g)}}),n}zt.checkPrefixAlternativesAmbiguities=lJ;function wwe(r,e,t){var i=[],n=(0,br.map)(e,function(s){return s.name});return(0,br.forEach)(r,function(s){var o=s.name;if((0,br.contains)(n,o)){var a=t.buildNamespaceConflictError(s);i.push({message:a,type:No.ParserDefinitionErrorType.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:o})}}),i}});var uJ=y(Ef=>{\"use strict\";Object.defineProperty(Ef,\"__esModule\",{value:!0});Ef.validateGrammar=Ef.resolveGrammar=void 0;var qx=Gt(),Bwe=Yq(),Qwe=jx(),cJ=Vd();function bwe(r){r=(0,qx.defaults)(r,{errMsgProvider:cJ.defaultGrammarResolverErrorProvider});var e={};return(0,qx.forEach)(r.rules,function(t){e[t.name]=t}),(0,Bwe.resolveGrammar)(e,r.errMsgProvider)}Ef.resolveGrammar=bwe;function Swe(r){return r=(0,qx.defaults)(r,{errMsgProvider:cJ.defaultGrammarValidatorErrorProvider}),(0,Qwe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}Ef.validateGrammar=Swe});var If=y(En=>{\"use strict\";var eC=En&&En.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(En,\"__esModule\",{value:!0});En.EarlyExitException=En.NotAllInputParsedException=En.NoViableAltException=En.MismatchedTokenException=En.isRecognitionException=void 0;var vwe=Gt(),gJ=\"MismatchedTokenException\",fJ=\"NoViableAltException\",hJ=\"EarlyExitException\",pJ=\"NotAllInputParsedException\",dJ=[gJ,fJ,hJ,pJ];Object.freeze(dJ);function xwe(r){return(0,vwe.contains)(dJ,r.name)}En.isRecognitionException=xwe;var Yy=function(r){eC(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),Pwe=function(r){eC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=gJ,s}return e}(Yy);En.MismatchedTokenException=Pwe;var Dwe=function(r){eC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=fJ,s}return e}(Yy);En.NoViableAltException=Dwe;var kwe=function(r){eC(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=pJ,n}return e}(Yy);En.NotAllInputParsedException=kwe;var Rwe=function(r){eC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=hJ,s}return e}(Yy);En.EarlyExitException=Rwe});var Wx=y(Ui=>{\"use strict\";Object.defineProperty(Ui,\"__esModule\",{value:!0});Ui.attemptInRepetitionRecovery=Ui.Recoverable=Ui.InRuleRecoveryException=Ui.IN_RULE_RECOVERY_EXCEPTION=Ui.EOF_FOLLOW_KEY=void 0;var jy=UA(),cs=Gt(),Fwe=If(),Nwe=Nx(),Lwe=Hn();Ui.EOF_FOLLOW_KEY={};Ui.IN_RULE_RECOVERY_EXCEPTION=\"InRuleRecoveryException\";function Jx(r){this.name=Ui.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ui.InRuleRecoveryException=Jx;Jx.prototype=Error.prototype;var Twe=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,cs.has)(e,\"recoveryEnabled\")?e.recoveryEnabled:Lwe.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=CJ)},r.prototype.getTokenToInsert=function(e){var t=(0,jy.createTokenInstance)(e,\"\",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),C=new Fwe.MismatchedTokenException(p,u,s.LA(0));C.resyncedTokens=(0,cs.dropRight)(l),s.SAVE_ERROR(C)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new Jx(\"sad sad panda\")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,cs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,cs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,cs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,cs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ui.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,cs.map)(t,function(n,s){return s===0?Ui.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,cs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,cs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ui.EOF_FOLLOW_KEY)return[jy.EOF];var t=e.ruleName+e.idxInCallingRule+Nwe.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,jy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,cs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,cs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,cs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ui.Recoverable=Twe;function CJ(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=jy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Ui.attemptInRepetitionRecovery=CJ});var qy=y(qt=>{\"use strict\";Object.defineProperty(qt,\"__esModule\",{value:!0});qt.getKeyForAutomaticLookahead=qt.AT_LEAST_ONE_SEP_IDX=qt.MANY_SEP_IDX=qt.AT_LEAST_ONE_IDX=qt.MANY_IDX=qt.OPTION_IDX=qt.OR_IDX=qt.BITS_FOR_ALT_IDX=qt.BITS_FOR_RULE_IDX=qt.BITS_FOR_OCCURRENCE_IDX=qt.BITS_FOR_METHOD_TYPE=void 0;qt.BITS_FOR_METHOD_TYPE=4;qt.BITS_FOR_OCCURRENCE_IDX=8;qt.BITS_FOR_RULE_IDX=12;qt.BITS_FOR_ALT_IDX=8;qt.OR_IDX=1<<qt.BITS_FOR_OCCURRENCE_IDX;qt.OPTION_IDX=2<<qt.BITS_FOR_OCCURRENCE_IDX;qt.MANY_IDX=3<<qt.BITS_FOR_OCCURRENCE_IDX;qt.AT_LEAST_ONE_IDX=4<<qt.BITS_FOR_OCCURRENCE_IDX;qt.MANY_SEP_IDX=5<<qt.BITS_FOR_OCCURRENCE_IDX;qt.AT_LEAST_ONE_SEP_IDX=6<<qt.BITS_FOR_OCCURRENCE_IDX;function Owe(r,e,t){return t|e|r}qt.getKeyForAutomaticLookahead=Owe;var ntt=32-qt.BITS_FOR_ALT_IDX});var EJ=y(Jy=>{\"use strict\";Object.defineProperty(Jy,\"__esModule\",{value:!0});Jy.LooksAhead=void 0;var Ra=Zd(),$s=Gt(),mJ=Hn(),Fa=qy(),Fc=zd(),Mwe=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,$s.has)(e,\"dynamicTokensEnabled\")?e.dynamicTokensEnabled:mJ.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,$s.has)(e,\"maxLookahead\")?e.maxLookahead:mJ.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,$s.isES2015MapSupported)()?new Map:[],(0,$s.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,$s.forEach)(e,function(i){t.TRACE_INIT(i.name+\" Rule Lookahead\",function(){var n=(0,Fc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,$s.forEach)(s,function(g){var f=g.idx===0?\"\":g.idx;t.TRACE_INIT(\"\"+(0,Fc.getProductionDslName)(g)+f,function(){var h=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,$s.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,Fc.getProductionDslName)(g))}),(0,$s.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,Fc.getProductionDslName)(g))}),(0,$s.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Fc.getProductionDslName)(g))}),(0,$s.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Fc.getProductionDslName)(g))}),(0,$s.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Fc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(\"\"+o+(t===0?\"\":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Jy.LooksAhead=Mwe});var IJ=y(Lo=>{\"use strict\";Object.defineProperty(Lo,\"__esModule\",{value:!0});Lo.addNoneTerminalToCst=Lo.addTerminalToCst=Lo.setNodeLocationFull=Lo.setNodeLocationOnlyOffset=void 0;function Kwe(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset)}Lo.setNodeLocationOnlyOffset=Kwe;function Uwe(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.startColumn=e.startColumn,r.startLine=e.startLine,r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine)}Lo.setNodeLocationFull=Uwe;function Hwe(r,e,t){r.children[t]===void 0?r.children[t]=[e]:r.children[t].push(e)}Lo.addTerminalToCst=Hwe;function Gwe(r,e,t){r.children[e]===void 0?r.children[e]=[t]:r.children[e].push(t)}Lo.addNoneTerminalToCst=Gwe});var zx=y(YA=>{\"use strict\";Object.defineProperty(YA,\"__esModule\",{value:!0});YA.defineNameProp=YA.functionName=YA.classNameFromInstance=void 0;var Ywe=Gt();function jwe(r){return wJ(r.constructor)}YA.classNameFromInstance=jwe;var yJ=\"name\";function wJ(r){var e=r.name;return e||\"anonymous\"}YA.functionName=wJ;function qwe(r,e){var t=Object.getOwnPropertyDescriptor(r,yJ);return(0,Ywe.isUndefined)(t)||t.configurable?(Object.defineProperty(r,yJ,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}YA.defineNameProp=qwe});var vJ=y(vi=>{\"use strict\";Object.defineProperty(vi,\"__esModule\",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var us=Gt(),tC=zx();function BJ(r,e){for(var t=(0,us.keys)(r),i=t.length,n=0;n<i;n++)for(var s=t[n],o=r[s],a=o.length,l=0;l<a;l++){var c=o[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,e)}}vi.defaultVisit=BJ;function Jwe(r,e){var t=function(){};(0,tC.defineNameProp)(t,r+\"BaseSemantics\");var i={visit:function(n,s){if((0,us.isArray)(n)&&(n=n[0]),!(0,us.isUndefined)(n))return this[n.name](n.children,s)},validateVisitor:function(){var n=QJ(this,e);if(!(0,us.isEmpty)(n)){var s=(0,us.map)(n,function(o){return o.msg});throw Error(\"Errors Detected in CST Visitor <\"+(0,tC.functionName)(this.constructor)+`>:\n\t`+(\"\"+s.join(`\n\n`).replace(/\\n/g,`\n\t`)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Jwe;function Wwe(r,e,t){var i=function(){};(0,tC.defineNameProp)(i,r+\"BaseSemanticsWithDefaults\");var n=Object.create(t.prototype);return(0,us.forEach)(e,function(s){n[s]=BJ}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=Wwe;var Vx;(function(r){r[r.REDUNDANT_METHOD=0]=\"REDUNDANT_METHOD\",r[r.MISSING_METHOD=1]=\"MISSING_METHOD\"})(Vx=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function QJ(r,e){var t=bJ(r,e),i=SJ(r,e);return t.concat(i)}vi.validateVisitor=QJ;function bJ(r,e){var t=(0,us.map)(e,function(i){if(!(0,us.isFunction)(r[i]))return{msg:\"Missing visitor method: <\"+i+\"> on \"+(0,tC.functionName)(r.constructor)+\" CST Visitor.\",type:Vx.MISSING_METHOD,methodName:i}});return(0,us.compact)(t)}vi.validateMissingCstMethods=bJ;var zwe=[\"constructor\",\"visit\",\"validateVisitor\"];function SJ(r,e){var t=[];for(var i in r)(0,us.isFunction)(r[i])&&!(0,us.contains)(zwe,i)&&!(0,us.contains)(e,i)&&t.push({msg:\"Redundant visitor method: <\"+i+\"> on \"+(0,tC.functionName)(r.constructor)+` CST Visitor\nThere is no Grammar Rule corresponding to this method's name.\n`,type:Vx.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=SJ});var PJ=y(Wy=>{\"use strict\";Object.defineProperty(Wy,\"__esModule\",{value:!0});Wy.TreeBuilder=void 0;var yf=IJ(),ti=Gt(),xJ=vJ(),Vwe=Hn(),Xwe=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,ti.has)(e,\"nodeLocationTracking\")?e.nodeLocationTracking:Vwe.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ti.NOOP,this.cstFinallyStateUpdate=ti.NOOP,this.cstPostTerminal=ti.NOOP,this.cstPostNonTerminal=ti.NOOP,this.cstPostRule=ti.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=yf.setNodeLocationFull,this.setNodeLocationFromNode=yf.setNodeLocationFull,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=yf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=yf.setNodeLocationOnlyOffset,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=ti.NOOP;else throw Error('Invalid <nodeLocationTracking> config option: \"'+e.nodeLocationTracking+'\"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,yf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,yf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,ti.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,xJ.createBaseSemanticVisitorConstructor)(this.className,(0,ti.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,ti.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,xJ.createBaseVisitorConstructorWithDefaults)(this.className,(0,ti.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();Wy.TreeBuilder=Xwe});var kJ=y(zy=>{\"use strict\";Object.defineProperty(zy,\"__esModule\",{value:!0});zy.LexerAdapter=void 0;var DJ=Hn(),_we=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,\"input\",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error(\"Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.\");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):DJ.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?DJ.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();zy.LexerAdapter=_we});var FJ=y(Vy=>{\"use strict\";Object.defineProperty(Vy,\"__esModule\",{value:!0});Vy.RecognizerApi=void 0;var RJ=Gt(),Zwe=If(),Xx=Hn(),$we=Vd(),eBe=jx(),tBe=Cn(),rBe=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Xx.DEFAULT_RULE_CONFIG),(0,RJ.contains)(this.definedRulesNames,e)){var n=$we.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Xx.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Xx.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,eBe.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Zwe.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,tBe.serializeGrammar)((0,RJ.values)(this.gastProductionsCache))},r}();Vy.RecognizerApi=rBe});var OJ=y(_y=>{\"use strict\";Object.defineProperty(_y,\"__esModule\",{value:!0});_y.RecognizerEngine=void 0;var Dr=Gt(),Gn=qy(),Xy=If(),NJ=Zd(),wf=_d(),LJ=Hn(),iBe=Wx(),TJ=UA(),rC=pf(),nBe=zx(),sBe=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,nBe.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=rC.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Dr.has)(t,\"serializedGrammar\"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n\tFor Further details.`);if((0,Dr.isArray)(e)){if((0,Dr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty.\n\tNote that the first argument for the parser constructor\n\tis no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset==\"number\")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n\tFor Further details.`)}if((0,Dr.isArray)(e))this.tokensMap=(0,Dr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Dr.has)(e,\"modes\")&&(0,Dr.every)((0,Dr.flatten)((0,Dr.values)(e.modes)),rC.isTokenType)){var i=(0,Dr.flatten)((0,Dr.values)(e.modes)),n=(0,Dr.uniq)(i);this.tokensMap=(0,Dr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Dr.isObject)(e))this.tokensMap=(0,Dr.cloneObj)(e);else throw new Error(\"<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition\");this.tokensMap.EOF=TJ.EOF;var s=(0,Dr.every)((0,Dr.values)(e),function(o){return(0,Dr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?rC.tokenStructuredMatcherNoCategories:rC.tokenStructuredMatcher,(0,rC.augmentTokenTypes)((0,Dr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error(\"Grammar rule <\"+e+`> may not be defined after the 'performSelfAnalysis' method has been called'\nMake sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Dr.has)(i,\"resyncEnabled\")?i.resyncEnabled:LJ.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Dr.has)(i,\"recoveryValueFunc\")?i.recoveryValueFunc:LJ.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<<Gn.BITS_FOR_METHOD_TYPE+Gn.BITS_FOR_OCCURRENCE_IDX;this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=e,this.fullRuleNameToShort[e]=o;function a(u){try{if(this.outputCst===!0){t.apply(this,u);var g=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(g),g}else return t.apply(this,u)}catch(f){return this.invokeRuleCatch(f,n,s)}finally{this.ruleFinallyStateUpdate()}}var l=function(u,g){return u===void 0&&(u=0),this.ruleInvocationStateUpdate(o,e,u),a.call(this,g)},c=\"ruleName\";return l[c]=e,l.originalGrammarAction=t,l},r.prototype.invokeRuleCatch=function(e,t,i){var n=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if((0,Xy.isRecognitionException)(e)){var o=e;if(s){var a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(o.resyncedTokens=this.reSyncTo(a),this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return i();else{if(this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,o.partialCstResult=l}throw o}}else{if(n)return this.moveToTerminatedState(),i();throw o}}else throw e},r.prototype.optionInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.OPTION_IDX,t);return this.optionInternalLogic(e,t,i)},r.prototype.optionInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(e.DEF!==void 0){if(o=e.DEF,a=e.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=e;if(s.call(this)===!0)return o.call(this)},r.prototype.atLeastOneInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.AT_LEAST_ONE_IDX,e);return this.atLeastOneInternalLogic(e,t,i)},r.prototype.atLeastOneInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;if(s.call(this)===!0)for(var c=this.doSingleRepetition(o);s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);else throw this.raiseEarlyExitException(e,NJ.PROD_TYPE.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],s,Gn.AT_LEAST_ONE_IDX,e,wf.NextTerminalAfterAtLeastOneWalker)},r.prototype.atLeastOneSepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.AT_LEAST_ONE_SEP_IDX,e);this.atLeastOneSepFirstInternalLogic(e,t,i)},r.prototype.atLeastOneSepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,wf.NextTerminalAfterAtLeastOneSepWalker],l,Gn.AT_LEAST_ONE_SEP_IDX,e,wf.NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,NJ.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)},r.prototype.manyInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.MANY_IDX,e);return this.manyInternalLogic(e,t,i)},r.prototype.manyInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;for(var c=!0;s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],s,Gn.MANY_IDX,e,wf.NextTerminalAfterManyWalker,c)},r.prototype.manySepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.MANY_SEP_IDX,e);this.manySepFirstInternalLogic(e,t,i)},r.prototype.manySepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,wf.NextTerminalAfterManySepWalker],l,Gn.MANY_SEP_IDX,e,wf.NextTerminalAfterManySepWalker)}},r.prototype.repetitionSepSecondInternal=function(e,t,i,n,s){for(;i();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,i,n,s],i,Gn.AT_LEAST_ONE_SEP_IDX,e,s)},r.prototype.doSingleRepetition=function(e){var t=this.getLexerPosition();e.call(this);var i=this.getLexerPosition();return i>t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.OR_IDX,t),n=(0,Dr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Xy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,Xy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Xy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name===\"MismatchedTokenException\"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===iBe.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Dr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),TJ.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();_y.RecognizerEngine=sBe});var KJ=y(Zy=>{\"use strict\";Object.defineProperty(Zy,\"__esModule\",{value:!0});Zy.ErrorHandler=void 0;var _x=If(),Zx=Gt(),MJ=Zd(),oBe=Hn(),aBe=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,Zx.has)(e,\"errorMessageProvider\")?e.errorMessageProvider:oBe.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,_x.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,Zx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error(\"Trying to save an Error which is not a RecognitionException\")},Object.defineProperty(r.prototype,\"errors\",{get:function(){return(0,Zx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,MJ.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new _x.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,MJ.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new _x.NoViableAltException(c,this.LA(1),l))},r}();Zy.ErrorHandler=aBe});var GJ=y($y=>{\"use strict\";Object.defineProperty($y,\"__esModule\",{value:!0});$y.ContentAssist=void 0;var UJ=_d(),HJ=Gt(),ABe=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,HJ.isUndefined)(i))throw Error(\"Rule ->\"+e+\"<- does not exist in this grammar.\");return(0,UJ.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,HJ.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new UJ.NextAfterTokenWalker(n,e).startWalking();return s},r}();$y.ContentAssist=ABe});var XJ=y(rw=>{\"use strict\";Object.defineProperty(rw,\"__esModule\",{value:!0});rw.GastRecorder=void 0;var In=Gt(),To=Cn(),lBe=jd(),JJ=pf(),WJ=UA(),cBe=Hn(),uBe=qy(),tw={description:\"This Object indicates the Parser is during Recording Phase\"};Object.freeze(tw);var YJ=!0,jJ=Math.pow(2,uBe.BITS_FOR_OCCURRENCE_IDX)-1,zJ=(0,WJ.createToken)({name:\"RECORDING_PHASE_TOKEN\",pattern:lBe.Lexer.NA});(0,JJ.augmentTokenTypes)([zJ]);var VJ=(0,WJ.createTokenInstance)(zJ,`This IToken indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(VJ);var gBe={name:`This CSTNode indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},fBe=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT(\"Enable Recording\",function(){for(var t=function(n){var s=n>0?n:\"\";e[\"CONSUME\"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e[\"SUBRULE\"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e[\"OPTION\"+s]=function(o){return this.optionInternalRecord(o,n)},e[\"OR\"+s]=function(o){return this.orInternalRecord(o,n)},e[\"MANY\"+s]=function(o){this.manyInternalRecord(n,o)},e[\"MANY_SEP\"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e[\"AT_LEAST_ONE\"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e[\"AT_LEAST_ONE_SEP\"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT(\"Deleting Recording methods\",function(){for(var t=0;t<10;t++){var i=t>0?t:\"\";delete e[\"CONSUME\"+i],delete e[\"SUBRULE\"+i],delete e[\"OPTION\"+i],delete e[\"OR\"+i],delete e[\"MANY\"+i],delete e[\"MANY_SEP\"+i],delete e[\"AT_LEAST_ONE\"+i],delete e[\"AT_LEAST_ONE_SEP\"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return cBe.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new To.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+`\n\t This error was thrown during the \"grammar recording phase\" For more info see:\n\thttps://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return iC.call(this,To.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){iC.call(this,To.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){iC.call(this,To.RepetitionMandatoryWithSeparator,t,e,YJ)},r.prototype.manyInternalRecord=function(e,t){iC.call(this,To.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){iC.call(this,To.RepetitionWithSeparator,t,e,YJ)},r.prototype.orInternalRecord=function(e,t){return hBe.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(ew(t),!e||(0,In.has)(e,\"ruleName\")===!1){var n=new Error(\"<SUBRULE\"+qJ(t)+\"> argument is invalid\"+(\" expecting a Parser method reference but got: <\"+JSON.stringify(e)+\">\")+(`\n inside top level rule: <`+this.recordingProdStack[0].name+\">\"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,In.peek)(this.recordingProdStack),o=e.ruleName,a=new To.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?gBe:tw},r.prototype.consumeInternalRecord=function(e,t,i){if(ew(t),!(0,JJ.hasShortKeyProperty)(e)){var n=new Error(\"<CONSUME\"+qJ(t)+\"> argument is invalid\"+(\" expecting a TokenType reference but got: <\"+JSON.stringify(e)+\">\")+(`\n inside top level rule: <`+this.recordingProdStack[0].name+\">\"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,In.peek)(this.recordingProdStack),o=new To.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),VJ},r}();rw.GastRecorder=fBe;function iC(r,e,t,i){i===void 0&&(i=!1),ew(t);var n=(0,In.peek)(this.recordingProdStack),s=(0,In.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,In.has)(e,\"MAX_LOOKAHEAD\")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),tw}function hBe(r,e){var t=this;ew(e);var i=(0,In.peek)(this.recordingProdStack),n=(0,In.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new To.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,In.has)(r,\"MAX_LOOKAHEAD\")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,In.some)(s,function(l){return(0,In.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,In.forEach)(s,function(l){var c=new To.Alternative({definition:[]});o.definition.push(c),(0,In.has)(l,\"IGNORE_AMBIGUITIES\")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,In.has)(l,\"GATE\")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),tw}function qJ(r){return r===0?\"\":\"\"+r}function ew(r){if(r<0||r>jJ){var e=new Error(\"Invalid DSL Method idx value: <\"+r+`>\n\t`+(\"Idx value must be a none negative value smaller than \"+(jJ+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var ZJ=y(iw=>{\"use strict\";Object.defineProperty(iw,\"__esModule\",{value:!0});iw.PerformanceTracer=void 0;var _J=Gt(),pBe=Hn(),dBe=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,_J.has)(e,\"traceInitPerf\")){var t=e.traceInitPerf,i=typeof t==\"number\";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=pBe.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(\"\t\");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+\"--> <\"+e+\">\");var n=(0,_J.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+\"<-- <\"+e+\"> time: \"+s+\"ms\"),this.traceInitIndent--,o}else return t()},r}();iw.PerformanceTracer=dBe});var $J=y(nw=>{\"use strict\";Object.defineProperty(nw,\"__esModule\",{value:!0});nw.applyMixins=void 0;function CBe(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!==\"constructor\"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}nw.applyMixins=CBe});var Hn=y(Cr=>{\"use strict\";var rW=Cr&&Cr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cr,\"__esModule\",{value:!0});Cr.EmbeddedActionsParser=Cr.CstParser=Cr.Parser=Cr.EMPTY_ALT=Cr.ParserDefinitionErrorType=Cr.DEFAULT_RULE_CONFIG=Cr.DEFAULT_PARSER_CONFIG=Cr.END_OF_FILE=void 0;var _i=Gt(),mBe=Kq(),eW=UA(),iW=Vd(),tW=uJ(),EBe=Wx(),IBe=EJ(),yBe=PJ(),wBe=kJ(),BBe=FJ(),QBe=OJ(),bBe=KJ(),SBe=GJ(),vBe=XJ(),xBe=ZJ(),PBe=$J();Cr.END_OF_FILE=(0,eW.createTokenInstance)(eW.EOF,\"\",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Cr.END_OF_FILE);Cr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:iW.defaultParserErrorProvider,nodeLocationTracking:\"none\",traceInitPerf:!1,skipValidations:!1});Cr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var DBe;(function(r){r[r.INVALID_RULE_NAME=0]=\"INVALID_RULE_NAME\",r[r.DUPLICATE_RULE_NAME=1]=\"DUPLICATE_RULE_NAME\",r[r.INVALID_RULE_OVERRIDE=2]=\"INVALID_RULE_OVERRIDE\",r[r.DUPLICATE_PRODUCTIONS=3]=\"DUPLICATE_PRODUCTIONS\",r[r.UNRESOLVED_SUBRULE_REF=4]=\"UNRESOLVED_SUBRULE_REF\",r[r.LEFT_RECURSION=5]=\"LEFT_RECURSION\",r[r.NONE_LAST_EMPTY_ALT=6]=\"NONE_LAST_EMPTY_ALT\",r[r.AMBIGUOUS_ALTS=7]=\"AMBIGUOUS_ALTS\",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]=\"CONFLICT_TOKENS_RULES_NAMESPACE\",r[r.INVALID_TOKEN_NAME=9]=\"INVALID_TOKEN_NAME\",r[r.NO_NON_EMPTY_LOOKAHEAD=10]=\"NO_NON_EMPTY_LOOKAHEAD\",r[r.AMBIGUOUS_PREFIX_ALTS=11]=\"AMBIGUOUS_PREFIX_ALTS\",r[r.TOO_MANY_ALTS=12]=\"TOO_MANY_ALTS\"})(DBe=Cr.ParserDefinitionErrorType||(Cr.ParserDefinitionErrorType={}));function kBe(r){return r===void 0&&(r=void 0),function(){return r}}Cr.EMPTY_ALT=kBe;var sw=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,_i.has)(t,\"ignoredIssues\"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.\n\tPlease use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.\n\tSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n\tFor further details.`);this.skipValidations=(0,_i.has)(t,\"skipValidations\")?t.skipValidations:Cr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error(\"The **static** `performSelfAnalysis` method has been deprecated.\t\\nUse the **instance** method with the same name instead.\")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT(\"performSelfAnalysis\",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT(\"toFastProps\",function(){(0,_i.toFastProperties)(e)}),e.TRACE_INIT(\"Grammar Recording\",function(){try{e.enableRecording(),(0,_i.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+\" Rule\",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT(\"Grammar Resolving\",function(){n=(0,tW.resolveGrammar)({rules:(0,_i.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT(\"Grammar Validations\",function(){if((0,_i.isEmpty)(n)&&e.skipValidations===!1){var s=(0,tW.validateGrammar)({rules:(0,_i.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,_i.values)(e.tokensMap),errMsgProvider:iW.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,_i.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT(\"computeAllProdsFollows\",function(){var s=(0,mBe.computeAllProdsFollows)((0,_i.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT(\"ComputeLookaheadFunctions\",function(){e.preComputeLookaheadFunctions((0,_i.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,_i.isEmpty)(e.definitionErrors))throw t=(0,_i.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected:\n `+t.join(`\n-------------------------------\n`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();Cr.Parser=sw;(0,PBe.applyMixins)(sw,[EBe.Recoverable,IBe.LooksAhead,yBe.TreeBuilder,wBe.LexerAdapter,QBe.RecognizerEngine,BBe.RecognizerApi,bBe.ErrorHandler,SBe.ContentAssist,vBe.GastRecorder,xBe.PerformanceTracer]);var RBe=function(r){rW(e,r);function e(t,i){i===void 0&&(i=Cr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(sw);Cr.CstParser=RBe;var FBe=function(r){rW(e,r);function e(t,i){i===void 0&&(i=Cr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(sw);Cr.EmbeddedActionsParser=FBe});var sW=y(ow=>{\"use strict\";Object.defineProperty(ow,\"__esModule\",{value:!0});ow.createSyntaxDiagramsCode=void 0;var nW=mx();function NBe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?\"https://unpkg.com/chevrotain@\"+nW.VERSION+\"/diagrams/\":i,s=t.css,o=s===void 0?\"https://unpkg.com/chevrotain@\"+nW.VERSION+\"/diagrams/diagrams.css\":s,a=`\n<!-- This is a generated file -->\n<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<style>\n  body {\n    background-color: hsl(30, 20%, 95%)\n  }\n</style>\n\n`,l=`\n<link rel='stylesheet' href='`+o+`'>\n`,c=`\n<script src='`+n+`vendor/railroad-diagrams.js'><\\/script>\n<script src='`+n+`src/diagrams_builder.js'><\\/script>\n<script src='`+n+`src/diagrams_behavior.js'><\\/script>\n<script src='`+n+`src/main.js'><\\/script>\n`,u=`\n<div id=\"diagrams\" align=\"center\"></div>    \n`,g=`\n<script>\n    window.serializedGrammar = `+JSON.stringify(r,null,\"  \")+`;\n<\\/script>\n`,f=`\n<script>\n    var diagramsDiv = document.getElementById(\"diagrams\");\n    main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv);\n<\\/script>\n`;return a+l+c+u+g+f}ow.createSyntaxDiagramsCode=NBe});var AW=y(je=>{\"use strict\";Object.defineProperty(je,\"__esModule\",{value:!0});je.Parser=je.createSyntaxDiagramsCode=je.clearCache=je.GAstVisitor=je.serializeProduction=je.serializeGrammar=je.Terminal=je.Rule=je.RepetitionWithSeparator=je.RepetitionMandatoryWithSeparator=je.RepetitionMandatory=je.Repetition=je.Option=je.NonTerminal=je.Alternative=je.Alternation=je.defaultLexerErrorProvider=je.NoViableAltException=je.NotAllInputParsedException=je.MismatchedTokenException=je.isRecognitionException=je.EarlyExitException=je.defaultParserErrorProvider=je.tokenName=je.tokenMatcher=je.tokenLabel=je.EOF=je.createTokenInstance=je.createToken=je.LexerDefinitionErrorType=je.Lexer=je.EMPTY_ALT=je.ParserDefinitionErrorType=je.EmbeddedActionsParser=je.CstParser=je.VERSION=void 0;var LBe=mx();Object.defineProperty(je,\"VERSION\",{enumerable:!0,get:function(){return LBe.VERSION}});var aw=Hn();Object.defineProperty(je,\"CstParser\",{enumerable:!0,get:function(){return aw.CstParser}});Object.defineProperty(je,\"EmbeddedActionsParser\",{enumerable:!0,get:function(){return aw.EmbeddedActionsParser}});Object.defineProperty(je,\"ParserDefinitionErrorType\",{enumerable:!0,get:function(){return aw.ParserDefinitionErrorType}});Object.defineProperty(je,\"EMPTY_ALT\",{enumerable:!0,get:function(){return aw.EMPTY_ALT}});var oW=jd();Object.defineProperty(je,\"Lexer\",{enumerable:!0,get:function(){return oW.Lexer}});Object.defineProperty(je,\"LexerDefinitionErrorType\",{enumerable:!0,get:function(){return oW.LexerDefinitionErrorType}});var Bf=UA();Object.defineProperty(je,\"createToken\",{enumerable:!0,get:function(){return Bf.createToken}});Object.defineProperty(je,\"createTokenInstance\",{enumerable:!0,get:function(){return Bf.createTokenInstance}});Object.defineProperty(je,\"EOF\",{enumerable:!0,get:function(){return Bf.EOF}});Object.defineProperty(je,\"tokenLabel\",{enumerable:!0,get:function(){return Bf.tokenLabel}});Object.defineProperty(je,\"tokenMatcher\",{enumerable:!0,get:function(){return Bf.tokenMatcher}});Object.defineProperty(je,\"tokenName\",{enumerable:!0,get:function(){return Bf.tokenName}});var TBe=Vd();Object.defineProperty(je,\"defaultParserErrorProvider\",{enumerable:!0,get:function(){return TBe.defaultParserErrorProvider}});var nC=If();Object.defineProperty(je,\"EarlyExitException\",{enumerable:!0,get:function(){return nC.EarlyExitException}});Object.defineProperty(je,\"isRecognitionException\",{enumerable:!0,get:function(){return nC.isRecognitionException}});Object.defineProperty(je,\"MismatchedTokenException\",{enumerable:!0,get:function(){return nC.MismatchedTokenException}});Object.defineProperty(je,\"NotAllInputParsedException\",{enumerable:!0,get:function(){return nC.NotAllInputParsedException}});Object.defineProperty(je,\"NoViableAltException\",{enumerable:!0,get:function(){return nC.NoViableAltException}});var OBe=xx();Object.defineProperty(je,\"defaultLexerErrorProvider\",{enumerable:!0,get:function(){return OBe.defaultLexerErrorProvider}});var Oo=Cn();Object.defineProperty(je,\"Alternation\",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(je,\"Alternative\",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(je,\"NonTerminal\",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(je,\"Option\",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(je,\"Repetition\",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(je,\"RepetitionMandatory\",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(je,\"RepetitionMandatoryWithSeparator\",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(je,\"RepetitionWithSeparator\",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(je,\"Rule\",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(je,\"Terminal\",{enumerable:!0,get:function(){return Oo.Terminal}});var aW=Cn();Object.defineProperty(je,\"serializeGrammar\",{enumerable:!0,get:function(){return aW.serializeGrammar}});Object.defineProperty(je,\"serializeProduction\",{enumerable:!0,get:function(){return aW.serializeProduction}});var MBe=df();Object.defineProperty(je,\"GAstVisitor\",{enumerable:!0,get:function(){return MBe.GAstVisitor}});function KBe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API.\n\t It performs no action other than printing this message.\n\t Please avoid using it as it will be completely removed in the future`)}je.clearCache=KBe;var UBe=sW();Object.defineProperty(je,\"createSyntaxDiagramsCode\",{enumerable:!0,get:function(){return UBe.createSyntaxDiagramsCode}});var HBe=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead.\t\nSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();je.Parser=HBe});var uW=y((wtt,cW)=>{var Aw=AW(),Na=Aw.createToken,lW=Aw.tokenMatcher,$x=Aw.Lexer,GBe=Aw.EmbeddedActionsParser;cW.exports=r=>{let e=Na({name:\"LogicalOperator\",pattern:$x.NA}),t=Na({name:\"Or\",pattern:/\\|/,categories:e}),i=Na({name:\"Xor\",pattern:/\\^/,categories:e}),n=Na({name:\"And\",pattern:/&/,categories:e}),s=Na({name:\"Not\",pattern:/!/}),o=Na({name:\"LParen\",pattern:/\\(/}),a=Na({name:\"RParen\",pattern:/\\)/}),l=Na({name:\"Query\",pattern:r}),u=[Na({name:\"WhiteSpace\",pattern:/\\s+/,group:$x.SKIPPED}),t,i,n,o,a,s,e,l],g=new $x(u);class f extends GBe{constructor(p){super(u),this.RULE(\"expression\",()=>this.SUBRULE(this.logicalExpression)),this.RULE(\"logicalExpression\",()=>{let w=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=w,v=this.CONSUME(e),D=this.SUBRULE2(this.atomicExpression);lW(v,t)?w=L=>B(L)||D(L):lW(v,i)?w=L=>!!(B(L)^D(L)):w=L=>B(L)&&D(L)}),w}),this.RULE(\"atomicExpression\",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:C}=this.CONSUME(l);return w=>w(C)}},{ALT:()=>{this.CONSUME(s);let C=this.SUBRULE(this.atomicExpression);return w=>!C(w)}}])),this.RULE(\"parenthesisExpression\",()=>{let C;return this.CONSUME(o),C=this.SUBRULE(this.expression),this.CONSUME(a),C}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:f}}});var gW=y(lw=>{var YBe=uW();lw.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=YBe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};lw.parse=lw.makeParser()});var hW=y((Qtt,fW)=>{\"use strict\";fW.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]}});var eP=y((btt,dW)=>{var sC=hW(),pW={};for(let r of Object.keys(sC))pW[sC[r]]=r;var it={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\"]}};dW.exports=it;for(let r of Object.keys(it)){if(!(\"channels\"in it[r]))throw new Error(\"missing channels property: \"+r);if(!(\"labels\"in it[r]))throw new Error(\"missing channel labels property: \"+r);if(it[r].labels.length!==it[r].channels)throw new Error(\"channel and label counts mismatch: \"+r);let{channels:e,labels:t}=it[r];delete it[r].channels,delete it[r].labels,Object.defineProperty(it[r],\"channels\",{value:e}),Object.defineProperty(it[r],\"labels\",{value:t})}it.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};it.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(f){return(c-f)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};it.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=it.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};it.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function jBe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}it.rgb.keyword=function(r){let e=pW[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(sC)){let s=sC[n],o=jBe(r,s);o<t&&(t=o,i=n)}return i};it.keyword.rgb=function(r){return sC[r]};it.rgb.xyz=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};it.rgb.lab=function(r){let e=it.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};it.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};it.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};it.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};it.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};it.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};it.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};it.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};it.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};it.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};it.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};it.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};it.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?it.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};it.hsv.ansi16=function(r){return it.rgb.ansi16(it.hsv.rgb(r),r[2])};it.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};it.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};it.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};it.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return\"000000\".substring(t.length)+t};it.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split(\"\").map(a=>a+a).join(\"\"));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};it.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};it.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};it.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};it.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};it.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};it.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};it.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};it.hwb.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=1-t,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};it.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};it.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};it.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};it.gray.hsl=function(r){return[0,0,r[0]]};it.gray.hsv=it.gray.hsl;it.gray.hwb=function(r){return[0,100,r[0]]};it.gray.cmyk=function(r){return[0,0,0,r[0]]};it.gray.lab=function(r){return[r[0],0,0]};it.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return\"000000\".substring(i.length)+i};it.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var mW=y((Stt,CW)=>{var cw=eP();function qBe(){let r={},e=Object.keys(cw);for(let t=e.length,i=0;i<t;i++)r[e[i]]={distance:-1,parent:null};return r}function JBe(r){let e=qBe(),t=[r];for(e[r].distance=0;t.length;){let i=t.pop(),n=Object.keys(cw[i]);for(let s=n.length,o=0;o<s;o++){let a=n[o],l=e[a];l.distance===-1&&(l.distance=e[i].distance+1,l.parent=i,t.unshift(a))}}return e}function WBe(r,e){return function(t){return e(r(t))}}function zBe(r,e){let t=[e[r].parent,r],i=cw[e[r].parent][r],n=e[r].parent;for(;e[n].parent;)t.unshift(e[n].parent),i=WBe(cw[e[n].parent][n],i),n=e[n].parent;return i.conversion=t,i}CW.exports=function(r){let e=JBe(r),t={},i=Object.keys(e);for(let n=i.length,s=0;s<n;s++){let o=i[s];e[o].parent!==null&&(t[o]=zBe(o,e))}return t}});var IW=y((vtt,EW)=>{var tP=eP(),VBe=mW(),Qf={},XBe=Object.keys(tP);function _Be(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return\"conversion\"in r&&(e.conversion=r.conversion),e}function ZBe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n==\"object\")for(let s=n.length,o=0;o<s;o++)n[o]=Math.round(n[o]);return n};return\"conversion\"in r&&(e.conversion=r.conversion),e}XBe.forEach(r=>{Qf[r]={},Object.defineProperty(Qf[r],\"channels\",{value:tP[r].channels}),Object.defineProperty(Qf[r],\"labels\",{value:tP[r].labels});let e=VBe(r);Object.keys(e).forEach(i=>{let n=e[i];Qf[r][i]=ZBe(n),Qf[r][i].raw=_Be(n)})});EW.exports=Qf});var SW=y((xtt,bW)=>{\"use strict\";var yW=(r,e)=>(...t)=>`\\x1B[${r(...t)+e}m`,wW=(r,e)=>(...t)=>{let i=r(...t);return`\\x1B[${38+e};5;${i}m`},BW=(r,e)=>(...t)=>{let i=r(...t);return`\\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},uw=r=>r,QW=(r,e,t)=>[r,e,t],bf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},rP,Sf=(r,e,t,i)=>{rP===void 0&&(rP=IW());let n=i?10:0,s={};for(let[o,a]of Object.entries(rP)){let l=o===\"ansi16\"?\"ansi\":o;o===e?s[l]=r(t,n):typeof a==\"object\"&&(s[l]=r(a[e],n))}return s};function $Be(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\\x1B[${s[0]}m`,close:`\\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,\"codes\",{value:r,enumerable:!1}),e.color.close=\"\\x1B[39m\",e.bgColor.close=\"\\x1B[49m\",bf(e.color,\"ansi\",()=>Sf(yW,\"ansi16\",uw,!1)),bf(e.color,\"ansi256\",()=>Sf(wW,\"ansi256\",uw,!1)),bf(e.color,\"ansi16m\",()=>Sf(BW,\"rgb\",QW,!1)),bf(e.bgColor,\"ansi\",()=>Sf(yW,\"ansi16\",uw,!0)),bf(e.bgColor,\"ansi256\",()=>Sf(wW,\"ansi256\",uw,!0)),bf(e.bgColor,\"ansi16m\",()=>Sf(BW,\"rgb\",QW,!0)),e}Object.defineProperty(bW,\"exports\",{enumerable:!0,get:$Be})});var xW=y((Ptt,vW)=>{\"use strict\";vW.exports=(r,e=process.argv)=>{let t=r.startsWith(\"-\")?\"\":r.length===1?\"-\":\"--\",i=e.indexOf(t+r),n=e.indexOf(\"--\");return i!==-1&&(n===-1||i<n)}});var kW=y((Dtt,DW)=>{\"use strict\";var e0e=J(\"os\"),PW=J(\"tty\"),gs=xW(),{env:ci}=process,jA;gs(\"no-color\")||gs(\"no-colors\")||gs(\"color=false\")||gs(\"color=never\")?jA=0:(gs(\"color\")||gs(\"colors\")||gs(\"color=true\")||gs(\"color=always\"))&&(jA=1);\"FORCE_COLOR\"in ci&&(ci.FORCE_COLOR===\"true\"?jA=1:ci.FORCE_COLOR===\"false\"?jA=0:jA=ci.FORCE_COLOR.length===0?1:Math.min(parseInt(ci.FORCE_COLOR,10),3));function iP(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function nP(r,e){if(jA===0)return 0;if(gs(\"color=16m\")||gs(\"color=full\")||gs(\"color=truecolor\"))return 3;if(gs(\"color=256\"))return 2;if(r&&!e&&jA===void 0)return 0;let t=jA||0;if(ci.TERM===\"dumb\")return t;if(process.platform===\"win32\"){let i=e0e.release().split(\".\");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if(\"CI\"in ci)return[\"TRAVIS\",\"CIRCLECI\",\"APPVEYOR\",\"GITLAB_CI\"].some(i=>i in ci)||ci.CI_NAME===\"codeship\"?1:t;if(\"TEAMCITY_VERSION\"in ci)return/^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(ci.TEAMCITY_VERSION)?1:0;if(\"GITHUB_ACTIONS\"in ci)return 1;if(ci.COLORTERM===\"truecolor\")return 3;if(\"TERM_PROGRAM\"in ci){let i=parseInt((ci.TERM_PROGRAM_VERSION||\"\").split(\".\")[0],10);switch(ci.TERM_PROGRAM){case\"iTerm.app\":return i>=3?3:2;case\"Apple_Terminal\":return 2}}return/-256(color)?$/i.test(ci.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(ci.TERM)||\"COLORTERM\"in ci?1:t}function t0e(r){let e=nP(r,r&&r.isTTY);return iP(e)}DW.exports={supportsColor:t0e,stdout:iP(nP(!0,PW.isatty(1))),stderr:iP(nP(!0,PW.isatty(2)))}});var FW=y((ktt,RW)=>{\"use strict\";var r0e=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o=\"\";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},i0e=(r,e,t,i)=>{let n=0,s=\"\";do{let o=r[i-1]===\"\\r\";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\\r\n`:`\n`)+t,n=i+1,i=r.indexOf(`\n`,n)}while(i!==-1);return s+=r.substr(n),s};RW.exports={stringReplaceAll:r0e,stringEncaseCRLFWithFirstIndex:i0e}});var MW=y((Rtt,OW)=>{\"use strict\";var n0e=/(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi,NW=/(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g,s0e=/^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/,o0e=/\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.)|([^\\\\])/gi,a0e=new Map([[\"n\",`\n`],[\"r\",\"\\r\"],[\"t\",\"\t\"],[\"b\",\"\\b\"],[\"f\",\"\\f\"],[\"v\",\"\\v\"],[\"0\",\"\\0\"],[\"\\\\\",\"\\\\\"],[\"e\",\"\\x1B\"],[\"a\",\"\\x07\"]]);function TW(r){let e=r[0]===\"u\",t=r[1]===\"{\";return e&&!t&&r.length===5||r[0]===\"x\"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):a0e.get(r)||r}function A0e(r,e){let t=[],i=e.trim().split(/\\s*,\\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(s0e))t.push(n[2].replace(o0e,(a,l,c)=>l?TW(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function l0e(r){NW.lastIndex=0;let e=[],t;for(;(t=NW.exec(r))!==null;){let i=t[1];if(t[2]){let n=A0e(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function LW(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}OW.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(n0e,(s,o,a,l,c,u)=>{if(o)n.push(TW(o));else if(l){let g=n.join(\"\");n=[],i.push(t.length===0?g:LW(r,t)(g)),t.push({inverse:a,styles:l0e(l)})}else if(c){if(t.length===0)throw new Error(\"Found extraneous } in Chalk template literal\");i.push(LW(r,t)(n.join(\"\"))),n=[],t.pop()}else n.push(u)}),i.push(n.join(\"\")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?\"\":\"s\"} (\\`}\\`)`;throw new Error(s)}return i.join(\"\")}});var cP=y((Ftt,GW)=>{\"use strict\";var oC=SW(),{stdout:oP,stderr:aP}=kW(),{stringReplaceAll:c0e,stringEncaseCRLFWithFirstIndex:u0e}=FW(),KW=[\"ansi\",\"ansi\",\"ansi256\",\"ansi16m\"],vf=Object.create(null),g0e=(r,e={})=>{if(e.level>3||e.level<0)throw new Error(\"The `level` option should be an integer from 0 to 3\");let t=oP?oP.level:0;r.level=e.level===void 0?t:e.level},AP=class{constructor(e){return UW(e)}},UW=r=>{let e={};return g0e(e,r),e.template=(...t)=>p0e(e.template,...t),Object.setPrototypeOf(e,gw.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error(\"`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.\")},e.template.Instance=AP,e.template};function gw(r){return UW(r)}for(let[r,e]of Object.entries(oC))vf[r]={get(){let t=fw(this,lP(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};vf.visible={get(){let r=fw(this,this._styler,!0);return Object.defineProperty(this,\"visible\",{value:r}),r}};var HW=[\"rgb\",\"hex\",\"keyword\",\"hsl\",\"hsv\",\"hwb\",\"ansi\",\"ansi256\"];for(let r of HW)vf[r]={get(){let{level:e}=this;return function(...t){let i=lP(oC.color[KW[e]][r](...t),oC.color.close,this._styler);return fw(this,i,this._isEmpty)}}};for(let r of HW){let e=\"bg\"+r[0].toUpperCase()+r.slice(1);vf[e]={get(){let{level:t}=this;return function(...i){let n=lP(oC.bgColor[KW[t]][r](...i),oC.bgColor.close,this._styler);return fw(this,n,this._isEmpty)}}}}var f0e=Object.defineProperties(()=>{},{...vf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),lP=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},fw=(r,e,t)=>{let i=(...n)=>h0e(i,n.length===1?\"\"+n[0]:n.join(\" \"));return i.__proto__=f0e,i._generator=r,i._styler=e,i._isEmpty=t,i},h0e=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?\"\":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf(\"\\x1B\")!==-1)for(;t!==void 0;)e=c0e(e,t.close,t.open),t=t.parent;let s=e.indexOf(`\n`);return s!==-1&&(e=u0e(e,n,i,s)),i+e+n},sP,p0e=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(\" \");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s<t.length;s++)n.push(String(i[s-1]).replace(/[{}\\\\]/g,\"\\\\$&\"),String(t.raw[s]));return sP===void 0&&(sP=MW()),sP(r,n.join(\"\"))};Object.defineProperties(gw.prototype,vf);var aC=gw();aC.supportsColor=oP;aC.stderr=gw({level:aP?aP.level:0});aC.stderr.supportsColor=aP;aC.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:\"None\",1:\"Basic\",2:\"Ansi256\",3:\"TrueColor\"};GW.exports=aC});var hw=y(fs=>{\"use strict\";fs.isInteger=r=>typeof r==\"number\"?Number.isInteger(r):typeof r==\"string\"&&r.trim()!==\"\"?Number.isInteger(Number(r)):!1;fs.find=(r,e)=>r.nodes.find(t=>t.type===e);fs.exceedsLimit=(r,e,t=1,i)=>i===!1||!fs.isInteger(r)||!fs.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;fs.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type===\"open\"||i.type===\"close\")&&i.escaped!==!0&&(i.value=\"\\\\\"+i.value,i.escaped=!0)};fs.encloseBrace=r=>r.type!==\"brace\"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;fs.isInvalidBrace=r=>r.type!==\"brace\"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;fs.isOpenOrClose=r=>r.type===\"open\"||r.type===\"close\"?!0:r.open===!0||r.close===!0;fs.reduce=r=>r.reduce((e,t)=>(t.type===\"text\"&&e.push(t.value),t.type===\"range\"&&(t.type=\"text\"),e),[]);fs.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n<i.length;n++){let s=i[n];Array.isArray(s)?t(s,e):s!==void 0&&e.push(s)}return e};return t(r),e}});var pw=y((Ltt,jW)=>{\"use strict\";var YW=hw();jW.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&YW.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=\"\";if(i.value)return(s||o)&&YW.isOpenOrClose(i)?\"\\\\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var JW=y((Ttt,qW)=>{\"use strict\";qW.exports=function(r){return typeof r==\"number\"?r-r===0:typeof r==\"string\"&&r.trim()!==\"\"?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var t8=y((Ott,e8)=>{\"use strict\";var WW=JW(),Nc=(r,e,t)=>{if(WW(r)===!1)throw new TypeError(\"toRegexRange: expected the first argument to be a number\");if(e===void 0||r===e)return String(r);if(WW(e)===!1)throw new TypeError(\"toRegexRange: expected the second argument to be a number.\");let i={relaxZeros:!0,...t};typeof i.strictZeros==\"boolean\"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+\":\"+e+\"=\"+n+s+o+a;if(Nc.cache.hasOwnProperty(l))return Nc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let C=r+\"|\"+e;return i.capture?`(${C})`:i.wrap===!1?C:`(?:${C})`}let g=$W(r)||$W(e),f={min:r,max:e,a:c,b:u},h=[],p=[];if(g&&(f.isPadded=g,f.maxLen=String(f.max).length),c<0){let C=u<0?Math.abs(u):1;p=zW(C,Math.abs(c),f,i),c=f.a=0}return u>=0&&(h=zW(c,u,f,i)),f.negatives=p,f.positives=h,f.result=d0e(p,h,i),i.capture===!0?f.result=`(${f.result})`:i.wrap!==!1&&h.length+p.length>1&&(f.result=`(?:${f.result})`),Nc.cache[l]=f,f.result};function d0e(r,e,t){let i=uP(r,e,\"-\",!1,t)||[],n=uP(e,r,\"\",!1,t)||[],s=uP(r,e,\"-?\",!0,t)||[];return i.concat(s).concat(n).join(\"|\")}function C0e(r,e){let t=1,i=1,n=XW(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=XW(r,t);for(n=_W(e+1,i)-1;r<n&&n<=e;)s.add(n),i+=1,n=_W(e+1,i)-1;return s=[...s],s.sort(I0e),s}function m0e(r,e,t){if(r===e)return{pattern:r,count:[],digits:0};let i=E0e(r,e),n=i.length,s=\"\",o=0;for(let a=0;a<n;a++){let[l,c]=i[a];l===c?s+=l:l!==\"0\"||c!==\"9\"?s+=y0e(l,c,t):o++}return o&&(s+=t.shorthand===!0?\"\\\\d\":\"[0-9]\"),{pattern:s,count:[o],digits:n}}function zW(r,e,t,i){let n=C0e(r,e),s=[],o=r,a;for(let l=0;l<n.length;l++){let c=n[l],u=m0e(String(o),String(c),i),g=\"\";if(!t.isPadded&&a&&a.pattern===u.pattern){a.count.length>1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+ZW(a.count),o=c+1;continue}t.isPadded&&(g=w0e(c,t,i)),u.string=g+u.pattern+ZW(u.count),s.push(u),o=c+1,a=u}return s}function uP(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!VW(e,\"string\",a)&&s.push(t+a),i&&VW(e,\"string\",a)&&s.push(t+a)}return s}function E0e(r,e){let t=[];for(let i=0;i<r.length;i++)t.push([r[i],e[i]]);return t}function I0e(r,e){return r>e?1:e>r?-1:0}function VW(r,e,t){return r.some(i=>i[e]===t)}function XW(r,e){return Number(String(r).slice(0,-e)+\"9\".repeat(e))}function _W(r,e){return r-r%Math.pow(10,e)}function ZW(r){let[e=0,t=\"\"]=r;return t||e>1?`{${e+(t?\",\"+t:\"\")}}`:\"\"}function y0e(r,e,t){return`[${r}${e-r===1?\"\":\"-\"}${e}]`}function $W(r){return/^-?(0+)\\d/.test(r)}function w0e(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return\"\";case 1:return n?\"0?\":\"0\";case 2:return n?\"0{0,2}\":\"00\";default:return n?`0{0,${i}}`:`0{${i}}`}}Nc.cache={};Nc.clearCache=()=>Nc.cache={};e8.exports=Nc});var hP=y((Mtt,l8)=>{\"use strict\";var B0e=J(\"util\"),n8=t8(),r8=r=>r!==null&&typeof r==\"object\"&&!Array.isArray(r),Q0e=r=>e=>r===!0?Number(e):String(e),gP=r=>typeof r==\"number\"||typeof r==\"string\"&&r!==\"\",AC=r=>Number.isInteger(+r),fP=r=>{let e=`${r}`,t=-1;if(e[0]===\"-\"&&(e=e.slice(1)),e===\"0\")return!1;for(;e[++t]===\"0\";);return t>0},b0e=(r,e,t)=>typeof r==\"string\"||typeof e==\"string\"?!0:t.stringify===!0,S0e=(r,e,t)=>{if(e>0){let i=r[0]===\"-\"?\"-\":\"\";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,\"0\")}return t===!1?String(r):r},i8=(r,e)=>{let t=r[0]===\"-\"?\"-\":\"\";for(t&&(r=r.slice(1),e--);r.length<e;)r=\"0\"+r;return t?\"-\"+r:r},v0e=(r,e)=>{r.negatives.sort((o,a)=>o<a?-1:o>a?1:0),r.positives.sort((o,a)=>o<a?-1:o>a?1:0);let t=e.capture?\"\":\"?:\",i=\"\",n=\"\",s;return r.positives.length&&(i=r.positives.join(\"|\")),r.negatives.length&&(n=`-(${t}${r.negatives.join(\"|\")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},s8=(r,e,t,i)=>{if(t)return n8(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},o8=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?\"\":\"?:\";return i?`(${n}${r.join(\"|\")})`:r.join(\"|\")}return n8(r,e,t)},a8=(...r)=>new RangeError(\"Invalid range arguments: \"+B0e.inspect(...r)),A8=(r,e,t)=>{if(t.strictRanges===!0)throw a8([r,e]);return[]},x0e=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step \"${r}\" to be a number`);return[]},P0e=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw a8([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=fP(a)||fP(l)||fP(c),g=u?Math.max(a.length,l.length,c.length):0,f=u===!1&&b0e(r,e,i)===!1,h=i.transform||Q0e(f);if(i.toRegex&&t===1)return s8(i8(r,g),i8(e,g),!0,i);let p={negatives:[],positives:[]},C=v=>p[v<0?\"negatives\":\"positives\"].push(Math.abs(v)),w=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?C(n):w.push(S0e(h(n,B),g,f)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?v0e(p,i):o8(w,null,{wrap:!1,...i}):w},D0e=(r,e,t=1,i={})=>{if(!AC(r)&&r.length>1||!AC(e)&&e.length>1)return A8(r,e,i);let n=i.transform||(f=>String.fromCharCode(f)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return s8(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?o8(u,null,{wrap:!1,options:i}):u},dw=(r,e,t,i={})=>{if(e==null&&gP(r))return[r];if(!gP(r)||!gP(e))return A8(r,e,i);if(typeof t==\"function\")return dw(r,e,1,{transform:t});if(r8(t))return dw(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,AC(t)?AC(r)&&AC(e)?P0e(r,e,t,n):D0e(r,e,Math.max(Math.abs(t),1),n):t!=null&&!r8(t)?x0e(t,n):dw(r,e,1,t)};l8.exports=dw});var g8=y((Ktt,u8)=>{\"use strict\";var k0e=hP(),c8=hw(),R0e=(r,e={})=>{let t=(i,n={})=>{let s=c8.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?\"\\\\\":\"\",c=\"\";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type===\"open\")return a?l+i.value:\"(\";if(i.type===\"close\")return a?l+i.value:\")\";if(i.type===\"comma\")return i.prev.type===\"comma\"?\"\":a?i.value:\"|\";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=c8.reduce(i.nodes),g=k0e(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};u8.exports=R0e});var p8=y((Utt,h8)=>{\"use strict\";var F0e=hP(),f8=pw(),xf=hw(),Lc=(r=\"\",e=\"\",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?xf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Lc(s,e,t));else for(let s of e)t===!0&&typeof s==\"string\"&&(s=`{${s}}`),i.push(Array.isArray(s)?Lc(n,s,t):n+s);return xf.flatten(i)},N0e=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!==\"brace\"&&o.type!==\"root\"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Lc(a.pop(),f8(n,e)));return}if(n.type===\"brace\"&&n.invalid!==!0&&n.nodes.length===2){a.push(Lc(a.pop(),[\"{}\"]));return}if(n.nodes&&n.ranges>0){let g=xf.reduce(n.nodes);if(xf.exceedsLimit(...g,e.step,t))throw new RangeError(\"expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.\");let f=F0e(...g,e);f.length===0&&(f=f8(n,e)),a.push(Lc(a.pop(),f)),n.nodes=[];return}let l=xf.encloseBrace(n),c=n.queue,u=n;for(;u.type!==\"brace\"&&u.type!==\"root\"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g<n.nodes.length;g++){let f=n.nodes[g];if(f.type===\"comma\"&&n.type===\"brace\"){g===1&&c.push(\"\"),c.push(\"\");continue}if(f.type===\"close\"){a.push(Lc(a.pop(),c,l));continue}if(f.value&&f.type!==\"open\"){c.push(Lc(c.pop(),f.value));continue}f.nodes&&i(f,n)}return c};return xf.flatten(i(r))};h8.exports=N0e});var C8=y((Htt,d8)=>{\"use strict\";d8.exports={MAX_LENGTH:1024*64,CHAR_0:\"0\",CHAR_9:\"9\",CHAR_UPPERCASE_A:\"A\",CHAR_LOWERCASE_A:\"a\",CHAR_UPPERCASE_Z:\"Z\",CHAR_LOWERCASE_Z:\"z\",CHAR_LEFT_PARENTHESES:\"(\",CHAR_RIGHT_PARENTHESES:\")\",CHAR_ASTERISK:\"*\",CHAR_AMPERSAND:\"&\",CHAR_AT:\"@\",CHAR_BACKSLASH:\"\\\\\",CHAR_BACKTICK:\"`\",CHAR_CARRIAGE_RETURN:\"\\r\",CHAR_CIRCUMFLEX_ACCENT:\"^\",CHAR_COLON:\":\",CHAR_COMMA:\",\",CHAR_DOLLAR:\"$\",CHAR_DOT:\".\",CHAR_DOUBLE_QUOTE:'\"',CHAR_EQUAL:\"=\",CHAR_EXCLAMATION_MARK:\"!\",CHAR_FORM_FEED:\"\\f\",CHAR_FORWARD_SLASH:\"/\",CHAR_HASH:\"#\",CHAR_HYPHEN_MINUS:\"-\",CHAR_LEFT_ANGLE_BRACKET:\"<\",CHAR_LEFT_CURLY_BRACE:\"{\",CHAR_LEFT_SQUARE_BRACKET:\"[\",CHAR_LINE_FEED:`\n`,CHAR_NO_BREAK_SPACE:\"\\xA0\",CHAR_PERCENT:\"%\",CHAR_PLUS:\"+\",CHAR_QUESTION_MARK:\"?\",CHAR_RIGHT_ANGLE_BRACKET:\">\",CHAR_RIGHT_CURLY_BRACE:\"}\",CHAR_RIGHT_SQUARE_BRACKET:\"]\",CHAR_SEMICOLON:\";\",CHAR_SINGLE_QUOTE:\"'\",CHAR_SPACE:\" \",CHAR_TAB:\"\t\",CHAR_UNDERSCORE:\"_\",CHAR_VERTICAL_LINE:\"|\",CHAR_ZERO_WIDTH_NOBREAK_SPACE:\"\\uFEFF\"}});var w8=y((Gtt,y8)=>{\"use strict\";var L0e=pw(),{MAX_LENGTH:m8,CHAR_BACKSLASH:pP,CHAR_BACKTICK:T0e,CHAR_COMMA:O0e,CHAR_DOT:M0e,CHAR_LEFT_PARENTHESES:K0e,CHAR_RIGHT_PARENTHESES:U0e,CHAR_LEFT_CURLY_BRACE:H0e,CHAR_RIGHT_CURLY_BRACE:G0e,CHAR_LEFT_SQUARE_BRACKET:E8,CHAR_RIGHT_SQUARE_BRACKET:I8,CHAR_DOUBLE_QUOTE:Y0e,CHAR_SINGLE_QUOTE:j0e,CHAR_NO_BREAK_SPACE:q0e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:J0e}=C8(),W0e=(r,e={})=>{if(typeof r!=\"string\")throw new TypeError(\"Expected a string\");let t=e||{},i=typeof t.maxLength==\"number\"?Math.min(m8,t.maxLength):m8;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:\"root\",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,f,h={},p=()=>r[u++],C=w=>{if(w.type===\"text\"&&a.type===\"dot\"&&(a.type=\"text\"),a&&a.type===\"text\"&&w.type===\"text\"){a.value+=w.value;return}return o.nodes.push(w),w.parent=o,w.prev=a,a=w,w};for(C({type:\"bos\"});u<c;)if(o=s[s.length-1],f=p(),!(f===J0e||f===q0e)){if(f===pP){C({type:\"text\",value:(e.keepEscaping?f:\"\")+p()});continue}if(f===I8){C({type:\"text\",value:\"\\\\\"+f});continue}if(f===E8){l++;let w=!0,B;for(;u<c&&(B=p());){if(f+=B,B===E8){l++;continue}if(B===pP){f+=p();continue}if(B===I8&&(l--,l===0))break}C({type:\"text\",value:f});continue}if(f===K0e){o=C({type:\"paren\",nodes:[]}),s.push(o),C({type:\"text\",value:f});continue}if(f===U0e){if(o.type!==\"paren\"){C({type:\"text\",value:f});continue}o=s.pop(),C({type:\"text\",value:f}),o=s[s.length-1];continue}if(f===Y0e||f===j0e||f===T0e){let w=f,B;for(e.keepQuotes!==!0&&(f=\"\");u<c&&(B=p());){if(B===pP){f+=B+p();continue}if(B===w){e.keepQuotes===!0&&(f+=B);break}f+=B}C({type:\"text\",value:f});continue}if(f===H0e){g++;let w=a.value&&a.value.slice(-1)===\"$\"||o.dollar===!0;o=C({type:\"brace\",open:!0,close:!1,dollar:w,depth:g,commas:0,ranges:0,nodes:[]}),s.push(o),C({type:\"open\",value:f});continue}if(f===G0e){if(o.type!==\"brace\"){C({type:\"text\",value:f});continue}let w=\"close\";o=s.pop(),o.close=!0,C({type:w,value:f}),g--,o=s[s.length-1];continue}if(f===O0e&&g>0){if(o.ranges>0){o.ranges=0;let w=o.nodes.shift();o.nodes=[w,{type:\"text\",value:L0e(o)}]}C({type:\"comma\",value:f}),o.commas++;continue}if(f===M0e&&g>0&&o.commas===0){let w=o.nodes;if(g===0||w.length===0){C({type:\"text\",value:f});continue}if(a.type===\"dot\"){if(o.range=[],a.value+=f,a.type=\"range\",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type=\"text\";continue}o.ranges++,o.args=[];continue}if(a.type===\"range\"){w.pop();let B=w[w.length-1];B.value+=a.value+f,a=B,o.ranges--;continue}C({type:\"dot\",value:f});continue}C({type:\"text\",value:f})}do if(o=s.pop(),o.type!==\"root\"){o.nodes.forEach(v=>{v.nodes||(v.type===\"open\"&&(v.isOpen=!0),v.type===\"close\"&&(v.isClose=!0),v.nodes||(v.type=\"text\"),v.invalid=!0)});let w=s[s.length-1],B=w.nodes.indexOf(o);w.nodes.splice(B,1,...o.nodes)}while(s.length>0);return C({type:\"eos\"}),n};y8.exports=W0e});var b8=y((Ytt,Q8)=>{\"use strict\";var B8=pw(),z0e=g8(),V0e=p8(),X0e=w8(),Yn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Yn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Yn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Yn.parse=(r,e={})=>X0e(r,e);Yn.stringify=(r,e={})=>B8(typeof r==\"string\"?Yn.parse(r,e):r,e);Yn.compile=(r,e={})=>(typeof r==\"string\"&&(r=Yn.parse(r,e)),z0e(r,e));Yn.expand=(r,e={})=>{typeof r==\"string\"&&(r=Yn.parse(r,e));let t=V0e(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Yn.create=(r,e={})=>r===\"\"||r.length<3?[r]:e.expand!==!0?Yn.compile(r,e):Yn.expand(r,e);Q8.exports=Yn});var lC=y((jtt,D8)=>{\"use strict\";var _0e=J(\"path\"),Mo=\"\\\\\\\\/\",S8=`[^${Mo}]`,La=\"\\\\.\",Z0e=\"\\\\+\",$0e=\"\\\\?\",Cw=\"\\\\/\",eQe=\"(?=.)\",v8=\"[^/]\",dP=`(?:${Cw}|$)`,x8=`(?:^|${Cw})`,CP=`${La}{1,2}${dP}`,tQe=`(?!${La})`,rQe=`(?!${x8}${CP})`,iQe=`(?!${La}{0,1}${dP})`,nQe=`(?!${CP})`,sQe=`[^.${Cw}]`,oQe=`${v8}*?`,P8={DOT_LITERAL:La,PLUS_LITERAL:Z0e,QMARK_LITERAL:$0e,SLASH_LITERAL:Cw,ONE_CHAR:eQe,QMARK:v8,END_ANCHOR:dP,DOTS_SLASH:CP,NO_DOT:tQe,NO_DOTS:rQe,NO_DOT_SLASH:iQe,NO_DOTS_SLASH:nQe,QMARK_NO_DOT:sQe,STAR:oQe,START_ANCHOR:x8},aQe={...P8,SLASH_LITERAL:`[${Mo}]`,QMARK:S8,STAR:`${S8}*?`,DOTS_SLASH:`${La}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${La})`,NO_DOTS:`(?!(?:^|[${Mo}])${La}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${La}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${La}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},AQe={alnum:\"a-zA-Z0-9\",alpha:\"a-zA-Z\",ascii:\"\\\\x00-\\\\x7F\",blank:\" \\\\t\",cntrl:\"\\\\x00-\\\\x1F\\\\x7F\",digit:\"0-9\",graph:\"\\\\x21-\\\\x7E\",lower:\"a-z\",print:\"\\\\x20-\\\\x7E \",punct:\"\\\\-!\\\"#$%&'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~\",space:\" \\\\t\\\\r\\\\n\\\\v\\\\f\",upper:\"A-Z\",word:\"A-Za-z0-9_\",xdigit:\"A-Fa-f0-9\"};D8.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:AQe,REGEX_BACKSLASH:/\\\\(?![*+?^${}(|)[\\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\\].,$*+?^{}()|\\\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\\\?)((\\W)(\\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,REPLACEMENTS:{\"***\":\"*\",\"**/**\":\"**\",\"**/**/**\":\"**\"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:_0e.sep,extglobChars(r){return{\"!\":{type:\"negate\",open:\"(?:(?!(?:\",close:`))${r.STAR})`},\"?\":{type:\"qmark\",open:\"(?:\",close:\")?\"},\"+\":{type:\"plus\",open:\"(?:\",close:\")+\"},\"*\":{type:\"star\",open:\"(?:\",close:\")*\"},\"@\":{type:\"at\",open:\"(?:\",close:\")\"}}},globChars(r){return r===!0?aQe:P8}}});var cC=y(yn=>{\"use strict\";var lQe=J(\"path\"),cQe=process.platform===\"win32\",{REGEX_BACKSLASH:uQe,REGEX_REMOVE_BACKSLASH:gQe,REGEX_SPECIAL_CHARS:fQe,REGEX_SPECIAL_CHARS_GLOBAL:hQe}=lC();yn.isObject=r=>r!==null&&typeof r==\"object\"&&!Array.isArray(r);yn.hasRegexChars=r=>fQe.test(r);yn.isRegexChar=r=>r.length===1&&yn.hasRegexChars(r);yn.escapeRegex=r=>r.replace(hQe,\"\\\\$1\");yn.toPosixSlashes=r=>r.replace(uQe,\"/\");yn.removeBackslashes=r=>r.replace(gQe,e=>e===\"\\\\\"?\"\":e);yn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(\".\").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};yn.isWindows=r=>r&&typeof r.windows==\"boolean\"?r.windows:cQe===!0||lQe.sep===\"\\\\\";yn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]===\"\\\\\"?yn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\\\${r.slice(i)}`};yn.removePrefix=(r,e={})=>{let t=r;return t.startsWith(\"./\")&&(t=t.slice(2),e.prefix=\"./\"),t};yn.wrapOutput=(r,e={},t={})=>{let i=t.contains?\"\":\"^\",n=t.contains?\"\":\"$\",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var M8=y((Jtt,O8)=>{\"use strict\";var k8=cC(),{CHAR_ASTERISK:mP,CHAR_AT:pQe,CHAR_BACKWARD_SLASH:uC,CHAR_COMMA:dQe,CHAR_DOT:EP,CHAR_EXCLAMATION_MARK:IP,CHAR_FORWARD_SLASH:T8,CHAR_LEFT_CURLY_BRACE:yP,CHAR_LEFT_PARENTHESES:wP,CHAR_LEFT_SQUARE_BRACKET:CQe,CHAR_PLUS:mQe,CHAR_QUESTION_MARK:R8,CHAR_RIGHT_CURLY_BRACE:EQe,CHAR_RIGHT_PARENTHESES:F8,CHAR_RIGHT_SQUARE_BRACKET:IQe}=lC(),N8=r=>r===T8||r===uC,L8=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},yQe=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,f=!1,h=!1,p=!1,C=!1,w=!1,B=!1,v=!1,D=!1,L=!1,H=!1,j=0,$,V,W={value:\"\",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ae=()=>($=V,l.charCodeAt(++c));for(;c<i;){V=ae();let ue;if(V===uC){v=W.backslashes=!0,V=ae(),V===yP&&(B=!0);continue}if(B===!0||V===yP){for(j++;Z()!==!0&&(V=ae());){if(V===uC){v=W.backslashes=!0,ae();continue}if(V===yP){j++;continue}if(B!==!0&&V===EP&&(V=ae())===EP){if(f=W.isBrace=!0,p=W.isGlob=!0,H=!0,n===!0)continue;break}if(B!==!0&&V===dQe){if(f=W.isBrace=!0,p=W.isGlob=!0,H=!0,n===!0)continue;break}if(V===EQe&&(j--,j===0)){B=!1,f=W.isBrace=!0,H=!0;break}}if(n===!0)continue;break}if(V===T8){if(s.push(c),o.push(W),W={value:\"\",depth:0,isGlob:!1},H===!0)continue;if($===EP&&c===u+1){u+=2;continue}g=c+1;continue}if(t.noext!==!0&&(V===mQe||V===pQe||V===mP||V===R8||V===IP)===!0&&A()===wP){if(p=W.isGlob=!0,C=W.isExtglob=!0,H=!0,V===IP&&c===u&&(L=!0),n===!0){for(;Z()!==!0&&(V=ae());){if(V===uC){v=W.backslashes=!0,V=ae();continue}if(V===F8){p=W.isGlob=!0,H=!0;break}}continue}break}if(V===mP){if($===mP&&(w=W.isGlobstar=!0),p=W.isGlob=!0,H=!0,n===!0)continue;break}if(V===R8){if(p=W.isGlob=!0,H=!0,n===!0)continue;break}if(V===CQe){for(;Z()!==!0&&(ue=ae());){if(ue===uC){v=W.backslashes=!0,ae();continue}if(ue===IQe){h=W.isBracket=!0,p=W.isGlob=!0,H=!0;break}}if(n===!0)continue;break}if(t.nonegate!==!0&&V===IP&&c===u){D=W.negated=!0,u++;continue}if(t.noparen!==!0&&V===wP){if(p=W.isGlob=!0,n===!0){for(;Z()!==!0&&(V=ae());){if(V===wP){v=W.backslashes=!0,V=ae();continue}if(V===F8){H=!0;break}}continue}break}if(p===!0){if(H=!0,n===!0)continue;break}}t.noext===!0&&(C=!1,p=!1);let ge=l,_=\"\",T=\"\";u>0&&(_=l.slice(0,u),l=l.slice(u),g-=u),ge&&p===!0&&g>0?(ge=l.slice(0,g),T=l.slice(g)):p===!0?(ge=\"\",T=l):ge=l,ge&&ge!==\"\"&&ge!==\"/\"&&ge!==l&&N8(ge.charCodeAt(ge.length-1))&&(ge=ge.slice(0,-1)),t.unescape===!0&&(T&&(T=k8.removeBackslashes(T)),ge&&v===!0&&(ge=k8.removeBackslashes(ge)));let N={prefix:_,input:r,start:u,base:ge,glob:T,isBrace:f,isBracket:h,isGlob:p,isExtglob:C,isGlobstar:w,negated:D,negatedExtglob:L};if(t.tokens===!0&&(N.maxDepth=0,N8(V)||o.push(W),N.tokens=o),t.parts===!0||t.tokens===!0){let ue;for(let we=0;we<s.length;we++){let Le=ue?ue+1:u,Pe=s[we],Te=r.slice(Le,Pe);t.tokens&&(we===0&&u!==0?(o[we].isPrefix=!0,o[we].value=_):o[we].value=Te,L8(o[we]),N.maxDepth+=o[we].depth),(we!==0||Te!==\"\")&&a.push(Te),ue=Pe}if(ue&&ue+1<r.length){let we=r.slice(ue+1);a.push(we),t.tokens&&(o[o.length-1].value=we,L8(o[o.length-1]),N.maxDepth+=o[o.length-1].depth)}N.slashes=s,N.parts=a}return N};O8.exports=yQe});var G8=y((Wtt,H8)=>{\"use strict\";var mw=lC(),jn=cC(),{MAX_LENGTH:Ew,POSIX_REGEX_SOURCE:wQe,REGEX_NON_SPECIAL_CHARS:BQe,REGEX_SPECIAL_CHARS_BACKREF:QQe,REPLACEMENTS:K8}=mw,bQe=(r,e)=>{if(typeof e.expandRange==\"function\")return e.expandRange(...r,e);r.sort();let t=`[${r.join(\"-\")}]`;try{new RegExp(t)}catch{return r.map(n=>jn.escapeRegex(n)).join(\"..\")}return t},Pf=(r,e)=>`Missing ${r}: \"${e}\" - use \"\\\\\\\\${e}\" to match literal characters`,U8=(r,e)=>{if(typeof r!=\"string\")throw new TypeError(\"Expected a string\");r=K8[r]||r;let t={...e},i=typeof t.maxLength==\"number\"?Math.min(Ew,t.maxLength):Ew,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:\"bos\",value:\"\",output:t.prepend||\"\"},o=[s],a=t.capture?\"\":\"?:\",l=jn.isWindows(e),c=mw.globChars(l),u=mw.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:f,SLASH_LITERAL:h,ONE_CHAR:p,DOTS_SLASH:C,NO_DOT:w,NO_DOT_SLASH:B,NO_DOTS_SLASH:v,QMARK:D,QMARK_NO_DOT:L,STAR:H,START_ANCHOR:j}=c,$=Y=>`(${a}(?:(?!${j}${Y.dot?C:g}).)*?)`,V=t.dot?\"\":w,W=t.dot?D:L,Z=t.bash===!0?$(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext==\"boolean\"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:\"\",output:\"\",prefix:\"\",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=jn.removePrefix(r,A),n=r.length;let ae=[],ge=[],_=[],T=s,N,ue=()=>A.index===n-1,we=A.peek=(Y=1)=>r[A.index+Y],Le=A.advance=()=>r[++A.index]||\"\",Pe=()=>r.slice(A.index+1),Te=(Y=\"\",he=0)=>{A.consumed+=Y,A.index+=he},se=Y=>{A.output+=Y.output!=null?Y.output:Y.value,Te(Y.value)},Ae=()=>{let Y=1;for(;we()===\"!\"&&(we(2)!==\"(\"||we(3)===\"?\");)Le(),A.start++,Y++;return Y%2===0?!1:(A.negated=!0,A.start++,!0)},Qe=Y=>{A[Y]++,_.push(Y)},fe=Y=>{A[Y]--,_.pop()},le=Y=>{if(T.type===\"globstar\"){let he=A.braces>0&&(Y.type===\"comma\"||Y.type===\"brace\"),re=Y.extglob===!0||ae.length&&(Y.type===\"pipe\"||Y.type===\"paren\");Y.type!==\"slash\"&&Y.type!==\"paren\"&&!he&&!re&&(A.output=A.output.slice(0,-T.output.length),T.type=\"star\",T.value=\"*\",T.output=Z,A.output+=T.output)}if(ae.length&&Y.type!==\"paren\"&&(ae[ae.length-1].inner+=Y.value),(Y.value||Y.output)&&se(Y),T&&T.type===\"text\"&&Y.type===\"text\"){T.value+=Y.value,T.output=(T.output||\"\")+Y.value;return}Y.prev=T,o.push(Y),T=Y},Ge=(Y,he)=>{let re={...u[he],conditions:1,inner:\"\"};re.prev=T,re.parens=A.parens,re.output=A.output;let me=(t.capture?\"(\":\"\")+re.open;Qe(\"parens\"),le({type:Y,value:he,output:A.output?\"\":p}),le({type:\"paren\",extglob:!0,value:Le(),output:me}),ae.push(re)},ie=Y=>{let he=Y.close+(t.capture?\")\":\"\"),re;if(Y.type===\"negate\"){let me=Z;Y.inner&&Y.inner.length>1&&Y.inner.includes(\"/\")&&(me=$(t)),(me!==Z||ue()||/^\\)+$/.test(Pe()))&&(he=Y.close=`)$))${me}`),Y.inner.includes(\"*\")&&(re=Pe())&&/^\\.[^\\\\/.]+$/.test(re)&&(he=Y.close=`)${re})${me})`),Y.prev.type===\"bos\"&&(A.negatedExtglob=!0)}le({type:\"paren\",extglob:!0,value:N,output:he}),fe(\"parens\")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\\]{}\"])/.test(r)){let Y=!1,he=r.replace(QQe,(re,me,tt,Rt,It,Kr)=>Rt===\"\\\\\"?(Y=!0,re):Rt===\"?\"?me?me+Rt+(It?D.repeat(It.length):\"\"):Kr===0?W+(It?D.repeat(It.length):\"\"):D.repeat(tt.length):Rt===\".\"?g.repeat(tt.length):Rt===\"*\"?me?me+Rt+(It?Z:\"\"):Z:me?re:`\\\\${re}`);return Y===!0&&(t.unescape===!0?he=he.replace(/\\\\/g,\"\"):he=he.replace(/\\\\+/g,re=>re.length%2===0?\"\\\\\\\\\":re?\"\\\\\":\"\")),he===r&&t.contains===!0?(A.output=r,A):(A.output=jn.wrapOutput(he,A,e),A)}for(;!ue();){if(N=Le(),N===\"\\0\")continue;if(N===\"\\\\\"){let re=we();if(re===\"/\"&&t.bash!==!0||re===\".\"||re===\";\")continue;if(!re){N+=\"\\\\\",le({type:\"text\",value:N});continue}let me=/^\\\\+/.exec(Pe()),tt=0;if(me&&me[0].length>2&&(tt=me[0].length,A.index+=tt,tt%2!==0&&(N+=\"\\\\\")),t.unescape===!0?N=Le():N+=Le(),A.brackets===0){le({type:\"text\",value:N});continue}}if(A.brackets>0&&(N!==\"]\"||T.value===\"[\"||T.value===\"[^\")){if(t.posix!==!1&&N===\":\"){let re=T.value.slice(1);if(re.includes(\"[\")&&(T.posix=!0,re.includes(\":\"))){let me=T.value.lastIndexOf(\"[\"),tt=T.value.slice(0,me),Rt=T.value.slice(me+2),It=wQe[Rt];if(It){T.value=tt+It,A.backtrack=!0,Le(),!s.output&&o.indexOf(T)===1&&(s.output=p);continue}}}(N===\"[\"&&we()!==\":\"||N===\"-\"&&we()===\"]\")&&(N=`\\\\${N}`),N===\"]\"&&(T.value===\"[\"||T.value===\"[^\")&&(N=`\\\\${N}`),t.posix===!0&&N===\"!\"&&T.value===\"[\"&&(N=\"^\"),T.value+=N,se({value:N});continue}if(A.quotes===1&&N!=='\"'){N=jn.escapeRegex(N),T.value+=N,se({value:N});continue}if(N==='\"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&le({type:\"text\",value:N});continue}if(N===\"(\"){Qe(\"parens\"),le({type:\"paren\",value:N});continue}if(N===\")\"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(Pf(\"opening\",\"(\"));let re=ae[ae.length-1];if(re&&A.parens===re.parens+1){ie(ae.pop());continue}le({type:\"paren\",value:N,output:A.parens?\")\":\"\\\\)\"}),fe(\"parens\");continue}if(N===\"[\"){if(t.nobracket===!0||!Pe().includes(\"]\")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(Pf(\"closing\",\"]\"));N=`\\\\${N}`}else Qe(\"brackets\");le({type:\"bracket\",value:N});continue}if(N===\"]\"){if(t.nobracket===!0||T&&T.type===\"bracket\"&&T.value.length===1){le({type:\"text\",value:N,output:`\\\\${N}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(Pf(\"opening\",\"[\"));le({type:\"text\",value:N,output:`\\\\${N}`});continue}fe(\"brackets\");let re=T.value.slice(1);if(T.posix!==!0&&re[0]===\"^\"&&!re.includes(\"/\")&&(N=`/${N}`),T.value+=N,se({value:N}),t.literalBrackets===!1||jn.hasRegexChars(re))continue;let me=jn.escapeRegex(T.value);if(A.output=A.output.slice(0,-T.value.length),t.literalBrackets===!0){A.output+=me,T.value=me;continue}T.value=`(${a}${me}|${T.value})`,A.output+=T.value;continue}if(N===\"{\"&&t.nobrace!==!0){Qe(\"braces\");let re={type:\"brace\",value:N,output:\"(\",outputIndex:A.output.length,tokensIndex:A.tokens.length};ge.push(re),le(re);continue}if(N===\"}\"){let re=ge[ge.length-1];if(t.nobrace===!0||!re){le({type:\"text\",value:N,output:N});continue}let me=\")\";if(re.dots===!0){let tt=o.slice(),Rt=[];for(let It=tt.length-1;It>=0&&(o.pop(),tt[It].type!==\"brace\");It--)tt[It].type!==\"dots\"&&Rt.unshift(tt[It].value);me=bQe(Rt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let tt=A.output.slice(0,re.outputIndex),Rt=A.tokens.slice(re.tokensIndex);re.value=re.output=\"\\\\{\",N=me=\"\\\\}\",A.output=tt;for(let It of Rt)A.output+=It.output||It.value}le({type:\"brace\",value:N,output:me}),fe(\"braces\"),ge.pop();continue}if(N===\"|\"){ae.length>0&&ae[ae.length-1].conditions++,le({type:\"text\",value:N});continue}if(N===\",\"){let re=N,me=ge[ge.length-1];me&&_[_.length-1]===\"braces\"&&(me.comma=!0,re=\"|\"),le({type:\"comma\",value:N,output:re});continue}if(N===\"/\"){if(T.type===\"dot\"&&A.index===A.start+1){A.start=A.index+1,A.consumed=\"\",A.output=\"\",o.pop(),T=s;continue}le({type:\"slash\",value:N,output:h});continue}if(N===\".\"){if(A.braces>0&&T.type===\"dot\"){T.value===\".\"&&(T.output=g);let re=ge[ge.length-1];T.type=\"dots\",T.output+=N,T.value+=N,re.dots=!0;continue}if(A.braces+A.parens===0&&T.type!==\"bos\"&&T.type!==\"slash\"){le({type:\"text\",value:N,output:g});continue}le({type:\"dot\",value:N,output:g});continue}if(N===\"?\"){if(!(T&&T.value===\"(\")&&t.noextglob!==!0&&we()===\"(\"&&we(2)!==\"?\"){Ge(\"qmark\",N);continue}if(T&&T.type===\"paren\"){let me=we(),tt=N;if(me===\"<\"&&!jn.supportsLookbehinds())throw new Error(\"Node.js v10 or higher is required for regex lookbehinds\");(T.value===\"(\"&&!/[!=<:]/.test(me)||me===\"<\"&&!/<([!=]|\\w+>)/.test(Pe()))&&(tt=`\\\\${N}`),le({type:\"text\",value:N,output:tt});continue}if(t.dot!==!0&&(T.type===\"slash\"||T.type===\"bos\")){le({type:\"qmark\",value:N,output:L});continue}le({type:\"qmark\",value:N,output:D});continue}if(N===\"!\"){if(t.noextglob!==!0&&we()===\"(\"&&(we(2)!==\"?\"||!/[!=<:]/.test(we(3)))){Ge(\"negate\",N);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(N===\"+\"){if(t.noextglob!==!0&&we()===\"(\"&&we(2)!==\"?\"){Ge(\"plus\",N);continue}if(T&&T.value===\"(\"||t.regex===!1){le({type:\"plus\",value:N,output:f});continue}if(T&&(T.type===\"bracket\"||T.type===\"paren\"||T.type===\"brace\")||A.parens>0){le({type:\"plus\",value:N});continue}le({type:\"plus\",value:f});continue}if(N===\"@\"){if(t.noextglob!==!0&&we()===\"(\"&&we(2)!==\"?\"){le({type:\"at\",extglob:!0,value:N,output:\"\"});continue}le({type:\"text\",value:N});continue}if(N!==\"*\"){(N===\"$\"||N===\"^\")&&(N=`\\\\${N}`);let re=BQe.exec(Pe());re&&(N+=re[0],A.index+=re[0].length),le({type:\"text\",value:N});continue}if(T&&(T.type===\"globstar\"||T.star===!0)){T.type=\"star\",T.star=!0,T.value+=N,T.output=Z,A.backtrack=!0,A.globstar=!0,Te(N);continue}let Y=Pe();if(t.noextglob!==!0&&/^\\([^?]/.test(Y)){Ge(\"star\",N);continue}if(T.type===\"star\"){if(t.noglobstar===!0){Te(N);continue}let re=T.prev,me=re.prev,tt=re.type===\"slash\"||re.type===\"bos\",Rt=me&&(me.type===\"star\"||me.type===\"globstar\");if(t.bash===!0&&(!tt||Y[0]&&Y[0]!==\"/\")){le({type:\"star\",value:N,output:\"\"});continue}let It=A.braces>0&&(re.type===\"comma\"||re.type===\"brace\"),Kr=ae.length&&(re.type===\"pipe\"||re.type===\"paren\");if(!tt&&re.type!==\"paren\"&&!It&&!Kr){le({type:\"star\",value:N,output:\"\"});continue}for(;Y.slice(0,3)===\"/**\";){let oi=r[A.index+4];if(oi&&oi!==\"/\")break;Y=Y.slice(3),Te(\"/**\",3)}if(re.type===\"bos\"&&ue()){T.type=\"globstar\",T.value+=N,T.output=$(t),A.output=T.output,A.globstar=!0,Te(N);continue}if(re.type===\"slash\"&&re.prev.type!==\"bos\"&&!Rt&&ue()){A.output=A.output.slice(0,-(re.output+T.output).length),re.output=`(?:${re.output}`,T.type=\"globstar\",T.output=$(t)+(t.strictSlashes?\")\":\"|$)\"),T.value+=N,A.globstar=!0,A.output+=re.output+T.output,Te(N);continue}if(re.type===\"slash\"&&re.prev.type!==\"bos\"&&Y[0]===\"/\"){let oi=Y[1]!==void 0?\"|$\":\"\";A.output=A.output.slice(0,-(re.output+T.output).length),re.output=`(?:${re.output}`,T.type=\"globstar\",T.output=`${$(t)}${h}|${h}${oi})`,T.value+=N,A.output+=re.output+T.output,A.globstar=!0,Te(N+Le()),le({type:\"slash\",value:\"/\",output:\"\"});continue}if(re.type===\"bos\"&&Y[0]===\"/\"){T.type=\"globstar\",T.value+=N,T.output=`(?:^|${h}|${$(t)}${h})`,A.output=T.output,A.globstar=!0,Te(N+Le()),le({type:\"slash\",value:\"/\",output:\"\"});continue}A.output=A.output.slice(0,-T.output.length),T.type=\"globstar\",T.output=$(t),T.value+=N,A.output+=T.output,A.globstar=!0,Te(N);continue}let he={type:\"star\",value:N,output:Z};if(t.bash===!0){he.output=\".*?\",(T.type===\"bos\"||T.type===\"slash\")&&(he.output=V+he.output),le(he);continue}if(T&&(T.type===\"bracket\"||T.type===\"paren\")&&t.regex===!0){he.output=N,le(he);continue}(A.index===A.start||T.type===\"slash\"||T.type===\"dot\")&&(T.type===\"dot\"?(A.output+=B,T.output+=B):t.dot===!0?(A.output+=v,T.output+=v):(A.output+=V,T.output+=V),we()!==\"*\"&&(A.output+=p,T.output+=p)),le(he)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(Pf(\"closing\",\"]\"));A.output=jn.escapeLast(A.output,\"[\"),fe(\"brackets\")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(Pf(\"closing\",\")\"));A.output=jn.escapeLast(A.output,\"(\"),fe(\"parens\")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(Pf(\"closing\",\"}\"));A.output=jn.escapeLast(A.output,\"{\"),fe(\"braces\")}if(t.strictSlashes!==!0&&(T.type===\"star\"||T.type===\"bracket\")&&le({type:\"maybe_slash\",value:\"\",output:`${h}?`}),A.backtrack===!0){A.output=\"\";for(let Y of A.tokens)A.output+=Y.output!=null?Y.output:Y.value,Y.suffix&&(A.output+=Y.suffix)}return A};U8.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength==\"number\"?Math.min(Ew,t.maxLength):Ew,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=K8[r]||r;let s=jn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:f,STAR:h,START_ANCHOR:p}=mw.globChars(s),C=t.dot?g:u,w=t.dot?f:u,B=t.capture?\"\":\"?:\",v={negated:!1,prefix:\"\"},D=t.bash===!0?\".*?\":h;t.capture&&(D=`(${D})`);let L=V=>V.noglobstar===!0?D:`(${B}(?:(?!${p}${V.dot?c:o}).)*?)`,H=V=>{switch(V){case\"*\":return`${C}${l}${D}`;case\".*\":return`${o}${l}${D}`;case\"*.*\":return`${C}${D}${o}${l}${D}`;case\"*/*\":return`${C}${D}${a}${l}${w}${D}`;case\"**\":return C+L(t);case\"**/*\":return`(?:${C}${L(t)}${a})?${w}${l}${D}`;case\"**/*.*\":return`(?:${C}${L(t)}${a})?${w}${D}${o}${l}${D}`;case\"**/.*\":return`(?:${C}${L(t)}${a})?${o}${l}${D}`;default:{let W=/^(.*?)\\.(\\w+)$/.exec(V);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},j=jn.removePrefix(r,v),$=H(j);return $&&t.strictSlashes!==!0&&($+=`${a}?`),$};H8.exports=U8});var j8=y((ztt,Y8)=>{\"use strict\";var SQe=J(\"path\"),vQe=M8(),BP=G8(),QP=cC(),xQe=lC(),PQe=r=>r&&typeof r==\"object\"&&!Array.isArray(r),qr=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(f=>qr(f,e,t));return f=>{for(let h of u){let p=h(f);if(p)return p}return!1}}let i=PQe(r)&&r.tokens&&r.input;if(r===\"\"||typeof r!=\"string\"&&!i)throw new TypeError(\"Expected pattern to be a non-empty string\");let n=e||{},s=QP.isWindows(e),o=i?qr.compileRe(r,e):qr.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=qr(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:f,match:h,output:p}=qr.test(u,o,e,{glob:r,posix:s}),C={glob:r,state:a,regex:o,posix:s,input:u,output:p,match:h,isMatch:f};return typeof n.onResult==\"function\"&&n.onResult(C),f===!1?(C.isMatch=!1,g?C:!1):l(u)?(typeof n.onIgnore==\"function\"&&n.onIgnore(C),C.isMatch=!1,g?C:!1):(typeof n.onMatch==\"function\"&&n.onMatch(C),g?C:!0)};return t&&(c.state=a),c};qr.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!=\"string\")throw new TypeError(\"Expected input to be a string\");if(r===\"\")return{isMatch:!1,output:\"\"};let s=t||{},o=s.format||(n?QP.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=qr.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};qr.matchBase=(r,e,t,i=QP.isWindows(t))=>(e instanceof RegExp?e:qr.makeRe(e,t)).test(SQe.basename(r));qr.isMatch=(r,e,t)=>qr(e,t)(r);qr.parse=(r,e)=>Array.isArray(r)?r.map(t=>qr.parse(t,e)):BP(r,{...e,fastpaths:!1});qr.scan=(r,e)=>vQe(r,e);qr.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?\"\":\"^\",o=n.contains?\"\":\"$\",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=qr.toRegex(a,e);return i===!0&&(l.state=r),l};qr.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!=\"string\")throw new TypeError(\"Expected a non-empty string\");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]===\".\"||r[0]===\"*\")&&(n.output=BP.fastpaths(r,e)),n.output||(n=BP(r,e)),qr.compileRe(n,e,t,i)};qr.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?\"i\":\"\"))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};qr.constants=xQe;Y8.exports=qr});var bP=y((Vtt,q8)=>{\"use strict\";q8.exports=j8()});var wn=y((Xtt,V8)=>{\"use strict\";var W8=J(\"util\"),z8=b8(),Ko=bP(),SP=cC(),J8=r=>r===\"\"||r===\"./\",Sr=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u<e.length;u++){let g=Ko(String(e[u]),{...t,onResult:a},!0),f=g.state.negated||g.state.negatedExtglob;f&&o++;for(let h of r){let p=g(h,!0);!(f?!p.isMatch:p.isMatch)||(f?i.add(p.output):(i.delete(p.output),n.add(p.output)))}}let c=(o===e.length?[...s]:[...n]).filter(u=>!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for \"${e.join(\", \")}\"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\\\/g,\"\")):e}return c};Sr.match=Sr;Sr.matcher=(r,e)=>Ko(r,e);Sr.isMatch=(r,e,t)=>Ko(e,t)(r);Sr.any=Sr.isMatch;Sr.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=Sr(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};Sr.contains=(r,e,t)=>{if(typeof r!=\"string\")throw new TypeError(`Expected a string: \"${W8.inspect(r)}\"`);if(Array.isArray(e))return e.some(i=>Sr.contains(r,i,t));if(typeof e==\"string\"){if(J8(r)||J8(e))return!1;if(r.includes(e)||r.startsWith(\"./\")&&r.slice(2).includes(e))return!0}return Sr.isMatch(r,e,{...t,contains:!0})};Sr.matchKeys=(r,e,t)=>{if(!SP.isObject(r))throw new TypeError(\"Expected the first argument to be an object\");let i=Sr(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};Sr.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};Sr.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};Sr.all=(r,e,t)=>{if(typeof r!=\"string\")throw new TypeError(`Expected a string: \"${W8.inspect(r)}\"`);return[].concat(e).every(i=>Ko(i,t)(r))};Sr.capture=(r,e,t)=>{let i=SP.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?SP.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?\"\":o)};Sr.makeRe=(...r)=>Ko.makeRe(...r);Sr.scan=(...r)=>Ko.scan(...r);Sr.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of z8(String(i),e))t.push(Ko.parse(n,e));return t};Sr.braces=(r,e)=>{if(typeof r!=\"string\")throw new TypeError(\"Expected a string\");return e&&e.nobrace===!0||!/\\{.*\\}/.test(r)?[r]:z8(r,e)};Sr.braceExpand=(r,e)=>{if(typeof r!=\"string\")throw new TypeError(\"Expected a string\");return Sr.braces(r,{...e,expand:!0})};V8.exports=Sr});var _8=y((_tt,X8)=>{\"use strict\";X8.exports=({onlyFirst:r=!1}={})=>{let e=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");return new RegExp(e,r?void 0:\"g\")}});var $8=y((Ztt,Z8)=>{\"use strict\";var DQe=_8();Z8.exports=r=>typeof r==\"string\"?r.replace(DQe(),\"\"):r});var h3=y((art,f3)=>{\"use strict\";f3.exports=(...r)=>[...new Set([].concat(...r))]});var WP=y((Art,C3)=>{\"use strict\";var YQe=J(\"stream\"),p3=YQe.PassThrough,jQe=Array.prototype.slice;C3.exports=qQe;function qQe(){let r=[],e=!1,t=jQe.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=p3(i);function o(){for(let c=0,u=arguments.length;c<u;c++)r.push(d3(arguments[c],i));return a(),this}function a(){if(e)return;e=!0;let c=r.shift();if(!c){process.nextTick(l);return}Array.isArray(c)||(c=[c]);let u=c.length+1;function g(){--u>0||(e=!1,a())}function f(h){function p(){h.removeListener(\"merge2UnpipeEnd\",p),h.removeListener(\"end\",p),g()}if(h._readableState.endEmitted)return g();h.on(\"merge2UnpipeEnd\",p),h.on(\"end\",p),h.pipe(s,{end:!1}),h.resume()}for(let h=0;h<c.length;h++)f(c[h]);g()}function l(){return e=!1,s.emit(\"queueDrain\"),n&&s.end()}return s.setMaxListeners(0),s.add=o,s.on(\"unpipe\",function(c){c.emit(\"merge2UnpipeEnd\")}),t.length&&o.apply(null,t),s}function d3(r,e){if(Array.isArray(r))for(let t=0,i=r.length;t<i;t++)r[t]=d3(r[t],e);else{if(!r._readableState&&r.pipe&&(r=r.pipe(p3(e))),!r._readableState||!r.pause||!r.pipe)throw new Error(\"Only readable stream can be merged.\");r.pause()}return r}});var m3=y(bw=>{\"use strict\";Object.defineProperty(bw,\"__esModule\",{value:!0});function JQe(r){return r.reduce((e,t)=>[].concat(e,t),[])}bw.flatten=JQe;function WQe(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}bw.splitWhen=WQe});var E3=y(zP=>{\"use strict\";Object.defineProperty(zP,\"__esModule\",{value:!0});function zQe(r){return r.code===\"ENOENT\"}zP.isEnoentCodeError=zQe});var I3=y(XP=>{\"use strict\";Object.defineProperty(XP,\"__esModule\",{value:!0});var VP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function VQe(r,e){return new VP(r,e)}XP.createDirentFromStats=VQe});var y3=y(Of=>{\"use strict\";Object.defineProperty(Of,\"__esModule\",{value:!0});var XQe=J(\"path\"),_Qe=2,ZQe=/(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\())/g;function $Qe(r){return r.replace(/\\\\/g,\"/\")}Of.unixify=$Qe;function ebe(r,e){return XQe.resolve(r,e)}Of.makeAbsolute=ebe;function tbe(r){return r.replace(ZQe,\"\\\\$2\")}Of.escape=tbe;function rbe(r){if(r.charAt(0)===\".\"){let e=r.charAt(1);if(e===\"/\"||e===\"\\\\\")return r.slice(_Qe)}return r}Of.removeLeadingDotSegment=rbe});var B3=y((frt,w3)=>{w3.exports=function(e){if(typeof e!=\"string\"||e===\"\")return!1;for(var t;t=/(\\\\).|([@?!+*]\\(.*\\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var S3=y((hrt,b3)=>{var ibe=B3(),Q3={\"{\":\"}\",\"(\":\")\",\"[\":\"]\"},nbe=function(r){if(r[0]===\"!\")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;e<r.length;){if(r[e]===\"*\"||r[e+1]===\"?\"&&/[\\].+)]/.test(r[e])||i!==-1&&r[e]===\"[\"&&r[e+1]!==\"]\"&&(i<e&&(i=r.indexOf(\"]\",e)),i>e&&(o===-1||o>i||(o=r.indexOf(\"\\\\\",e),o===-1||o>i)))||n!==-1&&r[e]===\"{\"&&r[e+1]!==\"}\"&&(n=r.indexOf(\"}\",e),n>e&&(o=r.indexOf(\"\\\\\",e),o===-1||o>n))||s!==-1&&r[e]===\"(\"&&r[e+1]===\"?\"&&/[:!=]/.test(r[e+2])&&r[e+3]!==\")\"&&(s=r.indexOf(\")\",e),s>e&&(o=r.indexOf(\"\\\\\",e),o===-1||o>s))||t!==-1&&r[e]===\"(\"&&r[e+1]!==\"|\"&&(t<e&&(t=r.indexOf(\"|\",e)),t!==-1&&r[t+1]!==\")\"&&(s=r.indexOf(\")\",t),s>t&&(o=r.indexOf(\"\\\\\",t),o===-1||o>s))))return!0;if(r[e]===\"\\\\\"){var a=r[e+1];e+=2;var l=Q3[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]===\"!\")return!0}else e++}return!1},sbe=function(r){if(r[0]===\"!\")return!0;for(var e=0;e<r.length;){if(/[*?{}()[\\]]/.test(r[e]))return!0;if(r[e]===\"\\\\\"){var t=r[e+1];e+=2;var i=Q3[t];if(i){var n=r.indexOf(i,e);n!==-1&&(e=n+1)}if(r[e]===\"!\")return!0}else e++}return!1};b3.exports=function(e,t){if(typeof e!=\"string\"||e===\"\")return!1;if(ibe(e))return!0;var i=nbe;return t&&t.strict===!1&&(i=sbe),i(e)}});var x3=y((prt,v3)=>{\"use strict\";var obe=S3(),abe=J(\"path\").posix.dirname,Abe=J(\"os\").platform()===\"win32\",_P=\"/\",lbe=/\\\\/g,cbe=/[\\{\\[].*[\\}\\]]$/,ube=/(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/,gbe=/\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;v3.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&Abe&&e.indexOf(_P)<0&&(e=e.replace(lbe,_P)),cbe.test(e)&&(e+=_P),e+=\"a\";do e=abe(e);while(obe(e)||ube.test(e));return e.replace(gbe,\"$1\")}});var O3=y(ri=>{\"use strict\";Object.defineProperty(ri,\"__esModule\",{value:!0});var fbe=J(\"path\"),hbe=x3(),P3=wn(),pbe=bP(),D3=\"**\",dbe=\"\\\\\",Cbe=/[*?]|^!/,mbe=/\\[.*]/,Ebe=/(?:^|[^!*+?@])\\(.*\\|.*\\)/,Ibe=/[!*+?@]\\(.*\\)/,ybe=/{.*(?:,|\\.\\.).*}/;function k3(r,e={}){return!R3(r,e)}ri.isStaticPattern=k3;function R3(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(dbe)||Cbe.test(r)||mbe.test(r)||Ebe.test(r)||e.extglob!==!1&&Ibe.test(r)||e.braceExpansion!==!1&&ybe.test(r))}ri.isDynamicPattern=R3;function wbe(r){return Sw(r)?r.slice(1):r}ri.convertToPositivePattern=wbe;function Bbe(r){return\"!\"+r}ri.convertToNegativePattern=Bbe;function Sw(r){return r.startsWith(\"!\")&&r[1]!==\"(\"}ri.isNegativePattern=Sw;function F3(r){return!Sw(r)}ri.isPositivePattern=F3;function Qbe(r){return r.filter(Sw)}ri.getNegativePatterns=Qbe;function bbe(r){return r.filter(F3)}ri.getPositivePatterns=bbe;function Sbe(r){return hbe(r,{flipBackslashes:!1})}ri.getBaseDirectory=Sbe;function vbe(r){return r.includes(D3)}ri.hasGlobStar=vbe;function N3(r){return r.endsWith(\"/\"+D3)}ri.endsWithSlashGlobStar=N3;function xbe(r){let e=fbe.basename(r);return N3(r)||k3(e)}ri.isAffectDepthOfReadingPattern=xbe;function Pbe(r){return r.reduce((e,t)=>e.concat(L3(t)),[])}ri.expandPatternsWithBraceExpansion=Pbe;function L3(r){return P3.braces(r,{expand:!0,nodupes:!0})}ri.expandBraceExpansion=L3;function Dbe(r,e){let t=pbe.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}ri.getPatternParts=Dbe;function T3(r,e){return P3.makeRe(r,e)}ri.makeRe=T3;function kbe(r,e){return r.map(t=>T3(t,e))}ri.convertPatternsToRe=kbe;function Rbe(r,e){return e.some(t=>t.test(r))}ri.matchAny=Rbe});var K3=y(ZP=>{\"use strict\";Object.defineProperty(ZP,\"__esModule\",{value:!0});var Fbe=WP();function Nbe(r){let e=Fbe(r);return r.forEach(t=>{t.once(\"error\",i=>e.emit(\"error\",i))}),e.once(\"close\",()=>M3(r)),e.once(\"end\",()=>M3(r)),e}ZP.merge=Nbe;function M3(r){r.forEach(e=>e.emit(\"close\"))}});var U3=y(vw=>{\"use strict\";Object.defineProperty(vw,\"__esModule\",{value:!0});function Lbe(r){return typeof r==\"string\"}vw.isString=Lbe;function Tbe(r){return r===\"\"}vw.isEmpty=Tbe});var Ma=y(Oa=>{\"use strict\";Object.defineProperty(Oa,\"__esModule\",{value:!0});var Obe=m3();Oa.array=Obe;var Mbe=E3();Oa.errno=Mbe;var Kbe=I3();Oa.fs=Kbe;var Ube=y3();Oa.path=Ube;var Hbe=O3();Oa.pattern=Hbe;var Gbe=K3();Oa.stream=Gbe;var Ybe=U3();Oa.string=Ybe});var q3=y(Ka=>{\"use strict\";Object.defineProperty(Ka,\"__esModule\",{value:!0});var Mc=Ma();function jbe(r,e){let t=H3(r),i=G3(r,e.ignore),n=t.filter(l=>Mc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Mc.pattern.isDynamicPattern(l,e)),o=$P(n,i,!1),a=$P(s,i,!0);return o.concat(a)}Ka.generate=jbe;function $P(r,e,t){let i=Y3(r);return\".\"in i?[eD(\".\",r,e,t)]:j3(i,e,t)}Ka.convertPatternsToTasks=$P;function H3(r){return Mc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=H3;function G3(r,e){return Mc.pattern.getNegativePatterns(r).concat(e).map(Mc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=G3;function Y3(r){let e={};return r.reduce((t,i)=>{let n=Mc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=Y3;function j3(r,e,t){return Object.keys(r).map(i=>eD(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=j3;function eD(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Mc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=eD});var W3=y(xw=>{\"use strict\";Object.defineProperty(xw,\"__esModule\",{value:!0});xw.read=void 0;function qbe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){J3(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){tD(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){J3(t,s);return}tD(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),tD(t,o)})})}xw.read=qbe;function J3(r,e){r(e)}function tD(r,e){r(null,e)}});var z3=y(Pw=>{\"use strict\";Object.defineProperty(Pw,\"__esModule\",{value:!0});Pw.read=void 0;function Jbe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}Pw.read=Jbe});var V3=y(qA=>{\"use strict\";Object.defineProperty(qA,\"__esModule\",{value:!0});qA.createFileSystemAdapter=qA.FILE_SYSTEM_ADAPTER=void 0;var Dw=J(\"fs\");qA.FILE_SYSTEM_ADAPTER={lstat:Dw.lstat,stat:Dw.stat,lstatSync:Dw.lstatSync,statSync:Dw.statSync};function Wbe(r){return r===void 0?qA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},qA.FILE_SYSTEM_ADAPTER),r)}qA.createFileSystemAdapter=Wbe});var X3=y(iD=>{\"use strict\";Object.defineProperty(iD,\"__esModule\",{value:!0});var zbe=V3(),rD=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=zbe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};iD.default=rD});var Kc=y(JA=>{\"use strict\";Object.defineProperty(JA,\"__esModule\",{value:!0});JA.statSync=JA.stat=JA.Settings=void 0;var _3=W3(),Vbe=z3(),nD=X3();JA.Settings=nD.default;function Xbe(r,e,t){if(typeof e==\"function\"){_3.read(r,sD(),e);return}_3.read(r,sD(e),t)}JA.stat=Xbe;function _be(r,e){let t=sD(e);return Vbe.read(r,t)}JA.statSync=_be;function sD(r={}){return r instanceof nD.default?r:new nD.default(r)}});var $3=y((Srt,Z3)=>{Z3.exports=Zbe;function Zbe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var oD=y(Rw=>{\"use strict\";Object.defineProperty(Rw,\"__esModule\",{value:!0});Rw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var kw=process.versions.node.split(\".\");if(kw[0]===void 0||kw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var e4=Number.parseInt(kw[0],10),$be=Number.parseInt(kw[1],10),t4=10,eSe=10,tSe=e4>t4,rSe=e4===t4&&$be>=eSe;Rw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=tSe||rSe});var r4=y(Fw=>{\"use strict\";Object.defineProperty(Fw,\"__esModule\",{value:!0});Fw.createDirentFromStats=void 0;var aD=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function iSe(r,e){return new aD(r,e)}Fw.createDirentFromStats=iSe});var AD=y(Nw=>{\"use strict\";Object.defineProperty(Nw,\"__esModule\",{value:!0});Nw.fs=void 0;var nSe=r4();Nw.fs=nSe});var lD=y(Lw=>{\"use strict\";Object.defineProperty(Lw,\"__esModule\",{value:!0});Lw.joinPathSegments=void 0;function sSe(r,e,t){return r.endsWith(t)?r+e:r+t+e}Lw.joinPathSegments=sSe});var A4=y(WA=>{\"use strict\";Object.defineProperty(WA,\"__esModule\",{value:!0});WA.readdir=WA.readdirWithFileTypes=WA.read=void 0;var oSe=Kc(),i4=$3(),aSe=oD(),n4=AD(),s4=lD();function ASe(r,e,t){if(!e.stats&&aSe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){o4(r,e,t);return}a4(r,e,t)}WA.read=ASe;function o4(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){Tw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:s4.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){cD(t,s);return}let o=s.map(a=>lSe(a,e));i4(o,(a,l)=>{if(a!==null){Tw(t,a);return}cD(t,l)})})}WA.readdirWithFileTypes=o4;function lSe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=n4.fs.createDirentFromStats(r.name,n),t(null,r)})}}function a4(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){Tw(t,i);return}let s=n.map(o=>{let a=s4.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{oSe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:n4.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});i4(s,(o,a)=>{if(o!==null){Tw(t,o);return}cD(t,a)})})}WA.readdir=a4;function Tw(r,e){r(e)}function cD(r,e){r(null,e)}});var f4=y(zA=>{\"use strict\";Object.defineProperty(zA,\"__esModule\",{value:!0});zA.readdir=zA.readdirWithFileTypes=zA.read=void 0;var cSe=Kc(),uSe=oD(),l4=AD(),c4=lD();function gSe(r,e){return!e.stats&&uSe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?u4(r,e):g4(r,e)}zA.read=gSe;function u4(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:c4.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=l4.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}zA.readdirWithFileTypes=u4;function g4(r,e){return e.fs.readdirSync(r).map(i=>{let n=c4.joinPathSegments(r,i,e.pathSegmentSeparator),s=cSe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:l4.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}zA.readdir=g4});var h4=y(VA=>{\"use strict\";Object.defineProperty(VA,\"__esModule\",{value:!0});VA.createFileSystemAdapter=VA.FILE_SYSTEM_ADAPTER=void 0;var Mf=J(\"fs\");VA.FILE_SYSTEM_ADAPTER={lstat:Mf.lstat,stat:Mf.stat,lstatSync:Mf.lstatSync,statSync:Mf.statSync,readdir:Mf.readdir,readdirSync:Mf.readdirSync};function fSe(r){return r===void 0?VA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},VA.FILE_SYSTEM_ADAPTER),r)}VA.createFileSystemAdapter=fSe});var p4=y(gD=>{\"use strict\";Object.defineProperty(gD,\"__esModule\",{value:!0});var hSe=J(\"path\"),pSe=Kc(),dSe=h4(),uD=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=dSe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,hSe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new pSe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};gD.default=uD});var Ow=y(XA=>{\"use strict\";Object.defineProperty(XA,\"__esModule\",{value:!0});XA.Settings=XA.scandirSync=XA.scandir=void 0;var d4=A4(),CSe=f4(),fD=p4();XA.Settings=fD.default;function mSe(r,e,t){if(typeof e==\"function\"){d4.read(r,hD(),e);return}d4.read(r,hD(e),t)}XA.scandir=mSe;function ESe(r,e){let t=hD(e);return CSe.read(r,t)}XA.scandirSync=ESe;function hD(r={}){return r instanceof fD.default?r:new fD.default(r)}});var m4=y((Trt,C4)=>{\"use strict\";function ISe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}C4.exports=ISe});var I4=y((Ort,pD)=>{\"use strict\";var ySe=m4();function E4(r,e,t){if(typeof r==\"function\"&&(t=e,e=r,r=null),t<1)throw new Error(\"fastqueue concurrency must be greater than 1\");var i=ySe(wSe),n=null,s=null,o=0,a=null,l={push:C,drain:ds,saturated:ds,pause:u,paused:!1,concurrency:t,running:c,resume:h,idle:p,length:g,getQueue:f,unshift:w,empty:ds,kill:v,killAndDrain:D,error:L};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,j=0;H;)H=H.next,j++;return j}function f(){for(var H=n,j=[];H;)j.push(H.value),H=H.next;return j}function h(){if(!!l.paused){l.paused=!1;for(var H=0;H<l.concurrency;H++)o++,B()}}function p(){return o===0&&l.length()===0}function C(H,j){var $=i.get();$.context=r,$.release=B,$.value=H,$.callback=j||ds,$.errorHandler=a,o===l.concurrency||l.paused?s?(s.next=$,s=$):(n=$,s=$,l.saturated()):(o++,e.call(r,$.value,$.worked))}function w(H,j){var $=i.get();$.context=r,$.release=B,$.value=H,$.callback=j||ds,o===l.concurrency||l.paused?n?($.next=n,n=$):(n=$,s=$,l.saturated()):(o++,e.call(r,$.value,$.worked))}function B(H){H&&i.release(H);var j=n;j?l.paused?o--:(s===n&&(s=null),n=j.next,j.next=null,e.call(r,j.value,j.worked),s===null&&l.empty()):--o===0&&l.drain()}function v(){n=null,s=null,l.drain=ds}function D(){n=null,s=null,l.drain(),l.drain=ds}function L(H){a=H}}function ds(){}function wSe(){this.value=null,this.callback=ds,this.next=null,this.release=ds,this.context=null,this.errorHandler=null;var r=this;this.worked=function(t,i){var n=r.callback,s=r.errorHandler,o=r.value;r.value=null,r.callback=ds,r.errorHandler&&s(t,o),n.call(r.context,t,i),r.release(r)}}function BSe(r,e,t){typeof r==\"function\"&&(t=e,e=r,r=null);function i(u,g){e.call(this,u).then(function(f){g(null,f)},g)}var n=E4(r,i,t),s=n.push,o=n.unshift;return n.push=a,n.unshift=l,n.drained=c,n;function a(u){var g=new Promise(function(f,h){s(u,function(p,C){if(p){h(p);return}f(C)})});return g.catch(ds),g}function l(u){var g=new Promise(function(f,h){o(u,function(p,C){if(p){h(p);return}f(C)})});return g.catch(ds),g}function c(){var u=n.drain,g=new Promise(function(f){n.drain=function(){u(),f()}});return g}}pD.exports=E4;pD.exports.promise=BSe});var Mw=y(Go=>{\"use strict\";Object.defineProperty(Go,\"__esModule\",{value:!0});Go.joinPathSegments=Go.replacePathSegmentSeparator=Go.isAppliedFilter=Go.isFatalError=void 0;function QSe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}Go.isFatalError=QSe;function bSe(r,e){return r===null||r(e)}Go.isAppliedFilter=bSe;function SSe(r,e){return r.split(/[/\\\\]/).join(e)}Go.replacePathSegmentSeparator=SSe;function vSe(r,e,t){return r===\"\"?e:r.endsWith(t)?r+e:r+t+e}Go.joinPathSegments=vSe});var mD=y(CD=>{\"use strict\";Object.defineProperty(CD,\"__esModule\",{value:!0});var xSe=Mw(),dD=class{constructor(e,t){this._root=e,this._settings=t,this._root=xSe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};CD.default=dD});var yD=y(ID=>{\"use strict\";Object.defineProperty(ID,\"__esModule\",{value:!0});var PSe=J(\"events\"),DSe=Ow(),kSe=I4(),Kw=Mw(),RSe=mD(),ED=class extends RSe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=DSe.scandir,this._emitter=new PSe.EventEmitter,this._queue=kSe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit(\"end\")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error(\"The reader is already destroyed\");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on(\"entry\",e)}onError(e){this._emitter.once(\"error\",e)}onEnd(e){this._emitter.once(\"end\",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!Kw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit(\"error\",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=Kw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),Kw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&Kw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit(\"entry\",e)}};ID.default=ED});var y4=y(BD=>{\"use strict\";Object.defineProperty(BD,\"__esModule\",{value:!0});var FSe=yD(),wD=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new FSe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{NSe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{LSe(e,[...this._storage])}),this._reader.read()}};BD.default=wD;function NSe(r,e){r(e)}function LSe(r,e){r(null,e)}});var w4=y(bD=>{\"use strict\";Object.defineProperty(bD,\"__esModule\",{value:!0});var TSe=J(\"stream\"),OSe=yD(),QD=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new OSe.default(this._root,this._settings),this._stream=new TSe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit(\"error\",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};bD.default=QD});var B4=y(vD=>{\"use strict\";Object.defineProperty(vD,\"__esModule\",{value:!0});var MSe=Ow(),Uw=Mw(),KSe=mD(),SD=class extends KSe.default{constructor(){super(...arguments),this._scandir=MSe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!Uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=Uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),Uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&Uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};vD.default=SD});var Q4=y(PD=>{\"use strict\";Object.defineProperty(PD,\"__esModule\",{value:!0});var USe=B4(),xD=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new USe.default(this._root,this._settings)}read(){return this._reader.read()}};PD.default=xD});var b4=y(kD=>{\"use strict\";Object.defineProperty(kD,\"__esModule\",{value:!0});var HSe=J(\"path\"),GSe=Ow(),DD=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,HSe.sep),this.fsScandirSettings=new GSe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};kD.default=DD});var FD=y(Yo=>{\"use strict\";Object.defineProperty(Yo,\"__esModule\",{value:!0});Yo.Settings=Yo.walkStream=Yo.walkSync=Yo.walk=void 0;var S4=y4(),YSe=w4(),jSe=Q4(),RD=b4();Yo.Settings=RD.default;function qSe(r,e,t){if(typeof e==\"function\"){new S4.default(r,Hw()).read(e);return}new S4.default(r,Hw(e)).read(t)}Yo.walk=qSe;function JSe(r,e){let t=Hw(e);return new jSe.default(r,t).read()}Yo.walkSync=JSe;function WSe(r,e){let t=Hw(e);return new YSe.default(r,t).read()}Yo.walkStream=WSe;function Hw(r={}){return r instanceof RD.default?r:new RD.default(r)}});var TD=y(LD=>{\"use strict\";Object.defineProperty(LD,\"__esModule\",{value:!0});var zSe=J(\"path\"),VSe=Kc(),v4=Ma(),ND=class{constructor(e){this._settings=e,this._fsStatSettings=new VSe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return zSe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:v4.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!v4.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};LD.default=ND});var KD=y(MD=>{\"use strict\";Object.defineProperty(MD,\"__esModule\",{value:!0});var XSe=J(\"stream\"),_Se=Kc(),ZSe=FD(),$Se=TD(),OD=class extends $Se.default{constructor(){super(...arguments),this._walkStream=ZSe.walkStream,this._stat=_Se.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new XSe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;s<i.length;s++)n.write(s);return n}_getEntry(e,t,i){return this._getStat(e).then(n=>this._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};MD.default=OD});var x4=y(HD=>{\"use strict\";Object.defineProperty(HD,\"__esModule\",{value:!0});var Kf=Ma(),UD=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Kf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Kf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Kf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Kf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Kf.array.splitWhen(e,t=>t.dynamic&&Kf.pattern.hasGlobStar(t.pattern))}};HD.default=UD});var P4=y(YD=>{\"use strict\";Object.defineProperty(YD,\"__esModule\",{value:!0});var eve=x4(),GD=class extends eve.default{match(e){let t=e.split(\"/\"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};YD.default=GD});var D4=y(qD=>{\"use strict\";Object.defineProperty(qD,\"__esModule\",{value:!0});var Gw=Ma(),tve=P4(),jD=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new tve.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(Gw.pattern.isAffectDepthOfReadingPattern);return Gw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=Gw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split(\"/\").length;return t.split(\"/\").length-(e===\"\"?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!Gw.pattern.matchAny(e,t)}};qD.default=jD});var k4=y(WD=>{\"use strict\";Object.defineProperty(WD,\"__esModule\",{value:!0});var mC=Ma(),JD=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=mC.pattern.convertPatternsToRe(e,this._micromatchOptions),n=mC.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=mC.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=mC.path.removeLeadingDotSegment(e);return mC.pattern.matchAny(i,t)}};WD.default=JD});var R4=y(VD=>{\"use strict\";Object.defineProperty(VD,\"__esModule\",{value:!0});var rve=Ma(),zD=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return rve.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};VD.default=zD});var N4=y(_D=>{\"use strict\";Object.defineProperty(_D,\"__esModule\",{value:!0});var F4=Ma(),XD=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=F4.path.makeAbsolute(this._settings.cwd,t),t=F4.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+=\"/\"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};_D.default=XD});var Yw=y($D=>{\"use strict\";Object.defineProperty($D,\"__esModule\",{value:!0});var ive=J(\"path\"),nve=D4(),sve=k4(),ove=R4(),ave=N4(),ZD=class{constructor(e){this._settings=e,this.errorFilter=new ove.default(this._settings),this.entryFilter=new sve.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new nve.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new ave.default(this._settings)}_getRootDirectory(e){return ive.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base===\".\"?\"\":e.base;return{basePath:t,pathSegmentSeparator:\"/\",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};$D.default=ZD});var L4=y(tk=>{\"use strict\";Object.defineProperty(tk,\"__esModule\",{value:!0});var Ave=KD(),lve=Yw(),ek=class extends lve.default{constructor(){super(...arguments),this._reader=new Ave.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once(\"error\",o),a.on(\"data\",l=>n.push(i.transform(l))),a.once(\"end\",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};tk.default=ek});var T4=y(ik=>{\"use strict\";Object.defineProperty(ik,\"__esModule\",{value:!0});var cve=J(\"stream\"),uve=KD(),gve=Yw(),rk=class extends gve.default{constructor(){super(...arguments),this._reader=new uve.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new cve.Readable({objectMode:!0,read:()=>{}});return n.once(\"error\",o=>s.emit(\"error\",o)).on(\"data\",o=>s.emit(\"data\",i.transform(o))).once(\"end\",()=>s.emit(\"end\")),s.once(\"close\",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};ik.default=rk});var O4=y(sk=>{\"use strict\";Object.defineProperty(sk,\"__esModule\",{value:!0});var fve=Kc(),hve=FD(),pve=TD(),nk=class extends pve.default{constructor(){super(...arguments),this._walkSync=hve.walkSync,this._statSync=fve.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};sk.default=nk});var M4=y(ak=>{\"use strict\";Object.defineProperty(ak,\"__esModule\",{value:!0});var dve=O4(),Cve=Yw(),ok=class extends Cve.default{constructor(){super(...arguments),this._reader=new dve.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};ak.default=ok});var K4=y(EC=>{\"use strict\";Object.defineProperty(EC,\"__esModule\",{value:!0});var Uf=J(\"fs\"),mve=J(\"os\"),Eve=mve.cpus().length;EC.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Uf.lstat,lstatSync:Uf.lstatSync,stat:Uf.stat,statSync:Uf.statSync,readdir:Uf.readdir,readdirSync:Uf.readdirSync};var Ak=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,Eve),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},EC.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};EC.default=Ak});var jw=y((ait,H4)=>{\"use strict\";var U4=q3(),Ive=L4(),yve=T4(),wve=M4(),lk=K4(),Uc=Ma();async function ck(r,e){Hf(r);let t=uk(r,Ive.default,e),i=await Promise.all(t);return Uc.array.flatten(i)}(function(r){function e(o,a){Hf(o);let l=uk(o,wve.default,a);return Uc.array.flatten(l)}r.sync=e;function t(o,a){Hf(o);let l=uk(o,yve.default,a);return Uc.stream.merge(l)}r.stream=t;function i(o,a){Hf(o);let l=[].concat(o),c=new lk.default(a);return U4.generate(l,c)}r.generateTasks=i;function n(o,a){Hf(o);let l=new lk.default(a);return Uc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return Hf(o),Uc.path.escape(o)}r.escapePath=s})(ck||(ck={}));function uk(r,e,t){let i=[].concat(r),n=new lk.default(t),s=U4.generate(i,n),o=new e(n);return s.map(o.read,o)}function Hf(r){if(![].concat(r).every(i=>Uc.string.isString(i)&&!Uc.string.isEmpty(i)))throw new TypeError(\"Patterns must be a string (non empty) or an array of strings\")}H4.exports=ck});var Y4=y(Hc=>{\"use strict\";var{promisify:Bve}=J(\"util\"),G4=J(\"fs\");async function gk(r,e,t){if(typeof t!=\"string\")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await Bve(G4[r])(t))[e]()}catch(i){if(i.code===\"ENOENT\")return!1;throw i}}function fk(r,e,t){if(typeof t!=\"string\")throw new TypeError(`Expected a string, got ${typeof t}`);try{return G4[r](t)[e]()}catch(i){if(i.code===\"ENOENT\")return!1;throw i}}Hc.isFile=gk.bind(null,\"stat\",\"isFile\");Hc.isDirectory=gk.bind(null,\"stat\",\"isDirectory\");Hc.isSymlink=gk.bind(null,\"lstat\",\"isSymbolicLink\");Hc.isFileSync=fk.bind(null,\"statSync\",\"isFile\");Hc.isDirectorySync=fk.bind(null,\"statSync\",\"isDirectory\");Hc.isSymlinkSync=fk.bind(null,\"lstatSync\",\"isSymbolicLink\")});var z4=y((lit,hk)=>{\"use strict\";var Gc=J(\"path\"),j4=Y4(),q4=r=>r.length>1?`{${r.join(\",\")}}`:r[0],J4=(r,e)=>{let t=r[0]===\"!\"?r.slice(1):r;return Gc.isAbsolute(t)?t:Gc.join(e,t)},Qve=(r,e)=>Gc.extname(r)?`**/${r}`:`**/${r}.${q4(e)}`,W4=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \\`files\\` to be of type \\`Array\\` but received type \\`${typeof e.files}\\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \\`extensions\\` to be of type \\`Array\\` but received type \\`${typeof e.extensions}\\``);return e.files&&e.extensions?e.files.map(t=>Gc.posix.join(r,Qve(t,e.extensions))):e.files?e.files.map(t=>Gc.posix.join(r,`**/${t}`)):e.extensions?[Gc.posix.join(r,`**/*.${q4(e.extensions)}`)]:[Gc.posix.join(r,\"**\")]};hk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!=\"string\")throw new TypeError(`Expected \\`cwd\\` to be of type \\`string\\` but received type \\`${typeof e.cwd}\\``);let t=await Promise.all([].concat(r).map(async i=>await j4.isDirectory(J4(i,e.cwd))?W4(i,e):i));return[].concat.apply([],t)};hk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!=\"string\")throw new TypeError(`Expected \\`cwd\\` to be of type \\`string\\` but received type \\`${typeof e.cwd}\\``);let t=[].concat(r).map(i=>j4.isDirectorySync(J4(i,e.cwd))?W4(i,e):i);return[].concat.apply([],t)}});var rz=y((cit,tz)=>{function V4(r){return Array.isArray(r)?r:[r]}var $4=\"\",X4=\" \",pk=\"\\\\\",bve=/^\\s+$/,Sve=/^\\\\!/,vve=/^\\\\#/,xve=/\\r?\\n/g,Pve=/^\\.*\\/|^\\.+$/,dk=\"/\",_4=typeof Symbol<\"u\"?Symbol.for(\"node-ignore\"):\"node-ignore\",Dve=(r,e,t)=>Object.defineProperty(r,e,{value:t}),kve=/([0-z])-([0-z])/g,Rve=r=>r.replace(kve,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:$4),Fve=r=>{let{length:e}=r;return r.slice(0,e-e%2)},Nve=[[/\\\\?\\s+$/,r=>r.indexOf(\"\\\\\")===0?X4:$4],[/\\\\\\s/g,()=>X4],[/[\\\\$.|*+(){^]/g,r=>`\\\\${r}`],[/(?!\\\\)\\?/g,()=>\"[^/]\"],[/^\\//,()=>\"^\"],[/\\//g,()=>\"\\\\/\"],[/^\\^*\\\\\\*\\\\\\*\\\\\\//,()=>\"^(?:.*\\\\/)?\"],[/^(?=[^^])/,function(){return/\\/(?!$)/.test(this)?\"^\":\"(?:^|\\\\/)\"}],[/\\\\\\/\\\\\\*\\\\\\*(?=\\\\\\/|$)/g,(r,e,t)=>e+6<t.length?\"(?:\\\\/[^\\\\/]+)*\":\"\\\\/.+\"],[/(^|[^\\\\]+)\\\\\\*(?=.+)/g,(r,e)=>`${e}[^\\\\/]*`],[/\\\\\\\\\\\\(?=[$.|*+(){^])/g,()=>pk],[/\\\\\\\\/g,()=>pk],[/(\\\\)?\\[([^\\]/]*?)(\\\\*)($|\\])/g,(r,e,t,i,n)=>e===pk?`\\\\[${t}${Fve(i)}${n}`:n===\"]\"&&i.length%2===0?`[${Rve(t)}${i}]`:\"[]\"],[/(?:[^*])$/,r=>/\\/$/.test(r)?`${r}$`:`${r}(?=$|\\\\/$)`],[/(\\^|\\\\\\/)?\\\\\\*$/,(r,e)=>`${e?`${e}[^/]+`:\"[^/]*\"}(?=$|\\\\/$)`]],Z4=Object.create(null),Lve=(r,e)=>{let t=Z4[r];return t||(t=Nve.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),Z4[r]=t),e?new RegExp(t,\"i\"):new RegExp(t)},Ek=r=>typeof r==\"string\",Tve=r=>r&&Ek(r)&&!bve.test(r)&&r.indexOf(\"#\")!==0,Ove=r=>r.split(xve),Ck=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},Mve=(r,e)=>{let t=r,i=!1;r.indexOf(\"!\")===0&&(i=!0,r=r.substr(1)),r=r.replace(Sve,\"!\").replace(vve,\"#\");let n=Lve(r,e);return new Ck(t,r,i,n)},Kve=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Ek(r)?r?Ua.isNotRelative(r)?t(`path should be a \\`path.relative()\\`d string, but got \"${e}\"`,RangeError):!0:t(\"path must not be empty\",TypeError):t(`path must be a string, but got \\`${e}\\``,TypeError),ez=r=>Pve.test(r);Ua.isNotRelative=ez;Ua.convert=r=>r;var mk=class{constructor({ignorecase:e=!0}={}){Dve(this,_4,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[_4]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Tve(e)){let t=Mve(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,V4(Ek(e)?Ove(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,Kve),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(dk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(dk)+dk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return V4(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},qw=r=>new mk(r),Uve=()=>!1,Hve=r=>Ua(r&&Ua.convert(r),r,Uve);qw.isPathValid=Hve;qw.default=qw;tz.exports=qw;if(typeof process<\"u\"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform===\"win32\")){let r=t=>/^\\\\\\\\\\?\\\\/.test(t)||/[\"<>|\\u0000-\\u001F]+/u.test(t)?t:t.replace(/\\\\/g,\"/\");Ua.convert=r;let e=/^[a-z]:\\//i;Ua.isNotRelative=t=>e.test(t)||ez(t)}});var nz=y((uit,iz)=>{\"use strict\";iz.exports=r=>{let e=/^\\\\\\\\\\?\\\\/.test(r),t=/[^\\u0000-\\u0080]+/.test(r);return e||t?r:r.replace(/\\\\/g,\"/\")}});var uz=y((git,Ik)=>{\"use strict\";var{promisify:Gve}=J(\"util\"),sz=J(\"fs\"),Ha=J(\"path\"),oz=jw(),Yve=rz(),IC=nz(),az=[\"**/node_modules/**\",\"**/flow-typed/**\",\"**/coverage/**\",\"**/.git\"],jve=Gve(sz.readFile),qve=r=>e=>e.startsWith(\"!\")?\"!\"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),Jve=(r,e)=>{let t=IC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\\r?\\n/).filter(Boolean).filter(i=>!i.startsWith(\"#\")).map(qve(t))},Az=r=>{let e=Yve();for(let t of r)e.add(Jve(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},Wve=(r,e)=>{if(r=IC(r),Ha.isAbsolute(e)){if(IC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},lz=(r,e)=>t=>r.ignores(IC(Ha.relative(e,Wve(e,t.path||t)))),zve=async(r,e)=>{let t=Ha.join(e,r),i=await jve(t,\"utf8\");return{cwd:e,filePath:t,content:i}},Vve=(r,e)=>{let t=Ha.join(e,r),i=sz.readFileSync(t,\"utf8\");return{cwd:e,filePath:t,content:i}},cz=({ignore:r=[],cwd:e=IC(process.cwd())}={})=>({ignore:r,cwd:e});Ik.exports=async r=>{r=cz(r);let e=await oz(\"**/.gitignore\",{ignore:az.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>zve(n,r.cwd))),i=Az(t);return lz(i,r.cwd)};Ik.exports.sync=r=>{r=cz(r);let t=oz.sync(\"**/.gitignore\",{ignore:az.concat(r.ignore),cwd:r.cwd}).map(n=>Vve(n,r.cwd)),i=Az(t);return lz(i,r.cwd)}});var fz=y((fit,gz)=>{\"use strict\";var{Transform:Xve}=J(\"stream\"),Jw=class extends Xve{constructor(){super({objectMode:!0})}},yk=class extends Jw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},wk=class extends Jw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};gz.exports={FilterStream:yk,UniqueStream:wk}});var Sk=y((hit,Yc)=>{\"use strict\";var pz=J(\"fs\"),Ww=h3(),_ve=WP(),zw=jw(),Vw=z4(),Bk=uz(),{FilterStream:Zve,UniqueStream:$ve}=fz(),dz=()=>!1,hz=r=>r[0]===\"!\",exe=r=>{if(!r.every(e=>typeof e==\"string\"))throw new TypeError(\"Patterns must be a string or an array of strings\")},txe=(r={})=>{if(!r.cwd)return;let e;try{e=pz.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error(\"The `cwd` option must be a path to a directory\")},rxe=r=>r.stats instanceof pz.Stats?r.path:r,Xw=(r,e)=>{r=Ww([].concat(r)),exe(r),txe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(hz(n))continue;let s=r.slice(i).filter(a=>hz(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},ixe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories==\"object\"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Qk=(r,e)=>r.options.expandDirectories?ixe(r,e):[r.pattern],Cz=r=>r&&r.gitignore?Bk.sync({cwd:r.cwd,ignore:r.ignore}):dz,bk=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Vw.sync(t.ignore)),{pattern:e,options:t}};Yc.exports=async(r,e)=>{let t=Xw(r,e),i=async()=>e&&e.gitignore?Bk({cwd:e.cwd,ignore:e.ignore}):dz,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Qk(c,Vw);return Promise.all(u.map(bk(c)))}));return Ww(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>zw(l.pattern,l.options)));return Ww(...a).filter(l=>!s(rxe(l)))};Yc.exports.sync=(r,e)=>{let t=Xw(r,e),i=[];for(let o of t){let a=Qk(o,Vw.sync).map(bk(o));i.push(...a)}let n=Cz(e),s=[];for(let o of i)s=Ww(s,zw.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Yc.exports.stream=(r,e)=>{let t=Xw(r,e),i=[];for(let a of t){let l=Qk(a,Vw.sync).map(bk(a));i.push(...l)}let n=Cz(e),s=new Zve(a=>!n(a)),o=new $ve;return _ve(i.map(a=>zw.stream(a.pattern,a.options))).pipe(s).pipe(o)};Yc.exports.generateGlobTasks=Xw;Yc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>zw.isDynamicPattern(t,e));Yc.exports.gitignore=Bk});var Sn=y((kit,Rz)=>{function dxe(r){var e=typeof r;return r!=null&&(e==\"object\"||e==\"function\")}Rz.exports=dxe});var Lk=y((Rit,Fz)=>{var Cxe=typeof global==\"object\"&&global&&global.Object===Object&&global;Fz.exports=Cxe});var Cs=y((Fit,Nz)=>{var mxe=Lk(),Exe=typeof self==\"object\"&&self&&self.Object===Object&&self,Ixe=mxe||Exe||Function(\"return this\")();Nz.exports=Ixe});var Tz=y((Nit,Lz)=>{var yxe=Cs(),wxe=function(){return yxe.Date.now()};Lz.exports=wxe});var Mz=y((Lit,Oz)=>{var Bxe=/\\s/;function Qxe(r){for(var e=r.length;e--&&Bxe.test(r.charAt(e)););return e}Oz.exports=Qxe});var Uz=y((Tit,Kz)=>{var bxe=Mz(),Sxe=/^\\s+/;function vxe(r){return r&&r.slice(0,bxe(r)+1).replace(Sxe,\"\")}Kz.exports=vxe});var Jc=y((Oit,Hz)=>{var xxe=Cs(),Pxe=xxe.Symbol;Hz.exports=Pxe});var qz=y((Mit,jz)=>{var Gz=Jc(),Yz=Object.prototype,Dxe=Yz.hasOwnProperty,kxe=Yz.toString,RC=Gz?Gz.toStringTag:void 0;function Rxe(r){var e=Dxe.call(r,RC),t=r[RC];try{r[RC]=void 0;var i=!0}catch{}var n=kxe.call(r);return i&&(e?r[RC]=t:delete r[RC]),n}jz.exports=Rxe});var Wz=y((Kit,Jz)=>{var Fxe=Object.prototype,Nxe=Fxe.toString;function Lxe(r){return Nxe.call(r)}Jz.exports=Lxe});var Wc=y((Uit,Xz)=>{var zz=Jc(),Txe=qz(),Oxe=Wz(),Mxe=\"[object Null]\",Kxe=\"[object Undefined]\",Vz=zz?zz.toStringTag:void 0;function Uxe(r){return r==null?r===void 0?Kxe:Mxe:Vz&&Vz in Object(r)?Txe(r):Oxe(r)}Xz.exports=Uxe});var Jo=y((Hit,_z)=>{function Hxe(r){return r!=null&&typeof r==\"object\"}_z.exports=Hxe});var FC=y((Git,Zz)=>{var Gxe=Wc(),Yxe=Jo(),jxe=\"[object Symbol]\";function qxe(r){return typeof r==\"symbol\"||Yxe(r)&&Gxe(r)==jxe}Zz.exports=qxe});var r5=y((Yit,t5)=>{var Jxe=Uz(),$z=Sn(),Wxe=FC(),e5=0/0,zxe=/^[-+]0x[0-9a-f]+$/i,Vxe=/^0b[01]+$/i,Xxe=/^0o[0-7]+$/i,_xe=parseInt;function Zxe(r){if(typeof r==\"number\")return r;if(Wxe(r))return e5;if($z(r)){var e=typeof r.valueOf==\"function\"?r.valueOf():r;r=$z(e)?e+\"\":e}if(typeof r!=\"string\")return r===0?r:+r;r=Jxe(r);var t=Vxe.test(r);return t||Xxe.test(r)?_xe(r.slice(2),t?2:8):zxe.test(r)?e5:+r}t5.exports=Zxe});var s5=y((jit,n5)=>{var $xe=Sn(),Tk=Tz(),i5=r5(),ePe=\"Expected a function\",tPe=Math.max,rPe=Math.min;function iPe(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,f=!0;if(typeof r!=\"function\")throw new TypeError(ePe);e=i5(e)||0,$xe(t)&&(u=!!t.leading,g=\"maxWait\"in t,s=g?tPe(i5(t.maxWait)||0,e):s,f=\"trailing\"in t?!!t.trailing:f);function h(j){var $=i,V=n;return i=n=void 0,c=j,o=r.apply(V,$),o}function p(j){return c=j,a=setTimeout(B,e),u?h(j):o}function C(j){var $=j-l,V=j-c,W=e-$;return g?rPe(W,s-V):W}function w(j){var $=j-l,V=j-c;return l===void 0||$>=e||$<0||g&&V>=s}function B(){var j=Tk();if(w(j))return v(j);a=setTimeout(B,C(j))}function v(j){return a=void 0,f&&i?h(j):(i=n=void 0,o)}function D(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function L(){return a===void 0?o:v(Tk())}function H(){var j=Tk(),$=w(j);if(i=arguments,n=this,l=j,$){if(a===void 0)return p(l);if(g)return clearTimeout(a),a=setTimeout(B,e),h(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=D,H.flush=L,H}n5.exports=iPe});var a5=y((qit,o5)=>{var nPe=s5(),sPe=Sn(),oPe=\"Expected a function\";function aPe(r,e,t){var i=!0,n=!0;if(typeof r!=\"function\")throw new TypeError(oPe);return sPe(t)&&(i=\"leading\"in t?!!t.leading:i,n=\"trailing\"in t?!!t.trailing:n),nPe(r,e,{leading:i,maxWait:e,trailing:n})}o5.exports=aPe});var qa=y((ja,CB)=>{\"use strict\";Object.defineProperty(ja,\"__esModule\",{value:!0});var d5=[\"Int8Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"Int16Array\",\"Uint16Array\",\"Int32Array\",\"Uint32Array\",\"Float32Array\",\"Float64Array\",\"BigInt64Array\",\"BigUint64Array\"];function IPe(r){return d5.includes(r)}var yPe=[\"Function\",\"Generator\",\"AsyncGenerator\",\"GeneratorFunction\",\"AsyncGeneratorFunction\",\"AsyncFunction\",\"Observable\",\"Array\",\"Buffer\",\"Object\",\"RegExp\",\"Date\",\"Error\",\"Map\",\"Set\",\"WeakMap\",\"WeakSet\",\"ArrayBuffer\",\"SharedArrayBuffer\",\"DataView\",\"Promise\",\"URL\",\"FormData\",\"URLSearchParams\",\"HTMLElement\",...d5];function wPe(r){return yPe.includes(r)}var BPe=[\"null\",\"undefined\",\"string\",\"number\",\"bigint\",\"boolean\",\"symbol\"];function QPe(r){return BPe.includes(r)}function Zf(r){return e=>typeof e===r}var{toString:C5}=Object.prototype,MC=r=>{let e=C5.call(r).slice(8,-1);if(/HTML\\w+Element/.test(e)&&z.domElement(r))return\"HTMLElement\";if(wPe(e))return e},cr=r=>e=>MC(e)===r;function z(r){if(r===null)return\"null\";switch(typeof r){case\"undefined\":return\"undefined\";case\"string\":return\"string\";case\"number\":return\"number\";case\"boolean\":return\"boolean\";case\"function\":return\"Function\";case\"bigint\":return\"bigint\";case\"symbol\":return\"symbol\";default:}if(z.observable(r))return\"Observable\";if(z.array(r))return\"Array\";if(z.buffer(r))return\"Buffer\";let e=MC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError(\"Please don't use object wrappers for primitive types\");return\"Object\"}z.undefined=Zf(\"undefined\");z.string=Zf(\"string\");var bPe=Zf(\"number\");z.number=r=>bPe(r)&&!z.nan(r);z.bigint=Zf(\"bigint\");z.function_=Zf(\"function\");z.null_=r=>r===null;z.class_=r=>z.function_(r)&&r.toString().startsWith(\"class \");z.boolean=r=>r===!0||r===!1;z.symbol=Zf(\"symbol\");z.numericString=r=>z.string(r)&&!z.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));z.array=(r,e)=>Array.isArray(r)?z.function_(e)?r.every(e):!0:!1;z.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};z.nullOrUndefined=r=>z.null_(r)||z.undefined(r);z.object=r=>!z.null_(r)&&(typeof r==\"object\"||z.function_(r));z.iterable=r=>{var e;return z.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};z.asyncIterable=r=>{var e;return z.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};z.generator=r=>z.iterable(r)&&z.function_(r.next)&&z.function_(r.throw);z.asyncGenerator=r=>z.asyncIterable(r)&&z.function_(r.next)&&z.function_(r.throw);z.nativePromise=r=>cr(\"Promise\")(r);var SPe=r=>{var e,t;return z.function_((e=r)===null||e===void 0?void 0:e.then)&&z.function_((t=r)===null||t===void 0?void 0:t.catch)};z.promise=r=>z.nativePromise(r)||SPe(r);z.generatorFunction=cr(\"GeneratorFunction\");z.asyncGeneratorFunction=r=>MC(r)===\"AsyncGeneratorFunction\";z.asyncFunction=r=>MC(r)===\"AsyncFunction\";z.boundFunction=r=>z.function_(r)&&!r.hasOwnProperty(\"prototype\");z.regExp=cr(\"RegExp\");z.date=cr(\"Date\");z.error=cr(\"Error\");z.map=r=>cr(\"Map\")(r);z.set=r=>cr(\"Set\")(r);z.weakMap=r=>cr(\"WeakMap\")(r);z.weakSet=r=>cr(\"WeakSet\")(r);z.int8Array=cr(\"Int8Array\");z.uint8Array=cr(\"Uint8Array\");z.uint8ClampedArray=cr(\"Uint8ClampedArray\");z.int16Array=cr(\"Int16Array\");z.uint16Array=cr(\"Uint16Array\");z.int32Array=cr(\"Int32Array\");z.uint32Array=cr(\"Uint32Array\");z.float32Array=cr(\"Float32Array\");z.float64Array=cr(\"Float64Array\");z.bigInt64Array=cr(\"BigInt64Array\");z.bigUint64Array=cr(\"BigUint64Array\");z.arrayBuffer=cr(\"ArrayBuffer\");z.sharedArrayBuffer=cr(\"SharedArrayBuffer\");z.dataView=cr(\"DataView\");z.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;z.urlInstance=r=>cr(\"URL\")(r);z.urlString=r=>{if(!z.string(r))return!1;try{return new URL(r),!0}catch{return!1}};z.truthy=r=>Boolean(r);z.falsy=r=>!r;z.nan=r=>Number.isNaN(r);z.primitive=r=>z.null_(r)||QPe(typeof r);z.integer=r=>Number.isInteger(r);z.safeInteger=r=>Number.isSafeInteger(r);z.plainObject=r=>{if(C5.call(r)!==\"[object Object]\")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};z.typedArray=r=>IPe(MC(r));var vPe=r=>z.safeInteger(r)&&r>=0;z.arrayLike=r=>!z.nullOrUndefined(r)&&!z.function_(r)&&vPe(r.length);z.inRange=(r,e)=>{if(z.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(z.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var xPe=1,PPe=[\"innerHTML\",\"ownerDocument\",\"style\",\"attributes\",\"nodeValue\"];z.domElement=r=>z.object(r)&&r.nodeType===xPe&&z.string(r.nodeName)&&!z.plainObject(r)&&PPe.every(e=>e in r);z.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)[\"@@observable\"])===null||n===void 0?void 0:n.call(i)):!1};z.nodeStream=r=>z.object(r)&&z.function_(r.pipe)&&!z.observable(r);z.infinite=r=>r===1/0||r===-1/0;var m5=r=>e=>z.integer(e)&&Math.abs(e%2)===r;z.evenInteger=m5(0);z.oddInteger=m5(1);z.emptyArray=r=>z.array(r)&&r.length===0;z.nonEmptyArray=r=>z.array(r)&&r.length>0;z.emptyString=r=>z.string(r)&&r.length===0;z.nonEmptyString=r=>z.string(r)&&r.length>0;var DPe=r=>z.string(r)&&!/\\S/.test(r);z.emptyStringOrWhitespace=r=>z.emptyString(r)||DPe(r);z.emptyObject=r=>z.object(r)&&!z.map(r)&&!z.set(r)&&Object.keys(r).length===0;z.nonEmptyObject=r=>z.object(r)&&!z.map(r)&&!z.set(r)&&Object.keys(r).length>0;z.emptySet=r=>z.set(r)&&r.size===0;z.nonEmptySet=r=>z.set(r)&&r.size>0;z.emptyMap=r=>z.map(r)&&r.size===0;z.nonEmptyMap=r=>z.map(r)&&r.size>0;z.propertyKey=r=>z.any([z.string,z.number,z.symbol],r);z.formData=r=>cr(\"FormData\")(r);z.urlSearchParams=r=>cr(\"URLSearchParams\")(r);var E5=(r,e,t)=>{if(!z.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError(\"Invalid number of values\");return r.call(t,e)};z.any=(r,...e)=>(z.array(r)?r:[r]).some(i=>E5(Array.prototype.some,i,e));z.all=(r,...e)=>E5(Array.prototype.every,r,e);var Ue=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\\`${z(o)}\\``))].join(\", \")}`:`received value of type \\`${z(t)}\\``;throw new TypeError(`Expected value which is \\`${e}\\`, ${s}.`)}};ja.assert={undefined:r=>Ue(z.undefined(r),\"undefined\",r),string:r=>Ue(z.string(r),\"string\",r),number:r=>Ue(z.number(r),\"number\",r),bigint:r=>Ue(z.bigint(r),\"bigint\",r),function_:r=>Ue(z.function_(r),\"Function\",r),null_:r=>Ue(z.null_(r),\"null\",r),class_:r=>Ue(z.class_(r),\"Class\",r),boolean:r=>Ue(z.boolean(r),\"boolean\",r),symbol:r=>Ue(z.symbol(r),\"symbol\",r),numericString:r=>Ue(z.numericString(r),\"string with a number\",r),array:(r,e)=>{Ue(z.array(r),\"Array\",r),e&&r.forEach(e)},buffer:r=>Ue(z.buffer(r),\"Buffer\",r),nullOrUndefined:r=>Ue(z.nullOrUndefined(r),\"null or undefined\",r),object:r=>Ue(z.object(r),\"Object\",r),iterable:r=>Ue(z.iterable(r),\"Iterable\",r),asyncIterable:r=>Ue(z.asyncIterable(r),\"AsyncIterable\",r),generator:r=>Ue(z.generator(r),\"Generator\",r),asyncGenerator:r=>Ue(z.asyncGenerator(r),\"AsyncGenerator\",r),nativePromise:r=>Ue(z.nativePromise(r),\"native Promise\",r),promise:r=>Ue(z.promise(r),\"Promise\",r),generatorFunction:r=>Ue(z.generatorFunction(r),\"GeneratorFunction\",r),asyncGeneratorFunction:r=>Ue(z.asyncGeneratorFunction(r),\"AsyncGeneratorFunction\",r),asyncFunction:r=>Ue(z.asyncFunction(r),\"AsyncFunction\",r),boundFunction:r=>Ue(z.boundFunction(r),\"Function\",r),regExp:r=>Ue(z.regExp(r),\"RegExp\",r),date:r=>Ue(z.date(r),\"Date\",r),error:r=>Ue(z.error(r),\"Error\",r),map:r=>Ue(z.map(r),\"Map\",r),set:r=>Ue(z.set(r),\"Set\",r),weakMap:r=>Ue(z.weakMap(r),\"WeakMap\",r),weakSet:r=>Ue(z.weakSet(r),\"WeakSet\",r),int8Array:r=>Ue(z.int8Array(r),\"Int8Array\",r),uint8Array:r=>Ue(z.uint8Array(r),\"Uint8Array\",r),uint8ClampedArray:r=>Ue(z.uint8ClampedArray(r),\"Uint8ClampedArray\",r),int16Array:r=>Ue(z.int16Array(r),\"Int16Array\",r),uint16Array:r=>Ue(z.uint16Array(r),\"Uint16Array\",r),int32Array:r=>Ue(z.int32Array(r),\"Int32Array\",r),uint32Array:r=>Ue(z.uint32Array(r),\"Uint32Array\",r),float32Array:r=>Ue(z.float32Array(r),\"Float32Array\",r),float64Array:r=>Ue(z.float64Array(r),\"Float64Array\",r),bigInt64Array:r=>Ue(z.bigInt64Array(r),\"BigInt64Array\",r),bigUint64Array:r=>Ue(z.bigUint64Array(r),\"BigUint64Array\",r),arrayBuffer:r=>Ue(z.arrayBuffer(r),\"ArrayBuffer\",r),sharedArrayBuffer:r=>Ue(z.sharedArrayBuffer(r),\"SharedArrayBuffer\",r),dataView:r=>Ue(z.dataView(r),\"DataView\",r),urlInstance:r=>Ue(z.urlInstance(r),\"URL\",r),urlString:r=>Ue(z.urlString(r),\"string with a URL\",r),truthy:r=>Ue(z.truthy(r),\"truthy\",r),falsy:r=>Ue(z.falsy(r),\"falsy\",r),nan:r=>Ue(z.nan(r),\"NaN\",r),primitive:r=>Ue(z.primitive(r),\"primitive\",r),integer:r=>Ue(z.integer(r),\"integer\",r),safeInteger:r=>Ue(z.safeInteger(r),\"integer\",r),plainObject:r=>Ue(z.plainObject(r),\"plain object\",r),typedArray:r=>Ue(z.typedArray(r),\"TypedArray\",r),arrayLike:r=>Ue(z.arrayLike(r),\"array-like\",r),domElement:r=>Ue(z.domElement(r),\"HTMLElement\",r),observable:r=>Ue(z.observable(r),\"Observable\",r),nodeStream:r=>Ue(z.nodeStream(r),\"Node.js Stream\",r),infinite:r=>Ue(z.infinite(r),\"infinite number\",r),emptyArray:r=>Ue(z.emptyArray(r),\"empty array\",r),nonEmptyArray:r=>Ue(z.nonEmptyArray(r),\"non-empty array\",r),emptyString:r=>Ue(z.emptyString(r),\"empty string\",r),nonEmptyString:r=>Ue(z.nonEmptyString(r),\"non-empty string\",r),emptyStringOrWhitespace:r=>Ue(z.emptyStringOrWhitespace(r),\"empty string or whitespace\",r),emptyObject:r=>Ue(z.emptyObject(r),\"empty object\",r),nonEmptyObject:r=>Ue(z.nonEmptyObject(r),\"non-empty object\",r),emptySet:r=>Ue(z.emptySet(r),\"empty set\",r),nonEmptySet:r=>Ue(z.nonEmptySet(r),\"non-empty set\",r),emptyMap:r=>Ue(z.emptyMap(r),\"empty map\",r),nonEmptyMap:r=>Ue(z.nonEmptyMap(r),\"non-empty map\",r),propertyKey:r=>Ue(z.propertyKey(r),\"PropertyKey\",r),formData:r=>Ue(z.formData(r),\"FormData\",r),urlSearchParams:r=>Ue(z.urlSearchParams(r),\"URLSearchParams\",r),evenInteger:r=>Ue(z.evenInteger(r),\"even integer\",r),oddInteger:r=>Ue(z.oddInteger(r),\"odd integer\",r),directInstanceOf:(r,e)=>Ue(z.directInstanceOf(r,e),\"T\",r),inRange:(r,e)=>Ue(z.inRange(r,e),\"in range\",r),any:(r,...e)=>Ue(z.any(r,...e),\"predicate returns truthy for any value\",e,{multipleValues:!0}),all:(r,...e)=>Ue(z.all(r,...e),\"predicate returns truthy for all values\",e,{multipleValues:!0})};Object.defineProperties(z,{class:{value:z.class_},function:{value:z.function_},null:{value:z.null_}});Object.defineProperties(ja.assert,{class:{value:ja.assert.class_},function:{value:ja.assert.function_},null:{value:ja.assert.null_}});ja.default=z;CB.exports=z;CB.exports.default=z;CB.exports.assert=ja.assert});var I5=y((Pnt,iR)=>{\"use strict\";var mB=class extends Error{constructor(e){super(e||\"Promise was canceled\"),this.name=\"CancelError\"}get isCanceled(){return!0}},$f=class{static fn(e){return(...t)=>new $f((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error(\"The `onCancel` handler was attached after the promise settled.\");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new mB(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf($f.prototype,Promise.prototype);iR.exports=$f;iR.exports.CancelError=mB});var y5=y((sR,oR)=>{\"use strict\";Object.defineProperty(sR,\"__esModule\",{value:!0});var kPe=J(\"tls\"),nR=(r,e)=>{let t;typeof e==\"function\"?t={connect:e}:t=e;let i=typeof t.connect==\"function\",n=typeof t.secureConnect==\"function\",s=typeof t.close==\"function\",o=()=>{i&&t.connect(),r instanceof kPe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once(\"secureConnect\",t.secureConnect)),s&&r.once(\"close\",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once(\"connect\",o):r.destroyed&&s&&t.close(r._hadError)};sR.default=nR;oR.exports=nR;oR.exports.default=nR});var w5=y((AR,lR)=>{\"use strict\";Object.defineProperty(AR,\"__esModule\",{value:!0});var RPe=y5(),FPe=Number(process.versions.node.split(\".\")[0]),aR=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l===\"error\"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener(\"abort\",()=>{e.abort=Date.now(),(!e.response||FPe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener(\"lookup\",a),RPe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener(\"lookup\",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener(\"socket\",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished==\"boolean\"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener(\"finish\",n),r.prependOnceListener(\"response\",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener(\"end\",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};AR.default=aR;lR.exports=aR;lR.exports.default=aR});var P5=y((Dnt,gR)=>{\"use strict\";var{V4MAPPED:NPe,ADDRCONFIG:LPe,ALL:x5,promises:{Resolver:B5},lookup:TPe}=J(\"dns\"),{promisify:cR}=J(\"util\"),OPe=J(\"os\"),eh=Symbol(\"cacheableLookupCreateConnection\"),uR=Symbol(\"cacheableLookupInstance\"),Q5=Symbol(\"expires\"),MPe=typeof x5==\"number\",b5=r=>{if(!(r&&typeof r.createConnection==\"function\"))throw new Error(\"Expected an Agent instance as the first argument\")},KPe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},S5=()=>{let r=!1,e=!1;for(let t of Object.values(OPe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family===\"IPv6\"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},UPe=r=>Symbol.iterator in r,v5={ttl:!0},HPe={all:!0},EB=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new B5,lookup:o=TPe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=cR(o),this._resolver instanceof B5?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=cR(this._resolver.resolve4.bind(this._resolver)),this._resolve6=cR(this._resolver.resolve6.bind(this._resolver))),this._iface=S5(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t==\"function\"?(i=t,t={}):typeof t==\"number\"&&(t={family:t}),!i)throw new Error(\"Callback must be a function.\");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t==\"number\"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&NPe&&(MPe&&t.hints&x5||n.length===0)?KPe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&LPe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code=\"ENOTFOUND\",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code===\"ENODATA\"||u.code===\"ENOTFOUND\")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,v5),this._resolve6(e,v5)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Q5]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error(\"Cache Error. Please recreate the CacheableLookup instance.\");throw s.cause=n,s}}UPe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,HPe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e<t)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Q5];n>=a?this._cache.delete(s):a<i&&(i=a)}i!==1/0&&this._tick(i-n)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(b5(e),eh in e)throw new Error(\"CacheableLookup has been already installed\");e[eh]=e.createConnection,e[uR]=this,e.createConnection=(t,i)=>(\"lookup\"in t||(t.lookup=this.lookup),e[eh](t,i))}uninstall(e){if(b5(e),e[eh]){if(e[uR]!==this)throw new Error(\"The agent is not owned by this CacheableLookup instance\");e.createConnection=e[eh],delete e[eh],delete e[uR]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=S5(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};gR.exports=EB;gR.exports.default=EB});var R5=y((knt,fR)=>{\"use strict\";var GPe=typeof URL>\"u\"?J(\"url\").URL:URL,YPe=\"text/plain\",jPe=\"us-ascii\",D5=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),qPe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(\";\"),n=t[2],s=e?\"\":t[3],o=!1;i[i.length-1]===\"base64\"&&(i.pop(),o=!0);let a=(i.shift()||\"\").toLowerCase(),c=[...i.map(u=>{let[g,f=\"\"]=u.split(\"=\").map(h=>h.trim());return g===\"charset\"&&(f=f.toLowerCase(),f===jPe)?\"\":`${g}${f?`=${f}`:\"\"}`}).filter(Boolean)];return o&&c.push(\"base64\"),(c.length!==0||a&&a!==YPe)&&c.unshift(a),`data:${c.join(\";\")},${o?n.trim():n}${s?`#${s}`:\"\"}`},k5=(r,e)=>{if(e={defaultProtocol:\"http:\",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,\"normalizeHttps\"))throw new Error(\"options.normalizeHttps is renamed to options.forceHttp\");if(Reflect.has(e,\"normalizeHttp\"))throw new Error(\"options.normalizeHttp is renamed to options.forceHttps\");if(Reflect.has(e,\"stripFragment\"))throw new Error(\"options.stripFragment is renamed to options.stripHash\");if(r=r.trim(),/^data:/i.test(r))return qPe(r,e);let t=r.startsWith(\"//\");!t&&/^\\.*\\//.test(r)||(r=r.replace(/^(?!(?:\\w+:)?\\/\\/)|^\\/\\//,e.defaultProtocol));let n=new GPe(r);if(e.forceHttp&&e.forceHttps)throw new Error(\"The `forceHttp` and `forceHttps` options cannot be used together\");if(e.forceHttp&&n.protocol===\"https:\"&&(n.protocol=\"http:\"),e.forceHttps&&n.protocol===\"http:\"&&(n.protocol=\"https:\"),e.stripAuthentication&&(n.username=\"\",n.password=\"\"),e.stripHash&&(n.hash=\"\"),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\\/{2,}/g,(s,o)=>/^(?!\\/)/g.test(o)?`${o}/`:\"/\")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split(\"/\"),o=s[s.length-1];D5(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join(\"/\")+\"/\")}if(n.hostname&&(n.hostname=n.hostname.replace(/\\.$/,\"\"),e.stripWWW&&/^www\\.([a-z\\-\\d]{2,63})\\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\\./,\"\"))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])D5(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\\/$/,\"\")),r=n.toString(),(e.removeTrailingSlash||n.pathname===\"/\")&&n.hash===\"\"&&(r=r.replace(/\\/$/,\"\")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\\/\\//,\"//\")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\\/\\//,\"\")),r};fR.exports=k5;fR.exports.default=k5});var L5=y((Rnt,N5)=>{N5.exports=F5;function F5(r,e){if(r&&e)return F5(r)(e);if(typeof r!=\"function\")throw new TypeError(\"need wrapper function\");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n<i.length;n++)i[n]=arguments[n];var s=r.apply(this,i),o=i[i.length-1];return typeof s==\"function\"&&s!==o&&Object.keys(o).forEach(function(a){s[a]=o[a]}),s}}});var pR=y((Fnt,hR)=>{var T5=L5();hR.exports=T5(IB);hR.exports.strict=T5(O5);IB.proto=IB(function(){Object.defineProperty(Function.prototype,\"once\",{value:function(){return IB(this)},configurable:!0}),Object.defineProperty(Function.prototype,\"onceStrict\",{value:function(){return O5(this)},configurable:!0})});function IB(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function O5(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||\"Function wrapped with `once`\";return e.onceError=t+\" shouldn't be called more than once\",e.called=!1,e}});var dR=y((Nnt,K5)=>{var JPe=pR(),WPe=function(){},zPe=function(r){return r.setHeader&&typeof r.abort==\"function\"},VPe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},M5=function(r,e,t){if(typeof e==\"function\")return M5(r,null,e);e||(e={}),t=JPe(t||WPe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(p){t.call(r,p?new Error(\"exited with error code: \"+p):null)},g=function(p){t.call(r,p)},f=function(){if(s&&!(n&&n.ended))return t.call(r,new Error(\"premature close\"));if(o&&!(i&&i.ended))return t.call(r,new Error(\"premature close\"))},h=function(){r.req.on(\"finish\",l)};return zPe(r)?(r.on(\"complete\",l),r.on(\"abort\",f),r.req?h():r.on(\"request\",h)):o&&!i&&(r.on(\"end\",a),r.on(\"close\",a)),VPe(r)&&r.on(\"exit\",u),r.on(\"end\",c),r.on(\"finish\",l),e.error!==!1&&r.on(\"error\",g),r.on(\"close\",f),function(){r.removeListener(\"complete\",l),r.removeListener(\"abort\",f),r.removeListener(\"request\",h),r.req&&r.req.removeListener(\"finish\",l),r.removeListener(\"end\",a),r.removeListener(\"close\",a),r.removeListener(\"finish\",l),r.removeListener(\"exit\",u),r.removeListener(\"end\",c),r.removeListener(\"error\",g),r.removeListener(\"close\",f)}};K5.exports=M5});var G5=y((Lnt,H5)=>{var XPe=pR(),_Pe=dR(),CR=J(\"fs\"),KC=function(){},ZPe=/^v?\\.0/.test(process.version),yB=function(r){return typeof r==\"function\"},$Pe=function(r){return!ZPe||!CR?!1:(r instanceof(CR.ReadStream||KC)||r instanceof(CR.WriteStream||KC))&&yB(r.close)},eDe=function(r){return r.setHeader&&yB(r.abort)},tDe=function(r,e,t,i){i=XPe(i);var n=!1;r.on(\"close\",function(){n=!0}),_Pe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,$Pe(r))return r.close(KC);if(eDe(r))return r.abort();if(yB(r.destroy))return r.destroy();i(o||new Error(\"stream was destroyed\"))}}},U5=function(r){r()},rDe=function(r,e){return r.pipe(e)},iDe=function(){var r=Array.prototype.slice.call(arguments),e=yB(r[r.length-1]||KC)&&r.pop()||KC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error(\"pump requires two streams per minimum\");var t,i=r.map(function(n,s){var o=s<r.length-1,a=s>0;return tDe(n,o,a,function(l){t||(t=l),l&&i.forEach(U5),!o&&(i.forEach(U5),e(t))})});return r.reduce(rDe)};H5.exports=iDe});var j5=y((Tnt,Y5)=>{\"use strict\";var{PassThrough:nDe}=J(\"stream\");Y5.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t===\"buffer\",n=!1;e?n=!(t||i):t=t||\"utf8\",i&&(t=null);let s=new nDe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on(\"data\",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(\"\"),s.getBufferedLength=()=>o,s}});var q5=y((Ont,th)=>{\"use strict\";var sDe=G5(),oDe=j5(),wB=class extends Error{constructor(){super(\"maxBuffer exceeded\"),this.name=\"MaxBufferError\"}};async function BB(r,e){if(!r)return Promise.reject(new Error(\"Expected a stream\"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=sDe(r,oDe(e),a=>{if(a){o(a);return}n()}),i.on(\"data\",()=>{i.getBufferedLength()>t&&o(new wB)})}),i.getBufferedValue()}th.exports=BB;th.exports.default=BB;th.exports.buffer=(r,e)=>BB(r,{...e,encoding:\"buffer\"});th.exports.array=(r,e)=>BB(r,{...e,array:!0});th.exports.MaxBufferError=wB});var W5=y((Knt,J5)=>{\"use strict\";var aDe=[200,203,204,206,300,301,404,405,410,414,501],ADe=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],lDe={date:!0,connection:!0,\"keep-alive\":!0,\"proxy-authenticate\":!0,\"proxy-authorization\":!0,te:!0,trailer:!0,\"transfer-encoding\":!0,upgrade:!0},cDe={\"content-length\":!0,\"content-encoding\":!0,\"transfer-encoding\":!0,\"content-range\":!0};function mR(r){let e={};if(!r)return e;let t=r.trim().split(/\\s*,\\s*/);for(let i of t){let[n,s]=i.split(/\\s*=\\s*/,2);e[n]=s===void 0?!0:s.replace(/^\"|\"$/g,\"\")}return e}function uDe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+\"=\"+i)}if(!!e.length)return e.join(\", \")}J5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,trustServerDate:a,_fromObject:l}={}){if(l){this._fromObject(l);return}if(!t||!t.headers)throw Error(\"Response headers missing\");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._trustServerDate=a!==void 0?a:!0,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status=\"status\"in t?t.status:200,this._resHeaders=t.headers,this._rescc=mR(t.headers[\"cache-control\"]),this._method=\"method\"in e?e.method:\"GET\",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=mR(e.headers[\"cache-control\"]),o&&\"pre-check\"in this._rescc&&\"post-check\"in this._rescc&&(delete this._rescc[\"pre-check\"],delete this._rescc[\"post-check\"],delete this._rescc[\"no-cache\"],delete this._rescc[\"no-store\"],delete this._rescc[\"must-revalidate\"],this._resHeaders=Object.assign({},this._resHeaders,{\"cache-control\":uDe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!t.headers[\"cache-control\"]&&/no-cache/.test(t.headers.pragma)&&(this._rescc[\"no-cache\"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc[\"no-store\"]&&(this._method===\"GET\"||this._method===\"HEAD\"||this._method===\"POST\"&&this._hasExplicitExpiration())&&ADe.indexOf(this._status)!==-1&&!this._rescc[\"no-store\"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc.public||this._rescc[\"max-age\"]||this._rescc[\"s-maxage\"]||aDe.indexOf(this._status)!==-1))}_hasExplicitExpiration(){return this._isShared&&this._rescc[\"s-maxage\"]||this._rescc[\"max-age\"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error(\"Request headers missing\")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=mR(e.headers[\"cache-control\"]);return t[\"no-cache\"]||/no-cache/.test(e.headers.pragma)||t[\"max-age\"]&&this.age()>t[\"max-age\"]||t[\"min-fresh\"]&&this.timeToLive()<1e3*t[\"min-fresh\"]||this.stale()&&!(t[\"max-stale\"]&&!this._rescc[\"must-revalidate\"]&&(t[\"max-stale\"]===!0||t[\"max-stale\"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method===\"HEAD\")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc[\"must-revalidate\"]||this._rescc.public||this._rescc[\"s-maxage\"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary===\"*\")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\\s*,\\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)lDe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\\s*,\\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(\",\").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:\"\")+'113 - \"rfc7234 5.5.4\"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){return this._trustServerDate?this._serverDate():this._responseTime}_serverDate(){let e=Date.parse(this._resHeaders.date);return isFinite(e)&&Math.abs(this._responseTime-e)<288e5?e:this._responseTime}age(){let e=Math.max(0,(this._responseTime-this.date())/1e3);if(this._resHeaders.age){let i=this._ageValue();i>e&&(e=i)}let t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){let e=parseInt(this._resHeaders.age);return isFinite(e)?e:0}maxAge(){if(!this.storable()||this._rescc[\"no-cache\"]||this._isShared&&this._resHeaders[\"set-cookie\"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary===\"*\")return 0;if(this._isShared){if(this._rescc[\"proxy-revalidate\"])return 0;if(this._rescc[\"s-maxage\"])return parseInt(this._rescc[\"s-maxage\"],10)}if(this._rescc[\"max-age\"])return parseInt(this._rescc[\"max-age\"],10);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this._serverDate();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||i<t?0:Math.max(e,(i-t)/1e3)}if(this._resHeaders[\"last-modified\"]){let i=Date.parse(this._resHeaders[\"last-modified\"]);if(isFinite(i)&&t>i)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){return Math.max(0,this.maxAge()-this.age())*1e3}stale(){return this.maxAge()<=this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error(\"Reinitialized\");if(!e||e.v!==1)throw Error(\"Invalid serialization\");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t[\"if-range\"],!this._requestMatches(e,!0)||!this.storable())return delete t[\"if-none-match\"],delete t[\"if-modified-since\"],t;if(this._resHeaders.etag&&(t[\"if-none-match\"]=t[\"if-none-match\"]?`${t[\"if-none-match\"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t[\"accept-ranges\"]||t[\"if-match\"]||t[\"if-unmodified-since\"]||this._method&&this._method!=\"GET\"){if(delete t[\"if-modified-since\"],t[\"if-none-match\"]){let n=t[\"if-none-match\"].split(/,/).filter(s=>!/^\\s*W\\//.test(s));n.length?t[\"if-none-match\"]=n.join(\",\").trim():delete t[\"if-none-match\"]}}else this._resHeaders[\"last-modified\"]&&!t[\"if-modified-since\"]&&(t[\"if-modified-since\"]=this._resHeaders[\"last-modified\"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),!t||!t.headers)throw Error(\"Response headers missing\");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\\s*W\\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\\s*W\\//,\"\")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\\s*W\\//,\"\")===t.headers.etag.replace(/^\\s*W\\//,\"\"):this._resHeaders[\"last-modified\"]?i=this._resHeaders[\"last-modified\"]===t.headers[\"last-modified\"]:!this._resHeaders.etag&&!this._resHeaders[\"last-modified\"]&&!t.headers.etag&&!t.headers[\"last-modified\"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!cDe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,trustServerDate:this._trustServerDate}),modified:!1,matches:!0}}}});var QB=y((Unt,z5)=>{\"use strict\";z5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var X5=y((Hnt,V5)=>{\"use strict\";var gDe=J(\"stream\").Readable,fDe=QB(),ER=class extends gDe{constructor(e,t,i,n){if(typeof e!=\"number\")throw new TypeError(\"Argument `statusCode` should be a number\");if(typeof t!=\"object\")throw new TypeError(\"Argument `headers` should be an object\");if(!(i instanceof Buffer))throw new TypeError(\"Argument `body` should be a buffer\");if(typeof n!=\"string\")throw new TypeError(\"Argument `url` should be a string\");super(),this.statusCode=e,this.headers=fDe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};V5.exports=ER});var Z5=y((Gnt,_5)=>{\"use strict\";var hDe=[\"destroy\",\"setTimeout\",\"socket\",\"headers\",\"trailers\",\"rawHeaders\",\"statusCode\",\"httpVersion\",\"httpVersionMinor\",\"httpVersionMajor\",\"rawTrailers\",\"statusMessage\"];_5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(hDe));for(let i of t)i in e||(e[i]=typeof r[i]==\"function\"?r[i].bind(r):r[i])}});var e6=y((Ynt,$5)=>{\"use strict\";var pDe=J(\"stream\").PassThrough,dDe=Z5(),CDe=r=>{if(!(r&&r.pipe))throw new TypeError(\"Parameter `response` must be a response stream.\");let e=new pDe;return dDe(r,e),r.pipe(e)};$5.exports=CDe});var t6=y(IR=>{IR.stringify=function r(e){if(typeof e>\"u\")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(\":base64:\"+e.toString(\"base64\"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e==\"object\"){var t=\"\",i=Array.isArray(e);t=i?\"[\":\"{\";var n=!0;for(var s in e){var o=typeof e[s]==\"function\"||!i&&typeof e[s]>\"u\";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=\",\"),n=!1,i?e[s]==null?t+=\"null\":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+\":\"+r(e[s])))}return t+=i?\"]\":\"}\",t}else return typeof e==\"string\"?JSON.stringify(/^:/.test(e)?\":\"+e:e):typeof e>\"u\"?\"null\":JSON.stringify(e)};IR.parse=function(r){return JSON.parse(r,function(e,t){return typeof t==\"string\"?/^:base64:/.test(t)?Buffer.from(t.substring(8),\"base64\"):/^:/.test(t)?t.substring(1):t:t})}});var n6=y((qnt,i6)=>{\"use strict\";var mDe=J(\"events\"),r6=t6(),EDe=r=>{let e={redis:\"@keyv/redis\",mongodb:\"@keyv/mongo\",mongo:\"@keyv/mongo\",sqlite:\"@keyv/sqlite\",postgresql:\"@keyv/postgres\",postgres:\"@keyv/postgres\",mysql:\"@keyv/mysql\"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},yR=class extends mDe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:\"keyv\",serialize:r6.stringify,deserialize:r6.parse},typeof e==\"string\"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=EDe(i)}typeof this.opts.store.on==\"function\"&&this.opts.store.on(\"error\",i=>this.emit(\"error\",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n==\"string\"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires==\"number\"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>\"u\"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i==\"number\"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};i6.exports=yR});var a6=y((Jnt,o6)=>{\"use strict\";var IDe=J(\"events\"),bB=J(\"url\"),yDe=R5(),wDe=q5(),wR=W5(),s6=X5(),BDe=QB(),QDe=e6(),bDe=n6(),no=class{constructor(e,t){if(typeof e!=\"function\")throw new TypeError(\"Parameter `request` must be a function\");return this.cache=new bDe({uri:typeof t==\"string\"&&t,store:typeof t!=\"string\"&&t,namespace:\"cacheable-request\"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t==\"string\")n=BR(bB.parse(t)),t={};else if(t instanceof bB.URL)n=BR(bB.parse(t.toString())),t={};else{let[g,...f]=(t.path||\"\").split(\"?\"),h=f.length>0?`?${f.join(\"?\")}`:\"\";n=BR({...t,pathname:g,search:h})}t={headers:{},method:\"GET\",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...SDe(n)},t.headers=BDe(t.headers);let s=new IDe,o=yDe(bB.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let f=!1,h,p=new Promise(w=>{h=()=>{f||(f=!0,w())}}),C=w=>{if(l&&!g.forceRefresh){w.status=w.statusCode;let v=wR.fromObject(l.cachePolicy).revalidatedPolicy(g,w);if(!v.modified){let D=v.policy.responseHeaders();w=new s6(l.statusCode,D,l.body,l.url),w.cachePolicy=v.policy,w.fromCache=!0}}w.fromCache||(w.cachePolicy=new wR(g,w,g),w.fromCache=!1);let B;g.cache&&w.cachePolicy.storable()?(B=QDe(w),(async()=>{try{let v=wDe.buffer(w);if(await Promise.race([p,new Promise(j=>w.once(\"end\",j))]),f)return;let D=await v,L={cachePolicy:w.cachePolicy.toObject(),url:w.url,statusCode:w.fromCache?l.statusCode:w.statusCode,body:D},H=g.strictTtl?w.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,L,H)}catch(v){s.emit(\"error\",new no.CacheError(v))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(v){s.emit(\"error\",new no.CacheError(v))}})(),s.emit(\"response\",B||w),typeof i==\"function\"&&i(B||w)};try{let w=e(g,C);w.once(\"error\",h),w.once(\"abort\",h),s.emit(\"request\",w)}catch(w){s.emit(\"error\",new no.RequestError(w))}};return(async()=>{let g=async h=>{await Promise.resolve();let p=h.cache?await this.cache.get(a):void 0;if(typeof p>\"u\")return u(h);let C=wR.fromObject(p.cachePolicy);if(C.satisfiesWithoutRevalidation(h)&&!h.forceRefresh){let w=C.responseHeaders(),B=new s6(p.statusCode,w,p.body,p.url);B.cachePolicy=C,B.fromCache=!0,s.emit(\"response\",B),typeof i==\"function\"&&i(B)}else l=p,h.headers=C.revalidationHeaders(h),u(h)},f=h=>s.emit(\"error\",new no.CacheError(h));this.cache.once(\"error\",f),s.on(\"response\",()=>this.cache.removeListener(\"error\",f));try{await g(t)}catch(h){t.automaticFailover&&!c&&u(t),s.emit(\"error\",new no.CacheError(h))}})(),s}}};function SDe(r){let e={...r};return e.path=`${r.pathname||\"/\"}${r.search||\"\"}`,delete e.pathname,delete e.search,e}function BR(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||\"localhost\",port:r.port,pathname:r.pathname,search:r.search}}no.RequestError=class extends Error{constructor(r){super(r.message),this.name=\"RequestError\",Object.assign(this,r)}};no.CacheError=class extends Error{constructor(r){super(r.message),this.name=\"CacheError\",Object.assign(this,r)}};o6.exports=no});var l6=y((Vnt,A6)=>{\"use strict\";var vDe=[\"aborted\",\"complete\",\"headers\",\"httpVersion\",\"httpVersionMinor\",\"httpVersionMajor\",\"method\",\"rawHeaders\",\"rawTrailers\",\"setTimeout\",\"socket\",\"statusCode\",\"statusMessage\",\"trailers\",\"url\"];A6.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error(\"The second stream must have the `autoDestroy` option set to `false`\");let t=new Set(Object.keys(r).concat(vDe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s==\"function\"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once(\"aborted\",()=>{e.destroy(),e.emit(\"aborted\")}),r.once(\"close\",()=>{r.complete&&e.readable?e.once(\"end\",()=>{e.emit(\"close\")}):e.emit(\"close\")}),e}});var u6=y((Xnt,c6)=>{\"use strict\";var{Transform:xDe,PassThrough:PDe}=J(\"stream\"),QR=J(\"zlib\"),DDe=l6();c6.exports=r=>{let e=(r.headers[\"content-encoding\"]||\"\").toLowerCase();if(![\"gzip\",\"deflate\",\"br\"].includes(e))return r;let t=e===\"br\";if(t&&typeof QR.createBrotliDecompress!=\"function\")return r.destroy(new Error(\"Brotli is not supported on Node.js < 12\")),r;let i=!0,n=new xDe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new PDe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?QR.createBrotliDecompress():QR.createUnzip();return o.once(\"error\",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),DDe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var SR=y((_nt,g6)=>{\"use strict\";var bR=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError(\"`maxSize` must be a number greater than 0\");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction==\"function\")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};g6.exports=bR});var xR=y((Znt,d6)=>{\"use strict\";var kDe=J(\"events\"),RDe=J(\"tls\"),FDe=J(\"http2\"),NDe=SR(),rn=Symbol(\"currentStreamsCount\"),f6=Symbol(\"request\"),ms=Symbol(\"cachedOriginSet\"),rh=Symbol(\"gracefullyClosing\"),LDe=[\"maxDeflateDynamicTableSize\",\"maxSessionMemory\",\"maxHeaderListPairs\",\"maxOutstandingPings\",\"maxReservedRemoteStreams\",\"maxSendHeaderBlockLength\",\"paddingStrategy\",\"localAddress\",\"path\",\"rejectUnauthorized\",\"minDHSize\",\"ca\",\"cert\",\"clientCertEngine\",\"ciphers\",\"key\",\"pfx\",\"servername\",\"minVersion\",\"maxVersion\",\"secureProtocol\",\"crl\",\"honorCipherOrder\",\"ecdhCurve\",\"dhparam\",\"secureOptions\",\"sessionIdContext\"],TDe=(r,e,t)=>{let i=0,n=r.length;for(;i<n;){let s=i+n>>>1;t(r[s],e)?i=s+1:n=s}return i},ODe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,vR=(r,e)=>{for(let t of r)t[ms].length<e[ms].length&&t[ms].every(i=>e[ms].includes(i))&&t[rn]+e[rn]<=e.remoteSettings.maxConcurrentStreams&&p6(t)},MDe=(r,e)=>{for(let t of r)e[ms].length<t[ms].length&&e[ms].every(i=>t[ms].includes(i))&&e[rn]+t[rn]<=t.remoteSettings.maxConcurrentStreams&&p6(e)},h6=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[zo.kCurrentStreamsCount]<o.remoteSettings.maxConcurrentStreams;return e?a:!a});s.length!==0&&(t[i]=s)}return t},p6=r=>{r[rh]=!0,r[rn]===0&&r.close()},zo=class extends kDe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new NDe({maxSize:n})}static normalizeOrigin(e,t){return typeof e==\"string\"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t=\"\";if(e)for(let i of LDe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount<this.maxSessions&&!i.completed&&(i.completed=!0,i())}getSession(e,t,i){return new Promise((n,s)=>{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=zo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError(\"The `origin` argument needs to be a string or an URL object\"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,f=-1,h;for(let p of u){let C=p.remoteSettings.maxConcurrentStreams;if(C<g)break;if(p[ms].includes(a)){let w=p[rn];if(w>=C||p[rh]||p.destroyed)continue;h||(g=C),w>f&&(h=p,f=w)}}if(h){if(i.length!==1){for(let{reject:p}of i){let C=new Error(`Expected the length of listeners to be 1, got ${i.length}.\nPlease report this to https://github.com/szmarczak/http2-wrapper/`);p(C)}return}i[0].resolve(h);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let f=FDe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});f[rn]=0,f[rh]=!1;let h=()=>f[rn]<f.remoteSettings.maxConcurrentStreams,p=!0;f.socket.once(\"session\",w=>{this.tlsSessionCache.set(u,w)}),f.once(\"error\",w=>{for(let{reject:B}of i)B(w);this.tlsSessionCache.delete(u)}),f.setTimeout(this.timeout,()=>{f.destroy()}),f.once(\"close\",()=>{if(g){p&&this._freeSessionsCount--,this._sessionsCount--;let w=this.sessions[o];w.splice(w.indexOf(f),1),w.length===0&&delete this.sessions[o]}else{let w=new Error(\"Session closed without receiving a SETTINGS frame\");w.code=\"HTTP2WRAPPER_NOSETTINGS\";for(let{reject:B}of i)B(w);l()}this._tryToCreateNewSession(o,a)});let C=()=>{if(!(!(o in this.queue)||!h())){for(let w of f[ms])if(w in this.queue[o]){let{listeners:B}=this.queue[o][w];for(;B.length!==0&&h();)B.shift().resolve(f);let v=this.queue[o];if(v[w].listeners.length===0&&(delete v[w],Object.keys(v).length===0)){delete this.queue[o];break}if(!h())break}}};f.on(\"origin\",()=>{f[ms]=f.originSet,h()&&(C(),vR(this.sessions[o],f))}),f.once(\"remoteSettings\",()=>{if(f.ref(),f.unref(),this._sessionsCount++,c.destroyed){let w=new Error(\"Agent has been destroyed\");for(let B of i)B.reject(w);f.destroy();return}f[ms]=f.originSet;{let w=this.sessions;if(o in w){let B=w[o];B.splice(TDe(B,f,ODe),0,f)}else w[o]=[f]}this._freeSessionsCount+=1,g=!0,this.emit(\"session\",f),C(),l(),f[rn]===0&&this._freeSessionsCount>this.maxFreeSessions&&f.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),f.on(\"remoteSettings\",()=>{C(),vR(this.sessions[o],f)})}),f[f6]=f.request,f.request=(w,B)=>{if(f[rh])throw new Error(\"The session is gracefully closing. No new streams are allowed.\");let v=f[f6](w,B);return f.ref(),++f[rn],f[rn]===f.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,v.once(\"close\",()=>{if(p=h(),--f[rn],!f.destroyed&&!f.closed&&(MDe(this.sessions[o],f),h()&&!f.closed)){p||(this._freeSessionsCount++,p=!0);let D=f[rn]===0;D&&f.unref(),D&&(this._freeSessionsCount>this.maxFreeSessions||f[rh])?f.close():(vR(this.sessions[o],f),C())}}),v}}catch(f){for(let h of i)h.reject(f);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return zo.connect(e,t)}static connect(e,t){t.ALPNProtocols=[\"h2\"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>\"u\"&&(t.servername=n),RDe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[rn]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return h6({agent:this,isFree:!0})}get busySessions(){return h6({agent:this,isFree:!1})}};zo.kCurrentStreamsCount=rn;zo.kGracefullyClosing=rh;d6.exports={Agent:zo,globalAgent:new zo}});var DR=y(($nt,C6)=>{\"use strict\";var{Readable:KDe}=J(\"stream\"),PR=class extends KDe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage=\"\",this.httpVersion=\"2.0\",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners(\"data\"),this.resume())}_read(){this.req&&this.req._request.resume()}};C6.exports=PR});var kR=y((est,m6)=>{\"use strict\";m6.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname==\"string\"&&r.hostname.startsWith(\"[\")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||\"\"}${r.search||\"\"}`};return typeof r.port==\"string\"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||\"\"}:${r.password||\"\"}`),e}});var I6=y((tst,E6)=>{\"use strict\";E6.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var w6=y((rst,y6)=>{\"use strict\";y6.exports=r=>{switch(r){case\":method\":case\":scheme\":case\":authority\":case\":path\":return!0;default:return!1}}});var Q6=y((nst,B6)=>{\"use strict\";var ih=(r,e,t)=>{B6.exports[e]=class extends r{constructor(...n){super(typeof t==\"string\"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};ih(TypeError,\"ERR_INVALID_ARG_TYPE\",r=>{let e=r[0].includes(\".\")?\"property\":\"argument\",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(\", \")} or ${t.slice(-1)}`),`The \"${r[0]}\" ${e} must be ${i?\"one of\":\"of\"} type ${t}. Received ${typeof r[2]}`});ih(TypeError,\"ERR_INVALID_PROTOCOL\",r=>`Protocol \"${r[0]}\" not supported. Expected \"${r[1]}\"`);ih(Error,\"ERR_HTTP_HEADERS_SENT\",r=>`Cannot ${r[0]} headers after they are sent to the client`);ih(TypeError,\"ERR_INVALID_HTTP_TOKEN\",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);ih(TypeError,\"ERR_HTTP_INVALID_HEADER_VALUE\",r=>`Invalid value \"${r[0]} for header \"${r[1]}\"`);ih(TypeError,\"ERR_INVALID_CHAR\",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var TR=y((sst,k6)=>{\"use strict\";var UDe=J(\"http2\"),{Writable:HDe}=J(\"stream\"),{Agent:b6,globalAgent:GDe}=xR(),YDe=DR(),jDe=kR(),qDe=I6(),JDe=w6(),{ERR_INVALID_ARG_TYPE:RR,ERR_INVALID_PROTOCOL:WDe,ERR_HTTP_HEADERS_SENT:S6,ERR_INVALID_HTTP_TOKEN:zDe,ERR_HTTP_INVALID_HEADER_VALUE:VDe,ERR_INVALID_CHAR:XDe}=Q6(),{HTTP2_HEADER_STATUS:v6,HTTP2_HEADER_METHOD:x6,HTTP2_HEADER_PATH:P6,HTTP2_METHOD_CONNECT:_De}=UDe.constants,Hi=Symbol(\"headers\"),FR=Symbol(\"origin\"),NR=Symbol(\"session\"),D6=Symbol(\"options\"),SB=Symbol(\"flushedHeaders\"),UC=Symbol(\"jobs\"),ZDe=/^[\\^`\\-\\w!#$%&*+.|~]+$/,$De=/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/,LR=class extends HDe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e==\"string\"||e instanceof URL;if(n&&(e=jDe(e instanceof URL?e:new URL(e))),typeof t==\"function\"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[NR]=t.h2session;else if(t.agent===!1)this.agent=new b6({maxFreeSessions:0});else if(typeof t.agent>\"u\"||t.agent===null)typeof t.createConnection==\"function\"?(this.agent=new b6({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=GDe;else if(typeof t.agent.request==\"function\")this.agent=t.agent;else throw new RR(\"options.agent\",[\"Agent-like Object\",\"undefined\",\"false\"],t.agent);if(t.protocol&&t.protocol!==\"https:\")throw new WDe(t.protocol,\"https:\");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||\"localhost\";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Hi]=Object.create(null),this[UC]=[],this.socket=null,this.connection=null,this.method=t.method||\"GET\",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!(\"authorization\"in this[Hi])&&(this[Hi].authorization=\"Basic \"+Buffer.from(t.auth).toString(\"base64\")),t.session=t.tlsSession,t.path=t.socketPath,this[D6]=t,s===443?(this[FR]=`https://${o}`,\":authority\"in this[Hi]||(this[Hi][\":authority\"]=o)):(this[FR]=`https://${o}:${s}`,\":authority\"in this[Hi]||(this[Hi][\":authority\"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once(\"response\",i),this[SB]=!1}get method(){return this[Hi][x6]}set method(e){e&&(this[Hi][x6]=e.toUpperCase())}get path(){return this[Hi][P6]}set path(e){e&&(this[Hi][P6]=e)}get _mustNotHaveABody(){return this.method===\"GET\"||this.method===\"HEAD\"||this.method===\"DELETE\"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error(\"The GET, HEAD and DELETE methods must NOT have a body\"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[UC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[UC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit(\"abort\")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[SB]||this.destroyed)return;this[SB]=!0;let e=this.method===_De,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||qDe(i,this,[\"timeout\",\"continue\",\"close\",\"error\"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once(\"finish\",()=>{o(...a)})};i.once(\"response\",n((o,a,l)=>{let c=new YDe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[v6],c.headers=o,c.rawHeaders=l,c.once(\"end\",()=>{this.aborted?(c.aborted=!0,c.emit(\"aborted\")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit(\"connect\",c,i,Buffer.alloc(0))?this.emit(\"close\"):i.destroy()):(i.on(\"data\",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once(\"end\",()=>{c.push(null)}),this.emit(\"response\",c)||c._dump())})),i.once(\"headers\",n(o=>this.emit(\"information\",{statusCode:o[v6]}))),i.once(\"trailers\",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[UC])o();this.emit(\"socket\",this.socket)};if(this[NR])try{t(this[NR].request(this[Hi]))}catch(i){this.emit(\"error\",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[FR],this[D6],this[Hi]))}catch(i){this.emit(\"error\",i)}}}getHeader(e){if(typeof e!=\"string\")throw new RR(\"name\",\"string\",e);return this[Hi][e.toLowerCase()]}get headersSent(){return this[SB]}removeHeader(e){if(typeof e!=\"string\")throw new RR(\"name\",\"string\",e);if(this.headersSent)throw new S6(\"remove\");delete this[Hi][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new S6(\"set\");if(typeof e!=\"string\"||!ZDe.test(e)&&!JDe(e))throw new zDe(\"Header name\",e);if(typeof t>\"u\")throw new VDe(t,e);if($De.test(t))throw new XDe(\"header content\",e);this[Hi][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[UC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};k6.exports=LR});var F6=y((ost,R6)=>{\"use strict\";var eke=J(\"tls\");R6.exports=(r={})=>new Promise((e,t)=>{let i=eke.connect(r,()=>{r.resolveSocket?(i.off(\"error\",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on(\"error\",t)})});var L6=y((ast,N6)=>{\"use strict\";var tke=J(\"net\");N6.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith(\"[\")?t.indexOf(\"]\")===-1?e=t:e=t.slice(1,-1):e=t.split(\":\",1)[0]),tke.isIP(e)?\"\":e}});var M6=y((Ast,MR)=>{\"use strict\";var T6=J(\"http\"),OR=J(\"https\"),rke=F6(),ike=SR(),nke=TR(),ske=L6(),oke=kR(),vB=new ike({maxSize:100}),HC=new Map,O6=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit(\"free\",e,t)};e.on(\"free\",i);let n=()=>{r.removeSocket(e,t)};e.on(\"close\",n);let s=()=>{r.removeSocket(e,t),e.off(\"close\",n),e.off(\"free\",i),e.off(\"agentRemove\",s)};e.on(\"agentRemove\",s),r.emit(\"free\",e,t)},ake=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!vB.has(e)){if(HC.has(e))return(await HC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=rke(r);HC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if(vB.set(e,o),r.path=t,o===\"h2\")s.destroy();else{let{globalAgent:a}=OR,l=OR.Agent.prototype.createConnection;i?i.createConnection===l?O6(i,s,r):s.destroy():a.createConnection===l?O6(a,s,r):s.destroy()}return HC.delete(e),o}catch(s){throw HC.delete(e),s}}return vB.get(e)};MR.exports=async(r,e,t)=>{if((typeof r==\"string\"||r instanceof URL)&&(r=oke(new URL(r))),typeof e==\"function\"&&(t=e,e=void 0),e={ALPNProtocols:[\"h2\",\"http/1.1\"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error(\"The `ALPNProtocols` option must be an Array with at least one entry\");e.protocol=e.protocol||\"https:\";let i=e.protocol===\"https:\";e.host=e.hostname||e.host||\"localhost\",e.session=e.tlsSession,e.servername=e.servername||ske(e),e.port=e.port||(i?443:80),e._defaultAgent=i?OR.globalAgent:T6.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error(\"The `options.agent` object can contain only `http`, `https` or `http2` properties\");e.agent=n[i?\"https\":\"http\"]}return i&&await ake(e)===\"h2\"?(n&&(e.agent=n.http2),new nke(e,t)):T6.request(e,t)};MR.exports.protocolCache=vB});var U6=y((lst,K6)=>{\"use strict\";var Ake=J(\"http2\"),lke=xR(),KR=TR(),cke=DR(),uke=M6(),gke=(r,e,t)=>new KR(r,e,t),fke=(r,e,t)=>{let i=new KR(r,e,t);return i.end(),i};K6.exports={...Ake,ClientRequest:KR,IncomingMessage:cke,...lke,request:gke,get:fke,auto:uke}});var HR=y(UR=>{\"use strict\";Object.defineProperty(UR,\"__esModule\",{value:!0});var H6=qa();UR.default=r=>H6.default.nodeStream(r)&&H6.default.function_(r.getBoundary)});var q6=y(GR=>{\"use strict\";Object.defineProperty(GR,\"__esModule\",{value:!0});var Y6=J(\"fs\"),j6=J(\"util\"),G6=qa(),hke=HR(),pke=j6.promisify(Y6.stat);GR.default=async(r,e)=>{if(e&&\"content-length\"in e)return Number(e[\"content-length\"]);if(!r)return 0;if(G6.default.string(r))return Buffer.byteLength(r);if(G6.default.buffer(r))return r.length;if(hke.default(r))return j6.promisify(r.getLength.bind(r))();if(r instanceof Y6.ReadStream){let{size:t}=await pke(r.path);return t===0?void 0:t}}});var jR=y(YR=>{\"use strict\";Object.defineProperty(YR,\"__esModule\",{value:!0});function dke(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}YR.default=dke});var J6=y(qR=>{\"use strict\";Object.defineProperty(qR,\"__esModule\",{value:!0});qR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var z6=y(GC=>{\"use strict\";Object.defineProperty(GC,\"__esModule\",{value:!0});GC.TimeoutError=void 0;var Cke=J(\"net\"),mke=J6(),W6=Symbol(\"reentry\"),Eke=()=>{},xB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name=\"TimeoutError\",this.code=\"ETIMEDOUT\"}};GC.TimeoutError=xB;GC.default=(r,e,t)=>{if(W6 in r)return Eke;r[W6]=!0;let i=[],{once:n,unhandleAll:s}=mke.default(),o=(g,f,h)=>{var p;let C=setTimeout(f,g,g,h);(p=C.unref)===null||p===void 0||p.call(C);let w=()=>{clearTimeout(C)};return i.push(w),w},{host:a,hostname:l}=t,c=(g,f)=>{r.destroy(new xB(g,f))},u=()=>{for(let g of i)g();s()};if(r.once(\"error\",g=>{if(u(),r.listenerCount(\"error\")===0)throw g}),r.once(\"close\",u),n(r,\"response\",g=>{n(g,\"end\",u)}),typeof e.request<\"u\"&&o(e.request,c,\"request\"),typeof e.socket<\"u\"){let g=()=>{c(e.socket,\"socket\")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener(\"timeout\",g)})}return n(r,\"socket\",g=>{var f;let{socketPath:h}=r;if(g.connecting){let p=Boolean(h!=null?h:Cke.isIP((f=l!=null?l:a)!==null&&f!==void 0?f:\"\")!==0);if(typeof e.lookup<\"u\"&&!p&&typeof g.address().address>\"u\"){let C=o(e.lookup,c,\"lookup\");n(g,\"lookup\",C)}if(typeof e.connect<\"u\"){let C=()=>o(e.connect,c,\"connect\");p?n(g,\"connect\",C()):n(g,\"lookup\",w=>{w===null&&n(g,\"connect\",C())})}typeof e.secureConnect<\"u\"&&t.protocol===\"https:\"&&n(g,\"connect\",()=>{let C=o(e.secureConnect,c,\"secureConnect\");n(g,\"secureConnect\",C)})}if(typeof e.send<\"u\"){let p=()=>o(e.send,c,\"send\");g.connecting?n(g,\"connect\",()=>{n(r,\"upload-complete\",p())}):n(r,\"upload-complete\",p())}}),typeof e.response<\"u\"&&n(r,\"upload-complete\",()=>{let g=o(e.response,c,\"response\");n(r,\"response\",g)}),u}});var X6=y(JR=>{\"use strict\";Object.defineProperty(JR,\"__esModule\",{value:!0});var V6=qa();JR.default=r=>{r=r;let e={protocol:r.protocol,hostname:V6.default.string(r.hostname)&&r.hostname.startsWith(\"[\")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||\"\"}${r.search||\"\"}`};return V6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||\"\"}:${r.password||\"\"}`),e}});var _6=y(WR=>{\"use strict\";Object.defineProperty(WR,\"__esModule\",{value:!0});var Ike=J(\"url\"),yke=[\"protocol\",\"host\",\"hostname\",\"port\",\"pathname\",\"search\"];WR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError(\"Parameters `path` and `pathname` are mutually exclusive.\");if(e.search)throw new TypeError(\"Parameters `path` and `search` are mutually exclusive.\");if(e.searchParams)throw new TypeError(\"Parameters `path` and `searchParams` are mutually exclusive.\")}if(e.search&&e.searchParams)throw new TypeError(\"Parameters `search` and `searchParams` are mutually exclusive.\");if(!r){if(!e.protocol)throw new TypeError(\"No URL protocol specified\");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:\"\"}`}let n=new Ike.URL(r);if(e.path){let s=e.path.indexOf(\"?\");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of yke)e[s]&&(n[s]=e[s].toString());return n}});var Z6=y(VR=>{\"use strict\";Object.defineProperty(VR,\"__esModule\",{value:!0});var zR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e==\"object\"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e==\"object\"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e==\"object\"?this.weakMap.has(e):this.map.has(e)}};VR.default=zR});var _R=y(XR=>{\"use strict\";Object.defineProperty(XR,\"__esModule\",{value:!0});var wke=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(\"\"))};XR.default=wke});var eV=y(Xc=>{\"use strict\";Object.defineProperty(Xc,\"__esModule\",{value:!0});Xc.dnsLookupIpVersionToFamily=Xc.isDnsLookupIpVersion=void 0;var $6={auto:0,ipv4:4,ipv6:6};Xc.isDnsLookupIpVersion=r=>r in $6;Xc.dnsLookupIpVersionToFamily=r=>{if(Xc.isDnsLookupIpVersion(r))return $6[r];throw new Error(\"Invalid DNS lookup IP version\")}});var ZR=y(PB=>{\"use strict\";Object.defineProperty(PB,\"__esModule\",{value:!0});PB.isResponseOk=void 0;PB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var rV=y($R=>{\"use strict\";Object.defineProperty($R,\"__esModule\",{value:!0});var tV=new Set;$R.default=r=>{tV.has(r)||(tV.add(r),process.emitWarning(`Got: ${r}`,{type:\"DeprecationWarning\"}))}});var iV=y(eF=>{\"use strict\";Object.defineProperty(eF,\"__esModule\",{value:!0});var Er=qa(),Bke=(r,e)=>{if(Er.default.null_(r.encoding))throw new TypeError(\"To get a Buffer, set `options.responseType` to `buffer` instead\");Er.assert.any([Er.default.string,Er.default.undefined],r.encoding),Er.assert.any([Er.default.boolean,Er.default.undefined],r.resolveBodyOnly),Er.assert.any([Er.default.boolean,Er.default.undefined],r.methodRewriting),Er.assert.any([Er.default.boolean,Er.default.undefined],r.isStream),Er.assert.any([Er.default.string,Er.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType=\"text\");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},Er.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):Er.default.number(t)&&(r.retry.limit=t),Er.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(Er.default.number))),Er.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!Er.default.function_(i.transform))throw new Error(\"`options.pagination.transform` must be implemented\");if(!Er.default.function_(i.shouldContinue))throw new Error(\"`options.pagination.shouldContinue` must be implemented\");if(!Er.default.function_(i.filter))throw new TypeError(\"`options.pagination.filter` must be implemented\");if(!Er.default.function_(i.paginate))throw new Error(\"`options.pagination.paginate` must be implemented\")}return r.responseType===\"json\"&&r.headers.accept===void 0&&(r.headers.accept=\"application/json\"),r};eF.default=Bke});var nV=y(YC=>{\"use strict\";Object.defineProperty(YC,\"__esModule\",{value:!0});YC.retryAfterStatusCodes=void 0;YC.retryAfterStatusCodes=new Set([413,429,503]);var Qke=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};YC.default=Qke});var JC=y(Yt=>{\"use strict\";Object.defineProperty(Yt,\"__esModule\",{value:!0});Yt.UnsupportedProtocolError=Yt.ReadError=Yt.TimeoutError=Yt.UploadError=Yt.CacheError=Yt.HTTPError=Yt.MaxRedirectsError=Yt.RequestError=Yt.setNonEnumerableProperties=Yt.knownHookEvents=Yt.withoutBody=Yt.kIsNormalizedAlready=void 0;var sV=J(\"util\"),oV=J(\"stream\"),bke=J(\"fs\"),el=J(\"url\"),aV=J(\"http\"),tF=J(\"http\"),Ske=J(\"https\"),vke=w5(),xke=P5(),AV=a6(),Pke=u6(),Dke=U6(),kke=QB(),Ce=qa(),Rke=q6(),lV=HR(),Fke=jR(),cV=z6(),Nke=X6(),uV=_6(),Lke=Z6(),Tke=_R(),gV=eV(),Oke=ZR(),tl=rV(),Mke=iV(),Kke=nV(),rF,Di=Symbol(\"request\"),RB=Symbol(\"response\"),nh=Symbol(\"responseSize\"),sh=Symbol(\"downloadedSize\"),oh=Symbol(\"bodySize\"),ah=Symbol(\"uploadedSize\"),DB=Symbol(\"serverResponsesPiped\"),fV=Symbol(\"unproxyEvents\"),hV=Symbol(\"isFromCache\"),iF=Symbol(\"cancelTimeouts\"),pV=Symbol(\"startedReading\"),Ah=Symbol(\"stopReading\"),kB=Symbol(\"triggerRead\"),rl=Symbol(\"body\"),jC=Symbol(\"jobs\"),dV=Symbol(\"originalResponse\"),CV=Symbol(\"retryTimeout\");Yt.kIsNormalizedAlready=Symbol(\"isNormalizedAlready\");var Uke=Ce.default.string(process.versions.brotli);Yt.withoutBody=new Set([\"GET\",\"HEAD\"]);Yt.knownHookEvents=[\"init\",\"beforeRequest\",\"beforeRedirect\",\"beforeError\",\"beforeRetry\",\"afterResponse\"];function Hke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \\`searchParams\\` value '${String(t)}' must be a string, number, boolean or null`)}}function Gke(r){return Ce.default.object(r)&&!(\"statusCode\"in r)}var nF=new Lke.default,Yke=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once(\"error\",i),r.once(\"ready\",()=>{r.off(\"error\",i),e()})}),jke=new Set([300,301,302,303,304,307,308]),qke=[\"context\",\"body\",\"json\",\"form\"];Yt.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of qke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var ii=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name=\"RequestError\",this.code=t.code,i instanceof KB?(Object.defineProperty(this,\"request\",{enumerable:!1,value:i}),Object.defineProperty(this,\"response\",{enumerable:!1,value:i[RB]}),Object.defineProperty(this,\"options\",{enumerable:!1,value:i.options})):Object.defineProperty(this,\"options\",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(`\n`).reverse(),a=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(`\n`).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(`\n`)}${a.reverse().join(`\n`)}`}}};Yt.RequestError=ii;var FB=class extends ii{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name=\"MaxRedirectsError\"}};Yt.MaxRedirectsError=FB;var NB=class extends ii{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name=\"HTTPError\"}};Yt.HTTPError=NB;var LB=class extends ii{constructor(e,t){super(e.message,e,t),this.name=\"CacheError\"}};Yt.CacheError=LB;var TB=class extends ii{constructor(e,t){super(e.message,e,t),this.name=\"UploadError\"}};Yt.UploadError=TB;var OB=class extends ii{constructor(e,t,i){super(e.message,e,i),this.name=\"TimeoutError\",this.event=e.event,this.timings=t}};Yt.TimeoutError=OB;var qC=class extends ii{constructor(e,t){super(e.message,e,t),this.name=\"ReadError\"}};Yt.ReadError=qC;var MB=class extends ii{constructor(e){super(`Unsupported protocol \"${e.url.protocol}\"`,{},e),this.name=\"UnsupportedProtocolError\"}};Yt.UnsupportedProtocolError=MB;var Jke=[\"socket\",\"connect\",\"continue\",\"information\",\"upgrade\",\"timeout\"],KB=class extends oV.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[sh]=0,this[ah]=0,this.requestInitialized=!1,this[DB]=new Set,this.redirects=[],this[Ah]=!1,this[kB]=!1,this[jC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on(\"pipe\",c=>{c.prependListener(\"data\",n),c.on(\"data\",s),c.prependListener(\"end\",n),c.on(\"end\",s)}),this.on(\"unpipe\",c=>{c.off(\"data\",n),c.off(\"data\",s),c.off(\"end\",n),c.off(\"end\",s)}),this.on(\"pipe\",c=>{c instanceof tF.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Yt.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof bke.ReadStream&&await Yke(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError(\"Missing `url` property\");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Di])===null||c===void 0||c.destroy();return}for(let g of this[jC])g();this[jC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof ii){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError(\"The `url` option is mutually exclusive with the `input` argument\");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new el.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([gV.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method=\"GET\",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=kke({...i==null?void 0:i.headers,...t.headers}),\"slashes\"in t)throw new TypeError(\"The legacy `url.Url` has been deprecated. Use `URL` instead.\");if(\"auth\"in t)throw new TypeError(\"Parameter `auth` is deprecated. Use `username` / `password` instead.\");if(\"searchParams\"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let h;if(Ce.default.string(t.searchParams)||t.searchParams instanceof el.URLSearchParams)h=new el.URLSearchParams(t.searchParams);else{Hke(t.searchParams),h=new el.URLSearchParams;for(let p in t.searchParams){let C=t.searchParams[p];C===null?h.append(p,\"\"):C!==void 0&&h.append(p,C)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((p,C)=>{h.has(C)||h.append(C,p)}),t.searchParams=h}if(t.username=(s=t.username)!==null&&s!==void 0?s:\"\",t.password=(o=t.password)!==null&&o!==void 0?o:\"\",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:\"\":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==\"\"&&!t.prefixUrl.endsWith(\"/\")&&(t.prefixUrl+=\"/\")),Ce.default.string(t.url)){if(t.url.startsWith(\"/\"))throw new Error(\"`input` must not start with a slash when using `prefixUrl`\");t.url=uV.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==\"\"||t.protocol)&&(t.url=uV.default(t.prefixUrl,t));if(t.url){\"port\"in t&&delete t.port;let{prefixUrl:h}=t;Object.defineProperty(t,\"prefixUrl\",{set:C=>{let w=t.url;if(!w.href.startsWith(C))throw new Error(`Cannot change \\`prefixUrl\\` from ${h} to ${C}: ${w.href}`);t.url=new el.URL(C+w.href.slice(h.length)),h=C},get:()=>h});let{protocol:p}=t.url;if(p===\"unix:\"&&(p=\"http:\",t.url=new el.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),p!==\"http:\"&&p!==\"https:\")throw new MB(t);t.username===\"\"?t.username=t.url.username:t.url.username=t.username,t.password===\"\"?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:h,getCookieString:p}=u;Ce.assert.function_(h),Ce.assert.function_(p),h.length===4&&p.length===0&&(h=sV.promisify(h.bind(t.cookieJar)),p=sV.promisify(p.bind(t.cookieJar)),t.cookieJar={setCookie:h,getCookieString:p})}let{cache:g}=t;if(g&&(nF.has(g)||nF.set(g,new AV((h,p)=>{let C=h[Di](h,p);return Ce.default.promise(C)&&(C.once=(w,B)=>{if(w===\"error\")C.catch(B);else if(w===\"abort\")(async()=>{try{(await C).once(\"abort\",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${w}`);return C}),C},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)rF||(rF=new xke.default),t.dnsCache=rF;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \\`dnsCache\\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let f=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let h of Yt.knownHookEvents)if(h in t.hooks)if(Ce.default.array(t.hooks[h]))t.hooks[h]=[...t.hooks[h]];else throw new TypeError(`Parameter \\`${h}\\` must be an Array, got ${Ce.default(t.hooks[h])}`);else t.hooks[h]=[];if(i&&!f)for(let h of Yt.knownHookEvents)i.hooks[h].length>0&&(t.hooks[h]=[...i.hooks[h],...t.hooks[h]]);if(\"family\"in t&&tl.default('\"options.family\" was never documented, please use \"options.dnsLookupIpVersion\"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),\"rejectUnauthorized\"in t&&tl.default('\"options.rejectUnauthorized\" is now deprecated, please use \"options.https.rejectUnauthorized\"'),\"checkServerIdentity\"in t&&tl.default('\"options.checkServerIdentity\" was never documented, please use \"options.https.checkServerIdentity\"'),\"ca\"in t&&tl.default('\"options.ca\" was never documented, please use \"options.https.certificateAuthority\"'),\"key\"in t&&tl.default('\"options.key\" was never documented, please use \"options.https.key\"'),\"cert\"in t&&tl.default('\"options.cert\" was never documented, please use \"options.https.certificate\"'),\"passphrase\"in t&&tl.default('\"options.passphrase\" was never documented, please use \"options.https.passphrase\"'),\"pfx\"in t&&tl.default('\"options.pfx\" was never documented, please use \"options.https.pfx\"'),\"followRedirects\"in t)throw new TypeError(\"The `followRedirects` option does not exist. Use `followRedirect` instead.\");if(t.agent){for(let h in t.agent)if(h!==\"http\"&&h!==\"https\"&&h!==\"http2\")throw new TypeError(`Expected the \\`options.agent\\` properties to be \\`http\\`, \\`https\\` or \\`http2\\`, got \\`${h}\\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Yt.setNonEnumerableProperties([i,c],t),Mke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError(\"The payload has been already provided\")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Yt.withoutBody.has(e.method)&&!(e.method===\"GET\"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \\`${e.method}\\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError(\"The `body`, `json` and `form` options are mutually exclusive\");if(s&&!(e.body instanceof oV.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!lV.default(e.body))throw new TypeError(\"The `body` option must be a stream.Readable, string or Buffer\");if(i&&!Ce.default.object(e.form))throw new TypeError(\"The `form` option must be an Object\");{let l=!Ce.default.string(t[\"content-type\"]);s?(lV.default(e.body)&&l&&(t[\"content-type\"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[rl]=e.body):i?(l&&(t[\"content-type\"]=\"application/x-www-form-urlencoded\"),this[rl]=new el.URLSearchParams(e.form).toString()):(l&&(t[\"content-type\"]=\"application/json\"),this[rl]=e.stringifyJson(e.json));let c=await Rke.default(this[rl],e.headers);Ce.default.undefined(t[\"content-length\"])&&Ce.default.undefined(t[\"transfer-encoding\"])&&!a&&!Ce.default.undefined(c)&&(t[\"content-length\"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[oh]=Number(t[\"content-length\"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[dV]=e,t.decompress&&(e=Pke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:aV.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[hV]=s.isFromCache,this[nh]=Number(e.headers[\"content-length\"])||void 0,this[RB]=e,e.once(\"end\",()=>{this[nh]=this[sh],this.emit(\"downloadProgress\",this.downloadProgress)}),e.once(\"error\",a=>{e.destroy(),this._beforeError(new qC(a,this))}),e.once(\"aborted\",()=>{this._beforeError(new qC({name:\"Error\",message:\"The server aborted pending request\",code:\"ECONNRESET\"},this))}),this.emit(\"downloadProgress\",this.downloadProgress);let o=e.headers[\"set-cookie\"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&jke.has(n)){if(e.resume(),this[Di]&&(this[iF](),delete this[Di],this[fV]()),(n===303&&t.method!==\"GET\"&&t.method!==\"HEAD\"||!t.methodRewriting)&&(t.method=\"GET\",\"body\"in t&&delete t.body,\"json\"in t&&delete t.json,\"form\"in t&&delete t.form,this[rl]=void 0,delete t.headers[\"content-length\"]),this.redirects.length>=t.maxRedirects){this._beforeError(new FB(this));return}try{let l=Buffer.from(e.headers.location,\"binary\").toString(),c=new el.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?(\"host\"in t.headers&&delete t.headers.host,\"cookie\"in t.headers&&delete t.headers.cookie,\"authorization\"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username=\"\",t.password=\"\")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit(\"redirect\",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Oke.isResponseOk(s)){this._beforeError(new NB(s));return}e.on(\"readable\",()=>{this[kB]&&this._read()}),this.on(\"resume\",()=>{e.resume()}),this.on(\"pause\",()=>{e.pause()}),e.once(\"end\",()=>{this.push(null)}),this.emit(\"response\",e);for(let a of this[DB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!==\"content-encoding\":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;vke.default(e),this[iF]=cV.default(e,i,n);let s=t.cache?\"cacheableResponse\":\"response\";e.once(s,l=>{this._onResponse(l)}),e.once(\"error\",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners(\"end\"),l=l instanceof cV.TimeoutError?new OB(l,this.timings,this):new ii(l.message,l,this),this._beforeError(l)}),this[fV]=Fke.default(e,this,Jke),this[Di]=e,this.emit(\"uploadProgress\",this.uploadProgress);let o=this[rl],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once(\"error\",l=>{this._beforeError(new TB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit(\"request\",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Nke.default(e)),delete t.url;let s,o=nF.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit(\"cacheableResponse\",a),i(a)});t.url=e,o.once(\"error\",n),o.once(\"request\",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \\`undefined\\` instead of \\`null\\` to delete the \\`${B}\\` header`);if(o.decompress&&Ce.default.undefined(a[\"accept-encoding\"])&&(a[\"accept-encoding\"]=Uke?\"gzip, deflate, br\":\"gzip, deflate\"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let v=await B(o);if(!Ce.default.undefined(v)){o.request=()=>v;break}}o.body&&this[rl]!==o.body&&(this[rl]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!(\"lookup\"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname===\"unix\"){let B=/(?<socketPath>.+?):(?<path>.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:v,path:D}=B.groups;Object.assign(o,{socketPath:v,path:D,host:\"\"})}}let f=g.protocol===\"https:\",h;o.http2?h=Dke.auto:h=f?Ske.request:aV.request;let p=(e=o.request)!==null&&e!==void 0?e:h,C=o.cache?this._createCacheableRequest:p;l&&!o.http2&&(o.agent=l[f?\"https\":\"http\"]),o[Di]=p,delete o.request,delete o.timeout;let w=o;if(w.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,w.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,w.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,w.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{w.family=gV.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error(\"Invalid `dnsLookupIpVersion` option value\")}o.https&&(\"rejectUnauthorized\"in o.https&&(w.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(w.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(w.ca=o.https.certificateAuthority),o.https.certificate&&(w.cert=o.https.certificate),o.https.key&&(w.key=o.https.key),o.https.passphrase&&(w.passphrase=o.https.passphrase),o.https.pfx&&(w.pfx=o.https.pfx));try{let B=await C(g,w);Ce.default.undefined(B)&&(B=h(g,w)),o.request=c,o.timeout=u,o.agent=l,o.https&&(\"rejectUnauthorized\"in o.https&&delete w.rejectUnauthorized,o.https.checkServerIdentity&&delete w.checkServerIdentity,o.https.certificateAuthority&&delete w.ca,o.https.certificate&&delete w.cert,o.https.key&&delete w.key,o.https.passphrase&&delete w.passphrase,o.https.pfx&&delete w.pfx),Gke(B)?this._onRequest(B):this.writable?(this.once(\"finish\",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof AV.CacheError?new LB(B,this):new ii(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new ii(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Ah])return;let{options:t}=this,i=this.retryCount+1;this[Ah]=!0,e instanceof ii||(e=new ii(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Tke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount(\"retry\")!==0){let o;try{let a;s&&\"retry-after\"in s.headers&&(a=Number(s.headers[\"retry-after\"]),Number.isNaN(a)?(a=Date.parse(s.headers[\"retry-after\"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:Kke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new ii(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new ii(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit(\"retry\",i,e))};this[CV]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[kB]=!0;let e=this[RB];if(e&&!this[Ah]){e.readableLength&&(this[kB]=!1);let t;for(;(t=e.read())!==null;){this[sh]+=t.length,this[pV]=!0;let i=this.downloadProgress;i.percent<1&&this.emit(\"downloadProgress\",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[jC].push(n)}_writeRequest(e,t,i){this[Di].destroyed||(this._progressCallbacks.push(()=>{this[ah]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit(\"uploadProgress\",n)}),this[Di].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Di in this)){e();return}if(this[Di].destroyed){e();return}this[Di].end(i=>{i||(this[oh]=this[ah],this.emit(\"uploadProgress\",this.uploadProgress),this[Di].emit(\"upload-complete\")),e(i)})};this.requestInitialized?t():this[jC].push(t)}_destroy(e,t){var i;this[Ah]=!0,clearTimeout(this[CV]),Di in this&&(this[iF](),!((i=this[RB])===null||i===void 0)&&i.complete||this[Di].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof ii)&&(e=new ii(e.message,e,this)),t(e)}get _isAboutToError(){return this[Ah]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Di])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[dV])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Di])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[nh]?e=this[sh]/this[nh]:this[nh]===this[sh]?e=1:e=0,{percent:e,transferred:this[sh],total:this[nh]}}get uploadProgress(){let e;return this[oh]?e=this[ah]/this[oh]:this[oh]===this[ah]?e=1:e=0,{percent:e,transferred:this[ah],total:this[oh]}}get timings(){var e;return(e=this[Di])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[hV]}pipe(e,t){if(this[pV])throw new Error(\"Failed to pipe. The response has been emitted already.\");return e instanceof tF.ServerResponse&&this[DB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof tF.ServerResponse&&this[DB].delete(e),super.unpipe(e),this}};Yt.default=KB});var WC=y(so=>{\"use strict\";var Wke=so&&so.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),zke=so&&so.__exportStar||function(r,e){for(var t in r)t!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,t)&&Wke(e,r,t)};Object.defineProperty(so,\"__esModule\",{value:!0});so.CancelError=so.ParseError=void 0;var mV=JC(),sF=class extends mV.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in \"${i.url.toString()}\"`,e,t.request),this.name=\"ParseError\"}};so.ParseError=sF;var oF=class extends mV.RequestError{constructor(e){super(\"Promise was canceled\",{},e),this.name=\"CancelError\"}get isCanceled(){return!0}};so.CancelError=oF;zke(JC(),so)});var IV=y(aF=>{\"use strict\";Object.defineProperty(aF,\"__esModule\",{value:!0});var EV=WC(),Vke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e===\"text\")return n.toString(i);if(e===\"json\")return n.length===0?\"\":t(n.toString());if(e===\"buffer\")return n;throw new EV.ParseError({message:`Unknown body type '${e}'`,name:\"Error\"},r)}catch(s){throw new EV.ParseError(s,r)}};aF.default=Vke});var AF=y(il=>{\"use strict\";var Xke=il&&il.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),_ke=il&&il.__exportStar||function(r,e){for(var t in r)t!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,t)&&Xke(e,r,t)};Object.defineProperty(il,\"__esModule\",{value:!0});var Zke=J(\"events\"),$ke=qa(),eRe=I5(),UB=WC(),yV=IV(),wV=JC(),tRe=jR(),rRe=_R(),BV=ZR(),iRe=[\"request\",\"response\",\"redirect\",\"uploadProgress\",\"downloadProgress\"];function QV(r){let e,t,i=new Zke.EventEmitter,n=new eRe((o,a,l)=>{let c=u=>{let g=new wV.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new UB.CancelError(g))),e=g,g.once(\"response\",async p=>{var C;if(p.retryCount=u,p.request.aborted)return;let w;try{w=await rRe.default(g),p.rawBody=w}catch{return}if(g._isAboutToError)return;let B=((C=p.headers[\"content-encoding\"])!==null&&C!==void 0?C:\"\").toLowerCase(),v=[\"gzip\",\"deflate\",\"br\"].includes(B),{options:D}=g;if(v&&!D.decompress)p.body=w;else try{p.body=yV.default(p,D.responseType,D.parseJson,D.encoding)}catch(L){if(p.body=w.toString(),BV.isResponseOk(p)){g._beforeError(L);return}}try{for(let[L,H]of D.hooks.afterResponse.entries())p=await H(p,async j=>{let $=wV.default.normalizeArguments(void 0,{...j,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},D);$.hooks.afterResponse=$.hooks.afterResponse.slice(0,L);for(let W of $.hooks.beforeRetry)await W($);let V=QV($);return l(()=>{V.catch(()=>{}),V.cancel()}),V})}catch(L){g._beforeError(new UB.RequestError(L.message,L,g));return}if(!BV.isResponseOk(p)){g._beforeError(new UB.HTTPError(p));return}t=p,o(g.options.resolveBodyOnly?p.body:p)});let f=p=>{if(n.isCanceled)return;let{options:C}=g;if(p instanceof UB.HTTPError&&!C.throwHttpErrors){let{response:w}=p;o(g.options.resolveBodyOnly?w.body:w);return}a(p)};g.once(\"error\",f);let h=g.options.body;g.once(\"retry\",(p,C)=>{var w,B;if(h===((w=C.request)===null||w===void 0?void 0:w.options.body)&&$ke.default.nodeStream((B=C.request)===null||B===void 0?void 0:B.options.body)){f(C);return}c(p)}),tRe.default(g,i,iRe)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return yV.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept=\"application/json\"),s(\"json\")},n.buffer=()=>s(\"buffer\"),n.text=()=>s(\"text\"),n}il.default=QV;_ke(WC(),il)});var bV=y(lF=>{\"use strict\";Object.defineProperty(lF,\"__esModule\",{value:!0});var nRe=WC();function sRe(r,...e){let t=(async()=>{if(r instanceof nRe.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}lF.default=sRe});var xV=y(cF=>{\"use strict\";Object.defineProperty(cF,\"__esModule\",{value:!0});var SV=qa();function vV(r){for(let e of Object.values(r))(SV.default.plainObject(e)||SV.default.array(e))&&vV(e);return Object.freeze(r)}cF.default=vV});var DV=y(PV=>{\"use strict\";Object.defineProperty(PV,\"__esModule\",{value:!0})});var uF=y(Is=>{\"use strict\";var oRe=Is&&Is.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),aRe=Is&&Is.__exportStar||function(r,e){for(var t in r)t!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,t)&&oRe(e,r,t)};Object.defineProperty(Is,\"__esModule\",{value:!0});Is.defaultHandler=void 0;var kV=qa(),Es=AF(),ARe=bV(),GB=JC(),lRe=xV(),cRe={RequestError:Es.RequestError,CacheError:Es.CacheError,ReadError:Es.ReadError,HTTPError:Es.HTTPError,MaxRedirectsError:Es.MaxRedirectsError,TimeoutError:Es.TimeoutError,ParseError:Es.ParseError,CancelError:Es.CancelError,UnsupportedProtocolError:Es.UnsupportedProtocolError,UploadError:Es.UploadError},uRe=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:HB}=GB.default,RV=(...r)=>{let e;for(let t of r)e=HB(void 0,t,e);return e},gRe=r=>r.isStream?new GB.default(void 0,r):Es.default(r),fRe=r=>\"defaults\"in r&&\"options\"in r.defaults,hRe=[\"get\",\"post\",\"put\",\"patch\",\"head\",\"delete\"];Is.defaultHandler=(r,e)=>e(r);var FV=(r,e)=>{if(r)for(let t of r)t(e)},NV=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?gRe:c);if(kV.default.plainObject(i)){let u={...i,...n};GB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{FV(r.options.hooks.init,n),FV((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(f){u=f}let g=HB(i,n,s!=null?s:r.options);if(g[GB.kIsNormalizedAlready]=!0,u)throw new Es.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return ARe.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)fRe(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),\"handlers\"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Is.defaultHandler),s.length===0&&s.push(Is.defaultHandler),NV({options:RV(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=HB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!kV.default.object(o))throw new TypeError(\"`options.pagination` must be implemented\");let a=[],{countLimit:l}=o,c=0;for(;c<o.requestLimit;){c!==0&&await uRe(o.backoff);let u=await e(void 0,void 0,s),g=await o.transform(u),f=[];for(let p of g)if(o.filter(p,a,f)&&(!o.shouldContinue(p,a,f)||(yield p,o.stackAllItems&&a.push(p),f.push(p),--l<=0)))return;let h=o.paginate(u,a,f);if(h===!1)return;h===u.request.options?s=u.request.options:h!==void 0&&(s=HB(void 0,h,s)),c++}};e.paginate=t,e.paginate.all=async(i,n)=>{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of hRe)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,cRe),Object.defineProperty(e,\"defaults\",{value:r.mutableDefaults?r:lRe.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=RV,e};Is.default=NV;aRe(DV(),Is)});var jB=y((Ja,YB)=>{\"use strict\";var pRe=Ja&&Ja.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),LV=Ja&&Ja.__exportStar||function(r,e){for(var t in r)t!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,t)&&pRe(e,r,t)};Object.defineProperty(Ja,\"__esModule\",{value:!0});var dRe=J(\"url\"),TV=uF(),CRe={options:{method:\"GET\",retry:{limit:2,methods:[\"GET\",\"PUT\",\"HEAD\",\"DELETE\",\"OPTIONS\",\"TRACE\"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:[\"ETIMEDOUT\",\"ECONNRESET\",\"EADDRINUSE\",\"ECONNREFUSED\",\"EPIPE\",\"ENOTFOUND\",\"ENETUNREACH\",\"EAI_AGAIN\"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{\"user-agent\":\"got (https://github.com/sindresorhus/got)\"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:\"text\",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:\"\",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType===\"json\"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,\"link\"))return!1;let e=r.headers.link.split(\",\"),t;for(let i of e){let n=i.split(\";\");if(n[1].includes(\"next\")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new dRe.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[TV.defaultHandler],mutableDefaults:!1},gF=TV.default(CRe);Ja.default=gF;YB.exports=gF;YB.exports.default=gF;YB.exports.__esModule=!0;LV(uF(),Ja);LV(AF(),Ja)});var UV=y(lh=>{\"use strict\";var Rst=J(\"net\"),mRe=J(\"tls\"),fF=J(\"http\"),OV=J(\"https\"),ERe=J(\"events\"),Fst=J(\"assert\"),IRe=J(\"util\");lh.httpOverHttp=yRe;lh.httpsOverHttp=wRe;lh.httpOverHttps=BRe;lh.httpsOverHttps=QRe;function yRe(r){var e=new Wa(r);return e.request=fF.request,e}function wRe(r){var e=new Wa(r);return e.request=fF.request,e.createSocket=MV,e.defaultPort=443,e}function BRe(r){var e=new Wa(r);return e.request=OV.request,e}function QRe(r){var e=new Wa(r);return e.request=OV.request,e.createSocket=MV,e.defaultPort=443,e}function Wa(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||fF.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on(\"free\",function(i,n,s,o){for(var a=KV(n,s,o),l=0,c=e.requests.length;l<c;++l){var u=e.requests[l];if(u.host===a.host&&u.port===a.port){e.requests.splice(l,1),u.request.onSocket(i);return}}i.destroy(),e.removeSocket(i)})}IRe.inherits(Wa,ERe.EventEmitter);Wa.prototype.addRequest=function(e,t,i,n){var s=this,o=hF({request:e},s.options,KV(t,i,n));if(s.sockets.length>=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on(\"free\",l),a.on(\"close\",c),a.on(\"agentRemove\",c),e.onSocket(a);function l(){s.emit(\"free\",a,o)}function c(u){s.removeSocket(a),a.removeListener(\"free\",l),a.removeListener(\"close\",c),a.removeListener(\"agentRemove\",c)}})};Wa.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=hF({},i.proxyOptions,{method:\"CONNECT\",path:e.host+\":\"+e.port,agent:!1,headers:{host:e.host+\":\"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers[\"Proxy-Authorization\"]=\"Basic \"+new Buffer(s.proxyAuth).toString(\"base64\")),nl(\"making CONNECT request\");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once(\"response\",a),o.once(\"upgrade\",l),o.once(\"connect\",c),o.once(\"error\",u),o.end();function a(g){g.upgrade=!0}function l(g,f,h){process.nextTick(function(){c(g,f,h)})}function c(g,f,h){if(o.removeAllListeners(),f.removeAllListeners(),g.statusCode!==200){nl(\"tunneling socket could not be established, statusCode=%d\",g.statusCode),f.destroy();var p=new Error(\"tunneling socket could not be established, statusCode=\"+g.statusCode);p.code=\"ECONNRESET\",e.request.emit(\"error\",p),i.removeSocket(n);return}if(h.length>0){nl(\"got illegal response body from proxy\"),f.destroy();var p=new Error(\"got illegal response body from proxy\");p.code=\"ECONNRESET\",e.request.emit(\"error\",p),i.removeSocket(n);return}return nl(\"tunneling connection has established\"),i.sockets[i.sockets.indexOf(n)]=f,t(f)}function u(g){o.removeAllListeners(),nl(`tunneling socket could not be established, cause=%s\n`,g.message,g.stack);var f=new Error(\"tunneling socket could not be established, cause=\"+g.message);f.code=\"ECONNRESET\",e.request.emit(\"error\",f),i.removeSocket(n)}};Wa.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function MV(r,e){var t=this;Wa.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader(\"host\"),s=hF({},t.options,{socket:i,servername:n?n.replace(/:.*$/,\"\"):r.host}),o=mRe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function KV(r,e,t){return typeof r==\"string\"?{host:r,port:e,localAddress:t}:r}function hF(r){for(var e=1,t=arguments.length;e<t;++e){var i=arguments[e];if(typeof i==\"object\")for(var n=Object.keys(i),s=0,o=n.length;s<o;++s){var a=n[s];i[a]!==void 0&&(r[a]=i[a])}}return r}var nl;process.env.NODE_DEBUG&&/\\btunnel\\b/.test(process.env.NODE_DEBUG)?nl=function(){var r=Array.prototype.slice.call(arguments);typeof r[0]==\"string\"?r[0]=\"TUNNEL: \"+r[0]:r.unshift(\"TUNNEL:\"),console.error.apply(console,r)}:nl=function(){};lh.debug=nl});var GV=y((Lst,HV)=>{HV.exports=UV()});var $V=y((WB,IF)=>{var ZV=Object.assign({},J(\"fs\")),EF=function(){var r=typeof document<\"u\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<\"u\"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<\"u\"?e:{},i,n;t.ready=new Promise(function(d,E){i=d,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l=\"./this.program\",c=function(d,E){throw E},u=!1,g=!0,f=\"\";function h(d){return t.locateFile?t.locateFile(d,f):f+d}var p,C,w,B;g&&(u?f=J(\"path\").dirname(f)+\"/\":f=__dirname+\"/\",p=function(E,I){var k=ma(E);return k?I?k:k.toString():(w||(w=ZV),B||(B=J(\"path\")),E=B.normalize(E),w.readFileSync(E,I?null:\"utf8\"))},C=function(E){var I=p(E,!0);return I.buffer||(I=new Uint8Array(I)),_(I.buffer),I},process.argv.length>1&&(l=process.argv[1].replace(/\\\\/g,\"/\")),a=process.argv.slice(2),c=function(d){process.exit(d)},t.inspect=function(){return\"[Emscripten Module object]\"});var v=t.print||console.log.bind(console),D=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var L=16;function H(d,E){return E||(E=L),Math.ceil(d/E)*E}var j=0,$=function(d){j=d},V;t.wasmBinary&&(V=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Br(\"no native wasm support detected\");function Z(d,E,I){switch(E=E||\"i8\",E.charAt(E.length-1)===\"*\"&&(E=\"i32\"),E){case\"i1\":return ie[d>>0];case\"i8\":return ie[d>>0];case\"i16\":return he[d>>1];case\"i32\":return me[d>>2];case\"i64\":return me[d>>2];case\"float\":return Rt[d>>2];case\"double\":return It[d>>3];default:Br(\"invalid type for getValue: \"+E)}return null}var A,ae=!1,ge;function _(d,E){d||Br(\"Assertion failed: \"+E)}function T(d){var E=t[\"_\"+d];return _(E,\"Cannot call unknown function \"+d+\", make sure it is exported\"),E}function N(d,E,I,k,O){var X={string:function(et){var Et=0;if(et!=null&&et!==0){var Be=(et.length<<2)+1;Et=Q(Be),se(et,Et,Be)}return Et},array:function(et){var Et=Q(et.length);return fe(et,Et),Et}};function te(et){return E===\"string\"?Pe(et):E===\"boolean\"?Boolean(et):et}var ye=T(d),de=[],Ye=0;if(k)for(var rt=0;rt<k.length;rt++){var wt=X[I[rt]];wt?(Ye===0&&(Ye=pI()),de[rt]=wt(k[rt])):de[rt]=k[rt]}var At=ye.apply(null,de);return At=te(At),Ye!==0&&dI(Ye),At}function ue(d,E,I,k){I=I||[];var O=I.every(function(te){return te===\"number\"}),X=E!==\"string\";return X&&O&&!k?T(d):function(){return N(d,E,I,arguments,k)}}var we=typeof TextDecoder<\"u\"?new TextDecoder(\"utf8\"):void 0;function Le(d,E,I){for(var k=E+I,O=E;d[O]&&!(O>=k);)++O;if(O-E>16&&d.subarray&&we)return we.decode(d.subarray(E,O));for(var X=\"\";E<O;){var te=d[E++];if(!(te&128)){X+=String.fromCharCode(te);continue}var ye=d[E++]&63;if((te&224)==192){X+=String.fromCharCode((te&31)<<6|ye);continue}var de=d[E++]&63;if((te&240)==224?te=(te&15)<<12|ye<<6|de:te=(te&7)<<18|ye<<12|de<<6|d[E++]&63,te<65536)X+=String.fromCharCode(te);else{var Ye=te-65536;X+=String.fromCharCode(55296|Ye>>10,56320|Ye&1023)}}return X}function Pe(d,E){return d?Le(Y,d,E):\"\"}function Te(d,E,I,k){if(!(k>0))return 0;for(var O=I,X=I+k-1,te=0;te<d.length;++te){var ye=d.charCodeAt(te);if(ye>=55296&&ye<=57343){var de=d.charCodeAt(++te);ye=65536+((ye&1023)<<10)|de&1023}if(ye<=127){if(I>=X)break;E[I++]=ye}else if(ye<=2047){if(I+1>=X)break;E[I++]=192|ye>>6,E[I++]=128|ye&63}else if(ye<=65535){if(I+2>=X)break;E[I++]=224|ye>>12,E[I++]=128|ye>>6&63,E[I++]=128|ye&63}else{if(I+3>=X)break;E[I++]=240|ye>>18,E[I++]=128|ye>>12&63,E[I++]=128|ye>>6&63,E[I++]=128|ye&63}}return E[I]=0,I-O}function se(d,E,I){return Te(d,Y,E,I)}function Ae(d){for(var E=0,I=0;I<d.length;++I){var k=d.charCodeAt(I);k>=55296&&k<=57343&&(k=65536+((k&1023)<<10)|d.charCodeAt(++I)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function Qe(d){var E=Ae(d)+1,I=dt(E);return I&&Te(d,ie,I,E),I}function fe(d,E){ie.set(d,E)}function le(d,E){return d%E>0&&(d+=E-d%E),d}var Ge,ie,Y,he,re,me,tt,Rt,It;function Kr(d){Ge=d,t.HEAP8=ie=new Int8Array(d),t.HEAP16=he=new Int16Array(d),t.HEAP32=me=new Int32Array(d),t.HEAPU8=Y=new Uint8Array(d),t.HEAPU16=re=new Uint16Array(d),t.HEAPU32=tt=new Uint32Array(d),t.HEAPF32=Rt=new Float32Array(d),t.HEAPF64=It=new Float64Array(d)}var oi=t.INITIAL_MEMORY||16777216,pi,pr=[],di=[],ai=[],Os=!1;function dr(){if(t.preRun)for(typeof t.preRun==\"function\"&&(t.preRun=[t.preRun]);t.preRun.length;)ha(t.preRun.shift());Io(pr)}function Bi(){Os=!0,!t.noFSInit&&!S.init.initialized&&S.init(),$n.init(),Io(di)}function _n(){if(t.postRun)for(typeof t.postRun==\"function\"&&(t.postRun=[t.postRun]);t.postRun.length;)Dg(t.postRun.shift());Io(ai)}function ha(d){pr.unshift(d)}function mA(d){di.unshift(d)}function Dg(d){ai.unshift(d)}var Zn=0,EA=null,pa=null;function jp(d){return d}function IA(d){Zn++,t.monitorRunDependencies&&t.monitorRunDependencies(Zn)}function yA(d){if(Zn--,t.monitorRunDependencies&&t.monitorRunDependencies(Zn),Zn==0&&(EA!==null&&(clearInterval(EA),EA=null),pa)){var E=pa;pa=null,E()}}t.preloadedImages={},t.preloadedAudios={};function Br(d){t.onAbort&&t.onAbort(d),d+=\"\",D(d),ae=!0,ge=1,d=\"abort(\"+d+\"). Build with -s ASSERTIONS=1 for more info.\";var E=new WebAssembly.RuntimeError(d);throw n(E),E}var zl=\"data:application/octet-stream;base64,\";function kg(d){return d.startsWith(zl)}var Eo=\"data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCGCABKAIUSQtBAXENAAsgASgCKEGCAiABKAIUIAEoAhhrazYCYCABKAIoKAJgIAEoAigoAnRLBEAgASgCKCABKAIoKAJ0NgJgCwsLAkAgASgCKCgCYEEDTwRAIAEgASgCKCgCYEEDazoAEyABQQE7ARAgASgCKCICKAKkLSACKAKgLUEBdGogAS8BEDsBACABLQATIQMgASgCKCICKAKYLSEEIAIgAigCoC0iAkEBajYCoC0gAiAEaiADOgAAIAEgAS8BEEEBazsBECABKAIoIAEtABNB0N0Aai0AAEECdGpBmAlqIgIgAi8BAEEBajsBACABKAIoQYgTagJ/IAEvARBBgAJJBEAgAS8BEC0A0FkMAQsgAS8BEEEHdkGAAmotANBZC0ECdGoiAiACLwEAQQFqOwEAIAEgASgCKCgCoC0gASgCKCgCnC1BAWtGNgIgIAEoAigiAiACKAJ0IAEoAigoAmBrNgJ0IAEoAigiAiABKAIoKAJgIAIoAmxqNgJsIAEoAihBADYCYAwBCyABIAEoAigiAigCOCACKAJsai0AADoADyABKAIoIgIoAqQtIAIoAqAtQQF0akEAOwEAIAEtAA8hAyABKAIoIgIoApgtIQQgAiACKAKgLSICQQFqNgKgLSACIARqIAM6AAAgASgCKCABLQAPQQJ0aiICIAIvAZQBQQFqOwGUASABIAEoAigoAqAtIAEoAigoApwtQQFrRjYCICABKAIoIgIgAigCdEEBazYCdCABKAIoIgIgAigCbEEBajYCbAsgASgCIARAIAEoAigCfyABKAIoKAJcQQBOBEAgASgCKCgCOCABKAIoKAJcagwBC0EACyABKAIoKAJsIAEoAigoAlxrQQAQKCABKAIoIAEoAigoAmw2AlwgASgCKCgCABAcIAEoAigoAgAoAhBFBEAgAUEANgIsDAQLCwwBCwsgASgCKEEANgK0LSABKAIkQQRGBEAgASgCKAJ/IAEoAigoAlxBAE4EQCABKAIoKAI4IAEoAigoAlxqDAELQQALIAEoAigoAmwgASgCKCgCXGtBARAoIAEoAiggASgCKCgCbDYCXCABKAIoKAIAEBwgASgCKCgCACgCEEUEQCABQQI2AiwMAgsgAUEDNgIsDAELIAEoAigoAqAtBEAgASgCKAJ/IAEoAigoAlxBAE4EQCABKAIoKAI4IAEoAigoAlxqDAELQQALIAEoAigoAmwgASgCKCgCXGtBABAoIAEoAiggASgCKCgCbDYCXCABKAIoKAIAEBwgASgCKCgCACgCEEUEQCABQQA2AiwMAgsLIAFBATYCLAsgASgCLCECIAFBMGokACACDAELIAAoAiwgACgCNCAAKAIsKAKEAUEMbEGA7wBqKAIIEQMACwsLNgIEAkAgACgCBEECRwRAIAAoAgRBA0cNAQsgACgCLEGaBTYCBAsCQCAAKAIEBEAgACgCBEECRw0BCyAAKAI4KAIQRQRAIAAoAixBfzYCKAsgAEEANgI8DAILIAAoAgRBAUYEQAJAIAAoAjRBAUYEQCAAKAIsIQIjAEEgayIBJAAgASACNgIcIAFBAzYCGAJAIAEoAhwoArwtQRAgASgCGGtKBEAgAUECNgIUIAEoAhwiAiACLwG4LSABKAIUQf//A3EgASgCHCgCvC10cjsBuC0gASgCHC8BuC1B/wFxIQMgASgCHCgCCCEEIAEoAhwiBigCFCECIAYgAkEBajYCFCACIARqIAM6AAAgASgCHC8BuC1BCHYhAyABKAIcKAIIIQQgASgCHCIGKAIUIQIgBiACQQFqNgIUIAIgBGogAzoAACABKAIcIAEoAhRB//8DcUEQIAEoAhwoArwta3U7AbgtIAEoAhwiAiACKAK8LSABKAIYQRBrajYCvC0MAQsgASgCHCICIAIvAbgtQQIgASgCHCgCvC10cjsBuC0gASgCHCICIAEoAhggAigCvC1qNgK8LQsgAUGS6AAvAQA2AhACQCABKAIcKAK8LUEQIAEoAhBrSgRAIAFBkOgALwEANgIMIAEoAhwiAiACLwG4LSABKAIMQf//A3EgASgCHCgCvC10cjsBuC0gASgCHC8BuC1B/wFxIQMgASgCHCgCCCEEIAEoAhwiBigCFCECIAYgAkEBajYCFCACIARqIAM6AAAgASgCHC8BuC1BCHYhAyABKAIcKAIIIQQgASgCHCIGKAIUIQIgBiACQQFqNgIUIAIgBGogAzoAACABKAIcIAEoAgxB//8DcUEQIAEoAhwoArwta3U7AbgtIAEoAhwiAiACKAK8LSABKAIQQRBrajYCvC0MAQsgASgCHCICIAIvAbgtQZDoAC8BACABKAIcKAK8LXRyOwG4LSABKAIcIgIgASgCECACKAK8LWo2ArwtCyABKAIcELwBIAFBIGokAAwBCyAAKAI0QQVHBEAgACgCLEEAQQBBABBdIAAoAjRBA0YEQCAAKAIsKAJEIAAoAiwoAkxBAWtBAXRqQQA7AQAgACgCLCgCREEAIAAoAiwoAkxBAWtBAXQQMyAAKAIsKAJ0RQRAIAAoAixBADYCbCAAKAIsQQA2AlwgACgCLEEANgK0LQsLCwsgACgCOBAcIAAoAjgoAhBFBEAgACgCLEF/NgIoIABBADYCPAwDCwsLIAAoAjRBBEcEQCAAQQA2AjwMAQsgACgCLCgCGEEATARAIABBATYCPAwBCwJAIAAoAiwoAhhBAkYEQCAAKAI4KAIwQf8BcSECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAAIAAoAjgoAjBBCHZB/wFxIQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCOCgCMEEQdkH/AXEhAiAAKAIsKAIIIQMgACgCLCIEKAIUIQEgBCABQQFqNgIUIAEgA2ogAjoAACAAKAI4KAIwQRh2IQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCOCgCCEH/AXEhAiAAKAIsKAIIIQMgACgCLCIEKAIUIQEgBCABQQFqNgIUIAEgA2ogAjoAACAAKAI4KAIIQQh2Qf8BcSECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAAIAAoAjgoAghBEHZB/wFxIQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCOCgCCEEYdiECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAADAELIAAoAiwgACgCOCgCMEEQdhBLIAAoAiwgACgCOCgCMEH//wNxEEsLIAAoAjgQHCAAKAIsKAIYQQBKBEAgACgCLEEAIAAoAiwoAhhrNgIYCyAAIAAoAiwoAhRFNgI8CyAAKAI8IQEgAEFAayQAIAUgATYCCAwBCyAFKAIMQRBqIQEjAEHgAGsiACQAIAAgATYCWCAAQQI2AlQCQAJAAkAgACgCWBBKDQAgACgCWCgCDEUNACAAKAJYKAIADQEgACgCWCgCBEUNAQsgAEF+NgJcDAELIAAgACgCWCgCHDYCUCAAKAJQKAIEQb/+AEYEQCAAKAJQQcD+ADYCBAsgACAAKAJYKAIMNgJIIAAgACgCWCgCEDYCQCAAIAAoAlgoAgA2AkwgACAAKAJYKAIENgJEIAAgACgCUCgCPDYCPCAAIAAoAlAoAkA2AjggACAAKAJENgI0IAAgACgCQDYCMCAAQQA2AhADQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAJQKAIEQbT+AGsOHwABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fCyAAKAJQKAIMRQRAIAAoAlBBwP4ANgIEDCELA0AgACgCOEEQSQRAIAAoAkRFDSEgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLAkAgACgCUCgCDEECcUUNACAAKAI8QZ+WAkcNACAAKAJQKAIoRQRAIAAoAlBBDzYCKAtBAEEAQQAQGiEBIAAoAlAgATYCHCAAIAAoAjw6AAwgACAAKAI8QQh2OgANIAAoAlAoAhwgAEEMakECEBohASAAKAJQIAE2AhwgAEEANgI8IABBADYCOCAAKAJQQbX+ADYCBAwhCyAAKAJQQQA2AhQgACgCUCgCJARAIAAoAlAoAiRBfzYCMAsCQCAAKAJQKAIMQQFxBEAgACgCPEH/AXFBCHQgACgCPEEIdmpBH3BFDQELIAAoAlhBmgw2AhggACgCUEHR/gA2AgQMIQsgACgCPEEPcUEIRwRAIAAoAlhBmw82AhggACgCUEHR/gA2AgQMIQsgACAAKAI8QQR2NgI8IAAgACgCOEEEazYCOCAAIAAoAjxBD3FBCGo2AhQgACgCUCgCKEUEQCAAKAJQIAAoAhQ2AigLAkAgACgCFEEPTQRAIAAoAhQgACgCUCgCKE0NAQsgACgCWEGTDTYCGCAAKAJQQdH+ADYCBAwhCyAAKAJQQQEgACgCFHQ2AhhBAEEAQQAQPSEBIAAoAlAgATYCHCAAKAJYIAE2AjAgACgCUEG9/gBBv/4AIAAoAjxBgARxGzYCBCAAQQA2AjwgAEEANgI4DCALA0AgACgCOEEQSQRAIAAoAkRFDSAgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAgACgCPDYCFCAAKAJQKAIUQf8BcUEIRwRAIAAoAlhBmw82AhggACgCUEHR/gA2AgQMIAsgACgCUCgCFEGAwANxBEAgACgCWEGgCTYCGCAAKAJQQdH+ADYCBAwgCyAAKAJQKAIkBEAgACgCUCgCJCAAKAI8QQh2QQFxNgIACwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACAAKAI8OgAMIAAgACgCPEEIdjoADSAAKAJQKAIcIABBDGpBAhAaIQEgACgCUCABNgIcCyAAQQA2AjwgAEEANgI4IAAoAlBBtv4ANgIECwNAIAAoAjhBIEkEQCAAKAJERQ0fIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAKAJQKAIkBEAgACgCUCgCJCAAKAI8NgIECwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACAAKAI8OgAMIAAgACgCPEEIdjoADSAAIAAoAjxBEHY6AA4gACAAKAI8QRh2OgAPIAAoAlAoAhwgAEEMakEEEBohASAAKAJQIAE2AhwLIABBADYCPCAAQQA2AjggACgCUEG3/gA2AgQLA0AgACgCOEEQSQRAIAAoAkRFDR4gACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAoAiQEQCAAKAJQKAIkIAAoAjxB/wFxNgIIIAAoAlAoAiQgACgCPEEIdjYCDAsCQCAAKAJQKAIUQYAEcUUNACAAKAJQKAIMQQRxRQ0AIAAgACgCPDoADCAAIAAoAjxBCHY6AA0gACgCUCgCHCAAQQxqQQIQGiEBIAAoAlAgATYCHAsgAEEANgI8IABBADYCOCAAKAJQQbj+ADYCBAsCQCAAKAJQKAIUQYAIcQRAA0AgACgCOEEQSQRAIAAoAkRFDR8gACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAgACgCPDYCRCAAKAJQKAIkBEAgACgCUCgCJCAAKAI8NgIUCwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACAAKAI8OgAMIAAgACgCPEEIdjoADSAAKAJQKAIcIABBDGpBAhAaIQEgACgCUCABNgIcCyAAQQA2AjwgAEEANgI4DAELIAAoAlAoAiQEQCAAKAJQKAIkQQA2AhALCyAAKAJQQbn+ADYCBAsgACgCUCgCFEGACHEEQCAAIAAoAlAoAkQ2AiwgACgCLCAAKAJESwRAIAAgACgCRDYCLAsgACgCLARAAkAgACgCUCgCJEUNACAAKAJQKAIkKAIQRQ0AIAAgACgCUCgCJCgCFCAAKAJQKAJEazYCFCAAKAJQKAIkKAIQIAAoAhRqIAAoAkwCfyAAKAJQKAIkKAIYIAAoAhQgACgCLGpJBEAgACgCUCgCJCgCGCAAKAIUawwBCyAAKAIsCxAZGgsCQCAAKAJQKAIUQYAEcUUNACAAKAJQKAIMQQRxRQ0AIAAoAlAoAhwgACgCTCAAKAIsEBohASAAKAJQIAE2AhwLIAAgACgCRCAAKAIsazYCRCAAIAAoAiwgACgCTGo2AkwgACgCUCIBIAEoAkQgACgCLGs2AkQLIAAoAlAoAkQNGwsgACgCUEEANgJEIAAoAlBBuv4ANgIECwJAIAAoAlAoAhRBgBBxBEAgACgCREUNGyAAQQA2AiwDQCAAKAJMIQEgACAAKAIsIgJBAWo2AiwgACABIAJqLQAANgIUAkAgACgCUCgCJEUNACAAKAJQKAIkKAIcRQ0AIAAoAlAoAkQgACgCUCgCJCgCIE8NACAAKAIUIQIgACgCUCgCJCgCHCEDIAAoAlAiBCgCRCEBIAQgAUEBajYCRCABIANqIAI6AAALIAAoAhQEfyAAKAIsIAAoAkRJBUEAC0EBcQ0ACwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACgCUCgCHCAAKAJMIAAoAiwQGiEBIAAoAlAgATYCHAsgACAAKAJEIAAoAixrNgJEIAAgACgCLCAAKAJMajYCTCAAKAIUDRsMAQsgACgCUCgCJARAIAAoAlAoAiRBADYCHAsLIAAoAlBBADYCRCAAKAJQQbv+ADYCBAsCQCAAKAJQKAIUQYAgcQRAIAAoAkRFDRogAEEANgIsA0AgACgCTCEBIAAgACgCLCICQQFqNgIsIAAgASACai0AADYCFAJAIAAoAlAoAiRFDQAgACgCUCgCJCgCJEUNACAAKAJQKAJEIAAoAlAoAiQoAihPDQAgACgCFCECIAAoAlAoAiQoAiQhAyAAKAJQIgQoAkQhASAEIAFBAWo2AkQgASADaiACOgAACyAAKAIUBH8gACgCLCAAKAJESQVBAAtBAXENAAsCQCAAKAJQKAIUQYAEcUUNACAAKAJQKAIMQQRxRQ0AIAAoAlAoAhwgACgCTCAAKAIsEBohASAAKAJQIAE2AhwLIAAgACgCRCAAKAIsazYCRCAAIAAoAiwgACgCTGo2AkwgACgCFA0aDAELIAAoAlAoAiQEQCAAKAJQKAIkQQA2AiQLCyAAKAJQQbz+ADYCBAsgACgCUCgCFEGABHEEQANAIAAoAjhBEEkEQCAAKAJERQ0aIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCwJAIAAoAlAoAgxBBHFFDQAgACgCPCAAKAJQKAIcQf//A3FGDQAgACgCWEH7DDYCGCAAKAJQQdH+ADYCBAwaCyAAQQA2AjwgAEEANgI4CyAAKAJQKAIkBEAgACgCUCgCJCAAKAJQKAIUQQl1QQFxNgIsIAAoAlAoAiRBATYCMAtBAEEAQQAQGiEBIAAoAlAgATYCHCAAKAJYIAE2AjAgACgCUEG//gA2AgQMGAsDQCAAKAI4QSBJBEAgACgCREUNGCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCUCAAKAI8QQh2QYD+A3EgACgCPEEYdmogACgCPEGA/gNxQQh0aiAAKAI8Qf8BcUEYdGoiATYCHCAAKAJYIAE2AjAgAEEANgI8IABBADYCOCAAKAJQQb7+ADYCBAsgACgCUCgCEEUEQCAAKAJYIAAoAkg2AgwgACgCWCAAKAJANgIQIAAoAlggACgCTDYCACAAKAJYIAAoAkQ2AgQgACgCUCAAKAI8NgI8IAAoAlAgACgCODYCQCAAQQI2AlwMGAtBAEEAQQAQPSEBIAAoAlAgATYCHCAAKAJYIAE2AjAgACgCUEG//gA2AgQLIAAoAlRBBUYNFCAAKAJUQQZGDRQLIAAoAlAoAggEQCAAIAAoAjwgACgCOEEHcXY2AjwgACAAKAI4IAAoAjhBB3FrNgI4IAAoAlBBzv4ANgIEDBULA0AgACgCOEEDSQRAIAAoAkRFDRUgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAgACgCPEEBcTYCCCAAIAAoAjxBAXY2AjwgACAAKAI4QQFrNgI4AkACQAJAAkACQCAAKAI8QQNxDgQAAQIDBAsgACgCUEHB/gA2AgQMAwsjAEEQayIBIAAoAlA2AgwgASgCDEGw8gA2AlAgASgCDEEJNgJYIAEoAgxBsIIBNgJUIAEoAgxBBTYCXCAAKAJQQcf+ADYCBCAAKAJUQQZGBEAgACAAKAI8QQJ2NgI8IAAgACgCOEECazYCOAwXCwwCCyAAKAJQQcT+ADYCBAwBCyAAKAJYQfANNgIYIAAoAlBB0f4ANgIECyAAIAAoAjxBAnY2AjwgACAAKAI4QQJrNgI4DBQLIAAgACgCPCAAKAI4QQdxdjYCPCAAIAAoAjggACgCOEEHcWs2AjgDQCAAKAI4QSBJBEAgACgCREUNFCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCPEH//wNxIAAoAjxBEHZB//8Dc0cEQCAAKAJYQaEKNgIYIAAoAlBB0f4ANgIEDBQLIAAoAlAgACgCPEH//wNxNgJEIABBADYCPCAAQQA2AjggACgCUEHC/gA2AgQgACgCVEEGRg0SCyAAKAJQQcP+ADYCBAsgACAAKAJQKAJENgIsIAAoAiwEQCAAKAIsIAAoAkRLBEAgACAAKAJENgIsCyAAKAIsIAAoAkBLBEAgACAAKAJANgIsCyAAKAIsRQ0RIAAoAkggACgCTCAAKAIsEBkaIAAgACgCRCAAKAIsazYCRCAAIAAoAiwgACgCTGo2AkwgACAAKAJAIAAoAixrNgJAIAAgACgCLCAAKAJIajYCSCAAKAJQIgEgASgCRCAAKAIsazYCRAwSCyAAKAJQQb/+ADYCBAwRCwNAIAAoAjhBDkkEQCAAKAJERQ0RIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAKAJQIAAoAjxBH3FBgQJqNgJkIAAgACgCPEEFdjYCPCAAIAAoAjhBBWs2AjggACgCUCAAKAI8QR9xQQFqNgJoIAAgACgCPEEFdjYCPCAAIAAoAjhBBWs2AjggACgCUCAAKAI8QQ9xQQRqNgJgIAAgACgCPEEEdjYCPCAAIAAoAjhBBGs2AjgCQCAAKAJQKAJkQZ4CTQRAIAAoAlAoAmhBHk0NAQsgACgCWEH9CTYCGCAAKAJQQdH+ADYCBAwRCyAAKAJQQQA2AmwgACgCUEHF/gA2AgQLA0AgACgCUCgCbCAAKAJQKAJgSQRAA0AgACgCOEEDSQRAIAAoAkRFDRIgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAjxBB3EhAiAAKAJQQfQAaiEDIAAoAlAiBCgCbCEBIAQgAUEBajYCbCABQQF0QYDyAGovAQBBAXQgA2ogAjsBACAAIAAoAjxBA3Y2AjwgACAAKAI4QQNrNgI4DAELCwNAIAAoAlAoAmxBE0kEQCAAKAJQQfQAaiECIAAoAlAiAygCbCEBIAMgAUEBajYCbCABQQF0QYDyAGovAQBBAXQgAmpBADsBAAwBCwsgACgCUCAAKAJQQbQKajYCcCAAKAJQIAAoAlAoAnA2AlAgACgCUEEHNgJYIABBACAAKAJQQfQAakETIAAoAlBB8ABqIAAoAlBB2ABqIAAoAlBB9AVqEHU2AhAgACgCEARAIAAoAlhBhwk2AhggACgCUEHR/gA2AgQMEAsgACgCUEEANgJsIAAoAlBBxv4ANgIECwNAAkAgACgCUCgCbCAAKAJQKAJkIAAoAlAoAmhqTw0AA0ACQCAAIAAoAlAoAlAgACgCPEEBIAAoAlAoAlh0QQFrcUECdGooAQA2ASAgAC0AISAAKAI4TQ0AIAAoAkRFDREgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLAkAgAC8BIkEQSQRAIAAgACgCPCAALQAhdjYCPCAAIAAoAjggAC0AIWs2AjggAC8BIiECIAAoAlBB9ABqIQMgACgCUCIEKAJsIQEgBCABQQFqNgJsIAFBAXQgA2ogAjsBAAwBCwJAIAAvASJBEEYEQANAIAAoAjggAC0AIUECakkEQCAAKAJERQ0UIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjwgAC0AIXY2AjwgACAAKAI4IAAtACFrNgI4IAAoAlAoAmxFBEAgACgCWEHPCTYCGCAAKAJQQdH+ADYCBAwECyAAIAAoAlAgACgCUCgCbEEBdGovAXI2AhQgACAAKAI8QQNxQQNqNgIsIAAgACgCPEECdjYCPCAAIAAoAjhBAms2AjgMAQsCQCAALwEiQRFGBEADQCAAKAI4IAAtACFBA2pJBEAgACgCREUNFSAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACAAKAI8IAAtACF2NgI8IAAgACgCOCAALQAhazYCOCAAQQA2AhQgACAAKAI8QQdxQQNqNgIsIAAgACgCPEEDdjYCPCAAIAAoAjhBA2s2AjgMAQsDQCAAKAI4IAAtACFBB2pJBEAgACgCREUNFCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACAAKAI8IAAtACF2NgI8IAAgACgCOCAALQAhazYCOCAAQQA2AhQgACAAKAI8Qf8AcUELajYCLCAAIAAoAjxBB3Y2AjwgACAAKAI4QQdrNgI4CwsgACgCUCgCbCAAKAIsaiAAKAJQKAJkIAAoAlAoAmhqSwRAIAAoAlhBzwk2AhggACgCUEHR/gA2AgQMAgsDQCAAIAAoAiwiAUEBazYCLCABBEAgACgCFCECIAAoAlBB9ABqIQMgACgCUCIEKAJsIQEgBCABQQFqNgJsIAFBAXQgA2ogAjsBAAwBCwsLDAELCyAAKAJQKAIEQdH+AEYNDiAAKAJQLwH0BEUEQCAAKAJYQfULNgIYIAAoAlBB0f4ANgIEDA8LIAAoAlAgACgCUEG0Cmo2AnAgACgCUCAAKAJQKAJwNgJQIAAoAlBBCTYCWCAAQQEgACgCUEH0AGogACgCUCgCZCAAKAJQQfAAaiAAKAJQQdgAaiAAKAJQQfQFahB1NgIQIAAoAhAEQCAAKAJYQesINgIYIAAoAlBB0f4ANgIEDA8LIAAoAlAgACgCUCgCcDYCVCAAKAJQQQY2AlwgAEECIAAoAlBB9ABqIAAoAlAoAmRBAXRqIAAoAlAoAmggACgCUEHwAGogACgCUEHcAGogACgCUEH0BWoQdTYCECAAKAIQBEAgACgCWEG5CTYCGCAAKAJQQdH+ADYCBAwPCyAAKAJQQcf+ADYCBCAAKAJUQQZGDQ0LIAAoAlBByP4ANgIECwJAIAAoAkRBBkkNACAAKAJAQYICSQ0AIAAoAlggACgCSDYCDCAAKAJYIAAoAkA2AhAgACgCWCAAKAJMNgIAIAAoAlggACgCRDYCBCAAKAJQIAAoAjw2AjwgACgCUCAAKAI4NgJAIAAoAjAhAiMAQeAAayIBIAAoAlg2AlwgASACNgJYIAEgASgCXCgCHDYCVCABIAEoAlwoAgA2AlAgASABKAJQIAEoAlwoAgRBBWtqNgJMIAEgASgCXCgCDDYCSCABIAEoAkggASgCWCABKAJcKAIQa2s2AkQgASABKAJIIAEoAlwoAhBBgQJrajYCQCABIAEoAlQoAiw2AjwgASABKAJUKAIwNgI4IAEgASgCVCgCNDYCNCABIAEoAlQoAjg2AjAgASABKAJUKAI8NgIsIAEgASgCVCgCQDYCKCABIAEoAlQoAlA2AiQgASABKAJUKAJUNgIgIAFBASABKAJUKAJYdEEBazYCHCABQQEgASgCVCgCXHRBAWs2AhgDQCABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiQgASgCLCABKAIccUECdGooAQA2ARACQAJAA0AgASABLQARNgIMIAEgASgCLCABKAIMdjYCLCABIAEoAiggASgCDGs2AiggASABLQAQNgIMIAEoAgxFBEAgAS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=\";kg(Eo)||(Eo=h(Eo));function Rg(d){try{if(d==Eo&&V)return new Uint8Array(V);var E=ma(d);if(E)return E;if(C)return C(d);throw\"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)\"}catch(I){Br(I)}}function qp(d,E){var I,k,O;try{O=Rg(d),k=new WebAssembly.Module(O),I=new WebAssembly.Instance(k,E)}catch(te){var X=te.toString();throw D(\"failed to compile wasm module: \"+X),(X.includes(\"imported Memory\")||X.includes(\"memory import\"))&&D(\"Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time).\"),te}return[I,k]}function Jp(){var d={a:Ea};function E(O,X){var te=O.exports;t.asm=te,A=t.asm.u,Kr(A.buffer),pi=t.asm.pa,mA(t.asm.v),yA(\"wasm-instantiate\")}if(IA(\"wasm-instantiate\"),t.instantiateWasm)try{var I=t.instantiateWasm(d,E);return I}catch(O){return D(\"Module.instantiateWasm callback failed with error: \"+O),!1}var k=qp(Eo,d);return E(k[0]),t.asm}var xr,oe;function Io(d){for(;d.length>0;){var E=d.shift();if(typeof E==\"function\"){E(t);continue}var I=E.func;typeof I==\"number\"?E.arg===void 0?pi.get(I)():pi.get(I)(E.arg):I(E.arg===void 0?null:E.arg)}}function kn(d,E){var I=new Date(me[d>>2]*1e3);me[E>>2]=I.getUTCSeconds(),me[E+4>>2]=I.getUTCMinutes(),me[E+8>>2]=I.getUTCHours(),me[E+12>>2]=I.getUTCDate(),me[E+16>>2]=I.getUTCMonth(),me[E+20>>2]=I.getUTCFullYear()-1900,me[E+24>>2]=I.getUTCDay(),me[E+36>>2]=0,me[E+32>>2]=0;var k=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),O=(I.getTime()-k)/(1e3*60*60*24)|0;return me[E+28>>2]=O,kn.GMTString||(kn.GMTString=Qe(\"GMT\")),me[E+40>>2]=kn.GMTString,E}function Fg(d,E){return kn(d,E)}var Qt={splitPath:function(d){var E=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return E.exec(d).slice(1)},normalizeArray:function(d,E){for(var I=0,k=d.length-1;k>=0;k--){var O=d[k];O===\".\"?d.splice(k,1):O===\"..\"?(d.splice(k,1),I++):I&&(d.splice(k,1),I--)}if(E)for(;I;I--)d.unshift(\"..\");return d},normalize:function(d){var E=d.charAt(0)===\"/\",I=d.substr(-1)===\"/\";return d=Qt.normalizeArray(d.split(\"/\").filter(function(k){return!!k}),!E).join(\"/\"),!d&&!E&&(d=\".\"),d&&I&&(d+=\"/\"),(E?\"/\":\"\")+d},dirname:function(d){var E=Qt.splitPath(d),I=E[0],k=E[1];return!I&&!k?\".\":(k&&(k=k.substr(0,k.length-1)),I+k)},basename:function(d){if(d===\"/\")return\"/\";d=Qt.normalize(d),d=d.replace(/\\/$/,\"\");var E=d.lastIndexOf(\"/\");return E===-1?d:d.substr(E+1)},extname:function(d){return Qt.splitPath(d)[3]},join:function(){var d=Array.prototype.slice.call(arguments,0);return Qt.normalize(d.join(\"/\"))},join2:function(d,E){return Qt.normalize(d+\"/\"+E)}};function Vl(){if(typeof crypto==\"object\"&&typeof crypto.getRandomValues==\"function\"){var d=new Uint8Array(1);return function(){return crypto.getRandomValues(d),d[0]}}else if(g)try{var E=J(\"crypto\");return function(){return E.randomBytes(1)[0]}}catch{}return function(){Br(\"randomDevice\")}}var Rn={resolve:function(){for(var d=\"\",E=!1,I=arguments.length-1;I>=-1&&!E;I--){var k=I>=0?arguments[I]:S.cwd();if(typeof k!=\"string\")throw new TypeError(\"Arguments to path.resolve must be strings\");if(!k)return\"\";d=k+\"/\"+d,E=k.charAt(0)===\"/\"}return d=Qt.normalizeArray(d.split(\"/\").filter(function(O){return!!O}),!E).join(\"/\"),(E?\"/\":\"\")+d||\".\"},relative:function(d,E){d=Rn.resolve(d).substr(1),E=Rn.resolve(E).substr(1);function I(Ye){for(var rt=0;rt<Ye.length&&Ye[rt]===\"\";rt++);for(var wt=Ye.length-1;wt>=0&&Ye[wt]===\"\";wt--);return rt>wt?[]:Ye.slice(rt,wt-rt+1)}for(var k=I(d.split(\"/\")),O=I(E.split(\"/\")),X=Math.min(k.length,O.length),te=X,ye=0;ye<X;ye++)if(k[ye]!==O[ye]){te=ye;break}for(var de=[],ye=te;ye<k.length;ye++)de.push(\"..\");return de=de.concat(O.slice(te)),de.join(\"/\")}},$n={ttys:[],init:function(){},shutdown:function(){},register:function(d,E){$n.ttys[d]={input:[],output:[],ops:E},S.registerDevice(d,$n.stream_ops)},stream_ops:{open:function(d){var E=$n.ttys[d.node.rdev];if(!E)throw new S.ErrnoError(43);d.tty=E,d.seekable=!1},close:function(d){d.tty.ops.flush(d.tty)},flush:function(d){d.tty.ops.flush(d.tty)},read:function(d,E,I,k,O){if(!d.tty||!d.tty.ops.get_char)throw new S.ErrnoError(60);for(var X=0,te=0;te<k;te++){var ye;try{ye=d.tty.ops.get_char(d.tty)}catch{throw new S.ErrnoError(29)}if(ye===void 0&&X===0)throw new S.ErrnoError(6);if(ye==null)break;X++,E[I+te]=ye}return X&&(d.node.timestamp=Date.now()),X},write:function(d,E,I,k,O){if(!d.tty||!d.tty.ops.put_char)throw new S.ErrnoError(60);try{for(var X=0;X<k;X++)d.tty.ops.put_char(d.tty,E[I+X])}catch{throw new S.ErrnoError(29)}return k&&(d.node.timestamp=Date.now()),X}},default_tty_ops:{get_char:function(d){if(!d.input.length){var E=null;if(g){var I=256,k=Buffer.alloc?Buffer.alloc(I):new Buffer(I),O=0;try{O=w.readSync(process.stdin.fd,k,0,I,null)}catch(X){if(X.toString().includes(\"EOF\"))O=0;else throw X}O>0?E=k.slice(0,O).toString(\"utf-8\"):E=null}else typeof window<\"u\"&&typeof window.prompt==\"function\"?(E=window.prompt(\"Input: \"),E!==null&&(E+=`\n`)):typeof readline==\"function\"&&(E=readline(),E!==null&&(E+=`\n`));if(!E)return null;d.input=BA(E,!0)}return d.input.shift()},put_char:function(d,E){E===null||E===10?(v(Le(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(v(Le(d.output,0)),d.output=[])}},default_tty1_ops:{put_char:function(d,E){E===null||E===10?(D(Le(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(D(Le(d.output,0)),d.output=[])}}};function es(d){for(var E=H(d,65536),I=dt(E);d<E;)ie[I+d++]=0;return I}var ut={ops_table:null,mount:function(d){return ut.createNode(null,\"/\",16895,0)},createNode:function(d,E,I,k){if(S.isBlkdev(I)||S.isFIFO(I))throw new S.ErrnoError(63);ut.ops_table||(ut.ops_table={dir:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,lookup:ut.node_ops.lookup,mknod:ut.node_ops.mknod,rename:ut.node_ops.rename,unlink:ut.node_ops.unlink,rmdir:ut.node_ops.rmdir,readdir:ut.node_ops.readdir,symlink:ut.node_ops.symlink},stream:{llseek:ut.stream_ops.llseek}},file:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:{llseek:ut.stream_ops.llseek,read:ut.stream_ops.read,write:ut.stream_ops.write,allocate:ut.stream_ops.allocate,mmap:ut.stream_ops.mmap,msync:ut.stream_ops.msync}},link:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,readlink:ut.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:S.chrdev_stream_ops}});var O=S.createNode(d,E,I,k);return S.isDir(O.mode)?(O.node_ops=ut.ops_table.dir.node,O.stream_ops=ut.ops_table.dir.stream,O.contents={}):S.isFile(O.mode)?(O.node_ops=ut.ops_table.file.node,O.stream_ops=ut.ops_table.file.stream,O.usedBytes=0,O.contents=null):S.isLink(O.mode)?(O.node_ops=ut.ops_table.link.node,O.stream_ops=ut.ops_table.link.stream):S.isChrdev(O.mode)&&(O.node_ops=ut.ops_table.chrdev.node,O.stream_ops=ut.ops_table.chrdev.stream),O.timestamp=Date.now(),d&&(d.contents[E]=O,d.timestamp=O.timestamp),O},getFileDataAsTypedArray:function(d){return d.contents?d.contents.subarray?d.contents.subarray(0,d.usedBytes):new Uint8Array(d.contents):new Uint8Array(0)},expandFileStorage:function(d,E){var I=d.contents?d.contents.length:0;if(!(I>=E)){var k=1024*1024;E=Math.max(E,I*(I<k?2:1.125)>>>0),I!=0&&(E=Math.max(E,256));var O=d.contents;d.contents=new Uint8Array(E),d.usedBytes>0&&d.contents.set(O.subarray(0,d.usedBytes),0)}},resizeFileStorage:function(d,E){if(d.usedBytes!=E)if(E==0)d.contents=null,d.usedBytes=0;else{var I=d.contents;d.contents=new Uint8Array(E),I&&d.contents.set(I.subarray(0,Math.min(E,d.usedBytes))),d.usedBytes=E}},node_ops:{getattr:function(d){var E={};return E.dev=S.isChrdev(d.mode)?d.id:1,E.ino=d.id,E.mode=d.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=d.rdev,S.isDir(d.mode)?E.size=4096:S.isFile(d.mode)?E.size=d.usedBytes:S.isLink(d.mode)?E.size=d.link.length:E.size=0,E.atime=new Date(d.timestamp),E.mtime=new Date(d.timestamp),E.ctime=new Date(d.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(d,E){E.mode!==void 0&&(d.mode=E.mode),E.timestamp!==void 0&&(d.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(d,E.size)},lookup:function(d,E){throw S.genericErrors[44]},mknod:function(d,E,I,k){return ut.createNode(d,E,I,k)},rename:function(d,E,I){if(S.isDir(d.mode)){var k;try{k=S.lookupNode(E,I)}catch{}if(k)for(var O in k.contents)throw new S.ErrnoError(55)}delete d.parent.contents[d.name],d.parent.timestamp=Date.now(),d.name=I,E.contents[I]=d,E.timestamp=d.parent.timestamp,d.parent=E},unlink:function(d,E){delete d.contents[E],d.timestamp=Date.now()},rmdir:function(d,E){var I=S.lookupNode(d,E);for(var k in I.contents)throw new S.ErrnoError(55);delete d.contents[E],d.timestamp=Date.now()},readdir:function(d){var E=[\".\",\"..\"];for(var I in d.contents)!d.contents.hasOwnProperty(I)||E.push(I);return E},symlink:function(d,E,I){var k=ut.createNode(d,E,41471,0);return k.link=I,k},readlink:function(d){if(!S.isLink(d.mode))throw new S.ErrnoError(28);return d.link}},stream_ops:{read:function(d,E,I,k,O){var X=d.node.contents;if(O>=d.node.usedBytes)return 0;var te=Math.min(d.node.usedBytes-O,k);if(te>8&&X.subarray)E.set(X.subarray(O,O+te),I);else for(var ye=0;ye<te;ye++)E[I+ye]=X[O+ye];return te},write:function(d,E,I,k,O,X){if(E.buffer===ie.buffer&&(X=!1),!k)return 0;var te=d.node;if(te.timestamp=Date.now(),E.subarray&&(!te.contents||te.contents.subarray)){if(X)return te.contents=E.subarray(I,I+k),te.usedBytes=k,k;if(te.usedBytes===0&&O===0)return te.contents=E.slice(I,I+k),te.usedBytes=k,k;if(O+k<=te.usedBytes)return te.contents.set(E.subarray(I,I+k),O),k}if(ut.expandFileStorage(te,O+k),te.contents.subarray&&E.subarray)te.contents.set(E.subarray(I,I+k),O);else for(var ye=0;ye<k;ye++)te.contents[O+ye]=E[I+ye];return te.usedBytes=Math.max(te.usedBytes,O+k),k},llseek:function(d,E,I){var k=E;if(I===1?k+=d.position:I===2&&S.isFile(d.node.mode)&&(k+=d.node.usedBytes),k<0)throw new S.ErrnoError(28);return k},allocate:function(d,E,I){ut.expandFileStorage(d.node,E+I),d.node.usedBytes=Math.max(d.node.usedBytes,E+I)},mmap:function(d,E,I,k,O,X){if(E!==0)throw new S.ErrnoError(28);if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);var te,ye,de=d.node.contents;if(!(X&2)&&de.buffer===Ge)ye=!1,te=de.byteOffset;else{if((k>0||k+I<de.length)&&(de.subarray?de=de.subarray(k,k+I):de=Array.prototype.slice.call(de,k,k+I)),ye=!0,te=es(I),!te)throw new S.ErrnoError(48);ie.set(de,te)}return{ptr:te,allocated:ye}},msync:function(d,E,I,k,O){if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);if(O&2)return 0;var X=ut.stream_ops.write(d,E,0,k,I,!1);return 0}}},yo={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},at={isWindows:!1,staticInit:function(){at.isWindows=!!process.platform.match(/^win/);var d={fs:De.constants};d.fs&&(d=d.fs),at.flagsForNodeMap={1024:d.O_APPEND,64:d.O_CREAT,128:d.O_EXCL,256:d.O_NOCTTY,0:d.O_RDONLY,2:d.O_RDWR,4096:d.O_SYNC,512:d.O_TRUNC,1:d.O_WRONLY}},bufferFrom:function(d){return Buffer.alloc?Buffer.from(d):new Buffer(d)},convertNodeCode:function(d){var E=d.code;return yo[E]},mount:function(d){return at.createNode(null,\"/\",at.getMode(d.opts.root),0)},createNode:function(d,E,I,k){if(!S.isDir(I)&&!S.isFile(I)&&!S.isLink(I))throw new S.ErrnoError(28);var O=S.createNode(d,E,I);return O.node_ops=at.node_ops,O.stream_ops=at.stream_ops,O},getMode:function(d){var E;try{E=De.lstatSync(d),at.isWindows&&(E.mode=E.mode|(E.mode&292)>>2)}catch(I){throw I.code?new S.ErrnoError(at.convertNodeCode(I)):I}return E.mode},realPath:function(d){for(var E=[];d.parent!==d;)E.push(d.name),d=d.parent;return E.push(d.mount.opts.root),E.reverse(),Qt.join.apply(null,E)},flagsForNode:function(d){d&=-2097153,d&=-2049,d&=-32769,d&=-524289;var E=0;for(var I in at.flagsForNodeMap)d&I&&(E|=at.flagsForNodeMap[I],d^=I);if(d)throw new S.ErrnoError(28);return E},node_ops:{getattr:function(d){var E=at.realPath(d),I;try{I=De.lstatSync(E)}catch(k){throw k.code?new S.ErrnoError(at.convertNodeCode(k)):k}return at.isWindows&&!I.blksize&&(I.blksize=4096),at.isWindows&&!I.blocks&&(I.blocks=(I.size+I.blksize-1)/I.blksize|0),{dev:I.dev,ino:I.ino,mode:I.mode,nlink:I.nlink,uid:I.uid,gid:I.gid,rdev:I.rdev,size:I.size,atime:I.atime,mtime:I.mtime,ctime:I.ctime,blksize:I.blksize,blocks:I.blocks}},setattr:function(d,E){var I=at.realPath(d);try{if(E.mode!==void 0&&(De.chmodSync(I,E.mode),d.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);De.utimesSync(I,k,k)}E.size!==void 0&&De.truncateSync(I,E.size)}catch(O){throw O.code?new S.ErrnoError(at.convertNodeCode(O)):O}},lookup:function(d,E){var I=Qt.join2(at.realPath(d),E),k=at.getMode(I);return at.createNode(d,E,k)},mknod:function(d,E,I,k){var O=at.createNode(d,E,I,k),X=at.realPath(O);try{S.isDir(O.mode)?De.mkdirSync(X,O.mode):De.writeFileSync(X,\"\",{mode:O.mode})}catch(te){throw te.code?new S.ErrnoError(at.convertNodeCode(te)):te}return O},rename:function(d,E,I){var k=at.realPath(d),O=Qt.join2(at.realPath(E),I);try{De.renameSync(k,O)}catch(X){throw X.code?new S.ErrnoError(at.convertNodeCode(X)):X}d.name=I},unlink:function(d,E){var I=Qt.join2(at.realPath(d),E);try{De.unlinkSync(I)}catch(k){throw k.code?new S.ErrnoError(at.convertNodeCode(k)):k}},rmdir:function(d,E){var I=Qt.join2(at.realPath(d),E);try{De.rmdirSync(I)}catch(k){throw k.code?new S.ErrnoError(at.convertNodeCode(k)):k}},readdir:function(d){var E=at.realPath(d);try{return De.readdirSync(E)}catch(I){throw I.code?new S.ErrnoError(at.convertNodeCode(I)):I}},symlink:function(d,E,I){var k=Qt.join2(at.realPath(d),E);try{De.symlinkSync(I,k)}catch(O){throw O.code?new S.ErrnoError(at.convertNodeCode(O)):O}},readlink:function(d){var E=at.realPath(d);try{return E=De.readlinkSync(E),E=Tg.relative(Tg.resolve(d.mount.opts.root),E),E}catch(I){throw I.code?new S.ErrnoError(at.convertNodeCode(I)):I}}},stream_ops:{open:function(d){var E=at.realPath(d.node);try{S.isFile(d.node.mode)&&(d.nfd=De.openSync(E,at.flagsForNode(d.flags)))}catch(I){throw I.code?new S.ErrnoError(at.convertNodeCode(I)):I}},close:function(d){try{S.isFile(d.node.mode)&&d.nfd&&De.closeSync(d.nfd)}catch(E){throw E.code?new S.ErrnoError(at.convertNodeCode(E)):E}},read:function(d,E,I,k,O){if(k===0)return 0;try{return De.readSync(d.nfd,at.bufferFrom(E.buffer),I,k,O)}catch(X){throw new S.ErrnoError(at.convertNodeCode(X))}},write:function(d,E,I,k,O){try{return De.writeSync(d.nfd,at.bufferFrom(E.buffer),I,k,O)}catch(X){throw new S.ErrnoError(at.convertNodeCode(X))}},llseek:function(d,E,I){var k=E;if(I===1)k+=d.position;else if(I===2&&S.isFile(d.node.mode))try{var O=De.fstatSync(d.nfd);k+=O.size}catch(X){throw new S.ErrnoError(at.convertNodeCode(X))}if(k<0)throw new S.ErrnoError(28);return k},mmap:function(d,E,I,k,O,X){if(E!==0)throw new S.ErrnoError(28);if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);var te=es(I);return at.stream_ops.read(d,ie,te,I,k),{ptr:te,allocated:!0}},msync:function(d,E,I,k,O){if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);if(O&2)return 0;var X=at.stream_ops.write(d,E,0,k,I,!1);return 0}}},ln={lookupPath:function(d){return{path:d,node:{mode:at.getMode(d)}}},createStandardStreams:function(){S.streams[0]={fd:0,nfd:0,position:0,path:\"\",flags:0,tty:!0,seekable:!1};for(var d=1;d<3;d++)S.streams[d]={fd:d,nfd:d,position:0,path:\"\",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(d,E){S.isDir(d)?De.mkdirSync(d,E):De.writeFileSync(d,\"\",{mode:E})},mkdir:function(){De.mkdirSync.apply(void 0,arguments)},symlink:function(){De.symlinkSync.apply(void 0,arguments)},rename:function(){De.renameSync.apply(void 0,arguments)},rmdir:function(){De.rmdirSync.apply(void 0,arguments)},readdir:function(){De.readdirSync.apply(void 0,arguments)},unlink:function(){De.unlinkSync.apply(void 0,arguments)},readlink:function(){return De.readlinkSync.apply(void 0,arguments)},stat:function(){return De.statSync.apply(void 0,arguments)},lstat:function(){return De.lstatSync.apply(void 0,arguments)},chmod:function(){De.chmodSync.apply(void 0,arguments)},fchmod:function(){De.fchmodSync.apply(void 0,arguments)},chown:function(){De.chownSync.apply(void 0,arguments)},fchown:function(){De.fchownSync.apply(void 0,arguments)},truncate:function(){De.truncateSync.apply(void 0,arguments)},ftruncate:function(d,E){if(E<0)throw new S.ErrnoError(28);De.ftruncateSync.apply(void 0,arguments)},utime:function(){De.utimesSync.apply(void 0,arguments)},open:function(d,E,I,k){typeof E==\"string\"&&(E=Ks.modeStringToFlags(E));var O=De.openSync(d,at.flagsForNode(E),I),X=k!=null?k:S.nextfd(O),te={fd:X,nfd:O,position:0,path:d,flags:E,seekable:!0};return S.streams[X]=te,te},close:function(d){d.stream_ops||De.closeSync(d.nfd),S.closeStream(d.fd)},llseek:function(d,E,I){if(d.stream_ops)return Ks.llseek(d,E,I);var k=E;if(I===1)k+=d.position;else if(I===2)k+=De.fstatSync(d.nfd).size;else if(I!==0)throw new S.ErrnoError(yo.EINVAL);if(k<0)throw new S.ErrnoError(yo.EINVAL);return d.position=k,k},read:function(d,E,I,k,O){if(d.stream_ops)return Ks.read(d,E,I,k,O);var X=typeof O<\"u\";!X&&d.seekable&&(O=d.position);var te=De.readSync(d.nfd,at.bufferFrom(E.buffer),I,k,O);return X||(d.position+=te),te},write:function(d,E,I,k,O){if(d.stream_ops)return Ks.write(d,E,I,k,O);d.flags&+\"1024\"&&S.llseek(d,0,+\"2\");var X=typeof O<\"u\";!X&&d.seekable&&(O=d.position);var te=De.writeSync(d.nfd,at.bufferFrom(E.buffer),I,k,O);return X||(d.position+=te),te},allocate:function(){throw new S.ErrnoError(yo.EOPNOTSUPP)},mmap:function(d,E,I,k,O,X){if(d.stream_ops)return Ks.mmap(d,E,I,k,O,X);if(E!==0)throw new S.ErrnoError(28);var te=es(I);return S.read(d,ie,te,I,k),{ptr:te,allocated:!0}},msync:function(d,E,I,k,O){return d.stream_ops?Ks.msync(d,E,I,k,O):(O&2||S.write(d,E,0,k,I),0)},munmap:function(){return 0},ioctl:function(){throw new S.ErrnoError(yo.ENOTTY)}},S={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(d,E){if(d=Rn.resolve(S.cwd(),d),E=E||{},!d)return{path:\"\",node:null};var I={follow_mount:!0,recurse_count:0};for(var k in I)E[k]===void 0&&(E[k]=I[k]);if(E.recurse_count>8)throw new S.ErrnoError(32);for(var O=Qt.normalizeArray(d.split(\"/\").filter(function(At){return!!At}),!1),X=S.root,te=\"/\",ye=0;ye<O.length;ye++){var de=ye===O.length-1;if(de&&E.parent)break;if(X=S.lookupNode(X,O[ye]),te=Qt.join2(te,O[ye]),S.isMountpoint(X)&&(!de||de&&E.follow_mount)&&(X=X.mounted.root),!de||E.follow)for(var Ye=0;S.isLink(X.mode);){var rt=S.readlink(te);te=Rn.resolve(Qt.dirname(te),rt);var wt=S.lookupPath(te,{recurse_count:E.recurse_count});if(X=wt.node,Ye++>40)throw new S.ErrnoError(32)}}return{path:te,node:X}},getPath:function(d){for(var E;;){if(S.isRoot(d)){var I=d.mount.mountpoint;return E?I[I.length-1]!==\"/\"?I+\"/\"+E:I+E:I}E=E?d.name+\"/\"+E:d.name,d=d.parent}},hashName:function(d,E){for(var I=0,k=0;k<E.length;k++)I=(I<<5)-I+E.charCodeAt(k)|0;return(d+I>>>0)%S.nameTable.length},hashAddNode:function(d){var E=S.hashName(d.parent.id,d.name);d.name_next=S.nameTable[E],S.nameTable[E]=d},hashRemoveNode:function(d){var E=S.hashName(d.parent.id,d.name);if(S.nameTable[E]===d)S.nameTable[E]=d.name_next;else for(var I=S.nameTable[E];I;){if(I.name_next===d){I.name_next=d.name_next;break}I=I.name_next}},lookupNode:function(d,E){var I=S.mayLookup(d);if(I)throw new S.ErrnoError(I,d);for(var k=S.hashName(d.id,E),O=S.nameTable[k];O;O=O.name_next){var X=O.name;if(O.parent.id===d.id&&X===E)return O}return S.lookup(d,E)},createNode:function(d,E,I,k){var O=new S.FSNode(d,E,I,k);return S.hashAddNode(O),O},destroyNode:function(d){S.hashRemoveNode(d)},isRoot:function(d){return d===d.parent},isMountpoint:function(d){return!!d.mounted},isFile:function(d){return(d&61440)===32768},isDir:function(d){return(d&61440)===16384},isLink:function(d){return(d&61440)===40960},isChrdev:function(d){return(d&61440)===8192},isBlkdev:function(d){return(d&61440)===24576},isFIFO:function(d){return(d&61440)===4096},isSocket:function(d){return(d&49152)===49152},flagModes:{r:0,\"r+\":2,w:577,\"w+\":578,a:1089,\"a+\":1090},modeStringToFlags:function(d){var E=S.flagModes[d];if(typeof E>\"u\")throw new Error(\"Unknown file open mode: \"+d);return E},flagsToPermissionString:function(d){var E=[\"r\",\"w\",\"rw\"][d&3];return d&512&&(E+=\"w\"),E},nodePermissions:function(d,E){return S.ignorePermissions?0:E.includes(\"r\")&&!(d.mode&292)||E.includes(\"w\")&&!(d.mode&146)||E.includes(\"x\")&&!(d.mode&73)?2:0},mayLookup:function(d){var E=S.nodePermissions(d,\"x\");return E||(d.node_ops.lookup?0:2)},mayCreate:function(d,E){try{var I=S.lookupNode(d,E);return 20}catch{}return S.nodePermissions(d,\"wx\")},mayDelete:function(d,E,I){var k;try{k=S.lookupNode(d,E)}catch(X){return X.errno}var O=S.nodePermissions(d,\"wx\");if(O)return O;if(I){if(!S.isDir(k.mode))return 54;if(S.isRoot(k)||S.getPath(k)===S.cwd())return 10}else if(S.isDir(k.mode))return 31;return 0},mayOpen:function(d,E){return d?S.isLink(d.mode)?32:S.isDir(d.mode)&&(S.flagsToPermissionString(E)!==\"r\"||E&512)?31:S.nodePermissions(d,S.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(d,E){d=d||0,E=E||S.MAX_OPEN_FDS;for(var I=d;I<=E;I++)if(!S.streams[I])return I;throw new S.ErrnoError(33)},getStream:function(d){return S.streams[d]},createStream:function(d,E,I){S.FSStream||(S.FSStream=function(){},S.FSStream.prototype={object:{get:function(){return this.node},set:function(te){this.node=te}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new S.FSStream;for(var O in d)k[O]=d[O];d=k;var X=S.nextfd(E,I);return d.fd=X,S.streams[X]=d,d},closeStream:function(d){S.streams[d]=null},chrdev_stream_ops:{open:function(d){var E=S.getDevice(d.node.rdev);d.stream_ops=E.stream_ops,d.stream_ops.open&&d.stream_ops.open(d)},llseek:function(){throw new S.ErrnoError(70)}},major:function(d){return d>>8},minor:function(d){return d&255},makedev:function(d,E){return d<<8|E},registerDevice:function(d,E){S.devices[d]={stream_ops:E}},getDevice:function(d){return S.devices[d]},getMounts:function(d){for(var E=[],I=[d];I.length;){var k=I.pop();E.push(k),I.push.apply(I,k.mounts)}return E},syncfs:function(d,E){typeof d==\"function\"&&(E=d,d=!1),S.syncFSRequests++,S.syncFSRequests>1&&D(\"warning: \"+S.syncFSRequests+\" FS.syncfs operations in flight at once, probably just doing extra work\");var I=S.getMounts(S.root.mount),k=0;function O(te){return S.syncFSRequests--,E(te)}function X(te){if(te)return X.errored?void 0:(X.errored=!0,O(te));++k>=I.length&&O(null)}I.forEach(function(te){if(!te.type.syncfs)return X(null);te.type.syncfs(te,d,X)})},mount:function(d,E,I){var k=I===\"/\",O=!I,X;if(k&&S.root)throw new S.ErrnoError(10);if(!k&&!O){var te=S.lookupPath(I,{follow_mount:!1});if(I=te.path,X=te.node,S.isMountpoint(X))throw new S.ErrnoError(10);if(!S.isDir(X.mode))throw new S.ErrnoError(54)}var ye={type:d,opts:E,mountpoint:I,mounts:[]},de=d.mount(ye);return de.mount=ye,ye.root=de,k?S.root=de:X&&(X.mounted=ye,X.mount&&X.mount.mounts.push(ye)),de},unmount:function(d){var E=S.lookupPath(d,{follow_mount:!1});if(!S.isMountpoint(E.node))throw new S.ErrnoError(28);var I=E.node,k=I.mounted,O=S.getMounts(k);Object.keys(S.nameTable).forEach(function(te){for(var ye=S.nameTable[te];ye;){var de=ye.name_next;O.includes(ye.mount)&&S.destroyNode(ye),ye=de}}),I.mounted=null;var X=I.mount.mounts.indexOf(k);I.mount.mounts.splice(X,1)},lookup:function(d,E){return d.node_ops.lookup(d,E)},mknod:function(d,E,I){var k=S.lookupPath(d,{parent:!0}),O=k.node,X=Qt.basename(d);if(!X||X===\".\"||X===\"..\")throw new S.ErrnoError(28);var te=S.mayCreate(O,X);if(te)throw new S.ErrnoError(te);if(!O.node_ops.mknod)throw new S.ErrnoError(63);return O.node_ops.mknod(O,X,E,I)},create:function(d,E){return E=E!==void 0?E:438,E&=4095,E|=32768,S.mknod(d,E,0)},mkdir:function(d,E){return E=E!==void 0?E:511,E&=1023,E|=16384,S.mknod(d,E,0)},mkdirTree:function(d,E){for(var I=d.split(\"/\"),k=\"\",O=0;O<I.length;++O)if(!!I[O]){k+=\"/\"+I[O];try{S.mkdir(k,E)}catch(X){if(X.errno!=20)throw X}}},mkdev:function(d,E,I){return typeof I>\"u\"&&(I=E,E=438),E|=8192,S.mknod(d,E,I)},symlink:function(d,E){if(!Rn.resolve(d))throw new S.ErrnoError(44);var I=S.lookupPath(E,{parent:!0}),k=I.node;if(!k)throw new S.ErrnoError(44);var O=Qt.basename(E),X=S.mayCreate(k,O);if(X)throw new S.ErrnoError(X);if(!k.node_ops.symlink)throw new S.ErrnoError(63);return k.node_ops.symlink(k,O,d)},rename:function(d,E){var I=Qt.dirname(d),k=Qt.dirname(E),O=Qt.basename(d),X=Qt.basename(E),te,ye,de;if(te=S.lookupPath(d,{parent:!0}),ye=te.node,te=S.lookupPath(E,{parent:!0}),de=te.node,!ye||!de)throw new S.ErrnoError(44);if(ye.mount!==de.mount)throw new S.ErrnoError(75);var Ye=S.lookupNode(ye,O),rt=Rn.relative(d,k);if(rt.charAt(0)!==\".\")throw new S.ErrnoError(28);if(rt=Rn.relative(E,I),rt.charAt(0)!==\".\")throw new S.ErrnoError(55);var wt;try{wt=S.lookupNode(de,X)}catch{}if(Ye!==wt){var At=S.isDir(Ye.mode),et=S.mayDelete(ye,O,At);if(et)throw new S.ErrnoError(et);if(et=wt?S.mayDelete(de,X,At):S.mayCreate(de,X),et)throw new S.ErrnoError(et);if(!ye.node_ops.rename)throw new S.ErrnoError(63);if(S.isMountpoint(Ye)||wt&&S.isMountpoint(wt))throw new S.ErrnoError(10);if(de!==ye&&(et=S.nodePermissions(ye,\"w\"),et))throw new S.ErrnoError(et);try{S.trackingDelegate.willMovePath&&S.trackingDelegate.willMovePath(d,E)}catch(Et){D(\"FS.trackingDelegate['willMovePath']('\"+d+\"', '\"+E+\"') threw an exception: \"+Et.message)}S.hashRemoveNode(Ye);try{ye.node_ops.rename(Ye,de,X)}catch(Et){throw Et}finally{S.hashAddNode(Ye)}try{S.trackingDelegate.onMovePath&&S.trackingDelegate.onMovePath(d,E)}catch(Et){D(\"FS.trackingDelegate['onMovePath']('\"+d+\"', '\"+E+\"') threw an exception: \"+Et.message)}}},rmdir:function(d){var E=S.lookupPath(d,{parent:!0}),I=E.node,k=Qt.basename(d),O=S.lookupNode(I,k),X=S.mayDelete(I,k,!0);if(X)throw new S.ErrnoError(X);if(!I.node_ops.rmdir)throw new S.ErrnoError(63);if(S.isMountpoint(O))throw new S.ErrnoError(10);try{S.trackingDelegate.willDeletePath&&S.trackingDelegate.willDeletePath(d)}catch(te){D(\"FS.trackingDelegate['willDeletePath']('\"+d+\"') threw an exception: \"+te.message)}I.node_ops.rmdir(I,k),S.destroyNode(O);try{S.trackingDelegate.onDeletePath&&S.trackingDelegate.onDeletePath(d)}catch(te){D(\"FS.trackingDelegate['onDeletePath']('\"+d+\"') threw an exception: \"+te.message)}},readdir:function(d){var E=S.lookupPath(d,{follow:!0}),I=E.node;if(!I.node_ops.readdir)throw new S.ErrnoError(54);return I.node_ops.readdir(I)},unlink:function(d){var E=S.lookupPath(d,{parent:!0}),I=E.node,k=Qt.basename(d),O=S.lookupNode(I,k),X=S.mayDelete(I,k,!1);if(X)throw new S.ErrnoError(X);if(!I.node_ops.unlink)throw new S.ErrnoError(63);if(S.isMountpoint(O))throw new S.ErrnoError(10);try{S.trackingDelegate.willDeletePath&&S.trackingDelegate.willDeletePath(d)}catch(te){D(\"FS.trackingDelegate['willDeletePath']('\"+d+\"') threw an exception: \"+te.message)}I.node_ops.unlink(I,k),S.destroyNode(O);try{S.trackingDelegate.onDeletePath&&S.trackingDelegate.onDeletePath(d)}catch(te){D(\"FS.trackingDelegate['onDeletePath']('\"+d+\"') threw an exception: \"+te.message)}},readlink:function(d){var E=S.lookupPath(d),I=E.node;if(!I)throw new S.ErrnoError(44);if(!I.node_ops.readlink)throw new S.ErrnoError(28);return Rn.resolve(S.getPath(I.parent),I.node_ops.readlink(I))},stat:function(d,E){var I=S.lookupPath(d,{follow:!E}),k=I.node;if(!k)throw new S.ErrnoError(44);if(!k.node_ops.getattr)throw new S.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(d){return S.stat(d,!0)},chmod:function(d,E,I){var k;if(typeof d==\"string\"){var O=S.lookupPath(d,{follow:!I});k=O.node}else k=d;if(!k.node_ops.setattr)throw new S.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(d,E){S.chmod(d,E,!0)},fchmod:function(d,E){var I=S.getStream(d);if(!I)throw new S.ErrnoError(8);S.chmod(I.node,E)},chown:function(d,E,I,k){var O;if(typeof d==\"string\"){var X=S.lookupPath(d,{follow:!k});O=X.node}else O=d;if(!O.node_ops.setattr)throw new S.ErrnoError(63);O.node_ops.setattr(O,{timestamp:Date.now()})},lchown:function(d,E,I){S.chown(d,E,I,!0)},fchown:function(d,E,I){var k=S.getStream(d);if(!k)throw new S.ErrnoError(8);S.chown(k.node,E,I)},truncate:function(d,E){if(E<0)throw new S.ErrnoError(28);var I;if(typeof d==\"string\"){var k=S.lookupPath(d,{follow:!0});I=k.node}else I=d;if(!I.node_ops.setattr)throw new S.ErrnoError(63);if(S.isDir(I.mode))throw new S.ErrnoError(31);if(!S.isFile(I.mode))throw new S.ErrnoError(28);var O=S.nodePermissions(I,\"w\");if(O)throw new S.ErrnoError(O);I.node_ops.setattr(I,{size:E,timestamp:Date.now()})},ftruncate:function(d,E){var I=S.getStream(d);if(!I)throw new S.ErrnoError(8);if((I.flags&2097155)===0)throw new S.ErrnoError(28);S.truncate(I.node,E)},utime:function(d,E,I){var k=S.lookupPath(d,{follow:!0}),O=k.node;O.node_ops.setattr(O,{timestamp:Math.max(E,I)})},open:function(d,E,I,k,O){if(d===\"\")throw new S.ErrnoError(44);E=typeof E==\"string\"?S.modeStringToFlags(E):E,I=typeof I>\"u\"?438:I,E&64?I=I&4095|32768:I=0;var X;if(typeof d==\"object\")X=d;else{d=Qt.normalize(d);try{var te=S.lookupPath(d,{follow:!(E&131072)});X=te.node}catch{}}var ye=!1;if(E&64)if(X){if(E&128)throw new S.ErrnoError(20)}else X=S.mknod(d,I,0),ye=!0;if(!X)throw new S.ErrnoError(44);if(S.isChrdev(X.mode)&&(E&=-513),E&65536&&!S.isDir(X.mode))throw new S.ErrnoError(54);if(!ye){var de=S.mayOpen(X,E);if(de)throw new S.ErrnoError(de)}E&512&&S.truncate(X,0),E&=-131713;var Ye=S.createStream({node:X,path:S.getPath(X),flags:E,seekable:!0,position:0,stream_ops:X.stream_ops,ungotten:[],error:!1},k,O);Ye.stream_ops.open&&Ye.stream_ops.open(Ye),t.logReadFiles&&!(E&1)&&(S.readFiles||(S.readFiles={}),d in S.readFiles||(S.readFiles[d]=1,D(\"FS.trackingDelegate error on read file: \"+d)));try{if(S.trackingDelegate.onOpenFile){var rt=0;(E&2097155)!==1&&(rt|=S.tracking.openFlags.READ),(E&2097155)!==0&&(rt|=S.tracking.openFlags.WRITE),S.trackingDelegate.onOpenFile(d,rt)}}catch(wt){D(\"FS.trackingDelegate['onOpenFile']('\"+d+\"', flags) threw an exception: \"+wt.message)}return Ye},close:function(d){if(S.isClosed(d))throw new S.ErrnoError(8);d.getdents&&(d.getdents=null);try{d.stream_ops.close&&d.stream_ops.close(d)}catch(E){throw E}finally{S.closeStream(d.fd)}d.fd=null},isClosed:function(d){return d.fd===null},llseek:function(d,E,I){if(S.isClosed(d))throw new S.ErrnoError(8);if(!d.seekable||!d.stream_ops.llseek)throw new S.ErrnoError(70);if(I!=0&&I!=1&&I!=2)throw new S.ErrnoError(28);return d.position=d.stream_ops.llseek(d,E,I),d.ungotten=[],d.position},read:function(d,E,I,k,O){if(k<0||O<0)throw new S.ErrnoError(28);if(S.isClosed(d))throw new S.ErrnoError(8);if((d.flags&2097155)===1)throw new S.ErrnoError(8);if(S.isDir(d.node.mode))throw new S.ErrnoError(31);if(!d.stream_ops.read)throw new S.ErrnoError(28);var X=typeof O<\"u\";if(!X)O=d.position;else if(!d.seekable)throw new S.ErrnoError(70);var te=d.stream_ops.read(d,E,I,k,O);return X||(d.position+=te),te},write:function(d,E,I,k,O,X){if(k<0||O<0)throw new S.ErrnoError(28);if(S.isClosed(d))throw new S.ErrnoError(8);if((d.flags&2097155)===0)throw new S.ErrnoError(8);if(S.isDir(d.node.mode))throw new S.ErrnoError(31);if(!d.stream_ops.write)throw new S.ErrnoError(28);d.seekable&&d.flags&1024&&S.llseek(d,0,2);var te=typeof O<\"u\";if(!te)O=d.position;else if(!d.seekable)throw new S.ErrnoError(70);var ye=d.stream_ops.write(d,E,I,k,O,X);te||(d.position+=ye);try{d.path&&S.trackingDelegate.onWriteToFile&&S.trackingDelegate.onWriteToFile(d.path)}catch(de){D(\"FS.trackingDelegate['onWriteToFile']('\"+d.path+\"') threw an exception: \"+de.message)}return ye},allocate:function(d,E,I){if(S.isClosed(d))throw new S.ErrnoError(8);if(E<0||I<=0)throw new S.ErrnoError(28);if((d.flags&2097155)===0)throw new S.ErrnoError(8);if(!S.isFile(d.node.mode)&&!S.isDir(d.node.mode))throw new S.ErrnoError(43);if(!d.stream_ops.allocate)throw new S.ErrnoError(138);d.stream_ops.allocate(d,E,I)},mmap:function(d,E,I,k,O,X){if((O&2)!==0&&(X&2)===0&&(d.flags&2097155)!==2)throw new S.ErrnoError(2);if((d.flags&2097155)===1)throw new S.ErrnoError(2);if(!d.stream_ops.mmap)throw new S.ErrnoError(43);return d.stream_ops.mmap(d,E,I,k,O,X)},msync:function(d,E,I,k,O){return!d||!d.stream_ops.msync?0:d.stream_ops.msync(d,E,I,k,O)},munmap:function(d){return 0},ioctl:function(d,E,I){if(!d.stream_ops.ioctl)throw new S.ErrnoError(59);return d.stream_ops.ioctl(d,E,I)},readFile:function(d,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||\"binary\",E.encoding!==\"utf8\"&&E.encoding!==\"binary\")throw new Error('Invalid encoding type \"'+E.encoding+'\"');var I,k=S.open(d,E.flags),O=S.stat(d),X=O.size,te=new Uint8Array(X);return S.read(k,te,0,X,0),E.encoding===\"utf8\"?I=Le(te,0):E.encoding===\"binary\"&&(I=te),S.close(k),I},writeFile:function(d,E,I){I=I||{},I.flags=I.flags||577;var k=S.open(d,I.flags,I.mode);if(typeof E==\"string\"){var O=new Uint8Array(Ae(E)+1),X=Te(E,O,0,O.length);S.write(k,O,0,X,void 0,I.canOwn)}else if(ArrayBuffer.isView(E))S.write(k,E,0,E.byteLength,void 0,I.canOwn);else throw new Error(\"Unsupported data type\");S.close(k)},cwd:function(){return S.currentPath},chdir:function(d){var E=S.lookupPath(d,{follow:!0});if(E.node===null)throw new S.ErrnoError(44);if(!S.isDir(E.node.mode))throw new S.ErrnoError(54);var I=S.nodePermissions(E.node,\"x\");if(I)throw new S.ErrnoError(I);S.currentPath=E.path},createDefaultDirectories:function(){S.mkdir(\"/tmp\"),S.mkdir(\"/home\"),S.mkdir(\"/home/web_user\")},createDefaultDevices:function(){S.mkdir(\"/dev\"),S.registerDevice(S.makedev(1,3),{read:function(){return 0},write:function(E,I,k,O,X){return O}}),S.mkdev(\"/dev/null\",S.makedev(1,3)),$n.register(S.makedev(5,0),$n.default_tty_ops),$n.register(S.makedev(6,0),$n.default_tty1_ops),S.mkdev(\"/dev/tty\",S.makedev(5,0)),S.mkdev(\"/dev/tty1\",S.makedev(6,0));var d=Vl();S.createDevice(\"/dev\",\"random\",d),S.createDevice(\"/dev\",\"urandom\",d),S.mkdir(\"/dev/shm\"),S.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories:function(){S.mkdir(\"/proc\");var d=S.mkdir(\"/proc/self\");S.mkdir(\"/proc/self/fd\"),S.mount({mount:function(){var E=S.createNode(d,\"fd\",16895,73);return E.node_ops={lookup:function(I,k){var O=+k,X=S.getStream(O);if(!X)throw new S.ErrnoError(8);var te={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:function(){return X.path}}};return te.parent=te,te}},E}},{},\"/proc/self/fd\")},createStandardStreams:function(){t.stdin?S.createDevice(\"/dev\",\"stdin\",t.stdin):S.symlink(\"/dev/tty\",\"/dev/stdin\"),t.stdout?S.createDevice(\"/dev\",\"stdout\",null,t.stdout):S.symlink(\"/dev/tty\",\"/dev/stdout\"),t.stderr?S.createDevice(\"/dev\",\"stderr\",null,t.stderr):S.symlink(\"/dev/tty1\",\"/dev/stderr\");var d=S.open(\"/dev/stdin\",0),E=S.open(\"/dev/stdout\",1),I=S.open(\"/dev/stderr\",1)},ensureErrnoError:function(){S.ErrnoError||(S.ErrnoError=function(E,I){this.node=I,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message=\"FS error\"},S.ErrnoError.prototype=new Error,S.ErrnoError.prototype.constructor=S.ErrnoError,[44].forEach(function(d){S.genericErrors[d]=new S.ErrnoError(d),S.genericErrors[d].stack=\"<generic error, no stack>\"}))},staticInit:function(){S.ensureErrnoError(),S.nameTable=new Array(4096),S.mount(ut,{},\"/\"),S.createDefaultDirectories(),S.createDefaultDevices(),S.createSpecialDirectories(),S.filesystems={MEMFS:ut,NODEFS:at}},init:function(d,E,I){S.init.initialized=!0,S.ensureErrnoError(),t.stdin=d||t.stdin,t.stdout=E||t.stdout,t.stderr=I||t.stderr,S.createStandardStreams()},quit:function(){S.init.initialized=!1;var d=t._fflush;d&&d(0);for(var E=0;E<S.streams.length;E++){var I=S.streams[E];!I||S.close(I)}},getMode:function(d,E){var I=0;return d&&(I|=365),E&&(I|=146),I},findObject:function(d,E){var I=S.analyzePath(d,E);return I.exists?I.object:null},analyzePath:function(d,E){try{var I=S.lookupPath(d,{follow:!E});d=I.path}catch{}var k={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var I=S.lookupPath(d,{parent:!0});k.parentExists=!0,k.parentPath=I.path,k.parentObject=I.node,k.name=Qt.basename(d),I=S.lookupPath(d,{follow:!E}),k.exists=!0,k.path=I.path,k.object=I.node,k.name=I.node.name,k.isRoot=I.path===\"/\"}catch(O){k.error=O.errno}return k},createPath:function(d,E,I,k){d=typeof d==\"string\"?d:S.getPath(d);for(var O=E.split(\"/\").reverse();O.length;){var X=O.pop();if(!!X){var te=Qt.join2(d,X);try{S.mkdir(te)}catch{}d=te}}return te},createFile:function(d,E,I,k,O){var X=Qt.join2(typeof d==\"string\"?d:S.getPath(d),E),te=S.getMode(k,O);return S.create(X,te)},createDataFile:function(d,E,I,k,O,X){var te=E?Qt.join2(typeof d==\"string\"?d:S.getPath(d),E):d,ye=S.getMode(k,O),de=S.create(te,ye);if(I){if(typeof I==\"string\"){for(var Ye=new Array(I.length),rt=0,wt=I.length;rt<wt;++rt)Ye[rt]=I.charCodeAt(rt);I=Ye}S.chmod(de,ye|146);var At=S.open(de,577);S.write(At,I,0,I.length,0,X),S.close(At),S.chmod(de,ye)}return de},createDevice:function(d,E,I,k){var O=Qt.join2(typeof d==\"string\"?d:S.getPath(d),E),X=S.getMode(!!I,!!k);S.createDevice.major||(S.createDevice.major=64);var te=S.makedev(S.createDevice.major++,0);return S.registerDevice(te,{open:function(ye){ye.seekable=!1},close:function(ye){k&&k.buffer&&k.buffer.length&&k(10)},read:function(ye,de,Ye,rt,wt){for(var At=0,et=0;et<rt;et++){var Et;try{Et=I()}catch{throw new S.ErrnoError(29)}if(Et===void 0&&At===0)throw new S.ErrnoError(6);if(Et==null)break;At++,de[Ye+et]=Et}return At&&(ye.node.timestamp=Date.now()),At},write:function(ye,de,Ye,rt,wt){for(var At=0;At<rt;At++)try{k(de[Ye+At])}catch{throw new S.ErrnoError(29)}return rt&&(ye.node.timestamp=Date.now()),At}}),S.mkdev(O,X,te)},forceLoadFile:function(d){if(d.isDevice||d.isFolder||d.link||d.contents)return!0;if(typeof XMLHttpRequest<\"u\")throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\");if(p)try{d.contents=BA(p(d.url),!0),d.usedBytes=d.contents.length}catch{throw new S.ErrnoError(29)}else throw new Error(\"Cannot load without read() or XMLHttpRequest.\")},createLazyFile:function(d,E,I,k,O){function X(){this.lengthKnown=!1,this.chunks=[]}if(X.prototype.get=function(At){if(!(At>this.length-1||At<0)){var et=At%this.chunkSize,Et=At/this.chunkSize|0;return this.getter(Et)[et]}},X.prototype.setDataGetter=function(At){this.getter=At},X.prototype.cacheLength=function(){var At=new XMLHttpRequest;if(At.open(\"HEAD\",I,!1),At.send(null),!(At.status>=200&&At.status<300||At.status===304))throw new Error(\"Couldn't load \"+I+\". Status: \"+At.status);var et=Number(At.getResponseHeader(\"Content-length\")),Et,Be=(Et=At.getResponseHeader(\"Accept-Ranges\"))&&Et===\"bytes\",Ln=(Et=At.getResponseHeader(\"Content-Encoding\"))&&Et===\"gzip\",Fi=1024*1024;Be||(Fi=et);var xA=function(ts,Ia){if(ts>Ia)throw new Error(\"invalid range (\"+ts+\", \"+Ia+\") or no bytes requested!\");if(Ia>et-1)throw new Error(\"only \"+et+\" bytes available! programmer error!\");var Hr=new XMLHttpRequest;if(Hr.open(\"GET\",I,!1),et!==Fi&&Hr.setRequestHeader(\"Range\",\"bytes=\"+ts+\"-\"+Ia),typeof Uint8Array<\"u\"&&(Hr.responseType=\"arraybuffer\"),Hr.overrideMimeType&&Hr.overrideMimeType(\"text/plain; charset=x-user-defined\"),Hr.send(null),!(Hr.status>=200&&Hr.status<300||Hr.status===304))throw new Error(\"Couldn't load \"+I+\". Status: \"+Hr.status);return Hr.response!==void 0?new Uint8Array(Hr.response||[]):BA(Hr.responseText||\"\",!0)},Ur=this;Ur.setDataGetter(function(ts){var Ia=ts*Fi,Hr=(ts+1)*Fi-1;if(Hr=Math.min(Hr,et-1),typeof Ur.chunks[ts]>\"u\"&&(Ur.chunks[ts]=xA(Ia,Hr)),typeof Ur.chunks[ts]>\"u\")throw new Error(\"doXHR failed!\");return Ur.chunks[ts]}),(Ln||!et)&&(Fi=et=1,et=this.getter(0).length,Fi=et,v(\"LazyFiles on gzip forces download of the whole file when length is accessed\")),this._length=et,this._chunkSize=Fi,this.lengthKnown=!0},typeof XMLHttpRequest<\"u\"){if(!u)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var te=new X;Object.defineProperties(te,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var ye={isDevice:!1,contents:te}}else var ye={isDevice:!1,url:I};var de=S.createFile(d,E,ye,k,O);ye.contents?de.contents=ye.contents:ye.url&&(de.contents=null,de.url=ye.url),Object.defineProperties(de,{usedBytes:{get:function(){return this.contents.length}}});var Ye={},rt=Object.keys(de.stream_ops);return rt.forEach(function(wt){var At=de.stream_ops[wt];Ye[wt]=function(){return S.forceLoadFile(de),At.apply(null,arguments)}}),Ye.read=function(At,et,Et,Be,Ln){S.forceLoadFile(de);var Fi=At.node.contents;if(Ln>=Fi.length)return 0;var xA=Math.min(Fi.length-Ln,Be);if(Fi.slice)for(var Ur=0;Ur<xA;Ur++)et[Et+Ur]=Fi[Ln+Ur];else for(var Ur=0;Ur<xA;Ur++)et[Et+Ur]=Fi.get(Ln+Ur);return xA},de.stream_ops=Ye,de},createPreloadedFile:function(d,E,I,k,O,X,te,ye,de,Ye){Browser.init();var rt=E?Rn.resolve(Qt.join2(d,E)):d,wt=\"cp \"+rt;function At(et){function Et(Ln){Ye&&Ye(),ye||S.createDataFile(d,E,Ln,k,O,de),X&&X(),yA(wt)}var Be=!1;t.preloadPlugins.forEach(function(Ln){Be||Ln.canHandle(rt)&&(Ln.handle(et,rt,Et,function(){te&&te(),yA(wt)}),Be=!0)}),Be||Et(et)}IA(wt),typeof I==\"string\"?Browser.asyncLoad(I,function(et){At(et)},te):At(I)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return\"EM_FS_\"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:\"FILE_DATA\",saveFilesToDB:function(d,E,I){E=E||function(){},I=I||function(){};var k=S.indexedDB();try{var O=k.open(S.DB_NAME(),S.DB_VERSION)}catch(X){return I(X)}O.onupgradeneeded=function(){v(\"creating db\");var te=O.result;te.createObjectStore(S.DB_STORE_NAME)},O.onsuccess=function(){var te=O.result,ye=te.transaction([S.DB_STORE_NAME],\"readwrite\"),de=ye.objectStore(S.DB_STORE_NAME),Ye=0,rt=0,wt=d.length;function At(){rt==0?E():I()}d.forEach(function(et){var Et=de.put(S.analyzePath(et).object.contents,et);Et.onsuccess=function(){Ye++,Ye+rt==wt&&At()},Et.onerror=function(){rt++,Ye+rt==wt&&At()}}),ye.onerror=I},O.onerror=I},loadFilesFromDB:function(d,E,I){E=E||function(){},I=I||function(){};var k=S.indexedDB();try{var O=k.open(S.DB_NAME(),S.DB_VERSION)}catch(X){return I(X)}O.onupgradeneeded=I,O.onsuccess=function(){var te=O.result;try{var ye=te.transaction([S.DB_STORE_NAME],\"readonly\")}catch(et){I(et);return}var de=ye.objectStore(S.DB_STORE_NAME),Ye=0,rt=0,wt=d.length;function At(){rt==0?E():I()}d.forEach(function(et){var Et=de.get(et);Et.onsuccess=function(){S.analyzePath(et).exists&&S.unlink(et),S.createDataFile(Qt.dirname(et),Qt.basename(et),Et.result,!0,!0,!0),Ye++,Ye+rt==wt&&At()},Et.onerror=function(){rt++,Ye+rt==wt&&At()}}),ye.onerror=I},O.onerror=I}},Tt={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(d,E,I){if(E[0]===\"/\")return E;var k;if(d===-100)k=S.cwd();else{var O=S.getStream(d);if(!O)throw new S.ErrnoError(8);k=O.path}if(E.length==0){if(!I)throw new S.ErrnoError(44);return k}return Qt.join2(k,E)},doStat:function(d,E,I){try{var k=d(E)}catch(O){if(O&&O.node&&Qt.normalize(E)!==Qt.normalize(S.getPath(O.node)))return-54;throw O}return me[I>>2]=k.dev,me[I+4>>2]=0,me[I+8>>2]=k.ino,me[I+12>>2]=k.mode,me[I+16>>2]=k.nlink,me[I+20>>2]=k.uid,me[I+24>>2]=k.gid,me[I+28>>2]=k.rdev,me[I+32>>2]=0,oe=[k.size>>>0,(xr=k.size,+Math.abs(xr)>=1?xr>0?(Math.min(+Math.floor(xr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((xr-+(~~xr>>>0))/4294967296)>>>0:0)],me[I+40>>2]=oe[0],me[I+44>>2]=oe[1],me[I+48>>2]=4096,me[I+52>>2]=k.blocks,me[I+56>>2]=k.atime.getTime()/1e3|0,me[I+60>>2]=0,me[I+64>>2]=k.mtime.getTime()/1e3|0,me[I+68>>2]=0,me[I+72>>2]=k.ctime.getTime()/1e3|0,me[I+76>>2]=0,oe=[k.ino>>>0,(xr=k.ino,+Math.abs(xr)>=1?xr>0?(Math.min(+Math.floor(xr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((xr-+(~~xr>>>0))/4294967296)>>>0:0)],me[I+80>>2]=oe[0],me[I+84>>2]=oe[1],0},doMsync:function(d,E,I,k,O){var X=Y.slice(d,d+I);S.msync(E,X,O,I,k)},doMkdir:function(d,E){return d=Qt.normalize(d),d[d.length-1]===\"/\"&&(d=d.substr(0,d.length-1)),S.mkdir(d,E,0),0},doMknod:function(d,E,I){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return S.mknod(d,E,I),0},doReadlink:function(d,E,I){if(I<=0)return-28;var k=S.readlink(d),O=Math.min(I,Ae(k)),X=ie[E+O];return se(k,E,I+1),ie[E+O]=X,O},doAccess:function(d,E){if(E&-8)return-28;var I,k=S.lookupPath(d,{follow:!0});if(I=k.node,!I)return-44;var O=\"\";return E&4&&(O+=\"r\"),E&2&&(O+=\"w\"),E&1&&(O+=\"x\"),O&&S.nodePermissions(I,O)?-2:0},doDup:function(d,E,I){var k=S.getStream(I);return k&&S.close(k),S.open(d,E,0,I,I).fd},doReadv:function(d,E,I,k){for(var O=0,X=0;X<I;X++){var te=me[E+X*8>>2],ye=me[E+(X*8+4)>>2],de=S.read(d,ie,te,ye,k);if(de<0)return-1;if(O+=de,de<ye)break}return O},doWritev:function(d,E,I,k){for(var O=0,X=0;X<I;X++){var te=me[E+X*8>>2],ye=me[E+(X*8+4)>>2],de=S.write(d,ie,te,ye,k);if(de<0)return-1;O+=de}return O},varargs:void 0,get:function(){Tt.varargs+=4;var d=me[Tt.varargs-4>>2];return d},getStr:function(d){var E=Pe(d);return E},getStreamFromFD:function(d){var E=S.getStream(d);if(!E)throw new S.ErrnoError(8);return E},get64:function(d,E){return d}};function Ng(d,E){try{return d=Tt.getStr(d),S.chmod(d,E),0}catch(I){return(typeof S>\"u\"||!(I instanceof S.ErrnoError))&&Br(I),-I.errno}}function Xl(d){return me[Ft()>>2]=d,d}function Wp(d,E,I){Tt.varargs=I;try{var k=Tt.getStreamFromFD(d);switch(E){case 0:{var O=Tt.get();if(O<0)return-28;var X;return X=S.open(k.path,k.flags,0,O),X.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var O=Tt.get();return k.flags|=O,0}case 12:{var O=Tt.get(),te=0;return he[O+te>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Xl(28),-1;default:return-28}}catch(ye){return(typeof S>\"u\"||!(ye instanceof S.ErrnoError))&&Br(ye),-ye.errno}}function zp(d,E){try{var I=Tt.getStreamFromFD(d);return Tt.doStat(S.stat,I.path,E)}catch(k){return(typeof S>\"u\"||!(k instanceof S.ErrnoError))&&Br(k),-k.errno}}function Vp(d,E,I){Tt.varargs=I;try{var k=Tt.getStreamFromFD(d);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var O=Tt.get();return me[O>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var O=Tt.get();return S.ioctl(k,E,O)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:Br(\"bad ioctl syscall \"+E)}}catch(X){return(typeof S>\"u\"||!(X instanceof S.ErrnoError))&&Br(X),-X.errno}}function Xp(d,E,I){Tt.varargs=I;try{var k=Tt.getStr(d),O=I?Tt.get():0,X=S.open(k,E,O);return X.fd}catch(te){return(typeof S>\"u\"||!(te instanceof S.ErrnoError))&&Br(te),-te.errno}}function _p(d,E){try{return d=Tt.getStr(d),E=Tt.getStr(E),S.rename(d,E),0}catch(I){return(typeof S>\"u\"||!(I instanceof S.ErrnoError))&&Br(I),-I.errno}}function G(d){try{return d=Tt.getStr(d),S.rmdir(d),0}catch(E){return(typeof S>\"u\"||!(E instanceof S.ErrnoError))&&Br(E),-E.errno}}function yt(d,E){try{return d=Tt.getStr(d),Tt.doStat(S.stat,d,E)}catch(I){return(typeof S>\"u\"||!(I instanceof S.ErrnoError))&&Br(I),-I.errno}}function wA(d){try{return d=Tt.getStr(d),S.unlink(d),0}catch(E){return(typeof S>\"u\"||!(E instanceof S.ErrnoError))&&Br(E),-E.errno}}function Wi(d,E,I){Y.copyWithin(d,E,E+I)}function _l(d){try{return A.grow(d-Ge.byteLength+65535>>>16),Kr(A.buffer),1}catch{}}function We(d){var E=Y.length;d=d>>>0;var I=2147483648;if(d>I)return!1;for(var k=1;k<=4;k*=2){var O=E*(1+.2/k);O=Math.min(O,d+100663296);var X=Math.min(I,le(Math.max(d,O),65536)),te=_l(X);if(te)return!0}return!1}function da(d){try{var E=Tt.getStreamFromFD(d);return S.close(E),0}catch(I){return(typeof S>\"u\"||!(I instanceof S.ErrnoError))&&Br(I),I.errno}}function Lg(d,E){try{var I=Tt.getStreamFromFD(d),k=I.tty?2:S.isDir(I.mode)?3:S.isLink(I.mode)?7:4;return ie[E>>0]=k,0}catch(O){return(typeof S>\"u\"||!(O instanceof S.ErrnoError))&&Br(O),O.errno}}function lI(d,E,I,k){try{var O=Tt.getStreamFromFD(d),X=Tt.doReadv(O,E,I);return me[k>>2]=X,0}catch(te){return(typeof S>\"u\"||!(te instanceof S.ErrnoError))&&Br(te),te.errno}}function Zp(d,E,I,k,O){try{var X=Tt.getStreamFromFD(d),te=4294967296,ye=I*te+(E>>>0),de=9007199254740992;return ye<=-de||ye>=de?-61:(S.llseek(X,ye,k),oe=[X.position>>>0,(xr=X.position,+Math.abs(xr)>=1?xr>0?(Math.min(+Math.floor(xr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((xr-+(~~xr>>>0))/4294967296)>>>0:0)],me[O>>2]=oe[0],me[O+4>>2]=oe[1],X.getdents&&ye===0&&k===0&&(X.getdents=null),0)}catch(Ye){return(typeof S>\"u\"||!(Ye instanceof S.ErrnoError))&&Br(Ye),Ye.errno}}function cI(d,E,I,k){try{var O=Tt.getStreamFromFD(d),X=Tt.doWritev(O,E,I);return me[k>>2]=X,0}catch(te){return(typeof S>\"u\"||!(te instanceof S.ErrnoError))&&Br(te),te.errno}}function ar(d){$(d)}function Fn(d){var E=Date.now()/1e3|0;return d&&(me[d>>2]=E),E}function Zl(){if(Zl.called)return;Zl.called=!0;var d=new Date().getFullYear(),E=new Date(d,0,1),I=new Date(d,6,1),k=E.getTimezoneOffset(),O=I.getTimezoneOffset(),X=Math.max(k,O);me[TS()>>2]=X*60,me[LS()>>2]=Number(k!=O);function te(wt){var At=wt.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return At?At[1]:\"GMT\"}var ye=te(E),de=te(I),Ye=Qe(ye),rt=Qe(de);O<k?(me[Gg()>>2]=Ye,me[Gg()+4>>2]=rt):(me[Gg()>>2]=rt,me[Gg()+4>>2]=Ye)}function $p(d){Zl();var E=Date.UTC(me[d+20>>2]+1900,me[d+16>>2],me[d+12>>2],me[d+8>>2],me[d+4>>2],me[d>>2],0),I=new Date(E);me[d+24>>2]=I.getUTCDay();var k=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),O=(I.getTime()-k)/(1e3*60*60*24)|0;return me[d+28>>2]=O,I.getTime()/1e3|0}var Ms=function(d,E,I,k){d||(d=this),this.parent=d,this.mount=d.mount,this.mounted=null,this.id=S.nextInode++,this.name=E,this.mode=I,this.node_ops={},this.stream_ops={},this.rdev=k},Ca=365,cn=146;if(Object.defineProperties(Ms.prototype,{read:{get:function(){return(this.mode&Ca)===Ca},set:function(d){d?this.mode|=Ca:this.mode&=~Ca}},write:{get:function(){return(this.mode&cn)===cn},set:function(d){d?this.mode|=cn:this.mode&=~cn}},isFolder:{get:function(){return S.isDir(this.mode)}},isDevice:{get:function(){return S.isChrdev(this.mode)}}}),S.FSNode=Ms,S.staticInit(),g){var De=ZV,Tg=J(\"path\");at.staticInit()}if(g){var $l=function(d){return function(){try{return d.apply(this,arguments)}catch(E){throw E.code?new S.ErrnoError(yo[E.code]):E}}},Ks=Object.assign({},S);for(var ec in ln)S[ec]=$l(ln[ec])}else throw new Error(\"NODERAWFS is currently only supported on Node.js environment.\");function BA(d,E,I){var k=I>0?I:Ae(d)+1,O=new Array(k),X=Te(d,O,0,O.length);return E&&(O.length=X),O}var Og=typeof atob==\"function\"?atob:function(d){var E=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",I=\"\",k,O,X,te,ye,de,Ye,rt=0;d=d.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do te=E.indexOf(d.charAt(rt++)),ye=E.indexOf(d.charAt(rt++)),de=E.indexOf(d.charAt(rt++)),Ye=E.indexOf(d.charAt(rt++)),k=te<<2|ye>>4,O=(ye&15)<<4|de>>2,X=(de&3)<<6|Ye,I=I+String.fromCharCode(k),de!==64&&(I=I+String.fromCharCode(O)),Ye!==64&&(I=I+String.fromCharCode(X));while(rt<d.length);return I};function Mg(d){if(typeof g==\"boolean\"&&g){var E;try{E=Buffer.from(d,\"base64\")}catch{E=new Buffer(d,\"base64\")}return new Uint8Array(E.buffer,E.byteOffset,E.byteLength)}try{for(var I=Og(d),k=new Uint8Array(I.length),O=0;O<I.length;++O)k[O]=I.charCodeAt(O);return k}catch{throw new Error(\"Converting base64 string to bytes failed.\")}}function ma(d){if(!!kg(d))return Mg(d.slice(zl.length))}var Ea={s:Fg,p:Ng,e:Wp,k:zp,o:Vp,q:Xp,i:_p,r:G,c:yt,h:wA,l:Wi,m:We,f:da,j:Lg,g:lI,n:Zp,d:cI,a:ar,b:Fn,t:$p},$e=Jp(),wo=t.___wasm_call_ctors=$e.v,QA=t._zip_ext_count_symlinks=$e.w,tc=t._zip_file_get_external_attributes=$e.x,Us=t._zipstruct_stat=$e.y,rc=t._zipstruct_statS=$e.z,uI=t._zipstruct_stat_name=$e.A,ed=t._zipstruct_stat_index=$e.B,Kg=t._zipstruct_stat_size=$e.C,td=t._zipstruct_stat_mtime=$e.D,gI=t._zipstruct_stat_crc=$e.E,ic=t._zipstruct_error=$e.F,fI=t._zipstruct_errorS=$e.G,Ug=t._zipstruct_error_code_zip=$e.H,bA=t._zipstruct_stat_comp_size=$e.I,Fr=t._zipstruct_stat_comp_method=$e.J,hI=t._zip_close=$e.K,Hs=t._zip_delete=$e.L,Gs=t._zip_dir_add=$e.M,Hg=t._zip_discard=$e.N,SA=t._zip_error_init_with_code=$e.O,R=t._zip_get_error=$e.P,q=t._zip_file_get_error=$e.Q,pe=t._zip_error_strerror=$e.R,Ne=t._zip_fclose=$e.S,xe=t._zip_file_add=$e.T,qe=t._free=$e.U,dt=t._malloc=$e.V,Ft=t.___errno_location=$e.W,Nn=t._zip_source_error=$e.X,bS=t._zip_source_seek=$e.Y,s1=t._zip_file_set_external_attributes=$e.Z,o1=t._zip_file_set_mtime=$e._,SS=t._zip_fopen=$e.$,a1=t._zip_fopen_index=$e.aa,A1=t._zip_fread=$e.ba,vS=t._zip_get_name=$e.ca,l1=t._zip_get_num_entries=$e.da,c1=t._zip_source_read=$e.ea,xS=t._zip_name_locate=$e.fa,u1=t._zip_open=$e.ga,g1=t._zip_open_from_source=$e.ha,PS=t._zip_set_file_compression=$e.ia,f1=t._zip_source_buffer=$e.ja,h1=t._zip_source_buffer_create=$e.ka,p1=t._zip_source_close=$e.la,d1=t._zip_source_free=$e.ma,DS=t._zip_source_keep=$e.na,kS=t._zip_source_open=$e.oa,RS=t._zip_source_set_mtime=$e.qa,FS=t._zip_source_tell=$e.ra,NS=t._zip_stat=$e.sa,C1=t._zip_stat_index=$e.ta,Gg=t.__get_tzname=$e.ua,LS=t.__get_daylight=$e.va,TS=t.__get_timezone=$e.wa,pI=t.stackSave=$e.xa,dI=t.stackRestore=$e.ya,Q=t.stackAlloc=$e.za;t.cwrap=ue,t.getValue=Z;var Re;pa=function d(){Re||vA(),Re||(pa=d)};function vA(d){if(d=d||a,Zn>0||(dr(),Zn>0))return;function E(){Re||(Re=!0,t.calledRun=!0,!ae&&(Bi(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),_n()))}t.setStatus?(t.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){t.setStatus(\"\")},1),E()},1)):E()}if(t.run=vA,t.preInit)for(typeof t.preInit==\"function\"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return vA(),e}}();typeof WB==\"object\"&&typeof IF==\"object\"?IF.exports=EF:typeof define==\"function\"&&define.amd?define([],function(){return EF}):typeof WB==\"object\"&&(WB.createModule=EF)});var B9=y((dot,w9)=>{function GRe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t<i;)n[t]=e(r[t],t,r);return n}w9.exports=GRe});var ws=y((Cot,Q9)=>{var YRe=Array.isArray;Q9.exports=YRe});var D9=y((mot,P9)=>{var b9=Jc(),jRe=B9(),qRe=ws(),JRe=FC(),WRe=1/0,S9=b9?b9.prototype:void 0,v9=S9?S9.toString:void 0;function x9(r){if(typeof r==\"string\")return r;if(qRe(r))return jRe(r,x9)+\"\";if(JRe(r))return v9?v9.call(r):\"\";var e=r+\"\";return e==\"0\"&&1/r==-WRe?\"-0\":e}P9.exports=x9});var uh=y((Eot,k9)=>{var zRe=D9();function VRe(r){return r==null?\"\":zRe(r)}k9.exports=VRe});var xF=y((Iot,R9)=>{function XRe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i<n;)s[i]=r[i+e];return s}R9.exports=XRe});var N9=y((yot,F9)=>{var _Re=xF();function ZRe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:_Re(r,e,t)}F9.exports=ZRe});var PF=y((wot,L9)=>{var $Re=\"\\\\ud800-\\\\udfff\",eFe=\"\\\\u0300-\\\\u036f\",tFe=\"\\\\ufe20-\\\\ufe2f\",rFe=\"\\\\u20d0-\\\\u20ff\",iFe=eFe+tFe+rFe,nFe=\"\\\\ufe0e\\\\ufe0f\",sFe=\"\\\\u200d\",oFe=RegExp(\"[\"+sFe+$Re+iFe+nFe+\"]\");function aFe(r){return oFe.test(r)}L9.exports=aFe});var O9=y((Bot,T9)=>{function AFe(r){return r.split(\"\")}T9.exports=AFe});var q9=y((Qot,j9)=>{var M9=\"\\\\ud800-\\\\udfff\",lFe=\"\\\\u0300-\\\\u036f\",cFe=\"\\\\ufe20-\\\\ufe2f\",uFe=\"\\\\u20d0-\\\\u20ff\",gFe=lFe+cFe+uFe,fFe=\"\\\\ufe0e\\\\ufe0f\",hFe=\"[\"+M9+\"]\",DF=\"[\"+gFe+\"]\",kF=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",pFe=\"(?:\"+DF+\"|\"+kF+\")\",K9=\"[^\"+M9+\"]\",U9=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",H9=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",dFe=\"\\\\u200d\",G9=pFe+\"?\",Y9=\"[\"+fFe+\"]?\",CFe=\"(?:\"+dFe+\"(?:\"+[K9,U9,H9].join(\"|\")+\")\"+Y9+G9+\")*\",mFe=Y9+G9+CFe,EFe=\"(?:\"+[K9+DF+\"?\",DF,U9,H9,hFe].join(\"|\")+\")\",IFe=RegExp(kF+\"(?=\"+kF+\")|\"+EFe+mFe,\"g\");function yFe(r){return r.match(IFe)||[]}j9.exports=yFe});var W9=y((bot,J9)=>{var wFe=O9(),BFe=PF(),QFe=q9();function bFe(r){return BFe(r)?QFe(r):wFe(r)}J9.exports=bFe});var V9=y((Sot,z9)=>{var SFe=N9(),vFe=PF(),xFe=W9(),PFe=uh();function DFe(r){return function(e){e=PFe(e);var t=vFe(e)?xFe(e):void 0,i=t?t[0]:e.charAt(0),n=t?SFe(t,1).join(\"\"):e.slice(1);return i[r]()+n}}z9.exports=DFe});var _9=y((vot,X9)=>{var kFe=V9(),RFe=kFe(\"toUpperCase\");X9.exports=RFe});var r0=y((xot,Z9)=>{var FFe=uh(),NFe=_9();function LFe(r){return NFe(FFe(r).toLowerCase())}Z9.exports=LFe});var $9=y((Pot,i0)=>{function TFe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,f=12,h=13,p=14,C=15,w=16,B=17,v=0,D=1,L=2,H=3,j=4;function $(A,ae){return 55296<=A.charCodeAt(ae)&&A.charCodeAt(ae)<=56319&&56320<=A.charCodeAt(ae+1)&&A.charCodeAt(ae+1)<=57343}function V(A,ae){ae===void 0&&(ae=0);var ge=A.charCodeAt(ae);if(55296<=ge&&ge<=56319&&ae<A.length-1){var _=ge,T=A.charCodeAt(ae+1);return 56320<=T&&T<=57343?(_-55296)*1024+(T-56320)+65536:_}if(56320<=ge&&ge<=57343&&ae>=1){var _=A.charCodeAt(ae-1),T=ge;return 55296<=_&&_<=56319?(_-55296)*1024+(T-56320)+65536:T}return ge}function W(A,ae,ge){var _=[A].concat(ae).concat([ge]),T=_[_.length-2],N=ge,ue=_.lastIndexOf(p);if(ue>1&&_.slice(1,ue).every(function(Pe){return Pe==i})&&[i,h,B].indexOf(A)==-1)return L;var we=_.lastIndexOf(n);if(we>0&&_.slice(1,we).every(function(Pe){return Pe==n})&&[f,n].indexOf(T)==-1)return _.filter(function(Pe){return Pe==n}).length%2==1?H:j;if(T==r&&N==e)return v;if(T==t||T==r||T==e)return N==p&&ae.every(function(Pe){return Pe==i})?L:D;if(N==t||N==r||N==e)return D;if(T==o&&(N==o||N==a||N==c||N==u))return v;if((T==c||T==a)&&(N==a||N==l))return v;if((T==u||T==l)&&N==l)return v;if(N==i||N==C)return v;if(N==s)return v;if(T==f)return v;var Le=_.indexOf(i)!=-1?_.lastIndexOf(i)-1:_.length-2;return[h,B].indexOf(_[Le])!=-1&&_.slice(Le+1,-1).every(function(Pe){return Pe==i})&&N==p||T==C&&[w,B].indexOf(N)!=-1?v:ae.indexOf(n)!=-1?L:T==n&&N==n?v:D}this.nextBreak=function(A,ae){if(ae===void 0&&(ae=0),ae<0)return 0;if(ae>=A.length-1)return A.length;for(var ge=Z(V(A,ae)),_=[],T=ae+1;T<A.length;T++)if(!$(A,T-1)){var N=Z(V(A,T));if(W(ge,_,N))return T;_.push(N)}return A.length},this.splitGraphemes=function(A){for(var ae=[],ge=0,_;(_=this.nextBreak(A,ge))<A.length;)ae.push(A.slice(ge,_)),ge=_;return ge<A.length&&ae.push(A.slice(ge)),ae},this.iterateGraphemes=function(A){var ae=0,ge={next:function(){var _,T;return(T=this.nextBreak(A,ae))<A.length?(_=A.slice(ae,T),ae=T,{value:_,done:!1}):ae<A.length?(_=A.slice(ae),ae=A.length,{value:_,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<\"u\"&&Symbol.iterator&&(ge[Symbol.iterator]=function(){return ge}),ge},this.countGraphemes=function(A){for(var ae=0,ge=0,_;(_=this.nextBreak(A,ge))<A.length;)ge=_,ae++;return ge<A.length&&ae++,ae};function Z(A){return 1536<=A&&A<=1541||A==1757||A==1807||A==2274||A==3406||A==69821||70082<=A&&A<=70083||A==72250||72326<=A&&A<=72329||A==73030?f:A==13?r:A==10?e:0<=A&&A<=9||11<=A&&A<=12||14<=A&&A<=31||127<=A&&A<=159||A==173||A==1564||A==6158||A==8203||8206<=A&&A<=8207||A==8232||A==8233||8234<=A&&A<=8238||8288<=A&&A<=8292||A==8293||8294<=A&&A<=8303||55296<=A&&A<=57343||A==65279||65520<=A&&A<=65528||65529<=A&&A<=65531||113824<=A&&A<=113827||119155<=A&&A<=119162||A==917504||A==917505||917506<=A&&A<=917535||917632<=A&&A<=917759||918e3<=A&&A<=921599?t:768<=A&&A<=879||1155<=A&&A<=1159||1160<=A&&A<=1161||1425<=A&&A<=1469||A==1471||1473<=A&&A<=1474||1476<=A&&A<=1477||A==1479||1552<=A&&A<=1562||1611<=A&&A<=1631||A==1648||1750<=A&&A<=1756||1759<=A&&A<=1764||1767<=A&&A<=1768||1770<=A&&A<=1773||A==1809||1840<=A&&A<=1866||1958<=A&&A<=1968||2027<=A&&A<=2035||2070<=A&&A<=2073||2075<=A&&A<=2083||2085<=A&&A<=2087||2089<=A&&A<=2093||2137<=A&&A<=2139||2260<=A&&A<=2273||2275<=A&&A<=2306||A==2362||A==2364||2369<=A&&A<=2376||A==2381||2385<=A&&A<=2391||2402<=A&&A<=2403||A==2433||A==2492||A==2494||2497<=A&&A<=2500||A==2509||A==2519||2530<=A&&A<=2531||2561<=A&&A<=2562||A==2620||2625<=A&&A<=2626||2631<=A&&A<=2632||2635<=A&&A<=2637||A==2641||2672<=A&&A<=2673||A==2677||2689<=A&&A<=2690||A==2748||2753<=A&&A<=2757||2759<=A&&A<=2760||A==2765||2786<=A&&A<=2787||2810<=A&&A<=2815||A==2817||A==2876||A==2878||A==2879||2881<=A&&A<=2884||A==2893||A==2902||A==2903||2914<=A&&A<=2915||A==2946||A==3006||A==3008||A==3021||A==3031||A==3072||3134<=A&&A<=3136||3142<=A&&A<=3144||3146<=A&&A<=3149||3157<=A&&A<=3158||3170<=A&&A<=3171||A==3201||A==3260||A==3263||A==3266||A==3270||3276<=A&&A<=3277||3285<=A&&A<=3286||3298<=A&&A<=3299||3328<=A&&A<=3329||3387<=A&&A<=3388||A==3390||3393<=A&&A<=3396||A==3405||A==3415||3426<=A&&A<=3427||A==3530||A==3535||3538<=A&&A<=3540||A==3542||A==3551||A==3633||3636<=A&&A<=3642||3655<=A&&A<=3662||A==3761||3764<=A&&A<=3769||3771<=A&&A<=3772||3784<=A&&A<=3789||3864<=A&&A<=3865||A==3893||A==3895||A==3897||3953<=A&&A<=3966||3968<=A&&A<=3972||3974<=A&&A<=3975||3981<=A&&A<=3991||3993<=A&&A<=4028||A==4038||4141<=A&&A<=4144||4146<=A&&A<=4151||4153<=A&&A<=4154||4157<=A&&A<=4158||4184<=A&&A<=4185||4190<=A&&A<=4192||4209<=A&&A<=4212||A==4226||4229<=A&&A<=4230||A==4237||A==4253||4957<=A&&A<=4959||5906<=A&&A<=5908||5938<=A&&A<=5940||5970<=A&&A<=5971||6002<=A&&A<=6003||6068<=A&&A<=6069||6071<=A&&A<=6077||A==6086||6089<=A&&A<=6099||A==6109||6155<=A&&A<=6157||6277<=A&&A<=6278||A==6313||6432<=A&&A<=6434||6439<=A&&A<=6440||A==6450||6457<=A&&A<=6459||6679<=A&&A<=6680||A==6683||A==6742||6744<=A&&A<=6750||A==6752||A==6754||6757<=A&&A<=6764||6771<=A&&A<=6780||A==6783||6832<=A&&A<=6845||A==6846||6912<=A&&A<=6915||A==6964||6966<=A&&A<=6970||A==6972||A==6978||7019<=A&&A<=7027||7040<=A&&A<=7041||7074<=A&&A<=7077||7080<=A&&A<=7081||7083<=A&&A<=7085||A==7142||7144<=A&&A<=7145||A==7149||7151<=A&&A<=7153||7212<=A&&A<=7219||7222<=A&&A<=7223||7376<=A&&A<=7378||7380<=A&&A<=7392||7394<=A&&A<=7400||A==7405||A==7412||7416<=A&&A<=7417||7616<=A&&A<=7673||7675<=A&&A<=7679||A==8204||8400<=A&&A<=8412||8413<=A&&A<=8416||A==8417||8418<=A&&A<=8420||8421<=A&&A<=8432||11503<=A&&A<=11505||A==11647||11744<=A&&A<=11775||12330<=A&&A<=12333||12334<=A&&A<=12335||12441<=A&&A<=12442||A==42607||42608<=A&&A<=42610||42612<=A&&A<=42621||42654<=A&&A<=42655||42736<=A&&A<=42737||A==43010||A==43014||A==43019||43045<=A&&A<=43046||43204<=A&&A<=43205||43232<=A&&A<=43249||43302<=A&&A<=43309||43335<=A&&A<=43345||43392<=A&&A<=43394||A==43443||43446<=A&&A<=43449||A==43452||A==43493||43561<=A&&A<=43566||43569<=A&&A<=43570||43573<=A&&A<=43574||A==43587||A==43596||A==43644||A==43696||43698<=A&&A<=43700||43703<=A&&A<=43704||43710<=A&&A<=43711||A==43713||43756<=A&&A<=43757||A==43766||A==44005||A==44008||A==44013||A==64286||65024<=A&&A<=65039||65056<=A&&A<=65071||65438<=A&&A<=65439||A==66045||A==66272||66422<=A&&A<=66426||68097<=A&&A<=68099||68101<=A&&A<=68102||68108<=A&&A<=68111||68152<=A&&A<=68154||A==68159||68325<=A&&A<=68326||A==69633||69688<=A&&A<=69702||69759<=A&&A<=69761||69811<=A&&A<=69814||69817<=A&&A<=69818||69888<=A&&A<=69890||69927<=A&&A<=69931||69933<=A&&A<=69940||A==70003||70016<=A&&A<=70017||70070<=A&&A<=70078||70090<=A&&A<=70092||70191<=A&&A<=70193||A==70196||70198<=A&&A<=70199||A==70206||A==70367||70371<=A&&A<=70378||70400<=A&&A<=70401||A==70460||A==70462||A==70464||A==70487||70502<=A&&A<=70508||70512<=A&&A<=70516||70712<=A&&A<=70719||70722<=A&&A<=70724||A==70726||A==70832||70835<=A&&A<=70840||A==70842||A==70845||70847<=A&&A<=70848||70850<=A&&A<=70851||A==71087||71090<=A&&A<=71093||71100<=A&&A<=71101||71103<=A&&A<=71104||71132<=A&&A<=71133||71219<=A&&A<=71226||A==71229||71231<=A&&A<=71232||A==71339||A==71341||71344<=A&&A<=71349||A==71351||71453<=A&&A<=71455||71458<=A&&A<=71461||71463<=A&&A<=71467||72193<=A&&A<=72198||72201<=A&&A<=72202||72243<=A&&A<=72248||72251<=A&&A<=72254||A==72263||72273<=A&&A<=72278||72281<=A&&A<=72283||72330<=A&&A<=72342||72344<=A&&A<=72345||72752<=A&&A<=72758||72760<=A&&A<=72765||A==72767||72850<=A&&A<=72871||72874<=A&&A<=72880||72882<=A&&A<=72883||72885<=A&&A<=72886||73009<=A&&A<=73014||A==73018||73020<=A&&A<=73021||73023<=A&&A<=73029||A==73031||92912<=A&&A<=92916||92976<=A&&A<=92982||94095<=A&&A<=94098||113821<=A&&A<=113822||A==119141||119143<=A&&A<=119145||119150<=A&&A<=119154||119163<=A&&A<=119170||119173<=A&&A<=119179||119210<=A&&A<=119213||119362<=A&&A<=119364||121344<=A&&A<=121398||121403<=A&&A<=121452||A==121461||A==121476||121499<=A&&A<=121503||121505<=A&&A<=121519||122880<=A&&A<=122886||122888<=A&&A<=122904||122907<=A&&A<=122913||122915<=A&&A<=122916||122918<=A&&A<=122922||125136<=A&&A<=125142||125252<=A&&A<=125258||917536<=A&&A<=917631||917760<=A&&A<=917999?i:127462<=A&&A<=127487?n:A==2307||A==2363||2366<=A&&A<=2368||2377<=A&&A<=2380||2382<=A&&A<=2383||2434<=A&&A<=2435||2495<=A&&A<=2496||2503<=A&&A<=2504||2507<=A&&A<=2508||A==2563||2622<=A&&A<=2624||A==2691||2750<=A&&A<=2752||A==2761||2763<=A&&A<=2764||2818<=A&&A<=2819||A==2880||2887<=A&&A<=2888||2891<=A&&A<=2892||A==3007||3009<=A&&A<=3010||3014<=A&&A<=3016||3018<=A&&A<=3020||3073<=A&&A<=3075||3137<=A&&A<=3140||3202<=A&&A<=3203||A==3262||3264<=A&&A<=3265||3267<=A&&A<=3268||3271<=A&&A<=3272||3274<=A&&A<=3275||3330<=A&&A<=3331||3391<=A&&A<=3392||3398<=A&&A<=3400||3402<=A&&A<=3404||3458<=A&&A<=3459||3536<=A&&A<=3537||3544<=A&&A<=3550||3570<=A&&A<=3571||A==3635||A==3763||3902<=A&&A<=3903||A==3967||A==4145||4155<=A&&A<=4156||4182<=A&&A<=4183||A==4228||A==6070||6078<=A&&A<=6085||6087<=A&&A<=6088||6435<=A&&A<=6438||6441<=A&&A<=6443||6448<=A&&A<=6449||6451<=A&&A<=6456||6681<=A&&A<=6682||A==6741||A==6743||6765<=A&&A<=6770||A==6916||A==6965||A==6971||6973<=A&&A<=6977||6979<=A&&A<=6980||A==7042||A==7073||7078<=A&&A<=7079||A==7082||A==7143||7146<=A&&A<=7148||A==7150||7154<=A&&A<=7155||7204<=A&&A<=7211||7220<=A&&A<=7221||A==7393||7410<=A&&A<=7411||A==7415||43043<=A&&A<=43044||A==43047||43136<=A&&A<=43137||43188<=A&&A<=43203||43346<=A&&A<=43347||A==43395||43444<=A&&A<=43445||43450<=A&&A<=43451||43453<=A&&A<=43456||43567<=A&&A<=43568||43571<=A&&A<=43572||A==43597||A==43755||43758<=A&&A<=43759||A==43765||44003<=A&&A<=44004||44006<=A&&A<=44007||44009<=A&&A<=44010||A==44012||A==69632||A==69634||A==69762||69808<=A&&A<=69810||69815<=A&&A<=69816||A==69932||A==70018||70067<=A&&A<=70069||70079<=A&&A<=70080||70188<=A&&A<=70190||70194<=A&&A<=70195||A==70197||70368<=A&&A<=70370||70402<=A&&A<=70403||A==70463||70465<=A&&A<=70468||70471<=A&&A<=70472||70475<=A&&A<=70477||70498<=A&&A<=70499||70709<=A&&A<=70711||70720<=A&&A<=70721||A==70725||70833<=A&&A<=70834||A==70841||70843<=A&&A<=70844||A==70846||A==70849||71088<=A&&A<=71089||71096<=A&&A<=71099||A==71102||71216<=A&&A<=71218||71227<=A&&A<=71228||A==71230||A==71340||71342<=A&&A<=71343||A==71350||71456<=A&&A<=71457||A==71462||72199<=A&&A<=72200||A==72249||72279<=A&&A<=72280||A==72343||A==72751||A==72766||A==72873||A==72881||A==72884||94033<=A&&A<=94078||A==119142||A==119149?s:4352<=A&&A<=4447||43360<=A&&A<=43388?o:4448<=A&&A<=4519||55216<=A&&A<=55238?a:4520<=A&&A<=4607||55243<=A&&A<=55291?l:A==44032||A==44060||A==44088||A==44116||A==44144||A==44172||A==44200||A==44228||A==44256||A==44284||A==44312||A==44340||A==44368||A==44396||A==44424||A==44452||A==44480||A==44508||A==44536||A==44564||A==44592||A==44620||A==44648||A==44676||A==44704||A==44732||A==44760||A==44788||A==44816||A==44844||A==44872||A==44900||A==44928||A==44956||A==44984||A==45012||A==45040||A==45068||A==45096||A==45124||A==45152||A==45180||A==45208||A==45236||A==45264||A==45292||A==45320||A==45348||A==45376||A==45404||A==45432||A==45460||A==45488||A==45516||A==45544||A==45572||A==45600||A==45628||A==45656||A==45684||A==45712||A==45740||A==45768||A==45796||A==45824||A==45852||A==45880||A==45908||A==45936||A==45964||A==45992||A==46020||A==46048||A==46076||A==46104||A==46132||A==46160||A==46188||A==46216||A==46244||A==46272||A==46300||A==46328||A==46356||A==46384||A==46412||A==46440||A==46468||A==46496||A==46524||A==46552||A==46580||A==46608||A==46636||A==46664||A==46692||A==46720||A==46748||A==46776||A==46804||A==46832||A==46860||A==46888||A==46916||A==46944||A==46972||A==47e3||A==47028||A==47056||A==47084||A==47112||A==47140||A==47168||A==47196||A==47224||A==47252||A==47280||A==47308||A==47336||A==47364||A==47392||A==47420||A==47448||A==47476||A==47504||A==47532||A==47560||A==47588||A==47616||A==47644||A==47672||A==47700||A==47728||A==47756||A==47784||A==47812||A==47840||A==47868||A==47896||A==47924||A==47952||A==47980||A==48008||A==48036||A==48064||A==48092||A==48120||A==48148||A==48176||A==48204||A==48232||A==48260||A==48288||A==48316||A==48344||A==48372||A==48400||A==48428||A==48456||A==48484||A==48512||A==48540||A==48568||A==48596||A==48624||A==48652||A==48680||A==48708||A==48736||A==48764||A==48792||A==48820||A==48848||A==48876||A==48904||A==48932||A==48960||A==48988||A==49016||A==49044||A==49072||A==49100||A==49128||A==49156||A==49184||A==49212||A==49240||A==49268||A==49296||A==49324||A==49352||A==49380||A==49408||A==49436||A==49464||A==49492||A==49520||A==49548||A==49576||A==49604||A==49632||A==49660||A==49688||A==49716||A==49744||A==49772||A==49800||A==49828||A==49856||A==49884||A==49912||A==49940||A==49968||A==49996||A==50024||A==50052||A==50080||A==50108||A==50136||A==50164||A==50192||A==50220||A==50248||A==50276||A==50304||A==50332||A==50360||A==50388||A==50416||A==50444||A==50472||A==50500||A==50528||A==50556||A==50584||A==50612||A==50640||A==50668||A==50696||A==50724||A==50752||A==50780||A==50808||A==50836||A==50864||A==50892||A==50920||A==50948||A==50976||A==51004||A==51032||A==51060||A==51088||A==51116||A==51144||A==51172||A==51200||A==51228||A==51256||A==51284||A==51312||A==51340||A==51368||A==51396||A==51424||A==51452||A==51480||A==51508||A==51536||A==51564||A==51592||A==51620||A==51648||A==51676||A==51704||A==51732||A==51760||A==51788||A==51816||A==51844||A==51872||A==51900||A==51928||A==51956||A==51984||A==52012||A==52040||A==52068||A==52096||A==52124||A==52152||A==52180||A==52208||A==52236||A==52264||A==52292||A==52320||A==52348||A==52376||A==52404||A==52432||A==52460||A==52488||A==52516||A==52544||A==52572||A==52600||A==52628||A==52656||A==52684||A==52712||A==52740||A==52768||A==52796||A==52824||A==52852||A==52880||A==52908||A==52936||A==52964||A==52992||A==53020||A==53048||A==53076||A==53104||A==53132||A==53160||A==53188||A==53216||A==53244||A==53272||A==53300||A==53328||A==53356||A==53384||A==53412||A==53440||A==53468||A==53496||A==53524||A==53552||A==53580||A==53608||A==53636||A==53664||A==53692||A==53720||A==53748||A==53776||A==53804||A==53832||A==53860||A==53888||A==53916||A==53944||A==53972||A==54e3||A==54028||A==54056||A==54084||A==54112||A==54140||A==54168||A==54196||A==54224||A==54252||A==54280||A==54308||A==54336||A==54364||A==54392||A==54420||A==54448||A==54476||A==54504||A==54532||A==54560||A==54588||A==54616||A==54644||A==54672||A==54700||A==54728||A==54756||A==54784||A==54812||A==54840||A==54868||A==54896||A==54924||A==54952||A==54980||A==55008||A==55036||A==55064||A==55092||A==55120||A==55148||A==55176?c:44033<=A&&A<=44059||44061<=A&&A<=44087||44089<=A&&A<=44115||44117<=A&&A<=44143||44145<=A&&A<=44171||44173<=A&&A<=44199||44201<=A&&A<=44227||44229<=A&&A<=44255||44257<=A&&A<=44283||44285<=A&&A<=44311||44313<=A&&A<=44339||44341<=A&&A<=44367||44369<=A&&A<=44395||44397<=A&&A<=44423||44425<=A&&A<=44451||44453<=A&&A<=44479||44481<=A&&A<=44507||44509<=A&&A<=44535||44537<=A&&A<=44563||44565<=A&&A<=44591||44593<=A&&A<=44619||44621<=A&&A<=44647||44649<=A&&A<=44675||44677<=A&&A<=44703||44705<=A&&A<=44731||44733<=A&&A<=44759||44761<=A&&A<=44787||44789<=A&&A<=44815||44817<=A&&A<=44843||44845<=A&&A<=44871||44873<=A&&A<=44899||44901<=A&&A<=44927||44929<=A&&A<=44955||44957<=A&&A<=44983||44985<=A&&A<=45011||45013<=A&&A<=45039||45041<=A&&A<=45067||45069<=A&&A<=45095||45097<=A&&A<=45123||45125<=A&&A<=45151||45153<=A&&A<=45179||45181<=A&&A<=45207||45209<=A&&A<=45235||45237<=A&&A<=45263||45265<=A&&A<=45291||45293<=A&&A<=45319||45321<=A&&A<=45347||45349<=A&&A<=45375||45377<=A&&A<=45403||45405<=A&&A<=45431||45433<=A&&A<=45459||45461<=A&&A<=45487||45489<=A&&A<=45515||45517<=A&&A<=45543||45545<=A&&A<=45571||45573<=A&&A<=45599||45601<=A&&A<=45627||45629<=A&&A<=45655||45657<=A&&A<=45683||45685<=A&&A<=45711||45713<=A&&A<=45739||45741<=A&&A<=45767||45769<=A&&A<=45795||45797<=A&&A<=45823||45825<=A&&A<=45851||45853<=A&&A<=45879||45881<=A&&A<=45907||45909<=A&&A<=45935||45937<=A&&A<=45963||45965<=A&&A<=45991||45993<=A&&A<=46019||46021<=A&&A<=46047||46049<=A&&A<=46075||46077<=A&&A<=46103||46105<=A&&A<=46131||46133<=A&&A<=46159||46161<=A&&A<=46187||46189<=A&&A<=46215||46217<=A&&A<=46243||46245<=A&&A<=46271||46273<=A&&A<=46299||46301<=A&&A<=46327||46329<=A&&A<=46355||46357<=A&&A<=46383||46385<=A&&A<=46411||46413<=A&&A<=46439||46441<=A&&A<=46467||46469<=A&&A<=46495||46497<=A&&A<=46523||46525<=A&&A<=46551||46553<=A&&A<=46579||46581<=A&&A<=46607||46609<=A&&A<=46635||46637<=A&&A<=46663||46665<=A&&A<=46691||46693<=A&&A<=46719||46721<=A&&A<=46747||46749<=A&&A<=46775||46777<=A&&A<=46803||46805<=A&&A<=46831||46833<=A&&A<=46859||46861<=A&&A<=46887||46889<=A&&A<=46915||46917<=A&&A<=46943||46945<=A&&A<=46971||46973<=A&&A<=46999||47001<=A&&A<=47027||47029<=A&&A<=47055||47057<=A&&A<=47083||47085<=A&&A<=47111||47113<=A&&A<=47139||47141<=A&&A<=47167||47169<=A&&A<=47195||47197<=A&&A<=47223||47225<=A&&A<=47251||47253<=A&&A<=47279||47281<=A&&A<=47307||47309<=A&&A<=47335||47337<=A&&A<=47363||47365<=A&&A<=47391||47393<=A&&A<=47419||47421<=A&&A<=47447||47449<=A&&A<=47475||47477<=A&&A<=47503||47505<=A&&A<=47531||47533<=A&&A<=47559||47561<=A&&A<=47587||47589<=A&&A<=47615||47617<=A&&A<=47643||47645<=A&&A<=47671||47673<=A&&A<=47699||47701<=A&&A<=47727||47729<=A&&A<=47755||47757<=A&&A<=47783||47785<=A&&A<=47811||47813<=A&&A<=47839||47841<=A&&A<=47867||47869<=A&&A<=47895||47897<=A&&A<=47923||47925<=A&&A<=47951||47953<=A&&A<=47979||47981<=A&&A<=48007||48009<=A&&A<=48035||48037<=A&&A<=48063||48065<=A&&A<=48091||48093<=A&&A<=48119||48121<=A&&A<=48147||48149<=A&&A<=48175||48177<=A&&A<=48203||48205<=A&&A<=48231||48233<=A&&A<=48259||48261<=A&&A<=48287||48289<=A&&A<=48315||48317<=A&&A<=48343||48345<=A&&A<=48371||48373<=A&&A<=48399||48401<=A&&A<=48427||48429<=A&&A<=48455||48457<=A&&A<=48483||48485<=A&&A<=48511||48513<=A&&A<=48539||48541<=A&&A<=48567||48569<=A&&A<=48595||48597<=A&&A<=48623||48625<=A&&A<=48651||48653<=A&&A<=48679||48681<=A&&A<=48707||48709<=A&&A<=48735||48737<=A&&A<=48763||48765<=A&&A<=48791||48793<=A&&A<=48819||48821<=A&&A<=48847||48849<=A&&A<=48875||48877<=A&&A<=48903||48905<=A&&A<=48931||48933<=A&&A<=48959||48961<=A&&A<=48987||48989<=A&&A<=49015||49017<=A&&A<=49043||49045<=A&&A<=49071||49073<=A&&A<=49099||49101<=A&&A<=49127||49129<=A&&A<=49155||49157<=A&&A<=49183||49185<=A&&A<=49211||49213<=A&&A<=49239||49241<=A&&A<=49267||49269<=A&&A<=49295||49297<=A&&A<=49323||49325<=A&&A<=49351||49353<=A&&A<=49379||49381<=A&&A<=49407||49409<=A&&A<=49435||49437<=A&&A<=49463||49465<=A&&A<=49491||49493<=A&&A<=49519||49521<=A&&A<=49547||49549<=A&&A<=49575||49577<=A&&A<=49603||49605<=A&&A<=49631||49633<=A&&A<=49659||49661<=A&&A<=49687||49689<=A&&A<=49715||49717<=A&&A<=49743||49745<=A&&A<=49771||49773<=A&&A<=49799||49801<=A&&A<=49827||49829<=A&&A<=49855||49857<=A&&A<=49883||49885<=A&&A<=49911||49913<=A&&A<=49939||49941<=A&&A<=49967||49969<=A&&A<=49995||49997<=A&&A<=50023||50025<=A&&A<=50051||50053<=A&&A<=50079||50081<=A&&A<=50107||50109<=A&&A<=50135||50137<=A&&A<=50163||50165<=A&&A<=50191||50193<=A&&A<=50219||50221<=A&&A<=50247||50249<=A&&A<=50275||50277<=A&&A<=50303||50305<=A&&A<=50331||50333<=A&&A<=50359||50361<=A&&A<=50387||50389<=A&&A<=50415||50417<=A&&A<=50443||50445<=A&&A<=50471||50473<=A&&A<=50499||50501<=A&&A<=50527||50529<=A&&A<=50555||50557<=A&&A<=50583||50585<=A&&A<=50611||50613<=A&&A<=50639||50641<=A&&A<=50667||50669<=A&&A<=50695||50697<=A&&A<=50723||50725<=A&&A<=50751||50753<=A&&A<=50779||50781<=A&&A<=50807||50809<=A&&A<=50835||50837<=A&&A<=50863||50865<=A&&A<=50891||50893<=A&&A<=50919||50921<=A&&A<=50947||50949<=A&&A<=50975||50977<=A&&A<=51003||51005<=A&&A<=51031||51033<=A&&A<=51059||51061<=A&&A<=51087||51089<=A&&A<=51115||51117<=A&&A<=51143||51145<=A&&A<=51171||51173<=A&&A<=51199||51201<=A&&A<=51227||51229<=A&&A<=51255||51257<=A&&A<=51283||51285<=A&&A<=51311||51313<=A&&A<=51339||51341<=A&&A<=51367||51369<=A&&A<=51395||51397<=A&&A<=51423||51425<=A&&A<=51451||51453<=A&&A<=51479||51481<=A&&A<=51507||51509<=A&&A<=51535||51537<=A&&A<=51563||51565<=A&&A<=51591||51593<=A&&A<=51619||51621<=A&&A<=51647||51649<=A&&A<=51675||51677<=A&&A<=51703||51705<=A&&A<=51731||51733<=A&&A<=51759||51761<=A&&A<=51787||51789<=A&&A<=51815||51817<=A&&A<=51843||51845<=A&&A<=51871||51873<=A&&A<=51899||51901<=A&&A<=51927||51929<=A&&A<=51955||51957<=A&&A<=51983||51985<=A&&A<=52011||52013<=A&&A<=52039||52041<=A&&A<=52067||52069<=A&&A<=52095||52097<=A&&A<=52123||52125<=A&&A<=52151||52153<=A&&A<=52179||52181<=A&&A<=52207||52209<=A&&A<=52235||52237<=A&&A<=52263||52265<=A&&A<=52291||52293<=A&&A<=52319||52321<=A&&A<=52347||52349<=A&&A<=52375||52377<=A&&A<=52403||52405<=A&&A<=52431||52433<=A&&A<=52459||52461<=A&&A<=52487||52489<=A&&A<=52515||52517<=A&&A<=52543||52545<=A&&A<=52571||52573<=A&&A<=52599||52601<=A&&A<=52627||52629<=A&&A<=52655||52657<=A&&A<=52683||52685<=A&&A<=52711||52713<=A&&A<=52739||52741<=A&&A<=52767||52769<=A&&A<=52795||52797<=A&&A<=52823||52825<=A&&A<=52851||52853<=A&&A<=52879||52881<=A&&A<=52907||52909<=A&&A<=52935||52937<=A&&A<=52963||52965<=A&&A<=52991||52993<=A&&A<=53019||53021<=A&&A<=53047||53049<=A&&A<=53075||53077<=A&&A<=53103||53105<=A&&A<=53131||53133<=A&&A<=53159||53161<=A&&A<=53187||53189<=A&&A<=53215||53217<=A&&A<=53243||53245<=A&&A<=53271||53273<=A&&A<=53299||53301<=A&&A<=53327||53329<=A&&A<=53355||53357<=A&&A<=53383||53385<=A&&A<=53411||53413<=A&&A<=53439||53441<=A&&A<=53467||53469<=A&&A<=53495||53497<=A&&A<=53523||53525<=A&&A<=53551||53553<=A&&A<=53579||53581<=A&&A<=53607||53609<=A&&A<=53635||53637<=A&&A<=53663||53665<=A&&A<=53691||53693<=A&&A<=53719||53721<=A&&A<=53747||53749<=A&&A<=53775||53777<=A&&A<=53803||53805<=A&&A<=53831||53833<=A&&A<=53859||53861<=A&&A<=53887||53889<=A&&A<=53915||53917<=A&&A<=53943||53945<=A&&A<=53971||53973<=A&&A<=53999||54001<=A&&A<=54027||54029<=A&&A<=54055||54057<=A&&A<=54083||54085<=A&&A<=54111||54113<=A&&A<=54139||54141<=A&&A<=54167||54169<=A&&A<=54195||54197<=A&&A<=54223||54225<=A&&A<=54251||54253<=A&&A<=54279||54281<=A&&A<=54307||54309<=A&&A<=54335||54337<=A&&A<=54363||54365<=A&&A<=54391||54393<=A&&A<=54419||54421<=A&&A<=54447||54449<=A&&A<=54475||54477<=A&&A<=54503||54505<=A&&A<=54531||54533<=A&&A<=54559||54561<=A&&A<=54587||54589<=A&&A<=54615||54617<=A&&A<=54643||54645<=A&&A<=54671||54673<=A&&A<=54699||54701<=A&&A<=54727||54729<=A&&A<=54755||54757<=A&&A<=54783||54785<=A&&A<=54811||54813<=A&&A<=54839||54841<=A&&A<=54867||54869<=A&&A<=54895||54897<=A&&A<=54923||54925<=A&&A<=54951||54953<=A&&A<=54979||54981<=A&&A<=55007||55009<=A&&A<=55035||55037<=A&&A<=55063||55065<=A&&A<=55091||55093<=A&&A<=55119||55121<=A&&A<=55147||55149<=A&&A<=55175||55177<=A&&A<=55203?u:A==9757||A==9977||9994<=A&&A<=9997||A==127877||127938<=A&&A<=127940||A==127943||127946<=A&&A<=127948||128066<=A&&A<=128067||128070<=A&&A<=128080||A==128110||128112<=A&&A<=128120||A==128124||128129<=A&&A<=128131||128133<=A&&A<=128135||A==128170||128372<=A&&A<=128373||A==128378||A==128400||128405<=A&&A<=128406||128581<=A&&A<=128583||128587<=A&&A<=128591||A==128675||128692<=A&&A<=128694||A==128704||A==128716||129304<=A&&A<=129308||129310<=A&&A<=129311||A==129318||129328<=A&&A<=129337||129341<=A&&A<=129342||129489<=A&&A<=129501?h:127995<=A&&A<=127999?p:A==8205?C:A==9792||A==9794||9877<=A&&A<=9878||A==9992||A==10084||A==127752||A==127806||A==127859||A==127891||A==127908||A==127912||A==127979||A==127981||A==128139||128187<=A&&A<=128188||A==128295||A==128300||A==128488||A==128640||A==128658?w:128102<=A&&A<=128105?B:g}return this}typeof i0<\"u\"&&i0.exports&&(i0.exports=TFe)});var t7=y((Dot,e7)=>{var OFe=/^(.*?)(\\x1b\\[[^m]+m|\\x1b\\]8;;.*?(\\x1b\\\\|\\u0007))/,n0;function MFe(){if(n0)return n0;if(typeof Intl.Segmenter<\"u\"){let r=new Intl.Segmenter(\"en\",{granularity:\"grapheme\"});return n0=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=$9(),e=new r;return n0=t=>e.splitGraphemes(t)}}e7.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError(\"Negative indices aren't supported by this implementation\");let i=t-e,n=\"\",s=0,o=0;for(;r.length>0;){let a=r.match(OFe)||[r,r,void 0],l=MFe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(\"\"),s+=c,o+=u,typeof a[2]<\"u\"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var gh=y((_ot,C7)=>{\"use strict\";var d7=new Map([[\"C\",\"cwd\"],[\"f\",\"file\"],[\"z\",\"gzip\"],[\"P\",\"preservePaths\"],[\"U\",\"unlink\"],[\"strip-components\",\"strip\"],[\"stripComponents\",\"strip\"],[\"keep-newer\",\"newer\"],[\"keepNewer\",\"newer\"],[\"keep-newer-files\",\"newer\"],[\"keepNewerFiles\",\"newer\"],[\"k\",\"keep\"],[\"keep-existing\",\"keep\"],[\"keepExisting\",\"keep\"],[\"m\",\"noMtime\"],[\"no-mtime\",\"noMtime\"],[\"p\",\"preserveOwner\"],[\"L\",\"follow\"],[\"h\",\"follow\"]]),Xot=C7.exports=r=>r?Object.keys(r).map(e=>[d7.has(e)?d7.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var fh=y((Zot,S7)=>{\"use strict\";var _Fe=J(\"events\"),m7=J(\"stream\"),tm=Od(),E7=J(\"string_decoder\").StringDecoder,Va=Symbol(\"EOF\"),rm=Symbol(\"maybeEmitEnd\"),al=Symbol(\"emittedEnd\"),c0=Symbol(\"emittingEnd\"),u0=Symbol(\"closed\"),I7=Symbol(\"read\"),LF=Symbol(\"flush\"),y7=Symbol(\"flushChunk\"),vn=Symbol(\"encoding\"),Xa=Symbol(\"decoder\"),g0=Symbol(\"flowing\"),im=Symbol(\"paused\"),nm=Symbol(\"resume\"),sn=Symbol(\"bufferLength\"),w7=Symbol(\"bufferPush\"),TF=Symbol(\"bufferShift\"),Gi=Symbol(\"objectMode\"),Yi=Symbol(\"destroyed\"),Q7=global._MP_NO_ITERATOR_SYMBOLS_!==\"1\",ZFe=Q7&&Symbol.asyncIterator||Symbol(\"asyncIterator not implemented\"),$Fe=Q7&&Symbol.iterator||Symbol(\"iterator not implemented\"),B7=r=>r===\"end\"||r===\"finish\"||r===\"prefinish\",eNe=r=>r instanceof ArrayBuffer||typeof r==\"object\"&&r.constructor&&r.constructor.name===\"ArrayBuffer\"&&r.byteLength>=0,tNe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r);S7.exports=class b7 extends m7{constructor(e){super(),this[g0]=!1,this[im]=!1,this.pipes=new tm,this.buffer=new tm,this[Gi]=e&&e.objectMode||!1,this[Gi]?this[vn]=null:this[vn]=e&&e.encoding||null,this[vn]===\"buffer\"&&(this[vn]=null),this[Xa]=this[vn]?new E7(this[vn]):null,this[Va]=!1,this[al]=!1,this[c0]=!1,this[u0]=!1,this.writable=!0,this.readable=!0,this[sn]=0,this[Yi]=!1}get bufferLength(){return this[sn]}get encoding(){return this[vn]}set encoding(e){if(this[Gi])throw new Error(\"cannot set encoding in objectMode\");if(this[vn]&&e!==this[vn]&&(this[Xa]&&this[Xa].lastNeed||this[sn]))throw new Error(\"cannot change encoding\");this[vn]!==e&&(this[Xa]=e?new E7(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[vn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Gi]}set objectMode(e){this[Gi]=this[Gi]||!!e}write(e,t,i){if(this[Va])throw new Error(\"write after end\");return this[Yi]?(this.emit(\"error\",Object.assign(new Error(\"Cannot call write after a stream was destroyed\"),{code:\"ERR_STREAM_DESTROYED\"})),!0):(typeof t==\"function\"&&(i=t,t=\"utf8\"),t||(t=\"utf8\"),!this[Gi]&&!Buffer.isBuffer(e)&&(tNe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):eNe(e)?e=Buffer.from(e):typeof e!=\"string\"&&(this.objectMode=!0)),!this.objectMode&&!e.length?(this[sn]!==0&&this.emit(\"readable\"),i&&i(),this.flowing):(typeof e==\"string\"&&!this[Gi]&&!(t===this[vn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[vn]&&(e=this[Xa].write(e)),this.flowing?(this[sn]!==0&&this[LF](!0),this.emit(\"data\",e)):this[w7](e),this[sn]!==0&&this.emit(\"readable\"),i&&i(),this.flowing))}read(e){if(this[Yi])return null;try{return this[sn]===0||e===0||e>this[sn]?null:(this[Gi]&&(e=null),this.buffer.length>1&&!this[Gi]&&(this.encoding?this.buffer=new tm([Array.from(this.buffer).join(\"\")]):this.buffer=new tm([Buffer.concat(Array.from(this.buffer),this[sn])])),this[I7](e||null,this.buffer.head.value))}finally{this[rm]()}}[I7](e,t){return e===t.length||e===null?this[TF]():(this.buffer.head.value=t.slice(e),t=t.slice(0,e),this[sn]-=e),this.emit(\"data\",t),!this.buffer.length&&!this[Va]&&this.emit(\"drain\"),t}end(e,t,i){return typeof e==\"function\"&&(i=e,e=null),typeof t==\"function\"&&(i=t,t=\"utf8\"),e&&this.write(e,t),i&&this.once(\"end\",i),this[Va]=!0,this.writable=!1,(this.flowing||!this[im])&&this[rm](),this}[nm](){this[Yi]||(this[im]=!1,this[g0]=!0,this.emit(\"resume\"),this.buffer.length?this[LF]():this[Va]?this[rm]():this.emit(\"drain\"))}resume(){return this[nm]()}pause(){this[g0]=!1,this[im]=!0}get destroyed(){return this[Yi]}get flowing(){return this[g0]}get paused(){return this[im]}[w7](e){return this[Gi]?this[sn]+=1:this[sn]+=e.length,this.buffer.push(e)}[TF](){return this.buffer.length&&(this[Gi]?this[sn]-=1:this[sn]-=this.buffer.head.value.length),this.buffer.shift()}[LF](e){do;while(this[y7](this[TF]()));!e&&!this.buffer.length&&!this[Va]&&this.emit(\"drain\")}[y7](e){return e?(this.emit(\"data\",e),this.flowing):!1}pipe(e,t){if(this[Yi])return;let i=this[al];t=t||{},e===process.stdout||e===process.stderr?t.end=!1:t.end=t.end!==!1;let n={dest:e,opts:t,ondrain:s=>this[nm]()};return this.pipes.push(n),e.on(\"drain\",n.ondrain),this[nm](),i&&n.opts.end&&n.dest.end(),e}addListener(e,t){return this.on(e,t)}on(e,t){try{return super.on(e,t)}finally{e===\"data\"&&!this.pipes.length&&!this.flowing?this[nm]():B7(e)&&this[al]&&(super.emit(e),this.removeAllListeners(e))}}get emittedEnd(){return this[al]}[rm](){!this[c0]&&!this[al]&&!this[Yi]&&this.buffer.length===0&&this[Va]&&(this[c0]=!0,this.emit(\"end\"),this.emit(\"prefinish\"),this.emit(\"finish\"),this[u0]&&this.emit(\"close\"),this[c0]=!1)}emit(e,t){if(e!==\"error\"&&e!==\"close\"&&e!==Yi&&this[Yi])return;if(e===\"data\"){if(!t)return;this.pipes.length&&this.pipes.forEach(n=>n.dest.write(t)===!1&&this.pause())}else if(e===\"end\"){if(this[al]===!0)return;this[al]=!0,this.readable=!1,this[Xa]&&(t=this[Xa].end(),t&&(this.pipes.forEach(n=>n.dest.write(t)),super.emit(\"data\",t))),this.pipes.forEach(n=>{n.dest.removeListener(\"drain\",n.ondrain),n.opts.end&&n.dest.end()})}else if(e===\"close\"&&(this[u0]=!0,!this[al]&&!this[Yi]))return;let i=new Array(arguments.length);if(i[0]=e,i[1]=t,arguments.length>2)for(let n=2;n<arguments.length;n++)i[n]=arguments[n];try{return super.emit.apply(this,i)}finally{B7(e)?this.removeAllListeners(e):this[rm]()}}collect(){let e=[];this[Gi]||(e.dataLength=0);let t=this.promise();return this.on(\"data\",i=>{e.push(i),this[Gi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Gi]?Promise.reject(new Error(\"cannot concat in objectMode\")):this.collect().then(e=>this[Gi]?Promise.reject(new Error(\"cannot concat in objectMode\")):this[vn]?e.join(\"\"):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(Yi,()=>t(new Error(\"stream destroyed\"))),this.on(\"end\",()=>e()),this.on(\"error\",i=>t(i))})}[ZFe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[Va])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener(\"data\",o),this.removeListener(\"end\",a),n(c)},o=c=>{this.removeListener(\"error\",s),this.removeListener(\"end\",a),this.pause(),i({value:c,done:!!this[Va]})},a=()=>{this.removeListener(\"error\",s),this.removeListener(\"data\",o),i({done:!0})},l=()=>s(new Error(\"stream destroyed\"));return new Promise((c,u)=>{n=u,i=c,this.once(Yi,l),this.once(\"error\",s),this.once(\"end\",a),this.once(\"data\",o)})}}}[$Fe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[Yi]?(e?this.emit(\"error\",e):this.emit(Yi),this):(this[Yi]=!0,this.buffer=new tm,this[sn]=0,typeof this.close==\"function\"&&!this[u0]&&this.close(),e?this.emit(\"error\",e):this.emit(Yi),this)}static isStream(e){return!!e&&(e instanceof b7||e instanceof m7||e instanceof _Fe&&(typeof e.pipe==\"function\"||typeof e.write==\"function\"&&typeof e.end==\"function\"))}}});var x7=y(($ot,v7)=>{var rNe=J(\"zlib\").constants||{ZLIB_VERNUM:4736};v7.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},rNe))});var ZF=y(Wn=>{\"use strict\";var HF=J(\"assert\"),Al=J(\"buffer\").Buffer,k7=J(\"zlib\"),$c=Wn.constants=x7(),iNe=fh(),P7=Al.concat,eu=Symbol(\"_superWrite\"),ph=class extends Error{constructor(e){super(\"zlib: \"+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code=\"ZLIB_ERROR\"),this.message=\"zlib: \"+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return\"ZlibError\"}},nNe=Symbol(\"opts\"),sm=Symbol(\"flushFlag\"),D7=Symbol(\"finishFlushFlag\"),_F=Symbol(\"fullFlushFlag\"),ur=Symbol(\"handle\"),f0=Symbol(\"onError\"),hh=Symbol(\"sawError\"),OF=Symbol(\"level\"),MF=Symbol(\"strategy\"),KF=Symbol(\"ended\"),eat=Symbol(\"_defaultFullFlush\"),h0=class extends iNe{constructor(e,t){if(!e||typeof e!=\"object\")throw new TypeError(\"invalid options for ZlibBase constructor\");super(e),this[hh]=!1,this[KF]=!1,this[nNe]=e,this[sm]=e.flush,this[D7]=e.finishFlush;try{this[ur]=new k7[t](e)}catch(i){throw new ph(i)}this[f0]=i=>{this[hh]||(this[hh]=!0,this.close(),this.emit(\"error\",i))},this[ur].on(\"error\",i=>this[f0](new ph(i))),this.once(\"end\",()=>this.close)}close(){this[ur]&&(this[ur].close(),this[ur]=null,this.emit(\"close\"))}reset(){if(!this[hh])return HF(this[ur],\"zlib binding closed\"),this[ur].reset()}flush(e){this.ended||(typeof e!=\"number\"&&(e=this[_F]),this.write(Object.assign(Al.alloc(0),{[sm]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[D7]),this[KF]=!0,super.end(null,null,i)}get ended(){return this[KF]}write(e,t,i){if(typeof t==\"function\"&&(i=t,t=\"utf8\"),typeof e==\"string\"&&(e=Al.from(e,t)),this[hh])return;HF(this[ur],\"zlib binding closed\");let n=this[ur]._handle,s=n.close;n.close=()=>{};let o=this[ur].close;this[ur].close=()=>{},Al.concat=c=>c;let a;try{let c=typeof e[sm]==\"number\"?e[sm]:this[sm];a=this[ur]._processChunk(e,c),Al.concat=P7}catch(c){Al.concat=P7,this[f0](new ph(c))}finally{this[ur]&&(this[ur]._handle=n,n.close=s,this[ur].close=o,this[ur].removeAllListeners(\"error\"))}this[ur]&&this[ur].on(\"error\",c=>this[f0](new ph(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[eu](Al.from(a[0]));for(let c=1;c<a.length;c++)l=this[eu](a[c])}else l=this[eu](Al.from(a));return i&&i(),l}[eu](e){return super.write(e)}},_a=class extends h0{constructor(e,t){e=e||{},e.flush=e.flush||$c.Z_NO_FLUSH,e.finishFlush=e.finishFlush||$c.Z_FINISH,super(e,t),this[_F]=$c.Z_FULL_FLUSH,this[OF]=e.level,this[MF]=e.strategy}params(e,t){if(!this[hh]){if(!this[ur])throw new Error(\"cannot switch params when binding is closed\");if(!this[ur].params)throw new Error(\"not supported in this implementation\");if(this[OF]!==e||this[MF]!==t){this.flush($c.Z_SYNC_FLUSH),HF(this[ur],\"zlib binding closed\");let i=this[ur].flush;this[ur].flush=(n,s)=>{this.flush(n),s()};try{this[ur].params(e,t)}finally{this[ur].flush=i}this[ur]&&(this[OF]=e,this[MF]=t)}}}},GF=class extends _a{constructor(e){super(e,\"Deflate\")}},YF=class extends _a{constructor(e){super(e,\"Inflate\")}},UF=Symbol(\"_portable\"),jF=class extends _a{constructor(e){super(e,\"Gzip\"),this[UF]=e&&!!e.portable}[eu](e){return this[UF]?(this[UF]=!1,e[9]=255,super[eu](e)):super[eu](e)}},qF=class extends _a{constructor(e){super(e,\"Gunzip\")}},JF=class extends _a{constructor(e){super(e,\"DeflateRaw\")}},WF=class extends _a{constructor(e){super(e,\"InflateRaw\")}},zF=class extends _a{constructor(e){super(e,\"Unzip\")}},p0=class extends h0{constructor(e,t){e=e||{},e.flush=e.flush||$c.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||$c.BROTLI_OPERATION_FINISH,super(e,t),this[_F]=$c.BROTLI_OPERATION_FLUSH}},VF=class extends p0{constructor(e){super(e,\"BrotliCompress\")}},XF=class extends p0{constructor(e){super(e,\"BrotliDecompress\")}};Wn.Deflate=GF;Wn.Inflate=YF;Wn.Gzip=jF;Wn.Gunzip=qF;Wn.DeflateRaw=JF;Wn.InflateRaw=WF;Wn.Unzip=zF;typeof k7.BrotliCompress==\"function\"?(Wn.BrotliCompress=VF,Wn.BrotliDecompress=XF):Wn.BrotliCompress=Wn.BrotliDecompress=class{constructor(){throw new Error(\"Brotli is not supported in this version of Node.js\")}}});var om=y(d0=>{\"use strict\";d0.name=new Map([[\"0\",\"File\"],[\"\",\"OldFile\"],[\"1\",\"Link\"],[\"2\",\"SymbolicLink\"],[\"3\",\"CharacterDevice\"],[\"4\",\"BlockDevice\"],[\"5\",\"Directory\"],[\"6\",\"FIFO\"],[\"7\",\"ContiguousFile\"],[\"g\",\"GlobalExtendedHeader\"],[\"x\",\"ExtendedHeader\"],[\"A\",\"SolarisACL\"],[\"D\",\"GNUDumpDir\"],[\"I\",\"Inode\"],[\"K\",\"NextFileHasLongLinkpath\"],[\"L\",\"NextFileHasLongPath\"],[\"M\",\"ContinuationFile\"],[\"N\",\"OldGnuLongPath\"],[\"S\",\"SparseFile\"],[\"V\",\"TapeVolumeHeader\"],[\"X\",\"OldExtendedHeader\"]]);d0.code=new Map(Array.from(d0.name).map(r=>[r[1],r[0]]))});var am=y((oat,R7)=>{\"use strict\";var nat=om(),sNe=fh(),$F=Symbol(\"slurp\");R7.exports=class extends sNe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case\"File\":case\"OldFile\":case\"Link\":case\"SymbolicLink\":case\"CharacterDevice\":case\"BlockDevice\":case\"Directory\":case\"FIFO\":case\"ContiguousFile\":case\"GNUDumpDir\":break;case\"NextFileHasLongLinkpath\":case\"NextFileHasLongPath\":case\"OldGnuLongPath\":case\"GlobalExtendedHeader\":case\"ExtendedHeader\":case\"OldExtendedHeader\":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,t&&this[$F](t),i&&this[$F](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error(\"writing more to entry than is appropriate\");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[$F](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i===\"path\")&&(this[i]=e[i])}}});var L7=y(eN=>{\"use strict\";var aat=eN.encode=(r,e)=>{if(Number.isSafeInteger(r))r<0?aNe(r,e):oNe(r,e);else throw Error(\"cannot encode number outside of javascript safe integer range\");return e},oNe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},aNe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=F7(n):n===0?e[i-1]=0:(t=!0,e[i-1]=N7(n))}},Aat=eN.parse=r=>{var e=r[r.length-1],t=r[0],i;if(t===128)i=lNe(r.slice(1,r.length));else if(t===255)i=ANe(r);else throw Error(\"invalid base256 encoding\");if(!Number.isSafeInteger(i))throw Error(\"parsed number outside of javascript safe integer range\");return i},ANe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=F7(s):s===0?o=s:(i=!0,o=N7(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},lNe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},F7=r=>(255^r)&255,N7=r=>(255^r)+1&255});var Ch=y((cat,O7)=>{\"use strict\";var tN=om(),dh=J(\"path\").posix,T7=L7(),rN=Symbol(\"slurp\"),zn=Symbol(\"type\"),sN=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[zn]=\"0\",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error(\"need 512 bytes for header\");if(this.path=tu(e,t,100),this.mode=ll(e,t+100,8),this.uid=ll(e,t+108,8),this.gid=ll(e,t+116,8),this.size=ll(e,t+124,12),this.mtime=iN(e,t+136,12),this.cksum=ll(e,t+148,12),this[rN](i),this[rN](n,!0),this[zn]=tu(e,t+156,1),this[zn]===\"\"&&(this[zn]=\"0\"),this[zn]===\"0\"&&this.path.substr(-1)===\"/\"&&(this[zn]=\"5\"),this[zn]===\"5\"&&(this.size=0),this.linkpath=tu(e,t+157,100),e.slice(t+257,t+265).toString()===\"ustar\\x0000\")if(this.uname=tu(e,t+265,32),this.gname=tu(e,t+297,32),this.devmaj=ll(e,t+329,8),this.devmin=ll(e,t+337,8),e[t+475]!==0){let o=tu(e,t+345,155);this.path=o+\"/\"+this.path}else{let o=tu(e,t+345,130);o&&(this.path=o+\"/\"+this.path),this.atime=iN(e,t+476,12),this.ctime=iN(e,t+488,12)}let s=8*32;for(let o=t;o<t+148;o++)s+=e[o];for(let o=t+156;o<t+512;o++)s+=e[o];this.cksumValid=s===this.cksum,this.cksum===null&&s===8*32&&(this.nullBlock=!0)}[rN](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i===\"path\")&&(this[i]=e[i])}encode(e,t){if(e||(e=this.block=Buffer.alloc(512),t=0),t||(t=0),!(e.length>=t+512))throw new Error(\"need 512 bytes for header\");let i=this.ctime||this.atime?130:155,n=cNe(this.path||\"\",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=ru(e,t,100,s)||this.needPax,this.needPax=cl(e,t+100,8,this.mode)||this.needPax,this.needPax=cl(e,t+108,8,this.uid)||this.needPax,this.needPax=cl(e,t+116,8,this.gid)||this.needPax,this.needPax=cl(e,t+124,12,this.size)||this.needPax,this.needPax=nN(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[zn].charCodeAt(0),this.needPax=ru(e,t+157,100,this.linkpath)||this.needPax,e.write(\"ustar\\x0000\",t+257,8),this.needPax=ru(e,t+265,32,this.uname)||this.needPax,this.needPax=ru(e,t+297,32,this.gname)||this.needPax,this.needPax=cl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=cl(e,t+337,8,this.devmin)||this.needPax,this.needPax=ru(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=ru(e,t+345,155,o)||this.needPax:(this.needPax=ru(e,t+345,130,o)||this.needPax,this.needPax=nN(e,t+476,12,this.atime)||this.needPax,this.needPax=nN(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l<t+148;l++)a+=e[l];for(let l=t+156;l<t+512;l++)a+=e[l];return this.cksum=a,cl(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let t in e)e[t]!==null&&e[t]!==void 0&&(this[t]=e[t])}get type(){return tN.name.get(this[zn])||this[zn]}get typeKey(){return this[zn]}set type(e){tN.code.has(e)?this[zn]=tN.code.get(e):this[zn]=e}},cNe=(r,e)=>{let i=r,n=\"\",s,o=dh.parse(r).root||\".\";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=dh.dirname(i),i=dh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=dh.join(dh.basename(n),i),n=dh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),\"\",!0])}return s},tu=(r,e,t)=>r.slice(e,e+t).toString(\"utf8\").replace(/\\0.*/,\"\"),iN=(r,e,t)=>uNe(ll(r,e,t)),uNe=r=>r===null?null:new Date(r*1e3),ll=(r,e,t)=>r[e]&128?T7.parse(r.slice(e,e+t)):fNe(r,e,t),gNe=r=>isNaN(r)?null:r,fNe=(r,e,t)=>gNe(parseInt(r.slice(e,e+t).toString(\"utf8\").replace(/\\0.*$/,\"\").trim(),8)),hNe={12:8589934591,8:2097151},cl=(r,e,t,i)=>i===null?!1:i>hNe[t]||i<0?(T7.encode(i,r.slice(e,e+t)),!0):(pNe(r,e,t,i),!1),pNe=(r,e,t,i)=>r.write(dNe(i,t),e,t,\"ascii\"),dNe=(r,e)=>CNe(Math.floor(r).toString(8),e),CNe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join(\"0\")+r+\" \")+\"\\0\",nN=(r,e,t,i)=>i===null?!1:cl(r,e,t,i.getTime()/1e3),mNe=new Array(156).join(\"\\0\"),ru=(r,e,t,i)=>i===null?!1:(r.write(i+mNe,e,t,\"utf8\"),i.length!==Buffer.byteLength(i)||i.length>t);O7.exports=sN});var C0=y((uat,M7)=>{\"use strict\";var ENe=Ch(),INe=J(\"path\"),Am=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e===\"\")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new ENe({path:(\"PaxHeader/\"+INe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?\"GlobalExtendedHeader\":\"ExtendedHeader\",linkpath:\"\",uname:this.uname||\"\",gname:this.gname||\"\",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,\"utf8\");for(let s=t+512;s<n.length;s++)n[s]=0;return n}encodeBody(){return this.encodeField(\"path\")+this.encodeField(\"ctime\")+this.encodeField(\"atime\")+this.encodeField(\"dev\")+this.encodeField(\"ino\")+this.encodeField(\"nlink\")+this.encodeField(\"charset\")+this.encodeField(\"comment\")+this.encodeField(\"gid\")+this.encodeField(\"gname\")+this.encodeField(\"linkpath\")+this.encodeField(\"mtime\")+this.encodeField(\"size\")+this.encodeField(\"uid\")+this.encodeField(\"uname\")}encodeField(e){if(this[e]===null||this[e]===void 0)return\"\";let t=this[e]instanceof Date?this[e].getTime()/1e3:this[e],i=\" \"+(e===\"dev\"||e===\"ino\"||e===\"nlink\"?\"SCHILY.\":\"\")+e+\"=\"+t+`\n`,n=Buffer.byteLength(i),s=Math.floor(Math.log(n)/Math.log(10))+1;return n+s>=Math.pow(10,s)&&(s+=1),s+n+i}};Am.parse=(r,e,t)=>new Am(yNe(wNe(r),e),t);var yNe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,wNe=r=>r.replace(/\\n$/,\"\").split(`\n`).reduce(BNe,Object.create(null)),BNe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+\" \").length);let i=e.split(\"=\"),n=i.shift().replace(/^SCHILY\\.(dev|ino|nlink)/,\"$1\");if(!n)return r;let s=i.join(\"=\");return r[n]=/^([A-Z]+\\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};M7.exports=Am});var m0=y((gat,K7)=>{\"use strict\";K7.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit(\"warn\",i.tarCode,t,i)):t instanceof Error?this.emit(\"error\",Object.assign(t,i)):this.emit(\"error\",Object.assign(new Error(`${e}: ${t}`),i))}}});var aN=y((hat,U7)=>{\"use strict\";var E0=[\"|\",\"<\",\">\",\"?\",\":\"],oN=E0.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),QNe=new Map(E0.map((r,e)=>[r,oN[e]])),bNe=new Map(oN.map((r,e)=>[r,E0[e]]));U7.exports={encode:r=>E0.reduce((e,t)=>e.split(t).join(QNe.get(t)),r),decode:r=>oN.reduce((e,t)=>e.split(t).join(bNe.get(t)),r)}});var G7=y((pat,H7)=>{\"use strict\";H7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var pN=y((Iat,Z7)=>{\"use strict\";var W7=fh(),z7=C0(),V7=Ch(),dat=am(),Xo=J(\"fs\"),mh=J(\"path\"),Cat=om(),SNe=16*1024*1024,Y7=Symbol(\"process\"),j7=Symbol(\"file\"),q7=Symbol(\"directory\"),AN=Symbol(\"symlink\"),J7=Symbol(\"hardlink\"),lm=Symbol(\"header\"),I0=Symbol(\"read\"),lN=Symbol(\"lstat\"),y0=Symbol(\"onlstat\"),cN=Symbol(\"onread\"),uN=Symbol(\"onreadlink\"),gN=Symbol(\"openfile\"),fN=Symbol(\"onopenfile\"),iu=Symbol(\"close\"),w0=Symbol(\"mode\"),X7=m0(),vNe=aN(),_7=G7(),B0=X7(class extends W7{constructor(e,t){if(t=t||{},super(t),typeof e!=\"string\")throw new TypeError(\"path is required\");this.path=e,this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||\"\",this.maxReadSize=t.maxReadSize||SNe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=t.cwd||process.cwd(),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,typeof t.onwarn==\"function\"&&this.on(\"warn\",t.onwarn);let i=!1;if(!this.preservePaths&&mh.win32.isAbsolute(e)){let n=mh.win32.parse(e);this.path=e.substr(n.root.length),i=n.root}this.win32=!!t.win32||process.platform===\"win32\",this.win32&&(this.path=vNe.decode(this.path.replace(/\\\\/g,\"/\")),e=e.replace(/\\\\/g,\"/\")),this.absolute=t.absolute||mh.resolve(this.cwd,e),this.path===\"\"&&(this.path=\"./\"),i&&this.warn(\"TAR_ENTRY_INFO\",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[y0](this.statCache.get(this.absolute)):this[lN]()}[lN](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit(\"error\",e);this[y0](t)})}[y0](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=PNe(e),this.emit(\"stat\",e),this[Y7]()}[Y7](){switch(this.type){case\"File\":return this[j7]();case\"Directory\":return this[q7]();case\"SymbolicLink\":return this[AN]();default:return this.end()}}[w0](e){return _7(e,this.type===\"Directory\",this.portable)}[lm](){this.type===\"Directory\"&&this.portable&&(this.noMtime=!0),this.header=new V7({path:this.path,linkpath:this.linkpath,mode:this[w0](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:\"\",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new z7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[q7](){this.path.substr(-1)!==\"/\"&&(this.path+=\"/\"),this.stat.size=0,this[lm](),this.end()}[AN](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit(\"error\",e);this[uN](t)})}[uN](e){this.linkpath=e.replace(/\\\\/g,\"/\"),this[lm](),this.end()}[J7](e){this.type=\"Link\",this.linkpath=mh.relative(this.cwd,e).replace(/\\\\/g,\"/\"),this.stat.size=0,this[lm](),this.end()}[j7](){if(this.stat.nlink>1){let e=this.stat.dev+\":\"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[J7](t)}this.linkCache.set(e,this.absolute)}if(this[lm](),this.stat.size===0)return this.end();this[gN]()}[gN](){Xo.open(this.absolute,\"r\",(e,t)=>{if(e)return this.emit(\"error\",e);this[fN](t)})}[fN](e){let t=512*Math.ceil(this.stat.size/512),i=Math.min(t,this.maxReadSize),n=Buffer.allocUnsafe(i);this[I0](e,n,0,n.length,0,this.stat.size,t)}[I0](e,t,i,n,s,o,a){Xo.read(e,t,i,n,s,(l,c)=>{if(l)return this[iu](e,()=>this.emit(\"error\",l));this[cN](e,t,i,n,s,o,a,c)})}[iu](e,t){Xo.close(e,t)}[cN](e,t,i,n,s,o,a,l){if(l<=0&&o>0){let u=new Error(\"encountered unexpected EOF\");return u.path=this.absolute,u.syscall=\"read\",u.code=\"EOF\",this[iu](e,()=>this.emit(\"error\",u))}if(l>o){let u=new Error(\"did not encounter expected EOF\");return u.path=this.absolute,u.syscall=\"read\",u.code=\"EOF\",this[iu](e,()=>this.emit(\"error\",u))}if(l===o)for(let u=l;u<n&&l<a;u++)t[u+i]=0,l++,o++;let c=i===0&&l===t.length?t:t.slice(i,i+l);if(o-=l,a-=l,s+=l,i+=l,this.write(c),!o)return a&&this.write(Buffer.alloc(a)),this[iu](e,u=>u?this.emit(\"error\",u):this.end());i>=n&&(t=Buffer.allocUnsafe(n),i=0),n=t.length-i,this[I0](e,t,i,n,s,o,a)}}),hN=class extends B0{constructor(e,t){super(e,t)}[lN](){this[y0](Xo.lstatSync(this.absolute))}[AN](){this[uN](Xo.readlinkSync(this.absolute))}[gN](){this[fN](Xo.openSync(this.absolute,\"r\"))}[I0](e,t,i,n,s,o,a){let l=!0;try{let c=Xo.readSync(e,t,i,n,s);this[cN](e,t,i,n,s,o,a,c),l=!1}finally{if(l)try{this[iu](e,()=>{})}catch{}}}[iu](e,t){Xo.closeSync(e),t()}},xNe=X7(class extends W7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type===\"Directory\"&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[w0](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,typeof t.onwarn==\"function\"&&this.on(\"warn\",t.onwarn);let i=!1;if(mh.isAbsolute(this.path)&&!this.preservePaths){let n=mh.parse(this.path);i=n.root,this.path=this.path.substr(n.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new V7({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn(\"TAR_ENTRY_INFO\",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new z7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[w0](e){return _7(e,this.type===\"Directory\",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error(\"writing more to entry than is appropriate\");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&this.write(Buffer.alloc(this.blockRemain)),super.end()}});B0.Sync=hN;B0.Tar=xNe;var PNe=r=>r.isFile()?\"File\":r.isDirectory()?\"Directory\":r.isSymbolicLink()?\"SymbolicLink\":\"Unsupported\";Z7.exports=B0});var R0=y((wat,sX)=>{\"use strict\";var D0=class{constructor(e,t){this.path=e||\"./\",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},DNe=fh(),kNe=ZF(),RNe=am(),BN=pN(),FNe=BN.Sync,NNe=BN.Tar,LNe=Od(),$7=Buffer.alloc(1024),S0=Symbol(\"onStat\"),Q0=Symbol(\"ended\"),_o=Symbol(\"queue\"),Eh=Symbol(\"current\"),nu=Symbol(\"process\"),b0=Symbol(\"processing\"),eX=Symbol(\"processJob\"),Zo=Symbol(\"jobs\"),dN=Symbol(\"jobDone\"),v0=Symbol(\"addFSEntry\"),tX=Symbol(\"addTarEntry\"),EN=Symbol(\"stat\"),IN=Symbol(\"readdir\"),x0=Symbol(\"onreaddir\"),P0=Symbol(\"pipe\"),rX=Symbol(\"entry\"),CN=Symbol(\"entryOpt\"),yN=Symbol(\"writeEntryClass\"),nX=Symbol(\"write\"),mN=Symbol(\"ondrain\"),k0=J(\"fs\"),iX=J(\"path\"),TNe=m0(),QN=TNe(class extends DNe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||\"\",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||\"\").replace(/(\\\\|\\/)+$/,\"\"),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[yN]=BN,typeof e.onwarn==\"function\"&&this.on(\"warn\",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!=\"object\"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new kNe.Gzip(e.gzip),this.zip.on(\"data\",t=>super.write(t)),this.zip.on(\"end\",t=>super.end()),this.zip.on(\"drain\",t=>this[mN]()),this.on(\"resume\",t=>this.zip.resume())):this.on(\"drain\",this[mN]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter==\"function\"?e.filter:t=>!0,this[_o]=new LNe,this[Zo]=0,this.jobs=+e.jobs||4,this[b0]=!1,this[Q0]=!1}[nX](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[Q0]=!0,this[nu](),this}write(e){if(this[Q0])throw new Error(\"write after end\");return e instanceof RNe?this[tX](e):this[v0](e),this.flowing}[tX](e){let t=iX.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+\"/\"+e.path.replace(/^\\.(\\/+|$)/,\"\")),!this.filter(e.path,e))e.resume();else{let i=new D0(e.path,t,!1);i.entry=new NNe(e,this[CN](i)),i.entry.on(\"end\",n=>this[dN](i)),this[Zo]+=1,this[_o].push(i)}this[nu]()}[v0](e){let t=iX.resolve(this.cwd,e);this.prefix&&(e=this.prefix+\"/\"+e.replace(/^\\.(\\/+|$)/,\"\")),this[_o].push(new D0(e,t)),this[nu]()}[EN](e){e.pending=!0,this[Zo]+=1;let t=this.follow?\"stat\":\"lstat\";k0[t](e.absolute,(i,n)=>{e.pending=!1,this[Zo]-=1,i?this.emit(\"error\",i):this[S0](e,n)})}[S0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[nu]()}[IN](e){e.pending=!0,this[Zo]+=1,k0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[Zo]-=1,t)return this.emit(\"error\",t);this[x0](e,i)})}[x0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[nu]()}[nu](){if(!this[b0]){this[b0]=!0;for(let e=this[_o].head;e!==null&&this[Zo]<this.jobs;e=e.next)if(this[eX](e.value),e.value.ignore){let t=e.next;this[_o].removeNode(e),e.next=t}this[b0]=!1,this[Q0]&&!this[_o].length&&this[Zo]===0&&(this.zip?this.zip.end($7):(super.write($7),super.end()))}}get[Eh](){return this[_o]&&this[_o].head&&this[_o].head.value}[dN](e){this[_o].shift(),this[Zo]-=1,this[nu]()}[eX](e){if(!e.pending){if(e.entry){e===this[Eh]&&!e.piped&&this[P0](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[S0](e,this.statCache.get(e.absolute)):this[EN](e)),!!e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[x0](e,this.readdirCache.get(e.absolute)):this[IN](e),!e.readdir))){if(e.entry=this[rX](e),!e.entry){e.ignore=!0;return}e===this[Eh]&&!e.piped&&this[P0](e)}}}[CN](e){return{onwarn:(t,i,n)=>this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[rX](e){this[Zo]+=1;try{return new this[yN](e.path,this[CN](e)).on(\"end\",()=>this[dN](e)).on(\"error\",t=>this.emit(\"error\",t))}catch(t){this.emit(\"error\",t)}}[mN](){this[Eh]&&this[Eh].entry&&this[Eh].entry.resume()}[P0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||\"./\":e.path,o=s===\"./\"?\"\":s.replace(/\\/*$/,\"/\");this[v0](o+n)});let t=e.entry,i=this.zip;i?t.on(\"data\",n=>{i.write(n)||t.pause()}):t.on(\"data\",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),wN=class extends QN{constructor(e){super(e),this[yN]=FNe}pause(){}resume(){}[EN](e){let t=this.follow?\"statSync\":\"lstatSync\";this[S0](e,k0[t](e.absolute))}[IN](e,t){this[x0](e,k0.readdirSync(e.absolute))}[P0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||\"./\":e.path,o=s===\"./\"?\"\":s.replace(/\\/*$/,\"/\");this[v0](o+n)}),i?t.on(\"data\",n=>{i.write(n)}):t.on(\"data\",n=>{super[nX](n)})}};QN.Sync=wN;sX.exports=QN});var bh=y(um=>{\"use strict\";var ONe=fh(),MNe=J(\"events\").EventEmitter,Bs=J(\"fs\"),O0=process.binding(\"fs\"),Bat=O0.writeBuffers,KNe=O0.FSReqWrap||O0.FSReqCallback,Bh=Symbol(\"_autoClose\"),ea=Symbol(\"_close\"),cm=Symbol(\"_ended\"),rr=Symbol(\"_fd\"),oX=Symbol(\"_finished\"),au=Symbol(\"_flags\"),bN=Symbol(\"_flush\"),vN=Symbol(\"_handleChunk\"),xN=Symbol(\"_makeBuf\"),PN=Symbol(\"_mode\"),F0=Symbol(\"_needDrain\"),wh=Symbol(\"_onerror\"),Qh=Symbol(\"_onopen\"),SN=Symbol(\"_onread\"),ou=Symbol(\"_onwrite\"),gl=Symbol(\"_open\"),fl=Symbol(\"_path\"),su=Symbol(\"_pos\"),$o=Symbol(\"_queue\"),yh=Symbol(\"_read\"),aX=Symbol(\"_readSize\"),ul=Symbol(\"_reading\"),N0=Symbol(\"_remain\"),AX=Symbol(\"_size\"),L0=Symbol(\"_write\"),Ih=Symbol(\"_writing\"),T0=Symbol(\"_defaultFlag\"),M0=class extends ONe{constructor(e,t){if(t=t||{},super(t),this.writable=!1,typeof e!=\"string\")throw new TypeError(\"path must be a string\");this[rr]=typeof t.fd==\"number\"?t.fd:null,this[fl]=e,this[aX]=t.readSize||16*1024*1024,this[ul]=!1,this[AX]=typeof t.size==\"number\"?t.size:1/0,this[N0]=this[AX],this[Bh]=typeof t.autoClose==\"boolean\"?t.autoClose:!0,typeof this[rr]==\"number\"?this[yh]():this[gl]()}get fd(){return this[rr]}get path(){return this[fl]}write(){throw new TypeError(\"this is a readable stream\")}end(){throw new TypeError(\"this is a readable stream\")}[gl](){Bs.open(this[fl],\"r\",(e,t)=>this[Qh](e,t))}[Qh](e,t){e?this[wh](e):(this[rr]=t,this.emit(\"open\",t),this[yh]())}[xN](){return Buffer.allocUnsafe(Math.min(this[aX],this[N0]))}[yh](){if(!this[ul]){this[ul]=!0;let e=this[xN]();if(e.length===0)return process.nextTick(()=>this[SN](null,0,e));Bs.read(this[rr],e,0,e.length,null,(t,i,n)=>this[SN](t,i,n))}}[SN](e,t,i){this[ul]=!1,e?this[wh](e):this[vN](t,i)&&this[yh]()}[ea](){this[Bh]&&typeof this[rr]==\"number\"&&(Bs.close(this[rr],e=>this.emit(\"close\")),this[rr]=null)}[wh](e){this[ul]=!0,this[ea](),this.emit(\"error\",e)}[vN](e,t){let i=!1;return this[N0]-=e,e>0&&(i=super.write(e<t.length?t.slice(0,e):t)),(e===0||this[N0]<=0)&&(i=!1,this[ea](),super.end()),i}emit(e,t){switch(e){case\"prefinish\":case\"finish\":break;case\"drain\":typeof this[rr]==\"number\"&&this[yh]();break;default:return super.emit(e,t)}}},DN=class extends M0{[gl](){let e=!0;try{this[Qh](null,Bs.openSync(this[fl],\"r\")),e=!1}finally{e&&this[ea]()}}[yh](){let e=!0;try{if(!this[ul]){this[ul]=!0;do{let t=this[xN](),i=t.length===0?0:Bs.readSync(this[rr],t,0,t.length,null);if(!this[vN](i,t))break}while(!0);this[ul]=!1}e=!1}finally{e&&this[ea]()}}[ea](){if(this[Bh]&&typeof this[rr]==\"number\"){try{Bs.closeSync(this[rr])}catch{}this[rr]=null,this.emit(\"close\")}}},K0=class extends MNe{constructor(e,t){t=t||{},super(t),this.readable=!1,this[Ih]=!1,this[cm]=!1,this[F0]=!1,this[$o]=[],this[fl]=e,this[rr]=typeof t.fd==\"number\"?t.fd:null,this[PN]=t.mode===void 0?438:t.mode,this[su]=typeof t.start==\"number\"?t.start:null,this[Bh]=typeof t.autoClose==\"boolean\"?t.autoClose:!0;let i=this[su]!==null?\"r+\":\"w\";this[T0]=t.flags===void 0,this[au]=this[T0]?i:t.flags,this[rr]===null&&this[gl]()}get fd(){return this[rr]}get path(){return this[fl]}[wh](e){this[ea](),this[Ih]=!0,this.emit(\"error\",e)}[gl](){Bs.open(this[fl],this[au],this[PN],(e,t)=>this[Qh](e,t))}[Qh](e,t){this[T0]&&this[au]===\"r+\"&&e&&e.code===\"ENOENT\"?(this[au]=\"w\",this[gl]()):e?this[wh](e):(this[rr]=t,this.emit(\"open\",t),this[bN]())}end(e,t){e&&this.write(e,t),this[cm]=!0,!this[Ih]&&!this[$o].length&&typeof this[rr]==\"number\"&&this[ou](null,0)}write(e,t){return typeof e==\"string\"&&(e=new Buffer(e,t)),this[cm]?(this.emit(\"error\",new Error(\"write() after end()\")),!1):this[rr]===null||this[Ih]||this[$o].length?(this[$o].push(e),this[F0]=!0,!1):(this[Ih]=!0,this[L0](e),!0)}[L0](e){Bs.write(this[rr],e,0,e.length,this[su],(t,i)=>this[ou](t,i))}[ou](e,t){e?this[wh](e):(this[su]!==null&&(this[su]+=t),this[$o].length?this[bN]():(this[Ih]=!1,this[cm]&&!this[oX]?(this[oX]=!0,this[ea](),this.emit(\"finish\")):this[F0]&&(this[F0]=!1,this.emit(\"drain\"))))}[bN](){if(this[$o].length===0)this[cm]&&this[ou](null,0);else if(this[$o].length===1)this[L0](this[$o].pop());else{let e=this[$o];this[$o]=[],UNe(this[rr],e,this[su],(t,i)=>this[ou](t,i))}}[ea](){this[Bh]&&typeof this[rr]==\"number\"&&(Bs.close(this[rr],e=>this.emit(\"close\")),this[rr]=null)}},kN=class extends K0{[gl](){let e;try{e=Bs.openSync(this[fl],this[au],this[PN])}catch(t){if(this[T0]&&this[au]===\"r+\"&&t&&t.code===\"ENOENT\")return this[au]=\"w\",this[gl]();throw t}this[Qh](null,e)}[ea](){if(this[Bh]&&typeof this[rr]==\"number\"){try{Bs.closeSync(this[rr])}catch{}this[rr]=null,this.emit(\"close\")}}[L0](e){try{this[ou](null,Bs.writeSync(this[rr],e,0,e.length,this[su]))}catch(t){this[ou](t,0)}}},UNe=(r,e,t,i)=>{let n=(o,a)=>i(o,a,e),s=new KNe;s.oncomplete=n,O0.writeBuffers(r,e,t,s)};um.ReadStream=M0;um.ReadStreamSync=DN;um.WriteStream=K0;um.WriteStreamSync=kN});var hm=y((vat,pX)=>{\"use strict\";var HNe=m0(),bat=J(\"path\"),GNe=Ch(),YNe=J(\"events\"),jNe=Od(),qNe=1024*1024,JNe=am(),lX=C0(),WNe=ZF(),RN=Buffer.from([31,139]),Qs=Symbol(\"state\"),Au=Symbol(\"writeEntry\"),Za=Symbol(\"readEntry\"),FN=Symbol(\"nextEntry\"),cX=Symbol(\"processEntry\"),bs=Symbol(\"extendedHeader\"),gm=Symbol(\"globalExtendedHeader\"),hl=Symbol(\"meta\"),uX=Symbol(\"emitMeta\"),Ir=Symbol(\"buffer\"),$a=Symbol(\"queue\"),lu=Symbol(\"ended\"),gX=Symbol(\"emittedEnd\"),cu=Symbol(\"emit\"),xn=Symbol(\"unzip\"),U0=Symbol(\"consumeChunk\"),H0=Symbol(\"consumeChunkSub\"),NN=Symbol(\"consumeBody\"),fX=Symbol(\"consumeMeta\"),hX=Symbol(\"consumeHeader\"),G0=Symbol(\"consuming\"),LN=Symbol(\"bufferConcat\"),TN=Symbol(\"maybeEnd\"),fm=Symbol(\"writing\"),pl=Symbol(\"aborted\"),Y0=Symbol(\"onDone\"),uu=Symbol(\"sawValidEntry\"),j0=Symbol(\"sawNullBlock\"),q0=Symbol(\"sawEOF\"),zNe=r=>!0;pX.exports=HNe(class extends YNe{constructor(e){e=e||{},super(e),this.file=e.file||\"\",this[uu]=null,this.on(Y0,t=>{(this[Qs]===\"begin\"||this[uu]===!1)&&this.warn(\"TAR_BAD_ARCHIVE\",\"Unrecognized archive format\")}),e.ondone?this.on(Y0,e.ondone):this.on(Y0,t=>{this.emit(\"prefinish\"),this.emit(\"finish\"),this.emit(\"end\"),this.emit(\"close\")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||qNe,this.filter=typeof e.filter==\"function\"?e.filter:zNe,this.writable=!0,this.readable=!1,this[$a]=new jNe,this[Ir]=null,this[Za]=null,this[Au]=null,this[Qs]=\"begin\",this[hl]=\"\",this[bs]=null,this[gm]=null,this[lu]=!1,this[xn]=null,this[pl]=!1,this[j0]=!1,this[q0]=!1,typeof e.onwarn==\"function\"&&this.on(\"warn\",e.onwarn),typeof e.onentry==\"function\"&&this.on(\"entry\",e.onentry)}[hX](e,t){this[uu]===null&&(this[uu]=!1);let i;try{i=new GNe(e,t,this[bs],this[gm])}catch(n){return this.warn(\"TAR_ENTRY_INVALID\",n)}if(i.nullBlock)this[j0]?(this[q0]=!0,this[Qs]===\"begin\"&&(this[Qs]=\"header\"),this[cu](\"eof\")):(this[j0]=!0,this[cu](\"nullBlock\"));else if(this[j0]=!1,!i.cksumValid)this.warn(\"TAR_ENTRY_INVALID\",\"checksum failure\",{header:i});else if(!i.path)this.warn(\"TAR_ENTRY_INVALID\",\"path is required\",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn(\"TAR_ENTRY_INVALID\",\"linkpath required\",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn(\"TAR_ENTRY_INVALID\",\"linkpath forbidden\",{header:i});else{let s=this[Au]=new JNe(i,this[bs],this[gm]);if(!this[uu])if(s.remain){let o=()=>{s.invalid||(this[uu]=!0)};s.on(\"end\",o)}else this[uu]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[cu](\"ignoredEntry\",s),this[Qs]=\"ignore\",s.resume()):s.size>0&&(this[hl]=\"\",s.on(\"data\",o=>this[hl]+=o),this[Qs]=\"meta\"):(this[bs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[cu](\"ignoredEntry\",s),this[Qs]=s.remain?\"ignore\":\"header\",s.resume()):(s.remain?this[Qs]=\"body\":(this[Qs]=\"header\",s.end()),this[Za]?this[$a].push(s):(this[$a].push(s),this[FN]())))}}}[cX](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[Za]=e,this.emit(\"entry\",e),e.emittedEnd||(e.on(\"end\",i=>this[FN]()),t=!1)):(this[Za]=null,t=!1),t}[FN](){do;while(this[cX](this[$a].shift()));if(!this[$a].length){let e=this[Za];!e||e.flowing||e.size===e.remain?this[fm]||this.emit(\"drain\"):e.once(\"drain\",i=>this.emit(\"drain\"))}}[NN](e,t){let i=this[Au],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[Qs]=\"header\",this[Au]=null,i.end()),s.length}[fX](e,t){let i=this[Au],n=this[NN](e,t);return this[Au]||this[uX](i),n}[cu](e,t,i){!this[$a].length&&!this[Za]?this.emit(e,t,i):this[$a].push([e,t,i])}[uX](e){switch(this[cu](\"meta\",this[hl]),e.type){case\"ExtendedHeader\":case\"OldExtendedHeader\":this[bs]=lX.parse(this[hl],this[bs],!1);break;case\"GlobalExtendedHeader\":this[gm]=lX.parse(this[hl],this[gm],!0);break;case\"NextFileHasLongPath\":case\"OldGnuLongPath\":this[bs]=this[bs]||Object.create(null),this[bs].path=this[hl].replace(/\\0.*/,\"\");break;case\"NextFileHasLongLinkpath\":this[bs]=this[bs]||Object.create(null),this[bs].linkpath=this[hl].replace(/\\0.*/,\"\");break;default:throw new Error(\"unknown meta: \"+e.type)}}abort(e){this[pl]=!0,this.emit(\"abort\",e),this.warn(\"TAR_ABORT\",e,{recoverable:!1})}write(e){if(this[pl])return;if(this[xn]===null&&e){if(this[Ir]&&(e=Buffer.concat([this[Ir],e]),this[Ir]=null),e.length<RN.length)return this[Ir]=e,!0;for(let i=0;this[xn]===null&&i<RN.length;i++)e[i]!==RN[i]&&(this[xn]=!1);if(this[xn]===null){let i=this[lu];this[lu]=!1,this[xn]=new WNe.Unzip,this[xn].on(\"data\",s=>this[U0](s)),this[xn].on(\"error\",s=>this.abort(s)),this[xn].on(\"end\",s=>{this[lu]=!0,this[U0]()}),this[fm]=!0;let n=this[xn][i?\"end\":\"write\"](e);return this[fm]=!1,n}}this[fm]=!0,this[xn]?this[xn].write(e):this[U0](e),this[fm]=!1;let t=this[$a].length?!1:this[Za]?this[Za].flowing:!0;return!t&&!this[$a].length&&this[Za].once(\"drain\",i=>this.emit(\"drain\")),t}[LN](e){e&&!this[pl]&&(this[Ir]=this[Ir]?Buffer.concat([this[Ir],e]):e)}[TN](){if(this[lu]&&!this[gX]&&!this[pl]&&!this[G0]){this[gX]=!0;let e=this[Au];if(e&&e.blockRemain){let t=this[Ir]?this[Ir].length:0;this.warn(\"TAR_BAD_ARCHIVE\",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Ir]&&e.write(this[Ir]),e.end()}this[cu](Y0)}}[U0](e){if(this[G0])this[LN](e);else if(!e&&!this[Ir])this[TN]();else{if(this[G0]=!0,this[Ir]){this[LN](e);let t=this[Ir];this[Ir]=null,this[H0](t)}else this[H0](e);for(;this[Ir]&&this[Ir].length>=512&&!this[pl]&&!this[q0];){let t=this[Ir];this[Ir]=null,this[H0](t)}this[G0]=!1}(!this[Ir]||this[lu])&&this[TN]()}[H0](e){let t=0,i=e.length;for(;t+512<=i&&!this[pl]&&!this[q0];)switch(this[Qs]){case\"begin\":case\"header\":this[hX](e,t),t+=512;break;case\"ignore\":case\"body\":t+=this[NN](e,t);break;case\"meta\":t+=this[fX](e,t);break;default:throw new Error(\"invalid state: \"+this[Qs])}t<i&&(this[Ir]?this[Ir]=Buffer.concat([e.slice(t),this[Ir]]):this[Ir]=e.slice(t))}end(e){this[pl]||(this[xn]?this[xn].end(e):(this[lu]=!0,this.write(e)))}})});var J0=y((Pat,EX)=>{\"use strict\";var VNe=gh(),CX=hm(),Sh=J(\"fs\"),XNe=bh(),dX=J(\"path\"),xat=EX.exports=(r,e,t)=>{typeof r==\"function\"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e==\"function\"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=VNe(r);if(i.sync&&typeof t==\"function\")throw new TypeError(\"callback not supported for sync tar functions\");if(!i.file&&typeof t==\"function\")throw new TypeError(\"callback only supported with file option\");return e.length&&ZNe(i,e),i.noResume||_Ne(i),i.file&&i.sync?$Ne(i):i.file?eLe(i,t):mX(i)},_Ne=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},ZNe=(r,e)=>{let t=new Map(e.map(s=>[s.replace(/\\/+$/,\"\"),!0])),i=r.filter,n=(s,o)=>{let a=o||dX.parse(s).root||\".\",l=s===a?!1:t.has(s)?t.get(s):n(dX.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\\/+$/,\"\")):s=>n(s.replace(/\\/+$/,\"\"))},$Ne=r=>{let e=mX(r),t=r.file,i=!0,n;try{let s=Sh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size<o)e.end(Sh.readFileSync(t));else{let a=0,l=Buffer.allocUnsafe(o);for(n=Sh.openSync(t,\"r\");a<s.size;){let c=Sh.readSync(n,l,0,o,a);a+=c,e.write(l.slice(0,c))}e.end()}i=!1}finally{if(i&&n)try{Sh.closeSync(n)}catch{}}},eLe=(r,e)=>{let t=new CX(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on(\"error\",a),t.on(\"end\",o),Sh.stat(n,(l,c)=>{if(l)a(l);else{let u=new XNe.ReadStream(n,{readSize:i,size:c.size});u.on(\"error\",a),u.pipe(t)}})});return e?s.then(e,e):s},mX=r=>new CX(r)});var bX=y((Rat,QX)=>{\"use strict\";var tLe=gh(),W0=R0(),Dat=J(\"fs\"),IX=bh(),yX=J0(),wX=J(\"path\"),kat=QX.exports=(r,e,t)=>{if(typeof e==\"function\"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError(\"no files or directories specified\");e=Array.from(e);let i=tLe(r);if(i.sync&&typeof t==\"function\")throw new TypeError(\"callback not supported for sync tar functions\");if(!i.file&&typeof t==\"function\")throw new TypeError(\"callback only supported with file option\");return i.file&&i.sync?rLe(i,e):i.file?iLe(i,e,t):i.sync?nLe(i,e):sLe(i,e)},rLe=(r,e)=>{let t=new W0.Sync(r),i=new IX.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),BX(t,e)},iLe=(r,e,t)=>{let i=new W0(r),n=new IX.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on(\"error\",a),n.on(\"close\",o),i.on(\"error\",a)});return ON(i,e),t?s.then(t,t):s},BX=(r,e)=>{e.forEach(t=>{t.charAt(0)===\"@\"?yX({file:wX.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},ON=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)===\"@\")return yX({file:wX.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>ON(r,e));r.add(t)}r.end()},nLe=(r,e)=>{let t=new W0.Sync(r);return BX(t,e),t},sLe=(r,e)=>{let t=new W0(r);return ON(t,e),t}});var MN=y((Lat,RX)=>{\"use strict\";var oLe=gh(),SX=R0(),Fat=hm(),Ss=J(\"fs\"),vX=bh(),xX=J0(),PX=J(\"path\"),DX=Ch(),Nat=RX.exports=(r,e,t)=>{let i=oLe(r);if(!i.file)throw new TypeError(\"file is required\");if(i.gzip)throw new TypeError(\"cannot append to compressed archives\");if(!e||!Array.isArray(e)||!e.length)throw new TypeError(\"no files or directories specified\");return e=Array.from(e),i.sync?aLe(i,e):lLe(i,e,t)},aLe=(r,e)=>{let t=new SX.Sync(r),i=!0,n,s;try{try{n=Ss.openSync(r.file,\"r+\")}catch(l){if(l.code===\"ENOENT\")n=Ss.openSync(r.file,\"w+\");else throw l}let o=Ss.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;s<o.size;s+=512){for(let u=0,g=0;u<512;u+=g){if(g=Ss.readSync(n,a,u,a.length-u,s+u),s===0&&a[0]===31&&a[1]===139)throw new Error(\"cannot append to compressed archives\");if(!g)break e}let l=new DX(a);if(!l.cksumValid)break;let c=512*Math.ceil(l.size/512);if(s+c+512>o.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,ALe(r,t,s,n,e)}finally{if(i)try{Ss.closeSync(n)}catch{}}},ALe=(r,e,t,i,n)=>{let s=new vX.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),cLe(e,n)},lLe=(r,e,t)=>{e=Array.from(e);let i=new SX(r),n=(o,a,l)=>{let c=(p,C)=>{p?Ss.close(o,w=>l(p)):l(null,C)},u=0;if(a===0)return c(null,0);let g=0,f=Buffer.alloc(512),h=(p,C)=>{if(p)return c(p);if(g+=C,g<512&&C)return Ss.read(o,f,g,f.length-g,u+g,h);if(u===0&&f[0]===31&&f[1]===139)return c(new Error(\"cannot append to compressed archives\"));if(g<512)return c(null,u);let w=new DX(f);if(!w.cksumValid)return c(null,u);let B=512*Math.ceil(w.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(w.path,w.mtime),g=0,Ss.read(o,f,0,512,u,h)};Ss.read(o,f,0,512,u,h)},s=new Promise((o,a)=>{i.on(\"error\",a);let l=\"r+\",c=(u,g)=>{if(u&&u.code===\"ENOENT\"&&l===\"r+\")return l=\"w+\",Ss.open(r.file,l,c);if(u)return a(u);Ss.fstat(g,(f,h)=>{if(f)return a(f);n(g,h.size,(p,C)=>{if(p)return a(p);let w=new vX.WriteStream(r.file,{fd:g,start:C});i.pipe(w),w.on(\"error\",a),w.on(\"close\",o),kX(i,e)})})};Ss.open(r.file,l,c)});return t?s.then(t,t):s},cLe=(r,e)=>{e.forEach(t=>{t.charAt(0)===\"@\"?xX({file:PX.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},kX=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)===\"@\")return xX({file:PX.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>kX(r,e));r.add(t)}r.end()}});var NX=y((Oat,FX)=>{\"use strict\";var uLe=gh(),gLe=MN(),Tat=FX.exports=(r,e,t)=>{let i=uLe(r);if(!i.file)throw new TypeError(\"file is required\");if(i.gzip)throw new TypeError(\"cannot append to compressed archives\");if(!e||!Array.isArray(e)||!e.length)throw new TypeError(\"no files or directories specified\");return e=Array.from(e),fLe(i),gLe(i,e,t)},fLe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var OX=y((Mat,TX)=>{var{promisify:LX}=J(\"util\"),dl=J(\"fs\"),hLe=r=>{if(!r)r={mode:511,fs:dl};else if(typeof r==\"object\")r={mode:511,fs:dl,...r};else if(typeof r==\"number\")r={mode:r,fs:dl};else if(typeof r==\"string\")r={mode:parseInt(r,8),fs:dl};else throw new TypeError(\"invalid options argument\");return r.mkdir=r.mkdir||r.fs.mkdir||dl.mkdir,r.mkdirAsync=LX(r.mkdir),r.stat=r.stat||r.fs.stat||dl.stat,r.statAsync=LX(r.stat),r.statSync=r.statSync||r.fs.statSync||dl.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||dl.mkdirSync,r};TX.exports=hLe});var KX=y((Kat,MX)=>{var pLe=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:dLe,parse:CLe}=J(\"path\"),mLe=r=>{if(/\\0/.test(r))throw Object.assign(new TypeError(\"path must be a string without null bytes\"),{path:r,code:\"ERR_INVALID_ARG_VALUE\"});if(r=dLe(r),pLe===\"win32\"){let e=/[*|\"<>?:]/,{root:t}=CLe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error(\"Illegal characters in path.\"),{path:r,code:\"EINVAL\"})}return r};MX.exports=mLe});var jX=y((Uat,YX)=>{var{dirname:UX}=J(\"path\"),HX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code===\"ENOENT\"?HX(r,UX(e),e):void 0),GX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code===\"ENOENT\"?GX(r,UX(e),e):void 0}};YX.exports={findMade:HX,findMadeSync:GX}});var HN=y((Hat,JX)=>{var{dirname:qX}=J(\"path\"),KN=(r,e,t)=>{e.recursive=!1;let i=qX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!==\"EISDIR\")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code===\"ENOENT\")return KN(i,e).then(s=>KN(r,e,s));if(n.code!==\"EEXIST\"&&n.code!==\"EROFS\")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},UN=(r,e,t)=>{let i=qX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!==\"EISDIR\")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code===\"ENOENT\")return UN(r,e,UN(i,e,t));if(n.code!==\"EEXIST\"&&n.code!==\"EROFS\")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};JX.exports={mkdirpManual:KN,mkdirpManualSync:UN}});var VX=y((Gat,zX)=>{var{dirname:WX}=J(\"path\"),{findMade:ELe,findMadeSync:ILe}=jX(),{mkdirpManual:yLe,mkdirpManualSync:wLe}=HN(),BLe=(r,e)=>(e.recursive=!0,WX(r)===r?e.mkdirAsync(r,e):ELe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code===\"ENOENT\")return yLe(r,e);throw n}))),QLe=(r,e)=>{if(e.recursive=!0,WX(r)===r)return e.mkdirSync(r,e);let i=ILe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code===\"ENOENT\")return wLe(r,e);throw n}};zX.exports={mkdirpNative:BLe,mkdirpNativeSync:QLe}});var $X=y((Yat,ZX)=>{var XX=J(\"fs\"),bLe=process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version,GN=bLe.replace(/^v/,\"\").split(\".\"),_X=+GN[0]>10||+GN[0]==10&&+GN[1]>=12,SLe=_X?r=>r.mkdir===XX.mkdir:()=>!1,vLe=_X?r=>r.mkdirSync===XX.mkdirSync:()=>!1;ZX.exports={useNative:SLe,useNativeSync:vLe}});var s_=y((jat,n_)=>{var vh=OX(),xh=KX(),{mkdirpNative:e_,mkdirpNativeSync:t_}=VX(),{mkdirpManual:r_,mkdirpManualSync:i_}=HN(),{useNative:xLe,useNativeSync:PLe}=$X(),Ph=(r,e)=>(r=xh(r),e=vh(e),xLe(e)?e_(r,e):r_(r,e)),DLe=(r,e)=>(r=xh(r),e=vh(e),PLe(e)?t_(r,e):i_(r,e));Ph.sync=DLe;Ph.native=(r,e)=>e_(xh(r),vh(e));Ph.manual=(r,e)=>r_(xh(r),vh(e));Ph.nativeSync=(r,e)=>t_(xh(r),vh(e));Ph.manualSync=(r,e)=>i_(xh(r),vh(e));n_.exports=Ph});var g_=y((qat,u_)=>{\"use strict\";var vs=J(\"fs\"),gu=J(\"path\"),kLe=vs.lchown?\"lchown\":\"chown\",RLe=vs.lchownSync?\"lchownSync\":\"chownSync\",a_=vs.lchown&&!process.version.match(/v1[1-9]+\\./)&&!process.version.match(/v10\\.[6-9]/),o_=(r,e,t)=>{try{return vs[RLe](r,e,t)}catch(i){if(i.code!==\"ENOENT\")throw i}},FLe=(r,e,t)=>{try{return vs.chownSync(r,e,t)}catch(i){if(i.code!==\"ENOENT\")throw i}},NLe=a_?(r,e,t,i)=>n=>{!n||n.code!==\"EISDIR\"?i(n):vs.chown(r,e,t,i)}:(r,e,t,i)=>i,YN=a_?(r,e,t)=>{try{return o_(r,e,t)}catch(i){if(i.code!==\"EISDIR\")throw i;FLe(r,e,t)}}:(r,e,t)=>o_(r,e,t),LLe=process.version,A_=(r,e,t)=>vs.readdir(r,e,t),TLe=(r,e)=>vs.readdirSync(r,e);/^v4\\./.test(LLe)&&(A_=(r,e,t)=>vs.readdir(r,t));var z0=(r,e,t,i)=>{vs[kLe](r,e,t,NLe(r,e,t,n=>{i(n&&n.code!==\"ENOENT\"?n:null)}))},l_=(r,e,t,i,n)=>{if(typeof e==\"string\")return vs.lstat(gu.resolve(r,e),(s,o)=>{if(s)return n(s.code!==\"ENOENT\"?s:null);o.name=e,l_(r,o,t,i,n)});if(e.isDirectory())jN(gu.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=gu.resolve(r,e.name);z0(o,t,i,n)});else{let s=gu.resolve(r,e.name);z0(s,t,i,n)}},jN=(r,e,t,i)=>{A_(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code===\"ENOENT\")return i();if(n.code!==\"ENOTDIR\"&&n.code!==\"ENOTSUP\")return i(n)}if(n||!s.length)return z0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return z0(r,e,t,i)}};s.forEach(c=>l_(r,c,e,t,l))})},OLe=(r,e,t,i)=>{if(typeof e==\"string\")try{let n=vs.lstatSync(gu.resolve(r,e));n.name=e,e=n}catch(n){if(n.code===\"ENOENT\")return;throw n}e.isDirectory()&&c_(gu.resolve(r,e.name),t,i),YN(gu.resolve(r,e.name),t,i)},c_=(r,e,t)=>{let i;try{i=TLe(r,{withFileTypes:!0})}catch(n){if(n.code===\"ENOENT\")return;if(n.code===\"ENOTDIR\"||n.code===\"ENOTSUP\")return YN(r,e,t);throw n}return i&&i.length&&i.forEach(n=>OLe(r,n,e,t)),YN(r,e,t)};u_.exports=jN;jN.sync=c_});var d_=y((zat,qN)=>{\"use strict\";var f_=s_(),xs=J(\"fs\"),V0=J(\"path\"),h_=g_(),X0=class extends Error{constructor(e,t){super(\"Cannot extract through symbolic link\"),this.path=t,this.symlink=e}get name(){return\"SylinkError\"}},Dh=class extends Error{constructor(e,t){super(t+\": Cannot cd into '\"+e+\"'\"),this.path=e,this.code=t}get name(){return\"CwdError\"}},Jat=qN.exports=(r,e,t)=>{let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o==\"number\"&&typeof a==\"number\"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,f=e.cwd,h=(w,B)=>{w?t(w):(g.set(r,!0),B&&l?h_(B,o,a,v=>h(v)):s?xs.chmod(r,n,t):t())};if(g&&g.get(r)===!0)return h();if(r===f)return xs.stat(r,(w,B)=>{(w||!B.isDirectory())&&(w=new Dh(r,w&&w.code||\"ENOTDIR\")),h(w)});if(c)return f_(r,{mode:n}).then(w=>h(null,w),h);let C=V0.relative(f,r).split(/\\/|\\\\/);_0(f,C,n,g,u,f,null,h)},_0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=r+\"/\"+l;if(i.get(c))return _0(c,e,t,i,n,s,o,a);xs.mkdir(c,t,p_(c,e,t,i,n,s,o,a))},p_=(r,e,t,i,n,s,o,a)=>l=>{if(l){if(l.path&&V0.dirname(l.path)===s&&(l.code===\"ENOTDIR\"||l.code===\"ENOENT\"))return a(new Dh(s,l.code));xs.lstat(r,(c,u)=>{if(c)a(c);else if(u.isDirectory())_0(r,e,t,i,n,s,o,a);else if(n)xs.unlink(r,g=>{if(g)return a(g);xs.mkdir(r,t,p_(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new X0(r,r+\"/\"+e.join(\"/\")));a(l)}})}else o=o||r,_0(r,e,t,i,n,s,o,a)},Wat=qN.exports.sync=(r,e)=>{let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s==\"number\"&&typeof o==\"number\"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=e.cwd,f=w=>{u.set(r,!0),w&&a&&h_.sync(w,s,o),n&&xs.chmodSync(r,i)};if(u&&u.get(r)===!0)return f();if(r===g){let w=!1,B=\"ENOTDIR\";try{w=xs.statSync(r).isDirectory()}catch(v){B=v.code}finally{if(!w)throw new Dh(r,B)}f();return}if(l)return f(f_.sync(r,i));let p=V0.relative(g,r).split(/\\/|\\\\/),C=null;for(let w=p.shift(),B=g;w&&(B+=\"/\"+w);w=p.shift())if(!u.get(B))try{xs.mkdirSync(B,i),C=C||B,u.set(B,!0)}catch(v){if(v.path&&V0.dirname(v.path)===g&&(v.code===\"ENOTDIR\"||v.code===\"ENOENT\"))return new Dh(g,v.code);let D=xs.lstatSync(B);if(D.isDirectory()){u.set(B,!0);continue}else if(c){xs.unlinkSync(B),xs.mkdirSync(B,i),C=C||B,u.set(B,!0);continue}else if(D.isSymbolicLink())return new X0(B,B+\"/\"+p.join(\"/\"))}return f(C)}});var E_=y((Vat,m_)=>{var C_=J(\"assert\");m_.exports=()=>{let r=new Map,e=new Map,{join:t}=J(\"path\"),i=u=>t(u).split(/[\\\\\\/]/).slice(0,-1).reduce((g,f)=>g.length?g.concat(t(g[g.length-1],f)):[f],[]),n=new Set,s=u=>{let g=e.get(u);if(!g)throw new Error(\"function does not have any path reservations\");return{paths:g.paths.map(f=>r.get(f)),dirs:[...g.dirs].map(f=>r.get(f))}},o=u=>{let{paths:g,dirs:f}=s(u);return g.every(h=>h[0]===u)&&f.every(h=>h[0]instanceof Set&&h[0].has(u))},a=u=>n.has(u)||!o(u)?!1:(n.add(u),u(()=>l(u)),!0),l=u=>{if(!n.has(u))return!1;let{paths:g,dirs:f}=e.get(u),h=new Set;return g.forEach(p=>{let C=r.get(p);C_.equal(C[0],u),C.length===1?r.delete(p):(C.shift(),typeof C[0]==\"function\"?h.add(C[0]):C[0].forEach(w=>h.add(w)))}),f.forEach(p=>{let C=r.get(p);C_(C[0]instanceof Set),C[0].size===1&&C.length===1?r.delete(p):C[0].size===1?(C.shift(),h.add(C[0])):C[0].delete(u)}),n.delete(u),h.forEach(p=>a(p)),!0};return{check:o,reserve:(u,g)=>{let f=new Set(u.map(h=>i(h)).reduce((h,p)=>h.concat(p)));return e.set(g,{dirs:f,paths:u}),u.forEach(h=>{let p=r.get(h);p?p.push(g):r.set(h,[g])}),f.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(g):p.push(new Set([g])):r.set(h,[new Set([g])])}),a(g)}}}});var w_=y((Xat,y_)=>{var MLe=process.env.__FAKE_PLATFORM__||process.platform,KLe=MLe===\"win32\",ULe=global.__FAKE_TESTING_FS__||J(\"fs\"),{O_CREAT:HLe,O_TRUNC:GLe,O_WRONLY:YLe,UV_FS_O_FILEMAP:I_=0}=ULe.constants,jLe=KLe&&!!I_,qLe=512*1024,JLe=I_|GLe|HLe|YLe;y_.exports=jLe?r=>r<qLe?JLe:\"w\":()=>\"w\"});var tL=y((eAt,N_)=>{\"use strict\";var WLe=J(\"assert\"),_at=J(\"events\").EventEmitter,zLe=hm(),Xt=J(\"fs\"),VLe=bh(),eA=J(\"path\"),eL=d_(),Zat=eL.sync,B_=aN(),XLe=E_(),Q_=Symbol(\"onEntry\"),zN=Symbol(\"checkFs\"),b_=Symbol(\"checkFs2\"),VN=Symbol(\"isReusable\"),tA=Symbol(\"makeFs\"),XN=Symbol(\"file\"),_N=Symbol(\"directory\"),eQ=Symbol(\"link\"),S_=Symbol(\"symlink\"),v_=Symbol(\"hardlink\"),x_=Symbol(\"unsupported\"),$at=Symbol(\"unknown\"),P_=Symbol(\"checkPath\"),Rh=Symbol(\"mkdir\"),on=Symbol(\"onError\"),Z0=Symbol(\"pending\"),D_=Symbol(\"pend\"),kh=Symbol(\"unpend\"),JN=Symbol(\"ended\"),WN=Symbol(\"maybeClose\"),ZN=Symbol(\"skip\"),pm=Symbol(\"doChown\"),dm=Symbol(\"uid\"),Cm=Symbol(\"gid\"),R_=J(\"crypto\"),F_=w_(),$0=()=>{throw new Error(\"sync function called cb somehow?!?\")},_Le=(r,e)=>{if(process.platform!==\"win32\")return Xt.unlink(r,e);let t=r+\".DELETE.\"+R_.randomBytes(16).toString(\"hex\");Xt.rename(r,t,i=>{if(i)return e(i);Xt.unlink(t,e)})},ZLe=r=>{if(process.platform!==\"win32\")return Xt.unlinkSync(r);let e=r+\".DELETE.\"+R_.randomBytes(16).toString(\"hex\");Xt.renameSync(r,e),Xt.unlinkSync(e)},k_=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,mm=class extends zLe{constructor(e){if(e||(e={}),e.ondone=t=>{this[JN]=!0,this[WN]()},super(e),this.reservations=XLe(),this.transform=typeof e.transform==\"function\"?e.transform:null,this.writable=!0,this.readable=!1,this[Z0]=0,this[JN]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid==\"number\"||typeof e.gid==\"number\"){if(typeof e.uid!=\"number\"||typeof e.gid!=\"number\")throw new TypeError(\"cannot set owner without number uid and gid\");if(e.preserveOwner)throw new TypeError(\"cannot preserve owner in archive and also set owner explicitly\");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!=\"number\"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||process.platform===\"win32\",this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=eA.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask=typeof e.umask==\"number\"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on(\"entry\",t=>this[Q_](t))}warn(e,t,i={}){return(e===\"TAR_BAD_ARCHIVE\"||e===\"TAR_ABORT\")&&(i.recoverable=!1),super.warn(e,t,i)}[WN](){this[JN]&&this[Z0]===0&&(this.emit(\"prefinish\"),this.emit(\"finish\"),this.emit(\"end\"),this.emit(\"close\"))}[P_](e){if(this.strip){let t=e.path.split(/\\/|\\\\/);if(t.length<this.strip)return!1;if(e.path=t.slice(this.strip).join(\"/\"),e.type===\"Link\"){let i=e.linkpath.split(/\\/|\\\\/);i.length>=this.strip&&(e.linkpath=i.slice(this.strip).join(\"/\"))}}if(!this.preservePaths){let t=e.path;if(t.match(/(^|\\/|\\\\)\\.\\.(\\\\|\\/|$)/))return this.warn(\"TAR_ENTRY_ERROR\",\"path contains '..'\",{entry:e,path:t}),!1;if(eA.win32.isAbsolute(t)){let i=eA.win32.parse(t);e.path=t.substr(i.root.length);let n=i.root;this.warn(\"TAR_ENTRY_INFO\",`stripping ${n} from absolute path`,{entry:e,path:t})}}if(this.win32){let t=eA.win32.parse(e.path);e.path=t.root===\"\"?B_.encode(e.path):t.root+B_.encode(e.path.substr(t.root.length))}return eA.isAbsolute(e.path)?e.absolute=e.path:e.absolute=eA.resolve(this.cwd,e.path),!0}[Q_](e){if(!this[P_](e))return e.resume();switch(WLe.equal(typeof e.absolute,\"string\"),e.type){case\"Directory\":case\"GNUDumpDir\":e.mode&&(e.mode=e.mode|448);case\"File\":case\"OldFile\":case\"ContiguousFile\":case\"Link\":case\"SymbolicLink\":return this[zN](e);case\"CharacterDevice\":case\"BlockDevice\":case\"FIFO\":return this[x_](e)}}[on](e,t){e.name===\"CwdError\"?this.emit(\"error\",e):(this.warn(\"TAR_ENTRY_ERROR\",e,{entry:t}),this[kh](),t.resume())}[Rh](e,t,i){eL(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t},i)}[pm](e){return this.forceChown||this.preserveOwner&&(typeof e.uid==\"number\"&&e.uid!==this.processUid||typeof e.gid==\"number\"&&e.gid!==this.processGid)||typeof this.uid==\"number\"&&this.uid!==this.processUid||typeof this.gid==\"number\"&&this.gid!==this.processGid}[dm](e){return k_(this.uid,e.uid,this.processUid)}[Cm](e){return k_(this.gid,e.gid,this.processGid)}[XN](e,t){let i=e.mode&4095||this.fmode,n=new VLe.WriteStream(e.absolute,{flags:F_(e.size),mode:i,autoClose:!1});n.on(\"error\",l=>this[on](l,e));let s=1,o=l=>{if(l)return this[on](l,e);--s===0&&Xt.close(n.fd,c=>{t(),c?this[on](c,e):this[kh]()})};n.on(\"finish\",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,f=e.mtime;Xt.futimes(u,g,f,h=>h?Xt.utimes(c,g,f,p=>o(p&&h)):o())}if(this[pm](e)){s++;let g=this[dm](e),f=this[Cm](e);Xt.fchown(u,g,f,h=>h?Xt.chown(c,g,f,p=>o(p&&h)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on(\"error\",l=>this[on](l,e)),e.pipe(a)),a.pipe(n)}[_N](e,t){let i=e.mode&4095||this.dmode;this[Rh](e.absolute,i,n=>{if(n)return t(),this[on](n,e);let s=1,o=a=>{--s===0&&(t(),this[kh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Xt.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[pm](e)&&(s++,Xt.chown(e.absolute,this[dm](e),this[Cm](e),o)),o()})}[x_](e){e.unsupported=!0,this.warn(\"TAR_ENTRY_UNSUPPORTED\",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[S_](e,t){this[eQ](e,e.linkpath,\"symlink\",t)}[v_](e,t){this[eQ](e,eA.resolve(this.cwd,e.linkpath),\"link\",t)}[D_](){this[Z0]++}[kh](){this[Z0]--,this[WN]()}[ZN](e){this[kh](),e.resume()}[VN](e,t){return e.type===\"File\"&&!this.unlink&&t.isFile()&&t.nlink<=1&&process.platform!==\"win32\"}[zN](e){this[D_]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[b_](e,i))}[b_](e,t){this[Rh](eA.dirname(e.absolute),this.dmode,i=>{if(i)return t(),this[on](i,e);Xt.lstat(e.absolute,(n,s)=>{s&&(this.keep||this.newer&&s.mtime>e.mtime)?(this[ZN](e),t()):n||this[VN](e,s)?this[tA](null,e,t):s.isDirectory()?e.type===\"Directory\"?!e.mode||(s.mode&4095)===e.mode?this[tA](null,e,t):Xt.chmod(e.absolute,e.mode,o=>this[tA](o,e,t)):Xt.rmdir(e.absolute,o=>this[tA](o,e,t)):_Le(e.absolute,o=>this[tA](o,e,t))})})}[tA](e,t,i){if(e)return this[on](e,t);switch(t.type){case\"File\":case\"OldFile\":case\"ContiguousFile\":return this[XN](t,i);case\"Link\":return this[v_](t,i);case\"SymbolicLink\":return this[S_](t,i);case\"Directory\":case\"GNUDumpDir\":return this[_N](t,i)}}[eQ](e,t,i,n){Xt[i](t,e.absolute,s=>{if(s)return this[on](s,e);n(),this[kh](),e.resume()})}},$N=class extends mm{constructor(e){super(e)}[zN](e){let t=this[Rh](eA.dirname(e.absolute),this.dmode,$0);if(t)return this[on](t,e);try{let i=Xt.lstatSync(e.absolute);if(this.keep||this.newer&&i.mtime>e.mtime)return this[ZN](e);if(this[VN](e,i))return this[tA](null,e,$0);try{return i.isDirectory()?e.type===\"Directory\"?e.mode&&(i.mode&4095)!==e.mode&&Xt.chmodSync(e.absolute,e.mode):Xt.rmdirSync(e.absolute):ZLe(e.absolute),this[tA](null,e,$0)}catch(n){return this[on](n,e)}}catch{return this[tA](null,e,$0)}}[XN](e,t){let i=e.mode&4095||this.fmode,n=l=>{let c;try{Xt.closeSync(o)}catch(u){c=u}(l||c)&&this[on](l||c,e)},s,o;try{o=Xt.openSync(e.absolute,F_(e.size),i)}catch(l){return n(l)}let a=this.transform&&this.transform(e)||e;a!==e&&(a.on(\"error\",l=>this[on](l,e)),e.pipe(a)),a.on(\"data\",l=>{try{Xt.writeSync(o,l,0,l.length)}catch(c){n(c)}}),a.on(\"end\",l=>{let c=null;if(e.mtime&&!this.noMtime){let u=e.atime||new Date,g=e.mtime;try{Xt.futimesSync(o,u,g)}catch(f){try{Xt.utimesSync(e.absolute,u,g)}catch{c=f}}}if(this[pm](e)){let u=this[dm](e),g=this[Cm](e);try{Xt.fchownSync(o,u,g)}catch(f){try{Xt.chownSync(e.absolute,u,g)}catch{c=c||f}}}n(c)})}[_N](e,t){let i=e.mode&4095||this.dmode,n=this[Rh](e.absolute,i);if(n)return this[on](n,e);if(e.mtime&&!this.noMtime)try{Xt.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[pm](e))try{Xt.chownSync(e.absolute,this[dm](e),this[Cm](e))}catch{}e.resume()}[Rh](e,t){try{return eL.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[eQ](e,t,i,n){try{Xt[i+\"Sync\"](t,e.absolute),e.resume()}catch(s){return this[on](s,e)}}};mm.Sync=$N;N_.exports=mm});var K_=y((rAt,M_)=>{\"use strict\";var $Le=gh(),tQ=tL(),T_=J(\"fs\"),O_=bh(),L_=J(\"path\"),tAt=M_.exports=(r,e,t)=>{typeof r==\"function\"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e==\"function\"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Le(r);if(i.sync&&typeof t==\"function\")throw new TypeError(\"callback not supported for sync tar functions\");if(!i.file&&typeof t==\"function\")throw new TypeError(\"callback only supported with file option\");return e.length&&eTe(i,e),i.file&&i.sync?tTe(i):i.file?rTe(i,t):i.sync?iTe(i):nTe(i)},eTe=(r,e)=>{let t=new Map(e.map(s=>[s.replace(/\\/+$/,\"\"),!0])),i=r.filter,n=(s,o)=>{let a=o||L_.parse(s).root||\".\",l=s===a?!1:t.has(s)?t.get(s):n(L_.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\\/+$/,\"\")):s=>n(s.replace(/\\/+$/,\"\"))},tTe=r=>{let e=new tQ.Sync(r),t=r.file,i=!0,n,s=T_.statSync(t),o=r.maxReadSize||16*1024*1024;new O_.ReadStreamSync(t,{readSize:o,size:s.size}).pipe(e)},rTe=(r,e)=>{let t=new tQ(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on(\"error\",a),t.on(\"close\",o),T_.stat(n,(l,c)=>{if(l)a(l);else{let u=new O_.ReadStream(n,{readSize:i,size:c.size});u.on(\"error\",a),u.pipe(t)}})});return e?s.then(e,e):s},iTe=r=>new tQ.Sync(r),nTe=r=>new tQ(r)});var U_=y(fi=>{\"use strict\";fi.c=fi.create=bX();fi.r=fi.replace=MN();fi.t=fi.list=J0();fi.u=fi.update=NX();fi.x=fi.extract=K_();fi.Pack=R0();fi.Unpack=tL();fi.Parse=hm();fi.ReadEntry=am();fi.WriteEntry=pN();fi.Header=Ch();fi.Pax=C0();fi.types=om()});var q_=y((sAt,j_)=>{var rL;j_.exports.getContent=()=>(typeof rL>\"u\"&&(rL=J(\"zlib\").brotliDecompressSync(Buffer.from(\"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\",\"base64\")).toString()),rL)});var __=y((iL,X_)=>{(function(r,e){typeof iL==\"object\"?X_.exports=e():typeof define==\"function\"&&define.amd?define(e):r.treeify=e()})(iL,function(){function r(n,s){var o=s?\"\\u2514\":\"\\u251C\";return n?o+=\"\\u2500 \":o+=\"\\u2500\\u2500\\u2510\",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]==\"function\"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g=\"\",f=0,h,p,C=a.slice(0);if(C.push([s,o])&&a.length>0&&(a.forEach(function(B,v){v>0&&(g+=(B[1]?\" \":\"\\u2502\")+\"  \"),!p&&B[0]===s&&(p=!0)}),g+=r(n,o)+n,l&&(typeof s!=\"object\"||s instanceof Date)&&(g+=\": \"+s),p&&(g+=\" (circular ref.)\"),u(g)),!p&&typeof s==\"object\"){var w=e(s,c);w.forEach(function(B){h=++f===w.length,t(B,s[B],h,C,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!=\"function\"?o:!1;t(\".\",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a=\"\";return t(\".\",n,!1,[],s,o,function(l){a+=l+`\n`}),a},i})});var sQ=y((xAt,aZ)=>{var wTe=ws(),BTe=FC(),QTe=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,bTe=/^\\w*$/;function STe(r,e){if(wTe(r))return!1;var t=typeof r;return t==\"number\"||t==\"symbol\"||t==\"boolean\"||r==null||BTe(r)?!0:bTe.test(r)||!QTe.test(r)||e!=null&&r in Object(e)}aZ.exports=STe});var oQ=y((PAt,AZ)=>{var vTe=Wc(),xTe=Sn(),PTe=\"[object AsyncFunction]\",DTe=\"[object Function]\",kTe=\"[object GeneratorFunction]\",RTe=\"[object Proxy]\";function FTe(r){if(!xTe(r))return!1;var e=vTe(r);return e==DTe||e==kTe||e==PTe||e==RTe}AZ.exports=FTe});var cZ=y((DAt,lZ)=>{var NTe=Cs(),LTe=NTe[\"__core-js_shared__\"];lZ.exports=LTe});var fZ=y((kAt,gZ)=>{var uL=cZ(),uZ=function(){var r=/[^.]+$/.exec(uL&&uL.keys&&uL.keys.IE_PROTO||\"\");return r?\"Symbol(src)_1.\"+r:\"\"}();function TTe(r){return!!uZ&&uZ in r}gZ.exports=TTe});var gL=y((RAt,hZ)=>{var OTe=Function.prototype,MTe=OTe.toString;function KTe(r){if(r!=null){try{return MTe.call(r)}catch{}try{return r+\"\"}catch{}}return\"\"}hZ.exports=KTe});var dZ=y((FAt,pZ)=>{var UTe=oQ(),HTe=fZ(),GTe=Sn(),YTe=gL(),jTe=/[\\\\^$.*+?()[\\]{}|]/g,qTe=/^\\[object .+?Constructor\\]$/,JTe=Function.prototype,WTe=Object.prototype,zTe=JTe.toString,VTe=WTe.hasOwnProperty,XTe=RegExp(\"^\"+zTe.call(VTe).replace(jTe,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");function _Te(r){if(!GTe(r)||HTe(r))return!1;var e=UTe(r)?XTe:qTe;return e.test(YTe(r))}pZ.exports=_Te});var mZ=y((NAt,CZ)=>{function ZTe(r,e){return r==null?void 0:r[e]}CZ.exports=ZTe});var ml=y((LAt,EZ)=>{var $Te=dZ(),eOe=mZ();function tOe(r,e){var t=eOe(r,e);return $Te(t)?t:void 0}EZ.exports=tOe});var Im=y((TAt,IZ)=>{var rOe=ml(),iOe=rOe(Object,\"create\");IZ.exports=iOe});var BZ=y((OAt,wZ)=>{var yZ=Im();function nOe(){this.__data__=yZ?yZ(null):{},this.size=0}wZ.exports=nOe});var bZ=y((MAt,QZ)=>{function sOe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}QZ.exports=sOe});var vZ=y((KAt,SZ)=>{var oOe=Im(),aOe=\"__lodash_hash_undefined__\",AOe=Object.prototype,lOe=AOe.hasOwnProperty;function cOe(r){var e=this.__data__;if(oOe){var t=e[r];return t===aOe?void 0:t}return lOe.call(e,r)?e[r]:void 0}SZ.exports=cOe});var PZ=y((UAt,xZ)=>{var uOe=Im(),gOe=Object.prototype,fOe=gOe.hasOwnProperty;function hOe(r){var e=this.__data__;return uOe?e[r]!==void 0:fOe.call(e,r)}xZ.exports=hOe});var kZ=y((HAt,DZ)=>{var pOe=Im(),dOe=\"__lodash_hash_undefined__\";function COe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pOe&&e===void 0?dOe:e,this}DZ.exports=COe});var FZ=y((GAt,RZ)=>{var mOe=BZ(),EOe=bZ(),IOe=vZ(),yOe=PZ(),wOe=kZ();function Fh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}Fh.prototype.clear=mOe;Fh.prototype.delete=EOe;Fh.prototype.get=IOe;Fh.prototype.has=yOe;Fh.prototype.set=wOe;RZ.exports=Fh});var LZ=y((YAt,NZ)=>{function BOe(){this.__data__=[],this.size=0}NZ.exports=BOe});var Nh=y((jAt,TZ)=>{function QOe(r,e){return r===e||r!==r&&e!==e}TZ.exports=QOe});var ym=y((qAt,OZ)=>{var bOe=Nh();function SOe(r,e){for(var t=r.length;t--;)if(bOe(r[t][0],e))return t;return-1}OZ.exports=SOe});var KZ=y((JAt,MZ)=>{var vOe=ym(),xOe=Array.prototype,POe=xOe.splice;function DOe(r){var e=this.__data__,t=vOe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():POe.call(e,t,1),--this.size,!0}MZ.exports=DOe});var HZ=y((WAt,UZ)=>{var kOe=ym();function ROe(r){var e=this.__data__,t=kOe(e,r);return t<0?void 0:e[t][1]}UZ.exports=ROe});var YZ=y((zAt,GZ)=>{var FOe=ym();function NOe(r){return FOe(this.__data__,r)>-1}GZ.exports=NOe});var qZ=y((VAt,jZ)=>{var LOe=ym();function TOe(r,e){var t=this.__data__,i=LOe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}jZ.exports=TOe});var wm=y((XAt,JZ)=>{var OOe=LZ(),MOe=KZ(),KOe=HZ(),UOe=YZ(),HOe=qZ();function Lh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}Lh.prototype.clear=OOe;Lh.prototype.delete=MOe;Lh.prototype.get=KOe;Lh.prototype.has=UOe;Lh.prototype.set=HOe;JZ.exports=Lh});var aQ=y((_At,WZ)=>{var GOe=ml(),YOe=Cs(),jOe=GOe(YOe,\"Map\");WZ.exports=jOe});var XZ=y((ZAt,VZ)=>{var zZ=FZ(),qOe=wm(),JOe=aQ();function WOe(){this.size=0,this.__data__={hash:new zZ,map:new(JOe||qOe),string:new zZ}}VZ.exports=WOe});var ZZ=y(($At,_Z)=>{function zOe(r){var e=typeof r;return e==\"string\"||e==\"number\"||e==\"symbol\"||e==\"boolean\"?r!==\"__proto__\":r===null}_Z.exports=zOe});var Bm=y((elt,$Z)=>{var VOe=ZZ();function XOe(r,e){var t=r.__data__;return VOe(e)?t[typeof e==\"string\"?\"string\":\"hash\"]:t.map}$Z.exports=XOe});var t$=y((tlt,e$)=>{var _Oe=Bm();function ZOe(r){var e=_Oe(this,r).delete(r);return this.size-=e?1:0,e}e$.exports=ZOe});var i$=y((rlt,r$)=>{var $Oe=Bm();function eMe(r){return $Oe(this,r).get(r)}r$.exports=eMe});var s$=y((ilt,n$)=>{var tMe=Bm();function rMe(r){return tMe(this,r).has(r)}n$.exports=rMe});var a$=y((nlt,o$)=>{var iMe=Bm();function nMe(r,e){var t=iMe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}o$.exports=nMe});var AQ=y((slt,A$)=>{var sMe=XZ(),oMe=t$(),aMe=i$(),AMe=s$(),lMe=a$();function Th(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}Th.prototype.clear=sMe;Th.prototype.delete=oMe;Th.prototype.get=aMe;Th.prototype.has=AMe;Th.prototype.set=lMe;A$.exports=Th});var u$=y((olt,c$)=>{var l$=AQ(),cMe=\"Expected a function\";function fL(r,e){if(typeof r!=\"function\"||e!=null&&typeof e!=\"function\")throw new TypeError(cMe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(fL.Cache||l$),t}fL.Cache=l$;c$.exports=fL});var f$=y((alt,g$)=>{var uMe=u$(),gMe=500;function fMe(r){var e=uMe(r,function(i){return t.size===gMe&&t.clear(),i}),t=e.cache;return e}g$.exports=fMe});var p$=y((Alt,h$)=>{var hMe=f$(),pMe=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,dMe=/\\\\(\\\\)?/g,CMe=hMe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(\"\"),r.replace(pMe,function(t,i,n,s){e.push(n?s.replace(dMe,\"$1\"):i||t)}),e});h$.exports=CMe});var Oh=y((llt,d$)=>{var mMe=ws(),EMe=sQ(),IMe=p$(),yMe=uh();function wMe(r,e){return mMe(r)?r:EMe(r,e)?[r]:IMe(yMe(r))}d$.exports=wMe});var fu=y((clt,C$)=>{var BMe=FC(),QMe=1/0;function bMe(r){if(typeof r==\"string\"||BMe(r))return r;var e=r+\"\";return e==\"0\"&&1/r==-QMe?\"-0\":e}C$.exports=bMe});var Qm=y((ult,m$)=>{var SMe=Oh(),vMe=fu();function xMe(r,e){e=SMe(e,r);for(var t=0,i=e.length;r!=null&&t<i;)r=r[vMe(e[t++])];return t&&t==i?r:void 0}m$.exports=xMe});var hL=y((glt,E$)=>{var PMe=ml(),DMe=function(){try{var r=PMe(Object,\"defineProperty\");return r({},\"\",{}),r}catch{}}();E$.exports=DMe});var Mh=y((flt,y$)=>{var I$=hL();function kMe(r,e,t){e==\"__proto__\"&&I$?I$(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}y$.exports=kMe});var lQ=y((hlt,w$)=>{var RMe=Mh(),FMe=Nh(),NMe=Object.prototype,LMe=NMe.hasOwnProperty;function TMe(r,e,t){var i=r[e];(!(LMe.call(r,e)&&FMe(i,t))||t===void 0&&!(e in r))&&RMe(r,e,t)}w$.exports=TMe});var bm=y((plt,B$)=>{var OMe=9007199254740991,MMe=/^(?:0|[1-9]\\d*)$/;function KMe(r,e){var t=typeof r;return e=e==null?OMe:e,!!e&&(t==\"number\"||t!=\"symbol\"&&MMe.test(r))&&r>-1&&r%1==0&&r<e}B$.exports=KMe});var pL=y((dlt,b$)=>{var UMe=lQ(),HMe=Oh(),GMe=bm(),Q$=Sn(),YMe=fu();function jMe(r,e,t,i){if(!Q$(r))return r;e=HMe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n<s;){var l=YMe(e[n]),c=t;if(l===\"__proto__\"||l===\"constructor\"||l===\"prototype\")return r;if(n!=o){var u=a[l];c=i?i(u,l,a):void 0,c===void 0&&(c=Q$(u)?u:GMe(e[n+1])?[]:{})}UMe(a,l,c),a=a[l]}return r}b$.exports=jMe});var v$=y((Clt,S$)=>{var qMe=Qm(),JMe=pL(),WMe=Oh();function zMe(r,e,t){for(var i=-1,n=e.length,s={};++i<n;){var o=e[i],a=qMe(r,o);t(a,o)&&JMe(s,WMe(o,r),a)}return s}S$.exports=zMe});var P$=y((mlt,x$)=>{function VMe(r,e){return r!=null&&e in Object(r)}x$.exports=VMe});var k$=y((Elt,D$)=>{var XMe=Wc(),_Me=Jo(),ZMe=\"[object Arguments]\";function $Me(r){return _Me(r)&&XMe(r)==ZMe}D$.exports=$Me});var Sm=y((Ilt,N$)=>{var R$=k$(),eKe=Jo(),F$=Object.prototype,tKe=F$.hasOwnProperty,rKe=F$.propertyIsEnumerable,iKe=R$(function(){return arguments}())?R$:function(r){return eKe(r)&&tKe.call(r,\"callee\")&&!rKe.call(r,\"callee\")};N$.exports=iKe});var cQ=y((ylt,L$)=>{var nKe=9007199254740991;function sKe(r){return typeof r==\"number\"&&r>-1&&r%1==0&&r<=nKe}L$.exports=sKe});var dL=y((wlt,T$)=>{var oKe=Oh(),aKe=Sm(),AKe=ws(),lKe=bm(),cKe=cQ(),uKe=fu();function gKe(r,e,t){e=oKe(e,r);for(var i=-1,n=e.length,s=!1;++i<n;){var o=uKe(e[i]);if(!(s=r!=null&&t(r,o)))break;r=r[o]}return s||++i!=n?s:(n=r==null?0:r.length,!!n&&cKe(n)&&lKe(o,n)&&(AKe(r)||aKe(r)))}T$.exports=gKe});var CL=y((Blt,O$)=>{var fKe=P$(),hKe=dL();function pKe(r,e){return r!=null&&hKe(r,e,fKe)}O$.exports=pKe});var K$=y((Qlt,M$)=>{var dKe=v$(),CKe=CL();function mKe(r,e){return dKe(r,e,function(t,i){return CKe(r,i)})}M$.exports=mKe});var uQ=y((blt,U$)=>{function EKe(r,e){for(var t=-1,i=e.length,n=r.length;++t<i;)r[n+t]=e[t];return r}U$.exports=EKe});var j$=y((Slt,Y$)=>{var H$=Jc(),IKe=Sm(),yKe=ws(),G$=H$?H$.isConcatSpreadable:void 0;function wKe(r){return yKe(r)||IKe(r)||!!(G$&&r&&r[G$])}Y$.exports=wKe});var W$=y((vlt,J$)=>{var BKe=uQ(),QKe=j$();function q$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=QKe),n||(n=[]);++s<o;){var a=r[s];e>0&&t(a)?e>1?q$(a,e-1,t,i,n):BKe(n,a):i||(n[n.length]=a)}return n}J$.exports=q$});var V$=y((xlt,z$)=>{var bKe=W$();function SKe(r){var e=r==null?0:r.length;return e?bKe(r,1):[]}z$.exports=SKe});var _$=y((Plt,X$)=>{function vKe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}X$.exports=vKe});var mL=y((Dlt,$$)=>{var xKe=_$(),Z$=Math.max;function PKe(r,e,t){return e=Z$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=Z$(i.length-e,0),o=Array(s);++n<s;)o[n]=i[e+n];n=-1;for(var a=Array(e+1);++n<e;)a[n]=i[n];return a[e]=t(o),xKe(r,this,a)}}$$.exports=PKe});var tee=y((klt,eee)=>{function DKe(r){return function(){return r}}eee.exports=DKe});var gQ=y((Rlt,ree)=>{function kKe(r){return r}ree.exports=kKe});var see=y((Flt,nee)=>{var RKe=tee(),iee=hL(),FKe=gQ(),NKe=iee?function(r,e){return iee(r,\"toString\",{configurable:!0,enumerable:!1,value:RKe(e),writable:!0})}:FKe;nee.exports=NKe});var aee=y((Nlt,oee)=>{var LKe=800,TKe=16,OKe=Date.now;function MKe(r){var e=0,t=0;return function(){var i=OKe(),n=TKe-(i-t);if(t=i,n>0){if(++e>=LKe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}oee.exports=MKe});var EL=y((Llt,Aee)=>{var KKe=see(),UKe=aee(),HKe=UKe(KKe);Aee.exports=HKe});var cee=y((Tlt,lee)=>{var GKe=V$(),YKe=mL(),jKe=EL();function qKe(r){return jKe(YKe(r,void 0,GKe),r+\"\")}lee.exports=qKe});var gee=y((Olt,uee)=>{var JKe=K$(),WKe=cee(),zKe=WKe(function(r,e){return r==null?{}:JKe(r,e)});uee.exports=zKe});var bee=y((rut,Qee)=>{\"use strict\";var vL;try{vL=Map}catch{}var xL;try{xL=Set}catch{}function wee(r,e,t){if(!r||typeof r!=\"object\"||typeof r==\"function\")return r;if(r.nodeType&&\"cloneNode\"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(Bee);if(vL&&r instanceof vL)return new Map(Array.from(r.entries()));if(xL&&r instanceof xL)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:wee(r[n],e,t)}return i}return r}function Bee(r){return wee(r,[],[])}Qee.exports=Bee});var xm=y(PL=>{\"use strict\";Object.defineProperty(PL,\"__esModule\",{value:!0});PL.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<\"u\"?Symbol.prototype.toString:()=>\"\",a1e=/^Symbol\\((.*)\\)(.*)$/;function A1e(r){return r!=+r?\"NaN\":r===0&&1/r<0?\"-0\":\"\"+r}function See(r,e=!1){if(r==null||r===!0||r===!1)return\"\"+r;let t=typeof r;if(t===\"number\")return A1e(r);if(t===\"string\")return e?`\"${r}\"`:r;if(t===\"function\")return\"[Function \"+(r.name||\"anonymous\")+\"]\";if(t===\"symbol\")return o1e.call(r).replace(a1e,\"Symbol($1)\");let i=i1e.call(r).slice(8,-1);return i===\"Date\"?isNaN(r.getTime())?\"\"+r:r.toISOString(r):i===\"Error\"||r instanceof Error?\"[\"+n1e.call(r)+\"]\":i===\"RegExp\"?s1e.call(r):null}function l1e(r,e){let t=See(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=See(this[i],e);return s!==null?s:n},2)}});var iA=y(wi=>{\"use strict\";Object.defineProperty(wi,\"__esModule\",{value:!0});wi.default=wi.array=wi.object=wi.boolean=wi.date=wi.number=wi.string=wi.mixed=void 0;var vee=c1e(xm());function c1e(r){return r&&r.__esModule?r:{default:r}}var xee={default:\"${path} is invalid\",required:\"${path} is a required field\",oneOf:\"${path} must be one of the following values: ${values}\",notOneOf:\"${path} must not be one of the following values: ${values}\",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \\`${e}\\` type, but the final value was: \\`${(0,vee.default)(t,!0)}\\``+(n?` (cast from the value \\`${(0,vee.default)(i,!0)}\\`).`:\".\");return t===null&&(s+='\\n If \"null\" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:\"${path} must be defined\"};wi.mixed=xee;var Pee={length:\"${path} must be exactly ${length} characters\",min:\"${path} must be at least ${min} characters\",max:\"${path} must be at most ${max} characters\",matches:'${path} must match the following: \"${regex}\"',email:\"${path} must be a valid email\",url:\"${path} must be a valid URL\",uuid:\"${path} must be a valid UUID\",trim:\"${path} must be a trimmed string\",lowercase:\"${path} must be a lowercase string\",uppercase:\"${path} must be a upper case string\"};wi.string=Pee;var Dee={min:\"${path} must be greater than or equal to ${min}\",max:\"${path} must be less than or equal to ${max}\",lessThan:\"${path} must be less than ${less}\",moreThan:\"${path} must be greater than ${more}\",positive:\"${path} must be a positive number\",negative:\"${path} must be a negative number\",integer:\"${path} must be an integer\"};wi.number=Dee;var kee={min:\"${path} field must be later than ${min}\",max:\"${path} field must be at earlier than ${max}\"};wi.date=kee;var Ree={isValue:\"${path} field must be ${value}\"};wi.boolean=Ree;var Fee={noUnknown:\"${path} field has unspecified keys: ${unknown}\"};wi.object=Fee;var Nee={min:\"${path} field must have at least ${min} items\",max:\"${path} field must have less than or equal to ${max} items\",length:\"${path} must be have ${length} items\"};wi.array=Nee;var u1e=Object.assign(Object.create(null),{mixed:xee,string:Pee,number:Dee,date:kee,object:Fee,array:Nee,boolean:Ree});wi.default=u1e});var Tee=y((sut,Lee)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}Lee.exports=h1e});var Pm=y((out,Oee)=>{var p1e=Tee(),d1e=dL();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}Oee.exports=C1e});var Gh=y(yQ=>{\"use strict\";Object.defineProperty(yQ,\"__esModule\",{value:!0});yQ.default=void 0;var m1e=r=>r&&r.__isYupSchema__;yQ.default=m1e});var Kee=y(wQ=>{\"use strict\";Object.defineProperty(wQ,\"__esModule\",{value:!0});wQ.default=void 0;var E1e=Mee(Pm()),I1e=Mee(Gh());function Mee(r){return r&&r.__esModule?r:{default:r}}var DL=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t==\"function\"){this.fn=t;return}if(!(0,E1e.default)(t,\"is\"))throw new TypeError(\"`is:` is required for `when()` conditions\");if(!t.then&&!t.otherwise)throw new TypeError(\"either `then:` or `otherwise:` is required for `when()` conditions\");let{is:i,then:n,otherwise:s}=t,o=typeof i==\"function\"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u==\"function\"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError(\"conditions must return a schema object\");return n.resolve(t)}},y1e=DL;wQ.default=y1e});var RL=y(kL=>{\"use strict\";Object.defineProperty(kL,\"__esModule\",{value:!0});kL.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var hu=y(BQ=>{\"use strict\";Object.defineProperty(BQ,\"__esModule\",{value:!0});BQ.default=void 0;var B1e=Uee(xm()),Q1e=Uee(RL());function Uee(r){return r&&r.__esModule?r:{default:r}}function FL(){return FL=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},FL.apply(this,arguments)}var b1e=/\\$\\{\\s*(\\w+)\\s*\\}/g,Yh=class extends Error{static formatError(e,t){let i=t.label||t.path||\"this\";return i!==t.path&&(t=FL({},t,{path:i})),typeof e==\"string\"?e.replace(b1e,(n,s)=>(0,B1e.default)(t[s])):typeof e==\"function\"?e(t):e}static isError(e){return e&&e.name===\"ValidationError\"}constructor(e,t,i,n){super(),this.name=\"ValidationError\",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,Q1e.default)(e).forEach(s=>{Yh.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Yh)}};BQ.default=Yh});var QQ=y(LL=>{\"use strict\";Object.defineProperty(LL,\"__esModule\",{value:!0});LL.default=x1e;var NL=S1e(hu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function x1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new NL.default(o,s,l)):c(null,s);for(let f=0;f<i.length;f++){let h=i[f];h(n,function(C){if(C){if(!NL.default.isError(C))return c(C,s);if(t)return C.value=s,c(C,s);g.push(C)}if(--u<=0){if(g.length&&(a&&g.sort(a),o.length&&g.push(...o),o=g),o.length){c(new NL.default(o,s,l),s);return}c(null,s)}})}}});var Gee=y((gut,Hee)=>{function P1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}Hee.exports=P1e});var TL=y((fut,Yee)=>{var D1e=Gee(),k1e=D1e();Yee.exports=k1e});var qee=y((hut,jee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t<r;)i[t]=e(t);return i}jee.exports=R1e});var Wee=y((put,Jee)=>{function F1e(){return!1}Jee.exports=F1e});var km=y((Dm,jh)=>{var N1e=Cs(),L1e=Wee(),Xee=typeof Dm==\"object\"&&Dm&&!Dm.nodeType&&Dm,zee=Xee&&typeof jh==\"object\"&&jh&&!jh.nodeType&&jh,T1e=zee&&zee.exports===Xee,Vee=T1e?N1e.Buffer:void 0,O1e=Vee?Vee.isBuffer:void 0,M1e=O1e||L1e;jh.exports=M1e});var Zee=y((dut,_ee)=>{var K1e=Wc(),U1e=cQ(),H1e=Jo(),G1e=\"[object Arguments]\",Y1e=\"[object Array]\",j1e=\"[object Boolean]\",q1e=\"[object Date]\",J1e=\"[object Error]\",W1e=\"[object Function]\",z1e=\"[object Map]\",V1e=\"[object Number]\",X1e=\"[object Object]\",_1e=\"[object RegExp]\",Z1e=\"[object Set]\",$1e=\"[object String]\",eUe=\"[object WeakMap]\",tUe=\"[object ArrayBuffer]\",rUe=\"[object DataView]\",iUe=\"[object Float32Array]\",nUe=\"[object Float64Array]\",sUe=\"[object Int8Array]\",oUe=\"[object Int16Array]\",aUe=\"[object Int32Array]\",AUe=\"[object Uint8Array]\",lUe=\"[object Uint8ClampedArray]\",cUe=\"[object Uint16Array]\",uUe=\"[object Uint32Array]\",yr={};yr[iUe]=yr[nUe]=yr[sUe]=yr[oUe]=yr[aUe]=yr[AUe]=yr[lUe]=yr[cUe]=yr[uUe]=!0;yr[G1e]=yr[Y1e]=yr[tUe]=yr[j1e]=yr[rUe]=yr[q1e]=yr[J1e]=yr[W1e]=yr[z1e]=yr[V1e]=yr[X1e]=yr[_1e]=yr[Z1e]=yr[$1e]=yr[eUe]=!1;function gUe(r){return H1e(r)&&U1e(r.length)&&!!yr[K1e(r)]}_ee.exports=gUe});var bQ=y((Cut,$ee)=>{function fUe(r){return function(e){return r(e)}}$ee.exports=fUe});var SQ=y((Rm,qh)=>{var hUe=Lk(),ete=typeof Rm==\"object\"&&Rm&&!Rm.nodeType&&Rm,Fm=ete&&typeof qh==\"object\"&&qh&&!qh.nodeType&&qh,pUe=Fm&&Fm.exports===ete,OL=pUe&&hUe.process,dUe=function(){try{var r=Fm&&Fm.require&&Fm.require(\"util\").types;return r||OL&&OL.binding&&OL.binding(\"util\")}catch{}}();qh.exports=dUe});var vQ=y((mut,ite)=>{var CUe=Zee(),mUe=bQ(),tte=SQ(),rte=tte&&tte.isTypedArray,EUe=rte?mUe(rte):CUe;ite.exports=EUe});var ML=y((Eut,nte)=>{var IUe=qee(),yUe=Sm(),wUe=ws(),BUe=km(),QUe=bm(),bUe=vQ(),SUe=Object.prototype,vUe=SUe.hasOwnProperty;function xUe(r,e){var t=wUe(r),i=!t&&yUe(r),n=!t&&!i&&BUe(r),s=!t&&!i&&!n&&bUe(r),o=t||i||n||s,a=o?IUe(r.length,String):[],l=a.length;for(var c in r)(e||vUe.call(r,c))&&!(o&&(c==\"length\"||n&&(c==\"offset\"||c==\"parent\")||s&&(c==\"buffer\"||c==\"byteLength\"||c==\"byteOffset\")||QUe(c,l)))&&a.push(c);return a}nte.exports=xUe});var xQ=y((Iut,ste)=>{var PUe=Object.prototype;function DUe(r){var e=r&&r.constructor,t=typeof e==\"function\"&&e.prototype||PUe;return r===t}ste.exports=DUe});var KL=y((yut,ote)=>{function kUe(r,e){return function(t){return r(e(t))}}ote.exports=kUe});var Ate=y((wut,ate)=>{var RUe=KL(),FUe=RUe(Object.keys,Object);ate.exports=FUe});var cte=y((But,lte)=>{var NUe=xQ(),LUe=Ate(),TUe=Object.prototype,OUe=TUe.hasOwnProperty;function MUe(r){if(!NUe(r))return LUe(r);var e=[];for(var t in Object(r))OUe.call(r,t)&&t!=\"constructor\"&&e.push(t);return e}lte.exports=MUe});var Nm=y((Qut,ute)=>{var KUe=oQ(),UUe=cQ();function HUe(r){return r!=null&&UUe(r.length)&&!KUe(r)}ute.exports=HUe});var Jh=y((but,gte)=>{var GUe=ML(),YUe=cte(),jUe=Nm();function qUe(r){return jUe(r)?GUe(r):YUe(r)}gte.exports=qUe});var UL=y((Sut,fte)=>{var JUe=TL(),WUe=Jh();function zUe(r,e){return r&&JUe(r,e,WUe)}fte.exports=zUe});var pte=y((vut,hte)=>{var VUe=wm();function XUe(){this.__data__=new VUe,this.size=0}hte.exports=XUe});var Cte=y((xut,dte)=>{function _Ue(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}dte.exports=_Ue});var Ete=y((Put,mte)=>{function ZUe(r){return this.__data__.get(r)}mte.exports=ZUe});var yte=y((Dut,Ite)=>{function $Ue(r){return this.__data__.has(r)}Ite.exports=$Ue});var Bte=y((kut,wte)=>{var e2e=wm(),t2e=aQ(),r2e=AQ(),i2e=200;function n2e(r,e){var t=this.__data__;if(t instanceof e2e){var i=t.__data__;if(!t2e||i.length<i2e-1)return i.push([r,e]),this.size=++t.size,this;t=this.__data__=new r2e(i)}return t.set(r,e),this.size=t.size,this}wte.exports=n2e});var Lm=y((Rut,Qte)=>{var s2e=wm(),o2e=pte(),a2e=Cte(),A2e=Ete(),l2e=yte(),c2e=Bte();function Wh(r){var e=this.__data__=new s2e(r);this.size=e.size}Wh.prototype.clear=o2e;Wh.prototype.delete=a2e;Wh.prototype.get=A2e;Wh.prototype.has=l2e;Wh.prototype.set=c2e;Qte.exports=Wh});var Ste=y((Fut,bte)=>{var u2e=\"__lodash_hash_undefined__\";function g2e(r){return this.__data__.set(r,u2e),this}bte.exports=g2e});var xte=y((Nut,vte)=>{function f2e(r){return this.__data__.has(r)}vte.exports=f2e});var Dte=y((Lut,Pte)=>{var h2e=AQ(),p2e=Ste(),d2e=xte();function PQ(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new h2e;++e<t;)this.add(r[e])}PQ.prototype.add=PQ.prototype.push=p2e;PQ.prototype.has=d2e;Pte.exports=PQ});var Rte=y((Tut,kte)=>{function C2e(r,e){for(var t=-1,i=r==null?0:r.length;++t<i;)if(e(r[t],t,r))return!0;return!1}kte.exports=C2e});var Nte=y((Out,Fte)=>{function m2e(r,e){return r.has(e)}Fte.exports=m2e});var HL=y((Mut,Lte)=>{var E2e=Dte(),I2e=Rte(),y2e=Nte(),w2e=1,B2e=2;function Q2e(r,e,t,i,n,s){var o=t&w2e,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,f=!0,h=t&B2e?new E2e:void 0;for(s.set(r,e),s.set(e,r);++g<a;){var p=r[g],C=e[g];if(i)var w=o?i(C,p,g,e,r,s):i(p,C,g,r,e,s);if(w!==void 0){if(w)continue;f=!1;break}if(h){if(!I2e(e,function(B,v){if(!y2e(h,v)&&(p===B||n(p,B,t,i,s)))return h.push(v)})){f=!1;break}}else if(!(p===C||n(p,C,t,i,s))){f=!1;break}}return s.delete(r),s.delete(e),f}Lte.exports=Q2e});var GL=y((Kut,Tte)=>{var b2e=Cs(),S2e=b2e.Uint8Array;Tte.exports=S2e});var Mte=y((Uut,Ote)=>{function v2e(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}Ote.exports=v2e});var Ute=y((Hut,Kte)=>{function x2e(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}Kte.exports=x2e});var qte=y((Gut,jte)=>{var Hte=Jc(),Gte=GL(),P2e=Nh(),D2e=HL(),k2e=Mte(),R2e=Ute(),F2e=1,N2e=2,L2e=\"[object Boolean]\",T2e=\"[object Date]\",O2e=\"[object Error]\",M2e=\"[object Map]\",K2e=\"[object Number]\",U2e=\"[object RegExp]\",H2e=\"[object Set]\",G2e=\"[object String]\",Y2e=\"[object Symbol]\",j2e=\"[object ArrayBuffer]\",q2e=\"[object DataView]\",Yte=Hte?Hte.prototype:void 0,YL=Yte?Yte.valueOf:void 0;function J2e(r,e,t,i,n,s,o){switch(t){case q2e:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case j2e:return!(r.byteLength!=e.byteLength||!s(new Gte(r),new Gte(e)));case L2e:case T2e:case K2e:return P2e(+r,+e);case O2e:return r.name==e.name&&r.message==e.message;case U2e:case G2e:return r==e+\"\";case M2e:var a=k2e;case H2e:var l=i&F2e;if(a||(a=R2e),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=N2e,o.set(r,e);var u=D2e(a(r),a(e),i,n,s,o);return o.delete(r),u;case Y2e:if(YL)return YL.call(r)==YL.call(e)}return!1}jte.exports=J2e});var jL=y((Yut,Jte)=>{var W2e=uQ(),z2e=ws();function V2e(r,e,t){var i=e(r);return z2e(r)?i:W2e(i,t(r))}Jte.exports=V2e});var zte=y((jut,Wte)=>{function X2e(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t<i;){var o=r[t];e(o,t,r)&&(s[n++]=o)}return s}Wte.exports=X2e});var qL=y((qut,Vte)=>{function _2e(){return[]}Vte.exports=_2e});var DQ=y((Jut,_te)=>{var Z2e=zte(),$2e=qL(),eHe=Object.prototype,tHe=eHe.propertyIsEnumerable,Xte=Object.getOwnPropertySymbols,rHe=Xte?function(r){return r==null?[]:(r=Object(r),Z2e(Xte(r),function(e){return tHe.call(r,e)}))}:$2e;_te.exports=rHe});var JL=y((Wut,Zte)=>{var iHe=jL(),nHe=DQ(),sHe=Jh();function oHe(r){return iHe(r,sHe,nHe)}Zte.exports=oHe});var tre=y((zut,ere)=>{var $te=JL(),aHe=1,AHe=Object.prototype,lHe=AHe.hasOwnProperty;function cHe(r,e,t,i,n,s){var o=t&aHe,a=$te(r),l=a.length,c=$te(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var f=a[g];if(!(o?f in e:lHe.call(e,f)))return!1}var h=s.get(r),p=s.get(e);if(h&&p)return h==e&&p==r;var C=!0;s.set(r,e),s.set(e,r);for(var w=o;++g<l;){f=a[g];var B=r[f],v=e[f];if(i)var D=o?i(v,B,f,e,r,s):i(B,v,f,r,e,s);if(!(D===void 0?B===v||n(B,v,t,i,s):D)){C=!1;break}w||(w=f==\"constructor\")}if(C&&!w){var L=r.constructor,H=e.constructor;L!=H&&\"constructor\"in r&&\"constructor\"in e&&!(typeof L==\"function\"&&L instanceof L&&typeof H==\"function\"&&H instanceof H)&&(C=!1)}return s.delete(r),s.delete(e),C}ere.exports=cHe});var ire=y((Vut,rre)=>{var uHe=ml(),gHe=Cs(),fHe=uHe(gHe,\"DataView\");rre.exports=fHe});var sre=y((Xut,nre)=>{var hHe=ml(),pHe=Cs(),dHe=hHe(pHe,\"Promise\");nre.exports=dHe});var are=y((_ut,ore)=>{var CHe=ml(),mHe=Cs(),EHe=CHe(mHe,\"Set\");ore.exports=EHe});var lre=y((Zut,Are)=>{var IHe=ml(),yHe=Cs(),wHe=IHe(yHe,\"WeakMap\");Are.exports=wHe});var Tm=y(($ut,dre)=>{var WL=ire(),zL=aQ(),VL=sre(),XL=are(),_L=lre(),pre=Wc(),zh=gL(),cre=\"[object Map]\",BHe=\"[object Object]\",ure=\"[object Promise]\",gre=\"[object Set]\",fre=\"[object WeakMap]\",hre=\"[object DataView]\",QHe=zh(WL),bHe=zh(zL),SHe=zh(VL),vHe=zh(XL),xHe=zh(_L),pu=pre;(WL&&pu(new WL(new ArrayBuffer(1)))!=hre||zL&&pu(new zL)!=cre||VL&&pu(VL.resolve())!=ure||XL&&pu(new XL)!=gre||_L&&pu(new _L)!=fre)&&(pu=function(r){var e=pre(r),t=e==BHe?r.constructor:void 0,i=t?zh(t):\"\";if(i)switch(i){case QHe:return hre;case bHe:return cre;case SHe:return ure;case vHe:return gre;case xHe:return fre}return e});dre.exports=pu});var Qre=y((egt,Bre)=>{var ZL=Lm(),PHe=HL(),DHe=qte(),kHe=tre(),Cre=Tm(),mre=ws(),Ere=km(),RHe=vQ(),FHe=1,Ire=\"[object Arguments]\",yre=\"[object Array]\",kQ=\"[object Object]\",NHe=Object.prototype,wre=NHe.hasOwnProperty;function LHe(r,e,t,i,n,s){var o=mre(r),a=mre(e),l=o?yre:Cre(r),c=a?yre:Cre(e);l=l==Ire?kQ:l,c=c==Ire?kQ:c;var u=l==kQ,g=c==kQ,f=l==c;if(f&&Ere(r)){if(!Ere(e))return!1;o=!0,u=!1}if(f&&!u)return s||(s=new ZL),o||RHe(r)?PHe(r,e,t,i,n,s):DHe(r,e,l,t,i,n,s);if(!(t&FHe)){var h=u&&wre.call(r,\"__wrapped__\"),p=g&&wre.call(e,\"__wrapped__\");if(h||p){var C=h?r.value():r,w=p?e.value():e;return s||(s=new ZL),n(C,w,t,i,s)}}return f?(s||(s=new ZL),kHe(r,e,t,i,n,s)):!1}Bre.exports=LHe});var $L=y((tgt,vre)=>{var THe=Qre(),bre=Jo();function Sre(r,e,t,i,n){return r===e?!0:r==null||e==null||!bre(r)&&!bre(e)?r!==r&&e!==e:THe(r,e,t,i,Sre,n)}vre.exports=Sre});var Pre=y((rgt,xre)=>{var OHe=Lm(),MHe=$L(),KHe=1,UHe=2;function HHe(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n<s;){a=t[n];var l=a[0],c=r[l],u=a[1];if(o&&a[2]){if(c===void 0&&!(l in r))return!1}else{var g=new OHe;if(i)var f=i(c,u,l,r,e,g);if(!(f===void 0?MHe(u,c,KHe|UHe,i,g):f))return!1}}return!0}xre.exports=HHe});var eT=y((igt,Dre)=>{var GHe=Sn();function YHe(r){return r===r&&!GHe(r)}Dre.exports=YHe});var Rre=y((ngt,kre)=>{var jHe=eT(),qHe=Jh();function JHe(r){for(var e=qHe(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,jHe(n)]}return e}kre.exports=JHe});var tT=y((sgt,Fre)=>{function WHe(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Fre.exports=WHe});var Lre=y((ogt,Nre)=>{var zHe=Pre(),VHe=Rre(),XHe=tT();function _He(r){var e=VHe(r);return e.length==1&&e[0][2]?XHe(e[0][0],e[0][1]):function(t){return t===r||zHe(t,r,e)}}Nre.exports=_He});var RQ=y((agt,Tre)=>{var ZHe=Qm();function $He(r,e,t){var i=r==null?void 0:ZHe(r,e);return i===void 0?t:i}Tre.exports=$He});var Mre=y((Agt,Ore)=>{var eGe=$L(),tGe=RQ(),rGe=CL(),iGe=sQ(),nGe=eT(),sGe=tT(),oGe=fu(),aGe=1,AGe=2;function lGe(r,e){return iGe(r)&&nGe(e)?sGe(oGe(r),e):function(t){var i=tGe(t,r);return i===void 0&&i===e?rGe(t,r):eGe(e,i,aGe|AGe)}}Ore.exports=lGe});var Ure=y((lgt,Kre)=>{function cGe(r){return function(e){return e==null?void 0:e[r]}}Kre.exports=cGe});var Gre=y((cgt,Hre)=>{var uGe=Qm();function gGe(r){return function(e){return uGe(e,r)}}Hre.exports=gGe});var jre=y((ugt,Yre)=>{var fGe=Ure(),hGe=Gre(),pGe=sQ(),dGe=fu();function CGe(r){return pGe(r)?fGe(dGe(r)):hGe(r)}Yre.exports=CGe});var rT=y((ggt,qre)=>{var mGe=Lre(),EGe=Mre(),IGe=gQ(),yGe=ws(),wGe=jre();function BGe(r){return typeof r==\"function\"?r:r==null?IGe:typeof r==\"object\"?yGe(r)?EGe(r[0],r[1]):mGe(r):wGe(r)}qre.exports=BGe});var iT=y((fgt,Jre)=>{var QGe=Mh(),bGe=UL(),SGe=rT();function vGe(r,e){var t={};return e=SGe(e,3),bGe(r,function(i,n,s){QGe(t,n,e(i,n,s))}),t}Jre.exports=vGe});var Om=y((hgt,_re)=>{\"use strict\";function du(r){this._maxSize=r,this.clear()}du.prototype.clear=function(){this._size=0,this._values=Object.create(null)};du.prototype.get=function(r){return this._values[r]};du.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var xGe=/[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,Xre=/^\\d+$/,PGe=/^\\d/,DGe=/[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,kGe=/^\\s*(['\"]?)(.*?)(\\1)\\s*$/,oT=512,Wre=new du(oT),zre=new du(oT),Vre=new du(oT);_re.exports={Cache:du,split:sT,normalizePath:nT,setter:function(r){var e=nT(r);return zre.get(r)||zre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s<o-1;){var l=e[s];if(l===\"__proto__\"||l===\"constructor\"||l===\"prototype\")return i;a=a[e[s++]]}a[e[s]]=n})},getter:function(r,e){var t=nT(r);return Vre.get(r)||Vre.set(r,function(n){for(var s=0,o=t.length;s<o;)if(n!=null||!e)n=n[t[s++]];else return;return n})},join:function(r){return r.reduce(function(e,t){return e+(aT(t)||Xre.test(t)?\"[\"+t+\"]\":(e?\".\":\"\")+t)},\"\")},forEach:function(r,e,t){RGe(Array.isArray(r)?r:sT(r),e,t)}};function nT(r){return Wre.get(r)||Wre.set(r,sT(r).map(function(e){return e.replace(kGe,\"$2\")}))}function sT(r){return r.match(xGe)}function RGe(r,e,t){var i=r.length,n,s,o,a;for(s=0;s<i;s++)n=r[s],n&&(LGe(n)&&(n='\"'+n+'\"'),a=aT(n),o=!a&&/^\\d+$/.test(n),e.call(t,n,a,o,s,r))}function aT(r){return typeof r==\"string\"&&r&&[\"'\",'\"'].indexOf(r.charAt(0))!==-1}function FGe(r){return r.match(PGe)&&!r.match(Xre)}function NGe(r){return DGe.test(r)}function LGe(r){return!aT(r)&&(FGe(r)||NGe(r))}});var Cu=y(Km=>{\"use strict\";Object.defineProperty(Km,\"__esModule\",{value:!0});Km.create=OGe;Km.default=void 0;var TGe=Om(),FQ={context:\"$\",value:\".\"};function OGe(r,e){return new Mm(r,e)}var Mm=class{constructor(e,t={}){if(typeof e!=\"string\")throw new TypeError(\"ref must be a string, got: \"+e);if(this.key=e.trim(),e===\"\")throw new TypeError(\"ref must be a non-empty string\");this.isContext=this.key[0]===FQ.context,this.isValue=this.key[0]===FQ.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?FQ.context:this.isValue?FQ.value:\"\";this.path=this.key.slice(i.length),this.getter=this.path&&(0,TGe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:\"ref\",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Km.default=Mm;Mm.prototype.__isYupRef=!0});var Zre=y(lT=>{\"use strict\";Object.defineProperty(lT,\"__esModule\",{value:!0});lT.default=HGe;var MGe=AT(iT()),NQ=AT(hu()),KGe=AT(Cu());function AT(r){return r&&r.__esModule?r:{default:r}}function LQ(){return LQ=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},LQ.apply(this,arguments)}function UGe(r,e){if(r==null)return{};var t={},i=Object.keys(r),n,s;for(s=0;s<i.length;s++)n=i[s],!(e.indexOf(n)>=0)&&(t[n]=r[n]);return t}function HGe(r){function e(t,i){let{value:n,path:s=\"\",label:o,options:a,originalValue:l,sync:c}=t,u=UGe(t,[\"value\",\"path\",\"label\",\"options\",\"originalValue\",\"sync\"]),{name:g,test:f,params:h,message:p}=r,{parent:C,context:w}=a;function B(j){return KGe.default.isRef(j)?j.getValue(n,C,w):j}function v(j={}){let $=(0,MGe.default)(LQ({value:n,originalValue:l,label:o,path:j.path||s},h,j.params),B),V=new NQ.default(NQ.default.formatError(j.message||p,$),n,$.path,j.type||g);return V.params=$,V}let D=LQ({path:s,parent:C,type:g,createError:v,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(f.call(D,n,D)).then(j=>{NQ.default.isError(j)?i(j):j?i(null,j):i(v())})}catch(j){i(j)}return}let L;try{var H;if(L=f.call(D,n,D),typeof((H=L)==null?void 0:H.then)==\"function\")throw new Error(`Validation test of type: \"${D.type}\" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(j){i(j);return}NQ.default.isError(L)?i(L):L?i(null,L):i(v())}return e.OPTIONS=r,e}});var cT=y(Um=>{\"use strict\";Object.defineProperty(Um,\"__esModule\",{value:!0});Um.getIn=$re;Um.default=void 0;var GGe=Om(),YGe=r=>r.substr(0,r.length-1).substr(1);function $re(r,e,t,i=t){let n,s,o;return e?((0,GGe.forEach)(e,(a,l,c)=>{let u=l?YGe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: \"${r._type}\")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?\"[\"+a+\"]\":\".\"+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var jGe=(r,e,t,i)=>$re(r,e,t,i).schema,qGe=jGe;Um.default=qGe});var tie=y(TQ=>{\"use strict\";Object.defineProperty(TQ,\"__esModule\",{value:!0});TQ.default=void 0;var eie=JGe(Cu());function JGe(r){return r&&r.__esModule?r:{default:r}}var Hm=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){eie.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){eie.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Hm;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};TQ.default=Hm});var sA=y(MQ=>{\"use strict\";Object.defineProperty(MQ,\"__esModule\",{value:!0});MQ.default=void 0;var rie=nA(bee()),Vh=iA(),WGe=nA(Kee()),iie=nA(QQ()),OQ=nA(Zre()),nie=nA(xm()),zGe=nA(Cu()),VGe=cT(),XGe=nA(RL()),sie=nA(hu()),oie=nA(tie());function nA(r){return r&&r.__esModule?r:{default:r}}function Ps(){return Ps=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Ps.apply(this,arguments)}var oo=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new oie.default,this._blacklist=new oie.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Vh.mixed.notType)}),this.type=(e==null?void 0:e.type)||\"mixed\",this.spec=Ps({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:\"optional\"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Ps({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,rie.default)(Ps({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!==\"mixed\")throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Ps({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Ps({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,nie.default)(e),o=(0,nie.default)(n);throw new TypeError(`The value of ${t.path||\"field\"} could not be cast to a value that satisfies the schema type: \"${i._type}\". \n\nattempted value: ${s} \n`+(o!==s?`result of cast: ${o}`:\"\"))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Ps({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,iie.default)({args:g,value:u,path:s,sync:n,tests:f,endEarly:c},h=>{if(h)return void i(h,u);(0,iie.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Ps({},t,{value:e}));return typeof i==\"function\"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Ps({},t,{value:e})),n;return i._validate(e,Ps({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(sie.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(sie.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e==\"function\"?e.call(this):(0,rie.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Vh.mixed.defined){return this.test({message:e,name:\"defined\",exclusive:!0,test(t){return t!==void 0}})}required(e=Vh.mixed.required){return this.clone({presence:\"required\"}).withMutation(t=>t.test({message:e,name:\"required\",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:\"optional\"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!==\"required\"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]==\"function\"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Vh.mixed.default),typeof t.test!=\"function\")throw new TypeError(\"`test` is a required parameters\");let i=this.clone(),n=(0,OQ.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError(\"Exclusive tests must provide a unique `name` identifying the test\");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!=\"string\"&&(t=e,e=\".\");let i=this.clone(),n=(0,XGe.default)(e).map(s=>new zGe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WGe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,OQ.default)({message:e,name:\"typeError\",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Vh.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,OQ.default)({message:t,name:\"oneOf\",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(\", \")}})}}),i}notOneOf(e,t=Vh.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,OQ.default)({message:t,name:\"notOneOf\",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(\", \")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};MQ.default=oo;oo.prototype.__isYupSchema__=!0;for(let r of[\"validate\",\"validateSync\"])oo.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VGe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Ps({},i,{parent:n,path:e}))};for(let r of[\"equals\",\"is\"])oo.prototype[r]=oo.prototype.oneOf;for(let r of[\"not\",\"nope\"])oo.prototype[r]=oo.prototype.notOneOf;oo.prototype.optional=oo.prototype.notRequired});var Aie=y(Gm=>{\"use strict\";Object.defineProperty(Gm,\"__esModule\",{value:!0});Gm.create=aie;Gm.default=void 0;var _Ge=ZGe(sA());function ZGe(r){return r&&r.__esModule?r:{default:r}}var uT=_Ge.default,$Ge=uT;Gm.default=$Ge;function aie(){return new uT}aie.prototype=uT.prototype});var Xh=y(KQ=>{\"use strict\";Object.defineProperty(KQ,\"__esModule\",{value:!0});KQ.default=void 0;var eYe=r=>r==null;KQ.default=eYe});var fie=y(jm=>{\"use strict\";Object.defineProperty(jm,\"__esModule\",{value:!0});jm.create=gie;jm.default=void 0;var tYe=uie(sA()),lie=iA(),cie=uie(Xh());function uie(r){return r&&r.__esModule?r:{default:r}}function gie(){return new Ym}var Ym=class extends tYe.default{constructor(){super({type:\"boolean\"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e==\"boolean\"}isTrue(e=lie.boolean.isValue){return this.test({message:e,name:\"is-value\",exclusive:!0,params:{value:\"true\"},test(t){return(0,cie.default)(t)||t===!0}})}isFalse(e=lie.boolean.isValue){return this.test({message:e,name:\"is-value\",exclusive:!0,params:{value:\"false\"},test(t){return(0,cie.default)(t)||t===!1}})}};jm.default=Ym;gie.prototype=Ym.prototype});var die=y(Jm=>{\"use strict\";Object.defineProperty(Jm,\"__esModule\",{value:!0});Jm.create=pie;Jm.default=void 0;var ra=iA(),oA=hie(Xh()),rYe=hie(sA());function hie(r){return r&&r.__esModule?r:{default:r}}var iYe=/^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i,nYe=/^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i,sYe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oYe=r=>(0,oA.default)(r)||r===r.trim(),aYe={}.toString();function pie(){return new qm}var qm=class extends rYe.default{constructor(){super({type:\"string\"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aYe?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e==\"string\"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:\"length\",exclusive:!0,params:{length:e},test(i){return(0,oA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:\"min\",exclusive:!0,params:{min:e},test(i){return(0,oA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:\"max\",exclusive:!0,message:t,params:{max:e},test(i){return(0,oA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t==\"object\"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||\"matches\",message:n||ra.string.matches,params:{regex:e},test:o=>(0,oA.default)(o)||o===\"\"&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(iYe,{name:\"email\",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nYe,{name:\"url\",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sYe,{name:\"uuid\",message:e,excludeEmptyString:!1})}ensure(){return this.default(\"\").transform(e=>e===null?\"\":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:\"trim\",test:oYe})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,oA.default)(t)?t:t.toLowerCase()).test({message:e,name:\"string_case\",exclusive:!0,test:t=>(0,oA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,oA.default)(t)?t:t.toUpperCase()).test({message:e,name:\"string_case\",exclusive:!0,test:t=>(0,oA.default)(t)||t===t.toUpperCase()})}};Jm.default=qm;pie.prototype=qm.prototype});var Eie=y(zm=>{\"use strict\";Object.defineProperty(zm,\"__esModule\",{value:!0});zm.create=mie;zm.default=void 0;var mu=iA(),Eu=Cie(Xh()),AYe=Cie(sA());function Cie(r){return r&&r.__esModule?r:{default:r}}var lYe=r=>r!=+r;function mie(){return new Wm}var Wm=class extends AYe.default{constructor(){super({type:\"number\"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t==\"string\"){if(t=t.replace(/\\s/g,\"\"),t===\"\")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e==\"number\"&&!lYe(e)}min(e,t=mu.number.min){return this.test({message:t,name:\"min\",exclusive:!0,params:{min:e},test(i){return(0,Eu.default)(i)||i>=this.resolve(e)}})}max(e,t=mu.number.max){return this.test({message:t,name:\"max\",exclusive:!0,params:{max:e},test(i){return(0,Eu.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=mu.number.lessThan){return this.test({message:t,name:\"max\",exclusive:!0,params:{less:e},test(i){return(0,Eu.default)(i)||i<this.resolve(e)}})}moreThan(e,t=mu.number.moreThan){return this.test({message:t,name:\"min\",exclusive:!0,params:{more:e},test(i){return(0,Eu.default)(i)||i>this.resolve(e)}})}positive(e=mu.number.positive){return this.moreThan(0,e)}negative(e=mu.number.negative){return this.lessThan(0,e)}integer(e=mu.number.integer){return this.test({name:\"integer\",message:e,test:t=>(0,Eu.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,Eu.default)(e)?e:e|0)}round(e){var t,i=[\"ceil\",\"floor\",\"round\",\"trunc\"];if(e=((t=e)==null?void 0:t.toLowerCase())||\"round\",e===\"trunc\")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError(\"Only valid options for round() are: \"+i.join(\", \"));return this.transform(n=>(0,Eu.default)(n)?n:Math[e](n))}};zm.default=Wm;mie.prototype=Wm.prototype});var Iie=y(gT=>{\"use strict\";Object.defineProperty(gT,\"__esModule\",{value:!0});gT.default=uYe;var cYe=/^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;function uYe(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cYe.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]===\"\")&&(n[9]===void 0||n[9]===\"\")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!==\"Z\"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]===\"+\"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Bie=y(Vm=>{\"use strict\";Object.defineProperty(Vm,\"__esModule\",{value:!0});Vm.create=hT;Vm.default=void 0;var gYe=UQ(Iie()),yie=iA(),wie=UQ(Xh()),fYe=UQ(Cu()),hYe=UQ(sA());function UQ(r){return r&&r.__esModule?r:{default:r}}var fT=new Date(\"\"),pYe=r=>Object.prototype.toString.call(r)===\"[object Date]\";function hT(){return new _h}var _h=class extends hYe.default{constructor(){super({type:\"date\"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gYe.default)(e),isNaN(e)?fT:new Date(e))})})}_typeCheck(e){return pYe(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fYe.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\\`${t}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);i=n}return i}min(e,t=yie.date.min){let i=this.prepareParam(e,\"min\");return this.test({message:t,name:\"min\",exclusive:!0,params:{min:e},test(n){return(0,wie.default)(n)||n>=this.resolve(i)}})}max(e,t=yie.date.max){var i=this.prepareParam(e,\"max\");return this.test({message:t,name:\"max\",exclusive:!0,params:{max:e},test(n){return(0,wie.default)(n)||n<=this.resolve(i)}})}};Vm.default=_h;_h.INVALID_DATE=fT;hT.prototype=_h.prototype;hT.INVALID_DATE=fT});var bie=y((vgt,Qie)=>{function dYe(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n<s;)t=e(t,r[n],n,r);return t}Qie.exports=dYe});var vie=y((xgt,Sie)=>{function CYe(r){return function(e){return r==null?void 0:r[e]}}Sie.exports=CYe});var Pie=y((Pgt,xie)=>{var mYe=vie(),EYe={\\u00C0:\"A\",\\u00C1:\"A\",\\u00C2:\"A\",\\u00C3:\"A\",\\u00C4:\"A\",\\u00C5:\"A\",\\u00E0:\"a\",\\u00E1:\"a\",\\u00E2:\"a\",\\u00E3:\"a\",\\u00E4:\"a\",\\u00E5:\"a\",\\u00C7:\"C\",\\u00E7:\"c\",\\u00D0:\"D\",\\u00F0:\"d\",\\u00C8:\"E\",\\u00C9:\"E\",\\u00CA:\"E\",\\u00CB:\"E\",\\u00E8:\"e\",\\u00E9:\"e\",\\u00EA:\"e\",\\u00EB:\"e\",\\u00CC:\"I\",\\u00CD:\"I\",\\u00CE:\"I\",\\u00CF:\"I\",\\u00EC:\"i\",\\u00ED:\"i\",\\u00EE:\"i\",\\u00EF:\"i\",\\u00D1:\"N\",\\u00F1:\"n\",\\u00D2:\"O\",\\u00D3:\"O\",\\u00D4:\"O\",\\u00D5:\"O\",\\u00D6:\"O\",\\u00D8:\"O\",\\u00F2:\"o\",\\u00F3:\"o\",\\u00F4:\"o\",\\u00F5:\"o\",\\u00F6:\"o\",\\u00F8:\"o\",\\u00D9:\"U\",\\u00DA:\"U\",\\u00DB:\"U\",\\u00DC:\"U\",\\u00F9:\"u\",\\u00FA:\"u\",\\u00FB:\"u\",\\u00FC:\"u\",\\u00DD:\"Y\",\\u00FD:\"y\",\\u00FF:\"y\",\\u00C6:\"Ae\",\\u00E6:\"ae\",\\u00DE:\"Th\",\\u00FE:\"th\",\\u00DF:\"ss\",\\u0100:\"A\",\\u0102:\"A\",\\u0104:\"A\",\\u0101:\"a\",\\u0103:\"a\",\\u0105:\"a\",\\u0106:\"C\",\\u0108:\"C\",\\u010A:\"C\",\\u010C:\"C\",\\u0107:\"c\",\\u0109:\"c\",\\u010B:\"c\",\\u010D:\"c\",\\u010E:\"D\",\\u0110:\"D\",\\u010F:\"d\",\\u0111:\"d\",\\u0112:\"E\",\\u0114:\"E\",\\u0116:\"E\",\\u0118:\"E\",\\u011A:\"E\",\\u0113:\"e\",\\u0115:\"e\",\\u0117:\"e\",\\u0119:\"e\",\\u011B:\"e\",\\u011C:\"G\",\\u011E:\"G\",\\u0120:\"G\",\\u0122:\"G\",\\u011D:\"g\",\\u011F:\"g\",\\u0121:\"g\",\\u0123:\"g\",\\u0124:\"H\",\\u0126:\"H\",\\u0125:\"h\",\\u0127:\"h\",\\u0128:\"I\",\\u012A:\"I\",\\u012C:\"I\",\\u012E:\"I\",\\u0130:\"I\",\\u0129:\"i\",\\u012B:\"i\",\\u012D:\"i\",\\u012F:\"i\",\\u0131:\"i\",\\u0134:\"J\",\\u0135:\"j\",\\u0136:\"K\",\\u0137:\"k\",\\u0138:\"k\",\\u0139:\"L\",\\u013B:\"L\",\\u013D:\"L\",\\u013F:\"L\",\\u0141:\"L\",\\u013A:\"l\",\\u013C:\"l\",\\u013E:\"l\",\\u0140:\"l\",\\u0142:\"l\",\\u0143:\"N\",\\u0145:\"N\",\\u0147:\"N\",\\u014A:\"N\",\\u0144:\"n\",\\u0146:\"n\",\\u0148:\"n\",\\u014B:\"n\",\\u014C:\"O\",\\u014E:\"O\",\\u0150:\"O\",\\u014D:\"o\",\\u014F:\"o\",\\u0151:\"o\",\\u0154:\"R\",\\u0156:\"R\",\\u0158:\"R\",\\u0155:\"r\",\\u0157:\"r\",\\u0159:\"r\",\\u015A:\"S\",\\u015C:\"S\",\\u015E:\"S\",\\u0160:\"S\",\\u015B:\"s\",\\u015D:\"s\",\\u015F:\"s\",\\u0161:\"s\",\\u0162:\"T\",\\u0164:\"T\",\\u0166:\"T\",\\u0163:\"t\",\\u0165:\"t\",\\u0167:\"t\",\\u0168:\"U\",\\u016A:\"U\",\\u016C:\"U\",\\u016E:\"U\",\\u0170:\"U\",\\u0172:\"U\",\\u0169:\"u\",\\u016B:\"u\",\\u016D:\"u\",\\u016F:\"u\",\\u0171:\"u\",\\u0173:\"u\",\\u0174:\"W\",\\u0175:\"w\",\\u0176:\"Y\",\\u0177:\"y\",\\u0178:\"Y\",\\u0179:\"Z\",\\u017B:\"Z\",\\u017D:\"Z\",\\u017A:\"z\",\\u017C:\"z\",\\u017E:\"z\",\\u0132:\"IJ\",\\u0133:\"ij\",\\u0152:\"Oe\",\\u0153:\"oe\",\\u0149:\"'n\",\\u017F:\"s\"},IYe=mYe(EYe);xie.exports=IYe});var kie=y((Dgt,Die)=>{var yYe=Pie(),wYe=uh(),BYe=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,QYe=\"\\\\u0300-\\\\u036f\",bYe=\"\\\\ufe20-\\\\ufe2f\",SYe=\"\\\\u20d0-\\\\u20ff\",vYe=QYe+bYe+SYe,xYe=\"[\"+vYe+\"]\",PYe=RegExp(xYe,\"g\");function DYe(r){return r=wYe(r),r&&r.replace(BYe,yYe).replace(PYe,\"\")}Die.exports=DYe});var Fie=y((kgt,Rie)=>{var kYe=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;function RYe(r){return r.match(kYe)||[]}Rie.exports=RYe});var Lie=y((Rgt,Nie)=>{var FYe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function NYe(r){return FYe.test(r)}Nie.exports=NYe});var ene=y((Fgt,$ie)=>{var Uie=\"\\\\ud800-\\\\udfff\",LYe=\"\\\\u0300-\\\\u036f\",TYe=\"\\\\ufe20-\\\\ufe2f\",OYe=\"\\\\u20d0-\\\\u20ff\",MYe=LYe+TYe+OYe,Hie=\"\\\\u2700-\\\\u27bf\",Gie=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",KYe=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\",UYe=\"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\",HYe=\"\\\\u2000-\\\\u206f\",GYe=\" \\\\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\",Yie=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",YYe=\"\\\\ufe0e\\\\ufe0f\",jie=KYe+UYe+HYe+GYe,qie=\"['\\u2019]\",Tie=\"[\"+jie+\"]\",jYe=\"[\"+MYe+\"]\",Jie=\"\\\\d+\",qYe=\"[\"+Hie+\"]\",Wie=\"[\"+Gie+\"]\",zie=\"[^\"+Uie+jie+Jie+Hie+Gie+Yie+\"]\",JYe=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",WYe=\"(?:\"+jYe+\"|\"+JYe+\")\",zYe=\"[^\"+Uie+\"]\",Vie=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",Xie=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",Zh=\"[\"+Yie+\"]\",VYe=\"\\\\u200d\",Oie=\"(?:\"+Wie+\"|\"+zie+\")\",XYe=\"(?:\"+Zh+\"|\"+zie+\")\",Mie=\"(?:\"+qie+\"(?:d|ll|m|re|s|t|ve))?\",Kie=\"(?:\"+qie+\"(?:D|LL|M|RE|S|T|VE))?\",_ie=WYe+\"?\",Zie=\"[\"+YYe+\"]?\",_Ye=\"(?:\"+VYe+\"(?:\"+[zYe,Vie,Xie].join(\"|\")+\")\"+Zie+_ie+\")*\",ZYe=\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",$Ye=\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",eje=Zie+_ie+_Ye,tje=\"(?:\"+[qYe,Vie,Xie].join(\"|\")+\")\"+eje,rje=RegExp([Zh+\"?\"+Wie+\"+\"+Mie+\"(?=\"+[Tie,Zh,\"$\"].join(\"|\")+\")\",XYe+\"+\"+Kie+\"(?=\"+[Tie,Zh+Oie,\"$\"].join(\"|\")+\")\",Zh+\"?\"+Oie+\"+\"+Mie,Zh+\"+\"+Kie,$Ye,ZYe,Jie,tje].join(\"|\"),\"g\");function ije(r){return r.match(rje)||[]}$ie.exports=ije});var rne=y((Ngt,tne)=>{var nje=Fie(),sje=Lie(),oje=uh(),aje=ene();function Aje(r,e,t){return r=oje(r),e=t?void 0:e,e===void 0?sje(r)?aje(r):nje(r):r.match(e)||[]}tne.exports=Aje});var pT=y((Lgt,ine)=>{var lje=bie(),cje=kie(),uje=rne(),gje=\"['\\u2019]\",fje=RegExp(gje,\"g\");function hje(r){return function(e){return lje(uje(cje(e).replace(fje,\"\")),r,\"\")}}ine.exports=hje});var sne=y((Tgt,nne)=>{var pje=pT(),dje=pje(function(r,e,t){return r+(t?\"_\":\"\")+e.toLowerCase()});nne.exports=dje});var ane=y((Ogt,one)=>{var Cje=r0(),mje=pT(),Eje=mje(function(r,e,t){return e=e.toLowerCase(),r+(t?Cje(e):e)});one.exports=Eje});var lne=y((Mgt,Ane)=>{var Ije=Mh(),yje=UL(),wje=rT();function Bje(r,e){var t={};return e=wje(e,3),yje(r,function(i,n,s){Ije(t,e(i,n,s),i)}),t}Ane.exports=Bje});var une=y((Kgt,dT)=>{dT.exports=function(r){return cne(Qje(r),r)};dT.exports.array=cne;function cne(r,e){var t=r.length,i=new Array(t),n={},s=t,o=bje(e),a=Sje(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error(\"Unknown node. There is an unknown node in the supplied edges.\")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var f;try{f=\", node was:\"+JSON.stringify(c)}catch{f=\"\"}throw new Error(\"Cyclic dependency\"+f)}if(!a.has(c))throw new Error(\"Found unknown node. Make sure to provided all involved nodes. Unknown node: \"+JSON.stringify(c));if(!n[u]){n[u]=!0;var h=o.get(c)||new Set;if(h=Array.from(h),u=h.length){g.add(c);do{var p=h[--u];l(p,a.get(p),g)}while(u);g.delete(c)}i[--t]=c}}}function Qje(r){for(var e=new Set,t=0,i=r.length;t<i;t++){var n=r[t];e.add(n[0]),e.add(n[1])}return Array.from(e)}function bje(r){for(var e=new Map,t=0,i=r.length;t<i;t++){var n=r[t];e.has(n[0])||e.set(n[0],new Set),e.has(n[1])||e.set(n[1],new Set),e.get(n[0]).add(n[1])}return e}function Sje(r){for(var e=new Map,t=0,i=r.length;t<i;t++)e.set(r[t],t);return e}});var gne=y(CT=>{\"use strict\";Object.defineProperty(CT,\"__esModule\",{value:!0});CT.default=Rje;var vje=HQ(Pm()),xje=HQ(une()),Pje=Om(),Dje=HQ(Cu()),kje=HQ(Gh());function HQ(r){return r&&r.__esModule?r:{default:r}}function Rje(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,Pje.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vje.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),Dje.default.isRef(o)&&o.isSibling?n(o.path,s):(0,kje.default)(o)&&\"deps\"in o&&o.deps.forEach(a=>n(a,s))}return xje.default.array(i,t).reverse()}});var hne=y(mT=>{\"use strict\";Object.defineProperty(mT,\"__esModule\",{value:!0});mT.default=Fje;function fne(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function Fje(r){return(e,t)=>fne(r,e)-fne(r,t)}});var yne=y(_m=>{\"use strict\";Object.defineProperty(_m,\"__esModule\",{value:!0});_m.create=Ine;_m.default=void 0;var pne=ia(Pm()),dne=ia(sne()),Nje=ia(ane()),Lje=ia(lne()),Tje=ia(iT()),Oje=Om(),Cne=iA(),Mje=ia(gne()),Ene=ia(hne()),Kje=ia(QQ()),Uje=ia(hu()),ET=ia(sA());function ia(r){return r&&r.__esModule?r:{default:r}}function $h(){return $h=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},$h.apply(this,arguments)}var mne=r=>Object.prototype.toString.call(r)===\"[object Object]\";function Hje(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var Gje=(0,Ene.default)([]),Xm=class extends ET.default{constructor(e){super({type:\"object\"}),this.fields=Object.create(null),this._sortErrors=Gje,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i==\"string\")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return mne(e)||typeof e==\"function\"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=$h({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let f=s[g],h=(0,pne.default)(n,g);if(f){let p,C=n[g];c.path=(t.path?`${t.path}.`:\"\")+g,f=f.resolve({value:C,context:t.context,parent:l});let w=\"spec\"in f?f.spec:void 0,B=w==null?void 0:w.strict;if(w!=null&&w.strip){u=u||g in n;continue}p=!t.__validating||!B?f.cast(n[g],c):n[g],p!==void 0&&(l[g]=p)}else h&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!Uje.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!mne(g)){i(n[0]||null,g);return}a=a||g;let f=this._nodes.map(h=>(p,C)=>{let w=h.indexOf(\".\")===-1?(t.path?`${t.path}.`:\"\")+h:`${t.path||\"\"}[\"${h}\"]`,B=this.fields[h];if(B&&\"validate\"in B){B.validate(g[h],$h({},t,{path:w,from:o,strict:!0,parent:g,originalValue:a[h]}),C);return}C(null)});(0,Kje.default)({sync:s,tests:f,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=$h({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof ET.default&&s instanceof ET.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]=\"default\"in i?i.getDefault():void 0}),e}_getDefault(){if(\"default\"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Ene.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,Mje.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,Oje.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,pne.default)(s,e)&&(o=$h({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Cne.object.noUnknown){typeof e==\"string\"&&(t=e,e=!0);let i=this.test({name:\"noUnknown\",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=Hje(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(\", \")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Cne.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,Lje.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(Nje.default)}snakeCase(){return this.transformKeys(dne.default)}constantCase(){return this.transformKeys(e=>(0,dne.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Tje.default)(this.fields,t=>t.describe()),e}};_m.default=Xm;function Ine(r){return new Xm(r)}Ine.prototype=Xm.prototype});var Bne=y($m=>{\"use strict\";Object.defineProperty($m,\"__esModule\",{value:!0});$m.create=wne;$m.default=void 0;var IT=ep(Xh()),Yje=ep(Gh()),jje=ep(xm()),yT=iA(),qje=ep(QQ()),Jje=ep(hu()),Wje=ep(sA());function ep(r){return r&&r.__esModule?r:{default:r}}function GQ(){return GQ=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},GQ.apply(this,arguments)}function wne(r){return new Zm(r)}var Zm=class extends Wje.default{constructor(e){super({type:\"array\"}),this.innerType=e,this.withMutation(()=>{this.transform(function(t){if(typeof t==\"string\")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,GQ({},t,{path:`${t.path||\"\"}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,f=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(h,p)=>{if(h){if(!Jje.default.isError(h)||u)return void i(h,p);o.push(h)}if(!g||!c||!this._typeCheck(p)){i(o[0]||null,p);return}f=f||p;let C=new Array(p.length);for(let w=0;w<p.length;w++){let B=p[w],v=`${t.path||\"\"}[${w}]`,D=GQ({},t,{path:v,strict:!0,parent:p,index:w,originalValue:f[w]});C[w]=(L,H)=>c.validate(B,D,H)}(0,qje.default)({sync:a,path:l,value:p,errors:o,endEarly:u,tests:C},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,Yje.default)(e))throw new TypeError(\"`array.of()` sub-schema must be a valid yup schema not: \"+(0,jje.default)(e));return t.innerType=e,t}length(e,t=yT.array.length){return this.test({message:t,name:\"length\",exclusive:!0,params:{length:e},test(i){return(0,IT.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||yT.array.min,this.test({message:t,name:\"min\",exclusive:!0,params:{min:e},test(i){return(0,IT.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||yT.array.max,this.test({message:t,name:\"max\",exclusive:!0,params:{max:e},test(i){return(0,IT.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};$m.default=Zm;wne.prototype=Zm.prototype});var Qne=y(eE=>{\"use strict\";Object.defineProperty(eE,\"__esModule\",{value:!0});eE.create=Xje;eE.default=void 0;var zje=Vje(Gh());function Vje(r){return r&&r.__esModule?r:{default:r}}function Xje(r){return new YQ(r)}var YQ=class{constructor(e){this.type=\"lazy\",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zje.default)(n))throw new TypeError(\"lazy() functions must return a valid schema\");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},_je=YQ;eE.default=_je});var bne=y(wT=>{\"use strict\";Object.defineProperty(wT,\"__esModule\",{value:!0});wT.default=eqe;var Zje=$je(iA());function $je(r){return r&&r.__esModule?r:{default:r}}function eqe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{Zje.default[e][t]=r[e][t]})})}});var QT=y(wr=>{\"use strict\";Object.defineProperty(wr,\"__esModule\",{value:!0});wr.addMethod=aqe;Object.defineProperty(wr,\"MixedSchema\",{enumerable:!0,get:function(){return Sne.default}});Object.defineProperty(wr,\"mixed\",{enumerable:!0,get:function(){return Sne.create}});Object.defineProperty(wr,\"BooleanSchema\",{enumerable:!0,get:function(){return BT.default}});Object.defineProperty(wr,\"bool\",{enumerable:!0,get:function(){return BT.create}});Object.defineProperty(wr,\"boolean\",{enumerable:!0,get:function(){return BT.create}});Object.defineProperty(wr,\"StringSchema\",{enumerable:!0,get:function(){return vne.default}});Object.defineProperty(wr,\"string\",{enumerable:!0,get:function(){return vne.create}});Object.defineProperty(wr,\"NumberSchema\",{enumerable:!0,get:function(){return xne.default}});Object.defineProperty(wr,\"number\",{enumerable:!0,get:function(){return xne.create}});Object.defineProperty(wr,\"DateSchema\",{enumerable:!0,get:function(){return Pne.default}});Object.defineProperty(wr,\"date\",{enumerable:!0,get:function(){return Pne.create}});Object.defineProperty(wr,\"ObjectSchema\",{enumerable:!0,get:function(){return Dne.default}});Object.defineProperty(wr,\"object\",{enumerable:!0,get:function(){return Dne.create}});Object.defineProperty(wr,\"ArraySchema\",{enumerable:!0,get:function(){return kne.default}});Object.defineProperty(wr,\"array\",{enumerable:!0,get:function(){return kne.create}});Object.defineProperty(wr,\"ref\",{enumerable:!0,get:function(){return tqe.create}});Object.defineProperty(wr,\"lazy\",{enumerable:!0,get:function(){return rqe.create}});Object.defineProperty(wr,\"ValidationError\",{enumerable:!0,get:function(){return iqe.default}});Object.defineProperty(wr,\"reach\",{enumerable:!0,get:function(){return nqe.default}});Object.defineProperty(wr,\"isSchema\",{enumerable:!0,get:function(){return Rne.default}});Object.defineProperty(wr,\"setLocale\",{enumerable:!0,get:function(){return sqe.default}});Object.defineProperty(wr,\"BaseSchema\",{enumerable:!0,get:function(){return oqe.default}});var Sne=Iu(Aie()),BT=Iu(fie()),vne=Iu(die()),xne=Iu(Eie()),Pne=Iu(Bie()),Dne=Iu(yne()),kne=Iu(Bne()),tqe=Cu(),rqe=Qne(),iqe=tE(hu()),nqe=tE(cT()),Rne=tE(Gh()),sqe=tE(bne()),oqe=tE(sA());function tE(r){return r&&r.__esModule?r:{default:r}}function Fne(){if(typeof WeakMap!=\"function\")return null;var r=new WeakMap;return Fne=function(){return r},r}function Iu(r){if(r&&r.__esModule)return r;if(r===null||typeof r!=\"object\"&&typeof r!=\"function\")return{default:r};var e=Fne();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aqe(r,e,t){if(!r||!(0,Rne.default)(r.prototype))throw new TypeError(\"You must provide a yup schema constructor function\");if(typeof e!=\"string\")throw new TypeError(\"A Method name must be provided\");if(typeof t!=\"function\")throw new TypeError(\"Method function must be provided\");r.prototype[e]=t}});var Mne=y((sft,iE)=>{\"use strict\";var gqe=process.env.TERM_PROGRAM===\"Hyper\",fqe=process.platform===\"win32\",Lne=process.platform===\"linux\",bT={ballotDisabled:\"\\u2612\",ballotOff:\"\\u2610\",ballotOn:\"\\u2611\",bullet:\"\\u2022\",bulletWhite:\"\\u25E6\",fullBlock:\"\\u2588\",heart:\"\\u2764\",identicalTo:\"\\u2261\",line:\"\\u2500\",mark:\"\\u203B\",middot:\"\\xB7\",minus:\"\\uFF0D\",multiplication:\"\\xD7\",obelus:\"\\xF7\",pencilDownRight:\"\\u270E\",pencilRight:\"\\u270F\",pencilUpRight:\"\\u2710\",percent:\"%\",pilcrow2:\"\\u2761\",pilcrow:\"\\xB6\",plusMinus:\"\\xB1\",section:\"\\xA7\",starsOff:\"\\u2606\",starsOn:\"\\u2605\",upDownArrow:\"\\u2195\"},Tne=Object.assign({},bT,{check:\"\\u221A\",cross:\"\\xD7\",ellipsisLarge:\"...\",ellipsis:\"...\",info:\"i\",question:\"?\",questionSmall:\"?\",pointer:\">\",pointerSmall:\"\\xBB\",radioOff:\"( )\",radioOn:\"(*)\",warning:\"\\u203C\"}),One=Object.assign({},bT,{ballotCross:\"\\u2718\",check:\"\\u2714\",cross:\"\\u2716\",ellipsisLarge:\"\\u22EF\",ellipsis:\"\\u2026\",info:\"\\u2139\",question:\"?\",questionFull:\"\\uFF1F\",questionSmall:\"\\uFE56\",pointer:Lne?\"\\u25B8\":\"\\u276F\",pointerSmall:Lne?\"\\u2023\":\"\\u203A\",radioOff:\"\\u25EF\",radioOn:\"\\u25C9\",warning:\"\\u26A0\"});iE.exports=fqe&&!gqe?Tne:One;Reflect.defineProperty(iE.exports,\"common\",{enumerable:!1,value:bT});Reflect.defineProperty(iE.exports,\"windows\",{enumerable:!1,value:Tne});Reflect.defineProperty(iE.exports,\"other\",{enumerable:!1,value:One})});var ao=y((oft,ST)=>{\"use strict\";var hqe=r=>r!==null&&typeof r==\"object\"&&!Array.isArray(r),pqe=/[\\u001b\\u009b][[\\]#;?()]*(?:(?:(?:[^\\W_]*;?[^\\W_]*)\\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,Kne=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};\"FORCE_COLOR\"in process.env&&(r.enabled=process.env.FORCE_COLOR!==\"0\");let e=s=>{let o=s.open=`\\x1B[${s.codes[0]}m`,a=s.close=`\\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\\\u001b\\\\[${s.codes[1]}m`,\"g\");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\\r*\\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s==\"function\"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===\"\"||s==null)return\"\";if(r.enabled===!1)return s;if(r.visible===!1)return\"\";let a=\"\"+s,l=a.includes(`\n`),c=o.length;for(c>0&&o.includes(\"unstyle\")&&(o=[...new Set([\"unstyle\",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n(\"reset\",[0,0],\"modifier\"),n(\"bold\",[1,22],\"modifier\"),n(\"dim\",[2,22],\"modifier\"),n(\"italic\",[3,23],\"modifier\"),n(\"underline\",[4,24],\"modifier\"),n(\"inverse\",[7,27],\"modifier\"),n(\"hidden\",[8,28],\"modifier\"),n(\"strikethrough\",[9,29],\"modifier\"),n(\"black\",[30,39],\"color\"),n(\"red\",[31,39],\"color\"),n(\"green\",[32,39],\"color\"),n(\"yellow\",[33,39],\"color\"),n(\"blue\",[34,39],\"color\"),n(\"magenta\",[35,39],\"color\"),n(\"cyan\",[36,39],\"color\"),n(\"white\",[37,39],\"color\"),n(\"gray\",[90,39],\"color\"),n(\"grey\",[90,39],\"color\"),n(\"bgBlack\",[40,49],\"bg\"),n(\"bgRed\",[41,49],\"bg\"),n(\"bgGreen\",[42,49],\"bg\"),n(\"bgYellow\",[43,49],\"bg\"),n(\"bgBlue\",[44,49],\"bg\"),n(\"bgMagenta\",[45,49],\"bg\"),n(\"bgCyan\",[46,49],\"bg\"),n(\"bgWhite\",[47,49],\"bg\"),n(\"blackBright\",[90,39],\"bright\"),n(\"redBright\",[91,39],\"bright\"),n(\"greenBright\",[92,39],\"bright\"),n(\"yellowBright\",[93,39],\"bright\"),n(\"blueBright\",[94,39],\"bright\"),n(\"magentaBright\",[95,39],\"bright\"),n(\"cyanBright\",[96,39],\"bright\"),n(\"whiteBright\",[97,39],\"bright\"),n(\"bgBlackBright\",[100,49],\"bgBright\"),n(\"bgRedBright\",[101,49],\"bgBright\"),n(\"bgGreenBright\",[102,49],\"bgBright\"),n(\"bgYellowBright\",[103,49],\"bgBright\"),n(\"bgBlueBright\",[104,49],\"bgBright\"),n(\"bgMagentaBright\",[105,49],\"bgBright\"),n(\"bgCyanBright\",[106,49],\"bgBright\"),n(\"bgWhiteBright\",[107,49],\"bgBright\"),r.ansiRegex=pqe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s==\"string\"&&s!==\"\"&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o==\"string\"?r[o]:o;if(typeof a!=\"function\")throw new TypeError(\"Expected alias to be the name of an existing color (string) or a function\");a.stack||(Reflect.defineProperty(a,\"name\",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!hqe(s))throw new TypeError(\"Expected theme to be an object\");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias(\"unstyle\",s=>typeof s==\"string\"&&s!==\"\"?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,\"\")):\"\"),r.alias(\"noop\",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=Mne(),r.define=n,r};ST.exports=Kne();ST.exports.create=Kne});var ji=y(Lt=>{\"use strict\";var dqe=Object.prototype.toString,Ds=ao(),Une=!1,vT=[],Hne={yellow:\"blue\",cyan:\"red\",green:\"magenta\",black:\"white\",blue:\"yellow\",red:\"cyan\",magenta:\"green\",white:\"black\"};Lt.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Lt.hasColor=r=>!!r&&Ds.hasColor(r);var qQ=Lt.isObject=r=>r!==null&&typeof r==\"object\"&&!Array.isArray(r);Lt.nativeType=r=>dqe.call(r).slice(8,-1).toLowerCase().replace(/\\s/g,\"\");Lt.isAsyncFn=r=>Lt.nativeType(r)===\"asyncfunction\";Lt.isPrimitive=r=>r!=null&&typeof r!=\"object\"&&typeof r!=\"function\";Lt.resolve=(r,e,...t)=>typeof e==\"function\"?e.call(r,...t):e;Lt.scrollDown=(r=[])=>[...r.slice(1),r[0]];Lt.scrollUp=(r=[])=>[r.pop(),...r];Lt.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index<i.index?-1:0),e};Lt.swap=(r,e,t)=>{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Lt.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize==\"function\"&&(t=r.getWindowSize()[0]),process.platform===\"win32\"?t-1:t};Lt.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize==\"function\"&&(t=r.getWindowSize()[1]),t};Lt.wordWrap=(r,e={})=>{if(!r)return r;typeof e==\"number\"&&(e={width:e});let{indent:t=\"\",newline:i=`\n`+t,width:n=80}=e;n-=((i+t).match(/[^\\S\\n]/g)||[]).length;let o=`.{1,${n}}([\\\\s\\\\u200B]+|$)|[^\\\\s\\\\u200B]+?([\\\\s\\\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,\"g\"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\\n$/,\"\")),e.padEnd&&(c=c.map(u=>u.padEnd(n,\" \"))),e.padStart&&(c=c.map(u=>u.padStart(n,\" \"))),t+c.join(i)};Lt.unmute=r=>{let e=r.stack.find(i=>Ds.keys.color.includes(i));return e?Ds[e]:r.stack.find(i=>i.slice(2)===\"bg\")?Ds[e.slice(2)]:i=>i};Lt.pascal=r=>r?r[0].toUpperCase()+r.slice(1):\"\";Lt.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Ds.keys.color.includes(i));if(e){let i=Ds[\"bg\"+Lt.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)===\"bg\");return t?Ds[t.slice(2).toLowerCase()]||r:Ds.none};Lt.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Ds.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)===\"bg\");if(e&&!t)return Ds[Hne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=Hne[i];return n&&Ds[\"bg\"+Lt.pascal(n)]||r}return Ds.none};Lt.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?\"pm\":\"am\";e=e%12;let n=e===0?12:e,s=t<10?\"0\"+t:t;return n+\":\"+s+\" \"+i};Lt.set=(r={},e=\"\",t)=>e.split(\".\").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Lt.isObject(a)&&s<o.length-1&&(a={}),i[n]=a},r);Lt.get=(r={},e=\"\",t)=>{let i=r[e]==null?e.split(\".\").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Lt.mixin=(r,e)=>{if(!qQ(r))return e;if(!qQ(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty(\"value\"))if(r.hasOwnProperty(t)&&qQ(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);qQ(n.value)?r[t]=Lt.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Lt.merge=(...r)=>{let e={};for(let t of r)Lt.mixin(e,t);return e};Lt.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n==\"function\"?Lt.define(r,i,n.bind(e)):Lt.define(r,i,n)}};Lt.onExit=r=>{let e=(t,i)=>{Une||(Une=!0,vT.forEach(n=>n()),t===!0&&process.exit(128+i))};vT.length===0&&(process.once(\"SIGTERM\",e.bind(null,!0,15)),process.once(\"SIGINT\",e.bind(null,!0,2)),process.once(\"exit\",e)),vT.push(r)};Lt.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Lt.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var Gne=y(rp=>{\"use strict\";rp.ctrl={a:\"first\",b:\"backward\",c:\"cancel\",d:\"deleteForward\",e:\"last\",f:\"forward\",g:\"reset\",i:\"tab\",k:\"cutForward\",l:\"reset\",n:\"newItem\",m:\"cancel\",j:\"submit\",p:\"search\",r:\"remove\",s:\"save\",u:\"undo\",w:\"cutLeft\",x:\"toggleCursor\",v:\"paste\"};rp.shift={up:\"shiftUp\",down:\"shiftDown\",left:\"shiftLeft\",right:\"shiftRight\",tab:\"prev\"};rp.fn={up:\"pageUp\",down:\"pageDown\",left:\"pageLeft\",right:\"pageRight\",delete:\"deleteForward\"};rp.option={b:\"backward\",f:\"forward\",d:\"cutRight\",left:\"cutLeft\",up:\"altUp\",down:\"altDown\"};rp.keys={pageup:\"pageUp\",pagedown:\"pageDown\",home:\"home\",end:\"end\",cancel:\"cancel\",delete:\"deleteForward\",backspace:\"delete\",down:\"down\",enter:\"submit\",escape:\"cancel\",left:\"left\",space:\"space\",number:\"number\",return:\"submit\",right:\"right\",tab:\"next\",up:\"up\"}});var qne=y((lft,jne)=>{\"use strict\";var Yne=J(\"readline\"),Cqe=Gne(),mqe=/^(?:\\x1b)([a-zA-Z0-9])$/,Eqe=/^(?:\\x1b+)(O|N|\\[|\\[\\[)(?:(\\d+)(?:;(\\d+))?([~^$])|(?:1;)?(\\d+)?([a-zA-Z]))/,Iqe={OP:\"f1\",OQ:\"f2\",OR:\"f3\",OS:\"f4\",\"[11~\":\"f1\",\"[12~\":\"f2\",\"[13~\":\"f3\",\"[14~\":\"f4\",\"[[A\":\"f1\",\"[[B\":\"f2\",\"[[C\":\"f3\",\"[[D\":\"f4\",\"[[E\":\"f5\",\"[15~\":\"f5\",\"[17~\":\"f6\",\"[18~\":\"f7\",\"[19~\":\"f8\",\"[20~\":\"f9\",\"[21~\":\"f10\",\"[23~\":\"f11\",\"[24~\":\"f12\",\"[A\":\"up\",\"[B\":\"down\",\"[C\":\"right\",\"[D\":\"left\",\"[E\":\"clear\",\"[F\":\"end\",\"[H\":\"home\",OA:\"up\",OB:\"down\",OC:\"right\",OD:\"left\",OE:\"clear\",OF:\"end\",OH:\"home\",\"[1~\":\"home\",\"[2~\":\"insert\",\"[3~\":\"delete\",\"[4~\":\"end\",\"[5~\":\"pageup\",\"[6~\":\"pagedown\",\"[[5~\":\"pageup\",\"[[6~\":\"pagedown\",\"[7~\":\"home\",\"[8~\":\"end\",\"[a\":\"up\",\"[b\":\"down\",\"[c\":\"right\",\"[d\":\"left\",\"[e\":\"clear\",\"[2$\":\"insert\",\"[3$\":\"delete\",\"[5$\":\"pageup\",\"[6$\":\"pagedown\",\"[7$\":\"home\",\"[8$\":\"end\",Oa:\"up\",Ob:\"down\",Oc:\"right\",Od:\"left\",Oe:\"clear\",\"[2^\":\"insert\",\"[3^\":\"delete\",\"[5^\":\"pageup\",\"[6^\":\"pagedown\",\"[7^\":\"home\",\"[8^\":\"end\",\"[Z\":\"tab\"};function yqe(r){return[\"[a\",\"[b\",\"[c\",\"[d\",\"[e\",\"[2$\",\"[3$\",\"[5$\",\"[6$\",\"[7$\",\"[8$\",\"[Z\"].includes(r)}function wqe(r){return[\"Oa\",\"Ob\",\"Oc\",\"Od\",\"Oe\",\"[2^\",\"[3^\",\"[5^\",\"[6^\",\"[7^\",\"[8^\"].includes(r)}var JQ=(r=\"\",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r=\"\\x1B\"+String(r)):r=String(r):r!==void 0&&typeof r!=\"string\"?r=String(r):r||(r=i.sequence||\"\"),i.sequence=i.sequence||r||i.name,r===\"\\r\")i.raw=void 0,i.name=\"return\";else if(r===`\n`)i.name=\"enter\";else if(r===\"\t\")i.name=\"tab\";else if(r===\"\\b\"||r===\"\\x7F\"||r===\"\\x1B\\x7F\"||r===\"\\x1B\\b\")i.name=\"backspace\",i.meta=r.charAt(0)===\"\\x1B\";else if(r===\"\\x1B\"||r===\"\\x1B\\x1B\")i.name=\"escape\",i.meta=r.length===2;else if(r===\" \"||r===\"\\x1B \")i.name=\"space\",i.meta=r.length===2;else if(r<=\"\u001a\")i.name=String.fromCharCode(r.charCodeAt(0)+\"a\".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>=\"0\"&&r<=\"9\")i.name=\"number\";else if(r.length===1&&r>=\"a\"&&r<=\"z\")i.name=r;else if(r.length===1&&r>=\"A\"&&r<=\"Z\")i.name=r.toLowerCase(),i.shift=!0;else if(t=mqe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=Eqe.exec(r)){let n=[...r];n[0]===\"\\x1B\"&&n[1]===\"\\x1B\"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(\"\"),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=Iqe[s],i.shift=yqe(s)||i.shift,i.ctrl=wqe(s)||i.ctrl}return i};JQ.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error(\"Invalid stream passed\");let i=Yne.createInterface({terminal:!0,input:t});Yne.emitKeypressEvents(t,i);let n=(a,l)=>e(a,JQ(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on(\"keypress\",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener(\"keypress\",n),i.pause(),i.close()}};JQ.action=(r,e,t)=>{let i={...Cqe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};jne.exports=JQ});var Wne=y((cft,Jne)=>{\"use strict\";Jne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i==\"number\"&&(i={interval:i}),Bqe(r,t,i)}};function Bqe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,\"interval\",{value:s}),r.once(\"close\",()=>i.stop()),i.stop}});var Vne=y((uft,zne)=>{\"use strict\";var{define:Qqe,width:bqe}=ji(),xT=class{constructor(e){let t=e.options;Qqe(this,\"_prompt\",e),this.type=e.type,this.name=e.name,this.message=\"\",this.header=\"\",this.footer=\"\",this.error=\"\",this.hint=\"\",this.input=\"\",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt=\"\",this.buffer=\"\",this.width=bqe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t==\"function\"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading==\"boolean\"?this._loading:this.loadingChoices?\"choices\":!1}get status(){return this.cancelled?\"cancelled\":this.submitted?\"submitted\":\"pending\"}};zne.exports=xT});var _ne=y((gft,Xne)=>{\"use strict\";var PT=ji(),ki=ao(),DT={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||PT.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||PT.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};DT.merge=(r={})=>{r.styles&&typeof r.styles.enabled==\"boolean\"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible==\"boolean\"&&(ki.visible=r.styles.visible);let e=PT.merge({},DT,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};Xne.exports=DT});var $ne=y((fft,Zne)=>{\"use strict\";var kT=process.platform===\"win32\",aA=ao(),Sqe=ji(),RT={...aA.symbols,upDownDoubleArrow:\"\\u21D5\",upDownDoubleArrow2:\"\\u2B0D\",upDownArrow:\"\\u2195\",asterisk:\"*\",asterism:\"\\u2042\",bulletWhite:\"\\u25E6\",electricArrow:\"\\u2301\",ellipsisLarge:\"\\u22EF\",ellipsisSmall:\"\\u2026\",fullBlock:\"\\u2588\",identicalTo:\"\\u2261\",indicator:aA.symbols.check,leftAngle:\"\\u2039\",mark:\"\\u203B\",minus:\"\\u2212\",multiplication:\"\\xD7\",obelus:\"\\xF7\",percent:\"%\",pilcrow:\"\\xB6\",pilcrow2:\"\\u2761\",pencilUpRight:\"\\u2710\",pencilDownRight:\"\\u270E\",pencilRight:\"\\u270F\",plus:\"+\",plusMinus:\"\\xB1\",pointRight:\"\\u261E\",rightAngle:\"\\u203A\",section:\"\\xA7\",hexagon:{off:\"\\u2B21\",on:\"\\u2B22\",disabled:\"\\u2B22\"},ballot:{on:\"\\u2611\",off:\"\\u2610\",disabled:\"\\u2612\"},stars:{on:\"\\u2605\",off:\"\\u2606\",disabled:\"\\u2606\"},folder:{on:\"\\u25BC\",off:\"\\u25B6\",disabled:\"\\u25B6\"},prefix:{pending:aA.symbols.question,submitted:aA.symbols.check,cancelled:aA.symbols.cross},separator:{pending:aA.symbols.pointerSmall,submitted:aA.symbols.middot,cancelled:aA.symbols.middot},radio:{off:kT?\"( )\":\"\\u25EF\",on:kT?\"(*)\":\"\\u25C9\",disabled:kT?\"(|)\":\"\\u24BE\"},numbers:[\"\\u24EA\",\"\\u2460\",\"\\u2461\",\"\\u2462\",\"\\u2463\",\"\\u2464\",\"\\u2465\",\"\\u2466\",\"\\u2467\",\"\\u2468\",\"\\u2469\",\"\\u246A\",\"\\u246B\",\"\\u246C\",\"\\u246D\",\"\\u246E\",\"\\u246F\",\"\\u2470\",\"\\u2471\",\"\\u2472\",\"\\u2473\",\"\\u3251\",\"\\u3252\",\"\\u3253\",\"\\u3254\",\"\\u3255\",\"\\u3256\",\"\\u3257\",\"\\u3258\",\"\\u3259\",\"\\u325A\",\"\\u325B\",\"\\u325C\",\"\\u325D\",\"\\u325E\",\"\\u325F\",\"\\u32B1\",\"\\u32B2\",\"\\u32B3\",\"\\u32B4\",\"\\u32B5\",\"\\u32B6\",\"\\u32B7\",\"\\u32B8\",\"\\u32B9\",\"\\u32BA\",\"\\u32BB\",\"\\u32BC\",\"\\u32BD\",\"\\u32BE\",\"\\u32BF\"]};RT.merge=r=>{let e=Sqe.merge({},aA.symbols,RT,r.symbols);return delete e.merge,e};Zne.exports=RT});var tse=y((hft,ese)=>{\"use strict\";var vqe=_ne(),xqe=$ne(),Pqe=ji();ese.exports=r=>{r.options=Pqe.merge({},r.options.theme,r.options),r.symbols=xqe.merge(r.options),r.styles=vqe.merge(r.options)}});var ose=y((nse,sse)=>{\"use strict\";var rse=process.env.TERM_PROGRAM===\"Apple_Terminal\",Dqe=ao(),FT=ji(),Ao=sse.exports=nse,kr=\"\\x1B[\",ise=\"\\x07\",NT=!1,El=Ao.code={bell:ise,beep:ise,beginning:`${kr}G`,down:`${kr}J`,esc:kr,getPosition:`${kr}6n`,hide:`${kr}?25l`,line:`${kr}2K`,lineEnd:`${kr}K`,lineStart:`${kr}1K`,restorePosition:kr+(rse?\"8\":\"u\"),savePosition:kr+(rse?\"7\":\"s\"),screen:`${kr}2J`,show:`${kr}?25h`,up:`${kr}1J`},yu=Ao.cursor={get hidden(){return NT},hide(){return NT=!0,El.hide},show(){return NT=!1,El.show},forward:(r=1)=>`${kr}${r}C`,backward:(r=1)=>`${kr}${r}D`,nextLine:(r=1)=>`${kr}E`.repeat(r),prevLine:(r=1)=>`${kr}F`.repeat(r),up:(r=1)=>r?`${kr}${r}A`:\"\",down:(r=1)=>r?`${kr}${r}B`:\"\",right:(r=1)=>r?`${kr}${r}C`:\"\",left:(r=1)=>r?`${kr}${r}D`:\"\",to(r,e){return e?`${kr}${e+1};${r+1}H`:`${kr}${r+1}G`},move(r=0,e=0){let t=\"\";return t+=r<0?yu.left(-r):r>0?yu.right(r):\"\",t+=e<0?yu.up(-e):e>0?yu.down(e):\"\",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=FT.isPrimitive(i)?String(i):\"\",n=FT.isPrimitive(n)?String(n):\"\",a=FT.isPrimitive(a)?String(a):\"\",o){let l=Ao.cursor.up(o)+Ao.cursor.to(s.length),c=n.length-t;return c>0&&(l+=Ao.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===\"\"&&i&&!s.includes(i)&&(l+=i.length),Ao.cursor.move(l)}}},LT=Ao.erase={screen:El.screen,up:El.up,down:El.down,line:El.line,lineEnd:El.lineEnd,lineStart:El.lineStart,lines(r){let e=\"\";for(let t=0;t<r;t++)e+=Ao.erase.line+(t<r-1?Ao.cursor.up(1):\"\");return r&&(e+=Ao.code.beginning),e}};Ao.clear=(r=\"\",e=process.stdout.columns)=>{if(!e)return LT.line+yu.to(0);let t=s=>[...Dqe.unstyle(s)].length,i=r.split(/\\r?\\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(LT.line+yu.prevLine()).repeat(n-1)+LT.line+yu.to(0)}});var ip=y((pft,Ase)=>{\"use strict\";var kqe=J(\"events\"),ase=ao(),TT=qne(),Rqe=Wne(),Fqe=Vne(),Nqe=tse(),Pn=ji(),wu=ose(),nE=class extends kqe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,Nqe(this),Rqe(this),this.state=new Fqe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=Tqe(this.options.margin),this.setMaxListeners(0),Lqe(this)}async keypress(e,t={}){this.keypressed=!0;let i=TT.action(e,TT(e,t),this.options.actions);this.state.keypress=i,this.emit(\"keypress\",e,i),this.emit(\"state\",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n==\"function\")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit(\"alert\"):this.stdout.write(wu.code.beep)}cursorHide(){this.stdout.write(wu.cursor.hide()),Pn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(wu.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer=\"\",!(!t&&!e||this.options.show===!1)&&this.stdout.write(wu.cursor.down(e)+wu.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s=\"\",input:o=\"\",value:a=\"\"}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=wu.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=ase.unstyle(i);let n=ase.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(`\n`),c=l[0],u=l[l.length-1],f=(i+(t?\" \"+t:\"\")).length,h=f<c.length?c.slice(f+1):\"\";return{header:o,prompt:c,after:h,rest:l.slice(1),last:u}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let t=`\n`+this.symbols.pointer+\" \";typeof e==\"string\"?t+=e.trim():t+=\"Invalid input\",this.state.error=`\n`+this.styles.danger(t),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit(\"submit\",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel==\"function\"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit(\"cancel\",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),t=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(wu.cursor.down(e.rest.length)),this.write(`\n`.repeat(t))}catch{}this.emit(\"close\")}start(){!this.stop&&this.options.show!==!1&&(this.stop=TT.listen(this,this.keypress.bind(this)),this.once(\"close\",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip==\"function\"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:t,result:i}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial==\"function\"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun==\"function\"&&await t.onRun.call(this,this),typeof t.onSubmit==\"function\"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error(\"expected prompt to have a custom render method\")}run(){return new Promise(async(e,t)=>{if(this.once(\"submit\",e),this.once(\"cancel\",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit(\"run\")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u===\"\")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element(\"prefix\")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Pn.isObject(e)&&(e=e[i.status]||e.pending),Pn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element(\"message\");return Pn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element(\"separator\")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Pn.isObject(s)&&(s=s[i.status]||s.pending),Pn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element(\"pointer\",e,t);if(typeof i==\"string\"&&Pn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?\"on\":\"off\"]||i,this.state),l=Pn.hasColor(a)?a:o(a);return s?l:\" \".repeat(a.length)}}async indicator(e,t){let i=await this.element(\"indicator\",e,t);if(typeof i==\"string\"&&Pn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?\"on\":\"off\"]||i;return Pn.hasColor(a)?a:o(a)}return\"\"}body(){return null}footer(){if(this.state.status===\"pending\")return this.element(\"footer\")}header(){if(this.state.status===\"pending\")return this.element(\"header\")}async hint(){if(this.state.status===\"pending\"&&!this.isValue(this.state.input)){let e=await this.element(\"hint\");return Pn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?\"\":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==\"\"}resolve(e,...t){return Pn.resolve(this,e,...t)}get base(){return nE.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Pn.height(this.stdout,25)}get width(){return this.options.columns||Pn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function Lqe(r){let e=n=>r[n]===void 0||typeof r[n]==\"function\",t=[\"actions\",\"choices\",\"initial\",\"margin\",\"roles\",\"styles\",\"symbols\",\"theme\",\"timers\",\"value\"],i=[\"body\",\"footer\",\"error\",\"header\",\"hint\",\"indicator\",\"message\",\"prefix\",\"separator\",\"skip\"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s==\"function\"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!=\"function\"&&(r[n]=s)}}function Tqe(r){typeof r==\"number\"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?`\n`:\" \",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push(\"\")}return i}Ase.exports=nE});var use=y((dft,cse)=>{\"use strict\";var Oqe=ji(),lse={default(r,e){return e},checkbox(r,e){throw new Error(\"checkbox role is not implemented yet\")},editable(r,e){throw new Error(\"editable role is not implemented yet\")},expandable(r,e){throw new Error(\"expandable role is not implemented yet\")},heading(r,e){return e.disabled=\"\",e.indicator=[e.indicator,\" \"].find(t=>t!=null),e.message=e.message||\"\",e},input(r,e){throw new Error(\"input role is not implemented yet\")},option(r,e){return lse.default(r,e)},radio(r,e){throw new Error(\"radio role is not implemented yet\")},separator(r,e){return e.disabled=\"\",e.indicator=[e.indicator,\" \"].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};cse.exports=(r,e={})=>{let t=Oqe.merge({},lse,e.roles);return t[r]||t.default}});var sE=y((Cft,hse)=>{\"use strict\";var Mqe=ao(),Kqe=ip(),Uqe=use(),WQ=ji(),{reorder:OT,scrollUp:Hqe,scrollDown:Gqe,isObject:gse,swap:Yqe}=WQ,MT=class extends Kqe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=\"\"}async initialize(){typeof this.options.initial==\"function\"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!=\"function\"&&this.selectable.length===0)throw new Error(\"At least one choice must be selectable\");gse(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t==\"string\"&&(t=this.findIndex(t)),typeof t==\"number\"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o==\"function\"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l<o.length;l++){let c=o[l]=await this.toChoice(o[l],n++,a);i.push(c),c.choices&&await s(c.choices,c)}return i};return s(e,t).then(o=>(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e==\"function\"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e==\"string\"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=Uqe(e.role,this.options)(this,e),typeof e.disabled==\"string\"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint=\"(disabled)\"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||\"\",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input=\"\",e.index=t,e.cursor=0,WQ.define(e,\"parent\",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+\"  \":e.indent||\"\"),e.path=i?i.path+\".\"+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,Mqe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial==\"function\"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit(\"choice\",e,t,this),typeof e.onChoice==\"function\"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:\"New choice name?\",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input=\"\",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?\"  \".repeat(e.level-1):\"\":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!=\"boolean\"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(t=>t.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!=\"boolean\"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return fse(this,this.choices),this.emit(\"toggle\",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=OT(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num=\"\",i(l)};if(s===\"0\"||s.length===1&&Number(s+\"0\")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=OT(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=OT(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=Hqe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=Gqe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){Yqe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&[\"disabled\",\"collapsed\",\"hidden\",\"completing\",\"readonly\"].some(i=>e[i]===!0)?!0:e&&e.role===\"heading\"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t=\"value\"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e==\"function\"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(gse(e))return t?e[t]:e;let n=typeof e==\"function\"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=WQ.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t==\"string\"||typeof t==\"number\"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return fse(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!=\"string\"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function fse(r,e){if(e instanceof Promise)return e;if(typeof e==\"function\"){if(WQ.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}hse.exports=MT});var Il=y((mft,pse)=>{\"use strict\";var jqe=sE(),KT=ji(),UT=class extends jqe{constructor(e){super(e),this.emptyError=this.options.emptyError||\"No items were selected\"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):\"\"}indicator(e,t){return this.multiple?super.indicator(e,t):\"\"}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role===\"heading\"&&!KT.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return\":\"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||\"\"),o=await this.resolve(e.hint,this.state,e,t);o&&!KT.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(\" \");return e.role===\"heading\"?c():e.disabled?(KT.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading===\"choices\")return this.styles.warning(\"Loading choices\");if(this.state.submitted)return\"\";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger(\"No matching choices\"));let i=this.margin[0]+t.join(`\n`),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(`\n`)}format(){return!this.state.submitted||this.state.cancelled?\"\":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(\", \"):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:t}=this.state,i=\"\",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,\"\"].join(\" \"),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=\" \"+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(t),this.write([n,i,u,g].filter(Boolean).join(`\n`)),this.write(this.margin[2]),this.restore()}};pse.exports=UT});var Cse=y((Eft,dse)=>{\"use strict\";var qqe=Il(),Jqe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},HT=class extends qqe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest==\"function\")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return\"\"}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(\", \");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!==\"pending\")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=Jqe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};dse.exports=HT});var YT=y((Ift,mse)=>{\"use strict\";var GT=ji();mse.exports=(r,e={})=>{r.cursorHide();let{input:t=\"\",initial:i=\"\",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=GT.inverse(r.styles.primary),c=C=>l(r.styles.black(C)),u=t,g=\" \",f=c(g);if(r.blink&&r.blink.off===!0&&(c=C=>C,f=\"\"),s&&n===0&&i===\"\"&&t===\"\")return c(g);if(s&&n===0&&(t===i||t===\"\"))return c(i[0])+a(i.slice(1));i=GT.isPrimitive(i)?`${i}`:\"\",t=GT.isPrimitive(t)?`${t}`:\"\";let h=i&&i.startsWith(t)&&i!==t,p=h?c(i[t.length]):f;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),p=\"\"),s===!1&&(p=\"\"),h){let C=r.styles.unstyle(u+p);return u+p+a(i.slice(C.length))}return u+p}});var zQ=y((yft,Ese)=>{\"use strict\";var Wqe=ao(),zqe=Il(),Vqe=YT(),jT=class extends zqe{constructor(e){super({...e,multiple:!0}),this.type=\"form\",this.initial=this.options.initial,this.align=[this.options.align,\"right\"].find(t=>t!=null),this.emptyError=\"\",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input=\"\",e.cursor=0,this.render()):this.alert()}separator(){return\"\"}format(e){return this.state.submitted?\"\":super.format(e)}pointer(){return\"\"}indicator(e){return e.input?\"\\u29BF\":\"\\u2299\"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||\":\";return i?\" \"+this.styles.disabled(i):\"\"}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o=\"\",name:a,hint:l,input:c=\"\"}=e,{muted:u,submitted:g,primary:f,danger:h}=n,p=l,C=this.index===t,w=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),v=e.message;this.align===\"right\"&&(v=v.padStart(this.longest+1,\" \")),this.align===\"left\"&&(v=v.padEnd(this.longest+1,\" \"));let D=this.values[a]=c||o,L=c?\"success\":\"dark\";await w.call(e,D,this.state)!==!0&&(L=\"danger\");let H=n[L],j=H(await this.indicator(e,t))+(e.pad||\"\"),$=this.indent(e),V=()=>[$,j,v+B,c,p].filter(Boolean).join(\" \");if(i.submitted)return v=Wqe.unstyle(v),c=g(c),p=\"\",V();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=Vqe(this,{input:c,initial:o,pos:s,showCursor:C,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,D,e,t)),C&&(v=f(v)),e.error?c+=(c?\" \":\"\")+h(e.error.trim()):e.hint&&(c+=(c?\" \":\"\")+u(e.hint.trim())),V()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Ese.exports=jT});var qT=y((wft,yse)=>{\"use strict\";var Xqe=zQ(),_qe=()=>{throw new Error(\"expected prompt to have a custom authenticate method\")},Ise=(r=_qe)=>{class e extends Xqe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Ise(i)}}return e};yse.exports=Ise()});var Qse=y((Bft,Bse)=>{\"use strict\";var Zqe=qT();function $qe(r,e){return r.username===this.options.username&&r.password===this.options.password}var wse=(r=$qe)=>{let e=[{name:\"username\",message:\"username\"},{name:\"password\",message:\"password\",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends Zqe.create(r){constructor(n){super({...n,choices:e})}static create(n){return wse(n)}}return t};Bse.exports=wse()});var VQ=y((Qft,bse)=>{\"use strict\";var eJe=ip(),{isPrimitive:tJe,hasColor:rJe}=ji(),JT=class extends eJe{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return tJe(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status===\"pending\"){let e=await this.element(\"hint\");return rJe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(\" \");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),f=await this.footer();g&&!a.includes(g)&&(u+=\" \"+g),a+=\" \"+u,this.clear(t),this.write([l,a,f].filter(Boolean).join(`\n`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};bse.exports=JT});var vse=y((bft,Sse)=>{\"use strict\";var iJe=VQ(),WT=class extends iJe{constructor(e){super(e),this.default=this.options.default||(this.initial?\"(Y/n)\":\"(y/N)\")}};Sse.exports=WT});var Pse=y((Sft,xse)=>{\"use strict\";var nJe=Il(),sJe=zQ(),np=sJe.prototype,zT=class extends nJe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,\"left\"].find(t=>t!=null),this.emptyError=\"\",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e===\"a\"||e===\"i\")?super[e]():np.dispatch.call(this,e,t)}append(e,t){return np.append.call(this,e,t)}delete(e,t){return np.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?np.next.call(this):super.next()}prev(){return this.focused.editable?np.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||\"\",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||\"\"}indent(e){return e.role===\"heading\"?\"\":e.editable?\" \":\"  \"}async renderChoice(e,t){return e.indent=\"\",e.editable?np.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return\"\"}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!=\"function\"||t.role===\"heading\")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||\"\":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e==\"string\"?e:\"Invalid Input\"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role===\"heading\"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||\"\":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};xse.exports=zT});var Bu=y((vft,Dse)=>{\"use strict\";var oJe=ip(),aJe=YT(),{isPrimitive:AJe}=ji(),VT=class extends oJe{constructor(e){super(e),this.initial=AJe(this.initial)?String(this.initial):\"\",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name===\"return\"&&(!i||i.name!==\"return\")?this.append(`\n`,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value=\"\",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(\" \");this.state.clipboard.push(n.pop()),this.input=n.join(\" \"),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):\"\";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):aJe(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(\" \");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=\" \"+l),s+=\" \"+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(`\n`)),this.restore()}};Dse.exports=VT});var Rse=y((xft,kse)=>{\"use strict\";var lJe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),XQ=r=>lJe(r).filter(Boolean);kse.exports=(r,e={},t=\"\")=>{let{past:i=[],present:n=\"\"}=e,s,o;switch(r){case\"prev\":case\"undo\":return s=i.slice(0,i.length-1),o=i[i.length-1]||\"\",{past:XQ([t,...s]),present:o};case\"next\":case\"redo\":return s=i.slice(1),o=i[0]||\"\",{past:XQ([...s,t]),present:o};case\"save\":return{past:XQ([...i,t]),present:\"\"};case\"remove\":return o=XQ(i.filter(a=>a!==t)),n=\"\",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: \"${r}\"`)}}});var _T=y((Pft,Nse)=>{\"use strict\";var cJe=Bu(),Fse=Rse(),XT=class extends cJe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get(\"values\")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Fse(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion(\"prev\")}altDown(){return this.completion(\"next\")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Fse(\"save\",this.data,this.input),this.store.set(\"values\",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Nse.exports=XT});var Tse=y((Dft,Lse)=>{\"use strict\";var uJe=Bu(),ZT=class extends uJe{format(){return\"\"}};Lse.exports=ZT});var Mse=y((kft,Ose)=>{\"use strict\";var gJe=Bu(),$T=class extends gJe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||\"\"}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(\", \")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Ose.exports=$T});var Use=y((Rft,Kse)=>{\"use strict\";var fJe=Il(),eO=class extends fJe{constructor(e){super({...e,multiple:!0})}};Kse.exports=eO});var rO=y((Fft,Hse)=>{\"use strict\";var hJe=Bu(),tO=class extends hJe{constructor(e={}){super({style:\"number\",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:\"\",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e===\".\"&&this.input.includes(\".\")?this.alert(\"invalid number\"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return i<this.min-t?this.alert():(this.input=`${i-t}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format==\"function\"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=\"\"){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\\.)|(\\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(t=>this.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};Hse.exports=tO});var Yse=y((Nft,Gse)=>{Gse.exports=rO()});var qse=y((Lft,jse)=>{\"use strict\";var pJe=Bu(),iO=class extends pJe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):\"\"}};jse.exports=iO});var zse=y((Tft,Wse)=>{\"use strict\";var dJe=ao(),CJe=sE(),Jse=ji(),nO=class extends CJe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||\"left\"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||`\n   `;let t=e.startNumber||1;typeof this.scale==\"number\"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let i=0;i<this.scale.length;i++)t.scale.push({index:i})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}heading(e,t,i){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return\"\"}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.index)).join(\", \"):\"\"}pointer(){return\"\"}renderScaleKey(){if(this.scaleKey===!1||this.state.submitted)return\"\";let e=this.scale.map(i=>`   ${i.name} - ${i.message}`);return[\"\",...e].map(i=>this.styles.muted(i)).join(`\n`)}renderScaleHeading(e){let t=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading==\"function\"&&(t=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-t.join(\"\").length,n=Math.round(i/(t.length-1)),o=t.map(l=>this.styles.strong(l)).join(\" \".repeat(n)),a=\" \".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,t,i){if(typeof this.options.scaleIndicator==\"function\")return this.options.scaleIndicator.call(this,e,t,i);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let i=e.scale.map(s=>this.scaleIndicator(e,s,t)),n=this.term===\"Hyper\"?\"\":\" \";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await e.hint;s&&!Jse.hasColor(s)&&(s=this.styles.muted(s));let o=p=>this.margin[3]+p.replace(/\\s+$/,\"\").padEnd(this.widths[0],\" \"),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,t),u=await this.renderScale(e,t),g=this.margin[1]+this.margin[3];this.scaleLength=dJe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let h=Jse.wordWrap(c,{width:this.widths[0],newline:a}).split(`\n`).map(p=>o(p)+this.margin[1]);return i&&(u=this.styles.info(u),h=h.map(p=>this.styles.info(p))),h[0]+=u,this.linebreak&&h.push(\"\"),[l+n,h.join(`\n`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return\"\";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),t=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...t.map(n=>n.join(\" \"))].join(`\n`)}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=\"\";this.options.promptLine!==!1&&(o=[i,s,n,\"\"].join(\" \"),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),f=await this.footer(),h=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=\" \"+u),e&&!l&&!g.trim()&&this.multiple&&h!=null&&(o+=this.styles.danger(h)),this.clear(t),this.write([a,o,c,g,f].filter(Boolean).join(`\n`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};Wse.exports=nO});var _se=y((Oft,Xse)=>{\"use strict\";var Vse=ao(),mJe=(r=\"\")=>typeof r==\"string\"?r.replace(/^['\"]|['\"]$/g,\"\"):\"\",oO=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=mJe(e.initial||this.field.initial||\"\"),this.message=e.message||this.name,this.cursor=0,this.input=\"\",this.lines=[]}},EJe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s==\"function\"&&(s=await s());let u=-1,g=()=>s[++u],f=()=>s[u+1],h=p=>{p.line=c,o.push(p)};for(h({type:\"bos\",value:\"\"});u<s.length-1;){let p=g();if(/^[^\\S\\n ]$/.test(p)){h({type:\"text\",value:p});continue}if(p===`\n`){h({type:\"newline\",value:p}),c++;continue}if(p===\"\\\\\"){p+=g(),h({type:\"text\",value:p});continue}if((p===\"$\"||p===\"#\"||p===\"{\")&&f()===\"{\"){p+=g();let B={type:\"template\",open:p,inner:\"\",close:\"\",value:p},v;for(;v=g();){if(v===\"}\"){f()===\"}\"&&(v+=g()),B.value+=v,B.close=v;break}v===\":\"?(B.initial=\"\",B.key=B.inner):B.initial!==void 0&&(B.initial+=v),B.value+=v,B.inner+=v}B.template=B.open+(B.initial||B.inner)+B.close,B.key=B.key||B.inner,e.hasOwnProperty(B.key)&&(B.initial=e[B.key]),B=t(B),h(B),l.push(B.key),i.add(B.key);let D=a.find(L=>L.name===B.key);B.field=n.find(L=>L.name===B.key),D||(D=new oO(B),a.push(D)),D.lines.push(B.line-1);continue}let C=o[o.length-1];C.type===\"text\"&&C.line===c?C.value+=p:h({type:\"text\",value:p})}return h({type:\"eos\",value:\"\"}),{input:s,tabstops:o,unique:i,keys:l,items:a}};Xse.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await EJe(e,i),a=sO(\"result\",r,e),l=sO(\"format\",r,e),c=sO(\"validate\",r,e,!0),u=r.isValue.bind(r);return async(g={},f=!1)=>{let h=0;g.required=t,g.items=s,g.keys=o,g.output=\"\";let p=async(v,D,L,H)=>{let j=await c(v,D,L,H);return j===!1?\"Invalid field \"+L.name:j};for(let v of n){let D=v.value,L=v.key;if(v.type!==\"template\"){D&&(g.output+=D);continue}if(v.type===\"template\"){let H=s.find(Z=>Z.name===L);e.required===!0&&g.required.add(H.name);let j=[H.input,g.values[H.value],H.value,D].find(u),V=(H.field||{}).message||v.inner;if(f){let Z=await p(g.values[L],g,H,h);if(Z&&typeof Z==\"string\"||Z===!1){g.invalid.set(L,Z);continue}g.invalid.delete(L);let A=await a(g.values[L],g,H,h);g.output+=Vse.unstyle(A);continue}H.placeholder=!1;let W=D;D=await l(D,g,H,h),j!==D?(g.values[L]=j,D=r.styles.typing(j),g.missing.delete(V)):(g.values[L]=void 0,j=`<${V}>`,D=r.styles.primary(j),H.placeholder=!0,g.required.has(L)&&g.missing.add(V)),g.missing.has(V)&&g.validating&&(D=r.styles.warning(j)),g.invalid.has(L)&&g.validating&&(D=r.styles.danger(j)),h===g.index&&(W!==D?D=r.styles.underline(D):D=r.styles.heading(Vse.unstyle(D))),h++}D&&(g.output+=D)}let C=g.output.split(`\n`).map(v=>\" \"+v),w=s.length,B=0;for(let v of s)g.invalid.has(v.name)&&v.lines.forEach(D=>{C[D][0]===\" \"&&(C[D]=g.styles.danger(g.symbols.bullet)+C[D].slice(1))}),r.isValue(g.values[v.name])&&B++;return g.completed=(B/w*100).toFixed(0),g.output=C.join(`\n`),g.output}};function sO(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]==\"function\"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var $se=y((Mft,Zse)=>{\"use strict\";var IJe=ao(),yJe=_se(),wJe=ip(),aO=class extends wJe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await yJe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,`\n`].find(v=>v!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(\" \");this.state.prompt=c;let u=await this.header(),g=await this.error()||\"\",f=await this.hint()||\"\",h=i?\"\":await this.interpolate(this.state),p=this.state.key=t[e]||\"\",C=await this.format(p),w=await this.footer();C&&(c+=\" \"+C),f&&!C&&this.state.completed===0&&(c+=\" \"+f),this.clear(n);let B=[u,c,h,w,g.trim()];this.write(B.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!=\"function\"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a=\"\";for(let[l,c]of e)a+=`Invalid ${l}: ${c}\n`;return this.state.error=a,super.submit()}if(t.size)return this.state.error=\"Required: \"+[...t.keys()].join(\", \"),super.submit();let o=IJe.unstyle(i).split(`\n`).map(a=>a.slice(1)).join(`\n`);return this.value={values:n,result:o},super.submit()}};Zse.exports=aO});var toe=y((Kft,eoe)=>{\"use strict\";var BJe=\"(Use <shift>+<up/down> to sort)\",QJe=Il(),AO=class extends QJe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,BJe].find(this.isValue.bind(this))}indicator(){return\"\"}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+\" \",s=this.index===t&&this.sorting?this.styles.muted(n):\"  \";return this.options.drag===!1&&(s=\"\"),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};eoe.exports=AO});var ioe=y((Uft,roe)=>{\"use strict\";var bJe=sE(),lO=class extends bJe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||\"No items were selected\",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=[\"\",\"4 - Strongly Agree\",\"3 - Agree\",\"2 - Neutral\",\"1 - Disagree\",\"0 - Strongly Disagree\",\"\"];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(`\n   `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=SJe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return\"\"}pointer(){return\"\"}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return\"   \"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term===\"Hyper\",s=n?9:8,o=n?\"\":\" \",a=this.symbols.line.repeat(s),l=\" \".repeat(s+(n?0:1)),c=D=>(D?this.styles.success(\"\\u25C9\"):\"\\u25EF\")+o,u=t+1+\".\",g=i?this.styles.heading:this.styles.noop,f=await this.resolve(e.message,this.state,e,t),h=this.indent(e),p=h+e.scale.map((D,L)=>c(L===e.scaleIdx)).join(a),C=D=>D===e.scaleIdx?g(D):D,w=h+e.scale.map((D,L)=>C(L)).join(l),B=()=>[u,f].filter(Boolean).join(\" \"),v=()=>[B(),p,w,\" \"].filter(Boolean).join(`\n`);return i&&(p=this.styles.cyan(p),w=this.styles.cyan(w)),v()}async renderChoices(){if(this.state.submitted)return\"\";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),t=await Promise.all(e);return t.length||t.push(this.styles.danger(\"No matching choices\")),t.join(`\n`)}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.scaleIdx)).join(\", \"):\"\"}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(\" \");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=\" \"+l),c&&!o.includes(c)&&(o+=\" \"+c),e&&!l&&!u&&this.multiple&&this.type!==\"form\"&&(o+=this.styles.danger(this.emptyError)),this.clear(t),this.write([o,a,u,g].filter(Boolean).join(`\n`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function SJe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i<r+1;i++)t.push({i,selected:!1});return t}roe.exports=lO});var soe=y((Hft,noe)=>{noe.exports=_T()});var aoe=y((Gft,ooe)=>{\"use strict\";var vJe=VQ(),cO=class extends vJe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||\"no\",this.enabled=this.options.enabled||\"yes\",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e=\"\",t){switch(e.toLowerCase()){case\" \":return this.toggle();case\"1\":case\"y\":case\"t\":return this.enable();case\"0\":case\"n\":case\"f\":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(\" / \"))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(\" \");this.state.prompt=c,a&&!c.includes(a)&&(c+=\" \"+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(`\n`)),this.write(this.margin[2]),this.restore()}};ooe.exports=cO});var loe=y((Yft,Aoe)=>{\"use strict\";var xJe=Il(),uO=class extends xJe{constructor(e){if(super(e),typeof this.options.correctChoice!=\"number\"||this.options.correctChoice<0)throw new Error(\"Please specify the index of the correct answer from the list of choices\")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error(\"Please give at least two choices to the user\");if(this.options.correctChoice>i.length)throw new Error(\"Please specify the index of the correct answer from the list of choices\");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Aoe.exports=uO});var uoe=y(gO=>{\"use strict\";var coe=ji(),hi=(r,e)=>{coe.defineExport(gO,r,e),coe.defineExport(gO,r.toLowerCase(),e)};hi(\"AutoComplete\",()=>Cse());hi(\"BasicAuth\",()=>Qse());hi(\"Confirm\",()=>vse());hi(\"Editable\",()=>Pse());hi(\"Form\",()=>zQ());hi(\"Input\",()=>_T());hi(\"Invisible\",()=>Tse());hi(\"List\",()=>Mse());hi(\"MultiSelect\",()=>Use());hi(\"Numeral\",()=>Yse());hi(\"Password\",()=>qse());hi(\"Scale\",()=>zse());hi(\"Select\",()=>Il());hi(\"Snippet\",()=>$se());hi(\"Sort\",()=>toe());hi(\"Survey\",()=>ioe());hi(\"Text\",()=>soe());hi(\"Toggle\",()=>aoe());hi(\"Quiz\",()=>loe())});var foe=y((qft,goe)=>{goe.exports={ArrayPrompt:sE(),AuthPrompt:qT(),BooleanPrompt:VQ(),NumberPrompt:rO(),StringPrompt:Bu()}});var aE=y((Jft,poe)=>{\"use strict\";var hoe=J(\"assert\"),hO=J(\"events\"),yl=ji(),lo=class extends hO{constructor(e,t){super(),this.options=yl.merge({},e),this.answers={...t}}register(e,t){if(yl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}hoe.equal(typeof t,\"function\",\"expected a function\");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t==\"function\"&&(t=await t.call(this)),await this.ask(yl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e==\"function\"&&(e=await e.call(this));let t=yl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=yl;if(typeof i==\"function\"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];hoe(this.prompts[i],`Prompt \"${i}\" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on(\"submit\",u=>{this.emit(\"answer\",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit(\"prompt\",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill===\"show\"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||ip()}static get prompts(){return uoe()}static get types(){return foe()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return yl.mixinEmitter(e,new hO),e}};yl.mixinEmitter(lo,new hO);var fO=lo.prompts;for(let r of Object.keys(fO)){let e=r.toLowerCase(),t=i=>new fO[r](i).run();lo.prompt[e]=t,lo[e]=t,lo[r]||Reflect.defineProperty(lo,r,{get:()=>fO[r]})}var oE=r=>{yl.defineExport(lo,r,()=>lo.types[r])};oE(\"ArrayPrompt\");oE(\"AuthPrompt\");oE(\"BooleanPrompt\");oE(\"NumberPrompt\");oE(\"StringPrompt\");poe.exports=lo});var Soe=y((Pht,boe)=>{function FJe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i&&e(r[t],t,r)!==!1;);return r}boe.exports=FJe});var op=y((Dht,voe)=>{var NJe=lQ(),LJe=Mh();function TJe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s<o;){var a=e[s],l=i?i(t[a],r[a],a,t,r):void 0;l===void 0&&(l=r[a]),n?LJe(t,a,l):NJe(t,a,l)}return t}voe.exports=TJe});var Poe=y((kht,xoe)=>{var OJe=op(),MJe=Jh();function KJe(r,e){return r&&OJe(e,MJe(e),r)}xoe.exports=KJe});var koe=y((Rht,Doe)=>{function UJe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Doe.exports=UJe});var Foe=y((Fht,Roe)=>{var HJe=Sn(),GJe=xQ(),YJe=koe(),jJe=Object.prototype,qJe=jJe.hasOwnProperty;function JJe(r){if(!HJe(r))return YJe(r);var e=GJe(r),t=[];for(var i in r)i==\"constructor\"&&(e||!qJe.call(r,i))||t.push(i);return t}Roe.exports=JJe});var ap=y((Nht,Noe)=>{var WJe=ML(),zJe=Foe(),VJe=Nm();function XJe(r){return VJe(r)?WJe(r,!0):zJe(r)}Noe.exports=XJe});var Toe=y((Lht,Loe)=>{var _Je=op(),ZJe=ap();function $Je(r,e){return r&&_Je(e,ZJe(e),r)}Loe.exports=$Je});var IO=y((gE,Ap)=>{var eWe=Cs(),Uoe=typeof gE==\"object\"&&gE&&!gE.nodeType&&gE,Ooe=Uoe&&typeof Ap==\"object\"&&Ap&&!Ap.nodeType&&Ap,tWe=Ooe&&Ooe.exports===Uoe,Moe=tWe?eWe.Buffer:void 0,Koe=Moe?Moe.allocUnsafe:void 0;function rWe(r,e){if(e)return r.slice();var t=r.length,i=Koe?Koe(t):new r.constructor(t);return r.copy(i),i}Ap.exports=rWe});var yO=y((Tht,Hoe)=>{function iWe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t<i;)e[t]=r[t];return e}Hoe.exports=iWe});var Yoe=y((Oht,Goe)=>{var nWe=op(),sWe=DQ();function oWe(r,e){return nWe(r,sWe(r),e)}Goe.exports=oWe});var ZQ=y((Mht,joe)=>{var aWe=KL(),AWe=aWe(Object.getPrototypeOf,Object);joe.exports=AWe});var wO=y((Kht,qoe)=>{var lWe=uQ(),cWe=ZQ(),uWe=DQ(),gWe=qL(),fWe=Object.getOwnPropertySymbols,hWe=fWe?function(r){for(var e=[];r;)lWe(e,uWe(r)),r=cWe(r);return e}:gWe;qoe.exports=hWe});var Woe=y((Uht,Joe)=>{var pWe=op(),dWe=wO();function CWe(r,e){return pWe(r,dWe(r),e)}Joe.exports=CWe});var Voe=y((Hht,zoe)=>{var mWe=jL(),EWe=wO(),IWe=ap();function yWe(r){return mWe(r,IWe,EWe)}zoe.exports=yWe});var _oe=y((Ght,Xoe)=>{var wWe=Object.prototype,BWe=wWe.hasOwnProperty;function QWe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]==\"string\"&&BWe.call(r,\"index\")&&(t.index=r.index,t.input=r.input),t}Xoe.exports=QWe});var $Q=y((Yht,$oe)=>{var Zoe=GL();function bWe(r){var e=new r.constructor(r.byteLength);return new Zoe(e).set(new Zoe(r)),e}$oe.exports=bWe});var tae=y((jht,eae)=>{var SWe=$Q();function vWe(r,e){var t=e?SWe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}eae.exports=vWe});var iae=y((qht,rae)=>{var xWe=/\\w*$/;function PWe(r){var e=new r.constructor(r.source,xWe.exec(r));return e.lastIndex=r.lastIndex,e}rae.exports=PWe});var Aae=y((Jht,aae)=>{var nae=Jc(),sae=nae?nae.prototype:void 0,oae=sae?sae.valueOf:void 0;function DWe(r){return oae?Object(oae.call(r)):{}}aae.exports=DWe});var BO=y((Wht,lae)=>{var kWe=$Q();function RWe(r,e){var t=e?kWe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}lae.exports=RWe});var uae=y((zht,cae)=>{var FWe=$Q(),NWe=tae(),LWe=iae(),TWe=Aae(),OWe=BO(),MWe=\"[object Boolean]\",KWe=\"[object Date]\",UWe=\"[object Map]\",HWe=\"[object Number]\",GWe=\"[object RegExp]\",YWe=\"[object Set]\",jWe=\"[object String]\",qWe=\"[object Symbol]\",JWe=\"[object ArrayBuffer]\",WWe=\"[object DataView]\",zWe=\"[object Float32Array]\",VWe=\"[object Float64Array]\",XWe=\"[object Int8Array]\",_We=\"[object Int16Array]\",ZWe=\"[object Int32Array]\",$We=\"[object Uint8Array]\",e8e=\"[object Uint8ClampedArray]\",t8e=\"[object Uint16Array]\",r8e=\"[object Uint32Array]\";function i8e(r,e,t){var i=r.constructor;switch(e){case JWe:return FWe(r);case MWe:case KWe:return new i(+r);case WWe:return NWe(r,t);case zWe:case VWe:case XWe:case _We:case ZWe:case $We:case e8e:case t8e:case r8e:return OWe(r,t);case UWe:return new i;case HWe:case jWe:return new i(r);case GWe:return LWe(r);case YWe:return new i;case qWe:return TWe(r)}}cae.exports=i8e});var hae=y((Vht,fae)=>{var n8e=Sn(),gae=Object.create,s8e=function(){function r(){}return function(e){if(!n8e(e))return{};if(gae)return gae(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();fae.exports=s8e});var QO=y((Xht,pae)=>{var o8e=hae(),a8e=ZQ(),A8e=xQ();function l8e(r){return typeof r.constructor==\"function\"&&!A8e(r)?o8e(a8e(r)):{}}pae.exports=l8e});var Cae=y((_ht,dae)=>{var c8e=Tm(),u8e=Jo(),g8e=\"[object Map]\";function f8e(r){return u8e(r)&&c8e(r)==g8e}dae.exports=f8e});var yae=y((Zht,Iae)=>{var h8e=Cae(),p8e=bQ(),mae=SQ(),Eae=mae&&mae.isMap,d8e=Eae?p8e(Eae):h8e;Iae.exports=d8e});var Bae=y(($ht,wae)=>{var C8e=Tm(),m8e=Jo(),E8e=\"[object Set]\";function I8e(r){return m8e(r)&&C8e(r)==E8e}wae.exports=I8e});var vae=y((ept,Sae)=>{var y8e=Bae(),w8e=bQ(),Qae=SQ(),bae=Qae&&Qae.isSet,B8e=bae?w8e(bae):y8e;Sae.exports=B8e});var Rae=y((tpt,kae)=>{var Q8e=Lm(),b8e=Soe(),S8e=lQ(),v8e=Poe(),x8e=Toe(),P8e=IO(),D8e=yO(),k8e=Yoe(),R8e=Woe(),F8e=JL(),N8e=Voe(),L8e=Tm(),T8e=_oe(),O8e=uae(),M8e=QO(),K8e=ws(),U8e=km(),H8e=yae(),G8e=Sn(),Y8e=vae(),j8e=Jh(),q8e=ap(),J8e=1,W8e=2,z8e=4,xae=\"[object Arguments]\",V8e=\"[object Array]\",X8e=\"[object Boolean]\",_8e=\"[object Date]\",Z8e=\"[object Error]\",Pae=\"[object Function]\",$8e=\"[object GeneratorFunction]\",e3e=\"[object Map]\",t3e=\"[object Number]\",Dae=\"[object Object]\",r3e=\"[object RegExp]\",i3e=\"[object Set]\",n3e=\"[object String]\",s3e=\"[object Symbol]\",o3e=\"[object WeakMap]\",a3e=\"[object ArrayBuffer]\",A3e=\"[object DataView]\",l3e=\"[object Float32Array]\",c3e=\"[object Float64Array]\",u3e=\"[object Int8Array]\",g3e=\"[object Int16Array]\",f3e=\"[object Int32Array]\",h3e=\"[object Uint8Array]\",p3e=\"[object Uint8ClampedArray]\",d3e=\"[object Uint16Array]\",C3e=\"[object Uint32Array]\",gr={};gr[xae]=gr[V8e]=gr[a3e]=gr[A3e]=gr[X8e]=gr[_8e]=gr[l3e]=gr[c3e]=gr[u3e]=gr[g3e]=gr[f3e]=gr[e3e]=gr[t3e]=gr[Dae]=gr[r3e]=gr[i3e]=gr[n3e]=gr[s3e]=gr[h3e]=gr[p3e]=gr[d3e]=gr[C3e]=!0;gr[Z8e]=gr[Pae]=gr[o3e]=!1;function eb(r,e,t,i,n,s){var o,a=e&J8e,l=e&W8e,c=e&z8e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!G8e(r))return r;var u=K8e(r);if(u){if(o=T8e(r),!a)return D8e(r,o)}else{var g=L8e(r),f=g==Pae||g==$8e;if(U8e(r))return P8e(r,a);if(g==Dae||g==xae||f&&!n){if(o=l||f?{}:M8e(r),!a)return l?R8e(r,x8e(o,r)):k8e(r,v8e(o,r))}else{if(!gr[g])return n?r:{};o=O8e(r,g,a)}}s||(s=new Q8e);var h=s.get(r);if(h)return h;s.set(r,o),Y8e(r)?r.forEach(function(w){o.add(eb(w,e,t,w,r,s))}):H8e(r)&&r.forEach(function(w,B){o.set(B,eb(w,e,t,B,r,s))});var p=c?l?N8e:F8e:l?q8e:j8e,C=u?void 0:p(r);return b8e(C||r,function(w,B){C&&(B=w,w=r[B]),S8e(o,B,eb(w,e,t,B,r,s))}),o}kae.exports=eb});var bO=y((rpt,Fae)=>{var m3e=Rae(),E3e=1,I3e=4;function y3e(r){return m3e(r,E3e|I3e)}Fae.exports=y3e});var Lae=y((ipt,Nae)=>{var w3e=pL();function B3e(r,e,t){return r==null?r:w3e(r,e,t)}Nae.exports=B3e});var Uae=y((Apt,Kae)=>{function Q3e(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}Kae.exports=Q3e});var Gae=y((lpt,Hae)=>{var b3e=Qm(),S3e=xF();function v3e(r,e){return e.length<2?r:b3e(r,S3e(e,0,-1))}Hae.exports=v3e});var jae=y((cpt,Yae)=>{var x3e=Oh(),P3e=Uae(),D3e=Gae(),k3e=fu();function R3e(r,e){return e=x3e(e,r),r=D3e(r,e),r==null||delete r[k3e(P3e(e))]}Yae.exports=R3e});var Jae=y((upt,qae)=>{var F3e=jae();function N3e(r,e){return r==null?!0:F3e(r,e)}qae.exports=N3e});var _ae=y((Tpt,O3e)=>{O3e.exports={name:\"@yarnpkg/cli\",version:\"3.3.0\",license:\"BSD-2-Clause\",main:\"./sources/index.ts\",dependencies:{\"@yarnpkg/core\":\"workspace:^\",\"@yarnpkg/fslib\":\"workspace:^\",\"@yarnpkg/libzip\":\"workspace:^\",\"@yarnpkg/parsers\":\"workspace:^\",\"@yarnpkg/plugin-compat\":\"workspace:^\",\"@yarnpkg/plugin-dlx\":\"workspace:^\",\"@yarnpkg/plugin-essentials\":\"workspace:^\",\"@yarnpkg/plugin-file\":\"workspace:^\",\"@yarnpkg/plugin-git\":\"workspace:^\",\"@yarnpkg/plugin-github\":\"workspace:^\",\"@yarnpkg/plugin-http\":\"workspace:^\",\"@yarnpkg/plugin-init\":\"workspace:^\",\"@yarnpkg/plugin-link\":\"workspace:^\",\"@yarnpkg/plugin-nm\":\"workspace:^\",\"@yarnpkg/plugin-npm\":\"workspace:^\",\"@yarnpkg/plugin-npm-cli\":\"workspace:^\",\"@yarnpkg/plugin-pack\":\"workspace:^\",\"@yarnpkg/plugin-patch\":\"workspace:^\",\"@yarnpkg/plugin-pnp\":\"workspace:^\",\"@yarnpkg/plugin-pnpm\":\"workspace:^\",\"@yarnpkg/shell\":\"workspace:^\",chalk:\"^3.0.0\",\"ci-info\":\"^3.2.0\",clipanion:\"3.2.0-rc.4\",semver:\"^7.1.2\",tslib:\"^1.13.0\",typanion:\"^3.3.0\",yup:\"^0.32.9\"},devDependencies:{\"@types/semver\":\"^7.1.0\",\"@types/yup\":\"^0\",\"@yarnpkg/builder\":\"workspace:^\",\"@yarnpkg/monorepo\":\"workspace:^\",\"@yarnpkg/pnpify\":\"workspace:^\",micromatch:\"^4.0.2\"},peerDependencies:{\"@yarnpkg/core\":\"workspace:^\"},scripts:{postpack:\"rm -rf lib\",prepack:'run build:compile \"$(pwd)\"',\"build:cli+hook\":\"run build:pnp:hook && builder build bundle\",\"build:cli\":\"builder build bundle\",\"run:cli\":\"builder run\",\"update-local\":\"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/\"},publishConfig:{main:\"./lib/index.js\",types:\"./lib/index.d.ts\",bin:null},files:[\"/lib/**/*\",\"!/lib/pluginConfiguration.*\",\"!/lib/cli.*\"],\"@yarnpkg/builder\":{bundles:{standard:[\"@yarnpkg/plugin-essentials\",\"@yarnpkg/plugin-compat\",\"@yarnpkg/plugin-dlx\",\"@yarnpkg/plugin-file\",\"@yarnpkg/plugin-git\",\"@yarnpkg/plugin-github\",\"@yarnpkg/plugin-http\",\"@yarnpkg/plugin-init\",\"@yarnpkg/plugin-link\",\"@yarnpkg/plugin-nm\",\"@yarnpkg/plugin-npm\",\"@yarnpkg/plugin-npm-cli\",\"@yarnpkg/plugin-pack\",\"@yarnpkg/plugin-patch\",\"@yarnpkg/plugin-pnp\",\"@yarnpkg/plugin-pnpm\"]}},repository:{type:\"git\",url:\"ssh://git@github.com/yarnpkg/berry.git\",directory:\"packages/yarnpkg-cli\"},engines:{node:\">=12 <14 || 14.2 - 14.9 || >14.10.0\"}}});var OO=y((Mmt,hAe)=>{\"use strict\";hAe.exports=function(e,t){t===!0&&(t=0);var i=\"\";if(typeof e==\"string\")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\\:|\\+/).filter(Boolean);return typeof t==\"number\"?n[t]:n}});var dAe=y((Kmt,pAe)=>{\"use strict\";var r4e=OO();function i4e(r){var e={protocols:[],protocol:null,port:null,resource:\"\",host:\"\",user:\"\",password:\"\",pathname:\"\",hash:\"\",search:\"\",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=r4e(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||\"\",e.password=t.password||\"\",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=[\"file\"],e.protocol=e.protocols[0],e.port=\"\",e.resource=\"\",e.user=\"\",e.pathname=\"\",e.hash=\"\",e.search=\"\",e.href=r,e.query={},e.parse_failed=!0}return e}pAe.exports=i4e});var EAe=y((Umt,mAe)=>{\"use strict\";var n4e=dAe();function s4e(r){return r&&typeof r==\"object\"&&\"default\"in r?r:{default:r}}var o4e=s4e(n4e),a4e=\"text/plain\",A4e=\"us-ascii\",CAe=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),l4e=(r,{stripHash:e})=>{let t=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(\";\");s=e?\"\":s;let a=!1;o[o.length-1]===\"base64\"&&(o.pop(),a=!0);let l=(o.shift()||\"\").toLowerCase(),u=[...o.map(g=>{let[f,h=\"\"]=g.split(\"=\").map(p=>p.trim());return f===\"charset\"&&(h=h.toLowerCase(),h===A4e)?\"\":`${f}${h?`=${h}`:\"\"}`}).filter(Boolean)];return a&&u.push(\"base64\"),(u.length>0||l&&l!==a4e)&&u.unshift(l),`data:${u.join(\";\")},${a?n.trim():n}${s?`#${s}`:\"\"}`};function c4e(r,e){if(e={defaultProtocol:\"http:\",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return l4e(r,e);if(/^view-source:/i.test(r))throw new Error(\"`view-source:` is not supported as it is a non-standard protocol\");let t=r.startsWith(\"//\");!t&&/^\\.*\\//.test(r)||(r=r.replace(/^(?!(?:\\w+:)?\\/\\/)|^\\/\\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error(\"The `forceHttp` and `forceHttps` options cannot be used together\");if(e.forceHttp&&n.protocol===\"https:\"&&(n.protocol=\"http:\"),e.forceHttps&&n.protocol===\"http:\"&&(n.protocol=\"https:\"),e.stripAuthentication&&(n.username=\"\",n.password=\"\"),e.stripHash?n.hash=\"\":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,\"\")),n.pathname){let o=/\\b[a-z][a-z\\d+\\-.]{1,50}:\\/\\//g,a=0,l=\"\";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],f=u.index;l+=n.pathname.slice(a,f).replace(/\\/{2,}/g,\"/\"),l+=g,a=f+g.length}l+=n.pathname.slice(a,n.pathname.length).replace(/\\/{2,}/g,\"/\"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split(\"/\"),a=o[o.length-1];CAe(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join(\"/\")+\"/\")}if(n.hostname&&(n.hostname=n.hostname.replace(/\\.$/,\"\"),e.stripWWW&&/^www\\.(?!www\\.)[a-z\\-\\d]{1,63}\\.[a-z.\\-\\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\\./,\"\"))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])CAe(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=\"\"),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\\/$/,\"\"));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname===\"/\"&&!s.endsWith(\"/\")&&n.hash===\"\"&&(r=r.replace(/\\/$/,\"\")),(e.removeTrailingSlash||n.pathname===\"/\")&&n.hash===\"\"&&e.removeSingleSlash&&(r=r.replace(/\\/$/,\"\")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\\/\\//,\"//\")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\\/\\//,\"\")),r}var MO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\\/\\/)([\\w\\.\\-@]+)[\\/:]([\\~,\\.\\w,\\-,\\_,\\/]+?(?:\\.git|\\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!=\"string\"||!r.trim())&&i(\"Invalid url.\"),r.length>MO.MAX_INPUT_LENGTH&&i(\"Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH.\"),e&&(typeof e!=\"object\"&&(e={stripHash:!1}),r=c4e(r,e));let n=o4e.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=[\"ssh\"],n.protocol=\"ssh\",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i(\"URL parsing failed.\")}return n};MO.MAX_INPUT_LENGTH=2048;mAe.exports=MO});var wAe=y((Hmt,yAe)=>{\"use strict\";var u4e=OO();function IAe(r){if(Array.isArray(r))return r.indexOf(\"ssh\")!==-1||r.indexOf(\"rsync\")!==-1;if(typeof r!=\"string\")return!1;var e=u4e(r);if(r=r.substring(r.indexOf(\"://\")+3),IAe(e))return!0;var t=new RegExp(\".([a-zA-Z\\\\d]+):(\\\\d+)/\");return!r.match(t)&&r.indexOf(\"@\")<r.indexOf(\":\")}yAe.exports=IAe});var bAe=y((Gmt,QAe)=>{\"use strict\";var g4e=EAe(),BAe=wAe();function f4e(r){var e=g4e(r);return e.token=\"\",e.password===\"x-oauth-basic\"?e.token=e.user:e.user===\"x-token-auth\"&&(e.token=e.password),BAe(e.protocols)||e.protocols.length===0&&BAe(r)?e.protocol=\"ssh\":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol=\"file\",e.protocols=[\"file\"]),e.href=e.href.replace(/\\/$/,\"\"),e}QAe.exports=f4e});var vAe=y((Ymt,SAe)=>{\"use strict\";var h4e=bAe();function KO(r){if(typeof r!=\"string\")throw new Error(\"The url must be a string.\");var e=/^([a-z\\d-]{1,39})\\/([-\\.\\w]{1,100})$/i;e.test(r)&&(r=\"https://github.com/\"+r);var t=h4e(r),i=t.resource.split(\".\"),n=null;switch(t.toString=function(w){return KO.stringify(this,w)},t.source=i.length>2?i.slice(1-i.length).join(\".\"):t.source=t.resource,t.git_suffix=/\\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\\/)|(\\/$)/g,\"\").replace(/\\.git$/,\"\")),t.owner=decodeURIComponent(t.user),t.source){case\"git.cloudforge.com\":t.owner=t.user,t.organization=i[0],t.source=\"cloudforge.com\";break;case\"visualstudio.com\":if(t.resource===\"vs-ssh.visualstudio.com\"){n=t.name.split(\"/\"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+\"/\"+n[3]);break}else{n=t.name.split(\"/\"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name=\"_git/\"+t.name):n.length===3?(t.name=n[2],n[0]===\"DefaultCollection\"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+\"/_git/\"+t.name):(t.owner=n[0],t.full_name=t.owner+\"/_git/\"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+\"/\"+t.owner+\"/_git/\"+t.name);break}case\"dev.azure.com\":case\"azure.com\":if(t.resource===\"ssh.dev.azure.com\"){n=t.name.split(\"/\"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split(\"/\"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name=\"_git/\"+t.name):n.length===3?(t.name=n[2],n[0]===\"DefaultCollection\"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+\"/_git/\"+t.name):(t.owner=n[0],t.full_name=t.owner+\"/_git/\"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+\"/\"+t.owner+\"/_git/\"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\\/+/g,\"\")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,\"\"));break}default:n=t.name.split(\"/\");var s=n.length-1;if(n.length>=2){var o=n.indexOf(\"-\",2),a=n.indexOf(\"blob\",2),l=n.indexOf(\"tree\",2),c=n.indexOf(\"commit\",2),u=n.indexOf(\"src\",2),g=n.indexOf(\"raw\",2),f=n.indexOf(\"edit\",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:f>0?f-1:s,t.owner=n.slice(0,s).join(\"/\"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref=\"\",t.filepathtype=\"\",t.filepath=\"\";var h=n.length>s&&n[s+1]===\"-\"?s+1:s;n.length>h+2&&[\"raw\",\"src\",\"blob\",\"tree\",\"edit\"].indexOf(n[h+1])>=0&&(t.filepathtype=n[h+1],t.ref=n[h+2],n.length>h+3&&(t.filepath=n.slice(h+3).join(\"/\"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+=\"/\"),t.full_name+=t.name)),t.owner.startsWith(\"scm/\")&&(t.source=\"bitbucket-server\",t.owner=t.owner.replace(\"scm/\",\"\"),t.organization=t.owner,t.full_name=t.owner+\"/\"+t.name);var p=/(projects|users)\\/(.*?)\\/repos\\/(.*?)((\\/.*$)|$)/,C=p.exec(t.pathname);return C!=null&&(t.source=\"bitbucket-server\",C[1]===\"users\"?t.owner=\"~\"+C[2]:t.owner=C[2],t.organization=t.owner,t.name=C[3],n=C[4].split(\"/\"),n.length>1&&([\"raw\",\"browse\"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join(\"/\"))):n[1]===\"commits\"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+\"/\"+t.name,t.query.at?t.ref=t.query.at:t.ref=\"\"),t}KO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join(\"+\"):r.protocol);var t=r.port?\":\"+r.port:\"\",i=r.user||\"git\",n=r.git_suffix?\".git\":\"\";switch(e){case\"ssh\":return t?\"ssh://\"+i+\"@\"+r.resource+t+\"/\"+r.full_name+n:i+\"@\"+r.resource+\":\"+r.full_name+n;case\"git+ssh\":case\"ssh+git\":case\"ftp\":case\"ftps\":return e+\"://\"+i+\"@\"+r.resource+t+\"/\"+r.full_name+n;case\"http\":case\"https\":var s=r.token?p4e(r):r.user&&(r.protocols.includes(\"http\")||r.protocols.includes(\"https\"))?r.user+\"@\":\"\";return e+\"://\"+s+r.resource+t+\"/\"+d4e(r)+n;default:return r.href}};function p4e(r){switch(r.source){case\"bitbucket.org\":return\"x-token-auth:\"+r.token+\"@\";default:return r.token+\"@\"}}function d4e(r){switch(r.source){case\"bitbucket-server\":return\"scm/\"+r.full_name;default:return\"\"+r.full_name}}SAe.exports=KO});var oM=y((Syt,qAe)=>{var T4e=Mh(),O4e=Nh();function M4e(r,e,t){(t!==void 0&&!O4e(r[e],t)||t===void 0&&!(e in r))&&T4e(r,e,t)}qAe.exports=M4e});var WAe=y((vyt,JAe)=>{var K4e=Nm(),U4e=Jo();function H4e(r){return U4e(r)&&K4e(r)}JAe.exports=H4e});var XAe=y((xyt,VAe)=>{var G4e=Wc(),Y4e=ZQ(),j4e=Jo(),q4e=\"[object Object]\",J4e=Function.prototype,W4e=Object.prototype,zAe=J4e.toString,z4e=W4e.hasOwnProperty,V4e=zAe.call(Object);function X4e(r){if(!j4e(r)||G4e(r)!=q4e)return!1;var e=Y4e(r);if(e===null)return!0;var t=z4e.call(e,\"constructor\")&&e.constructor;return typeof t==\"function\"&&t instanceof t&&zAe.call(t)==V4e}VAe.exports=X4e});var aM=y((Pyt,_Ae)=>{function _4e(r,e){if(!(e===\"constructor\"&&typeof r[e]==\"function\")&&e!=\"__proto__\")return r[e]}_Ae.exports=_4e});var $Ae=y((Dyt,ZAe)=>{var Z4e=op(),$4e=ap();function eze(r){return Z4e(r,$4e(r))}ZAe.exports=eze});var sle=y((kyt,nle)=>{var ele=oM(),tze=IO(),rze=BO(),ize=yO(),nze=QO(),tle=Sm(),rle=ws(),sze=WAe(),oze=km(),aze=oQ(),Aze=Sn(),lze=XAe(),cze=vQ(),ile=aM(),uze=$Ae();function gze(r,e,t,i,n,s,o){var a=ile(r,t),l=ile(e,t),c=o.get(l);if(c){ele(r,t,c);return}var u=s?s(a,l,t+\"\",r,e,o):void 0,g=u===void 0;if(g){var f=rle(l),h=!f&&oze(l),p=!f&&!h&&cze(l);u=l,f||h||p?rle(a)?u=a:sze(a)?u=ize(a):h?(g=!1,u=tze(l,!0)):p?(g=!1,u=rze(l,!0)):u=[]:lze(l)||tle(l)?(u=a,tle(a)?u=uze(a):(!Aze(a)||aze(a))&&(u=nze(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),ele(r,t,u)}nle.exports=gze});var Ale=y((Ryt,ale)=>{var fze=Lm(),hze=oM(),pze=TL(),dze=sle(),Cze=Sn(),mze=ap(),Eze=aM();function ole(r,e,t,i,n){r!==e&&pze(e,function(s,o){if(n||(n=new fze),Cze(s))dze(r,e,o,t,ole,i,n);else{var a=i?i(Eze(r,o),s,o+\"\",r,e,n):void 0;a===void 0&&(a=s),hze(r,o,a)}},mze)}ale.exports=ole});var cle=y((Fyt,lle)=>{var Ize=gQ(),yze=mL(),wze=EL();function Bze(r,e){return wze(yze(r,e,Ize),r+\"\")}lle.exports=Bze});var gle=y((Nyt,ule)=>{var Qze=Nh(),bze=Nm(),Sze=bm(),vze=Sn();function xze(r,e,t){if(!vze(t))return!1;var i=typeof e;return(i==\"number\"?bze(t)&&Sze(e,t.length):i==\"string\"&&e in t)?Qze(t[e],r):!1}ule.exports=xze});var hle=y((Lyt,fle)=>{var Pze=cle(),Dze=gle();function kze(r){return Pze(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s==\"function\"?(n--,s):void 0,o&&Dze(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i<n;){var a=t[i];a&&r(e,a,i,s)}return e})}fle.exports=kze});var dle=y((Tyt,ple)=>{var Rze=Ale(),Fze=hle(),Nze=Fze(function(r,e,t){Rze(r,e,t)});ple.exports=Nze});var Dle=y((Nwt,Ple)=>{var CM;Ple.exports=()=>(typeof CM>\"u\"&&(CM=J(\"zlib\").brotliDecompressSync(Buffer.from(\"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\",\"base64\")).toString()),CM)});var tce=y((bBt,ece)=>{var bM;ece.exports=()=>(typeof bM>\"u\"&&(bM=J(\"zlib\").brotliDecompressSync(Buffer.from(\"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\",\"base64\")).toString()),bM)});var Ace=y((RM,FM)=>{(function(r){RM&&typeof RM==\"object\"&&typeof FM<\"u\"?FM.exports=r():typeof define==\"function\"&&define.amd?define([],r):typeof window<\"u\"?window.isWindows=r():typeof global<\"u\"?global.isWindows=r():typeof self<\"u\"?self.isWindows=r():this.isWindows=r()})(function(){\"use strict\";return function(){return process&&(process.platform===\"win32\"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var gce=y((w0t,uce)=>{\"use strict\";NM.ifExists=P5e;var bp=J(\"util\"),Fs=J(\"path\"),lce=Ace(),S5e=/^#!\\s*(?:\\/usr\\/bin\\/env)?\\s*([^ \\t]+)(.*)$/,v5e={createPwshFile:!0,createCmdFile:lce(),fs:J(\"fs\")},x5e=new Map([[\".js\",\"node\"],[\".cjs\",\"node\"],[\".mjs\",\"node\"],[\".cmd\",\"cmd\"],[\".bat\",\"cmd\"],[\".ps1\",\"pwsh\"],[\".sh\",\"sh\"]]);function cce(r){let e={...v5e,...r},t=e.fs;return e.fs_={chmod:t.chmod?bp.promisify(t.chmod):async()=>{},mkdir:bp.promisify(t.mkdir),readFile:bp.promisify(t.readFile),stat:bp.promisify(t.stat),unlink:bp.promisify(t.unlink),writeFile:bp.promisify(t.writeFile)},e}async function NM(r,e,t){let i=cce(t);await i.fs_.stat(r),await k5e(r,e,i)}function P5e(r,e,t){return NM(r,e,t).catch(()=>{})}function D5e(r,e){return e.fs_.unlink(r).catch(()=>{})}async function k5e(r,e,t){let i=await T5e(r,t);return await R5e(e,t),F5e(r,e,i,t)}function R5e(r,e){return e.fs_.mkdir(Fs.dirname(r),{recursive:!0})}function F5e(r,e,t,i){let n=cce(i),s=[{generator:K5e,extension:\"\"}];return n.createCmdFile&&s.push({generator:M5e,extension:\".cmd\"}),n.createPwshFile&&s.push({generator:U5e,extension:\".ps1\"}),Promise.all(s.map(o=>O5e(r,e+o.extension,t,o.generator,n)))}function N5e(r,e){return D5e(r,e)}function L5e(r,e){return H5e(r,e)}async function T5e(r,e){let n=(await e.fs_.readFile(r,\"utf8\")).trim().split(/\\r*\\n/)[0].match(S5e);if(!n){let s=Fs.extname(r).toLowerCase();return{program:x5e.get(s)||null,additionalArgs:\"\"}}return{program:n[1],additionalArgs:n[2]}}async function O5e(r,e,t,i,n){let s=n.preserveSymlinks?\"--preserve-symlinks\":\"\",o=[t.additionalArgs,s].filter(a=>a).join(\" \");return n=Object.assign({},n,{prog:t.program,args:o}),await N5e(e,n),await n.fs_.writeFile(e,i(r,e,n),\"utf8\"),L5e(e,n)}function M5e(r,e,t){let n=Fs.relative(Fs.dirname(e),r).split(\"/\").join(\"\\\\\"),s=Fs.isAbsolute(n)?`\"${n}\"`:`\"%~dp0\\\\${n}\"`,o,a=t.prog,l=t.args||\"\",c=LM(t.nodePath).win32;a?(o=`\"%~dp0\\\\${a}.exe\"`,n=s):(a=s,l=\"\",n=\"\");let u=t.progArgs?`${t.progArgs.join(\" \")} `:\"\",g=c?`@SET NODE_PATH=${c}\\r\n`:\"\";return o?g+=`@IF EXIST ${o} (\\r\n  ${o} ${l} ${n} ${u}%*\\r\n) ELSE (\\r\n  @SETLOCAL\\r\n  @SET PATHEXT=%PATHEXT:;.JS;=;%\\r\n  ${a} ${l} ${n} ${u}%*\\r\n)\\r\n`:g+=`@${a} ${l} ${n} ${u}%*\\r\n`,g}function K5e(r,e,t){let i=Fs.relative(Fs.dirname(e),r),n=t.prog&&t.prog.split(\"\\\\\").join(\"/\"),s;i=i.split(\"\\\\\").join(\"/\");let o=Fs.isAbsolute(i)?`\"${i}\"`:`\"$basedir/${i}\"`,a=t.args||\"\",l=LM(t.nodePath).posix;n?(s=`\"$basedir/${t.prog}\"`,i=o):(n=o,a=\"\",i=\"\");let c=t.progArgs?`${t.progArgs.join(\" \")} `:\"\",u=`#!/bin/sh\nbasedir=$(dirname \"$(echo \"$0\" | sed -e 's,\\\\\\\\,/,g')\")\n\ncase \\`uname\\` in\n    *CYGWIN*) basedir=\\`cygpath -w \"$basedir\"\\`;;\nesac\n\n`,g=t.nodePath?`export NODE_PATH=\"${l}\"\n`:\"\";return s?u+=`${g}if [ -x ${s} ]; then\n  exec ${s} ${a} ${i} ${c}\"$@\"\nelse\n  exec ${n} ${a} ${i} ${c}\"$@\"\nfi\n`:u+=`${g}${n} ${a} ${i} ${c}\"$@\"\nexit $?\n`,u}function U5e(r,e,t){let i=Fs.relative(Fs.dirname(e),r),n=t.prog&&t.prog.split(\"\\\\\").join(\"/\"),s=n&&`\"${n}$exe\"`,o;i=i.split(\"\\\\\").join(\"/\");let a=Fs.isAbsolute(i)?`\"${i}\"`:`\"$basedir/${i}\"`,l=t.args||\"\",c=LM(t.nodePath),u=c.win32,g=c.posix;s?(o=`\"$basedir/${t.prog}$exe\"`,i=a):(s=a,l=\"\",i=\"\");let f=t.progArgs?`${t.progArgs.join(\" \")} `:\"\",h=`#!/usr/bin/env pwsh\n$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent\n\n$exe=\"\"\n${t.nodePath?`$env_node_path=$env:NODE_PATH\n$env:NODE_PATH=\"${u}\"\n`:\"\"}if ($PSVersionTable.PSVersion -lt \"6.0\" -or $IsWindows) {\n  # Fix case when both the Windows and Linux builds of Node\n  # are installed in the same directory\n  $exe=\".exe\"\n}`;return t.nodePath&&(h+=` else {\n  $env:NODE_PATH=\"${g}\"\n}`),o?h+=`\n$ret=0\nif (Test-Path ${o}) {\n  # Support pipeline input\n  if ($MyInvocation.ExpectingInput) {\n    $input | & ${o} ${l} ${i} ${f}$args\n  } else {\n    & ${o} ${l} ${i} ${f}$args\n  }\n  $ret=$LASTEXITCODE\n} else {\n  # Support pipeline input\n  if ($MyInvocation.ExpectingInput) {\n    $input | & ${s} ${l} ${i} ${f}$args\n  } else {\n    & ${s} ${l} ${i} ${f}$args\n  }\n  $ret=$LASTEXITCODE\n}\n${t.nodePath?`$env:NODE_PATH=$env_node_path\n`:\"\"}exit $ret\n`:h+=`\n# Support pipeline input\nif ($MyInvocation.ExpectingInput) {\n  $input | & ${s} ${l} ${i} ${f}$args\n} else {\n  & ${s} ${l} ${i} ${f}$args\n}\n${t.nodePath?`$env:NODE_PATH=$env_node_path\n`:\"\"}exit $LASTEXITCODE\n`,h}function H5e(r,e){return e.fs_.chmod(r,493)}function LM(r){if(!r)return{win32:\"\",posix:\"\"};let e=typeof r==\"string\"?r.split(Fs.delimiter):Array.from(r),t={};for(let i=0;i<e.length;i++){let n=e[i].split(\"/\").join(\"\\\\\"),s=lce()?e[i].split(\"\\\\\").join(\"/\").replace(/^([^:\\\\/]*):/,(o,a)=>`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}uce.exports=NM});var zM=y((KQt,Rce)=>{Rce.exports=J(\"stream\")});var Tce=y((UQt,Lce)=>{\"use strict\";function Fce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function a6e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Fce(Object(t),!0).forEach(function(i){A6e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Fce(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function A6e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function l6e(r,e){if(!(r instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function Nce(r,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(r,i.key,i)}}function c6e(r,e,t){return e&&Nce(r.prototype,e),t&&Nce(r,t),r}var u6e=J(\"buffer\"),Wb=u6e.Buffer,g6e=J(\"util\"),VM=g6e.inspect,f6e=VM&&VM.custom||\"inspect\";function h6e(r,e,t){Wb.prototype.copy.call(r,e,t)}Lce.exports=function(){function r(){l6e(this,r),this.head=null,this.tail=null,this.length=0}return c6e(r,[{key:\"push\",value:function(t){var i={data:t,next:null};this.length>0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:\"unshift\",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:\"shift\",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:\"clear\",value:function(){this.head=this.tail=null,this.length=0}},{key:\"join\",value:function(t){if(this.length===0)return\"\";for(var i=this.head,n=\"\"+i.data;i=i.next;)n+=t+i.data;return n}},{key:\"concat\",value:function(t){if(this.length===0)return Wb.alloc(0);for(var i=Wb.allocUnsafe(t>>>0),n=this.head,s=0;n;)h6e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:\"consume\",value:function(t,i){var n;return t<this.head.data.length?(n=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):t===this.head.data.length?n=this.shift():n=i?this._getString(t):this._getBuffer(t),n}},{key:\"first\",value:function(){return this.head.data}},{key:\"_getString\",value:function(t){var i=this.head,n=1,s=i.data;for(t-=s.length;i=i.next;){var o=i.data,a=t>o.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:\"_getBuffer\",value:function(t){var i=Wb.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:f6e,value:function(t,i){return VM(this,a6e({},i,{depth:0,customInspect:!1}))}}]),r}()});var _M=y((HQt,Mce)=>{\"use strict\";function p6e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(XM,this,r)):process.nextTick(XM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(zb,t):(t._writableState.errorEmitted=!0,process.nextTick(Oce,t,s)):process.nextTick(Oce,t,s):e?(process.nextTick(zb,t),e(s)):process.nextTick(zb,t)}),this)}function Oce(r,e){XM(r,e),zb(r)}function zb(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit(\"close\")}function d6e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function XM(r,e){r.emit(\"error\",e)}function C6e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit(\"error\",e)}Mce.exports={destroy:p6e,undestroy:d6e,errorOrDestroy:C6e}});var Ll=y((GQt,Hce)=>{\"use strict\";var Uce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e==\"string\"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,Uce[r]=n}function Kce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(\", \")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function m6e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function E6e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function I6e(r,e,t){return typeof t!=\"number\"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls(\"ERR_INVALID_OPT_VALUE\",function(r,e){return'The value \"'+e+'\" is invalid for option \"'+r+'\"'},TypeError);Ls(\"ERR_INVALID_ARG_TYPE\",function(r,e,t){let i;typeof e==\"string\"&&m6e(e,\"not \")?(i=\"must not be\",e=e.replace(/^not /,\"\")):i=\"must be\";let n;if(E6e(r,\" argument\"))n=`The ${r} ${i} ${Kce(e,\"type\")}`;else{let s=I6e(r,\".\")?\"property\":\"argument\";n=`The \"${r}\" ${s} ${i} ${Kce(e,\"type\")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\");Ls(\"ERR_METHOD_NOT_IMPLEMENTED\",function(r){return\"The \"+r+\" method is not implemented\"});Ls(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\");Ls(\"ERR_STREAM_DESTROYED\",function(r){return\"Cannot call \"+r+\" after a stream was destroyed\"});Ls(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\");Ls(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\");Ls(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\");Ls(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError);Ls(\"ERR_UNKNOWN_ENCODING\",function(r){return\"Unknown encoding: \"+r},TypeError);Ls(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\");Hce.exports.codes=Uce});var ZM=y((YQt,Gce)=>{\"use strict\";var y6e=Ll().codes.ERR_INVALID_OPT_VALUE;function w6e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function B6e(r,e,t,i){var n=w6e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:\"highWaterMark\";throw new y6e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}Gce.exports={getHighWaterMark:B6e}});var Yce=y((jQt,$M)=>{typeof Object.create==\"function\"?$M.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:$M.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Tl=y((qQt,tK)=>{try{if(eK=J(\"util\"),typeof eK.inherits!=\"function\")throw\"\";tK.exports=eK.inherits}catch{tK.exports=Yce()}var eK});var qce=y((JQt,jce)=>{jce.exports=J(\"util\").deprecate});var nK=y((WQt,_ce)=>{\"use strict\";_ce.exports=Mr;function Wce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){X6e(e,r)}}var xp;Mr.WritableState=UE;var Q6e={deprecate:qce()},zce=zM(),Xb=J(\"buffer\").Buffer,b6e=global.Uint8Array||function(){};function S6e(r){return Xb.from(r)}function v6e(r){return Xb.isBuffer(r)||r instanceof b6e}var iK=_M(),x6e=ZM(),P6e=x6e.getHighWaterMark,Ol=Ll().codes,D6e=Ol.ERR_INVALID_ARG_TYPE,k6e=Ol.ERR_METHOD_NOT_IMPLEMENTED,R6e=Ol.ERR_MULTIPLE_CALLBACK,F6e=Ol.ERR_STREAM_CANNOT_PIPE,N6e=Ol.ERR_STREAM_DESTROYED,L6e=Ol.ERR_STREAM_NULL_VALUES,T6e=Ol.ERR_STREAM_WRITE_AFTER_END,O6e=Ol.ERR_UNKNOWN_ENCODING,Pp=iK.errorOrDestroy;Tl()(Mr,zce);function M6e(){}function UE(r,e,t){xp=xp||lg(),r=r||{},typeof t!=\"boolean\"&&(t=e instanceof xp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=P6e(this,r,\"writableHighWaterMark\",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){q6e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Wce(this)}UE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(UE.prototype,\"buffer\",{get:Q6e.deprecate(function(){return this.getBuffer()},\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch{}})();var Vb;typeof Symbol==\"function\"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==\"function\"?(Vb=Function.prototype[Symbol.hasInstance],Object.defineProperty(Mr,Symbol.hasInstance,{value:function(e){return Vb.call(this,e)?!0:this!==Mr?!1:e&&e._writableState instanceof UE}})):Vb=function(e){return e instanceof this};function Mr(r){xp=xp||lg();var e=this instanceof xp;if(!e&&!Vb.call(Mr,this))return new Mr(r);this._writableState=new UE(r,this,e),this.writable=!0,r&&(typeof r.write==\"function\"&&(this._write=r.write),typeof r.writev==\"function\"&&(this._writev=r.writev),typeof r.destroy==\"function\"&&(this._destroy=r.destroy),typeof r.final==\"function\"&&(this._final=r.final)),zce.call(this)}Mr.prototype.pipe=function(){Pp(this,new F6e)};function K6e(r,e){var t=new T6e;Pp(r,t),process.nextTick(e,t)}function U6e(r,e,t,i){var n;return t===null?n=new L6e:typeof t!=\"string\"&&!e.objectMode&&(n=new D6e(\"chunk\",[\"string\",\"Buffer\"],t)),n?(Pp(r,n),process.nextTick(i,n),!1):!0}Mr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&v6e(r);return s&&!Xb.isBuffer(r)&&(r=S6e(r)),typeof e==\"function\"&&(t=e,e=null),s?e=\"buffer\":e||(e=i.defaultEncoding),typeof t!=\"function\"&&(t=M6e),i.ending?K6e(this,t):(s||U6e(this,i,r,t))&&(i.pendingcb++,n=G6e(this,i,s,r,e,t)),n};Mr.prototype.cork=function(){this._writableState.corked++};Mr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Vce(this,r))};Mr.prototype.setDefaultEncoding=function(e){if(typeof e==\"string\"&&(e=e.toLowerCase()),!([\"hex\",\"utf8\",\"utf-8\",\"ascii\",\"binary\",\"base64\",\"ucs2\",\"ucs-2\",\"utf16le\",\"utf-16le\",\"raw\"].indexOf((e+\"\").toLowerCase())>-1))throw new O6e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Mr.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function H6e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e==\"string\"&&(e=Xb.from(e,t)),e}Object.defineProperty(Mr.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function G6e(r,e,t,i,n,s){if(!t){var o=H6e(e,i,n);i!==o&&(t=!0,n=\"buffer\",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length<e.highWaterMark;if(l||(e.needDrain=!0),e.writing||e.corked){var c=e.lastBufferedRequest;e.lastBufferedRequest={chunk:i,encoding:n,isBuf:t,callback:s,next:null},c?c.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else rK(r,e,!1,a,i,n,s);return l}function rK(r,e,t,i,n,s,o){e.writelen=i,e.writecb=o,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new N6e(\"write\")):t?r._writev(n,e.onwrite):r._write(n,s,e.onwrite),e.sync=!1}function Y6e(r,e,t,i,n){--e.pendingcb,t?(process.nextTick(n,i),process.nextTick(KE,r,e),r._writableState.errorEmitted=!0,Pp(r,i)):(n(i),r._writableState.errorEmitted=!0,Pp(r,i),KE(r,e))}function j6e(r){r.writing=!1,r.writecb=null,r.length-=r.writelen,r.writelen=0}function q6e(r,e){var t=r._writableState,i=t.sync,n=t.writecb;if(typeof n!=\"function\")throw new R6e;if(j6e(t),e)Y6e(r,t,i,e,n);else{var s=Xce(t)||r.destroyed;!s&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Vce(r,t),i?process.nextTick(Jce,r,t,s,n):Jce(r,t,s,n)}}function Jce(r,e,t,i){t||J6e(r,e),e.pendingcb--,i(),KE(r,e)}function J6e(r,e){e.length===0&&e.needDrain&&(e.needDrain=!1,r.emit(\"drain\"))}function Vce(r,e){e.bufferProcessing=!0;var t=e.bufferedRequest;if(r._writev&&t&&t.next){var i=e.bufferedRequestCount,n=new Array(i),s=e.corkedRequestsFree;s.entry=t;for(var o=0,a=!0;t;)n[o]=t,t.isBuf||(a=!1),t=t.next,o+=1;n.allBuffers=a,rK(r,e,!0,e.length,n,\"\",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new Wce(e),e.bufferedRequestCount=0}else{for(;t;){var l=t.chunk,c=t.encoding,u=t.callback,g=e.objectMode?1:l.length;if(rK(r,e,!1,g,l,c,u),t=t.next,e.bufferedRequestCount--,e.writing)break}t===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=t,e.bufferProcessing=!1}Mr.prototype._write=function(r,e,t){t(new k6e(\"_write()\"))};Mr.prototype._writev=null;Mr.prototype.end=function(r,e,t){var i=this._writableState;return typeof r==\"function\"?(t=r,r=null,e=null):typeof e==\"function\"&&(t=e,e=null),r!=null&&this.write(r,e),i.corked&&(i.corked=1,this.uncork()),i.ending||V6e(this,i,t),this};Object.defineProperty(Mr.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}});function Xce(r){return r.ending&&r.length===0&&r.bufferedRequest===null&&!r.finished&&!r.writing}function W6e(r,e){r._final(function(t){e.pendingcb--,t&&Pp(r,t),e.prefinished=!0,r.emit(\"prefinish\"),KE(r,e)})}function z6e(r,e){!e.prefinished&&!e.finalCalled&&(typeof r._final==\"function\"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(W6e,r,e)):(e.prefinished=!0,r.emit(\"prefinish\")))}function KE(r,e){var t=Xce(e);if(t&&(z6e(r,e),e.pendingcb===0&&(e.finished=!0,r.emit(\"finish\"),e.autoDestroy))){var i=r._readableState;(!i||i.autoDestroy&&i.endEmitted)&&r.destroy()}return t}function V6e(r,e,t){e.ending=!0,KE(r,e),t&&(e.finished?process.nextTick(t):r.once(\"finish\",t)),e.ended=!0,r.writable=!1}function X6e(r,e,t){var i=r.entry;for(r.entry=null;i;){var n=i.callback;e.pendingcb--,n(t),i=i.next}e.corkedRequestsFree.next=r}Object.defineProperty(Mr.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){!this._writableState||(this._writableState.destroyed=e)}});Mr.prototype.destroy=iK.destroy;Mr.prototype._undestroy=iK.undestroy;Mr.prototype._destroy=function(r,e){e(r)}});var lg=y((zQt,$ce)=>{\"use strict\";var _6e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};$ce.exports=aa;var Zce=aK(),oK=nK();Tl()(aa,Zce);for(sK=_6e(oK.prototype),_b=0;_b<sK.length;_b++)Zb=sK[_b],aa.prototype[Zb]||(aa.prototype[Zb]=oK.prototype[Zb]);var sK,Zb,_b;function aa(r){if(!(this instanceof aa))return new aa(r);Zce.call(this,r),oK.call(this,r),this.allowHalfOpen=!0,r&&(r.readable===!1&&(this.readable=!1),r.writable===!1&&(this.writable=!1),r.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once(\"end\",Z6e)))}Object.defineProperty(aa.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(aa.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(aa.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}});function Z6e(){this._writableState.ended||process.nextTick($6e,this)}function $6e(r){r.end()}Object.defineProperty(aa.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var rue=y((AK,tue)=>{var $b=J(\"buffer\"),hA=$b.Buffer;function eue(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?tue.exports=$b:(eue($b,AK),AK.Buffer=Dp);function Dp(r,e,t){return hA(r,e,t)}eue(hA,Dp);Dp.from=function(r,e,t){if(typeof r==\"number\")throw new TypeError(\"Argument must not be a number\");return hA(r,e,t)};Dp.alloc=function(r,e,t){if(typeof r!=\"number\")throw new TypeError(\"Argument must be a number\");var i=hA(r);return e!==void 0?typeof t==\"string\"?i.fill(e,t):i.fill(e):i.fill(0),i};Dp.allocUnsafe=function(r){if(typeof r!=\"number\")throw new TypeError(\"Argument must be a number\");return hA(r)};Dp.allocUnsafeSlow=function(r){if(typeof r!=\"number\")throw new TypeError(\"Argument must be a number\");return $b.SlowBuffer(r)}});var uK=y(nue=>{\"use strict\";var cK=rue().Buffer,iue=cK.isEncoding||function(r){switch(r=\"\"+r,r&&r.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};function eVe(r){if(!r)return\"utf8\";for(var e;;)switch(r){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return r;default:if(e)return;r=(\"\"+r).toLowerCase(),e=!0}}function tVe(r){var e=eVe(r);if(typeof e!=\"string\"&&(cK.isEncoding===iue||!iue(r)))throw new Error(\"Unknown encoding: \"+r);return e||r}nue.StringDecoder=HE;function HE(r){this.encoding=tVe(r);var e;switch(this.encoding){case\"utf16le\":this.text=aVe,this.end=AVe,e=4;break;case\"utf8\":this.fillLast=nVe,e=4;break;case\"base64\":this.text=lVe,this.end=cVe,e=3;break;default:this.write=uVe,this.end=gVe;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=cK.allocUnsafe(e)}HE.prototype.write=function(r){if(r.length===0)return\"\";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return\"\";t=this.lastNeed,this.lastNeed=0}else t=0;return t<r.length?e?e+this.text(r,t):this.text(r,t):e||\"\"};HE.prototype.end=oVe;HE.prototype.text=sVe;HE.prototype.fillLast=function(r){if(this.lastNeed<=r.length)return r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,r.length),this.lastNeed-=r.length};function lK(r){return r<=127?0:r>>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function rVe(r,e,t){var i=e.length-1;if(i<t)return 0;var n=lK(e[i]);return n>=0?(n>0&&(r.lastNeed=n-1),n):--i<t||n===-2?0:(n=lK(e[i]),n>=0?(n>0&&(r.lastNeed=n-2),n):--i<t||n===-2?0:(n=lK(e[i]),n>=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function iVe(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,\"\\uFFFD\";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,\"\\uFFFD\";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,\"\\uFFFD\"}}function nVe(r){var e=this.lastTotal-this.lastNeed,t=iVe(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function sVe(r,e){var t=rVe(this,r,e);if(!this.lastNeed)return r.toString(\"utf8\",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString(\"utf8\",e,i)}function oVe(r){var e=r&&r.length?this.write(r):\"\";return this.lastNeed?e+\"\\uFFFD\":e}function aVe(r,e){if((r.length-e)%2===0){var t=r.toString(\"utf16le\",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString(\"utf16le\",e,r.length-1)}function AVe(r){var e=r&&r.length?this.write(r):\"\";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString(\"utf16le\",0,t)}return e}function lVe(r,e){var t=(r.length-e)%3;return t===0?r.toString(\"base64\",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString(\"base64\",e,r.length-t))}function cVe(r){var e=r&&r.length?this.write(r):\"\";return this.lastNeed?e+this.lastChar.toString(\"base64\",0,3-this.lastNeed):e}function uVe(r){return r.toString(this.encoding)}function gVe(r){return r&&r.length?this.write(r):\"\"}});var eS=y((XQt,aue)=>{\"use strict\";var sue=Ll().codes.ERR_STREAM_PREMATURE_CLOSE;function fVe(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];r.apply(this,i)}}}function hVe(){}function pVe(r){return r.setHeader&&typeof r.abort==\"function\"}function oue(r,e,t){if(typeof e==\"function\")return oue(r,null,e);e||(e={}),t=fVe(t||hVe);var i=e.readable||e.readable!==!1&&r.readable,n=e.writable||e.writable!==!1&&r.writable,s=function(){r.writable||a()},o=r._writableState&&r._writableState.finished,a=function(){n=!1,o=!0,i||t.call(r)},l=r._readableState&&r._readableState.endEmitted,c=function(){i=!1,l=!0,n||t.call(r)},u=function(p){t.call(r,p)},g=function(){var p;if(i&&!l)return(!r._readableState||!r._readableState.ended)&&(p=new sue),t.call(r,p);if(n&&!o)return(!r._writableState||!r._writableState.ended)&&(p=new sue),t.call(r,p)},f=function(){r.req.on(\"finish\",a)};return pVe(r)?(r.on(\"complete\",a),r.on(\"abort\",g),r.req?f():r.on(\"request\",f)):n&&!r._writableState&&(r.on(\"end\",s),r.on(\"close\",s)),r.on(\"end\",c),r.on(\"finish\",a),e.error!==!1&&r.on(\"error\",u),r.on(\"close\",g),function(){r.removeListener(\"complete\",a),r.removeListener(\"abort\",g),r.removeListener(\"request\",f),r.req&&r.req.removeListener(\"finish\",a),r.removeListener(\"end\",s),r.removeListener(\"close\",s),r.removeListener(\"finish\",a),r.removeListener(\"end\",c),r.removeListener(\"error\",u),r.removeListener(\"close\",g)}}aue.exports=oue});var lue=y((_Qt,Aue)=>{\"use strict\";var tS;function Ml(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var dVe=eS(),Kl=Symbol(\"lastResolve\"),cg=Symbol(\"lastReject\"),GE=Symbol(\"error\"),rS=Symbol(\"ended\"),ug=Symbol(\"lastPromise\"),gK=Symbol(\"handlePromise\"),gg=Symbol(\"stream\");function Ul(r,e){return{value:r,done:e}}function CVe(r){var e=r[Kl];if(e!==null){var t=r[gg].read();t!==null&&(r[ug]=null,r[Kl]=null,r[cg]=null,e(Ul(t,!1)))}}function mVe(r){process.nextTick(CVe,r)}function EVe(r,e){return function(t,i){r.then(function(){if(e[rS]){t(Ul(void 0,!0));return}e[gK](t,i)},i)}}var IVe=Object.getPrototypeOf(function(){}),yVe=Object.setPrototypeOf((tS={get stream(){return this[gg]},next:function(){var e=this,t=this[GE];if(t!==null)return Promise.reject(t);if(this[rS])return Promise.resolve(Ul(void 0,!0));if(this[gg].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[GE]?a(e[GE]):o(Ul(void 0,!0))})});var i=this[ug],n;if(i)n=new Promise(EVe(i,this));else{var s=this[gg].read();if(s!==null)return Promise.resolve(Ul(s,!1));n=new Promise(this[gK])}return this[ug]=n,n}},Ml(tS,Symbol.asyncIterator,function(){return this}),Ml(tS,\"return\",function(){var e=this;return new Promise(function(t,i){e[gg].destroy(null,function(n){if(n){i(n);return}t(Ul(void 0,!0))})})}),tS),IVe),wVe=function(e){var t,i=Object.create(yVe,(t={},Ml(t,gg,{value:e,writable:!0}),Ml(t,Kl,{value:null,writable:!0}),Ml(t,cg,{value:null,writable:!0}),Ml(t,GE,{value:null,writable:!0}),Ml(t,rS,{value:e._readableState.endEmitted,writable:!0}),Ml(t,gK,{value:function(s,o){var a=i[gg].read();a?(i[ug]=null,i[Kl]=null,i[cg]=null,s(Ul(a,!1))):(i[Kl]=s,i[cg]=o)},writable:!0}),t));return i[ug]=null,dVe(e,function(n){if(n&&n.code!==\"ERR_STREAM_PREMATURE_CLOSE\"){var s=i[cg];s!==null&&(i[ug]=null,i[Kl]=null,i[cg]=null,s(n)),i[GE]=n;return}var o=i[Kl];o!==null&&(i[ug]=null,i[Kl]=null,i[cg]=null,o(Ul(void 0,!0))),i[rS]=!0}),e.on(\"readable\",mVe.bind(null,i)),i};Aue.exports=wVe});var fue=y((ZQt,gue)=>{\"use strict\";function cue(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function BVe(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){cue(s,i,n,o,a,\"next\",l)}function a(l){cue(s,i,n,o,a,\"throw\",l)}o(void 0)})}}function uue(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function QVe(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?uue(Object(t),!0).forEach(function(i){bVe(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):uue(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function bVe(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var SVe=Ll().codes.ERR_INVALID_ARG_TYPE;function vVe(r,e,t){var i;if(e&&typeof e.next==\"function\")i=e;else if(e&&e[Symbol.asyncIterator])i=e[Symbol.asyncIterator]();else if(e&&e[Symbol.iterator])i=e[Symbol.iterator]();else throw new SVe(\"iterable\",[\"Iterable\"],e);var n=new r(QVe({objectMode:!0},t)),s=!1;n._read=function(){s||(s=!0,o())};function o(){return a.apply(this,arguments)}function a(){return a=BVe(function*(){try{var l=yield i.next(),c=l.value,u=l.done;u?n.push(null):n.push(yield c)?o():s=!1}catch(g){n.destroy(g)}}),a.apply(this,arguments)}return n}gue.exports=vVe});var aK=y((ebt,Bue)=>{\"use strict\";Bue.exports=Ut;var kp;Ut.ReadableState=Cue;var $Qt=J(\"events\").EventEmitter,due=function(e,t){return e.listeners(t).length},jE=zM(),iS=J(\"buffer\").Buffer,xVe=global.Uint8Array||function(){};function PVe(r){return iS.from(r)}function DVe(r){return iS.isBuffer(r)||r instanceof xVe}var fK=J(\"util\"),Pt;fK&&fK.debuglog?Pt=fK.debuglog(\"stream\"):Pt=function(){};var kVe=Tce(),IK=_M(),RVe=ZM(),FVe=RVe.getHighWaterMark,nS=Ll().codes,NVe=nS.ERR_INVALID_ARG_TYPE,LVe=nS.ERR_STREAM_PUSH_AFTER_EOF,TVe=nS.ERR_METHOD_NOT_IMPLEMENTED,OVe=nS.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Rp,hK,pK;Tl()(Ut,jE);var YE=IK.errorOrDestroy,dK=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function MVe(r,e,t){if(typeof r.prependListener==\"function\")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Cue(r,e,t){kp=kp||lg(),r=r||{},typeof t!=\"boolean\"&&(t=e instanceof kp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=FVe(this,r,\"readableHighWaterMark\",t),this.buffer=new kVe,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||\"utf8\",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(Rp||(Rp=uK().StringDecoder),this.decoder=new Rp(r.encoding),this.encoding=r.encoding)}function Ut(r){if(kp=kp||lg(),!(this instanceof Ut))return new Ut(r);var e=this instanceof kp;this._readableState=new Cue(r,this,e),this.readable=!0,r&&(typeof r.read==\"function\"&&(this._read=r.read),typeof r.destroy==\"function\"&&(this._destroy=r.destroy)),jE.call(this)}Object.defineProperty(Ut.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ut.prototype.destroy=IK.destroy;Ut.prototype._undestroy=IK.undestroy;Ut.prototype._destroy=function(r,e){e(r)};Ut.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r==\"string\"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=iS.from(r,e),e=\"\"),i=!0),mue(this,r,e,!1,i)};Ut.prototype.unshift=function(r){return mue(this,r,null,!0,!1)};function mue(r,e,t,i,n){Pt(\"readableAddChunk\",e);var s=r._readableState;if(e===null)s.reading=!1,HVe(r,s);else{var o;if(n||(o=KVe(s,e)),o)YE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!=\"string\"&&!s.objectMode&&Object.getPrototypeOf(e)!==iS.prototype&&(e=PVe(e)),i)s.endEmitted?YE(r,new OVe):CK(r,s,e,!0);else if(s.ended)YE(r,new LVe);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?CK(r,s,e,!1):EK(r,s)):CK(r,s,e,!1)}else i||(s.reading=!1,EK(r,s))}return!s.ended&&(s.length<s.highWaterMark||s.length===0)}function CK(r,e,t,i){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,r.emit(\"data\",t)):(e.length+=e.objectMode?1:t.length,i?e.buffer.unshift(t):e.buffer.push(t),e.needReadable&&sS(r)),EK(r,e)}function KVe(r,e){var t;return!DVe(e)&&typeof e!=\"string\"&&e!==void 0&&!r.objectMode&&(t=new NVe(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],e)),t}Ut.prototype.isPaused=function(){return this._readableState.flowing===!1};Ut.prototype.setEncoding=function(r){Rp||(Rp=uK().StringDecoder);var e=new Rp(r);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var t=this._readableState.buffer.head,i=\"\";t!==null;)i+=e.write(t.data),t=t.next;return this._readableState.buffer.clear(),i!==\"\"&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var hue=1073741824;function UVe(r){return r>=hue?r=hue:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function pue(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=UVe(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ut.prototype.read=function(r){Pt(\"read\",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt(\"read: emitReadable\",e.length,e.ended),e.length===0&&e.ended?mK(this):sS(this),null;if(r=pue(r,e),r===0&&e.ended)return e.length===0&&mK(this),null;var i=e.needReadable;Pt(\"need readable\",i),(e.length===0||e.length-r<e.highWaterMark)&&(i=!0,Pt(\"length less than watermark\",i)),e.ended||e.reading?(i=!1,Pt(\"reading or ended\",i)):i&&(Pt(\"do read\"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(r=pue(t,e)));var n;return r>0?n=yue(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&mK(this)),n!==null&&this.emit(\"data\",n),n};function HVe(r,e){if(Pt(\"onEofChunk\"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?sS(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Eue(r)))}}function sS(r){var e=r._readableState;Pt(\"emitReadable\",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt(\"emitReadable\",e.flowing),e.emittedReadable=!0,process.nextTick(Eue,r))}function Eue(r){var e=r._readableState;Pt(\"emitReadable_\",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit(\"readable\"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,yK(r)}function EK(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(GVe,r,e))}function GVe(r,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var t=e.length;if(Pt(\"maybeReadMore read 0\"),r.read(0),t===e.length)break}e.readingMore=!1}Ut.prototype._read=function(r){YE(this,new TVe(\"_read()\"))};Ut.prototype.pipe=function(r,e){var t=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=r;break;case 1:i.pipes=[i.pipes,r];break;default:i.pipes.push(r);break}i.pipesCount+=1,Pt(\"pipe count=%d opts=%j\",i.pipesCount,e);var n=(!e||e.end!==!1)&&r!==process.stdout&&r!==process.stderr,s=n?a:C;i.endEmitted?process.nextTick(s):t.once(\"end\",s),r.on(\"unpipe\",o);function o(w,B){Pt(\"onunpipe\"),w===t&&B&&B.hasUnpiped===!1&&(B.hasUnpiped=!0,u())}function a(){Pt(\"onend\"),r.end()}var l=YVe(t);r.on(\"drain\",l);var c=!1;function u(){Pt(\"cleanup\"),r.removeListener(\"close\",h),r.removeListener(\"finish\",p),r.removeListener(\"drain\",l),r.removeListener(\"error\",f),r.removeListener(\"unpipe\",o),t.removeListener(\"end\",a),t.removeListener(\"end\",C),t.removeListener(\"data\",g),c=!0,i.awaitDrain&&(!r._writableState||r._writableState.needDrain)&&l()}t.on(\"data\",g);function g(w){Pt(\"ondata\");var B=r.write(w);Pt(\"dest.write\",B),B===!1&&((i.pipesCount===1&&i.pipes===r||i.pipesCount>1&&wue(i.pipes,r)!==-1)&&!c&&(Pt(\"false write response, pause\",i.awaitDrain),i.awaitDrain++),t.pause())}function f(w){Pt(\"onerror\",w),C(),r.removeListener(\"error\",f),due(r,\"error\")===0&&YE(r,w)}MVe(r,\"error\",f);function h(){r.removeListener(\"finish\",p),C()}r.once(\"close\",h);function p(){Pt(\"onfinish\"),r.removeListener(\"close\",h),C()}r.once(\"finish\",p);function C(){Pt(\"unpipe\"),t.unpipe(r)}return r.emit(\"pipe\",t),i.flowing||(Pt(\"pipe resume\"),t.resume()),r};function YVe(r){return function(){var t=r._readableState;Pt(\"pipeOnDrain\",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&due(r,\"data\")&&(t.flowing=!0,yK(r))}}Ut.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit(\"unpipe\",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s<n;s++)i[s].emit(\"unpipe\",this,{hasUnpiped:!1});return this}var o=wue(e.pipes,r);return o===-1?this:(e.pipes.splice(o,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),r.emit(\"unpipe\",this,t),this)};Ut.prototype.on=function(r,e){var t=jE.prototype.on.call(this,r,e),i=this._readableState;return r===\"data\"?(i.readableListening=this.listenerCount(\"readable\")>0,i.flowing!==!1&&this.resume()):r===\"readable\"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt(\"on readable\",i.length,i.reading),i.length?sS(this):i.reading||process.nextTick(jVe,this)),t};Ut.prototype.addListener=Ut.prototype.on;Ut.prototype.removeListener=function(r,e){var t=jE.prototype.removeListener.call(this,r,e);return r===\"readable\"&&process.nextTick(Iue,this),t};Ut.prototype.removeAllListeners=function(r){var e=jE.prototype.removeAllListeners.apply(this,arguments);return(r===\"readable\"||r===void 0)&&process.nextTick(Iue,this),e};function Iue(r){var e=r._readableState;e.readableListening=r.listenerCount(\"readable\")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount(\"data\")>0&&r.resume()}function jVe(r){Pt(\"readable nexttick read 0\"),r.read(0)}Ut.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt(\"resume\"),r.flowing=!r.readableListening,qVe(this,r)),r.paused=!1,this};function qVe(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(JVe,r,e))}function JVe(r,e){Pt(\"resume\",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit(\"resume\"),yK(r),e.flowing&&!e.reading&&r.read(0)}Ut.prototype.pause=function(){return Pt(\"call pause flowing=%j\",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\")),this._readableState.paused=!0,this};function yK(r){var e=r._readableState;for(Pt(\"flow\",e.flowing);e.flowing&&r.read()!==null;);}Ut.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on(\"end\",function(){if(Pt(\"wrapped end\"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on(\"data\",function(o){if(Pt(\"wrapped data\"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]==\"function\"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s<dK.length;s++)r.on(dK[s],this.emit.bind(this,dK[s]));return this._read=function(o){Pt(\"wrapped _read\",o),i&&(i=!1,r.resume())},this};typeof Symbol==\"function\"&&(Ut.prototype[Symbol.asyncIterator]=function(){return hK===void 0&&(hK=lue()),hK(this)});Object.defineProperty(Ut.prototype,\"readableHighWaterMark\",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(Ut.prototype,\"readableBuffer\",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Ut.prototype,\"readableFlowing\",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});Ut._fromList=yue;Object.defineProperty(Ut.prototype,\"readableLength\",{enumerable:!1,get:function(){return this._readableState.length}});function yue(r,e){if(e.length===0)return null;var t;return e.objectMode?t=e.buffer.shift():!r||r>=e.length?(e.decoder?t=e.buffer.join(\"\"):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function mK(r){var e=r._readableState;Pt(\"endReadable\",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(WVe,e,r))}function WVe(r,e){if(Pt(\"endReadableNT\",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit(\"end\"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol==\"function\"&&(Ut.from=function(r,e){return pK===void 0&&(pK=fue()),pK(Ut,r,e)});function wue(r,e){for(var t=0,i=r.length;t<i;t++)if(r[t]===e)return t;return-1}});var wK=y((tbt,bue)=>{\"use strict\";bue.exports=pA;var oS=Ll().codes,zVe=oS.ERR_METHOD_NOT_IMPLEMENTED,VVe=oS.ERR_MULTIPLE_CALLBACK,XVe=oS.ERR_TRANSFORM_ALREADY_TRANSFORMING,_Ve=oS.ERR_TRANSFORM_WITH_LENGTH_0,aS=lg();Tl()(pA,aS);function ZVe(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit(\"error\",new VVe);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function pA(r){if(!(this instanceof pA))return new pA(r);aS.call(this,r),this._transformState={afterTransform:ZVe.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,r&&(typeof r.transform==\"function\"&&(this._transform=r.transform),typeof r.flush==\"function\"&&(this._flush=r.flush)),this.on(\"prefinish\",$Ve)}function $Ve(){var r=this;typeof this._flush==\"function\"&&!this._readableState.destroyed?this._flush(function(e,t){Que(r,e,t)}):Que(this,null,null)}pA.prototype.push=function(r,e){return this._transformState.needTransform=!1,aS.prototype.push.call(this,r,e)};pA.prototype._transform=function(r,e,t){t(new zVe(\"_transform()\"))};pA.prototype._write=function(r,e,t){var i=this._transformState;if(i.writecb=t,i.writechunk=r,i.writeencoding=e,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}};pA.prototype._read=function(r){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};pA.prototype._destroy=function(r,e){aS.prototype._destroy.call(this,r,function(t){e(t)})};function Que(r,e,t){if(e)return r.emit(\"error\",e);if(t!=null&&r.push(t),r._writableState.length)throw new _Ve;if(r._transformState.transforming)throw new XVe;return r.push(null)}});var xue=y((rbt,vue)=>{\"use strict\";vue.exports=qE;var Sue=wK();Tl()(qE,Sue);function qE(r){if(!(this instanceof qE))return new qE(r);Sue.call(this,r)}qE.prototype._transform=function(r,e,t){t(null,r)}});var Fue=y((ibt,Rue)=>{\"use strict\";var BK;function e9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var kue=Ll().codes,t9e=kue.ERR_MISSING_ARGS,r9e=kue.ERR_STREAM_DESTROYED;function Pue(r){if(r)throw r}function i9e(r){return r.setHeader&&typeof r.abort==\"function\"}function n9e(r,e,t,i){i=e9e(i);var n=!1;r.on(\"close\",function(){n=!0}),BK===void 0&&(BK=eS()),BK(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,i9e(r))return r.abort();if(typeof r.destroy==\"function\")return r.destroy();i(o||new r9e(\"pipe\"))}}}function Due(r){r()}function s9e(r,e){return r.pipe(e)}function o9e(r){return!r.length||typeof r[r.length-1]!=\"function\"?Pue:r.pop()}function a9e(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];var i=o9e(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new t9e(\"streams\");var n,s=e.map(function(o,a){var l=a<e.length-1,c=a>0;return n9e(o,l,c,function(u){n||(n=u),u&&s.forEach(Due),!l&&(s.forEach(Due),i(n))})});return e.reduce(s9e)}Rue.exports=a9e});var Fp=y((Ts,WE)=>{var JE=J(\"stream\");process.env.READABLE_STREAM===\"disable\"&&JE?(WE.exports=JE.Readable,Object.assign(WE.exports,JE),WE.exports.Stream=JE):(Ts=WE.exports=aK(),Ts.Stream=JE||Ts,Ts.Readable=Ts,Ts.Writable=nK(),Ts.Duplex=lg(),Ts.Transform=wK(),Ts.PassThrough=xue(),Ts.finished=eS(),Ts.pipeline=Fue())});var Tue=y((nbt,Lue)=>{\"use strict\";var{Buffer:mo}=J(\"buffer\"),Nue=Symbol.for(\"BufferList\");function hr(r){if(!(this instanceof hr))return new hr(r);hr._init.call(this,r)}hr._init=function(e){Object.defineProperty(this,Nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};hr.prototype._new=function(e){return new hr(e)};hr.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;i<this._bufs.length;i++){let n=t+this._bufs[i].length;if(e<n||i===this._bufs.length-1)return[i,e-t];t=n}};hr.prototype._reverseOffset=function(r){let e=r[0],t=r[1];for(let i=0;i<e;i++)t+=this._bufs[i].length;return t};hr.prototype.get=function(e){if(e>this.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};hr.prototype.slice=function(e,t){return typeof e==\"number\"&&e<0&&(e+=this.length),typeof t==\"number\"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};hr.prototype.copy=function(e,t,i,n){if((typeof i!=\"number\"||i<0)&&(i=0),(typeof n!=\"number\"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||mo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:mo.concat(this._bufs,this.length);for(let g=0;g<this._bufs.length;g++)this._bufs[g].copy(e,c),c+=this._bufs[g].length;return e}if(l<=this._bufs[o[0]].length-u)return s?this._bufs[o[0]].copy(e,t,u,u+l):this._bufs[o[0]].slice(u,u+l);s||(e=mo.allocUnsafe(a));for(let g=o[0];g<this._bufs.length;g++){let f=this._bufs[g].length-u;if(l>f)this._bufs[g].copy(e,c,u),c+=f;else{this._bufs[g].copy(e,c,u,u+l),c+=f;break}l-=f,u&&(u=0)}return e.length>c?e.slice(0,c):e};hr.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!=\"number\"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};hr.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};hr.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};hr.prototype.duplicate=function(){let e=this._new();for(let t=0;t<this._bufs.length;t++)e.append(this._bufs[t]);return e};hr.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(mo.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let t=0;t<e.length;t++)this.append(e[t]);else if(this._isBufferList(e))for(let t=0;t<e._bufs.length;t++)this.append(e._bufs[t]);else typeof e==\"number\"&&(e=e.toString()),this._appendBuffer(mo.from(e));return this};hr.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};hr.prototype.indexOf=function(r,e,t){if(t===void 0&&typeof e==\"string\"&&(t=e,e=void 0),typeof r==\"function\"||Array.isArray(r))throw new TypeError('The \"value\" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof r==\"number\"?r=mo.from([r]):typeof r==\"string\"?r=mo.from(r,t):this._isBufferList(r)?r=r.slice():Array.isArray(r.buffer)?r=mo.from(r.buffer,r.byteOffset,r.byteLength):mo.isBuffer(r)||(r=mo.from(r)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),r.length===0)return e>this.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n<this._bufs.length;n++){let o=this._bufs[n];for(;s<o.length;)if(o.length-s>=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};hr.prototype._match=function(r,e){if(this.length-r<e.length)return!1;for(let t=0;t<e.length;t++)if(this.get(r+t)!==e[t])return!1;return!0};(function(){let r={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(let e in r)(function(t){r[t]===null?hr.prototype[t]=function(i,n){return this.slice(i,i+n)[t](0,n)}:hr.prototype[t]=function(i=0){return this.slice(i,i+r[t])[t](0)}})(e)})();hr.prototype._isBufferList=function(e){return e instanceof hr||hr.isBufferList(e)};hr.isBufferList=function(e){return e!=null&&e[Nue]};Lue.exports=hr});var Oue=y((sbt,AS)=>{\"use strict\";var QK=Fp().Duplex,A9e=Tl(),zE=Tue();function Ji(r){if(!(this instanceof Ji))return new Ji(r);if(typeof r==\"function\"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on(\"pipe\",function(i){i.on(\"error\",e)}),this.on(\"unpipe\",function(i){i.removeListener(\"error\",e)}),r=null}zE._init.call(this,r),QK.call(this)}A9e(Ji,QK);Object.assign(Ji.prototype,zE.prototype);Ji.prototype._new=function(e){return new Ji(e)};Ji.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i==\"function\"&&i()};Ji.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Ji.prototype.end=function(e){QK.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Ji.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Ji.prototype._isBufferList=function(e){return e instanceof Ji||e instanceof zE||Ji.isBufferList(e)};Ji.isBufferList=zE.isBufferList;AS.exports=Ji;AS.exports.BufferListStream=Ji;AS.exports.BufferList=zE});var vK=y(Lp=>{var l9e=Buffer.alloc,c9e=\"0000000000000000000\",u9e=\"7777777777777777777\",Mue=\"0\".charCodeAt(0),Kue=Buffer.from(\"ustar\\0\",\"binary\"),g9e=Buffer.from(\"00\",\"binary\"),f9e=Buffer.from(\"ustar \",\"binary\"),h9e=Buffer.from(\" \\0\",\"binary\"),p9e=parseInt(\"7777\",8),VE=257,SK=263,d9e=function(r,e,t){return typeof r!=\"number\"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},C9e=function(r){switch(r){case 0:return\"file\";case 1:return\"link\";case 2:return\"symlink\";case 3:return\"character-device\";case 4:return\"block-device\";case 5:return\"directory\";case 6:return\"fifo\";case 7:return\"contiguous-file\";case 72:return\"pax-header\";case 55:return\"pax-global-header\";case 27:return\"gnu-long-link-path\";case 28:case 30:return\"gnu-long-path\"}return null},m9e=function(r){switch(r){case\"file\":return 0;case\"link\":return 1;case\"symlink\":return 2;case\"character-device\":return 3;case\"block-device\":return 4;case\"directory\":return 5;case\"fifo\":return 6;case\"contiguous-file\":return 7;case\"pax-header\":return 72}return 0},Uue=function(r,e,t,i){for(;t<i;t++)if(r[t]===e)return t;return i},Hue=function(r){for(var e=256,t=0;t<148;t++)e+=r[t];for(var i=156;i<512;i++)e+=r[i];return e},Hl=function(r,e){return r=r.toString(8),r.length>e?u9e.slice(0,e)+\" \":c9e.slice(0,e-r.length)+r+\" \"};function E9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i<o;i++)s+=t[i]*Math.pow(256,i);return e?s:-1*s}var Gl=function(r,e,t){if(r=r.slice(e,e+t),e=0,r[e]&128)return E9e(r);for(;e<r.length&&r[e]===32;)e++;for(var i=d9e(Uue(r,32,e,r.length),r.length,r.length);e<i&&r[e]===0;)e++;return i===e?0:parseInt(r.slice(e,i).toString(),8)},Np=function(r,e,t,i){return r.slice(e,Uue(r,0,e,e+t)).toString(i)},bK=function(r){var e=Buffer.byteLength(r),t=Math.floor(Math.log(e)/Math.log(10))+1;return e+t>=Math.pow(10,t)&&t++,e+t+r};Lp.decodeLongPath=function(r,e){return Np(r,0,r.length,e)};Lp.encodePax=function(r){var e=\"\";r.name&&(e+=bK(\" path=\"+r.name+`\n`)),r.linkname&&(e+=bK(\" linkpath=\"+r.linkname+`\n`));var t=r.pax;if(t)for(var i in t)e+=bK(\" \"+i+\"=\"+t[i]+`\n`);return Buffer.from(e)};Lp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t<r.length&&r[t]!==32;)t++;var i=parseInt(r.slice(0,t).toString(),10);if(!i)return e;var n=r.slice(t+1,i-1).toString(),s=n.indexOf(\"=\");if(s===-1)return e;e[n.slice(0,s)]=n.slice(s+1),r=r.slice(i)}return e};Lp.encode=function(r){var e=l9e(512),t=r.name,i=\"\";if(r.typeflag===5&&t[t.length-1]!==\"/\"&&(t+=\"/\"),Buffer.byteLength(t)!==t.length)return null;for(;Buffer.byteLength(t)>100;){var n=t.indexOf(\"/\");if(n===-1)return null;i+=i?\"/\"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Hl(r.mode&p9e,6),100),e.write(Hl(r.uid,6),108),e.write(Hl(r.gid,6),116),e.write(Hl(r.size,11),124),e.write(Hl(r.mtime.getTime()/1e3|0,11),136),e[156]=Mue+m9e(r.type),r.linkname&&e.write(r.linkname,157),Kue.copy(e,VE),g9e.copy(e,SK),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Hl(r.devmajor||0,6),329),e.write(Hl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Hl(Hue(e),6),148),e)};Lp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Mue,n=Np(r,0,100,e),s=Gl(r,100,8),o=Gl(r,108,8),a=Gl(r,116,8),l=Gl(r,124,12),c=Gl(r,136,12),u=C9e(i),g=r[157]===0?null:Np(r,157,100,e),f=Np(r,265,32),h=Np(r,297,32),p=Gl(r,329,8),C=Gl(r,337,8),w=Hue(r);if(w===8*32)return null;if(w!==Gl(r,148,8))throw new Error(\"Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?\");if(Kue.compare(r,VE,VE+6)===0)r[345]&&(n=Np(r,345,155,e)+\"/\"+n);else if(!(f9e.compare(r,VE,VE+6)===0&&h9e.compare(r,SK,SK+2)===0)){if(!t)throw new Error(\"Invalid tar header: unknown format.\")}return i===0&&n&&n[n.length-1]===\"/\"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:f,gname:h,devmajor:p,devminor:C}}});var zue=y((abt,Wue)=>{var Yue=J(\"util\"),I9e=Oue(),XE=vK(),jue=Fp().Writable,que=Fp().PassThrough,Jue=function(){},Gue=function(r){return r&=511,r&&512-r},y9e=function(r,e){var t=new lS(r,e);return t.end(),t},w9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},lS=function(r,e){this._parent=r,this.offset=e,que.call(this,{autoDestroy:!1})};Yue.inherits(lS,que);lS.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);jue.call(this,r),r=r||{},this._offset=0,this._buffer=I9e(),this._missing=0,this._partial=!1,this._onparse=Jue,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(f){if(e._locked=!1,f)return e.destroy(f);e._stream||i()},s=function(){e._stream=null;var f=Gue(e._header.size);f?e._parse(f,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(Gue(e._header.size)),e._parse(512,g),i()},a=function(){var f=e._header.size;e._paxGlobal=XE.decodePax(t.slice(0,f)),t.consume(f),s()},l=function(){var f=e._header.size;e._pax=XE.decodePax(t.slice(0,f)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(f),s()},c=function(){var f=e._header.size;this._gnuLongPath=XE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},u=function(){var f=e._header.size;this._gnuLongLinkPath=XE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},g=function(){var f=e._offset,h;try{h=e._header=XE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(p){e.emit(\"error\",p)}if(t.consume(512),!h){e._parse(512,g),i();return}if(h.type===\"gnu-long-path\"){e._parse(h.size,c),i();return}if(h.type===\"gnu-long-link-path\"){e._parse(h.size,u),i();return}if(h.type===\"pax-global-header\"){e._parse(h.size,a),i();return}if(h.type===\"pax-header\"){e._parse(h.size,l),i();return}if(e._gnuLongPath&&(h.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(h.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=h=w9e(h,e._pax),e._pax=null),e._locked=!0,!h.size||h.type===\"directory\"){e._parse(512,g),e.emit(\"entry\",h,y9e(e,f),n);return}e._stream=new lS(e,f),e.emit(\"entry\",h,e._stream,n),e._parse(h.size,s),i()};this._onheader=g,this._parse(512,g)};Yue.inherits(dA,jue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit(\"error\",r),this.emit(\"close\"),this._stream&&this._stream.emit(\"close\"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=Jue,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.length<s)return this._missing-=r.length,this._overflow=null,i?i.write(r,t):(n.append(r),t());this._cb=t,this._missing=0;var o=null;r.length>s&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error(\"Unexpected end of data\"));r()};Wue.exports=dA});var Xue=y((Abt,Vue)=>{Vue.exports=J(\"fs\").constants||J(\"constants\")});var tge=y((lbt,ege)=>{var Tp=Xue(),_ue=dR(),uS=Tl(),B9e=Buffer.alloc,Zue=Fp().Readable,Op=Fp().Writable,Q9e=J(\"string_decoder\").StringDecoder,cS=vK(),b9e=parseInt(\"755\",8),S9e=parseInt(\"644\",8),$ue=B9e(1024),PK=function(){},xK=function(r,e){e&=511,e&&r.push($ue.slice(0,512-e))};function v9e(r){switch(r&Tp.S_IFMT){case Tp.S_IFBLK:return\"block-device\";case Tp.S_IFCHR:return\"character-device\";case Tp.S_IFDIR:return\"directory\";case Tp.S_IFIFO:return\"fifo\";case Tp.S_IFLNK:return\"symlink\"}return\"file\"}var gS=function(r){Op.call(this),this.written=0,this._to=r,this._destroyed=!1};uS(gS,Op);gS.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};gS.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit(\"close\"))};var fS=function(){Op.call(this),this.linkname=\"\",this._decoder=new Q9e(\"utf-8\"),this._destroyed=!1};uS(fS,Op);fS.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};fS.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit(\"close\"))};var _E=function(){Op.call(this),this._destroyed=!1};uS(_E,Op);_E.prototype._write=function(r,e,t){t(new Error(\"No body allowed for this entry\"))};_E.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit(\"close\"))};var Aa=function(r){if(!(this instanceof Aa))return new Aa(r);Zue.call(this,r),this._drain=PK,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};uS(Aa,Zue);Aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error(\"already piping an entry\");if(!(this._finalized||this._destroyed)){typeof e==\"function\"&&(t=e,e=null),t||(t=PK);var i=this;if((!r.size||r.type===\"symlink\")&&(r.size=0),r.type||(r.type=v9e(r.mode)),r.mode||(r.mode=r.type===\"directory\"?b9e:S9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e==\"string\"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return xK(i,r.size),n?process.nextTick(t):this._drain=t,new _E}if(r.type===\"symlink\"&&!r.linkname){var s=new fS;return _ue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!==\"file\"&&r.type!==\"contiguous-file\")return process.nextTick(t),new _E;var o=new gS(this);return this._stream=o,_ue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error(\"size mismatch\"));xK(i,r.size),i._finalizing&&i.finalize(),t()}),o}};Aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push($ue),this.push(null))};Aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit(\"error\",r),this.emit(\"close\"),this._stream&&this._stream.destroy&&this._stream.destroy())};Aa.prototype._encode=function(r){if(!r.pax){var e=cS.encode(r);if(e){this.push(e);return}}this._encodePax(r)};Aa.prototype._encodePax=function(r){var e=cS.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:\"PaxHeader\",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:\"pax-header\",linkname:r.linkname&&\"PaxHeader\",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(cS.encode(t)),this.push(e),xK(this,e.length),t.size=r.size,t.type=r.type,this.push(cS.encode(t))};Aa.prototype._read=function(r){var e=this._drain;this._drain=PK,e()};ege.exports=Aa});var rge=y(DK=>{DK.extract=zue();DK.pack=tge()});var hge=y((Dbt,fge)=>{\"use strict\";var hg=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]==\"string\"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=uge(i.filter(n=>n!=null&&typeof n==\"object\")),this.__isFiggyPudding=!0}get(e){return TK(this,e,!0)}get[Symbol.toStringTag](){return\"FiggyPudding\"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):G9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new hg(this.__specs,this.__opts,uge(this.__providers).concat(e)),gge)}};try{let r=J(\"util\");hg.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+\" \"+r.inspect(this.toJSON(),t)}}catch{}function U9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:\"EBADKEY\"})}function TK(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))U9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=cge(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=cge(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default==\"function\"?i.default(r):i.default:n}}function cge(r,e){let t;return e.__isFiggyPudding?t=TK(e,r,!1):typeof e.get==\"function\"?t=e.get(r):t=e[r],t}var gge={has(r,e){return e in r.__specs&&TK(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e==\"symbol\"||e.slice(0,2)===\"__\"||e in hg.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e==\"symbol\"||e.slice(0,2)===\"__\")return r[e]=t,!0;throw new Error(\"figgyPudding options cannot be modified. Use .concat() instead.\")},deleteProperty(){throw new Error(\"figgyPudding options cannot be deleted. Use .concat() and shadow them instead.\")}};fge.exports=H9e;function H9e(r,e){function t(...i){return new Proxy(new hg(r,e,i),gge)}return t}function uge(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function G9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Cge=y((kbt,ua)=>{\"use strict\";var $E=J(\"crypto\"),Y9e=hge(),j9e=J(\"stream\").Transform,pge=[\"sha256\",\"sha384\",\"sha512\"],q9e=/^[a-z0-9+/]+(?:=?=?)$/i,J9e=/^([^-]+)-([^?]+)([?\\S*]*)$/,W9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\\?[\\x21-\\x7E]*)*$/,z9e=/^[\\x21-\\x7E]+$/,An=Y9e({algorithms:{default:[\"sha512\"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>r7e},Promise:{default:()=>Promise},sep:{default:\" \"},single:{default:!1},size:{},strict:{default:!1}}),jl=class{get isHash(){return!0}constructor(e,t){t=An(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?W9e:J9e);if(!n||i&&!pge.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split(\"?\"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,\"base64\").toString(\"hex\")}toJSON(){return this.toString()}toString(e){if(e=An(e),e.strict&&!(pge.some(i=>i===this.algorithm)&&this.digest.match(q9e)&&(this.options||[]).every(i=>i.match(z9e))))return\"\";let t=this.options&&this.options.length?`?${this.options.join(\"?\")}`:\"\";return`${this.algorithm}-${this.digest}${t}`}},pg=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=An(e);let t=e.sep||\" \";return e.strict&&(t=t.replace(/\\S+/g,\" \")),Object.keys(this).map(i=>this[i].map(n=>jl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=An(t);let i=typeof e==\"string\"?e:ZE(e,t);return ca(`${this.toString(t)} ${i}`,t)}hexDigest(){return ca(this,{single:!0}).hexDigest()}match(e,t){t=An(t);let i=ca(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=An(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ua.exports.parse=ca;function ca(r,e){if(e=An(e),typeof r==\"string\")return OK(r,e);if(r.algorithm&&r.digest){let t=new pg;return t[r.algorithm]=[r],OK(ZE(t,e),e)}else return OK(ZE(r,e),e)}function OK(r,e){return e.single?new jl(r,e):r.trim().split(/\\s+/).reduce((t,i)=>{let n=new jl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new pg)}ua.exports.stringify=ZE;function ZE(r,e){return e=An(e),r.algorithm&&r.digest?jl.prototype.toString.call(r,e):typeof r==\"string\"?ZE(ca(r,e),e):pg.prototype.toString.call(r,e)}ua.exports.fromHex=V9e;function V9e(r,e,t){t=An(t);let i=t.options&&t.options.length?`?${t.options.join(\"?\")}`:\"\";return ca(`${e}-${Buffer.from(r,\"hex\").toString(\"base64\")}${i}`,t)}ua.exports.fromData=X9e;function X9e(r,e){e=An(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join(\"?\")}`:\"\";return t.reduce((n,s)=>{let o=$E.createHash(s).update(r).digest(\"base64\"),a=new jl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new pg)}ua.exports.fromStream=_9e;function _9e(r,e){e=An(e);let t=e.Promise||Promise,i=MK(e);return new t((n,s)=>{r.pipe(i),r.on(\"error\",s),i.on(\"error\",s);let o;i.on(\"integrity\",a=>{o=a}),i.on(\"end\",()=>n(o)),i.on(\"data\",()=>{})})}ua.exports.checkData=Z9e;function Z9e(r,e,t){if(t=An(t),e=ca(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error(\"No valid integrity hashes to check against\"),{code:\"EINTEGRITY\"});return!1}let i=e.pickAlgorithm(t),n=$E.createHash(i).update(r).digest(\"base64\"),s=ca({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size==\"number\"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}.\n  Wanted: ${t.size}\n  Found: ${r.length}`);throw a.code=\"EBADSIZE\",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code=\"EINTEGRITY\",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ua.exports.checkStream=$9e;function $9e(r,e,t){t=An(t);let i=t.Promise||Promise,n=MK(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on(\"error\",o),n.on(\"error\",o);let a;n.on(\"verified\",l=>{a=l}),n.on(\"end\",()=>s(a)),n.on(\"data\",()=>{})})}ua.exports.integrityStream=MK;function MK(r){r=An(r);let e=r.integrity&&ca(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map($E.createHash),a=0,l=new j9e({transform(c,u,g){a+=c.length,o.forEach(f=>f.update(c,u)),g(null,c,u)}}).on(\"end\",()=>{let c=r.options&&r.options.length?`?${r.options.join(\"?\")}`:\"\",u=ca(o.map((f,h)=>`${s[h]}-${f.digest(\"base64\")}${c}`).join(\" \"),r),g=t&&u.match(e,r);if(typeof r.size==\"number\"&&a!==r.size){let f=new Error(`stream size mismatch when checking ${e}.\n  Wanted: ${r.size}\n  Found: ${a}`);f.code=\"EBADSIZE\",f.found=a,f.expected=r.size,f.sri=e,l.emit(\"error\",f)}else if(r.integrity&&!g){let f=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);f.code=\"EINTEGRITY\",f.found=u,f.expected=n,f.algorithm=i,f.sri=e,l.emit(\"error\",f)}else l.emit(\"size\",a),l.emit(\"integrity\",u),g&&l.emit(\"verified\",g)});return l}ua.exports.create=e7e;function e7e(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join(\"?\")}`:\"\",i=e.map($E.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest(\"base64\"),c=new jl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new pg)}}}var t7e=new Set($E.getHashes()),dge=[\"md5\",\"whirlpool\",\"sha1\",\"sha224\",\"sha256\",\"sha384\",\"sha512\",\"sha3\",\"sha3-256\",\"sha3-384\",\"sha3-512\",\"sha3_256\",\"sha3_384\",\"sha3_512\"].filter(r=>t7e.has(r));function r7e(r,e){return dge.indexOf(r.toLowerCase())>=dge.indexOf(e.toLowerCase())?r:e}});var vm={};ht(vm,{BuildType:()=>iQ,Cache:()=>kt,Configuration:()=>Ie,DEFAULT_LOCK_FILENAME:()=>Wk,DEFAULT_RC_FILENAME:()=>Jk,FormatType:()=>Pi,InstallMode:()=>Xn,LightReport:()=>ta,LinkType:()=>Lf,Manifest:()=>nt,MessageName:()=>Ct,MultiFetcher:()=>Jf,PackageExtensionStatus:()=>MP,PackageExtensionType:()=>OP,Project:()=>He,ProjectLookup:()=>_k,Report:()=>xi,ReportError:()=>ot,SettingsType:()=>zk,StreamReport:()=>Ke,TAG_REGEXP:()=>zf,TelemetryManager:()=>Uh,ThrowReport:()=>ni,VirtualFetcher:()=>Vf,Workspace:()=>Kh,WorkspaceFetcher:()=>_f,WorkspaceResolver:()=>Jr,YarnVersion:()=>Or,execUtils:()=>mr,folderUtils:()=>lB,formatUtils:()=>ee,hashUtils:()=>gi,httpUtils:()=>Vt,miscUtils:()=>Ee,nodeUtils:()=>io,parseMessageName:()=>uy,scriptUtils:()=>Jt,semverUtils:()=>vt,stringifyMessageName:()=>MA,structUtils:()=>P,tgzUtils:()=>yi,treeUtils:()=>Vn});var mr={};ht(mr,{EndStrategy:()=>tR,ExecError:()=>dB,PipeError:()=>OC,execvp:()=>Gk,pipevp:()=>Wo});var hd={};ht(hd,{AliasFS:()=>Qo,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>lc,FakeFS:()=>wa,Filename:()=>xt,JailFS:()=>bo,LazyFS:()=>Jg,LinkStrategy:()=>XS,NoFS:()=>ud,NodeFS:()=>$t,PortablePath:()=>ke,PosixFS:()=>Wg,ProxiedFS:()=>mi,VirtualFS:()=>Nr,ZipFS:()=>Xr,ZipOpenFS:()=>On,constants:()=>Pr,extendFs:()=>NI,normalizeLineEndings:()=>Ac,npath:()=>K,opendir:()=>vI,patchFs:()=>iv,ppath:()=>x,statUtils:()=>sd,toFilename:()=>Gr,xfs:()=>M});var Pr={};ht(Pr,{SAFE_TIME:()=>F1,S_IFDIR:()=>sc,S_IFLNK:()=>ac,S_IFMT:()=>Ys,S_IFREG:()=>oc});var Ys=61440,sc=16384,oc=32768,ac=40960,F1=456789e3;var sd={};ht(sd,{BigIntStatsEntry:()=>Yg,DEFAULT_MODE:()=>id,DirEntry:()=>YS,StatEntry:()=>ya,areStatsEqual:()=>qS,clearStats:()=>EI,convertToBigIntStats:()=>II,makeDefaultStats:()=>nd,makeEmptyStats:()=>pfe});var jS=ne(J(\"util\"));var id=33188,YS=class{constructor(){this.name=\"\";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=id;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Yg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(id);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function nd(){return new ya}function pfe(){return EI(nd())}function EI(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t==\"number\"?r[e]=0:typeof t==\"bigint\"?r[e]=BigInt(0):jS.types.isDate(t)&&(r[e]=new Date(0))}return r}function II(r){let e=new Yg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i==\"number\"?e[t]=BigInt(i):jS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function qS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var wI=ne(J(\"fs\"));var od=ne(J(\"path\"));var ke={root:\"/\",dot:\".\",parent:\"..\"},xt={nodeModules:\"node_modules\",manifest:\"package.json\",lockfile:\"yarn.lock\",virtual:\"__virtual__\",pnpJs:\".pnp.js\",pnpCjs:\".pnp.cjs\",rc:\".yarnrc.yml\"},K=Object.create(od.default),x=Object.create(od.default.posix);K.cwd=()=>process.cwd();x.cwd=()=>JS(process.cwd());x.resolve=(...r)=>r.length>0&&x.isAbsolute(r[0])?od.default.posix.resolve(...r):od.default.posix.resolve(x.cwd(),...r);var N1=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?\".\":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=L1;K.toPortablePath=JS;K.contains=(r,e)=>N1(K,r,e);x.contains=(r,e)=>N1(x,r,e);var dfe=/^([a-zA-Z]:.*)$/,Cfe=/^\\/\\/(\\.\\/)?(.*)$/,mfe=/^\\/([a-zA-Z]:.*)$/,Efe=/^\\/unc\\/(\\.dot\\/)?(.*)$/;function L1(r){if(process.platform!==\"win32\")return r;let e,t;if(e=r.match(mfe))r=e[1];else if(t=r.match(Efe))r=`\\\\\\\\${t[1]?\".\\\\\":\"\"}${t[2]}`;else return r;return r.replace(/\\//g,\"\\\\\")}function JS(r){if(process.platform!==\"win32\")return r;r=r.replace(/\\\\/g,\"/\");let e,t;return(e=r.match(dfe))?r=`/${e[1]}`:(t=r.match(Cfe))&&(r=`/unc/${t[1]?\".dot/\":\"\"}${t[2]}`),r}function yI(r,e){return r===K?L1(e):JS(e)}function Gr(r){if(K.parse(r).dir!==\"\"||x.parse(r).dir!==\"\")throw new Error(`Invalid filename: \"${r}\"`);return r}var BI=new Date(456789e3*1e3),XS=(t=>(t.Allow=\"allow\",t.ReadOnly=\"readOnly\",t))(XS||{});async function T1(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:BI,mtime:BI}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise==\"function\"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await zS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let f of a)await f();await Promise.all(l.map(f=>f()))}async function zS(r,e,t,i,n,s,o,a){var h,p;let l=a.didParentExist?await Ife(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:BI,mtime:BI}:c,f;switch(!0){case c.isDirectory():f=await yfe(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():f=await Bfe(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():f=await Qfe(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(f||((h=l==null?void 0:l.mtime)==null?void 0:h.getTime())!==g.getTime()||((p=l==null?void 0:l.atime)==null?void 0:p.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),f=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),f=!0),f}async function Ife(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function yfe(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(h){if(h.code!==\"EEXIST\")throw h}}),u=!0);let g=await o.readdirPromise(a),f=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let h of g.sort())await zS(r,e,t,i,i.pathUtils.join(n,h),o,o.pathUtils.join(a,h),f)&&(u=!0);else(await Promise.all(g.map(async p=>{await zS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),f)}))).some(p=>p)&&(u=!0);return u}var WS=new WeakMap;function VS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n===\"readOnly\"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function wfe(r,e,t,i,n){let s=WS.get(r);return typeof s>\"u\"?async()=>{try{await r.copyFilePromise(t,e,wI.default.constants.COPYFILE_FICLONE_FORCE),WS.set(r,!0)}catch(o){if(o.code===\"ENOSYS\"||o.code===\"ENOTSUP\")WS.set(r,!1),await VS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,wI.default.constants.COPYFILE_FICLONE_FORCE):VS(r,e,t,i,n)}async function Bfe(r,e,t,i,n,s,o,a,l,c){var f;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(f=c.linkStrategy)!=null?f:null,g=i===o?u!==null?wfe(i,n,a,l,u):async()=>i.copyFilePromise(a,n,wI.default.constants.COPYFILE_FICLONE):u!==null?VS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function Qfe(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(yI(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function is(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function bI(r){return is(\"EBUSY\",r)}function ad(r,e){return is(\"ENOSYS\",`${r}, ${e}`)}function PA(r){return is(\"EINVAL\",`invalid argument, ${r}`)}function Yr(r){return is(\"EBADF\",`bad file descriptor, ${r}`)}function js(r){return is(\"ENOENT\",`no such file or directory, ${r}`)}function Bo(r){return is(\"ENOTDIR\",`not a directory, ${r}`)}function Ad(r){return is(\"EISDIR\",`illegal operation on a directory, ${r}`)}function SI(r){return is(\"EEXIST\",`file already exists, ${r}`)}function un(r){return is(\"EROFS\",`read-only filesystem, ${r}`)}function O1(r){return is(\"ENOTEMPTY\",`directory not empty, ${r}`)}function M1(r){return is(\"EOPNOTSUPP\",`operation not supported, ${r}`)}function K1(){return is(\"ERR_DIR_CLOSED\",\"Directory handle was closed\")}var QI=class extends Error{constructor(t,i){super(t);this.name=\"Libzip Error\",this.code=i}};var ZS=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw K1()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<\"u\"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<\"u\"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function vI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>\"u\"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new ZS(e,n,i)}var U1=J(\"os\");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error(\"Not supported\")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code===\"ENOENT\")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!==\"EBUSY\"&&o.code!==\"ENOTEMPTY\")throw o;s<i&&await new Promise(a=>setTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code===\"ENOENT\")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code===\"EEXIST\")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code===\"EEXIST\")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await T1(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(yI(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,\"0\")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s=\"\";try{s=await this.readFilePromise(e,\"utf8\")}catch{}let o=i?Ac(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s=\"\";try{s=this.readFileSync(e,\"utf8\")}catch{}let o=i?Ac(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code===\"EXDEV\")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code===\"EXDEV\")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,\"wx\")}catch(l){if(l.code===\"EEXIST\"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,\"utf8\");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,\"utf8\");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)}\n`)}writeJsonSync(e,t){return this.writeFileSync(e,`${JSON.stringify(t,null,2)}\n`)}async preserveTimePromise(e,t){let i=await this.lstatPromise(e),n=await t();typeof n<\"u\"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,t){let i=this.lstatSync(e),n=t();typeof n<\"u\"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},DA=class extends wa{constructor(){super(x)}};function bfe(r){let e=r.match(/\\r?\\n/g);if(e===null)return U1.EOL;let t=e.filter(n=>n===`\\r\n`).length,i=e.length-t;return t>i?`\\r\n`:`\n`}function Ac(r,e){return e.replace(/\\r?\\n/g,bfe(r))}var qg=J(\"fs\"),$S=J(\"stream\"),q1=J(\"util\"),ev=ne(J(\"zlib\"));var H1=ne(J(\"fs\"));var $t=class extends DA{constructor(t=H1.default){super();this.realFs=t,typeof this.realFs.lutimes<\"u\"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return ke.root}resolve(t){return x.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<\"u\"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,\"path\",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<\"u\"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,\"path\",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i==\"string\"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i==\"string\"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t==\"string\"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t==\"string\"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t==\"string\"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t==\"string\"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>\"u\")throw ad(\"unavailable Node binding\",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>\"u\")throw ad(\"unavailable Node binding\",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\\/+$/,\"\")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\\/+$/,\"\")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t==\"string\"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t==\"string\"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var Y1=J(\"events\");function G1(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var jg=class extends Y1.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status=\"ready\";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new jg(t,i,n);return s.start(),s}start(){G1(this.status,\"ready\"),this.status=\"running\",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit(\"change\",this.lastStats,this.lastStats)},3)}stop(){G1(this.status,\"running\"),this.status=\"stopped\",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit(\"stop\")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Yg:new ya;return EI(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;qS(n,s)||(this.lastStats=n,this.emit(\"change\",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener(\"change\",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener(\"change\",t);let i=this.changeListeners.get(t);typeof i<\"u\"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var xI=new WeakMap;function PI(r,e,t,i){let n,s,o,a;switch(typeof t){case\"function\":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=xI.get(r);typeof l>\"u\"&&xI.set(r,l=new Map);let c=l.get(e);return typeof c>\"u\"&&(c=jg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function ld(r,e,t){let i=xI.get(r);if(typeof i>\"u\")return;let n=i.get(e);typeof n>\"u\"||(typeof t>\"u\"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function cd(r){let e=xI.get(r);if(!(typeof e>\"u\"))for(let t of e.keys())ld(r,t)}var lc=\"mixed\";function Sfe(r){if(typeof r==\"string\"&&String(+r)===r)return+r;if(Number.isFinite(r))return r<0?Date.now()/1e3:r;if(q1.types.isDate(r))return r.getTime()/1e3;throw new Error(\"Invalid time\")}function j1(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var Xr=class extends DA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<\"u\"?n.level:lc,t!=null||(t=j1()),typeof t==\"string\"){let{baseFs:a=new $t}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t==\"string\")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code===\"ENOENT\"&&n.create)this.stats=nd();else throw a}else this.stats=nd();let s=this.libzip.malloc(4);try{let a=0;if(typeof t==\"string\"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t==\"string\")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,\"i32\")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(ke.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;a<o;++a){let l=this.libzip.getName(this.zip,a,0);if(x.isAbsolute(l))continue;let c=x.resolve(ke.root,l);this.registerEntry(c,a),l.endsWith(\"/\")&&this.registerListing(c)}if(this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.symlinkCount===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.ready=!0}makeLibzipError(t){let i=this.libzip.struct.errorCodeZip(t),n=this.libzip.error.strerror(t),s=new QI(n,this.libzip.errors[i]);if(i===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${s.message}`);return s}getExtractHint(t){for(let i of this.entries.keys()){let n=this.pathUtils.extname(i);if(t.relevantExtensions.has(n))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error(\"ZipFS don't have real paths when loaded from a buffer\");return this.path}getBufferAndClose(){if(this.prepareClose(),!this.lzSource)throw new Error(\"ZipFS was not created from a Buffer\");try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let t=this.libzip.source.tell(this.lzSource);if(t===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let i=this.libzip.malloc(t);if(!i)throw new Error(\"Couldn't allocate enough memory\");try{let n=this.libzip.source.read(this.lzSource,i,t);if(n===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(n<t)throw new Error(\"Incomplete read\");if(n>t)throw new Error(\"Overread\");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw bI(\"archive closed, close\");cd(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error(\"ZipFS cannot be saved and must be discarded when loaded from a buffer\");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===id?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,j1(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<\"u\"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return x.resolve(ke.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw js(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw Bo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,\"r\");return vI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>\"u\")throw Yr(\"read\");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i==\"string\"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>\"u\"?Yr(\"read\"):new Error(\"Unimplemented\")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>\"u\")throw Yr(\"read\");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error(\"Unimplemented\");let n=this.openSync(t,\"r\"),s=Object.assign(new $S.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw un(`open '${t}'`);if(t===null)throw new Error(\"Unimplemented\");let n=[],s=this.openSync(t,\"w\"),o=Object.assign(new $S.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{bytesWritten:0,path:t,close(){o.destroy()}});return o.on(\"data\",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw js(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw bI(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=x.resolve(ke.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=qg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw js(`access '${t}'`);if(this.readOnly&&i&qg.constants.W_OK)throw un(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw js(`stat '${t}'`)}if(t[t.length-1]===\"/\"&&!this.listings.has(n))throw Bo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>\"u\")throw Yr(\"fstatSync\");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw js(`stat '${s}'`);if(s[s.length-1]===\"/\"&&!this.listings.has(o))throw Bo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw js(`lstat '${t}'`)}if(t[t.length-1]===\"/\"&&!this.listings.has(n))throw Bo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<\"u\"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,f=Math.ceil(u/g),h=(this.libzip.struct.statMtime(o)>>>0)*1e3,p=h,C=h,w=h,B=new Date(p),v=new Date(C),D=new Date(w),L=new Date(h),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,j=H===16384?493:420,$=H|this.getUnixMode(s,j)&511,V=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:f,atime:B,birthtime:v,ctime:D,mtime:L,atimeMs:p,birthtimeMs:C,ctimeMs:w,mtimeMs:h,mode:$,crc:V});return n.bigint===!0?II(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,f=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,C=new Date(g),w=new Date(f),B=new Date(h),v=new Date(p),D=16877,L=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:C,birthtime:w,ctime:B,mtime:v,atimeMs:g,birthtimeMs:f,ctimeMs:h,mtimeMs:p,mode:D,crc:L});return n.bigint===!0?II(H):H}throw new Error(\"Unreachable\")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,\"i8\")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,\"i32\")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(x.dirname(t)).add(x.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(x.dirname(t)).add(x.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(x.dirname(t));i==null||i.delete(x.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>\"u\")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw bI(`archive closed, ${t}`);let o=x.resolve(ke.root,i);if(o===\"/\")return ke.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,x.resolve(x.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,x.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw js(t)}if(!c)throw Bo(t);if(o=x.resolve(l,x.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1));if(g===-1)break;if(this.isSymbolicLink(g)){let f=this.getFileSource(g).toString();o=x.resolve(x.dirname(o),f)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error(\"Couldn't allocate enough memory\");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,!0,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,!0);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=x.relative(ke.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!==\"mixed\"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,\"i8\")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,\"i32\")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<\"u\")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(g<a)throw new Error(\"Incomplete read\");if(g>a)throw new Error(\"Overread\");let f=this.libzip.HEAPU8.subarray(c,c+a),h=Buffer.from(f);if(l===0)return this.fileSources.set(t,h),h;if(i.asyncDecompress)return new Promise((p,C)=>{ev.default.inflateRaw(h,(w,B)=>{w?C(w):(this.fileSources.set(t,B),p(B))})});{let p=ev.default.inflateRawSync(h);return this.fileSources.set(t,p),p}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,\"fchmod\"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,\"fchmodSync\"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw un(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>\"u\")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,\"fchown\"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,\"fchownSync\"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error(\"Unimplemented\")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error(\"Unimplemented\")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw un(`copyfile '${t} -> '${i}'`);if((n&qg.constants.COPYFILE_FICLONE_FORCE)!==0)throw ad(\"unsupported clone operation\",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>\"u\")throw PA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(qg.constants.COPYFILE_EXCL|qg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<\"u\")throw SI(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw un(`open '${t}'`);return typeof n>\"u\"?n={flag:\"a\"}:typeof n==\"string\"?n={flag:\"a\",encoding:n}:typeof n.flag>\"u\"&&(n={flag:\"a\",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw un(`open '${t}'`);return typeof n>\"u\"?n={flag:\"a\"}:typeof n==\"string\"?n={flag:\"a\",encoding:n}:typeof n.flag>\"u\"&&(n={flag:\"a\",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>\"u\")throw Yr(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n==\"object\"&&n.flag&&n.flag.includes(\"a\")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n==\"object\"&&n.flag&&n.flag.includes(\"a\")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t==\"number\"&&(t=this.fdToPath(t,\"read\")),this.readOnly)throw un(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Ad(`open '${t}'`);let s=null,o=null;typeof i==\"string\"?s=i:typeof i==\"object\"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw un(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Ad(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>\"u\")throw PA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw un(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw un(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error(\"Unreachable\");if(this.libzip.file.setMtime(this.zip,n,0,Sfe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw un(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw SI(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw un(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw Bo(`rmdir '${t}'`);if(s.size>0)throw O1(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>\"u\")throw PA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,x.relative(ke.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw M1(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw un(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Ad(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw SI(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i==\"object\"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i==\"object\"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t==\"number\"&&(t=this.fdToPath(t,\"read\"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw js(`open '${t}'`);if(t[t.length-1]===\"/\"&&!this.listings.has(n))throw Bo(`open '${t}'`);if(this.listings.has(n))throw Ad(\"read\");let s=this.entries.get(n);if(s===void 0)throw new Error(\"Unreachable\");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw js(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw Bo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl(\"lstat\",x.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw js(`readlink '${t}'`);if(t[t.length-1]===\"/\"&&!this.listings.has(i))throw Bo(`open '${t}'`);if(this.listings.has(i))throw PA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error(\"Unreachable\");if(!this.isSymbolicLink(n))throw PA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>\"u\")throw PA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>\"u\")throw PA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,\"ftruncate\"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,\"ftruncateSync\"),i)}watch(t,i,n){let s;switch(typeof i){case\"function\":case\"string\":case\"undefined\":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=x.resolve(ke.root,t);return PI(this,s,i,n)}unwatchFile(t,i){let n=x.resolve(ke.root,t);return ld(this,n,i)}};var mi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t==\"string\"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t==\"string\"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return t===\"utf8\"?this.baseFs.readFilePromise(this.fsMapToBase(e),t):this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return t===\"utf8\"?this.baseFs.readFileSync(this.fsMapToBase(e),t):this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e==\"number\"?e:this.mapToBase(e)}};var Qo=class extends mi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var jt=class extends mi{constructor(t,{baseFs:i=new $t}={}){super(x);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?x.normalize(t):this.baseFs.resolve(x.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var J1=ke.root,bo=class extends mi{constructor(t,{baseFs:i=new $t}={}){super(x);this.target=this.pathUtils.resolve(ke.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(ke.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(J1,t));if(i.match(/^\\.\\.\\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(J1,this.pathUtils.relative(this.target,t))}};var Jg=class extends mi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var ze=()=>Object.assign(new Error(\"ENOSYS: unsupported filesystem access\"),{code:\"ENOSYS\"}),tv=class extends wa{constructor(){super(x)}getExtractHint(){throw ze()}getRealPath(){throw ze()}resolve(){throw ze()}async openPromise(){throw ze()}openSync(){throw ze()}async opendirPromise(){throw ze()}opendirSync(){throw ze()}async readPromise(){throw ze()}readSync(){throw ze()}async writePromise(){throw ze()}writeSync(){throw ze()}async closePromise(){throw ze()}closeSync(){throw ze()}createWriteStream(){throw ze()}createReadStream(){throw ze()}async realpathPromise(){throw ze()}realpathSync(){throw ze()}async readdirPromise(){throw ze()}readdirSync(){throw ze()}async existsPromise(e){throw ze()}existsSync(e){throw ze()}async accessPromise(){throw ze()}accessSync(){throw ze()}async statPromise(){throw ze()}statSync(){throw ze()}async fstatPromise(e){throw ze()}fstatSync(e){throw ze()}async lstatPromise(e){throw ze()}lstatSync(e){throw ze()}async fchmodPromise(){throw ze()}fchmodSync(){throw ze()}async chmodPromise(){throw ze()}chmodSync(){throw ze()}async fchownPromise(){throw ze()}fchownSync(){throw ze()}async chownPromise(){throw ze()}chownSync(){throw ze()}async mkdirPromise(){throw ze()}mkdirSync(){throw ze()}async rmdirPromise(){throw ze()}rmdirSync(){throw ze()}async linkPromise(){throw ze()}linkSync(){throw ze()}async symlinkPromise(){throw ze()}symlinkSync(){throw ze()}async renamePromise(){throw ze()}renameSync(){throw ze()}async copyFilePromise(){throw ze()}copyFileSync(){throw ze()}async appendFilePromise(){throw ze()}appendFileSync(){throw ze()}async writeFilePromise(){throw ze()}writeFileSync(){throw ze()}async unlinkPromise(){throw ze()}unlinkSync(){throw ze()}async utimesPromise(){throw ze()}utimesSync(){throw ze()}async readFilePromise(){throw ze()}readFileSync(){throw ze()}async readlinkPromise(){throw ze()}readlinkSync(){throw ze()}async truncatePromise(){throw ze()}truncateSync(){throw ze()}async ftruncatePromise(e,t){throw ze()}ftruncateSync(e,t){throw ze()}watch(){throw ze()}watchFile(){throw ze()}unwatchFile(){throw ze()}},ud=tv;ud.instance=new tv;var Wg=class extends mi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var vfe=/^[0-9]+$/,rv=/^(\\/(?:[^/]+\\/)*?(?:\\$\\$virtual|__virtual__))((?:\\/((?:[^/]+-)?[a-f0-9]+)(?:\\/([^/]+))?)?((?:\\/.*)?))$/,xfe=/^([^/]+-)?[a-f0-9]+$/,Nr=class extends mi{constructor({baseFs:t=new $t}={}){super(x);this.baseFs=t}static makeVirtualPath(t,i,n){if(x.basename(t)!==\"__virtual__\")throw new Error('Assertion failed: Virtual folders must be named \"__virtual__\"');if(!x.basename(i).match(xfe))throw new Error(\"Assertion failed: Virtual components must be ended by an hexadecimal hash\");let o=x.relative(x.dirname(t),n).split(\"/\"),a=0;for(;a<o.length&&o[a]===\"..\";)a+=1;let l=o.slice(a);return x.join(t,i,String(a),...l)}static resolveVirtual(t){let i=t.match(rv);if(!i||!i[3]&&i[5])return t;let n=x.dirname(i[1]);if(!i[3]||!i[4])return n;if(!vfe.test(i[4]))return t;let o=Number(i[4]),a=\"../\".repeat(o),l=i[5]||\".\";return Nr.resolveVirtual(x.join(n,a,l))}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(t){let i=t.match(rv);if(!i)return this.baseFs.realpathSync(t);if(!i[5])return t;let n=this.baseFs.realpathSync(this.mapToBase(t));return Nr.makeVirtualPath(i[1],i[3],n)}async realpathPromise(t){let i=t.match(rv);if(!i)return await this.baseFs.realpathPromise(t);if(!i[5])return t;let n=await this.baseFs.realpathPromise(this.mapToBase(t));return Nr.makeVirtualPath(i[1],i[3],n)}mapToBase(t){if(t===\"\")return t;if(this.pathUtils.isAbsolute(t))return Nr.resolveVirtual(t);let i=Nr.resolveVirtual(this.baseFs.resolve(ke.dot)),n=Nr.resolveVirtual(this.baseFs.resolve(t));return x.relative(i,n)||ke.dot}mapFromBase(t){return t}};var gd=J(\"fs\");var gn=4278190080,zi=704643072,W1=(r,e)=>{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==x.sep);){if(r[t-1]===x.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==x.sep?null:r.slice(0,i)},On=class extends DA{constructor({libzip:t,baseFs:i=new $t,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!=\"function\"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new On(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>\"u\"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(cd(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(cd(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|zi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&gn)!==zi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>\"u\")throw Yr(\"read\");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&gn)!==zi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>\"u\")throw Yr(\"readSync\");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&gn)!==zi)return typeof i==\"string\"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>\"u\")throw Yr(\"write\");let[l,c]=a;return typeof i==\"string\"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&gn)!==zi)return typeof i==\"string\"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>\"u\")throw Yr(\"writeSync\");let[l,c]=a;return typeof i==\"string\"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&gn)!==zi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>\"u\")throw Yr(\"close\");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&gn)!==zi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>\"u\")throw Yr(\"closeSync\");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>\"u\"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(ke.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>\"u\"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(ke.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&gn)!==zi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>\"u\")throw Yr(\"fstat\");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&gn)!==zi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>\"u\")throw Yr(\"fstatSync\");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&gn)!==zi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>\"u\")throw Yr(\"fchmod\");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&gn)!==zi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>\"u\")throw Yr(\"fchmodSync\");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>\"u\")throw Yr(\"fchown\");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>\"u\")throw Yr(\"fchownSync\");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error(\"EEXDEV: cross-device link not permitted\"),{code:\"EEXDEV\"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&gd.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:\"EXDEV\"});if(n&gd.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:\"EEXIST\"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:\"EINVAL\"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&gd.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:\"EXDEV\"});if(n&gd.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:\"EEXIST\"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:\"EINVAL\"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>{switch(i){case\"utf8\":return await this.baseFs.readFilePromise(t,i);default:return await this.baseFs.readFilePromise(t,i)}},async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>{switch(i){case\"utf8\":return this.baseFs.readFileSync(t,i);default:return this.baseFs.readFileSync(t,i)}},(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&gn)!==zi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>\"u\")throw Yr(\"ftruncate\");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&gn)!==zi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>\"u\")throw Yr(\"ftruncateSync\");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>PI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>ld(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!=\"string\")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath===\"/\"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!=\"string\")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath===\"/\"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i=\"\";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=W1(n,\".zip\");else for(let o of this.fileExtensions)if(s=W1(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(ke.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new Xr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new Xr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new Xr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new Xr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Vg=J(\"util\");var kI=J(\"url\"),z1=J(\"util\");var DI=class extends mi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t==\"string\")return t;if(t instanceof kI.URL)return(0,kI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error(\"Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942\");return i}throw new Error(`Unsupported path type: ${(0,z1.inspect)(t)}`)}};var Ni=Symbol(\"kBaseFs\"),Ba=Symbol(\"kFd\"),kA=Symbol(\"kClosePromise\"),RI=Symbol(\"kCloseResolve\"),FI=Symbol(\"kCloseReject\"),zg=Symbol(\"kRefs\"),qs=Symbol(\"kRef\"),Js=Symbol(\"kUnref\"),Pfe,Dfe,kfe,Rfe,fd=class{constructor(e,t){this[Pfe]=1;this[Dfe]=void 0;this[kfe]=void 0;this[Rfe]=void 0;this[Ni]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[qs](this.appendFile);let n=(i=typeof t==\"string\"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Ni].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Js]()}}async chown(e,t){try{return this[qs](this.chown),await this[Ni].fchownPromise(this.fd,e,t)}finally{this[Js]()}}async chmod(e){try{return this[qs](this.chmod),await this[Ni].fchmodPromise(this.fd,e)}finally{this[Js]()}}createReadStream(e){return this[Ni].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Ni].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error(\"Method not implemented.\")}sync(){throw new Error(\"Method not implemented.\")}async read(e,t,i,n){var s,o,a;try{this[qs](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Ni].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Js]()}}async readFile(e){var t;try{this[qs](this.readFile);let i=(t=typeof e==\"string\"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Ni].readFilePromise(this.fd,i)}finally{this[Js]()}}async stat(e){try{return this[qs](this.stat),await this[Ni].fstatPromise(this.fd,e)}finally{this[Js]()}}async truncate(e){try{return this[qs](this.truncate),await this[Ni].ftruncatePromise(this.fd,e)}finally{this[Js]()}}utimes(e,t){throw new Error(\"Method not implemented.\")}async writeFile(e,t){var i;try{this[qs](this.writeFile);let n=(i=typeof t==\"string\"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Ni].writeFilePromise(this.fd,e,n)}finally{this[Js]()}}async write(...e){try{if(this[qs](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Ni].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Ni].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Js]()}}async writev(e,t){try{this[qs](this.writev);let i=0;if(typeof t<\"u\")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e)i+=(await this.write(n)).bytesWritten;return{buffers:e,bytesWritten:i}}finally{this[Js]()}}readv(e,t){throw new Error(\"Method not implemented.\")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[kA])return this[kA];if(this[zg]--,this[zg]===0){let e=this[Ba];this[Ba]=-1,this[kA]=this[Ni].closePromise(e).finally(()=>{this[kA]=void 0})}else this[kA]=new Promise((e,t)=>{this[RI]=e,this[FI]=t}).finally(()=>{this[kA]=void 0,this[FI]=void 0,this[RI]=void 0});return this[kA]}[(Ni,Ba,Pfe=zg,Dfe=kA,kfe=RI,Rfe=FI,qs)](e){if(this[Ba]===-1){let t=new Error(\"file closed\");throw t.code=\"EBADF\",t.syscall=e.name,t}this[zg]++}[Js](){if(this[zg]--,this[zg]===0){let e=this[Ba];this[Ba]=-1,this[Ni].closePromise(e).then(this[RI],this[FI])}}};var Ffe=new Set([\"accessSync\",\"appendFileSync\",\"createReadStream\",\"createWriteStream\",\"chmodSync\",\"fchmodSync\",\"chownSync\",\"fchownSync\",\"closeSync\",\"copyFileSync\",\"linkSync\",\"lstatSync\",\"fstatSync\",\"lutimesSync\",\"mkdirSync\",\"openSync\",\"opendirSync\",\"readlinkSync\",\"readFileSync\",\"readdirSync\",\"readlinkSync\",\"realpathSync\",\"renameSync\",\"rmdirSync\",\"statSync\",\"symlinkSync\",\"truncateSync\",\"ftruncateSync\",\"unlinkSync\",\"unwatchFile\",\"utimesSync\",\"watch\",\"watchFile\",\"writeFileSync\",\"writeSync\"]),V1=new Set([\"accessPromise\",\"appendFilePromise\",\"fchmodPromise\",\"chmodPromise\",\"fchownPromise\",\"chownPromise\",\"closePromise\",\"copyFilePromise\",\"linkPromise\",\"fstatPromise\",\"lstatPromise\",\"lutimesPromise\",\"mkdirPromise\",\"openPromise\",\"opendirPromise\",\"readdirPromise\",\"realpathPromise\",\"readFilePromise\",\"readdirPromise\",\"readlinkPromise\",\"renamePromise\",\"rmdirPromise\",\"statPromise\",\"symlinkPromise\",\"truncatePromise\",\"ftruncatePromise\",\"unlinkPromise\",\"utimesPromise\",\"writeFilePromise\",\"writeSync\"]);function iv(r,e){e=new DI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Vg.promisify.custom])<\"u\"&&(s[Vg.promisify.custom]=o[Vg.promisify.custom])};{t(r,\"exists\",(i,...n)=>{let o=typeof n[n.length-1]==\"function\"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,\"read\",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of V1){let n=i.replace(/Promise$/,\"\");if(typeof r[n]>\"u\")continue;let s=e[i];if(typeof s>\"u\")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]==\"function\"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,\"existsSync\",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,\"readSync\",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of Ffe){let n=i;if(typeof r[n]>\"u\")continue;let s=e[i];typeof s>\"u\"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=process.emitWarning;process.emitWarning=()=>{};let n;try{n=r.promises}finally{process.emitWarning=i}if(typeof n<\"u\"){for(let s of V1){let o=s.replace(/Promise$/,\"\");if(typeof n[o]>\"u\")continue;let a=e[s];typeof a>\"u\"||s!==\"open\"&&t(n,o,(l,...c)=>l instanceof fd?l[o].apply(l,c):a.call(e,l,...c))}t(n,\"open\",async(...s)=>{let o=await e.openPromise(...s);return new fd(o,e)})}}r.read[Vg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Vg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function NI(r,e){let t=Object.create(r);return iv(t,e),t}var Z1=ne(J(\"os\"));function X1(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,\"0\");return`${r}${e}`}var Ws=new Set,nv=null;function _1(){if(nv)return nv;let r=K.toPortablePath(Z1.default.tmpdir()),e=M.realpathSync(r);return process.once(\"exit\",()=>{M.rmtempSync()}),nv={tmpdir:r,realTmpdir:e}}var M=Object.assign(new $t,{detachTemp(r){Ws.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=_1();for(;;){let i=X1(\"xfs-\");try{this.mkdirSync(x.join(e,i))}catch(s){if(s.code===\"EEXIST\")continue;throw s}let n=x.join(t,i);if(Ws.add(n),typeof r>\"u\")return n;try{return r(n)}finally{if(Ws.has(n)){Ws.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=_1();for(;;){let i=X1(\"xfs-\");try{await this.mkdirPromise(x.join(e,i))}catch(s){if(s.code===\"EEXIST\")continue;throw s}let n=x.join(t,i);if(Ws.add(n),typeof r>\"u\")return n;try{return await r(n)}finally{if(Ws.has(n)){Ws.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(Ws.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),Ws.delete(r)}catch{}}))},rmtempSync(){for(let r of Ws)try{M.removeSync(r),Ws.delete(r)}catch{}}});var eR=ne(hv());var wd={};ht(wd,{parseResolution:()=>UI,parseShell:()=>OI,parseSyml:()=>Qi,stringifyArgument:()=>mv,stringifyArgumentSegment:()=>Ev,stringifyArithmeticExpression:()=>KI,stringifyCommand:()=>Cv,stringifyCommandChain:()=>$g,stringifyCommandChainThen:()=>dv,stringifyCommandLine:()=>MI,stringifyCommandLineThen:()=>pv,stringifyEnvSegment:()=>TI,stringifyRedirectArgument:()=>pd,stringifyResolution:()=>HI,stringifyShell:()=>Zg,stringifyShellLine:()=>Zg,stringifySyml:()=>ba,stringifyValueArgument:()=>uc});var GU=ne(HU());function OI(r,e={isGlobPattern:()=>!1}){try{return(0,GU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Zg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${MI(t)}${i===\";\"?n!==r.length-1||e?\";\":\"\":\" &\"}`).join(\" \")}function MI(r){return`${$g(r.chain)}${r.then?` ${pv(r.then)}`:\"\"}`}function pv(r){return`${r.type} ${MI(r.line)}`}function $g(r){return`${Cv(r)}${r.then?` ${dv(r.then)}`:\"\"}`}function dv(r){return`${r.type} ${$g(r.chain)}`}function Cv(r){switch(r.type){case\"command\":return`${r.envs.length>0?`${r.envs.map(e=>TI(e)).join(\" \")} `:\"\"}${r.args.map(e=>mv(e)).join(\" \")}`;case\"subshell\":return`(${Zg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>pd(e)).join(\" \")}`:\"\"}`;case\"group\":return`{ ${Zg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>pd(e)).join(\" \")}`:\"\"}`;case\"envs\":return r.envs.map(e=>TI(e)).join(\" \");default:throw new Error(`Unsupported command type:  \"${r.type}\"`)}}function TI(r){return`${r.name}=${r.args[0]?uc(r.args[0]):\"\"}`}function mv(r){switch(r.type){case\"redirection\":return pd(r);case\"argument\":return uc(r);default:throw new Error(`Unsupported argument type: \"${r.type}\"`)}}function pd(r){return`${r.subtype} ${r.args.map(e=>uc(e)).join(\" \")}`}function uc(r){return r.segments.map(e=>Ev(e)).join(\"\")}function Ev(r){let e=(i,n)=>n?`\"${i}\"`:i,t=i=>i===\"\"?'\"\"':i.match(/[(){}<>$|&; \\t\"']/)?`$'${i.replace(/\\\\/g,\"\\\\\\\\\").replace(/'/g,\"\\\\'\").replace(/\\f/g,\"\\\\f\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/\\t/g,\"\\\\t\").replace(/\\v/g,\"\\\\v\").replace(/\\0/g,\"\\\\0\")}'`:i;switch(r.type){case\"text\":return t(r.text);case\"glob\":return r.pattern;case\"shell\":return e(`\\${${Zg(r.shell)}}`,r.quoted);case\"variable\":return e(typeof r.defaultValue>\"u\"?typeof r.alternativeValue>\"u\"?`\\${${r.name}}`:r.alternativeValue.length===0?`\\${${r.name}:+}`:`\\${${r.name}:+${r.alternativeValue.map(i=>uc(i)).join(\" \")}}`:r.defaultValue.length===0?`\\${${r.name}:-}`:`\\${${r.name}:-${r.defaultValue.map(i=>uc(i)).join(\" \")}}`,r.quoted);case\"arithmetic\":return`$(( ${KI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: \"${r.type}\"`)}}function KI(r){let e=n=>{switch(n){case\"addition\":return\"+\";case\"subtraction\":return\"-\";case\"multiplication\":return\"*\";case\"division\":return\"/\";default:throw new Error(`Can't extract operator from arithmetic expression of type \"${n}\"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(KI(n),![\"number\",\"variable\"].includes(n.type));switch(r.type){case\"number\":return String(r.value);case\"variable\":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var qU=ne(jU());function UI(r){let e=r.match(/^\\*{1,2}\\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,qU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function HI(r){let e=\"\";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+=\"/\"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var $I=ne(LH()),UH=ne(OH()),Gde=/^(?![-?:,\\][{}#&*!|>'\"%@` \\t\\r\\n]).([ \\t]*(?![,\\][{}:# \\t\\r\\n]).)*$/,MH=[\"__metadata\",\"version\",\"resolution\",\"dependencies\",\"peerDependencies\",\"dependenciesMeta\",\"peerDependenciesMeta\",\"binaries\"],ZI=class{constructor(e){this.data=e}};function KH(r){return r.match(Gde)?r:JSON.stringify(r)}function HH(r){return typeof r>\"u\"?!0:typeof r==\"object\"&&r!==null?Object.keys(r).every(e=>HH(r[e])):!1}function Rv(r,e,t){if(r===null)return`null\n`;if(typeof r==\"number\"||typeof r==\"boolean\")return`${r.toString()}\n`;if(typeof r==\"string\")return`${KH(r)}\n`;if(Array.isArray(r)){if(r.length===0)return`[]\n`;let i=\"  \".repeat(e);return`\n${r.map(s=>`${i}- ${Rv(s,e+1,!1)}`).join(\"\")}`}if(typeof r==\"object\"&&r){let i,n;r instanceof ZI?(i=r.data,n=!1):(i=r,n=!0);let s=\"  \".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=MH.indexOf(l),g=MH.indexOf(c);return u===-1&&g===-1?l<c?-1:l>c?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!HH(i[l])).map((l,c)=>{let u=i[l],g=KH(l),f=Rv(u,e+1,!0),h=c>0||t?s:\"\",p=g.length>1024?`? ${g}\n${h}:`:`${g}:`,C=f.startsWith(`\n`)?f:` ${f}`;return`${h}${p}${C}`}).join(e===0?`\n`:\"\")||`\n`;return t?`\n${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function ba(r){try{let e=Rv(r,0,!1);return e!==`\n`?e:\"\"}catch(e){throw e.location&&(e.message=e.message.replace(/(\\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}ba.PreserveOrdering=ZI;function Yde(r){return r.endsWith(`\n`)||(r+=`\n`),(0,UH.parse)(r)}var jde=/^(#.*(\\r?\\n))*?#\\s+yarn\\s+lockfile\\s+v1\\r?\\n/i;function qde(r){if(jde.test(r))return Yde(r);let e=(0,$I.safeLoad)(r,{schema:$I.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!=\"object\")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error(\"Expected an indexed object, got an array instead. Does your file follow Yaml's rules?\");return e}function Qi(r){return qde(r)}var h5=ne(YH()),gB=ne(yc()),Ya=ne(Xe()),p5=ne(lf()),qk=J(\"stream\");var Ct=(oe=>(oe[oe.UNNAMED=0]=\"UNNAMED\",oe[oe.EXCEPTION=1]=\"EXCEPTION\",oe[oe.MISSING_PEER_DEPENDENCY=2]=\"MISSING_PEER_DEPENDENCY\",oe[oe.CYCLIC_DEPENDENCIES=3]=\"CYCLIC_DEPENDENCIES\",oe[oe.DISABLED_BUILD_SCRIPTS=4]=\"DISABLED_BUILD_SCRIPTS\",oe[oe.BUILD_DISABLED=5]=\"BUILD_DISABLED\",oe[oe.SOFT_LINK_BUILD=6]=\"SOFT_LINK_BUILD\",oe[oe.MUST_BUILD=7]=\"MUST_BUILD\",oe[oe.MUST_REBUILD=8]=\"MUST_REBUILD\",oe[oe.BUILD_FAILED=9]=\"BUILD_FAILED\",oe[oe.RESOLVER_NOT_FOUND=10]=\"RESOLVER_NOT_FOUND\",oe[oe.FETCHER_NOT_FOUND=11]=\"FETCHER_NOT_FOUND\",oe[oe.LINKER_NOT_FOUND=12]=\"LINKER_NOT_FOUND\",oe[oe.FETCH_NOT_CACHED=13]=\"FETCH_NOT_CACHED\",oe[oe.YARN_IMPORT_FAILED=14]=\"YARN_IMPORT_FAILED\",oe[oe.REMOTE_INVALID=15]=\"REMOTE_INVALID\",oe[oe.REMOTE_NOT_FOUND=16]=\"REMOTE_NOT_FOUND\",oe[oe.RESOLUTION_PACK=17]=\"RESOLUTION_PACK\",oe[oe.CACHE_CHECKSUM_MISMATCH=18]=\"CACHE_CHECKSUM_MISMATCH\",oe[oe.UNUSED_CACHE_ENTRY=19]=\"UNUSED_CACHE_ENTRY\",oe[oe.MISSING_LOCKFILE_ENTRY=20]=\"MISSING_LOCKFILE_ENTRY\",oe[oe.WORKSPACE_NOT_FOUND=21]=\"WORKSPACE_NOT_FOUND\",oe[oe.TOO_MANY_MATCHING_WORKSPACES=22]=\"TOO_MANY_MATCHING_WORKSPACES\",oe[oe.CONSTRAINTS_MISSING_DEPENDENCY=23]=\"CONSTRAINTS_MISSING_DEPENDENCY\",oe[oe.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]=\"CONSTRAINTS_INCOMPATIBLE_DEPENDENCY\",oe[oe.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]=\"CONSTRAINTS_EXTRANEOUS_DEPENDENCY\",oe[oe.CONSTRAINTS_INVALID_DEPENDENCY=26]=\"CONSTRAINTS_INVALID_DEPENDENCY\",oe[oe.CANT_SUGGEST_RESOLUTIONS=27]=\"CANT_SUGGEST_RESOLUTIONS\",oe[oe.FROZEN_LOCKFILE_EXCEPTION=28]=\"FROZEN_LOCKFILE_EXCEPTION\",oe[oe.CROSS_DRIVE_VIRTUAL_LOCAL=29]=\"CROSS_DRIVE_VIRTUAL_LOCAL\",oe[oe.FETCH_FAILED=30]=\"FETCH_FAILED\",oe[oe.DANGEROUS_NODE_MODULES=31]=\"DANGEROUS_NODE_MODULES\",oe[oe.NODE_GYP_INJECTED=32]=\"NODE_GYP_INJECTED\",oe[oe.AUTHENTICATION_NOT_FOUND=33]=\"AUTHENTICATION_NOT_FOUND\",oe[oe.INVALID_CONFIGURATION_KEY=34]=\"INVALID_CONFIGURATION_KEY\",oe[oe.NETWORK_ERROR=35]=\"NETWORK_ERROR\",oe[oe.LIFECYCLE_SCRIPT=36]=\"LIFECYCLE_SCRIPT\",oe[oe.CONSTRAINTS_MISSING_FIELD=37]=\"CONSTRAINTS_MISSING_FIELD\",oe[oe.CONSTRAINTS_INCOMPATIBLE_FIELD=38]=\"CONSTRAINTS_INCOMPATIBLE_FIELD\",oe[oe.CONSTRAINTS_EXTRANEOUS_FIELD=39]=\"CONSTRAINTS_EXTRANEOUS_FIELD\",oe[oe.CONSTRAINTS_INVALID_FIELD=40]=\"CONSTRAINTS_INVALID_FIELD\",oe[oe.AUTHENTICATION_INVALID=41]=\"AUTHENTICATION_INVALID\",oe[oe.PROLOG_UNKNOWN_ERROR=42]=\"PROLOG_UNKNOWN_ERROR\",oe[oe.PROLOG_SYNTAX_ERROR=43]=\"PROLOG_SYNTAX_ERROR\",oe[oe.PROLOG_EXISTENCE_ERROR=44]=\"PROLOG_EXISTENCE_ERROR\",oe[oe.STACK_OVERFLOW_RESOLUTION=45]=\"STACK_OVERFLOW_RESOLUTION\",oe[oe.AUTOMERGE_FAILED_TO_PARSE=46]=\"AUTOMERGE_FAILED_TO_PARSE\",oe[oe.AUTOMERGE_IMMUTABLE=47]=\"AUTOMERGE_IMMUTABLE\",oe[oe.AUTOMERGE_SUCCESS=48]=\"AUTOMERGE_SUCCESS\",oe[oe.AUTOMERGE_REQUIRED=49]=\"AUTOMERGE_REQUIRED\",oe[oe.DEPRECATED_CLI_SETTINGS=50]=\"DEPRECATED_CLI_SETTINGS\",oe[oe.PLUGIN_NAME_NOT_FOUND=51]=\"PLUGIN_NAME_NOT_FOUND\",oe[oe.INVALID_PLUGIN_REFERENCE=52]=\"INVALID_PLUGIN_REFERENCE\",oe[oe.CONSTRAINTS_AMBIGUITY=53]=\"CONSTRAINTS_AMBIGUITY\",oe[oe.CACHE_OUTSIDE_PROJECT=54]=\"CACHE_OUTSIDE_PROJECT\",oe[oe.IMMUTABLE_INSTALL=55]=\"IMMUTABLE_INSTALL\",oe[oe.IMMUTABLE_CACHE=56]=\"IMMUTABLE_CACHE\",oe[oe.INVALID_MANIFEST=57]=\"INVALID_MANIFEST\",oe[oe.PACKAGE_PREPARATION_FAILED=58]=\"PACKAGE_PREPARATION_FAILED\",oe[oe.INVALID_RANGE_PEER_DEPENDENCY=59]=\"INVALID_RANGE_PEER_DEPENDENCY\",oe[oe.INCOMPATIBLE_PEER_DEPENDENCY=60]=\"INCOMPATIBLE_PEER_DEPENDENCY\",oe[oe.DEPRECATED_PACKAGE=61]=\"DEPRECATED_PACKAGE\",oe[oe.INCOMPATIBLE_OS=62]=\"INCOMPATIBLE_OS\",oe[oe.INCOMPATIBLE_CPU=63]=\"INCOMPATIBLE_CPU\",oe[oe.FROZEN_ARTIFACT_EXCEPTION=64]=\"FROZEN_ARTIFACT_EXCEPTION\",oe[oe.TELEMETRY_NOTICE=65]=\"TELEMETRY_NOTICE\",oe[oe.PATCH_HUNK_FAILED=66]=\"PATCH_HUNK_FAILED\",oe[oe.INVALID_CONFIGURATION_VALUE=67]=\"INVALID_CONFIGURATION_VALUE\",oe[oe.UNUSED_PACKAGE_EXTENSION=68]=\"UNUSED_PACKAGE_EXTENSION\",oe[oe.REDUNDANT_PACKAGE_EXTENSION=69]=\"REDUNDANT_PACKAGE_EXTENSION\",oe[oe.AUTO_NM_SUCCESS=70]=\"AUTO_NM_SUCCESS\",oe[oe.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]=\"NM_CANT_INSTALL_EXTERNAL_SOFT_LINK\",oe[oe.NM_PRESERVE_SYMLINKS_REQUIRED=72]=\"NM_PRESERVE_SYMLINKS_REQUIRED\",oe[oe.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]=\"UPDATE_LOCKFILE_ONLY_SKIP_LINK\",oe[oe.NM_HARDLINKS_MODE_DOWNGRADED=74]=\"NM_HARDLINKS_MODE_DOWNGRADED\",oe[oe.PROLOG_INSTANTIATION_ERROR=75]=\"PROLOG_INSTANTIATION_ERROR\",oe[oe.INCOMPATIBLE_ARCHITECTURE=76]=\"INCOMPATIBLE_ARCHITECTURE\",oe[oe.GHOST_ARCHITECTURE=77]=\"GHOST_ARCHITECTURE\",oe[oe.PROLOG_LIMIT_EXCEEDED=79]=\"PROLOG_LIMIT_EXCEEDED\",oe))(Ct||{});function MA(r){return`YN${r.toString(10).padStart(4,\"0\")}`}function uy(r){let e=Number(r.slice(2));if(typeof Ct[e]>\"u\")throw new Error(`Unknown message name: \"${r}\"`);return e}var P={};ht(P,{areDescriptorsEqual:()=>wz,areIdentsEqual:()=>SC,areLocatorsEqual:()=>vC,areVirtualPackagesEquivalent:()=>cxe,bindDescriptor:()=>Axe,bindLocator:()=>lxe,convertDescriptorToLocator:()=>eB,convertLocatorToDescriptor:()=>Pk,convertPackageToLocator:()=>axe,convertToIdent:()=>oxe,convertToManifestRange:()=>fxe,copyPackage:()=>BC,devirtualizeDescriptor:()=>QC,devirtualizeLocator:()=>bC,getIdentVendorPath:()=>Fk,isPackageCompatible:()=>sB,isVirtualDescriptor:()=>_A,isVirtualLocator:()=>jo,makeDescriptor:()=>Zt,makeIdent:()=>qo,makeLocator:()=>en,makeRange:()=>rB,parseDescriptor:()=>ZA,parseFileStyleRange:()=>uxe,parseIdent:()=>Zi,parseLocator:()=>jc,parseRange:()=>Yf,prettyDependent:()=>JP,prettyDescriptor:()=>tr,prettyIdent:()=>ui,prettyLocator:()=>mt,prettyLocatorNoColors:()=>Rk,prettyRange:()=>nB,prettyReference:()=>PC,prettyResolution:()=>qP,prettyWorkspace:()=>DC,renamePackage:()=>wC,slugifyIdent:()=>xk,slugifyLocator:()=>jf,sortDescriptors:()=>qf,stringifyDescriptor:()=>bn,stringifyIdent:()=>Ot,stringifyLocator:()=>ps,tryParseDescriptor:()=>xC,tryParseIdent:()=>Bz,tryParseLocator:()=>tB,virtualizeDescriptor:()=>Dk,virtualizePackage:()=>kk});var Gf=ne(J(\"querystring\")),Ez=ne($r()),Iz=ne(gW());var ee={};ht(ee,{LogLevel:()=>Qw,Style:()=>UP,Type:()=>Oe,addLogFilterSupport:()=>CC,applyColor:()=>Qn,applyHyperlink:()=>Tf,applyStyle:()=>Bw,json:()=>Oc,jsonOrPretty:()=>GQe,mark:()=>jP,pretty:()=>Ve,prettyField:()=>Ho,prettyList:()=>YP,supportsColor:()=>ww,supportsHyperlinks:()=>GP,tuple:()=>to});var dC=ne(cP()),pC=ne(yc()),c3=ne(Xe()),u3=ne(wn()),g3=ne($8());var Ee={};ht(Ee,{AsyncActions:()=>PP,BufferStream:()=>xP,CachingStrategy:()=>A3,DefaultStream:()=>DP,allSettledSafe:()=>eo,assertNever:()=>FP,bufferStream:()=>Ff,buildIgnorePattern:()=>MQe,convertMapsToIndexableObjects:()=>Iw,dynamicRequire:()=>Nf,escapeRegExp:()=>RQe,getArrayWithDefault:()=>Df,getFactoryWithDefault:()=>Ta,getMapWithDefault:()=>kf,getSetWithDefault:()=>Tc,isIndexableObject:()=>vP,isPathLike:()=>KQe,isTaggedYarnVersion:()=>kQe,mapAndFilter:()=>Uo,mapAndFind:()=>fC,overrideType:()=>FQe,parseBoolean:()=>hC,parseOptionalBoolean:()=>l3,prettifyAsyncErrors:()=>Rf,prettifySyncErrors:()=>NP,releaseAfterUseAsync:()=>LQe,replaceEnvVariables:()=>LP,sortMap:()=>Bn,tryParseOptionalBoolean:()=>TP,validateEnum:()=>NQe});var kP=ne(Xe()),t3=ne(wn()),r3=ne(lf()),i3=ne($r()),RP=J(\"stream\");function kQe(r){return!!(i3.default.valid(r)&&r.match(/^[^-]+(-rc\\.[0-9]+)?$/))}function RQe(r){return r.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function FQe(r){}function FP(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function NQe(r,e){let t=Object.values(r);if(!t.includes(e))throw new kP.UsageError(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(\", \")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==n3&&t.push(n)}return t}var n3=Symbol();Uo.skip=n3;function fC(r,e){for(let t of r){let i=e(t);if(i!==s3)return i}}var s3=Symbol();fC.skip=s3;function vP(r){return typeof r==\"object\"&&r!==null}async function eo(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status===\"rejected\")throw i.reason;t.push(i.value)}return t}function Iw(r){if(r instanceof Map&&(r=Object.fromEntries(r)),vP(r))for(let e of Object.keys(r)){let t=r[e];vP(t)&&(r[e]=Iw(t))}return r}function Ta(r,e,t){let i=r.get(e);return typeof i>\"u\"&&r.set(e,i=t()),i}function Df(r,e){let t=r.get(e);return typeof t>\"u\"&&r.set(e,t=[]),t}function Tc(r,e){let t=r.get(e);return typeof t>\"u\"&&r.set(e,t=new Set),t}function kf(r,e){let t=r.get(e);return typeof t>\"u\"&&r.set(e,t=new Map),t}async function LQe(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function Rf(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function NP(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Ff(r){return await new Promise((e,t)=>{let i=[];r.on(\"error\",n=>{t(n)}),r.on(\"data\",n=>{i.push(n)}),r.on(\"end\",()=>{e(Buffer.concat(i))})})}var xP=class extends RP.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!==\"buffer\"||!Buffer.isBuffer(t))throw new Error(\"Assertion failed: BufferStream only accept buffers\");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function TQe(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var PP=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,r3.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>\"u\"&&this.deferred.set(e,i=TQe());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},DP=class extends RP.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!==\"buffer\"||!Buffer.isBuffer(t))throw new Error(\"Assertion failed: DefaultStream only accept buffers\");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},gC=eval(\"require\");function o3(r){return gC(K.fromPortablePath(r))}function a3(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=gC.cache[physicalPath];delete gC.cache[physicalPath];let result;try{result=o3(physicalPath);let freshCacheEntry=gC.cache[physicalPath],dynamicModule=eval(\"module\"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{gC.cache[physicalPath]=currentCacheEntry}return result}var e3=new Map;function OQe(r){let e=e3.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=a3(r);return e3.set(r,{mtime:t.mtimeMs,instance:i}),i}var A3=(i=>(i[i.NoCache=0]=\"NoCache\",i[i.FsTime=1]=\"FsTime\",i[i.Node=2]=\"Node\",i))(A3||{});function Nf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return a3(r);case 1:return OQe(r);case 2:return o3(r);default:throw new Error(\"Unsupported caching strategy\")}}function Bn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function MQe(r){return r.length===0?null:r.map(e=>`(${t3.default.makeRe(e,{windows:!1,dot:!0}).source})`).join(\"|\")}function LP(r,{env:e}){let t=/\\${(?<variableName>[\\d\\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new kP.UsageError(`Environment variable not found (${n})`)})}function hC(r){switch(r){case\"true\":case\"1\":case 1:case!0:return!0;case\"false\":case\"0\":case 0:case!1:return!1;default:throw new Error(`Couldn't parse \"${r}\" as a boolean`)}}function l3(r){return typeof r>\"u\"?r:hC(r)}function TP(r){try{return l3(r)}catch{return null}}function KQe(r){return!!(K.isAbsolute(r)||r.match(/^(\\.{1,2}|~)\\//))}var Lf=(t=>(t.HARD=\"HARD\",t.SOFT=\"SOFT\",t))(Lf||{}),OP=(i=>(i.Dependency=\"Dependency\",i.PeerDependency=\"PeerDependency\",i.PeerDependencyMeta=\"PeerDependencyMeta\",i))(OP||{}),MP=(i=>(i.Inactive=\"inactive\",i.Redundant=\"redundant\",i.Active=\"active\",i))(MP||{});var Oe={NO_HINT:\"NO_HINT\",NULL:\"NULL\",SCOPE:\"SCOPE\",NAME:\"NAME\",RANGE:\"RANGE\",REFERENCE:\"REFERENCE\",NUMBER:\"NUMBER\",PATH:\"PATH\",URL:\"URL\",ADDED:\"ADDED\",REMOVED:\"REMOVED\",CODE:\"CODE\",DURATION:\"DURATION\",SIZE:\"SIZE\",IDENT:\"IDENT\",DESCRIPTOR:\"DESCRIPTOR\",LOCATOR:\"LOCATOR\",RESOLUTION:\"RESOLUTION\",DEPENDENT:\"DEPENDENT\",PACKAGE_EXTENSION:\"PACKAGE_EXTENSION\",SETTING:\"SETTING\",MARKDOWN:\"MARKDOWN\"},UP=(e=>(e[e.BOLD=2]=\"BOLD\",e))(UP||{}),HP=pC.default.GITHUB_ACTIONS?{level:2}:dC.default.supportsColor?{level:dC.default.supportsColor.level}:{level:0},ww=HP.level!==0,GP=ww&&!pC.default.GITHUB_ACTIONS&&!pC.default.CIRCLE&&!pC.default.GITLAB,KP=new dC.default.Instance(HP),UQe=new Map([[Oe.NO_HINT,null],[Oe.NULL,[\"#a853b5\",129]],[Oe.SCOPE,[\"#d75f00\",166]],[Oe.NAME,[\"#d7875f\",173]],[Oe.RANGE,[\"#00afaf\",37]],[Oe.REFERENCE,[\"#87afff\",111]],[Oe.NUMBER,[\"#ffd700\",220]],[Oe.PATH,[\"#d75fd7\",170]],[Oe.URL,[\"#d75fd7\",170]],[Oe.ADDED,[\"#5faf00\",70]],[Oe.REMOVED,[\"#d70000\",160]],[Oe.CODE,[\"#87afff\",111]],[Oe.SIZE,[\"#ffd700\",220]]]),hs=r=>r,yw={[Oe.NUMBER]:hs({pretty:(r,e)=>Qn(r,`${e}`,Oe.NUMBER),json:r=>r}),[Oe.IDENT]:hs({pretty:(r,e)=>ui(r,e),json:r=>Ot(r)}),[Oe.LOCATOR]:hs({pretty:(r,e)=>mt(r,e),json:r=>ps(r)}),[Oe.DESCRIPTOR]:hs({pretty:(r,e)=>tr(r,e),json:r=>bn(r)}),[Oe.RESOLUTION]:hs({pretty:(r,{descriptor:e,locator:t})=>qP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:bn(r),locator:e!==null?ps(e):null})}),[Oe.DEPENDENT]:hs({pretty:(r,{locator:e,descriptor:t})=>JP(r,e,t),json:({locator:r,descriptor:e})=>({locator:ps(r),descriptor:bn(e)})}),[Oe.PACKAGE_EXTENSION]:hs({pretty:(r,e)=>{switch(e.type){case\"Dependency\":return`${ui(r,e.parentDescriptor)} \\u27A4 ${Qn(r,\"dependencies\",Oe.CODE)} \\u27A4 ${ui(r,e.descriptor)}`;case\"PeerDependency\":return`${ui(r,e.parentDescriptor)} \\u27A4 ${Qn(r,\"peerDependencies\",Oe.CODE)} \\u27A4 ${ui(r,e.descriptor)}`;case\"PeerDependencyMeta\":return`${ui(r,e.parentDescriptor)} \\u27A4 ${Qn(r,\"peerDependenciesMeta\",Oe.CODE)} \\u27A4 ${ui(r,Zi(e.selector))} \\u27A4 ${Qn(r,e.key,Oe.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case\"Dependency\":return`${Ot(r.parentDescriptor)} > ${Ot(r.descriptor)}`;case\"PeerDependency\":return`${Ot(r.parentDescriptor)} >> ${Ot(r.descriptor)}`;case\"PeerDependencyMeta\":return`${Ot(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Oe.SETTING]:hs({pretty:(r,e)=>(r.get(e),Tf(r,Qn(r,e,Oe.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Oe.DURATION]:hs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Oe.SIZE]:hs({pretty:(r,e)=>{let t=[\"KB\",\"MB\",\"GB\",\"TB\"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Qn(r,`${s} ${t[i-1]}`,Oe.NUMBER)},json:r=>r}),[Oe.PATH]:hs({pretty:(r,e)=>Qn(r,K.fromPortablePath(e),Oe.PATH),json:r=>K.fromPortablePath(r)}),[Oe.MARKDOWN]:hs({pretty:(r,{text:e,format:t,paragraphs:i})=>(0,c3.formatMarkdownish)(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function to(r,e){return[e,r]}function Bw(r,e,t){return r.get(\"enableColors\")&&t&2&&(e=dC.default.bold(e)),e}function Qn(r,e,t){if(!r.get(\"enableColors\"))return e;let i=UQe.get(t);if(i===null)return e;let n=typeof i>\"u\"?t:HP.level>=3?i[0]:i[1],s=typeof n==\"number\"?KP.ansi256(n):n.startsWith(\"#\")?KP.hex(n):KP[n];if(typeof s!=\"function\")throw new Error(`Invalid format type ${n}`);return s(e)}var HQe=!!process.env.KONSOLE_VERSION;function Tf(r,e,t){return r.get(\"enableHyperlinks\")?HQe?`\\x1B]8;;${t}\\x1B\\\\${e}\\x1B]8;;\\x1B\\\\`:`\\x1B]8;;${t}\\x07${e}\\x1B]8;;\\x07`:e}function Ve(r,e,t){if(e===null)return Qn(r,\"null\",Oe.NULL);if(Object.prototype.hasOwnProperty.call(yw,t))return yw[t].pretty(r,e);if(typeof e!=\"string\")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Qn(r,e,t)}function YP(r,e,t,{separator:i=\", \"}={}){return[...e].map(n=>Ve(r,n,t)).join(i)}function Oc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(yw,e))return yw[e].json(r);if(typeof r!=\"string\")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function GQe(r,e,[t,i]){return r?Oc(t,i):Ve(e,t,i)}function jP(r){return{Check:Qn(r,\"\\u2713\",\"green\"),Cross:Qn(r,\"\\u2718\",\"red\"),Question:Qn(r,\"?\",\"cyan\")}}function Ho(r,{label:e,value:[t,i]}){return`${Ve(r,e,Oe.CODE)}: ${Ve(r,t,i)}`}var Qw=(n=>(n.Error=\"error\",n.Warning=\"warning\",n.Info=\"info\",n.Discard=\"discard\",n))(Qw||{});function CC(r,{configuration:e}){let t=e.get(\"logFilters\"),i=new Map,n=new Map,s=[];for(let g of t){let f=g.get(\"level\");if(typeof f>\"u\")continue;let h=g.get(\"code\");typeof h<\"u\"&&i.set(h,f);let p=g.get(\"text\");typeof p<\"u\"&&n.set(p,f);let C=g.get(\"pattern\");typeof C<\"u\"&&s.push([u3.default.matcher(C,{contains:!0}),f])}s.reverse();let o=(g,f,h)=>{if(g===null||g===0)return h;let p=n.size>0||s.length>0?(0,g3.default)(f):f;if(n.size>0){let C=n.get(p);if(typeof C<\"u\")return C!=null?C:h}if(s.length>0){for(let[C,w]of s)if(C(p))return w!=null?w:h}if(i.size>0){let C=i.get(MA(g));if(typeof C<\"u\")return C!=null?C:h}return h},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,f,h,p){switch(o(f,h,p)){case\"info\":a.call(g,f,h);break;case\"warning\":l.call(g,f!=null?f:0,h);break;case\"error\":c.call(g,f!=null?f:0,h);break}};r.reportInfo=function(...g){return u(this,...g,\"info\")},r.reportWarning=function(...g){return u(this,...g,\"warning\")},r.reportError=function(...g){return u(this,...g,\"error\")}}var gi={};ht(gi,{checksumFile:()=>Zw,checksumPattern:()=>$w,makeHash:()=>$i});var _w=J(\"crypto\"),vk=ne(Sk());function $i(...r){let e=(0,_w.createHash)(\"sha512\"),t=\"\";for(let i of r)typeof i==\"string\"?t+=i:i&&(t&&(e.update(t),t=\"\"),e.update(i));return t&&e.update(t),e.digest(\"hex\")}async function Zw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:\"sha512\"}){let i=await e.openPromise(r,\"r\");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,_w.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest(\"hex\")}finally{await e.closePromise(i)}}async function $w(r,{cwd:e}){let i=(await(0,vk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,vk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join(\"\\0\")})),o=(0,_w.createHash)(\"sha512\");for(let a of s)o.update(a);return o.digest(\"hex\")}var yC=\"virtual:\",nxe=5,yz=/(os|cpu|libc)=([a-z0-9_-]+)/,sxe=(0,Iz.makeParser)(yz);function qo(r,e){if(r!=null&&r.startsWith(\"@\"))throw new Error(\"Invalid scope: don't prefix it with '@'\");return{identHash:$i(r,e),scope:r,name:e}}function Zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:$i(r.identHash,e),range:e}}function en(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:$i(r.identHash,e),reference:e}}function oxe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function eB(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Pk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function axe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function wC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function BC(r){return wC(r,r)}function Dk(r,e){if(e.includes(\"#\"))throw new Error(\"Invalid entropy\");return Zt(r,`virtual:${e}#${r.range}`)}function kk(r,e){if(e.includes(\"#\"))throw new Error(\"Invalid entropy\");return wC(r,en(r,`virtual:${e}#${r.reference}`))}function _A(r){return r.range.startsWith(yC)}function jo(r){return r.reference.startsWith(yC)}function QC(r){if(!_A(r))throw new Error(\"Not a virtual descriptor\");return Zt(r,r.range.replace(/^[^#]*#/,\"\"))}function bC(r){if(!jo(r))throw new Error(\"Not a virtual descriptor\");return en(r,r.reference.replace(/^[^#]*#/,\"\"))}function Axe(r,e){return r.range.includes(\"::\")?r:Zt(r,`${r.range}::${Gf.default.stringify(e)}`)}function lxe(r,e){return r.reference.includes(\"::\")?r:en(r,`${r.reference}::${Gf.default.stringify(e)}`)}function SC(r,e){return r.identHash===e.identHash}function wz(r,e){return r.descriptorHash===e.descriptorHash}function vC(r,e){return r.locatorHash===e.locatorHash}function cxe(r,e){if(!jo(r))throw new Error(\"Invalid package type\");if(!jo(e))throw new Error(\"Invalid package type\");if(!SC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!wz(t,i))return!1}return!0}function Zi(r){let e=Bz(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function Bz(r){let e=r.match(/^(?:@([^/]+?)\\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<\"u\"?t:null,i)}function ZA(r,e=!1){let t=xC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function xC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s===\"unknown\")throw new Error(`Invalid range (${r})`);let o=typeof i<\"u\"?i:null,a=typeof s<\"u\"?s:\"unknown\";return Zt(qo(o,n),a)}function jc(r,e=!1){let t=tB(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function tB(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s===\"unknown\")throw new Error(`Invalid reference (${r})`);let o=typeof i<\"u\"?i:null,a=typeof s<\"u\"?s:\"unknown\";return en(qo(o,n),a)}function Yf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<\"u\"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)==\"string\"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<\"u\"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<\"u\"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Gf.default.parse(s):s,a=typeof t[4]<\"u\"?Gf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function uxe(r,{protocol:e}){let{selector:t,params:i}=Yf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!=\"string\")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:jc(i.locator,!0),path:t}}function mz(r){return r=r.replace(/%/g,\"%25\"),r=r.replace(/:/g,\"%3A\"),r=r.replace(/#/g,\"%23\"),r}function gxe(r){return r===null?!1:Object.entries(r).length>0}function rB({protocol:r,source:e,selector:t,params:i}){let n=\"\";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${mz(e)}#`),n+=mz(t),gxe(i)&&(n+=`::${Gf.default.stringify(i)}`),n}function fxe(r){let{params:e,protocol:t,source:i,selector:n}=Yf(r);for(let s in e)s.startsWith(\"__\")&&delete e[s];return rB({protocol:t,source:i,params:e,selector:n})}function Ot(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function bn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ps(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function xk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function jf(r){let{protocol:e,selector:t}=Yf(r.reference),i=e!==null?e.replace(/:$/,\"\"):\"exotic\",n=Ez.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${xk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${xk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Gr(a)}function ui(r,e){return e.scope?`${Ve(r,`@${e.scope}/`,Oe.SCOPE)}${Ve(r,e.name,Oe.NAME)}`:`${Ve(r,e.name,Oe.NAME)}`}function iB(r){if(r.startsWith(yC)){let e=iB(r.substring(r.indexOf(\"#\")+1)),t=r.substring(yC.length,yC.length+nxe);return`${e} [${t}]`}else return r.replace(/\\?.*/,\"?[...]\")}function nB(r,e){return`${Ve(r,iB(e),Oe.RANGE)}`}function tr(r,e){return`${ui(r,e)}${Ve(r,\"@\",Oe.RANGE)}${nB(r,e.range)}`}function PC(r,e){return`${Ve(r,iB(e),Oe.REFERENCE)}`}function mt(r,e){return`${ui(r,e)}${Ve(r,\"@\",Oe.REFERENCE)}${PC(r,e.reference)}`}function Rk(r){return`${Ot(r)}@${iB(r.reference)}`}function qf(r){return Bn(r,[e=>Ot(e),e=>e.range])}function DC(r,e){return ui(r,e.locator)}function qP(r,e,t){let i=_A(e)?QC(e):e;return t===null?`${tr(r,i)} \\u2192 ${jP(r).Cross}`:i.identHash===t.identHash?`${tr(r,i)} \\u2192 ${PC(r,t.reference)}`:`${tr(r,i)} \\u2192 ${mt(r,t)}`}function JP(r,e,t){return t===null?`${mt(r,e)}`:`${mt(r,e)} (via ${nB(r,t.range)})`}function Fk(r){return`node_modules/${Ot(r)}`}function sB(r,e){return r.conditions?sxe(r.conditions,t=>{let[,i,n]=t.match(yz),s=e[i];return s?s.includes(n):!0}):!0}var Qz={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Ot(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Ot(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(Zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=DC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error(\"Resolutions field will be ignored\"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var kz=ne($r());var kC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(kC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(kC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(kC.protocol.length));return{...e,version:i.manifest.version||\"0.0.0\",languageName:\"unknown\",linkType:\"SOFT\",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Jr=kC;Jr.protocol=\"workspace:\";var vt={};ht(vt,{SemVer:()=>vz.SemVer,clean:()=>pxe,satisfiesWithPrereleases:()=>qc,validRange:()=>ro});var oB=ne($r()),vz=ne($r()),bz=new Map;function qc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=bz.get(i);if(typeof n>\"u\")try{n=new oB.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{bz.set(i,n||null)}else if(n===null)return!1;let s;try{s=new oB.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var Sz=new Map;function ro(r){if(r.indexOf(\":\")!==-1)return null;let e=Sz.get(r);if(typeof e<\"u\")return e;try{e=new oB.default.Range(r)}catch{e=null}return Sz.set(r,e),e}var hxe=/^(?:[\\sv=]*?)((0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\s*)$/;function pxe(r){let e=hxe.exec(r);return e?e[1]:null}var $A=class{constructor(){this.indent=\"  \";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new $t}={}){let i=x.join(e,\"package.json\");try{return await $A.fromFile(i,{baseFs:t})}catch(n){if(n.code===\"ENOENT\")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await $A.tryFind(e,{baseFs:t});if(i===null)throw new Error(\"Manifest not found\");return i}static async fromFile(e,{baseFs:t=new $t}={}){let i=new $A;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new $A;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]===\"!\"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(Pz(e)||\"{}\")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=xz(e)}async loadFile(e,{baseFs:t=new $t}){let i=await t.readFilePromise(e,\"utf8\"),n;try{n=JSON.parse(Pz(i)||\"{}\")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=xz(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!=\"object\"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name==\"string\")try{this.name=Zi(e.name)}catch{i.push(new Error(\"Parsing failed for the 'name' field\"))}if(typeof e.version==\"string\"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!=\"string\"?i.push(new Error(\"Parsing failed for the 'os' field\")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!=\"string\"?i.push(new Error(\"Parsing failed for the 'cpu' field\")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!=\"string\"?i.push(new Error(\"Parsing failed for the 'libc' field\")):s.push(o)}else this.libc=null;if(typeof e.type==\"string\"?this.type=e.type:this.type=null,typeof e.packageManager==\"string\"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private==\"boolean\"?this.private=e.private:this.private=!1,typeof e.license==\"string\"?this.license=e.license:this.license=null,typeof e.languageName==\"string\"?this.languageName=e.languageName:this.languageName=null,typeof e.main==\"string\"?this.main=tn(e.main):this.main=null,typeof e.module==\"string\"?this.module=tn(e.module):this.module=null,e.browser!=null)if(typeof e.browser==\"string\")this.browser=tn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(tn(s),typeof o==\"string\"?tn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin==\"string\")this.name!==null?this.bin.set(this.name.name,tn(e.bin)):i.push(new Error(\"String bin field, but no attached package name\"));else if(typeof e.bin==\"object\"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!=\"string\"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=Zi(s);this.bin.set(a.name,tn(o))}if(this.scripts=new Map,typeof e.scripts==\"object\"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!=\"string\"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies==\"object\"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!=\"string\"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=Zi(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=Zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies==\"object\"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!=\"string\"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=Zi(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=Zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies==\"object\"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=Zi(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!=\"string\"||!o.startsWith(Jr.protocol)&&!ro(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o=\"*\");let l=Zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces==\"object\"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error(\"'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead\"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces==\"object\"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!=\"string\"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta==\"object\"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!=\"object\"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=ZA(s),l=this.ensureDependencyMeta(a),c=aB(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=aB(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=aB(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta==\"object\"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!=\"object\"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=ZA(s),l=this.ensurePeerDependencyMeta(a),c=aB(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions==\"object\"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!=\"string\"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:UI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!=\"string\"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig==\"object\"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access==\"string\"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main==\"string\"&&(this.publishConfig.main=tn(e.publishConfig.main)),typeof e.publishConfig.module==\"string\"&&(this.publishConfig.module=tn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser==\"string\")this.publishConfig.browser=tn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(tn(s),typeof o==\"string\"?tn(o):o)}if(typeof e.publishConfig.registry==\"string\"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin==\"string\")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,tn(e.publishConfig.bin)]]):i.push(new Error(\"String bin field, but no attached package name\"));else if(typeof e.publishConfig.bin==\"object\"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!=\"string\"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,tn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!=\"string\"){i.push(new Error(\"Invalid executable file definition\"));continue}this.publishConfig.executableFiles.add(tn(s))}}}else this.publishConfig=null;if(typeof e.installConfig==\"object\"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s===\"hoistingLimits\"?typeof e.installConfig.hoistingLimits==\"string\"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error(\"Invalid hoisting limits definition\")):s==\"selfReferences\"?typeof e.installConfig.selfReferences==\"boolean\"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error(\"Invalid selfReferences definition, must be a boolean value\")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies==\"object\"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!=\"string\"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=Zi(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=Zt(a,o);this.dependencies.set(l.identHash,l);let c=Zt(a,\"unknown\"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged==\"boolean\"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case\"dependencies\":return this.dependencies;case\"devDependencies\":return this.devDependencies;case\"peerDependencies\":return this.peerDependencies;default:throw new Error(`Unsupported value (\"${e}\")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Nk(\"os\",this.os)),this.cpu&&this.cpu.length>0&&e.push(Nk(\"cpu\",this.cpu)),this.libc&&this.libc.length>0&&e.push(Nk(\"libc\",this.libc)),e.length>0?e.join(\" & \"):null}isCompatibleWithOS(e){return $A.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return $A.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!==\"unknown\"&&!kz.default.valid(e.range))throw new Error(`Invalid meta field range for '${bn(e)}'`);let t=Ot(e),i=e.range!==\"unknown\"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!==\"unknown\")throw new Error(`Invalid meta field range for '${bn(e)}'`);let t=Ot(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Ot(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o==\"string\"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Ot(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...qf(i).map(o=>({[Ot(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...qf(n).map(o=>({[Ot(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...qf(this.devDependencies.values()).map(o=>({[Ot(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...qf(this.peerDependencies.values()).map(o=>({[Ot(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of Bn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of Bn(a.entries(),([u,g])=>u!==null?`0${u}`:\"1\")){let u=l!==null?bn(Zt(Zi(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Bn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[HI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},nt=$A;nt.fileName=\"package.json\",nt.allDependencies=[\"dependencies\",\"devDependencies\",\"peerDependencies\"],nt.hardDependencies=[\"dependencies\",\"devDependencies\"];function xz(r){let e=r.match(/^[ \\t]+/m);return e?e[0]:\"  \"}function Pz(r){return r.charCodeAt(0)===65279?r.slice(1):r}function tn(r){return r.replace(/\\\\/g,\"/\")}function aB(r,{yamlCompatibilityMode:e}){return e?TP(r):typeof r>\"u\"||typeof r==\"boolean\"?r:null}function Dz(r,e){let t=e.search(/[^!]/);if(t===-1)return\"invalid\";let i=t%2===0?\"\":\"!\",n=e.slice(t);return`${i}${r}=${n}`}function Nk(r,e){return e.length===1?Dz(r,e[0]):`(${e.map(t=>Dz(r,t)).join(\" | \")})`}var A5=ne(a5()),l5=J(\"stream\"),c5=J(\"string_decoder\");var APe=15,ot=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function lPe(r){return typeof r.reportCode<\"u\"}var xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t<e;)await n,yield{progress:t/e}}();return{[Symbol.asyncIterator](){return a},hasProgress:!0,hasTitle:!1,set:s,tick:o}}static progressViaTitle(){let e,t,i=new Promise(o=>{t=o}),n=(0,A5.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/APe),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){lPe(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new l5.PassThrough,i=new c5.StringDecoder,n=\"\";return t.on(\"data\",s=>{let o=i.write(s),a;do if(a=o.indexOf(`\n`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n=\"\",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on(\"end\",()=>{let s=i.end();s!==\"\"&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var Jf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new ot(11,`${mt(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Wf=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${tr(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${mt(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var u5=ne($r());var zf=/^(?!v)[a-z0-9._-]+$/i,AB=class{supportsDescriptor(e,t){return!!(ro(e.range)||zf.test(e.range))}supportsLocator(e,t){return!!(u5.default.valid(e.reference)||zf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return wC(i,e)}forwardDescriptor(e,t){return Zt(e,`${t.project.configuration.get(\"defaultProtocol\")}${e.range}`)}forwardLocator(e,t){return en(e,`${t.project.configuration.get(\"defaultProtocol\")}${e.reference}`)}};var Vf=class{supports(e){return!!e.reference.startsWith(\"virtual:\")}getLocalPath(e,t){let i=e.reference.indexOf(\"#\");if(i===-1)throw new Error(\"Invalid virtual package reference\");let n=e.reference.slice(i+1),s=en(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf(\"#\");if(i===-1)throw new Error(\"Invalid virtual package reference\");let n=e.reference.slice(i+1),s=en(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return jf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get(\"virtualFolder\"),o=this.getLocatorFilename(e),a=Nr.makeVirtualPath(s,o,n),l=new Qo(a,{baseFs:t.packageFs,pathUtils:x});return{...t,packageFs:l}}};var Xf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Xf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Xf.protocol)}supportsDescriptor(e,t){return Xf.isVirtualDescriptor(e)}supportsLocator(e,t){return Xf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling \"bindDescriptor\" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling \"getResolutionDependencies\" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling \"getCandidates\" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling \"getSatisfying\" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling \"resolve\" on a virtual locator is unsupported')}},NC=Xf;NC.protocol=\"virtual:\";var _f=class{supports(e){return!!e.reference.startsWith(Jr.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new jt(i),prefixPath:ke.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Jr.protocol.length))}};var lB={};ht(lB,{getDefaultGlobalFolder:()=>Mk,getHomeFolder:()=>LC,isFolderInside:()=>Kk});var Ok=J(\"os\");function Mk(){if(process.platform===\"win32\"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Ok.homedir)(),\"AppData\",\"Local\"));return x.resolve(r,\"Yarn/Berry\")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return x.resolve(r,\"yarn/berry\")}return x.resolve(LC(),\".yarn/berry\")}function LC(){return K.toPortablePath((0,Ok.homedir)()||\"/usr/local/share\")}function Kk(r,e){let t=x.relative(e,r);return t&&!t.startsWith(\"..\")&&!x.isAbsolute(t)}var io={};ht(io,{builtinModules:()=>Uk,getArchitecture:()=>TC,getArchitectureName:()=>gPe,getArchitectureSet:()=>Hk,openUrl:()=>cPe});var f5=ne(J(\"module\"));var g5=new Map([[\"darwin\",\"open\"],[\"linux\",\"xdg-open\"],[\"win32\",\"explorer.exe\"]]).get(process.platform),cPe=typeof g5<\"u\"?async r=>{try{return await Gk(g5,[r],{cwd:x.cwd()}),!0}catch{return!1}}:void 0;function Uk(){return new Set(f5.default.builtinModules||Object.keys(process.binding(\"natives\")))}function uPe(){var i,n,s,o;if(process.platform===\"win32\")return null;let e=(s=((n=(i=process.report)==null?void 0:i.getReport())!=null?n:{}).sharedObjects)!=null?s:[],t=/\\/(?:(ld-linux-|[^/]+-linux-gnu\\/)|(libc.musl-|ld-musl-))/;return(o=fC(e,a=>{let l=a.match(t);if(!l)return fC.skip;if(l[1])return\"glibc\";if(l[2])return\"musl\";throw new Error(\"Assertion failed: Expected the libc variant to have been detected\")}))!=null?o:null}var cB,uB;function TC(){return cB=cB!=null?cB:{os:process.platform,cpu:process.arch,libc:uPe()}}function gPe(r=TC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function Hk(){let r=TC();return uB=uB!=null?uB:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}var fPe=new Set([\"isTestEnv\",\"injectNpmUser\",\"injectNpmPassword\",\"injectNpm2FaToken\",\"binFolder\",\"version\",\"flags\",\"profile\",\"gpg\",\"ignoreNode\",\"wrapOutput\",\"home\",\"confDir\"]),pB=\"yarn_\",Jk=\".yarnrc.yml\",Wk=\"yarn.lock\",hPe=\"********\",zk=(u=>(u.ANY=\"ANY\",u.BOOLEAN=\"BOOLEAN\",u.ABSOLUTE_PATH=\"ABSOLUTE_PATH\",u.LOCATOR=\"LOCATOR\",u.LOCATOR_LOOSE=\"LOCATOR_LOOSE\",u.NUMBER=\"NUMBER\",u.STRING=\"STRING\",u.SECRET=\"SECRET\",u.SHAPE=\"SHAPE\",u.MAP=\"MAP\",u))(zk||{}),Pi=Oe,Yk={lastUpdateCheck:{description:\"Last timestamp we checked whether new Yarn versions were available\",type:\"STRING\",default:null},yarnPath:{description:\"Path to the local executable that must be used over the global one\",type:\"ABSOLUTE_PATH\",default:null},ignorePath:{description:\"If true, the local executable will be ignored when using the global one\",type:\"BOOLEAN\",default:!1},ignoreCwd:{description:\"If true, the `--cwd` flag will be ignored\",type:\"BOOLEAN\",default:!1},cacheKeyOverride:{description:\"A global cache key override; used only for test purposes\",type:\"STRING\",default:null},globalFolder:{description:\"Folder where all system-global files are stored\",type:\"ABSOLUTE_PATH\",default:Mk()},cacheFolder:{description:\"Folder where the cache files must be written\",type:\"ABSOLUTE_PATH\",default:\"./.yarn/cache\"},compressionLevel:{description:\"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)\",type:\"NUMBER\",values:[\"mixed\",0,1,2,3,4,5,6,7,8,9],default:lc},virtualFolder:{description:\"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)\",type:\"ABSOLUTE_PATH\",default:\"./.yarn/__virtual__\"},lockfileFilename:{description:\"Name of the files where the Yarn dependency tree entries must be stored\",type:\"STRING\",default:Wk},installStatePath:{description:\"Path of the file where the install state will be persisted\",type:\"ABSOLUTE_PATH\",default:\"./.yarn/install-state.gz\"},immutablePatterns:{description:\"Array of glob patterns; files matching them won't be allowed to change during immutable installs\",type:\"STRING\",default:[],isArray:!0},rcFilename:{description:\"Name of the files where the configuration can be found\",type:\"STRING\",default:hB()},enableGlobalCache:{description:\"If true, the system-wide cache folder will be used regardless of `cache-folder`\",type:\"BOOLEAN\",default:!1},enableColors:{description:\"If true, the CLI is allowed to use colors in its output\",type:\"BOOLEAN\",default:ww,defaultText:\"<dynamic>\"},enableHyperlinks:{description:\"If true, the CLI is allowed to use hyperlinks in its output\",type:\"BOOLEAN\",default:GP,defaultText:\"<dynamic>\"},enableInlineBuilds:{description:\"If true, the CLI will print the build output on the command line\",type:\"BOOLEAN\",default:gB.isCI,defaultText:\"<dynamic>\"},enableMessageNames:{description:\"If true, the CLI will prefix most messages with codes suitable for search engines\",type:\"BOOLEAN\",default:!0},enableProgressBars:{description:\"If true, the CLI is allowed to show a progress bar for long-running events\",type:\"BOOLEAN\",default:!gB.isCI,defaultText:\"<dynamic>\"},enableTimers:{description:\"If true, the CLI is allowed to print the time spent executing commands\",type:\"BOOLEAN\",default:!0},preferAggregateCacheInfo:{description:\"If true, the CLI will only print a one-line report of any cache changes\",type:\"BOOLEAN\",default:gB.isCI},preferInteractive:{description:\"If true, the CLI will automatically use the interactive mode when called from a TTY\",type:\"BOOLEAN\",default:!1},preferTruncatedLines:{description:\"If true, the CLI will truncate lines that would go beyond the size of the terminal\",type:\"BOOLEAN\",default:!1},progressBarStyle:{description:\"Which style of progress bar should be used (only when progress bars are enabled)\",type:\"STRING\",default:void 0,defaultText:\"<dynamic>\"},defaultLanguageName:{description:\"Default language mode that should be used when a package doesn't offer any insight\",type:\"STRING\",default:\"node\"},defaultProtocol:{description:\"Default resolution protocol used when resolving pure semver and tag ranges\",type:\"STRING\",default:\"npm:\"},enableTransparentWorkspaces:{description:\"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol\",type:\"BOOLEAN\",default:!0},supportedArchitectures:{description:\"Architectures that Yarn will fetch and inject into the resolver\",type:\"SHAPE\",properties:{os:{description:\"Array of supported process.platform strings, or null to target them all\",type:\"STRING\",isArray:!0,isNullable:!0,default:[\"current\"]},cpu:{description:\"Array of supported process.arch strings, or null to target them all\",type:\"STRING\",isArray:!0,isNullable:!0,default:[\"current\"]},libc:{description:\"Array of supported libc libraries, or null to target them all\",type:\"STRING\",isArray:!0,isNullable:!0,default:[\"current\"]}}},enableMirror:{description:\"If true, the downloaded packages will be retrieved and stored in both the local and global folders\",type:\"BOOLEAN\",default:!0},enableNetwork:{description:\"If false, the package manager will refuse to use the network if required to\",type:\"BOOLEAN\",default:!0},httpProxy:{description:\"URL of the http proxy that must be used for outgoing http requests\",type:\"STRING\",default:null},httpsProxy:{description:\"URL of the http proxy that must be used for outgoing https requests\",type:\"STRING\",default:null},unsafeHttpWhitelist:{description:\"List of the hostnames for which http queries are allowed (glob patterns are supported)\",type:\"STRING\",default:[],isArray:!0},httpTimeout:{description:\"Timeout of each http request in milliseconds\",type:\"NUMBER\",default:6e4},httpRetry:{description:\"Retry times on http failure\",type:\"NUMBER\",default:3},networkConcurrency:{description:\"Maximal number of concurrent requests\",type:\"NUMBER\",default:50},networkSettings:{description:\"Network settings per hostname (glob patterns are supported)\",type:\"MAP\",valueDefinition:{description:\"\",type:\"SHAPE\",properties:{caFilePath:{description:\"Path to file containing one or multiple Certificate Authority signing certificates\",type:\"ABSOLUTE_PATH\",default:null},enableNetwork:{description:\"If false, the package manager will refuse to use the network if required to\",type:\"BOOLEAN\",default:null},httpProxy:{description:\"URL of the http proxy that must be used for outgoing http requests\",type:\"STRING\",default:null},httpsProxy:{description:\"URL of the http proxy that must be used for outgoing https requests\",type:\"STRING\",default:null},httpsKeyFilePath:{description:\"Path to file containing private key in PEM format\",type:\"ABSOLUTE_PATH\",default:null},httpsCertFilePath:{description:\"Path to file containing certificate chain in PEM format\",type:\"ABSOLUTE_PATH\",default:null}}}},caFilePath:{description:\"A path to a file containing one or multiple Certificate Authority signing certificates\",type:\"ABSOLUTE_PATH\",default:null},httpsKeyFilePath:{description:\"Path to file containing private key in PEM format\",type:\"ABSOLUTE_PATH\",default:null},httpsCertFilePath:{description:\"Path to file containing certificate chain in PEM format\",type:\"ABSOLUTE_PATH\",default:null},enableStrictSsl:{description:\"If false, SSL certificate errors will be ignored\",type:\"BOOLEAN\",default:!0},logFilters:{description:\"Overrides for log levels\",type:\"SHAPE\",isArray:!0,concatenateValues:!0,properties:{code:{description:\"Code of the messages covered by this override\",type:\"STRING\",default:void 0},text:{description:\"Code of the texts covered by this override\",type:\"STRING\",default:void 0},pattern:{description:\"Code of the patterns covered by this override\",type:\"STRING\",default:void 0},level:{description:\"Log level override, set to null to remove override\",type:\"STRING\",values:Object.values(Qw),isNullable:!0,default:void 0}}},enableTelemetry:{description:\"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry\",type:\"BOOLEAN\",default:!0},telemetryInterval:{description:\"Minimal amount of time between two telemetry uploads, in days\",type:\"NUMBER\",default:7},telemetryUserId:{description:\"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.\",type:\"STRING\",default:null},enableScripts:{description:\"If true, packages are allowed to have install scripts by default\",type:\"BOOLEAN\",default:!0},enableStrictSettings:{description:\"If true, unknown settings will cause Yarn to abort\",type:\"BOOLEAN\",default:!0},enableImmutableCache:{description:\"If true, the cache is reputed immutable and actions that would modify it will throw\",type:\"BOOLEAN\",default:!1},checksumBehavior:{description:\"Enumeration defining what to do when a checksum doesn't match expectations\",type:\"STRING\",default:\"throw\"},packageExtensions:{description:\"Map of package corrections to apply on the dependency tree\",type:\"MAP\",valueDefinition:{description:\"The extension that will be applied to any package whose version matches the specified range\",type:\"SHAPE\",properties:{dependencies:{description:\"The set of dependencies that must be made available to the current package in order for it to work properly\",type:\"MAP\",valueDefinition:{description:\"A range\",type:\"STRING\"}},peerDependencies:{description:\"Inherited dependencies - the consumer of the package will be tasked to provide them\",type:\"MAP\",valueDefinition:{description:\"A semver range\",type:\"STRING\"}},peerDependenciesMeta:{description:\"Extra information related to the dependencies listed in the peerDependencies field\",type:\"MAP\",valueDefinition:{description:\"The peerDependency meta\",type:\"SHAPE\",properties:{optional:{description:\"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error\",type:\"BOOLEAN\",default:!1}}}}}}}};function Vk(r,e,t,i,n){if(i.isArray||i.type===\"ANY\"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>jk(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>jk(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings \"${e}\" cannot be an array`);return jk(r,e,t,i,n)}function jk(r,e,t,i,n){var a;switch(i.type){case\"ANY\":return t;case\"SHAPE\":return pPe(r,e,t,i,n);case\"MAP\":return dPe(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings \"${e}\" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type===\"BOOLEAN\"&&typeof t!=\"string\")return hC(t);if(typeof t!=\"string\")throw new Error(`Expected value (${t}) to be a string`);let l=LP(t,{env:process.env});switch(i.type){case\"ABSOLUTE_PATH\":return x.resolve(n,K.toPortablePath(l));case\"LOCATOR_LOOSE\":return jc(l,!1);case\"NUMBER\":return parseInt(l);case\"LOCATOR\":return jc(l);case\"BOOLEAN\":return hC(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(\", \")}`);return o}function pPe(r,e,t,i,n){if(typeof t!=\"object\"||Array.isArray(t))throw new Ya.UsageError(`Object configuration settings \"${e}\" must be an object`);let s=Xk(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new Ya.UsageError(`Unrecognized configuration settings found: ${e}.${o} - run \"yarn config -v\" to see the list of settings supported in Yarn`);s.set(o,Vk(r,l,a,i.properties[o],n))}return s}function dPe(r,e,t,i,n){let s=new Map;if(typeof t!=\"object\"||Array.isArray(t))throw new Ya.UsageError(`Map configuration settings \"${e}\" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,Vk(r,c,a,u,n))}return s}function Xk(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case\"SHAPE\":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,Xk(r,s));return i}break;case\"MAP\":return e.isArray&&!t?[]:new Map;case\"ABSOLUTE_PATH\":return e.default===null?null:r.projectCwd===null?x.isAbsolute(e.default)?x.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>x.resolve(r.projectCwd,i)):x.resolve(r.projectCwd,e.default);default:return e.default}}function fB(r,e,t){if(e.type===\"SECRET\"&&typeof r==\"string\"&&t.hideSecrets)return hPe;if(e.type===\"ABSOLUTE_PATH\"&&typeof r==\"string\"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(fB(n,e,t));return i}if(e.type===\"MAP\"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,fB(s,e.valueDefinition,t));return i}if(e.type===\"SHAPE\"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,fB(s,o,t))}return i}return r}function CPe(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(pB)&&(e=(0,h5.default)(e.slice(pB.length)),r[e]=t);return r}function hB(){let r=`${pB}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t==\"string\")return t;return Jk}var _k=(i=>(i[i.LOCKFILE=0]=\"LOCKFILE\",i[i.MANIFEST=1]=\"MANIFEST\",i[i.NONE=2]=\"NONE\",i))(_k||{}),Ga=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new Ga(e);typeof t<\"u\"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(Yk);let s=typeof i<\"u\"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=CPe();delete a.rcFilename;let l=await Ga.findRcFiles(e),c=await Ga.findHomeRcFile();if(c){let B=l.find(v=>v.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:v,ignorePath:D,lockfileFilename:L})=>({ignoreCwd:B,yarnPath:v,ignorePath:D,lockfileFilename:L}),g=({ignoreCwd:B,yarnPath:v,ignorePath:D,lockfileFilename:L,...H})=>H,f=new Ga(e);f.importSettings(u(Yk)),f.useWithSource(\"<environment>\",u(a),e,{strict:!1});for(let{path:B,cwd:v,data:D}of l)f.useWithSource(B,u(D),v,{strict:!1});if(s){let B=f.get(\"yarnPath\"),v=f.get(\"ignorePath\");if(B!==null&&!v)return f}let h=f.get(\"lockfileFilename\"),p;switch(i){case 0:p=await Ga.findProjectCwd(e,h);break;case 1:p=await Ga.findProjectCwd(e,null);break;case 2:M.existsSync(x.join(e,\"package.json\"))?p=x.resolve(e):p=null;break}f.startingCwd=e,f.projectCwd=p,f.importSettings(g(Yk));let C=new Map([[\"@@core\",Qz]]),w=B=>\"default\"in B?B.default:B;if(t!==null){for(let L of t.plugins.keys())C.set(L,w(t.modules.get(L)));let B=new Map;for(let L of Uk())B.set(L,()=>Nf(L));for(let[L,H]of t.modules)B.set(L,()=>H);let v=new Set,D=async(L,H)=>{let{factory:j,name:$}=Nf(L);if(v.has($))return;let V=new Map(B),W=A=>{if(V.has(A))return V.get(A)();throw new Ya.UsageError(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await Rf(async()=>w(await j(W)),A=>`${A} (when initializing ${$}, defined in ${H})`);B.set($,()=>Z),v.add($),C.set($,Z)};if(a.plugins)for(let L of a.plugins.split(\";\")){let H=x.resolve(e,K.toPortablePath(L));await D(H,\"<environment>\")}for(let{path:L,cwd:H,data:j}of l)if(!!o&&!!Array.isArray(j.plugins))for(let $ of j.plugins){let V=typeof $!=\"string\"?$.path:$,W=x.resolve(H,K.toPortablePath(V));await D(W,L)}}for(let[B,v]of C)f.activatePlugin(B,v);f.useWithSource(\"<environment>\",g(a),e,{strict:n});for(let{path:B,cwd:v,data:D,strict:L}of l)f.useWithSource(B,g(D),v,{strict:L!=null?L:n});return f.get(\"enableGlobalCache\")&&(f.values.set(\"cacheFolder\",`${f.get(\"globalFolder\")}/cache`),f.sources.set(\"cacheFolder\",\"<internal>\")),await f.refreshPackageExtensions(),f}static async findRcFiles(e){let t=hB(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=x.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,\"utf8\"),l;try{l=Qi(a)}catch{let u=\"\";throw a.match(/^\\s+(?!-)[^:]+\\s+\\S+/m)&&(u=\" (in particular, make sure you list the colons after each key name)\"),new Ya.UsageError(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=x.dirname(s)}return i}static async findHomeRcFile(){let e=hB(),t=LC(),i=x.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,\"utf8\"),s=Qi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(x.join(s,\"package.json\"))&&(i=s),t!==null){if(M.existsSync(x.join(s,t))){i=s;break}}else if(i!==null)break;n=x.dirname(s)}return i}static async updateConfiguration(e,t){let i=hB(),n=x.join(e,i),s=M.existsSync(n)?Qi(await M.readFilePromise(n,\"utf8\")):{},o=!1,a;if(typeof t==\"function\"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u==\"function\")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,ba(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=LC();return await Ga.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<\"u\"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings \"${t}\"`);this.settings.set(t,i),this.values.set(t,Xk(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${Ve(this,e,Oe.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get(\"enableStrictSettings\");for(let o of[\"enableStrictSettings\",...Object.keys(t)]){if(typeof t[o]>\"u\"||o===\"plugins\"||e===\"<environment>\"&&fPe.has(o))continue;if(o===\"rcFilename\")throw new Ya.UsageError(`The rcFilename settings can only be set via ${`${pB}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new Ya.UsageError(`Unrecognized or legacy configuration settings found: ${o} - run \"yarn config -v\" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type===\"MAP\"||l.isArray&&l.concatenateValues))continue;let c;try{c=Vk(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${Ve(this,e,Oe.PATH)}`,u}if(o===\"enableStrictSettings\"&&e!==\"<environment>\"){n=c;continue}if(l.type===\"MAP\"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key \"${e}\"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>\"u\")throw new Ya.UsageError(`Couldn't find a configuration settings named \"${e}\"`);return fB(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get(\"enableInlineBuilds\")){let l=n.createStreamReporter(`${i} ${Ve(this,\"STDOUT\",\"green\")}`),c=n.createStreamReporter(`${i} ${Ve(this,\"STDERR\",\"red\")}`);s=new qk.PassThrough,s.pipe(l),s.pipe(a),o=new qk.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<\"u\"&&s.write(`${t}\n`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Wf([new NC,new Jr,new AB,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new Jf([new Vf,new _f,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=TC(),t=this.get(\"supportedArchitectures\"),i=t.get(\"os\");i!==null&&(i=i.map(o=>o===\"current\"?e.os:o));let n=t.get(\"cpu\");n!==null&&(n=n.map(o=>o===\"current\"?e.cpu:o));let s=t.get(\"libc\");return s!==null&&(s=Uo(s,o=>{var a;return o===\"current\"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!ro(i.range))throw new Error(\"Only semver ranges are allowed as keys for the packageExtensions setting\");let o=new nt;o.load(n,{yamlCompatibilityMode:!0});let a=Df(e,i.identHash),l=[];a.push([i.range,l]);let c={status:\"inactive\",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:\"Dependency\",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:\"PeerDependency\",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[f,h]of Object.entries(g))l.push({...c,type:\"PeerDependencyMeta\",selector:u,key:f,value:h})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get(\"packageExtensions\"))t(ZA(i,!0),Iw(n),{userProvided:!0})}normalizePackage(e){let t=BC(e);if(this.packageExtensions==null)throw new Error(\"refreshPackageExtensions has to be called before normalizing packages\");let i=this.packageExtensions.get(e.identHash);if(typeof i<\"u\"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!qc(s,o))for(let l of a)switch(l.status===\"inactive\"&&(l.status=\"redundant\"),l.type){case\"Dependency\":typeof t.dependencies.get(l.descriptor.identHash)>\"u\"&&(l.status=\"active\",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case\"PeerDependency\":typeof t.peerDependencies.get(l.descriptor.identHash)>\"u\"&&(l.status=\"active\",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case\"PeerDependencyMeta\":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>\"u\"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status=\"active\",Ta(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:FP(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=Zi(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,Zt(o,\"*\"))}for(let s of t.peerDependencies.values()){if(s.scope===\"types\")continue;let o=n(s),a=qo(\"types\",o),l=Ot(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,Zt(a,\"*\")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(Bn(t.dependencies,([,s])=>bn(s))),t.peerDependencies=new Map(Bn(t.peerDependencies,([,s])=>bn(s))),t}getLimit(e){return Ta(this.limits,e,()=>(0,p5.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<\"u\")return o}return null}},Ie=Ga;Ie.telemetry=null;var tR=(i=>(i[i.Never=0]=\"Never\",i[i.ErrorCode=1]=\"ErrorCode\",i[i.Always=2]=\"Always\",i))(tR||{}),OC=class extends ot{constructor({fileName:t,code:i,signal:n}){let s=Ie.create(x.cwd()),o=Ve(s,t,Oe.PATH);super(1,`Child ${o} reported an error`,a=>{EPe(i,n,{configuration:s,report:a})});this.code=rR(i,n)}},dB=class extends OC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function zc(r){return r!==null&&typeof r.fd==\"number\"}var Vc=new Set;function Zk(){}function $k(){for(let r of Vc)r.kill()}async function Wo(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=[\"pipe\",\"pipe\",\"pipe\"];s===null?c[0]=\"ignore\":zc(s)&&(c[0]=s),zc(o)&&(c[1]=o),zc(a)&&(c[2]=a);let u=(0,eR.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Vc.add(u),Vc.size===1&&(process.on(\"SIGINT\",Zk),process.on(\"SIGTERM\",$k)),!zc(s)&&s!==null&&s.pipe(u.stdin),zc(o)||u.stdout.pipe(o,{end:!1}),zc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let f of new Set([o,a]))zc(f)||f.end()};return new Promise((f,h)=>{u.on(\"error\",p=>{Vc.delete(u),Vc.size===0&&(process.off(\"SIGINT\",Zk),process.off(\"SIGTERM\",$k)),(l===2||l===1)&&g(),h(p)}),u.on(\"close\",(p,C)=>{Vc.delete(u),Vc.size===0&&(process.off(\"SIGINT\",Zk),process.off(\"SIGTERM\",$k)),(l===2||l===1&&p>0)&&g(),p===0||!n?f({code:rR(p,C)}):h(new OC({fileName:r,code:p,signal:C}))})})}async function Gk(r,e,{cwd:t,env:i=process.env,encoding:n=\"utf8\",strict:s=!1}){let o=[\"ignore\",\"pipe\",\"pipe\"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<\"u\"&&(i={...i,PWD:c});let u=(0,eR.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on(\"data\",g=>{a.push(g)}),u.stderr.on(\"data\",g=>{l.push(g)}),await new Promise((g,f)=>{u.on(\"error\",h=>{let p=Ie.create(t),C=Ve(p,r,Oe.PATH);f(new ot(1,`Process ${C} failed to spawn`,w=>{w.reportError(1,`  ${Ho(p,{label:\"Thrown Error\",value:to(Oe.NO_HINT,h.message)})}`)}))}),u.on(\"close\",(h,p)=>{let C=n===\"buffer\"?Buffer.concat(a):Buffer.concat(a).toString(n),w=n===\"buffer\"?Buffer.concat(l):Buffer.concat(l).toString(n);h===0||!s?g({code:rR(h,p),stdout:C,stderr:w}):f(new dB({fileName:r,code:h,signal:p,stdout:C,stderr:w}))})})}var mPe=new Map([[\"SIGINT\",2],[\"SIGQUIT\",3],[\"SIGKILL\",9],[\"SIGTERM\",15]]);function rR(r,e){let t=mPe.get(e);return typeof t<\"u\"?128+t:r!=null?r:1}function EPe(r,e,{configuration:t,report:i}){i.reportError(1,`  ${Ho(t,r!==null?{label:\"Exit Code\",value:to(Oe.NUMBER,r)}:{label:\"Exit Signal\",value:to(Oe.CODE,e)})}`)}var Vt={};ht(Vt,{Method:()=>XV,RequestError:()=>_V.RequestError,del:()=>DRe,get:()=>xRe,getNetworkSettings:()=>VV,post:()=>mF,put:()=>PRe,request:()=>zC});var JV=ne(jB()),WV=J(\"https\"),zV=J(\"http\"),CF=ne(wn()),dF=ne(GV()),qB=J(\"url\");var _V=ne(jB()),YV=new Map,jV=new Map,bRe=new zV.Agent({keepAlive:!0}),SRe=new WV.Agent({keepAlive:!0});function qV(r){let e=new qB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),{proxy:t}}async function pF(r){return Ta(jV,r,()=>M.readFilePromise(r).then(e=>(jV.set(r,e),e)))}function vRe({statusCode:r,statusMessage:e},t){let i=Ve(t,r,Oe.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return Tf(t,`${i}${e?` (${e})`:\"\"}`,n)}async function JB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!==\"HTTPError\")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith(\"Response code\")?o=\"The remote server failed to provide the requested resource\":o=s.message),s instanceof JV.TimeoutError&&s.event===\"socket\"&&(o+=`(can be increased via ${Ve(e,\"httpTimeout\",Oe.SETTING)})`);let a=new ot(35,o,l=>{s.response&&l.reportError(35,`  ${Ho(e,{label:\"Response Code\",value:to(Oe.NO_HINT,vRe(s.response,e))})}`),s.request&&(l.reportError(35,`  ${Ho(e,{label:\"Request Method\",value:to(Oe.NO_HINT,s.request.options.method)})}`),l.reportError(35,`  ${Ho(e,{label:\"Request URL\",value:to(Oe.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,`  ${Ho(e,{label:\"Request Redirects\",value:to(Oe.NO_HINT,YP(e,s.request.redirects,Oe.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,`  ${Ho(e,{label:\"Request Retry Count\",value:to(Oe.NO_HINT,`${Ve(e,s.request.retryCount,Oe.NUMBER)} (can be increased via ${Ve(e,\"httpRetry\",Oe.SETTING)})`)})}`)});throw a.originalError=s,a}}function VV(r,e){let t=[...e.configuration.get(\"networkSettings\")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r==\"string\"?new qB.URL(r):r;for(let[o,a]of t)if(CF.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>\"u\"&&(i[l]=c)}for(let o of n)typeof i[o]>\"u\"&&(i[o]=e.configuration.get(o));return i}var XV=(n=>(n.GET=\"GET\",n.PUT=\"PUT\",n.POST=\"POST\",n.DELETE=\"DELETE\",n))(XV||{});async function zC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o=\"GET\"}){let a=async()=>await kRe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function xRe(r,{configuration:e,jsonResponse:t,...i}){let n=Ta(YV,r,()=>JB(zC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(YV.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function PRe(r,e,{customErrorMessage:t,...i}){return(await JB(zC(r,e,{...i,method:\"PUT\"}),i)).body}async function mF(r,e,{customErrorMessage:t,...i}){return(await JB(zC(r,e,{...i,method:\"POST\"}),i)).body}async function DRe(r,{customErrorMessage:e,...t}){return(await JB(zC(r,null,{...t,method:\"DELETE\"}),t)).body}async function kRe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o=\"GET\"}){let a=typeof r==\"string\"?new qB.URL(r):r,l=VV(a,{configuration:t});if(l.enableNetwork===!1)throw new Error(`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol===\"http:\"&&!CF.default.isMatch(a.hostname,t.get(\"unsafeHttpWhitelist\")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?dF.default.httpOverHttp(qV(l.httpProxy)):bRe,https:l.httpsProxy?dF.default.httpsOverHttp(qV(l.httpsProxy)):SRe},headers:i,method:o};u.responseType=s?\"json\":\"buffer\",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e==\"string\"?u.body=e:u.json=e);let g=t.get(\"httpTimeout\"),f=t.get(\"httpRetry\"),h=t.get(\"enableStrictSsl\"),p=l.caFilePath,C=l.httpsCertFilePath,w=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ne(jB())),v=p?await pF(p):void 0,D=C?await pF(C):void 0,L=w?await pF(w):void 0,H=B.extend({timeout:{socket:g},retry:f,https:{rejectUnauthorized:h,certificateAuthority:v,certificate:D,key:L},...u});return t.getLimit(\"networkConcurrency\")(()=>H(a))}var Jt={};ht(Jt,{PackageManager:()=>l7,detectPackageManager:()=>c7,executePackageAccessibleBinary:()=>p7,executePackageScript:()=>A0,executePackageShellcode:()=>FF,executeWorkspaceAccessibleBinary:()=>XFe,executeWorkspaceLifecycleScript:()=>f7,executeWorkspaceScript:()=>g7,getPackageAccessibleBinaries:()=>l0,getWorkspaceAccessibleBinaries:()=>h7,hasPackageScript:()=>WFe,hasWorkspaceScript:()=>NF,makeScriptEnv:()=>em,maybeExecuteWorkspaceLifecycleScript:()=>VFe,prepareExternalProject:()=>JFe});var VC={};ht(VC,{getLibzipPromise:()=>nn,getLibzipSync:()=>i9});var r9=ne($V());var sl=[\"number\",\"number\"],e9=(N=>(N[N.ZIP_ER_OK=0]=\"ZIP_ER_OK\",N[N.ZIP_ER_MULTIDISK=1]=\"ZIP_ER_MULTIDISK\",N[N.ZIP_ER_RENAME=2]=\"ZIP_ER_RENAME\",N[N.ZIP_ER_CLOSE=3]=\"ZIP_ER_CLOSE\",N[N.ZIP_ER_SEEK=4]=\"ZIP_ER_SEEK\",N[N.ZIP_ER_READ=5]=\"ZIP_ER_READ\",N[N.ZIP_ER_WRITE=6]=\"ZIP_ER_WRITE\",N[N.ZIP_ER_CRC=7]=\"ZIP_ER_CRC\",N[N.ZIP_ER_ZIPCLOSED=8]=\"ZIP_ER_ZIPCLOSED\",N[N.ZIP_ER_NOENT=9]=\"ZIP_ER_NOENT\",N[N.ZIP_ER_EXISTS=10]=\"ZIP_ER_EXISTS\",N[N.ZIP_ER_OPEN=11]=\"ZIP_ER_OPEN\",N[N.ZIP_ER_TMPOPEN=12]=\"ZIP_ER_TMPOPEN\",N[N.ZIP_ER_ZLIB=13]=\"ZIP_ER_ZLIB\",N[N.ZIP_ER_MEMORY=14]=\"ZIP_ER_MEMORY\",N[N.ZIP_ER_CHANGED=15]=\"ZIP_ER_CHANGED\",N[N.ZIP_ER_COMPNOTSUPP=16]=\"ZIP_ER_COMPNOTSUPP\",N[N.ZIP_ER_EOF=17]=\"ZIP_ER_EOF\",N[N.ZIP_ER_INVAL=18]=\"ZIP_ER_INVAL\",N[N.ZIP_ER_NOZIP=19]=\"ZIP_ER_NOZIP\",N[N.ZIP_ER_INTERNAL=20]=\"ZIP_ER_INTERNAL\",N[N.ZIP_ER_INCONS=21]=\"ZIP_ER_INCONS\",N[N.ZIP_ER_REMOVE=22]=\"ZIP_ER_REMOVE\",N[N.ZIP_ER_DELETED=23]=\"ZIP_ER_DELETED\",N[N.ZIP_ER_ENCRNOTSUPP=24]=\"ZIP_ER_ENCRNOTSUPP\",N[N.ZIP_ER_RDONLY=25]=\"ZIP_ER_RDONLY\",N[N.ZIP_ER_NOPASSWD=26]=\"ZIP_ER_NOPASSWD\",N[N.ZIP_ER_WRONGPASSWD=27]=\"ZIP_ER_WRONGPASSWD\",N[N.ZIP_ER_OPNOTSUPP=28]=\"ZIP_ER_OPNOTSUPP\",N[N.ZIP_ER_INUSE=29]=\"ZIP_ER_INUSE\",N[N.ZIP_ER_TELL=30]=\"ZIP_ER_TELL\",N[N.ZIP_ER_COMPRESSED_DATA=31]=\"ZIP_ER_COMPRESSED_DATA\",N))(e9||{}),t9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:e9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap(\"zip_open\",\"number\",[\"string\",\"number\",\"number\"]),openFromSource:r.cwrap(\"zip_open_from_source\",\"number\",[\"number\",\"number\",\"number\"]),close:r.cwrap(\"zip_close\",\"number\",[\"number\"]),discard:r.cwrap(\"zip_discard\",null,[\"number\"]),getError:r.cwrap(\"zip_get_error\",\"number\",[\"number\"]),getName:r.cwrap(\"zip_get_name\",\"string\",[\"number\",\"number\",\"number\"]),getNumEntries:r.cwrap(\"zip_get_num_entries\",\"number\",[\"number\",\"number\"]),delete:r.cwrap(\"zip_delete\",\"number\",[\"number\",\"number\"]),stat:r.cwrap(\"zip_stat\",\"number\",[\"number\",\"string\",\"number\",\"number\"]),statIndex:r.cwrap(\"zip_stat_index\",\"number\",[\"number\",...sl,\"number\",\"number\"]),fopen:r.cwrap(\"zip_fopen\",\"number\",[\"number\",\"string\",\"number\"]),fopenIndex:r.cwrap(\"zip_fopen_index\",\"number\",[\"number\",...sl,\"number\"]),fread:r.cwrap(\"zip_fread\",\"number\",[\"number\",\"number\",\"number\",\"number\"]),fclose:r.cwrap(\"zip_fclose\",\"number\",[\"number\"]),dir:{add:r.cwrap(\"zip_dir_add\",\"number\",[\"number\",\"string\"])},file:{add:r.cwrap(\"zip_file_add\",\"number\",[\"number\",\"string\",\"number\",\"number\"]),getError:r.cwrap(\"zip_file_get_error\",\"number\",[\"number\"]),getExternalAttributes:r.cwrap(\"zip_file_get_external_attributes\",\"number\",[\"number\",...sl,\"number\",\"number\",\"number\"]),setExternalAttributes:r.cwrap(\"zip_file_set_external_attributes\",\"number\",[\"number\",...sl,\"number\",\"number\",\"number\"]),setMtime:r.cwrap(\"zip_file_set_mtime\",\"number\",[\"number\",...sl,\"number\",\"number\"]),setCompression:r.cwrap(\"zip_set_file_compression\",\"number\",[\"number\",...sl,\"number\",\"number\"])},ext:{countSymlinks:r.cwrap(\"zip_ext_count_symlinks\",\"number\",[\"number\"])},error:{initWithCode:r.cwrap(\"zip_error_init_with_code\",null,[\"number\",\"number\"]),strerror:r.cwrap(\"zip_error_strerror\",\"string\",[\"number\"])},name:{locate:r.cwrap(\"zip_name_locate\",\"number\",[\"number\",\"string\",\"number\"])},source:{fromUnattachedBuffer:r.cwrap(\"zip_source_buffer_create\",\"number\",[\"number\",\"number\",\"number\",\"number\"]),fromBuffer:r.cwrap(\"zip_source_buffer\",\"number\",[\"number\",\"number\",...sl,\"number\"]),free:r.cwrap(\"zip_source_free\",null,[\"number\"]),keep:r.cwrap(\"zip_source_keep\",null,[\"number\"]),open:r.cwrap(\"zip_source_open\",\"number\",[\"number\"]),close:r.cwrap(\"zip_source_close\",\"number\",[\"number\"]),seek:r.cwrap(\"zip_source_seek\",\"number\",[\"number\",...sl,\"number\"]),tell:r.cwrap(\"zip_source_tell\",\"number\",[\"number\"]),read:r.cwrap(\"zip_source_read\",\"number\",[\"number\",\"number\",\"number\"]),error:r.cwrap(\"zip_source_error\",\"number\",[\"number\"]),setMtime:r.cwrap(\"zip_source_set_mtime\",\"number\",[\"number\",\"number\"])},struct:{stat:r.cwrap(\"zipstruct_stat\",\"number\",[]),statS:r.cwrap(\"zipstruct_statS\",\"number\",[]),statName:r.cwrap(\"zipstruct_stat_name\",\"string\",[\"number\"]),statIndex:r.cwrap(\"zipstruct_stat_index\",\"number\",[\"number\"]),statSize:r.cwrap(\"zipstruct_stat_size\",\"number\",[\"number\"]),statCompSize:r.cwrap(\"zipstruct_stat_comp_size\",\"number\",[\"number\"]),statCompMethod:r.cwrap(\"zipstruct_stat_comp_method\",\"number\",[\"number\"]),statMtime:r.cwrap(\"zipstruct_stat_mtime\",\"number\",[\"number\"]),statCrc:r.cwrap(\"zipstruct_stat_crc\",\"number\",[\"number\"]),error:r.cwrap(\"zipstruct_error\",\"number\",[]),errorS:r.cwrap(\"zipstruct_errorS\",\"number\",[]),errorCodeZip:r.cwrap(\"zipstruct_error_code_zip\",\"number\",[\"number\"])}});var yF=null;function i9(){return yF===null&&(yF=t9((0,r9.default)())),yF}async function nn(){return i9()}var $C={};ht($C,{ShellError:()=>qn,execute:()=>t0,globUtils:()=>XB});var C9=ne(cP()),m9=J(\"os\"),Jn=J(\"stream\"),E9=J(\"util\");var qn=class extends Error{constructor(e){super(e),this.name=\"ShellError\"}};var XB={};ht(XB,{fastGlobOptions:()=>o9,isBraceExpansion:()=>wF,isGlobPattern:()=>RRe,match:()=>FRe,micromatchOptions:()=>VB});var n9=ne(jw()),s9=ne(J(\"fs\")),zB=ne(wn()),VB={strictBrackets:!0},o9={onlyDirectories:!1,onlyFiles:!1};function RRe(r){if(!zB.default.scan(r,VB).isGlob)return!1;try{zB.default.parse(r,VB)}catch{return!1}return!0}function FRe(r,{cwd:e,baseFs:t}){return(0,n9.default)(r,{...o9,cwd:K.fromPortablePath(e),fs:NI(s9.default,new Wg(t))})}function wF(r){return zB.default.scan(r,VB).isBrace}var A9=ne(hv()),Vo=J(\"stream\"),l9=J(\"string_decoder\");var _c=new Set;function BF(){}function QF(){for(let r of _c)r.kill()}function c9(r,e,t,i){return n=>{let s=n[0]instanceof Vo.Transform?\"pipe\":n[0],o=n[1]instanceof Vo.Transform?\"pipe\":n[1],a=n[2]instanceof Vo.Transform?\"pipe\":n[2],l=(0,A9.default)(r,e,{...i,stdio:[s,o,a]});return _c.add(l),_c.size===1&&(process.on(\"SIGINT\",BF),process.on(\"SIGTERM\",QF)),n[0]instanceof Vo.Transform&&n[0].pipe(l.stdin),n[1]instanceof Vo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof Vo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on(\"error\",u=>{switch(_c.delete(l),_c.size===0&&(process.off(\"SIGINT\",BF),process.off(\"SIGTERM\",QF)),u.code){case\"ENOENT\":n[2].write(`command not found: ${r}\n`),c(127);break;case\"EACCES\":n[2].write(`permission denied: ${r}\n`),c(128);break;default:n[2].write(`uncaught error: ${u.message}\n`),c(1);break}}),l.on(\"close\",u=>{_c.delete(l),_c.size===0&&(process.off(\"SIGINT\",BF),process.off(\"SIGTERM\",QF)),c(u!==null?u:129)})})}}}function u9(r){return e=>{let t=e[0]===\"pipe\"?new Vo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var ys=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},bF=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error(\"Assertion failed: No stream attached\");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error(\"Assertion failed: No stream attached\");return this.stream}},ch=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new ch(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new ch(this,e),n=new bF;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=[\"ignore\",\"ignore\",\"ignore\"];if(this.pipe)e[0]=\"pipe\";else{if(this.stdin===null)throw new Error(\"Assertion failed: No input stream registered\");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error(\"Assertion failed: No output stream registered\");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error(\"Assertion failed: No error stream registered\");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function _B(r,e){return ch.start(r,e)}function a9(r,e=null){let t=new Vo.PassThrough,i=new l9.StringDecoder,n=\"\";return t.on(\"data\",s=>{let o=i.write(s),a;do if(a=o.indexOf(`\n`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n=\"\",r(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),t.on(\"end\",()=>{let s=i.end();s!==\"\"&&r(e!==null?`${e} ${s}`:s)}),t}function g9(r,{prefix:e}){return{stdout:a9(t=>r.stdout.write(`${t}\n`),r.stdout.isTTY?e:null),stderr:a9(t=>r.stderr.write(`${t}\n`),r.stderr.isTTY?e:null)}}var NRe=(0,E9.promisify)(setTimeout);function f9(r,e,t){let i=new Jn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Jn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new qn(`Bad file descriptor: \"${r}\"`)}return i}function $B(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var LRe=new Map([[\"cd\",async([r=(0,m9.homedir)(),...e],t,i)=>{let n=x.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code===\"ENOENT\"?new qn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new qn(`cd: not a directory: ${r}`);return i.cwd=n,0}],[\"pwd\",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)}\n`),0)],[\":\",async(r,e,t)=>0],[\"true\",async(r,e,t)=>0],[\"false\",async(r,e,t)=>1],[\"exit\",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables[\"?\"],10)],[\"echo\",async(r,e,t)=>(t.stdout.write(`${r.join(\" \")}\n`),0)],[\"sleep\",async([r],e,t)=>{if(typeof r>\"u\")throw new qn(\"sleep: missing operand\");let i=Number(r);if(Number.isNaN(i))throw new qn(`sleep: invalid time interval '${r}'`);return await NRe(1e3*i,0)}],[\"__ysh_run_procedure\",async(r,e,t)=>{let i=t.procedures[r[0]];return await _B(i,{stdin:new ys(t.stdin),stdout:new ys(t.stdout),stderr:new ys(t.stderr)}).run()}],[\"__ysh_set_redirects\",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!==\"--\";){let g=r[c++],{type:f,fd:h}=JSON.parse(g),p=v=>{switch(h){case null:case 0:o.push(v);break;default:throw new Error(`Unsupported file descriptor: \"${h}\"`)}},C=v=>{switch(h){case null:case 1:a.push(v);break;case 2:l.push(v);break;default:throw new Error(`Unsupported file descriptor: \"${h}\"`)}},w=Number(r[c++]),B=c+w;for(let v=c;v<B;++c,++v)switch(f){case\"<\":p(()=>e.baseFs.createReadStream(x.resolve(t.cwd,K.toPortablePath(r[v]))));break;case\"<<<\":p(()=>{let D=new Jn.PassThrough;return process.nextTick(()=>{D.write(`${r[v]}\n`),D.end()}),D});break;case\"<&\":p(()=>f9(Number(r[v]),1,t));break;case\">\":case\">>\":{let D=x.resolve(t.cwd,K.toPortablePath(r[v]));C(D===\"/dev/null\"?new Jn.Writable({autoDestroy:!0,emitClose:!0,write(L,H,j){setImmediate(j)}}):e.baseFs.createWriteStream(D,f===\">>\"?{flags:\"a\"}:void 0))}break;case\">&\":C(f9(Number(r[v]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: \"${f}\"`)}}if(o.length>0){let g=new Jn.PassThrough;i=g;let f=h=>{if(h===o.length)g.end();else{let p=o[h]();p.pipe(g,{end:!1}),p.on(\"end\",()=>{f(h+1)})}};f(0)}if(a.length>0){let g=new Jn.PassThrough;n=g;for(let f of a)g.pipe(f)}if(l.length>0){let g=new Jn.PassThrough;s=g;for(let f of l)g.pipe(f)}let u=await _B(_C(r.slice(c+1),e,t),{stdin:new ys(i),stdout:new ys(n),stderr:new ys(s)}).run();return await Promise.all(a.map(g=>new Promise((f,h)=>{g.on(\"error\",p=>{h(p)}),g.on(\"close\",()=>{f()}),g.end()}))),await Promise.all(l.map(g=>new Promise((f,h)=>{g.on(\"error\",p=>{h(p)}),g.on(\"close\",()=>{f()}),g.end()}))),u}]]);async function TRe(r,e,t){let i=[],n=new Jn.PassThrough;return n.on(\"data\",s=>i.push(s)),await e0(r,e,$B(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\\r\\n]+$/,\"\")}async function h9(r,e,t){let i=r.map(async s=>{let o=await Zc(s.args,e,t);return{name:s.name,value:o.join(\" \")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function ZB(r){return r.match(/[^ \\r\\n\\t]+/g)||[]}async function I9(r,e,t,i,n=i){switch(r.name){case\"$\":i(String(process.pid));break;case\"#\":i(String(e.args.length));break;case\"@\":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=ZB(s);for(let a=0;a<o.length-1;++a)n(o[a]);i(o[o.length-1])}break;case\"*\":{let s=e.args.join(\" \");if(r.quoted)i(s);else for(let o of ZB(s))n(o)}break;case\"PPID\":i(String(process.ppid));break;case\"RANDOM\":i(String(Math.floor(Math.random()*32768)));break;default:{let s=parseInt(r.name,10),o,a=Number.isFinite(s);if(a?s>=0&&s<e.args.length&&(o=e.args[s]):Object.prototype.hasOwnProperty.call(t.variables,r.name)?o=t.variables[r.name]:Object.prototype.hasOwnProperty.call(t.environment,r.name)&&(o=t.environment[r.name]),typeof o<\"u\"&&r.alternativeValue?o=(await Zc(r.alternativeValue,e,t)).join(\" \"):typeof o>\"u\"&&(r.defaultValue?o=(await Zc(r.defaultValue,e,t)).join(\" \"):r.alternativeValue&&(o=\"\")),typeof o>\"u\")throw a?new qn(`Unbound argument #${s}`):new qn(`Unbound variable \"${r.name}\"`);if(r.quoted)i(o);else{let l=ZB(o);for(let u=0;u<l.length-1;++u)n(l[u]);let c=l[l.length-1];typeof c<\"u\"&&i(c)}}break}}var ORe={addition:(r,e)=>r+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function XC(r,e,t){if(r.type===\"number\"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: \"${r.value}\", only integers are allowed`)}else if(r.type===\"variable\"){let i=[];await I9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(\" \"));return Number.isNaN(n)?XC({type:\"variable\",name:i.join(\" \")},e,t):XC({type:\"number\",value:n},e,t)}else return ORe[r.type](await XC(r.left,e,t),await XC(r.right,e,t))}async function Zc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join(\"\")),s=[]},l=u=>{o(u),a()},c=(u,g,f)=>{let h=JSON.stringify({type:u,fd:g}),p=i.get(h);typeof p>\"u\"&&i.set(h,p=[]),p.push(f)};for(let u of r){let g=!1;switch(u.type){case\"redirection\":{let f=await Zc(u.args,e,t);for(let h of f)c(u.subtype,u.fd,h)}break;case\"argument\":for(let f of u.segments)switch(f.type){case\"text\":o(f.text);break;case\"glob\":o(f.pattern),g=!0;break;case\"shell\":{let h=await TRe(f.shell,e,t);if(f.quoted)o(h);else{let p=ZB(h);for(let C=0;C<p.length-1;++C)l(p[C]);o(p[p.length-1])}}break;case\"variable\":await I9(f,e,t,o,l);break;case\"arithmetic\":o(String(await XC(f.arithmetic,e,t)));break}break}if(a(),g){let f=n.pop();if(typeof f>\"u\")throw new Error(\"Assertion failed: Expected a glob pattern to have been set\");let h=await e.glob.match(f,{cwd:t.cwd,baseFs:e.baseFs});if(h.length===0){let p=wF(f)?\". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22\":\"\";throw new qn(`No matches found: \"${f}\"${p}`)}for(let p of h.sort())l(p)}}if(i.size>0){let u=[];for(let[g,f]of i.entries())u.splice(u.length,0,g,String(f.length),...f);n.splice(0,0,\"__ysh_set_redirects\",...u,\"--\")}return n}function _C(r,e,t){e.builtins.has(r[0])||(r=[\"command\",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<\"u\"&&(n={...n,PWD:i});let[s,...o]=r;if(s===\"command\")return c9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>\"u\")throw new Error(`Assertion failed: A builtin should exist for \"${s}\"`);return u9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:f,stderr:h}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=f,t.stderr=h}})}function MRe(r,e,t){return i=>{let n=new Jn.PassThrough,s=e0(r,e,$B(t,{stdin:n}));return{stdin:n,promise:s}}}function KRe(r,e,t){return i=>{let n=new Jn.PassThrough,s=e0(r,e,t);return{stdin:n,promise:s}}}function p9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,_C([...e,\"__ysh_run_procedure\",n],t,i)}}async function d9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case\"command\":{let l=await Zc(i.args,e,t),c=await h9(i.envs,e,t);a=i.envs.length?_C(l,e,$B(o,{environment:c})):_C(l,e,o)}break;case\"subshell\":{let l=await Zc(i.args,e,t),c=MRe(i.subshell,e,o);a=p9(c,l,e,o)}break;case\"group\":{let l=await Zc(i.args,e,t),c=KRe(i.group,e,o);a=p9(c,l,e,o)}break;case\"envs\":{let l=await h9(i.envs,e,t);o.environment={...o.environment,...l},a=_C([\"true\"],e,o)}break}if(typeof a>\"u\")throw new Error(\"Assertion failed: An action should have been generated\");if(n===null)s=_B(a,{stdin:new ys(o.stdin),stdout:new ys(o.stdout),stderr:new ys(o.stderr)});else{if(s===null)throw new Error(\"Assertion failed: The execution pipeline should have been setup\");switch(n){case\"|\":s=s.pipeTo(a,1);break;case\"|&\":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error(\"Assertion failed: The execution pipeline should have been setup\");return await s.run()}async function URe(r,e,t,{background:i=!1}={}){function n(s){let o=[\"#2E86AB\",\"#A23B72\",\"#F18F01\",\"#C73E1D\",\"#CCE2A3\"],a=o[s%o.length];return C9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=g9(t,{prefix:l});return t.backgroundJobs.push(d9(r,e,$B(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message}\n`)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o($g(r))}' has ended\n`)})),0}return await d9(r,e,t)}async function HRe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables[\"?\"]=String(a)},o=async a=>{try{return await URe(a.chain,e,t,{background:i&&typeof a.then>\"u\"})}catch(l){if(!(l instanceof qn))throw l;return t.stderr.write(`${l.message}\n`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case\"&&\":n===0&&s(await o(r.then.line));break;case\"||\":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: \"${r.then.type}\"`)}r=r.then.line}return n}async function e0(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await HRe(s,e,t,{background:o===\"&\"}),t.exitCode!==null)return t.exitCode;t.variables[\"?\"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function y9(r){switch(r.type){case\"variable\":return r.name===\"@\"||r.name===\"#\"||r.name===\"*\"||Number.isFinite(parseInt(r.name,10))||\"defaultValue\"in r&&!!r.defaultValue&&r.defaultValue.some(e=>ZC(e))||\"alternativeValue\"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>ZC(e));case\"arithmetic\":return SF(r.arithmetic);case\"shell\":return vF(r.shell);default:return!1}}function ZC(r){switch(r.type){case\"redirection\":return r.args.some(e=>ZC(e));case\"argument\":return r.segments.some(e=>y9(e));default:throw new Error(`Assertion failed: Unsupported argument type: \"${r.type}\"`)}}function SF(r){switch(r.type){case\"variable\":return y9(r);case\"number\":return!1;default:return SF(r.left)||SF(r.right)}}function vF(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case\"subshell\":i=vF(t.subshell);break;case\"command\":i=t.envs.some(n=>n.args.some(s=>ZC(s)))||t.args.some(n=>ZC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function t0(r,e=[],{baseFs:t=new $t,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=XB}={}){let g={};for(let[p,C]of Object.entries(s))typeof C<\"u\"&&(g[p]=C);let f=new Map(LRe);for(let[p,C]of Object.entries(i))f.set(p,C);o===null&&(o=new Jn.PassThrough,o.end());let h=OI(r,u);if(!vF(h)&&h.length>0&&e.length>0){let{command:p}=h[h.length-1];for(;p.then;)p=p.then.line;let C=p.chain;for(;C.then;)C=C.then.chain;C.type===\"command\"&&(C.args=C.args.concat(e.map(w=>({type:\"argument\",segments:[{type:\"text\",text:w}]}))))}return await e0(h,{args:e,baseFs:t,builtins:f,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{[\"?\"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var a7=ne(r0()),A7=ne(lf()),ol=J(\"stream\");var s7=ne(t7()),o0=ne(yc());var r7=[\"\\u280B\",\"\\u2819\",\"\\u2839\",\"\\u2838\",\"\\u283C\",\"\\u2834\",\"\\u2826\",\"\\u2827\",\"\\u2807\",\"\\u280F\"],i7=80,KFe=new Set([13,19]),UFe=5,s0=o0.default.GITHUB_ACTIONS?{start:r=>`::group::${r}\n`,end:r=>`::endgroup::\n`}:o0.default.TRAVIS?{start:r=>`travis_fold:start:${r}\n`,end:r=>`travis_fold:end:${r}\n`}:o0.default.GITLAB?{start:r=>`section_start:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\\W+/g,\"_\")}[collapsed=true]\\r\\x1B[0K${r}\n`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\\W+/g,\"_\")}\\r\\x1B[0K`}:null,n7=new Date,HFe=[\"iTerm.app\",\"Apple_Terminal\",\"WarpTerminal\",\"vscode\"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,GFe=r=>r,a0=GFe({patrick:{date:[17,3],chars:[\"\\u{1F340}\",\"\\u{1F331}\"],size:40},simba:{date:[19,7],chars:[\"\\u{1F981}\",\"\\u{1F334}\"],size:40},jack:{date:[31,10],chars:[\"\\u{1F383}\",\"\\u{1F987}\"],size:40},hogsfather:{date:[31,12],chars:[\"\\u{1F389}\",\"\\u{1F384}\"],size:40},default:{chars:[\"=\",\"-\"],size:80}}),YFe=HFe&&Object.keys(a0).find(r=>{let e=a0[r];return!(e.date&&(e.date[0]!==n7.getDate()||e.date[1]!==n7.getMonth()+1))})||\"default\";function o7(r,{configuration:e,json:t}){if(!e.get(\"enableMessageNames\"))return\"\";let n=MA(r===null?0:r);return!t&&r===null?Ve(e,n,\"grey\"):n}function RF(r,{configuration:e,json:t}){let i=o7(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=Ct[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return Tf(e,i,s)}var Ke=class extends xi{constructor({configuration:t,stdout:i,json:n=!1,includeFooter:s=!0,includeLogs:o=!n,includeInfos:a=o,includeWarnings:l=o,forgettableBufferSize:c=UFe,forgettableNames:u=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errorCount=0;this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(CC(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=c,this.forgettableNames=new Set([...u,...KFe]),this.includeFooter=s,this.includeInfos=a,this.includeWarnings=l,this.json=n,this.stdout=i,t.get(\"enableProgressBars\")&&!n&&i.isTTY&&i.columns>22){let g=t.get(\"progressBarStyle\")||YFe;if(!Object.prototype.hasOwnProperty.call(a0,g))throw new Error(\"Assertion failed: Invalid progress bar style\");this.progressStyle=a0[g];let f=12,h=Math.max(0,Math.min(i.columns-f,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*h/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!=\"string\"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<\"u\"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<\"u\"&&!this.configuration.get(\"preferAggregateCacheInfo\")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i==\"function\"?i:n,reportHeader:()=>{this.reportInfo(null,`\\u250C ${t}`),this.indent+=1,s0!==null&&!this.json&&this.includeInfos&&this.stdout.write(s0.start(t))},reportFooter:a=>{this.indent-=1,s0!==null&&!this.json&&this.includeInfos&&this.stdout.write(s0.end(t)),this.configuration.get(\"enableTimers\")&&a>200?this.reportInfo(null,`\\u2514 Completed in ${Ve(this.configuration,a,Oe.DURATION)}`):this.reportInfo(null,\"\\u2514 Completed\")},skipIfEmpty:(typeof i==\"function\"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get(\"preferAggregateCacheInfo\")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(\"\"):this.reportInfo(null,\"\")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:\"\",o=`${Ve(this.configuration,\"\\u27A4\",\"blueBright\")} ${s}${this.formatIndent()}${i}`;if(this.json)this.reportJson({type:\"info\",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:\"\";this.json?this.reportJson({type:\"warning\",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${Ve(this.configuration,\"\\u27A4\",\"yellowBright\")} ${s}${this.formatIndent()}${i}`)}reportError(t,i){this.errorCount+=1,this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:\"\";this.json?this.reportJson({type:\"error\",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${Ve(this.configuration,\"\\u27A4\",\"redBright\")} ${s}${this.formatIndent()}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error(\"Unimplemented: Progress bars can't have both progress and titles.\");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?\"\":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t=\"\";this.errorCount>0?t=\"Failed with errors\":this.warningCount>0?t=\"Done with warnings\":t=\"Done\";let i=Ve(this.configuration,Date.now()-this.startTime,Oe.DURATION),n=this.configuration.get(\"enableTimers\")?`${t} in ${i}`:t;this.errorCount>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})}\n`),this.writeProgress()}writeLineWithForgettableReset(t,{truncate:i}={}){this.forgettableLines=[],this.writeLine(t,{truncate:i})}writeLines(t,{truncate:i}={}){this.clearProgress({delta:t.length});for(let n of t)this.stdout.write(`${this.truncate(n,{truncate:i})}\n`);this.writeProgress()}reportCacheChanges({cacheHitCount:t,cacheMissCount:i}){let n=this.cacheHitCount-t,s=this.cacheMissCount-i;if(n===0&&s===0)return;let o=\"\";this.cacheHitCount>1?o+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?o+=\" - one package was already cached\":o+=\"No packages were cached\",this.cacheHitCount>0?this.cacheMissCount>1?o+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(o+=`, one had to be fetched (${mt(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?o+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(o+=` - one package had to be fetched (${mt(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,o)}commit(){let t=this.uncommitted;this.uncommitted=new Set;for(let i of t)i.committed=!0,i.action()}clearProgress({delta:t=0,clear:i=!1}){this.progressStyle!==null&&this.progress.size+t>0&&(this.stdout.write(`\\x1B[${this.progress.size+t}A`),(t>0||i)&&this.stdout.write(\"\\x1B[0J\"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let t=Date.now();t-this.progressTime>i7&&(this.progressFrame=(this.progressFrame+1)%r7.length,this.progressTime=t);let i=r7[this.progressFrame];for(let n of this.progress.values()){let s=\"\";if(typeof n.lastScaledSize<\"u\"){let c=this.progressStyle.chars[0].repeat(n.lastScaledSize),u=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-n.lastScaledSize);s=` ${c}${u}`}let o=this.formatName(null),a=o?`${o}: `:\"\",l=n.definition.title?` ${n.definition.title}`:\"\";this.stdout.write(`${Ve(this.configuration,\"\\u27A4\",\"blueBright\")} ${a}${i}${s}${l}\n`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},i7)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<\"u\"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>\"u\"&&(i=this.configuration.get(\"preferTruncatedLines\")),i&&(t=(0,s7.default)(t,0,this.stdout.columns-1)),t}formatName(t){return o7(t,{configuration:this.configuration,json:this.json})}formatNameWithHyperlink(t){return RF(t,{configuration:this.configuration,json:this.json})}formatIndent(){return\"\\u2502 \".repeat(this.indent)}};var Or=\"3.3.0\";var l7=(n=>(n.Yarn1=\"Yarn Classic\",n.Yarn2=\"Yarn\",n.Npm=\"npm\",n.Pnpm=\"pnpm\",n))(l7||{});async function za(r,e,t,i=[]){if(process.platform===\"win32\"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @\"${t}\" ${i.map(s=>`\"${s.replace('\"','\"\"')}\"`).join(\" \")} %*`;await M.writeFilePromise(x.format({dir:r,name:e,ext:\".cmd\"}),n)}await M.writeFilePromise(x.join(r,e),`#!/bin/sh\nexec \"${t}\" ${i.map(n=>`'${n.replace(/'/g,`'\"'\"'`)}'`).join(\" \")} \"$@\"\n`,{mode:493})}async function c7(r){let e=await nt.tryFind(r);if(e!=null&&e.packageManager){let i=tB(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(\".\");switch(i.name){case\"yarn\":{let o=Number(s)===1?\"Yarn Classic\":\"Yarn\";return{packageManagerField:!0,packageManager:o,reason:n}}break;case\"npm\":return{packageManagerField:!0,packageManager:\"npm\",reason:n};case\"pnpm\":return{packageManagerField:!0,packageManager:\"pnpm\",reason:n}}}}let t;try{t=await M.readFilePromise(x.join(r,xt.lockfile),\"utf8\")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:\"Yarn\",reason:'\"__metadata\" key found in yarn.lock'}:{packageManager:\"Yarn Classic\",reason:'\"__metadata\" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(x.join(r,\"package-lock.json\"))?{packageManager:\"npm\",reason:`found npm's \"package-lock.json\" lockfile`}:M.existsSync(x.join(r,\"pnpm-lock.yaml\"))?{packageManager:\"pnpm\",reason:`found pnpm's \"pnpm-lock.yaml\" lockfile`}:null}async function em({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,f]of Object.entries(process.env))typeof f<\"u\"&&(s[g.toLowerCase()!==\"path\"?g:\"PATH\"]=f);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,\"dist/yarn.js\"):process.argv[1];if(await Promise.all([za(t,\"node\",process.execPath),...Or!==null?[za(t,\"run\",process.execPath,[a,\"run\"]),za(t,\"yarn\",process.execPath,[a]),za(t,\"yarnpkg\",process.execPath,[a]),za(t,\"node-gyp\",process.execPath,[a,\"run\",\"--top-level\",\"node-gyp\"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error(\"Assertion failed: Missing project\");let g=r.tryWorkspaceByLocator(e),f=g?(c=g.manifest.version)!=null?c:\"\":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:\"\";s.npm_package_name=Ot(e),s.npm_package_version=f;let h;if(g)h=g.cwd;else{let p=r.storedPackages.get(e.locatorHash);if(!p)throw new Error(`Package for ${mt(r.configuration,e)} not found in the project`);let C=r.configuration.getLinkers(),w={project:r,report:new Ke({stdout:new ol.PassThrough,configuration:r.configuration})},B=C.find(v=>v.supportsPackage(p,w));if(!B)throw new Error(`The package ${mt(r.configuration,p)} isn't supported by any of the available linkers`);h=await B.findPackageLocation(p,w)}s.npm_package_json=K.fromPortablePath(x.join(h,xt.manifest))}let l=Or!==null?`yarn/${Or}`:`yarn/${Nf(\"@yarnpkg/core\").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,f,h)=>await za(t,Gr(g),f,h)),s}var jFe=2,qFe=(0,A7.default)(jFe);async function JFe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await qFe(async()=>{await M.mktempPromise(async o=>{let a=x.join(o,\"pack.log\"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&jo(s)?bC(s):s,f=g?ps(g):\"an external project\";c.write(`Packing ${f} from sources\n`);let h=await c7(r),p;h!==null?(c.write(`Using ${h.packageManager} for bootstrap. Reason: ${h.reason}\n\n`),p=h.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn\n\n`),p=\"Yarn\");let C=p===\"Yarn\"&&!(h!=null&&h.packageManagerField);await M.mktempPromise(async w=>{let B=await em({binFolder:w,ignoreCorepack:C}),D=new Map([[\"Yarn Classic\",async()=>{let H=n!==null?[\"workspace\",n]:[],j=x.join(r,xt.manifest),$=await M.readFilePromise(j),V=await Wo(process.execPath,[process.argv[1],\"set\",\"version\",\"classic\",\"--only-if-needed\"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(V.code!==0)return V.code;await M.writeFilePromise(j,$),await M.appendFilePromise(x.join(r,\".npmignore\"),`/.yarn\n`),c.write(`\n`),delete B.NODE_ENV;let W=await Wo(\"yarn\",[\"install\"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(W.code!==0)return W.code;c.write(`\n`);let Z=await Wo(\"yarn\",[...H,\"pack\",\"--filename\",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],[\"Yarn\",async()=>{let H=n!==null?[\"workspace\",n]:[];B.YARN_ENABLE_INLINE_BUILDS=\"1\";let j=x.join(r,xt.lockfile);await M.existsPromise(j)||await M.writeFilePromise(j,\"\");let $=await Wo(\"yarn\",[...H,\"pack\",\"--install-if-needed\",\"--filename\",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return $.code!==0?$.code:0}],[\"npm\",async()=>{if(n!==null){let ae=new ol.PassThrough,ge=Ff(ae);ae.pipe(c,{end:!1});let _=await Wo(\"npm\",[\"--version\"],{cwd:r,env:B,stdin:l,stdout:ae,stderr:u,end:0});if(ae.end(),_.code!==0)return c.end(),u.end(),_.code;let T=(await ge).toString().trim();if(!qc(T,\">=7.x\")){let N=qo(null,\"npm\"),ue=Zt(N,T),we=Zt(N,\">=7.x\");throw new Error(`Workspaces aren't supported by ${tr(t,ue)}; please upgrade to ${tr(t,we)} (npm has been detected as the primary package manager for ${Ve(t,r,Oe.PATH)})`)}}let H=n!==null?[\"--workspace\",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let j=await Wo(\"npm\",[\"install\"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(j.code!==0)return j.code;let $=new ol.PassThrough,V=Ff($);$.pipe(c);let W=await Wo(\"npm\",[\"pack\",\"--silent\",...H],{cwd:r,env:B,stdin:l,stdout:$,stderr:u});if(W.code!==0)return W.code;let Z=(await V).toString().trim().replace(/^.*\\n/s,\"\"),A=x.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(p);if(typeof D>\"u\")throw new Error(\"Assertion failed: Unsupported workflow\");let L=await D();if(!(L===0||typeof L>\"u\"))throw M.detachTemp(o),new ot(58,`Packing the package failed (exit code ${L}, logs can be found here: ${Ve(t,a,Oe.PATH)})`)})})})}async function WFe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return NF(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${mt(t.configuration,r)} not found in the project`);return await On.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new Ke({stdout:new ol.PassThrough,configuration:o})},c=a.find(h=>h.supportsPackage(n,l));if(!c)throw new Error(`The package ${mt(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new jt(u,{baseFs:s});return(await nt.find(ke.dot,{baseFs:g})).scripts.has(e)},{libzip:await nn()})}async function A0(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await u7(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),f=c.scripts.get(e);if(typeof f>\"u\")return 1;let h=async()=>await t0(f,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(C=>C.wrapScriptExecution,h,n,r,e,{script:f,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function FF(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await u7(r,{project:n,binFolder:l,cwd:i});return await t0(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function zFe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await em({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await Promise.all(Array.from(await h7(r),([s,[,o]])=>za(e,Gr(s),process.execPath,[o]))),typeof t>\"u\"&&(t=x.dirname(await M.realpathPromise(x.join(r.cwd,\"package.json\")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function u7(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return zFe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${mt(e.configuration,r)} not found in the project`);return await On.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new Ke({stdout:new ol.PassThrough,configuration:l})},g=c.find(w=>w.supportsPackage(o,u));if(!g)throw new Error(`The package ${mt(e.configuration,o)} isn't supported by any of the available linkers`);let f=await em({project:e,locator:r,binFolder:t,lifecycleScript:n});await Promise.all(Array.from(await l0(r,{project:e}),([w,[,B]])=>za(t,Gr(w),process.execPath,[B])));let h=await g.findPackageLocation(o,u),p=new jt(h,{baseFs:a}),C=await nt.find(ke.dot,{baseFs:p});return typeof i>\"u\"&&(i=h),{manifest:C,binFolder:t,env:f,cwd:i}},{libzip:await nn()})}async function g7(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await A0(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function NF(r,e){return r.manifest.scripts.has(e)}async function f7(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=x.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the \"${e}\" lifecycle script inside a workspace (\"${K.fromPortablePath(r.cwd)}\")\n`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:mt(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the \"${e}\" lifecycle script`);let g=await g7(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new ot(36,`${(0,a7.default)(e)} script failed (exit code ${Ve(n,g,Oe.NUMBER)}, logs can be found here: ${Ve(n,a,Oe.PATH)}); run ${Ve(n,`yarn ${e}`,Oe.CODE)} to investigate`)})}async function VFe(r,e,t){NF(r,e)&&await f7(r,e,t)}async function l0(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${mt(t,r)} not found in the project`);let s=new ol.Writable,o=t.getLinkers(),a={project:e,report:new Ke({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${tr(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let f=o.find(p=>p.supportsPackage(g,a));if(!f)return Uo.skip;let h=null;try{h=await f.findPackageLocation(g,a)}catch(p){if(p.code===\"LOCATOR_NOT_INSTALLED\")return Uo.skip;throw p}return{dependency:g,packageLocation:h}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:f}=u;for(let[h,p]of g.bin)i.set(h,[g,K.fromPortablePath(x.resolve(f,p))])}return i}async function h7(r){return await l0(r.anchoredLocator,{project:r.project})}async function p7(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await l0(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${mt(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,f]=u,h=await em({project:n,locator:r,binFolder:g});await Promise.all(Array.from(c,([C,[,w]])=>za(h.BERRY_BIN_FOLDER,Gr(C),process.execPath,[w])));let p;try{p=await Wo(process.execPath,[...l,f,...t],{cwd:i,env:h,stdin:s,stdout:o,stderr:a})}finally{await M.removePromise(h.BERRY_BIN_FOLDER)}return p.code})}async function XFe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await p7(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var yi={};ht(yi,{convertToZip:()=>oTe,extractArchiveTo:()=>ATe,makeArchiveFromDirectory:()=>sTe});var W_=J(\"stream\"),z_=ne(U_());var H_=J(\"os\"),G_=ne(lf()),Y_=J(\"worker_threads\"),Cl=Symbol(\"kTaskInfo\"),rQ=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,G_.default)(Math.max(1,(0,H_.cpus)().length));this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new Y_.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,\"--unhandled-rejections=strict\"]});return e.on(\"message\",t=>{if(!e[Cl])throw new Error(\"Assertion failed: Worker sent a result without having a task assigned\");e[Cl].resolve(t),e[Cl]=null,e.unref(),this.workers.push(e)}),e.on(\"error\",t=>{var i;(i=e[Cl])==null||i.reject(t),e[Cl]=null}),e.on(\"exit\",t=>{var i;t!==0&&((i=e[Cl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[Cl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[Cl]={resolve:n,reject:s},t.postMessage(e)})})}};var V_=ne(q_());async function sTe(r,{baseFs:e=new $t,prefixPath:t=ke.root,compressionLevel:i,inMemory:n=!1}={}){let s=await nn(),o;if(n)o=new Xr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=x.join(l,\"archive.zip\");o=new Xr(c,{create:!0,libzip:s,level:i})}let a=x.resolve(ke.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var J_;async function oTe(r,e){let t=await M.mktempPromise(),i=x.join(t,\"archive.zip\");return J_||(J_=new rQ((0,V_.getContent)())),await J_.run({tmpFile:i,tgz:r,opts:e}),new Xr(i,{libzip:await nn(),level:e.compressionLevel})}async function*aTe(r){let e=new z_.default.Parse,t=new W_.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on(\"entry\",i=>{t.write(i)}),e.on(\"error\",i=>{t.destroy(i)}),e.on(\"close\",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ATe(r,e,{stripComponents:t=0,prefixPath:i=ke.dot}={}){var s,o;function n(a){if(a.path[0]===\"/\")return!0;let l=a.path.split(/\\//g);return!!(l.some(c=>c===\"..\")||l.length<=t)}for await(let a of aTe(r)){if(n(a))continue;let l=x.normalize(K.toPortablePath(a.path)).replace(/\\/$/,\"\").split(/\\//g);if(l.length<=t)continue;let c=l.slice(t).join(\"/\"),u=x.join(i,c),g=420;switch((a.type===\"Directory\"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case\"Directory\":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Pr.SAFE_TIME,Pr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,Pr.SAFE_TIME,Pr.SAFE_TIME);break;case\"OldFile\":case\"File\":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Pr.SAFE_TIME,Pr.SAFE_TIME]}),e.writeFileSync(u,await Ff(a),{mode:g}),e.utimesSync(u,Pr.SAFE_TIME,Pr.SAFE_TIME);break;case\"SymbolicLink\":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Pr.SAFE_TIME,Pr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,Pr.SAFE_TIME,Pr.SAFE_TIME);break}}return e}var Vn={};ht(Vn,{emitList:()=>lTe,emitTree:()=>tZ,treeNodeToJson:()=>eZ,treeNodeToTreeify:()=>$_});var Z_=ne(__());function $_(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<\"u\"&&g.push(Bw(e,l,2)),typeof c<\"u\"&&g.push(Ve(e,c[0],c[1])),g.length===0&&g.push(Bw(e,`${a}`,2));let f=g.join(\": \"),h=s[f]={};typeof u<\"u\"&&i(u,h)}};if(typeof r.children>\"u\")throw new Error(\"The root node must only contain children\");return i(r.children,t),t}function eZ(r){let e=t=>{var s;if(typeof t.children>\"u\"){if(typeof t.value>\"u\")throw new Error(\"Assertion failed: Expected a value to be set if the children are missing\");return Oc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>\"u\"?n:{value:Oc(t.value[0],t.value[1]),children:n}};return e(r)}function lTe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));tZ({children:n},{configuration:e,stdout:t,json:i})}function tZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(eZ(l))}\n`);return}let s=(0,Z_.asTree)($_(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\\u2502\n$1`).replace(/^│\\n/,\"\")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\\n]+\\n)(([│ ]).{2}[├└].{2}[^\\n]*\\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3  \\u2502\n$2`).replace(/^│\\n/,\"\");if(n>=3)throw new Error(\"Only the first two levels are accepted by treeUtils.emitTree\");t.write(s)}var rZ=J(\"crypto\"),sL=ne(J(\"fs\"));var cTe=8,kt=class{constructor(e,{configuration:t,immutable:i=t.get(\"enableImmutableCache\"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,rZ.randomBytes)(8).toString(\"hex\")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get(\"cacheKeyOverride\");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get(\"compressionLevel\"),a=o!==lc?`c${o}`:\"\";this.cacheKey=[cTe,a].join(\"\")}}static async find(e,{immutable:t,check:i}={}){let n=new kt(e.get(\"cacheFolder\"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get(\"enableMirror\"))return null;let e=`${this.configuration.get(\"globalFolder\")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${jf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uTe(t).slice(0,10);return`${jf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?x.resolve(this.cwd,this.getVersionFilename(e)):t===null||nL(t)!==this.cacheKey?null:x.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?x.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get(\"enableGlobalCache\"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new ot(56,\"Cache path does not exist.\")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=x.resolve(this.cwd,\".gitignore\");await M.changeFilePromise(e,`/.gitignore\n*.flock\n*.tmp\n`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new $t,c=()=>{let Z=new Xr(null,{libzip:D}),A=x.join(ke.root,Fk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(x.join(A,xt.manifest),{name:Ot(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ge;if(A===null&&((ge=o.unstablePackages)==null?void 0:ge.has(e.locatorHash)))return null;let ae=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Zw(Z)}`:t;if(A!==null){let _=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Zw(A)}`:t;if(ae!==_)throw new ot(18,\"The remote archive doesn't match the local checksum - has the local cache been corrupted?\")}if(t!==null&&ae!==t){let _;switch(this.check?_=\"throw\":nL(t)!==nL(ae)?_=\"update\":_=this.configuration.get(\"checksumBehavior\"),_){case\"ignore\":return t;case\"update\":return ae;default:case\"throw\":throw new ot(18,\"The remote archive doesn't match the expected checksum\")}}return ae},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${mt(this.configuration,e)}`);let A=await s(),ae=A.getRealPath();return A.saveAndClose(),await M.chmodPromise(ae,420),await u(Z,ae)},f=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:\"loader\",path:A}}return{source:\"mirror\",path:a}},h=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${mt(this.configuration,e)}`);if(this.immutable)throw new ot(56,`Cache entry required but missing for ${mt(this.configuration,e)}`);let{path:Z,source:A}=await f(),ae=await u(Z),ge=this.getLocatorPath(e,ae,o);if(!ge)throw new Error(\"Assertion failed: Expected the cache path to be available\");let _=[];A!==\"mirror\"&&a!==null&&_.push(async()=>{let N=`${a}${this.cacheId}`;await M.copyFilePromise(Z,N,sL.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,a)}),(!o.mirrorWriteOnly||a===null)&&_.push(async()=>{let N=`${ge}${this.cacheId}`;await M.copyFilePromise(Z,N,sL.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,ge)});let T=o.mirrorWriteOnly&&a!=null?a:ge;return await Promise.all(_.map(N=>N())),[!1,T,ae]},p=async()=>{let A=(async()=>{var ue;let ae=this.getLocatorPath(e,t,o),ge=ae!==null?await l.existsPromise(ae):!1,_=!!((ue=o.mockedPackages)!=null&&ue.has(e.locatorHash))&&(!this.check||!ge),T=_||ge,N=T?i:n;if(N&&N(),T){let we=null,Le=ae;return _||(we=this.check?await g(Le):await u(Le)),[_,Le,we]}else return h()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[C,w,B]=await p();this.markedFiles.add(w);let v,D=await nn(),L=C?()=>c():()=>new Xr(w,{baseFs:l,libzip:D,readOnly:!0}),H=new Jg(()=>NP(()=>v=L(),Z=>`Failed to open the cache entry for ${mt(this.configuration,e)}: ${Z}`),x),j=new Qo(w,{baseFs:H,pathUtils:x}),$=()=>{v==null||v.discardAndClose()},V=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[j,$,V]}};function nL(r){let e=r.indexOf(\"/\");return e!==-1?r.slice(0,e):null}function uTe(r){let e=r.indexOf(\"/\");return e!==-1?r.slice(e+1):r}var iQ=(t=>(t[t.SCRIPT=0]=\"SCRIPT\",t[t.SHELLCODE=1]=\"SHELLCODE\",t))(iQ||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;CC(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i==\"function\"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i==\"function\"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${Ve(this.configuration,\"\\u27A4\",\"redBright\")} ${this.formatNameWithHyperlink(t)}: ${i}\n`)}reportProgress(t){return{...Promise.resolve().then(async()=>{for await(let{}of t);}),stop:()=>{}}}reportJson(t){}async finalize(){this.errorCount>0&&(this.stdout.write(`\n`),this.stdout.write(`${Ve(this.configuration,\"\\u27A4\",\"redBright\")} Errors happened when preparing the environment required to run this command.\n`),this.suggestInstall&&this.stdout.write(`${Ve(this.configuration,\"\\u27A4\",\"redBright\")} This might be caused by packages being missing from the lockfile, in which case running \"yarn install\" might help.\n`))}formatNameWithHyperlink(t){return RF(t,{configuration:this.configuration,json:!1})}};var yL=ne(Xe()),dQ=J(\"crypto\");function rA(){}rA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i==\"function\"&&(n=i,i={}),this.options=i;var s=this;function o(C){return n?(setTimeout(function(){n(void 0,C)},0),!0):C}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],f=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&f+1>=l)return o([{value:this.join(t),count:t.length}]);function h(){for(var C=-1*c;C<=c;C+=2){var w=void 0,B=g[C-1],v=g[C+1],D=(v?v.newPos:0)-C;B&&(g[C-1]=void 0);var L=B&&B.newPos+1<a,H=v&&0<=D&&D<l;if(!L&&!H){g[C]=void 0;continue}if(!L||H&&B.newPos<v.newPos?(w=fTe(v),s.pushComponent(w.components,void 0,!0)):(w=B,w.newPos++,s.pushComponent(w.components,!0,void 0)),D=s.extractCommon(w,t,e,C),w.newPos+1>=a&&D+1>=l)return o(gTe(s,w.components,t,e,s.useLongestToken));g[C]=w}c++}if(n)(function C(){setTimeout(function(){if(c>u)return n();h()||C()},0)})();else for(;c<=u;){var p=h();if(p)return p}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1<s&&l+1<o&&this.equals(t[a+1],i[l+1]);)a++,l++,c++;return c&&e.components.push({count:c}),e.newPos=a,l},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],i=0;i<e.length;i++)e[i]&&t.push(e[i]);return t},castInput:function(e){return e},tokenize:function(e){return e.split(\"\")},join:function(e){return e.join(\"\")}};function gTe(r,e,t,i,n){for(var s=0,o=e.length,a=0,l=0;s<o;s++){var c=e[s];if(c.removed){if(c.value=r.join(i.slice(l,l+c.count)),l+=c.count,s&&e[s-1].added){var g=e[s-1];e[s-1]=e[s],e[s]=g}}else{if(!c.added&&n){var u=t.slice(a,a+c.count);u=u.map(function(h,p){var C=i[l+p];return C.length>h.length?C:h}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var f=e[o-1];return o>1&&typeof f.value==\"string\"&&(f.added||f.removed)&&r.equals(\"\",f.value)&&(e[o-2].value+=f.value,e.pop()),e}function fTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var SAt=new rA;var iZ=/^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/,nZ=/\\S/,sZ=new rA;sZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!nZ.test(r)&&!nZ.test(e)};sZ.tokenize=function(r){for(var e=r.split(/([^\\S\\r\\n]+|[()[\\]{}'\"\\r\\n]|\\b)/),t=0;t<e.length-1;t++)!e[t+1]&&e[t+2]&&iZ.test(e[t])&&iZ.test(e[t+2])&&(e[t]+=e[t+2],e.splice(t+1,2),t--);return e};var cL=new rA;cL.tokenize=function(r){var e=[],t=r.split(/(\\n|\\r\\n)/);t[t.length-1]||t.pop();for(var i=0;i<t.length;i++){var n=t[i];i%2&&!this.options.newlineIsToken?e[e.length-1]+=n:(this.options.ignoreWhitespace&&(n=n.trim()),e.push(n))}return e};function hTe(r,e,t){return cL.diff(r,e,t)}var pTe=new rA;pTe.tokenize=function(r){return r.split(/(\\S.+?[.!?])(?=\\s+|$)/)};var dTe=new rA;dTe.tokenize=function(r){return r.split(/([{}:;,]|\\s+)/)};function nQ(r){return typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?nQ=function(e){return typeof e}:nQ=function(e){return e&&typeof Symbol==\"function\"&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},nQ(r)}function oL(r){return CTe(r)||mTe(r)||ETe(r)||ITe()}function CTe(r){if(Array.isArray(r))return aL(r)}function mTe(r){if(typeof Symbol<\"u\"&&Symbol.iterator in Object(r))return Array.from(r)}function ETe(r,e){if(!!r){if(typeof r==\"string\")return aL(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t===\"Object\"&&r.constructor&&(t=r.constructor.name),t===\"Map\"||t===\"Set\")return Array.from(r);if(t===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return aL(r,e)}}function aL(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t<e;t++)i[t]=r[t];return i}function ITe(){throw new TypeError(`Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var yTe=Object.prototype.toString,Em=new rA;Em.useLongestToken=!0;Em.tokenize=cL.tokenize;Em.castInput=function(r){var e=this.options,t=e.undefinedReplacement,i=e.stringifyReplacer,n=i===void 0?function(s,o){return typeof o>\"u\"?t:o}:i;return typeof r==\"string\"?r:JSON.stringify(AL(r,null,null,n),n,\"  \")};Em.equals=function(r,e){return rA.prototype.equals.call(Em,r.replace(/,([\\r\\n])/g,\"$1\"),e.replace(/,([\\r\\n])/g,\"$1\"))};function AL(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s<e.length;s+=1)if(e[s]===r)return t[s];var o;if(yTe.call(r)===\"[object Array]\"){for(e.push(r),o=new Array(r.length),t.push(o),s=0;s<r.length;s+=1)o[s]=AL(r[s],e,t,i,n);return e.pop(),t.pop(),o}if(r&&r.toJSON&&(r=r.toJSON()),nQ(r)===\"object\"&&r!==null){e.push(r),o={},t.push(o);var a=[],l;for(l in r)r.hasOwnProperty(l)&&a.push(l);for(a.sort(),s=0;s<a.length;s+=1)l=a[s],o[l]=AL(r[l],e,t,i,l);e.pop(),t.pop()}else o=r;return o}var lL=new rA;lL.tokenize=function(r){return r.slice()};lL.join=lL.removeEmpty=function(r){return r};function oZ(r,e,t,i,n,s,o){o||(o={}),typeof o.context>\"u\"&&(o.context=4);var a=hTe(t,i,o);if(!a)return;a.push({value:\"\",lines:[]});function l(B){return B.map(function(v){return\" \"+v})}for(var c=[],u=0,g=0,f=[],h=1,p=1,C=function(v){var D=a[v],L=D.lines||D.value.replace(/\\n$/,\"\").split(`\n`);if(D.lines=L,D.added||D.removed){var H;if(!u){var j=a[v-1];u=h,g=p,j&&(f=o.context>0?l(j.lines.slice(-o.context)):[],u-=f.length,g-=f.length)}(H=f).push.apply(H,oL(L.map(function(_){return(D.added?\"+\":\"-\")+_}))),D.added?p+=L.length:h+=L.length}else{if(u)if(L.length<=o.context*2&&v<a.length-2){var $;($=f).push.apply($,oL(l(L)))}else{var V,W=Math.min(L.length,o.context);(V=f).push.apply(V,oL(l(L.slice(0,W))));var Z={oldStart:u,oldLines:h-u+W,newStart:g,newLines:p-g+W,lines:f};if(v>=a.length-2&&L.length<=o.context){var A=/\\n$/.test(t),ae=/\\n$/.test(i),ge=L.length==0&&f.length>Z.oldLines;!A&&ge&&t.length>0&&f.splice(Z.oldLines,0,\"\\\\ No newline at end of file\"),(!A&&!ge||!ae)&&f.push(\"\\\\ No newline at end of file\")}c.push(Z),u=0,g=0,f=[]}h+=L.length,p+=L.length}},w=0;w<a.length;w++)C(w);return{oldFileName:r,newFileName:e,oldHeader:n,newHeader:s,hunks:c}}var CQ=ne(gee()),Cee=ne(lf()),mee=ne($r()),BL=J(\"util\"),wL=ne(J(\"v8\")),QL=ne(J(\"zlib\"));var VKe=[[/^(git(?:\\+(?:https|ssh))?:\\/\\/.*(?:\\.git)?)#(.*)$/,(r,e,t,i)=>`${t}#commit=${i}`],[/^https:\\/\\/((?:[^/]+?)@)?codeload\\.github\\.com\\/([^/]+\\/[^/]+)\\/tar\\.gz\\/([0-9a-f]+)$/,(r,e,t=\"\",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\\/\\/((?:[^/]+?)@)?github\\.com\\/([^/]+\\/[^/]+?)(?:\\.git)?#([0-9a-f]+)$/,(r,e,t=\"\",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\\/\\/[^/]+\\/(?:[^/]+\\/)*(?:@.+(?:\\/|(?:%2f)))?([^/]+)\\/(?:-|download)\\/\\1-[^/]+\\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\\/\\/npm\\.pkg\\.github\\.com\\/download\\/(?:@[^/]+)\\/(?:[^/]+)\\/(?:[^/]+)\\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\\/\\/npm\\.fontawesome\\.com\\/(?:@[^/]+)\\/([^/]+)\\/-\\/([^/]+)\\/\\1-\\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\\/\\/[^/]+\\/.*\\/(@[^/]+)\\/([^/]+)\\/-\\/\\1\\/\\2-(?:[.\\d\\w-]+)\\.tgz(?:#|$)/,(r,e)=>rB({protocol:\"npm:\",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],fQ=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=x.join(e.cwd,e.configuration.get(\"lockfileFilename\"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,\"utf8\"),s=Qi(n);if(Object.prototype.hasOwnProperty.call(s,\"__metadata\"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=xC(a);if(!l){t.reportWarning(14,`Failed to parse the string \"${a}\" into a proper descriptor`);continue}let c=ro(l.range)?Zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let f;for(let[p,C]of VKe){let w=g.match(p);if(w){f=C(u,...w);break}}if(!f){t.reportWarning(14,`${tr(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not \"${g}\")`);continue}let h=c;try{let p=Yf(c.range),C=xC(p.selector,!0);C&&(h=C)}catch{}o.set(c.descriptorHash,en(h,f))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error(\"Assertion failed: This resolver doesn't support resolving locators to packages\")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error(\"Assertion failed: The resolution store should have been setup\");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error(\"Assertion failed: The resolution should have been registered\");return await this.resolver.getCandidates(Pk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error(\"Assertion failed: This resolver doesn't support resolving locators to packages\")}};var hQ=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(eB(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error(\"The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes\")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(eB(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error(\"Expected the resolution to have been successful - resolution not found\");if(n=i.project.originalPackages.get(s),!n)throw new Error(\"Expected the resolution to have been successful - package not found\");return[n]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error(\"The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache\");return i}};var pQ=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new ot(20,`This package doesn't seem to be present in your lockfile; run \"yarn install\" to update the lockfile`)}async getSatisfying(e,t,i){throw new ot(20,`This package doesn't seem to be present in your lockfile; run \"yarn install\" to update the lockfile`)}async resolve(e,t){throw new ot(20,`This package doesn't seem to be present in your lockfile; run \"yarn install\" to update the lockfile`)}};var ni=class extends xi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t==\"function\"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t==\"function\"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var fee=ne(Sk());var Kh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await nt.tryFind(this.cwd))!=null?s:new nt,this.relativeCwd=x.relative(this.project.cwd,this.cwd)||ke.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${$i(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:\"0.0.0\";this.locator=en(e,t),this.anchoredDescriptor=Zt(this.locator,`${Jr.protocol}${this.relativeCwd}`),this.anchoredLocator=en(this.locator,`${Jr.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o),n=await(0,fee.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:[\"**/node_modules\",\"**/.git\",\"**/.yarn\"]});n.sort();for(let o of n){let a=x.resolve(this.cwd,K.toPortablePath(o));M.existsSync(x.join(a,\"package.json\"))&&this.workspacesCwds.add(a)}}accepts(e){var o;let t=e.indexOf(\":\"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Jr.protocol&&x.normalize(n)===this.relativeCwd||i===Jr.protocol&&(n===\"*\"||n===\"^\"||n===\"~\"))return!0;let s=ro(n);return s?i===Jr.protocol?s.test((o=this.manifest.version)!=null?o:\"0.0.0\"):this.project.configuration.get(\"enableTransparentWorkspaces\")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?\"root-workspace\":`${x.basename(this.cwd)}`||\"unnamed-workspace\"}getRecursiveWorkspaceDependencies({dependencies:e=nt.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=nt.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&vC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=[];for(let t of this.workspacesCwds){let i=this.project.workspacesByCwd.get(t);i&&e.push(i,...i.getRecursiveWorkspaceChildren())}return e}async persistManifest(){let e={};this.manifest.exportTo(e);let t=x.join(this.cwd,nt.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)}\n`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var hee=6,XKe=1,_Ke=/ *, */g,pee=/\\/$/,ZKe=32,$Ke=(0,BL.promisify)(QL.default.gzip),e1e=(0,BL.promisify)(QL.default.gunzip),Xn=(t=>(t.UpdateLockfile=\"update-lockfile\",t.SkipBuild=\"skip-build\",t))(Xn||{}),IL={restoreInstallersCustomData:[\"installersCustomData\"],restoreResolutions:[\"accessibleLocators\",\"conditionalLocators\",\"disabledLocators\",\"optionalBuilds\",\"storedDescriptors\",\"storedResolutions\",\"storedPackages\",\"lockFileChecksum\"],restoreBuildState:[\"storedBuildState\"]},dee=r=>$i(`${XKe}`,r),He=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var p,C,w;if(!e.projectCwd)throw new yL.UsageError(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(x.join(s,xt.manifest))){i=s;break}n=x.dirname(s)}let o=new He(e.projectCwd,{configuration:e});(p=Ie.telemetry)==null||p.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(C=Ie.telemetry)==null||C.reportWorkspaceCount(o.workspaces.length),(w=Ie.telemetry)==null||w.reportDependencyCount(o.workspaces.reduce((B,v)=>B+v.manifest.dependencies.size+v.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=Ve(e,o.cwd,Oe.PATH),u=Ve(e,x.relative(o.cwd,i),Oe.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,f=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,h=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new yL.UsageError(`The nearest package directory (${Ve(e,i,Oe.PATH)}) doesn't seem to be part of the project declared in ${Ve(e,o.cwd,Oe.PATH)}.\n\n${[g,f,h].join(`\n`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=x.join(this.cwd,this.configuration.get(\"lockfileFilename\")),t=this.configuration.get(\"defaultLanguageName\");if(M.existsSync(e)){let n=await M.readFilePromise(e,\"utf8\");this.lockFileChecksum=dee(n);let s=Qi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o<hee;for(let l of Object.keys(s)){if(l===\"__metadata\")continue;let c=s[l];if(typeof c.resolution>\"u\")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=jc(c.resolution,!0),g=new nt;g.load(c,{yamlCompatibilityMode:!0});let f=g.version,h=g.languageName||t,p=c.linkType.toUpperCase(),C=(i=c.conditions)!=null?i:null,w=g.dependencies,B=g.peerDependencies,v=g.dependenciesMeta,D=g.peerDependenciesMeta,L=g.bin;if(c.checksum!=null){let j=typeof a<\"u\"&&!c.checksum.includes(\"/\")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,j)}let H={...u,version:f,languageName:h,linkType:p,conditions:C,dependencies:w,peerDependencies:B,dependenciesMeta:v,peerDependenciesMeta:D,bin:L};this.originalPackages.set(H.locatorHash,H);for(let j of l.split(_Ke)){let $=ZA(j);this.storedDescriptors.set($.descriptorHash,$),this.storedResolutions.set($.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=[this.cwd];for(;e.length>0;){let t=e;e=[];for(let i of t){if(this.workspacesByCwd.has(i))continue;let n=await this.addWorkspace(i),s=this.storedPackages.get(n.anchoredLocator.locatorHash);s&&(n.dependencies=s.dependencies);for(let o of n.workspacesCwds)e.push(o)}}}async addWorkspace(e){let t=new Kh(e,{project:this});await t.setup();let i=this.workspacesByIdent.get(t.locator.identHash);if(typeof i<\"u\")throw new Error(`Duplicate workspace name ${ui(this.configuration,t.locator)}: ${K.fromPortablePath(e)} conflicts with ${K.fromPortablePath(i.cwd)}`);return this.workspaces.push(t),this.workspacesByCwd.set(e,t),this.workspacesByIdent.set(t.locator.identHash,t),t}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){x.isAbsolute(e)||(e=x.resolve(this.cwd,e)),e=x.normalize(e).replace(/\\/+$/,\"\");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)x.relative(i.cwd,e).startsWith(\"../\")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>\"u\"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ui(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(_A(e)&&(e=QC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${tr(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(jo(e)&&(e=bC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${mt(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${DC(this.configuration,e)} (${Ve(this.configuration,x.join(e.cwd,xt.manifest),Oe.PATH)}) to have been resolved. Run \"yarn install\" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}forgetResolution(e){let t=n=>{this.storedResolutions.delete(n),this.storedDescriptors.delete(n)},i=n=>{this.originalPackages.delete(n),this.storedPackages.delete(n),this.accessibleLocators.delete(n)};if(\"descriptorHash\"in e){let n=this.storedResolutions.get(e.descriptorHash);t(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof n<\"u\"&&!s.has(n)&&i(n)}if(\"locatorHash\"in e){i(e.locatorHash);for(let[n,s]of this.storedResolutions)s===e.locatorHash&&t(n)}}forgetTransientResolutions(){let e=this.configuration.makeResolver();for(let t of this.originalPackages.values()){let i;try{i=e.shouldPersistResolution(t,{project:this,resolver:e})}catch{i=!1}i||this.forgetResolution(t)}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)_A(i)&&e.dependencies.set(t,QC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Ot(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!mee.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new ni,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(pee,\"\")!==e.replace(pee,\"\"))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error(\"Workspaces must have been setup before calling this function\");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new fQ(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new pQ(t)]:[i,t],s=new Wf([new hQ(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,f=new Map,h=new Map,p=this.topLevelWorkspace.anchoredLocator,C=new Set,w=[],B=Hk(),v=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(xi.progressViaTitle(),async W=>{let Z=async T=>{let N=await Rf(async()=>await s.resolve(T,a),Le=>`${mt(this.configuration,T)}: ${Le}`);if(!vC(T,N))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${mt(this.configuration,T)} to ${mt(this.configuration,N)})`);g.set(N.locatorHash,N);let ue=this.configuration.normalizePackage(N);for(let[Le,Pe]of ue.dependencies){let Te=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,Pe,this,ue,Pe,{resolver:s,resolveOptions:a});if(!SC(Pe,Te))throw new Error(\"Assertion failed: The descriptor ident cannot be changed through aliases\");let se=s.bindDescriptor(Te,T,a);ue.dependencies.set(Le,se)}let we=eo([...ue.dependencies.values()].map(Le=>_(Le)));return w.push(we),we.catch(()=>{}),c.set(ue.locatorHash,ue),ue},A=async T=>{let N=f.get(T.locatorHash);if(typeof N<\"u\")return N;let ue=Promise.resolve().then(()=>Z(T));return f.set(T.locatorHash,ue),ue},ae=async(T,N)=>{let ue=await _(N);return l.set(T.descriptorHash,T),u.set(T.descriptorHash,ue.locatorHash),ue},ge=async T=>{W.setTitle(tr(this.configuration,T));let N=this.resolutionAliases.get(T.descriptorHash);if(typeof N<\"u\")return ae(T,this.storedDescriptors.get(N));let ue=s.getResolutionDependencies(T,a),we=new Map(await eo(ue.map(async Te=>{let se=s.bindDescriptor(Te,p,a),Ae=await _(se);return C.add(Ae.locatorHash),[Te.descriptorHash,Ae]}))),Pe=(await Rf(async()=>await s.getCandidates(T,we,a),Te=>`${tr(this.configuration,T)}: ${Te}`))[0];if(typeof Pe>\"u\")throw new Error(`${tr(this.configuration,T)}: No candidates found`);return l.set(T.descriptorHash,T),u.set(T.descriptorHash,Pe.locatorHash),A(Pe)},_=T=>{let N=h.get(T.descriptorHash);if(typeof N<\"u\")return N;l.set(T.descriptorHash,T);let ue=Promise.resolve().then(()=>ge(T));return h.set(T.descriptorHash,ue),ue};for(let T of this.workspaces){let N=T.anchoredDescriptor;w.push(_(N))}for(;w.length>0;){let T=[...w];w.length=0,await eo(T)}});let D=new Set(this.resolutionAliases.values()),L=new Set(c.keys()),H=new Set,j=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:D,optionalBuilds:L,peerRequirements:j,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of C)L.delete(W);for(let W of D)l.delete(W),u.delete(W);let $=new Set,V=new Set;for(let W of c.values())W.conditions!=null&&(!L.has(W.locatorHash)||(sB(W,v)||(sB(W,B)&&e.report.reportWarningOnce(77,`${mt(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Ve(this.configuration,\"supportedArchitectures\",Pi.SETTING)} setting`),V.add(W.locatorHash)),$.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=$,this.disabledLocators=V,this.originalPackages=g,this.optionalBuilds=L,this.peerRequirements=j,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(Bn(this.storedResolutions.values(),[f=>{let h=this.storedPackages.get(f);if(!h)throw new Error(\"Assertion failed: The locator should have been registered\");return ps(h)}])));n===\"update-lockfile\"&&(l=l.filter(f=>!this.storedChecksums.has(f)));let c=!1,u=xi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Cee.default)(ZKe);if(await t.startCacheReport(async()=>{await eo(l.map(f=>g(async()=>{let h=this.storedPackages.get(f);if(!h)throw new Error(\"Assertion failed: The locator should have been registered\");if(jo(h))return;let p;try{p=await o.fetch(h,a)}catch(C){C.message=`${mt(this.configuration,h)}: ${C.message}`,t.reportExceptionOnce(C),c=C;return}p.checksum!=null?this.storedChecksums.set(h.locatorHash,p.checksum):this.storedChecksums.delete(h.locatorHash),p.releaseFs&&p.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var A,ae,ge;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(_=>{let T=_.makeInstaller(c),N=T.getCustomDataKey(),ue=this.installersCustomData.get(N);return typeof ue<\"u\"&&T.attachCustomData(ue),[_,T]})),g=new Map,f=new Map,h=new Map,p=new Map(await eo([...this.accessibleLocators].map(async _=>{let T=this.storedPackages.get(_);if(!T)throw new Error(\"Assertion failed: The locator should have been registered\");return[_,await o.fetch(T,a)]}))),C=[];for(let _ of this.accessibleLocators){let T=this.storedPackages.get(_);if(typeof T>\"u\")throw new Error(\"Assertion failed: The locator should have been registered\");let N=p.get(T.locatorHash);if(typeof N>\"u\")throw new Error(\"Assertion failed: The fetch result should have been registered\");let ue=[],we=Pe=>{ue.push(Pe)},Le=this.tryWorkspaceByLocator(T);if(Le!==null){let Pe=[],{scripts:Te}=Le.manifest;for(let Ae of[\"preinstall\",\"install\",\"postinstall\"])Te.has(Ae)&&Pe.push([0,Ae]);try{for(let[Ae,Qe]of u)if(Ae.supportsPackage(T,c)&&(await Qe.installPackage(T,N,{holdFetchResult:we})).buildDirective!==null)throw new Error(\"Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core\")}finally{ue.length===0?(A=N.releaseFs)==null||A.call(N):C.push(eo(ue).catch(()=>{}).then(()=>{var Ae;(Ae=N.releaseFs)==null||Ae.call(N)}))}let se=x.join(N.packageFs.getRealPath(),N.prefixPath);f.set(T.locatorHash,se),!jo(T)&&Pe.length>0&&h.set(T.locatorHash,{directives:Pe,buildLocations:[se]})}else{let Pe=l.find(Ae=>Ae.supportsPackage(T,c));if(!Pe)throw new ot(12,`${mt(this.configuration,T)} isn't supported by any available linker`);let Te=u.get(Pe);if(!Te)throw new Error(\"Assertion failed: The installer should have been registered\");let se;try{se=await Te.installPackage(T,N,{holdFetchResult:we})}finally{ue.length===0?(ae=N.releaseFs)==null||ae.call(N):C.push(eo(ue).then(()=>{}).then(()=>{var Ae;(Ae=N.releaseFs)==null||Ae.call(N)}))}g.set(T.locatorHash,Pe),f.set(T.locatorHash,se.packageLocation),se.buildDirective&&se.buildDirective.length>0&&se.packageLocation&&h.set(T.locatorHash,{directives:se.buildDirective,buildLocations:[se.packageLocation]})}}let w=new Map;for(let _ of this.accessibleLocators){let T=this.storedPackages.get(_);if(!T)throw new Error(\"Assertion failed: The locator should have been registered\");let N=this.tryWorkspaceByLocator(T)!==null,ue=async(we,Le)=>{let Pe=f.get(T.locatorHash);if(typeof Pe>\"u\")throw new Error(`Assertion failed: The package (${mt(this.configuration,T)}) should have been registered`);let Te=[];for(let se of T.dependencies.values()){let Ae=this.storedResolutions.get(se.descriptorHash);if(typeof Ae>\"u\")throw new Error(`Assertion failed: The resolution (${tr(this.configuration,se)}, from ${mt(this.configuration,T)})should have been registered`);let Qe=this.storedPackages.get(Ae);if(typeof Qe>\"u\")throw new Error(`Assertion failed: The package (${Ae}, resolved from ${tr(this.configuration,se)}) should have been registered`);let fe=this.tryWorkspaceByLocator(Qe)===null?g.get(Ae):null;if(typeof fe>\"u\")throw new Error(`Assertion failed: The package (${Ae}, resolved from ${tr(this.configuration,se)}) should have been registered`);fe===we||fe===null?f.get(Qe.locatorHash)!==null&&Te.push([se,Qe]):!N&&Pe!==null&&Df(w,Ae).push(Pe)}Pe!==null&&await Le.attachInternalDependencies(T,Te)};if(N)for(let[we,Le]of u)we.supportsPackage(T,c)&&await ue(we,Le);else{let we=g.get(T.locatorHash);if(!we)throw new Error(\"Assertion failed: The linker should have been found\");let Le=u.get(we);if(!Le)throw new Error(\"Assertion failed: The installer should have been registered\");await ue(we,Le)}}for(let[_,T]of w){let N=this.storedPackages.get(_);if(!N)throw new Error(\"Assertion failed: The package should have been registered\");let ue=g.get(N.locatorHash);if(!ue)throw new Error(\"Assertion failed: The linker should have been found\");let we=u.get(ue);if(!we)throw new Error(\"Assertion failed: The installer should have been registered\");await we.attachExternalDependents(N,T)}let B=new Map;for(let _ of u.values()){let T=await _.finalizeInstall();for(let N of(ge=T==null?void 0:T.records)!=null?ge:[])h.set(N.locatorHash,{directives:N.buildDirective,buildLocations:N.buildLocations});typeof(T==null?void 0:T.customData)<\"u\"&&B.set(_.getCustomDataKey(),T.customData)}if(this.installersCustomData=B,await eo(C),n===\"skip-build\")return;let v=new Set(this.storedPackages.keys()),D=new Set(h.keys());for(let _ of D)v.delete(_);let L=(0,dQ.createHash)(\"sha512\");L.update(process.versions.node),await this.configuration.triggerHook(_=>_.globalHashGeneration,this,_=>{L.update(\"\\0\"),L.update(_)});let H=L.digest(\"hex\"),j=new Map,$=_=>{let T=j.get(_.locatorHash);if(typeof T<\"u\")return T;let N=this.storedPackages.get(_.locatorHash);if(typeof N>\"u\")throw new Error(\"Assertion failed: The package should have been registered\");let ue=(0,dQ.createHash)(\"sha512\");ue.update(_.locatorHash),j.set(_.locatorHash,\"<recursive>\");for(let we of N.dependencies.values()){let Le=this.storedResolutions.get(we.descriptorHash);if(typeof Le>\"u\")throw new Error(`Assertion failed: The resolution (${tr(this.configuration,we)}) should have been registered`);let Pe=this.storedPackages.get(Le);if(typeof Pe>\"u\")throw new Error(\"Assertion failed: The package should have been registered\");ue.update($(Pe))}return T=ue.digest(\"hex\"),j.set(_.locatorHash,T),T},V=(_,T)=>{let N=(0,dQ.createHash)(\"sha512\");N.update(H),N.update($(_));for(let ue of T)N.update(ue);return N.digest(\"hex\")},W=new Map,Z=!1;for(;D.size>0;){let _=D.size,T=[];for(let N of D){let ue=this.storedPackages.get(N);if(!ue)throw new Error(\"Assertion failed: The package should have been registered\");let we=!0;for(let Te of ue.dependencies.values()){let se=this.storedResolutions.get(Te.descriptorHash);if(!se)throw new Error(`Assertion failed: The resolution (${tr(this.configuration,Te)}) should have been registered`);if(D.has(se)){we=!1;break}}if(!we)continue;D.delete(N);let Le=h.get(ue.locatorHash);if(!Le)throw new Error(\"Assertion failed: The build directive should have been registered\");let Pe=V(ue,Le.buildLocations);if(this.storedBuildState.get(ue.locatorHash)===Pe){W.set(ue.locatorHash,Pe);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(ue.locatorHash)?t.reportInfo(8,`${mt(this.configuration,ue)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${mt(this.configuration,ue)} must be built because it never has been before or the last one failed`);for(let Te of Le.buildLocations){if(!x.isAbsolute(Te))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${Te})`);T.push((async()=>{for(let[se,Ae]of Le.directives){let Qe=`# This file contains the result of Yarn building a package (${ps(ue)})\n`;switch(se){case 0:Qe+=`# Script name: ${Ae}\n`;break;case 1:Qe+=`# Script code: ${Ae}\n`;break}let fe=null;if(!await M.mktempPromise(async Ge=>{let ie=x.join(Ge,\"build.log\"),{stdout:Y,stderr:he}=this.configuration.getSubprocessStreams(ie,{header:Qe,prefix:mt(this.configuration,ue),report:t}),re;try{switch(se){case 0:re=await A0(ue,Ae,[],{cwd:Te,project:this,stdin:fe,stdout:Y,stderr:he});break;case 1:re=await FF(ue,Ae,[],{cwd:Te,project:this,stdin:fe,stdout:Y,stderr:he});break}}catch(tt){he.write(tt.stack),re=1}if(Y.end(),he.end(),re===0)return W.set(ue.locatorHash,Pe),!0;M.detachTemp(Ge);let me=`${mt(this.configuration,ue)} couldn't be built successfully (exit code ${Ve(this.configuration,re,Oe.NUMBER)}, logs can be found here: ${Ve(this.configuration,ie,Oe.PATH)})`;return this.optionalBuilds.has(ue.locatorHash)?(t.reportInfo(9,me),W.set(ue.locatorHash,Pe),!0):(t.reportError(9,me),!1)}))return}})())}}if(await eo(T),_===D.size){let N=Array.from(D).map(ue=>{let we=this.storedPackages.get(ue);if(!we)throw new Error(\"Assertion failed: The package should have been registered\");return mt(this.configuration,we)}).join(\", \");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${N})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get(\"nodeLinker\");(a=Ie.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise(\"Project validation\",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status=\"inactive\";let i=x.join(this.cwd,this.configuration.get(\"lockfileFilename\")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,\"utf8\")}catch(c){throw c.code===\"ENOENT\"?new ot(28,\"The lockfile would have been created by this install, which is explicitly forbidden.\"):c}await e.report.startTimerPromise(\"Resolution step\",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise(\"Post-resolution validation\",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let f=Ve(this.configuration,g,Oe.PACKAGE_EXTENSION);switch(g.status){case\"inactive\":e.report.reportWarning(68,`${f}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case\"redundant\":e.report.reportWarning(69,`${f}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Ac(n,this.generateLockfile());if(c!==n){let u=oZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let f of g.lines)f.startsWith(\"+\")?e.report.reportError(28,Ve(this.configuration,f,Oe.ADDED)):f.startsWith(\"-\")?e.report.reportError(28,Ve(this.configuration,f,Oe.REMOVED)):e.report.reportInfo(null,Ve(this.configuration,f,\"grey\"))}e.report.reportSeparator()}throw new ot(28,\"The lockfile would have been modified by this install, which is explicitly forbidden.\")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status===\"active\"&&((l=Ie.telemetry)==null||l.reportPackageExtension(Oc(g,Oe.PACKAGE_EXTENSION)));await e.report.startTimerPromise(\"Fetch step\",async()=>{await this.fetchEverything(e),(typeof e.persistProject>\"u\"||e.persistProject)&&e.mode!==\"update-lockfile\"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get(\"immutablePatterns\"))].sort():[],o=await Promise.all(s.map(async c=>$w(c,{cwd:this.cwd})));(typeof e.persistProject>\"u\"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise(\"Link step\",async()=>{if(e.mode===\"update-lockfile\"){e.report.reportWarning(73,`Skipped due to ${Ve(this.configuration,\"mode=update-lockfile\",Oe.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>$w(u,{cwd:this.cwd})));for(let u=0;u<s.length;++u)o[u]!==c[u]&&e.report.reportError(64,`The checksum for ${s[u]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile(),await this.configuration.triggerHook(c=>c.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:hee,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let f of s){let h=this.storedDescriptors.get(f);if(!h)throw new Error(\"Assertion failed: The descriptor should have been registered\");a.push(h)}let l=a.map(f=>bn(f)).sort().join(\", \"),c=new nt;c.version=o.linkType===\"HARD\"?o.version:\"0.0.0-use.local\",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<\"u\"){let f=g.indexOf(\"/\");if(f===-1)throw new Error(\"Assertion failed: Expected the checksum to reference its cache key\");let h=g.slice(0,f),p=g.slice(f+1);typeof t.__metadata.cacheKey>\"u\"&&(t.__metadata.cacheKey=h),h===t.__metadata.cacheKey?u=p:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ps(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running \"yarn install\" inside your project.\n`,`# Manual changes might be lost - proceed with caution!\n`].join(\"\")}\n`+ba(t)}async persistLockfile(){let e=x.join(this.cwd,this.configuration.get(\"lockfileFilename\")),t=\"\";try{t=await M.readFilePromise(e,\"utf8\")}catch{}let i=this.generateLockfile(),n=Ac(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=dee(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(IL))e.push(...o);let t=(0,CQ.default)(this,e),i=wL.default.serialize(t),n=$i(i);if(this.installStateChecksum===n)return;let s=this.configuration.get(\"installStatePath\");await M.mkdirPromise(x.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Ke(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get(\"installStatePath\"),s;try{let o=await e1e(await M.readFilePromise(n));s=wL.default.deserialize(o),this.installStateChecksum=$i(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<\"u\"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,CQ.default)(s,IL.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,CQ.default)(s,IL.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ni}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile();for(let e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:t}){if(this.configuration.get(\"enableGlobalCache\"))return;let i=new Set([\".gitignore\"]);if(!Kk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get(\"preferAggregateCacheInfo\"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=x.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${Ve(this.configuration,x.basename(l),\"magenta\")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${Ve(this.configuration,x.basename(l),\"magenta\")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`),e.markedFiles.clear()}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var V;let c=new Map,u=[],g=new Map,f=new Map,h=new Map,p=new Map,C=new Map,w=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>\"u\")throw new Error(\"Assertion failed: The workspace should have an associated package\");return[Z,BC(A)]})),B=()=>{let W=M.mktempSync(),Z=x.join(W,\"stacktrace.log\"),A=String(u.length+1).length,ae=u.map((ge,_)=>`${`${_+1}.`.padStart(A,\" \")} ${ps(ge)}\n`).join(\"\");throw M.writeFileSync(Z,ae),M.detachTemp(W),new ot(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},v=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>\"u\")throw new Error(\"Assertion failed: The resolution should have been registered\");let A=i.get(Z);if(!A)throw new Error(\"Assertion failed: The package could not be found\");return A},D=(W,Z,A,{top:ae,optional:ge})=>{u.length>1e3&&B(),u.push(Z);let _=L(W,Z,A,{top:ae,optional:ge});return u.pop(),_},L=(W,Z,A,{top:ae,optional:ge})=>{if(n.has(Z.locatorHash))return;n.add(Z.locatorHash),ge||s.delete(Z.locatorHash);let _=i.get(Z.locatorHash);if(!_)throw new Error(`Assertion failed: The package (${mt(r.configuration,Z)}) should have been registered`);let T=[],N=[],ue=[],we=[],Le=[];for(let Te of Array.from(_.dependencies.values())){if(_.peerDependencies.has(Te.identHash)&&_.locatorHash!==ae)continue;if(_A(Te))throw new Error(\"Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch\");a.delete(Te.descriptorHash);let se=ge;if(!se){let Y=_.dependenciesMeta.get(Ot(Te));if(typeof Y<\"u\"){let he=Y.get(null);typeof he<\"u\"&&he.optional&&(se=!0)}}let Ae=t.get(Te.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${tr(r.configuration,Te)}) should have been registered`);let Qe=w.get(Ae)||i.get(Ae);if(!Qe)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${tr(r.configuration,Te)}) should have been registered`);if(Qe.peerDependencies.size===0){D(Te,Qe,new Map,{top:ae,optional:se});continue}let fe,le,Ge=new Set,ie;N.push(()=>{fe=Dk(Te,Z.locatorHash),le=kk(Qe,Z.locatorHash),_.dependencies.delete(Te.identHash),_.dependencies.set(fe.identHash,fe),t.set(fe.descriptorHash,le.locatorHash),e.set(fe.descriptorHash,fe),i.set(le.locatorHash,le),T.push([Qe,fe,le])}),ue.push(()=>{var Y;ie=new Map;for(let he of le.peerDependencies.values()){let re=_.dependencies.get(he.identHash);if(!re&&SC(Z,he)&&(W.identHash===Z.identHash?re=W:(re=Zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range===\"missing:\")&&le.dependencies.has(he.identHash)){le.peerDependencies.delete(he.identHash);continue}re||(re=Zt(he,\"missing:\")),le.dependencies.set(re.identHash,re),_A(re)&&Tc(h,re.descriptorHash).add(le.locatorHash),g.set(re.identHash,re),re.range===\"missing:\"&&Ge.add(re.identHash),ie.set(he.identHash,(Y=A.get(he.identHash))!=null?Y:le.locatorHash)}le.dependencies=new Map(Bn(le.dependencies,([he,re])=>Ot(re)))}),we.push(()=>{if(!i.has(le.locatorHash))return;let Y=c.get(Qe.locatorHash);typeof Y==\"number\"&&Y>=2&&B();let he=c.get(Qe.locatorHash),re=typeof he<\"u\"?he+1:1;c.set(Qe.locatorHash,re),D(fe,le,ie,{top:ae,optional:se}),c.set(Qe.locatorHash,re-1)}),Le.push(()=>{let Y=_.dependencies.get(Te.identHash);if(typeof Y>\"u\")throw new Error(\"Assertion failed: Expected the peer dependency to have been turned into a dependency\");let he=t.get(Y.descriptorHash);if(typeof he>\"u\")throw new Error(\"Assertion failed: Expected the descriptor to be registered\");if(Tc(C,he).add(Z.locatorHash),!!i.has(le.locatorHash)){for(let re of le.peerDependencies.values()){let me=ie.get(re.identHash);if(typeof me>\"u\")throw new Error(\"Assertion failed: Expected the peer dependency ident to be registered\");Df(kf(p,me),Ot(re)).push(le.locatorHash)}for(let re of Ge)le.dependencies.delete(re)}})}for(let Te of[...N,...ue])Te();let Pe;do{Pe=!0;for(let[Te,se,Ae]of T){let Qe=kf(f,Te.locatorHash),fe=$i(...[...Ae.dependencies.values()].map(Y=>{let he=Y.range!==\"missing:\"?t.get(Y.descriptorHash):\"missing:\";if(typeof he>\"u\")throw new Error(`Assertion failed: Expected the resolution for ${tr(r.configuration,Y)} to have been registered`);return he===ae?`${he} (top)`:he}),se.identHash),le=Qe.get(fe);if(typeof le>\"u\"){Qe.set(fe,se);continue}if(le===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ge=h.get(se.descriptorHash)||[],ie=[_.locatorHash,...Ge];h.delete(se.descriptorHash);for(let Y of ie){let he=i.get(Y);typeof he>\"u\"||(he.dependencies.get(se.identHash).descriptorHash!==le.descriptorHash&&(Pe=!1),he.dependencies.set(se.identHash,le))}}}while(!Pe);for(let Te of[...we,...Le])Te()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),D(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]=\"NotProvided\",A[A.NotCompatible=1]=\"NotCompatible\"))(H||(H={}));let j=[];for(let[W,Z]of C){let A=i.get(W);if(typeof A>\"u\")throw new Error(\"Assertion failed: Expected the root to be registered\");let ae=p.get(W);if(!(typeof ae>\"u\"))for(let ge of Z){let _=i.get(ge);if(!(typeof _>\"u\"))for(let[T,N]of ae){let ue=Zi(T);if(_.peerDependencies.has(ue.identHash))continue;let we=`p${$i(ge,T,W).slice(0,5)}`;o.set(we,{subject:ge,requested:ue,rootRequester:W,allRequesters:N});let Le=A.dependencies.get(ue.identHash);if(typeof Le<\"u\"){let Pe=v(Le),Te=(V=Pe.version)!=null?V:\"0.0.0\",se=new Set;for(let Qe of N){let fe=i.get(Qe);if(typeof fe>\"u\")throw new Error(\"Assertion failed: Expected the link to be registered\");let le=fe.peerDependencies.get(ue.identHash);if(typeof le>\"u\")throw new Error(\"Assertion failed: Expected the ident to be registered\");se.add(le.range)}[...se].every(Qe=>{if(Qe.startsWith(Jr.protocol)){if(!r.tryWorkspaceByLocator(Pe))return!1;Qe=Qe.slice(Jr.protocol.length),(Qe===\"^\"||Qe===\"~\")&&(Qe=\"*\")}return qc(Te,Qe)})||j.push({type:1,subject:_,requested:ue,requester:A,version:Te,hash:we,requirementCount:N.length})}else{let Pe=A.peerDependenciesMeta.get(T);Pe!=null&&Pe.optional||j.push({type:0,subject:_,requested:ue,requester:A,hash:we})}}}}let $=[W=>Rk(W.subject),W=>Ot(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${Ve(r.configuration,\"yarn explain peer-requirements <hash>\",Oe.CODE)} for details, where ${Ve(r.configuration,\"<hash>\",Oe.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of Bn(j,$))switch(W.type){case 0:l.reportWarning(2,`${mt(r.configuration,W.subject)} doesn't provide ${ui(r.configuration,W.requested)} (${Ve(r.configuration,W.hash,Oe.CODE)}), requested by ${ui(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?\"and some of its descendants request\":\"requests\";l.reportWarning(60,`${mt(r.configuration,W.subject)} provides ${ui(r.configuration,W.requested)} (${Ve(r.configuration,W.hash,Oe.CODE)}) with version ${PC(r.configuration,W.version)}, which doesn't satisfy what ${ui(r.configuration,W.requester)} ${Z}`)}break}})}var Uh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue(\"version\",e.replace(/-git\\..*/,\"-git\"))}reportCommandName(e){this.reportValue(\"commandName\",e||\"<none>\")}reportPluginName(e){this.reportValue(\"pluginName\",e)}reportProject(e){this.reportEnumerator(\"projectCount\",e)}reportInstall(e){this.reportHit(\"installCount\",e)}reportPackageExtension(e){this.reportValue(\"packageExtension\",e)}reportWorkspaceCount(e){this.reportValue(\"workspaceCount\",String(e))}reportDependencyCount(e){this.reportValue(\"dependencyCount\",String(e))}reportValue(e,t){Tc(this.values,e).add(t)}reportEnumerator(e,t){Tc(this.enumerators,e).add($i(t))}reportHit(e,t=\"*\"){let i=kf(this.hits,e),n=Ta(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get(\"globalFolder\");return x.join(e,\"telemetry.json\")}sendReport(e){var u,g,f;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get(\"telemetryInterval\")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(x.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=h=>mF(l,h,{configuration:this.configuration}).catch(()=>{});for(let[h,p]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(p).length===0)continue;let C=p;C.userId=h,C.reportType=\"primary\";for(let v of Object.keys((f=C.enumerators)!=null?f:{}))C.enumerators[v]=C.enumerators[v].length;c(C);let w=new Map,B=20;for(let[v,D]of Object.entries(C.values))D.length>0&&w.set(v,D.slice(0,B));for(;w.size>0;){let v={};v.userId=h,v.reportType=\"secondary\",v.metrics={};for(let[D,L]of w)v.metrics[D]=L.shift(),L.length===0&&w.delete(D);c(v)}}}applyChanges(){var o,a,l,c,u,g,f,h,p;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get(\"telemetryUserId\"))!=null?o:\"*\",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let C of this.hits.keys()){let w=s.hits=(c=s.hits)!=null?c:{},B=w[C]=(u=w[C])!=null?u:{};for(let[v,D]of this.hits.get(C))B[v]=((g=B[v])!=null?g:0)+D}for(let C of[\"values\",\"enumerators\"])for(let w of this[C].keys()){let B=s[C]=(f=s[C])!=null?f:{};B[w]=[...new Set([...(h=B[w])!=null?h:[],...(p=this[C].get(w))!=null?p:[]])]}M.mkdirSync(x.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on(\"exit\",()=>{try{this.applyChanges()}catch{}})}};var bL=J(\"child_process\"),Eee=ne(yc()),mQ=ne(Xe()),SL=J(\"fs\");var Hh=new Map([[\"constraints\",[[\"constraints\",\"query\"],[\"constraints\",\"source\"],[\"constraints\"]]],[\"exec\",[]],[\"interactive-tools\",[[\"search\"],[\"upgrade-interactive\"]]],[\"stage\",[[\"stage\"]]],[\"typescript\",[]],[\"version\",[[\"version\",\"apply\"],[\"version\",\"check\"],[\"version\"]]],[\"workspace-tools\",[[\"workspaces\",\"focus\"],[\"workspaces\",\"foreach\"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on(\"SIGINT\",()=>{}),e?(0,bL.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:\"inherit\",env:{...process.env,YARN_IGNORE_PATH:\"1\",YARN_IGNORE_CWD:\"1\"}}):(0,bL.execFileSync)(e,process.argv.slice(2),{stdio:\"inherit\",env:{...process.env,YARN_IGNORE_PATH:\"1\",YARN_IGNORE_CWD:\"1\"}})}async function EQ({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new mQ.Cli({binaryLabel:\"Yarn Package Manager\",binaryName:\"yarn\",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var C,w,B,v,D;let s=process.versions.node,o=\">=12 <14 || 14.2 - 14.9 || >14.10.0\";if(!Ee.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!vt.satisfiesWithPrereleases(s,o))throw new mQ.UsageError(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \\`YARN_IGNORE_NODE=1\\` in your environment.`);let l=await Ie.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get(\"yarnPath\"),u=l.get(\"ignorePath\"),g=l.get(\"ignoreCwd\"),f=K.toPortablePath(K.resolve(process.argv[1])),h=L=>M.readFilePromise(L).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===f||Buffer.compare(...await Promise.all([h(c),h(f)]))===0)()){process.env.YARN_IGNORE_PATH=\"1\",process.env.YARN_IGNORE_CWD=\"1\",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The \"yarn-path\" option has been set (in ${l.sources.get(\"yarnPath\")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(L){process.exitCode=L.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get(\"enableTelemetry\")&&!Eee.isCI&&process.stdout.isTTY&&(Ie.telemetry=new Uh(l,\"puba9cdc10ec5790a2cf4969dd413a47270\")),(C=Ie.telemetry)==null||C.reportVersion(r);for(let[$,V]of l.plugins.entries()){Hh.has((B=(w=$.match(/^@yarnpkg\\/plugin-(.*)$/))==null?void 0:w[1])!=null?B:\"\")&&((v=Ie.telemetry)==null||v.reportPluginName($));for(let W of V.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(D=Ie.telemetry)==null||D.reportCommandName(H.path.join(\" \"));let j=H.cwd;if(typeof j<\"u\"&&!g){let $=(0,SL.realpathSync)(process.cwd()),V=(0,SL.realpathSync)(j);if($!==V){process.chdir(j),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function Iee(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of[\"Array\",\"Boolean\",\"String\",\"Proxy\",\"Rest\",\"Counter\"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var rE={};ht(rE,{BaseCommand:()=>ve,WorkspaceRequiredError:()=>ct,getDynamicLibs:()=>Nne,getPluginConfiguration:()=>jQ,main:()=>EQ,openWorkspace:()=>tp,pluginCommands:()=>Hh});var IQ=ne(Xe()),ve=class extends IQ.Command{constructor(){super(...arguments);this.cwd=IQ.Option.String(\"--cwd\",{hidden:!0})}};var yee=ne(Xe()),ct=class extends yee.UsageError{constructor(e,t){let i=x.relative(e,t),n=x.join(e,nt.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var Aqe=ne(Xe()),lqe=ne($r()),cqe=ne(ns()),uqe=ne(QT()),Nne=()=>new Map([[\"@yarnpkg/cli\",rE],[\"@yarnpkg/core\",vm],[\"@yarnpkg/fslib\",hd],[\"@yarnpkg/libzip\",VC],[\"@yarnpkg/parsers\",wd],[\"@yarnpkg/shell\",$C],[\"clipanion\",Aqe],[\"semver\",lqe],[\"typanion\",cqe],[\"yup\",uqe]]);async function tp(r,e){let{project:t,workspace:i}=await He.find(r,e);if(!i)throw new ct(t.cwd,e);return i}var T7e=ne(Xe()),O7e=ne($r()),M7e=ne(ns()),K7e=ne(QT());var WO={};ht(WO,{dedupeUtils:()=>tb,default:()=>w4e,suggestUtils:()=>sp});var LAe=ne(yc());var vr=ne(Xe()),woe=ne(aE()),Boe=ne(ns());var sp={};ht(sp,{Modifier:()=>dO,Strategy:()=>_Q,Target:()=>AE,WorkspaceModifier:()=>doe,applyModifier:()=>moe,extractDescriptorFromPath:()=>CO,extractRangeModifier:()=>Coe,fetchDescriptorFrom:()=>mO,findProjectDescriptors:()=>yoe,getModifier:()=>lE,getSuggestedDescriptors:()=>cE,makeWorkspaceDescriptor:()=>Ioe,toWorkspaceModifier:()=>Eoe});var pO=ne($r()),PJe=\"workspace:\",AE=(i=>(i.REGULAR=\"dependencies\",i.DEVELOPMENT=\"devDependencies\",i.PEER=\"peerDependencies\",i))(AE||{}),dO=(i=>(i.CARET=\"^\",i.TILDE=\"~\",i.EXACT=\"\",i))(dO||{}),doe=(i=>(i.CARET=\"^\",i.TILDE=\"~\",i.EXACT=\"*\",i))(doe||{}),_Q=(s=>(s.KEEP=\"keep\",s.REUSE=\"reuse\",s.PROJECT=\"project\",s.LATEST=\"latest\",s.CACHE=\"cache\",s))(_Q||{});function lE(r,e){return r.exact?\"\":r.caret?\"^\":r.tilde?\"~\":e.configuration.get(\"defaultSemverRangePrefix\")}var DJe=/^([\\^~]?)[0-9]+(?:\\.[0-9]+){0,2}(?:-\\S+)?$/;function Coe(r,{project:e}){let t=r.match(DJe);return t?t[1]:e.configuration.get(\"defaultSemverRangePrefix\")}function moe(r,e){let{protocol:t,source:i,params:n,selector:s}=P.parseRange(r.range);return pO.default.valid(s)&&(s=`${e}${r.range}`),P.makeDescriptor(r,P.makeRange({protocol:t,source:i,params:n,selector:s}))}function Eoe(r){switch(r){case\"^\":return\"^\";case\"~\":return\"~\";case\"\":return\"*\";default:throw new Error(`Assertion failed: Unknown modifier: \"${r}\"`)}}function Ioe(r,e){return P.makeDescriptor(r.anchoredDescriptor,`${PJe}${Eoe(e)}`)}async function yoe(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t===\"peerDependencies\"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t===\"devDependencies\"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function CO(r,{cwd:e,workspace:t}){return await kJe(async i=>{x.isAbsolute(r)||(r=x.relative(t.cwd,x.resolve(e,r)),r.match(/^\\.{0,2}\\//)||(r=`./${r}`));let{project:n}=t,s=await mO(P.makeIdent(null,\"archive\"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error(\"Assertion failed: The descriptor should have been found\");let o=new ni,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=P.convertDescriptorToLocator(u),f=await l.fetch(g,c),h=await nt.find(f.prefixPath,{baseFs:f.packageFs});if(!h.name)throw new Error(\"Target path doesn't have a name\");return P.makeDescriptor(h.name,r)})}async function cE(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!==\"unknown\")return{suggestions:[{descriptor:r,name:`Use ${P.prettyDescriptor(e.configuration,r)}`,reason:\"(unambiguous explicit request)\"}],rejections:[]};let l=typeof t<\"u\"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async f=>{try{await f()}catch(h){u.push(h)}};for(let f of o){if(c.length>=a)break;switch(f){case\"keep\":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${P.prettyDescriptor(e.configuration,l)}`,reason:\"(no changes)\"})});break;case\"reuse\":await g(async()=>{for(let{descriptor:h,locators:p}of(await yoe(r,{project:e,target:n})).values()){if(p.length===1&&p[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes(\"keep\"))continue;let C=`(originally used by ${P.prettyLocator(e.configuration,p[0])}`;C+=p.length>1?` and ${p.length-1} other${p.length>2?\"s\":\"\"})`:\")\",c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:C})}});break;case\"cache\":await g(async()=>{for(let h of e.storedDescriptors.values())h.identHash===r.identHash&&c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:\"(already used somewhere in the lockfile)\"})});break;case\"project\":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let h=e.tryWorkspaceByIdent(r);if(h===null)return;let p=Ioe(h,s);c.push({descriptor:p,name:`Attach ${P.prettyDescriptor(e.configuration,p)}`,reason:`(local workspace at ${ee.pretty(e.configuration,h.relativeCwd,ee.Type.PATH)})`})});break;case\"latest\":await g(async()=>{if(r.range!==\"unknown\")c.push({descriptor:r,name:`Use ${P.prettyRange(e.configuration,r.range)}`,reason:\"(explicit range requested)\"});else if(n===\"peerDependencies\")c.push({descriptor:P.makeDescriptor(r,\"*\"),name:\"Use *\",reason:\"(catch-all peer dependency pattern)\"});else if(!e.configuration.get(\"enableNetwork\"))c.push({descriptor:null,name:\"Resolve from latest\",reason:ee.pretty(e.configuration,\"(unavailable because enableNetwork is toggled off)\",\"grey\")});else{let h=await mO(r,\"latest\",{project:e,cache:i,workspace:t,preserveModifier:!1});h&&(h=moe(h,s),c.push({descriptor:h,name:`Use ${P.prettyDescriptor(e.configuration,h)}`,reason:\"(resolved from latest)\"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function mO(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=P.makeDescriptor(r,e),a=new ni,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},f=c.bindDescriptor(o,n.anchoredLocator,g),h=await c.getCandidates(f,new Map,g);if(h.length===0)return null;let p=h[0],{protocol:C,source:w,params:B,selector:v}=P.parseRange(P.convertToManifestRange(p.reference));if(C===t.configuration.get(\"defaultProtocol\")&&(C=null),pO.default.valid(v)&&s!==!1){let D=typeof s==\"string\"?s:o.range;v=Coe(D,{project:t})+v}return P.makeDescriptor(p,P.makeRange({protocol:C,source:w,params:B,selector:v}))}async function kJe(r){return await M.mktempPromise(async e=>{let t=Ie.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new kt(e,{configuration:t,check:!1,immutable:!1}))})}var Qu=class extends ve{constructor(){super(...arguments);this.json=vr.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.exact=vr.Option.Boolean(\"-E,--exact\",!1,{description:\"Don't use any semver modifier on the resolved range\"});this.tilde=vr.Option.Boolean(\"-T,--tilde\",!1,{description:\"Use the `~` semver modifier on the resolved range\"});this.caret=vr.Option.Boolean(\"-C,--caret\",!1,{description:\"Use the `^` semver modifier on the resolved range\"});this.dev=vr.Option.Boolean(\"-D,--dev\",!1,{description:\"Add a package as a dev dependency\"});this.peer=vr.Option.Boolean(\"-P,--peer\",!1,{description:\"Add a package as a peer dependency\"});this.optional=vr.Option.Boolean(\"-O,--optional\",!1,{description:\"Add / upgrade a package to an optional regular / peer dependency\"});this.preferDev=vr.Option.Boolean(\"--prefer-dev\",!1,{description:\"Add / upgrade a package to a dev dependency\"});this.interactive=vr.Option.Boolean(\"-i,--interactive\",{description:\"Reuse the specified package from other workspaces in the project\"});this.cached=vr.Option.Boolean(\"--cached\",!1,{description:\"Reuse the highest version already used somewhere within the project\"});this.mode=vr.Option.String(\"--mode\",{description:\"Change what artifacts installs generate\",validator:Boe.isEnum(Xn)});this.silent=vr.Option.Boolean(\"--silent\",{hidden:!0});this.packages=vr.Option.Rest()}async execute(){var w;let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(w=this.interactive)!=null?w:t.get(\"preferInteractive\"),a=lE(this,i),l=[...o?[\"reuse\"]:[],\"project\",...this.cached?[\"cache\"]:[],\"latest\"],c=o?1/0:1,u=await Promise.all(this.packages.map(async B=>{let v=B.match(/^\\.{0,2}\\//)?await CO(B,{cwd:this.context.cwd,workspace:n}):P.tryParseDescriptor(B),D=B.match(/^(https?:|git@github)/);if(D)throw new vr.UsageError(`It seems you are trying to add a package using a ${ee.pretty(t,`${D[0]}...`,Pi.RANGE)} url; we now require package names to be explicitly specified.\nTry running the command again with the package name prefixed: ${ee.pretty(t,\"yarn add\",Pi.CODE)} ${ee.pretty(t,P.makeDescriptor(P.makeIdent(null,\"my-package\"),`${D[0]}...`),Pi.DESCRIPTOR)}`);if(!v)throw new vr.UsageError(`The ${ee.pretty(t,B,Pi.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let L=RJe(n,v,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(L.map(async j=>{let $=await cE(v,{project:i,workspace:n,cache:s,target:j,modifier:a,strategies:l,maxResults:c});return{request:v,suggestedDescriptors:$,target:j}}))})).then(B=>B.flat()),g=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let{request:v,suggestedDescriptors:{suggestions:D,rejections:L}}of u)if(D.filter(j=>j.descriptor!==null).length===0){let[j]=L;if(typeof j>\"u\")throw new Error(\"Assertion failed: Expected an error to have been set\");i.configuration.get(\"enableNetwork\")?B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range`):B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),B.reportSeparator(),B.reportExceptionOnce(j)}});if(g.hasErrors())return g.exitCode();let f=!1,h=[],p=[];for(let{suggestedDescriptors:{suggestions:B},target:v}of u){let D,L=B.filter(V=>V.descriptor!==null),H=L[0].descriptor,j=L.every(V=>P.areDescriptorsEqual(V.descriptor,H));L.length===1||j?D=H:(f=!0,{answer:D}=await(0,woe.prompt)({type:\"select\",name:\"answer\",message:\"Which range do you want to use?\",choices:B.map(({descriptor:V,name:W,reason:Z})=>V?{name:W,hint:Z,descriptor:V}:{name:W,hint:Z,disabled:!0}),onCancel:()=>process.exit(130),result(V){return this.find(V,\"descriptor\")},stdin:this.context.stdin,stdout:this.context.stdout}));let $=n.manifest[v].get(D.identHash);(typeof $>\"u\"||$.descriptorHash!==D.descriptorHash)&&(n.manifest[v].set(D.identHash,D),this.optional&&(v===\"dependencies\"?n.manifest.ensureDependencyMeta({...D,range:\"unknown\"}).optional=!0:v===\"peerDependencies\"&&(n.manifest.ensurePeerDependencyMeta({...D,range:\"unknown\"}).optional=!0)),typeof $>\"u\"?h.push([n,v,D,l]):p.push([n,v,$,D]))}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyAddition,h),await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,p),f&&this.context.stdout.write(`\n`),(await Ke.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};Qu.paths=[[\"add\"]],Qu.usage=vr.Command.Usage({description:\"add dependencies to the project\",details:\"\\n      This command adds a package to the package.json for the nearest workspace.\\n\\n      - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\\n\\n      - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\\n\\n      - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\\n\\n      - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\\\"peerDependenciesMeta\\\": { \\\"<package>\\\": { \\\"optional\\\": true } }`\\n\\n      - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\\n\\n      - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\\n\\n      If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\\n\\n      If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\\n\\n      If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\\n\\n      - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\\n\\n      - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\\n\\n      For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\\n    \",examples:[[\"Add a regular package to the current workspace\",\"$0 add lodash\"],[\"Add a specific version for a package to the current workspace\",\"$0 add lodash@1.2.3\"],[\"Add a package from a GitHub repository (the master branch) to the current workspace using a URL\",\"$0 add lodash@https://github.com/lodash/lodash\"],[\"Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol\",\"$0 add lodash@github:lodash/lodash\"],[\"Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)\",\"$0 add lodash@lodash/lodash\"],[\"Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)\",\"$0 add lodash-es@lodash/lodash#es\"]]});function RJe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest[\"dependencies\"].has(e.identHash),a=r.manifest[\"devDependencies\"].has(e.identHash),l=r.manifest[\"peerDependencies\"].has(e.identHash);if((t||i)&&o)throw new vr.UsageError(`Package \"${P.prettyIdent(r.project.configuration,e)}\" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new vr.UsageError(`Package \"${P.prettyIdent(r.project.configuration,e)}\" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new vr.UsageError(`Package \"${P.prettyIdent(r.project.configuration,e)}\" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new vr.UsageError(`Package \"${P.prettyIdent(r.project.configuration,e)}\" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new vr.UsageError(`Package \"${P.prettyIdent(r.project.configuration,e)}\" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push(\"peerDependencies\"),(t||n)&&c.push(\"devDependencies\"),s&&c.push(\"dependencies\"),c.length>0?c:a?[\"devDependencies\"]:l?[\"peerDependencies\"]:[\"dependencies\"]}var wl=ne(Xe()),bu=class extends ve{constructor(){super(...arguments);this.verbose=wl.Option.Boolean(\"-v,--verbose\",!1,{description:\"Print both the binary name and the locator of the package that provides the binary\"});this.json=wl.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.name=wl.Option.String({required:!1})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await He.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Jt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new wl.UsageError(`Couldn't find a binary named \"${this.name}\" for package \"${P.prettyLocator(t,n)}\"`);let[,l]=a;return this.context.stdout.write(`${l}\n`),0}return(await Ke.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Jt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,f]]of a)o.reportJson({name:u,source:P.stringifyIdent(g),path:f});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c,\" \")}   ${P.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};bu.paths=[[\"bin\"]],bu.usage=wl.Command.Usage({description:\"get the path to a binary script\",details:`\n      When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \\`-v,--verbose\\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary.\n\n      When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive.\n    `,examples:[[\"List all the available binaries\",\"$0 bin\"],[\"Print the path to a specific binary\",\"$0 bin eslint\"]]});var uE=ne(Xe()),Su=class extends ve{constructor(){super(...arguments);this.mirror=uE.Option.Boolean(\"--mirror\",!1,{description:\"Remove the global cache files instead of the local cache files\"});this.all=uE.Option.Boolean(\"--all\",!1,{description:\"Remove both the global cache files and the local cache files of the current project\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=await kt.find(t);return(await Ke.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await M.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await M.removePromise(i.cwd)})).exitCode()}};Su.paths=[[\"cache\",\"clean\"],[\"cache\",\"clear\"]],Su.usage=uE.Command.Usage({description:\"remove the shared cache files\",details:`\n      This command will remove all the files from the cache.\n    `,examples:[[\"Remove all the local archives\",\"$0 cache clean\"],[\"Remove all the archives stored in the ~/.yarn directory\",\"$0 cache clean --mirror\"]]});var Bl=ne(Xe()),Qoe=ne(RQ()),EO=J(\"util\"),vu=class extends ve{constructor(){super(...arguments);this.json=Bl.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.unsafe=Bl.Option.Boolean(\"--no-redacted\",!1,{description:\"Don't redact secrets (such as tokens) from the output\"});this.name=Bl.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,\"\"),n=this.name.replace(/^[^.[]*/,\"\");if(typeof t.settings.get(i)>\"u\")throw new Bl.UsageError(`Couldn't find a configuration settings named \"${i}\"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=Ee.convertMapsToIndexableObjects(o),l=n?(0,Qoe.default)(a,n):a,c=await Ke.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l==\"string\")return this.context.stdout.write(`${l}\n`),c.exitCode();EO.inspect.styles.name=\"cyan\",this.context.stdout.write(`${(0,EO.inspect)(l,{depth:1/0,colors:t.get(\"enableColors\"),compact:!1})}\n`)}return c.exitCode()}};vu.paths=[[\"config\",\"get\"]],vu.usage=Bl.Command.Usage({description:\"read a configuration settings\",details:`\n      This command will print a configuration setting.\n\n      Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \\`--no-redacted\\` to get the untransformed value.\n    `,examples:[[\"Print a simple configuration setting\",\"yarn config get yarnPath\"],[\"Print a complex configuration setting\",\"yarn config get packageExtensions\"],[\"Print a nested field from the configuration\",`yarn config get 'npmScopes[\"my-company\"].npmRegistryServer'`],[\"Print a token from the configuration\",\"yarn config get npmAuthToken --no-redacted\"],[\"Print a configuration setting as JSON\",\"yarn config get packageExtensions --json\"]]});var co=ne(Xe()),Tae=ne(bO()),Oae=ne(RQ()),Mae=ne(Lae()),SO=J(\"util\"),xu=class extends ve{constructor(){super(...arguments);this.json=co.Option.Boolean(\"--json\",!1,{description:\"Set complex configuration settings to JSON values\"});this.home=co.Option.Boolean(\"-H,--home\",!1,{description:\"Update the home configuration instead of the project configuration\"});this.name=co.Option.String();this.value=co.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new co.UsageError(\"This command must be run from within a project folder\");return t.projectCwd},n=this.name.replace(/[.[].*$/,\"\"),s=this.name.replace(/^[^.[]*\\.?/,\"\");if(typeof t.settings.get(n)>\"u\")throw new co.UsageError(`Couldn't find a configuration settings named \"${n}\"`);if(n===\"enableStrictSettings\")throw new co.UsageError(\"This setting only affects the file it's in, and thus cannot be set from the CLI\");let a=this.json?JSON.parse(this.value):this.value;await(this.home?p=>Ie.updateHomeConfiguration(p):p=>Ie.updateConfiguration(i(),p))(p=>{if(s){let C=(0,Tae.default)(p);return(0,Mae.default)(C,this.name,a),C}else return{...p,[n]:a}});let u=(await Ie.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=Ee.convertMapsToIndexableObjects(u),f=s?(0,Oae.default)(g,s):g;return(await Ke.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async p=>{SO.inspect.styles.name=\"cyan\",p.reportInfo(0,`Successfully set ${this.name} to ${(0,SO.inspect)(f,{depth:1/0,colors:t.get(\"enableColors\"),compact:!1})}`)})).exitCode()}};xu.paths=[[\"config\",\"set\"]],xu.usage=co.Command.Usage({description:\"change a configuration settings\",details:`\n      This command will set a configuration setting.\n\n      When used without the \\`--json\\` flag, it can only set a simple configuration setting (a string, a number, or a boolean).\n\n      When used with the \\`--json\\` flag, it can set both simple and complex configuration settings, including Arrays and Objects.\n    `,examples:[[\"Set a simple configuration setting (a string, a number, or a boolean)\",\"yarn config set initScope myScope\"],[\"Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag\",'yarn config set initScope --json \\\\\"myScope\\\\\"'],[\"Set a complex configuration setting (an Array) using the `--json` flag\",`yarn config set unsafeHttpWhitelist --json '[\"*.example.com\", \"example.com\"]'`],[\"Set a complex configuration setting (an Object) using the `--json` flag\",`yarn config set packageExtensions --json '{ \"@babel/parser@*\": { \"dependencies\": { \"@babel/types\": \"*\" } } }'`],[\"Set a nested configuration setting\",'yarn config set npmScopes.company.npmRegistryServer \"https://npm.example.com\"'],[\"Set a nested configuration setting using indexed access for non-simple keys\",`yarn config set 'npmRegistries[\"//npm.example.com\"].npmAuthToken' \"ffffffff-ffff-ffff-ffff-ffffffffffff\"`]]});var Ql=ne(Xe()),Wae=ne(bO()),zae=ne(Pm()),Vae=ne(Jae()),Pu=class extends ve{constructor(){super(...arguments);this.home=Ql.Option.Boolean(\"-H,--home\",!1,{description:\"Update the home configuration instead of the project configuration\"});this.name=Ql.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new Ql.UsageError(\"This command must be run from within a project folder\");return t.projectCwd},n=this.name.replace(/[.[].*$/,\"\"),s=this.name.replace(/^[^.[]*\\.?/,\"\");if(typeof t.settings.get(n)>\"u\")throw new Ql.UsageError(`Couldn't find a configuration settings named \"${n}\"`);let a=this.home?c=>Ie.updateHomeConfiguration(c):c=>Ie.updateConfiguration(i(),c);return(await Ke.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,zae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let f=s?(0,Wae.default)(g):{...g};return(0,Vae.default)(f,this.name),f}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Pu.paths=[[\"config\",\"unset\"]],Pu.usage=Ql.Command.Usage({description:\"unset a configuration setting\",details:`\n      This command will unset a configuration setting.\n    `,examples:[[\"Unset a simple configuration setting\",\"yarn config unset initScope\"],[\"Unset a complex configuration setting\",\"yarn config unset packageExtensions\"],[\"Unset a nested configuration setting\",\"yarn config unset npmScopes.company.npmRegistryServer\"]]});var lp=ne(Xe()),vO=J(\"util\"),Du=class extends ve{constructor(){super(...arguments);this.verbose=lp.Option.Boolean(\"-v,--verbose\",!1,{description:\"Print the setting description on top of the regular key/value information\"});this.why=lp.Option.Boolean(\"--why\",!1,{description:\"Print the reason why a setting is set a particular way\"});this.json=lp.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Ke.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key \"${s}\" in ${o}`);n.reportSeparator()}if(this.json){let s=Ee.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=Ee.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get(\"enableColors\"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings (\"${u}\") should have been registered`);let f=this.why?t.sources.get(u)||\"<default>\":g.description;return[u,f]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o,\" \")}   ${g.padEnd(c,\" \")}   ${(0,vO.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o,\" \")}   ${(0,vO.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};Du.paths=[[\"config\"]],Du.usage=lp.Command.Usage({description:\"display the current configuration\",details:`\n      This command prints the current active configuration settings.\n    `,examples:[[\"Print the active configuration settings\",\"$0 config\"]]});var bl=ne(Xe()),PO=ne(ns());var tb={};ht(tb,{Strategy:()=>fE,acceptedStrategies:()=>L3e,dedupe:()=>xO});var Xae=ne(wn()),fE=(e=>(e.HIGHEST=\"highest\",e))(fE||{}),L3e=new Set(Object.values(fE)),T3e={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>\"u\")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);Ee.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!Xae.default.isMatch(P.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>\"u\")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>\"u\"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>\"u\")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(w=>{let B=r.originalPackages.get(w);if(typeof B>\"u\")throw new Error(`Assertion failed: The package (${w}) should have been registered`);return B.reference}),f=await t.getSatisfying(a,g,n),h=f==null?void 0:f[0];if(typeof h>\"u\")return null;let p=h.locatorHash,C=r.originalPackages.get(p);if(typeof C>\"u\")throw new Error(`Assertion failed: The package (${p}) should have been registered`);return p===l?null:{descriptor:a,currentPackage:c,updatedPackage:C}})}};async function xO(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new ni,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise(\"Deduplication step\",async()=>{let g=T3e[e],f=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),h=xi.progressViaCounter(f.length);await n.reportProgress(h);let p=0;await Promise.all(f.map(B=>B.then(v=>{if(v===null)return;p++;let{descriptor:D,currentPackage:L,updatedPackage:H}=v;n.reportInfo(0,`${P.prettyDescriptor(s,D)} can be deduped from ${P.prettyLocator(s,L)} to ${P.prettyLocator(s,H)}`),n.reportJson({descriptor:P.stringifyDescriptor(D),currentResolution:P.stringifyLocator(L),updatedResolution:P.stringifyLocator(H)}),r.storedResolutions.set(D.descriptorHash,H.locatorHash)}).finally(()=>h.tick())));let C;switch(p){case 0:C=\"No packages\";break;case 1:C=\"One package\";break;default:C=`${p} packages`}let w=ee.pretty(s,e,ee.Type.CODE);return n.reportInfo(0,`${C} can be deduped using the ${w} strategy`),p})}var ku=class extends ve{constructor(){super(...arguments);this.strategy=bl.Option.String(\"-s,--strategy\",\"highest\",{description:\"The strategy to use when deduping dependencies\",validator:PO.isEnum(fE)});this.check=bl.Option.Boolean(\"-c,--check\",!1,{description:\"Exit with exit code 1 when duplicates are found, without persisting the dependency tree\"});this.json=bl.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.mode=bl.Option.String(\"--mode\",{description:\"Change what artifacts installs generate\",validator:PO.isEnum(Xn)});this.patterns=bl.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i}=await He.find(t,this.context.cwd),n=await kt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await Ke.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await xO(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await Ke.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};ku.paths=[[\"dedupe\"]],ku.usage=bl.Command.Usage({description:\"deduplicate dependencies with overlapping ranges\",details:\"\\n      Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\\n\\n      This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\\n\\n      - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\\n\\n      **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\\n\\n      If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\\n\\n      If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\\n\\n      - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\\n\\n      - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\\n\\n      This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\\n\\n      ### In-depth explanation:\\n\\n      Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\\n\\n      **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\\n\\n      Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\\n\\n      **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\\n    \",examples:[[\"Dedupe all packages\",\"$0 dedupe\"],[\"Dedupe all packages using a specific strategy\",\"$0 dedupe --strategy highest\"],[\"Dedupe a specific package\",\"$0 dedupe lodash\"],[\"Dedupe all packages with the `@babel/*` scope\",\"$0 dedupe '@babel/*'\"],[\"Check for duplicates (can be used as a CI step)\",\"$0 dedupe --check\"]]});var Zae=ne(Xe()),cp=class extends ve{async execute(){let{plugins:e}=await Ie.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=Zae.Cli.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(\" \").slice(1).join()===a.split(\" \").slice(1).join(),s=_ae()[\"@yarnpkg/builder\"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)}\n`)}};cp.paths=[[\"--clipanion=definitions\"]];var up=class extends ve{async execute(){this.context.stdout.write(this.cli.usage(null))}};up.paths=[[\"help\"],[\"--help\"],[\"-h\"]];var DO=ne(Xe()),hE=class extends ve{constructor(){super(...arguments);this.leadingArgument=DO.Option.String();this.args=DO.Option.Proxy()}async execute(){if(this.leadingArgument.match(/[\\\\/]/)&&!P.tryParseIdent(this.leadingArgument)){let t=x.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run([\"run\",this.leadingArgument,...this.args])}};var gp=class extends ve{async execute(){this.context.stdout.write(`${Or||\"<unknown>\"}\n`)}};gp.paths=[[\"-v\"],[\"--version\"]];var pE=ne(Xe()),Ru=class extends ve{constructor(){super(...arguments);this.commandName=pE.Option.String();this.args=pE.Option.Proxy()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await He.find(t,this.context.cwd);return await i.restoreInstallState(),await Jt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};Ru.paths=[[\"exec\"]],Ru.usage=pE.Command.Usage({description:\"execute a shell script\",details:`\n      This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell.\n\n      It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n    `,examples:[[\"Execute a single shell command\",\"$0 exec echo Hello World\"],[\"Execute a shell script\",'$0 exec \"tsc & babel src --out-dir lib\"']]});var rb=ne(Xe()),fp=ne(ns()),Fu=class extends ve{constructor(){super(...arguments);this.hash=rb.Option.String({required:!1,validator:fp.applyCascade(fp.isString(),[fp.matchesRegExp(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i}=await He.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<\"u\"?await M3e(this.hash,i,{stdout:this.context.stdout}):(await Ke.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>P.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>P.stringifyIdent(l.requested)];for(let[l,c]of Ee.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>\"u\")throw new Error(\"Assertion failed: Expected the subject package to have been registered\");let g=i.storedPackages.get(c.rootRequester);if(typeof g>\"u\")throw new Error(\"Assertion failed: Expected the root package to have been registered\");let f=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,h=ee.pretty(t,l,ee.Type.CODE),p=P.prettyLocator(t,u),C=P.prettyIdent(t,c.requested),w=P.prettyIdent(t,g),B=c.allRequesters.length-1,v=`descendant${B===1?\"\":\"s\"}`,D=B>0?` and ${B} ${v}`:\"\",L=f!==null?\"provides\":\"doesn't provide\";s.reportInfo(null,`${h} \\u2192 ${p} ${L} ${C} to ${w}${D}`)}})).exitCode()}};Fu.paths=[[\"explain\",\"peer-requirements\"]],Fu.usage=rb.Command.Usage({description:\"explain a set of peer requirements\",details:`\n      A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants.\n\n      When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not.\n\n      When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set.\n\n      **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\\`yarn explain peer-requirements\\`).\n    `,examples:[[\"Explain the corresponding set of peer requirements for a hash\",\"$0 explain peer-requirements p1a4ed\"],[\"List all sets of peer requirements\",\"$0 explain peer-requirements\"]]});async function M3e(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>\"u\")throw new Error(`No peerDependency requirements found for hash: \"${r}\"`);return(await Ke.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,v;let a=e.storedPackages.get(n.subject);if(typeof a>\"u\")throw new Error(\"Assertion failed: Expected the subject package to have been registered\");let l=e.storedPackages.get(n.rootRequester);if(typeof l>\"u\")throw new Error(\"Assertion failed: Expected the root package to have been registered\");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>\"u\")throw new Error(\"Assertion failed: Expected the resolution to have been registered\");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>\"u\")throw new Error(\"Assertion failed: Expected the provided package to have been registered\");let f=[...n.allRequesters.values()].map(D=>{let L=e.storedPackages.get(D);if(typeof L>\"u\")throw new Error(\"Assertion failed: Expected the package to be registered\");let H=P.devirtualizeLocator(L),j=e.storedPackages.get(H.locatorHash);if(typeof j>\"u\")throw new Error(\"Assertion failed: Expected the package to be registered\");let $=j.peerDependencies.get(n.requested.identHash);if(typeof $>\"u\")throw new Error(\"Assertion failed: Expected the peer dependency to be registered\");return{pkg:L,peerDependency:$}});if(g!==null){let D=f.every(({peerDependency:L})=>vt.satisfiesWithPrereleases(g.version,L.range));o.reportInfo(0,`${P.prettyLocator(i,a)} provides ${P.prettyLocator(i,g)} with version ${P.prettyReference(i,(v=g.version)!=null?v:\"<missing>\")}, which ${D?\"satisfies\":\"doesn't satisfy\"} the following requirements:`)}else o.reportInfo(0,`${P.prettyLocator(i,a)} doesn't provide ${P.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let h=ee.mark(i),p=[];for(let{pkg:D,peerDependency:L}of Ee.sortMap(f,H=>P.stringifyLocator(H.pkg))){let j=(g!==null?vt.satisfiesWithPrereleases(g.version,L.range):!1)?h.Check:h.Cross;p.push({stringifiedLocator:P.stringifyLocator(D),prettyLocator:P.prettyLocator(i,D),prettyRange:P.prettyRange(i,L.range),mark:j})}let C=Math.max(...p.map(({stringifiedLocator:D})=>D.length)),w=Math.max(...p.map(({prettyRange:D})=>D.length));for(let{stringifiedLocator:D,prettyLocator:L,prettyRange:H,mark:j}of Ee.sortMap(p,({stringifiedLocator:$})=>$))o.reportInfo(null,`${L.padEnd(C+(L.length-D.length),\" \")} \\u2192 ${H.padEnd(w,\" \")} ${j}`);p.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${P.prettyLocator(e.configuration,l)}`))})).exitCode()}var CE=ne(Xe()),hp=ne(ns());var na=ne(Xe()),$ae=ne($r()),Nu=class extends ve{constructor(){super(...arguments);this.onlyIfNeeded=na.Option.Boolean(\"--only-if-needed\",!1,{description:\"Only lock the Yarn version if it isn't already locked\"});this.version=na.Option.String()}async execute(){var o;let t=await Ie.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get(\"yarnPath\")){let a=t.sources.get(\"yarnPath\");if(!a)throw new Error(\"Assertion failed: Expected 'yarnPath' to have a source\");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(x.contains(l,a))return 0}let i=()=>{if(typeof Or>\"u\")throw new na.UsageError(\"The --install flag can only be used without explicit version specifier from the Yarn CLI\");return`file://${process.argv[1]}`},n;if(this.version===\"self\")n=i();else if(this.version===\"latest\"||this.version===\"berry\"||this.version===\"stable\")n=`https://repo.yarnpkg.com/${await dE(t,\"stable\")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version===\"canary\")n=`https://repo.yarnpkg.com/${await dE(t,\"canary\")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version===\"classic\")n=\"https://classic.yarnpkg.com/latest.js\";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\\.{0,2}[\\\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(vt.satisfiesWithPrereleases(this.version,\">=2.0.0\"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(vt.satisfiesWithPrereleases(this.version,\"^0.x || ^1.x\"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(vt.validRange(this.version))n=`https://repo.yarnpkg.com/${await K3e(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new na.UsageError(`Invalid version descriptor \"${this.version}\"`);return(await Ke.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l=\"file://\",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${ee.pretty(t,n,Pi.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${ee.pretty(t,n,Pi.PATH)}`),c=await Vt.get(n,{configuration:t})),await kO(t,null,c,{report:a})})).exitCode()}};Nu.paths=[[\"set\",\"version\"]],Nu.usage=na.Command.Usage({description:\"lock the Yarn version used by the project\",details:\"\\n      This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\\n\\n      A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\\n\\n      The version specifier can be:\\n\\n      - a tag:\\n        - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\\n        - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\\n        - `classic` -> the most recent classic (`^0.x || ^1.x`) release\\n\\n      - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\\n\\n      - a semver version (e.g. `2.4.1`, `1.22.1`)\\n\\n      - a local file referenced through either a relative or absolute path\\n\\n      - `self` -> the version used to invoke the command\\n    \",examples:[[\"Download the latest release from the Yarn repository\",\"$0 set version latest\"],[\"Download the latest canary release from the Yarn repository\",\"$0 set version canary\"],[\"Download the latest classic release from the Yarn repository\",\"$0 set version classic\"],[\"Download the most recent Yarn 3 build\",\"$0 set version 3.x\"],[\"Download a specific Yarn 2 build\",\"$0 set version 2.0.0-rc.30\"],[\"Switch back to a specific Yarn 1 release\",\"$0 set version 1.22.1\"],[\"Use a release from the local filesystem\",\"$0 set version ./yarn.cjs\"],[\"Use a release from a URL\",\"$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js\"],[\"Download the version used to invoke the command\",\"$0 set version self\"]]});async function K3e(r,e){let i=(await Vt.get(\"https://repo.yarnpkg.com/tags\",{configuration:r,jsonResponse:!0})).tags.filter(n=>vt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new na.UsageError(`No matching release found for range ${ee.pretty(r,e,ee.Type.RANGE)}.`);return i[0]}async function dE(r,e){let t=await Vt.get(\"https://repo.yarnpkg.com/tags\",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new na.UsageError(`Tag ${ee.pretty(r,e,ee.Type.RANGE)} not found`);return t.latest[e]}async function kO(r,e,t,{report:i}){var h;e===null&&await M.mktempPromise(async p=>{let C=x.join(p,\"yarn.cjs\");await M.writeFilePromise(C,t);let{stdout:w}=await mr.execvp(process.execPath,[K.fromPortablePath(C),\"--version\"],{cwd:p,env:{...process.env,YARN_IGNORE_PATH:\"1\"}});if(e=w.trim(),!$ae.default.valid(e))throw new Error(`Invalid semver version. ${ee.pretty(r,\"yarn --version\",ee.Type.CODE)} returned:\n${e}`)});let n=(h=r.projectCwd)!=null?h:r.startingCwd,s=x.resolve(n,\".yarn/releases\"),o=x.resolve(s,`yarn-${e}.cjs`),a=x.relative(r.startingCwd,o),l=x.relative(n,o);i.reportInfo(0,`Saving the new release in ${ee.pretty(r,a,\"magenta\")}`),await M.removePromise(x.dirname(o)),await M.mkdirPromise(x.dirname(o),{recursive:!0}),await M.writeFilePromise(o,t,{mode:493}),await Ie.updateConfiguration(n,{yarnPath:l});let c=await nt.tryFind(n)||new nt;c.packageManager=`yarn@${e&&Ee.isTaggedYarnVersion(e)?e:await dE(r,\"stable\")}`;let u={};c.exportTo(u);let g=x.join(n,nt.fileName),f=`${JSON.stringify(u,null,c.indent)}\n`;await M.changeFilePromise(g,f,{automaticNewlines:!0})}function eAe(r){return Ct[uy(r)]}var U3e=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\\n\\n(?<details>(?:.(?!##))+)/gs;async function H3e(r){let t=`https://repo.yarnpkg.com/${Ee.isTaggedYarnVersion(Or)?Or:await dE(r,\"canary\")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(U3e),({groups:n})=>{if(!n)throw new Error(\"Assertion failed: Expected the match to have been successful\");let s=eAe(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected \"${n.name}\" to be named \"${s}\"`);return[n.code,n.details]}))}var Lu=class extends ve{constructor(){super(...arguments);this.code=CE.Option.String({required:!1,validator:hp.applyCascade(hp.isString(),[hp.matchesRegExp(/^YN[0-9]{4}$/)])});this.json=CE.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins);if(typeof this.code<\"u\"){let i=eAe(this.code),n=ee.pretty(t,i,ee.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await H3e(t)).get(this.code),l=typeof a<\"u\"?ee.jsonOrPretty(this.json,t,ee.tuple(ee.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description.\n\nYou can help us by editing this page on GitHub \\u{1F642}:\n${ee.jsonOrPretty(this.json,t,ee.tuple(ee.Type.URL,\"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md\"))}\n`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:i,details:l})}\n`):this.context.stdout.write(`${s}\n\n${l}\n`)}else{let i={children:Ee.mapAndFilter(Object.entries(Ct),([n,s])=>Number.isNaN(Number(n))?Ee.mapAndFilter.skip:{label:MA(Number(n)),value:ee.tuple(ee.Type.CODE,s)})};Vn.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};Lu.paths=[[\"explain\"]],Lu.usage=CE.Command.Usage({description:\"explain an error code\",details:`\n      When the code argument is specified, this command prints its name and its details.\n\n      When used without arguments, this command lists all error codes and their names.\n    `,examples:[[\"Explain an error code\",\"$0 explain YN0006\"],[\"List all error codes\",\"$0 explain\"]]});var an=ne(Xe()),tAe=ne(wn()),Tu=class extends ve{constructor(){super(...arguments);this.all=an.Option.Boolean(\"-A,--all\",!1,{description:\"Print versions of a package from the whole project\"});this.recursive=an.Option.Boolean(\"-R,--recursive\",!1,{description:\"Print information for all packages, including transitive dependencies\"});this.extra=an.Option.Array(\"-X,--extra\",[],{description:\"An array of requests of extra data provided by plugins\"});this.cache=an.Option.Boolean(\"--cache\",!1,{description:\"Print information about the cache entry of a package (path, size, checksum)\"});this.dependents=an.Option.Boolean(\"--dependents\",!1,{description:\"Print all dependents for each matching package\"});this.manifest=an.Option.Boolean(\"--manifest\",!1,{description:\"Print data obtained by looking at the package archive (license, homepage, ...)\"});this.nameOnly=an.Option.Boolean(\"--name-only\",!1,{description:\"Only print the name for the matching packages\"});this.virtuals=an.Option.Boolean(\"--virtuals\",!1,{description:\"Print each instance of the virtual packages\"});this.json=an.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.patterns=an.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n&&!this.all)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add(\"cache\"),this.dependents&&o.add(\"dependents\"),this.manifest&&o.add(\"manifest\");let a=(L,{recursive:H})=>{let j=L.anchoredLocator.locatorHash,$=new Map,V=[j];for(;V.length>0;){let W=V.shift();if($.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>\"u\")throw new Error(\"Assertion failed: Expected the package to be registered\");if($.set(W,Z),P.isVirtualLocator(Z)&&V.push(P.devirtualizeLocator(Z).locatorHash),!(!H&&W!==j))for(let A of Z.dependencies.values()){let ae=i.storedResolutions.get(A.descriptorHash);if(typeof ae>\"u\")throw new Error(\"Assertion failed: Expected the resolution to be registered\");V.push(ae)}}return $.values()},l=({recursive:L})=>{let H=new Map;for(let j of i.workspaces)for(let $ of a(j,{recursive:L}))H.set($.locatorHash,$);return H.values()},c=({all:L,recursive:H})=>L&&H?i.storedPackages.values():L?l({recursive:H}):a(n,{recursive:H}),u=({all:L,recursive:H})=>{let j=c({all:L,recursive:H}),$=this.patterns.map(Z=>{let A=P.parseLocator(Z),ae=tAe.default.makeRe(P.stringifyIdent(A)),ge=P.isVirtualLocator(A),_=ge?P.devirtualizeLocator(A):A;return T=>{let N=P.stringifyIdent(T);if(!ae.test(N))return!1;if(A.reference===\"unknown\")return!0;let ue=P.isVirtualLocator(T),we=ue?P.devirtualizeLocator(T):T;return!(ge&&ue&&A.reference!==T.reference||_.reference!==we.reference)}}),V=Ee.sortMap([...j],Z=>P.stringifyLocator(Z));return{selection:V.filter(Z=>$.length===0||$.some(A=>A(Z))),sortedLookup:V}},{selection:g,sortedLookup:f}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new an.UsageError(\"No package matched your request\");let h=new Map;if(this.dependents)for(let L of f)for(let H of L.dependencies.values()){let j=i.storedResolutions.get(H.descriptorHash);if(typeof j>\"u\")throw new Error(\"Assertion failed: Expected the resolution to be registered\");Ee.getArrayWithDefault(h,j).push(L)}let p=new Map;for(let L of f){if(!P.isVirtualLocator(L))continue;let H=P.devirtualizeLocator(L);Ee.getArrayWithDefault(p,H.locatorHash).push(L)}let C={},w={children:C},B=t.makeFetcher(),v={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new ni,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},D=[async(L,H,j)=>{var W,Z;if(!H.has(\"manifest\"))return;let $=await B.fetch(L,v),V;try{V=await nt.find($.prefixPath,{baseFs:$.packageFs})}finally{(W=$.releaseFs)==null||W.call($)}j(\"Manifest\",{License:ee.tuple(ee.Type.NO_HINT,V.license),Homepage:ee.tuple(ee.Type.URL,(Z=V.raw.homepage)!=null?Z:null)})},async(L,H,j)=>{var ae;if(!H.has(\"cache\"))return;let $={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},V=(ae=i.storedChecksums.get(L.locatorHash))!=null?ae:null,W=s.getLocatorPath(L,V,$),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<\"u\"?[Z.size,ee.Type.SIZE]:void 0;j(\"Cache\",{Checksum:ee.tuple(ee.Type.NO_HINT,V),Path:ee.tuple(ee.Type.PATH,W),Size:A})}];for(let L of g){let H=P.isVirtualLocator(L);if(!this.virtuals&&H)continue;let j={},$={value:[L,ee.Type.LOCATOR],children:j};if(C[P.stringifyLocator(L)]=$,this.nameOnly){delete $.children;continue}let V=p.get(L.locatorHash);typeof V<\"u\"&&(j.Instances={label:\"Instances\",value:ee.tuple(ee.Type.NUMBER,V.length)}),j.Version={label:\"Version\",value:ee.tuple(ee.Type.NO_HINT,L.version)};let W=(A,ae)=>{let ge={};if(j[A]=ge,Array.isArray(ae))ge.children=ae.map(_=>({value:_}));else{let _={};ge.children=_;for(let[T,N]of Object.entries(ae))typeof N>\"u\"||(_[T]={label:T,value:N})}};if(!H){for(let A of D)await A(L,o,W);await t.triggerHook(A=>A.fetchPackageInfo,L,o,W)}L.bin.size>0&&!H&&W(\"Exported Binaries\",[...L.bin.keys()].map(A=>ee.tuple(ee.Type.PATH,A)));let Z=h.get(L.locatorHash);typeof Z<\"u\"&&Z.length>0&&W(\"Dependents\",Z.map(A=>ee.tuple(ee.Type.LOCATOR,A))),L.dependencies.size>0&&!H&&W(\"Dependencies\",[...L.dependencies.values()].map(A=>{var _;let ae=i.storedResolutions.get(A.descriptorHash),ge=typeof ae<\"u\"&&(_=i.storedPackages.get(ae))!=null?_:null;return ee.tuple(ee.Type.RESOLUTION,{descriptor:A,locator:ge})})),L.peerDependencies.size>0&&H&&W(\"Peer dependencies\",[...L.peerDependencies.values()].map(A=>{var T,N;let ae=L.dependencies.get(A.identHash),ge=typeof ae<\"u\"&&(T=i.storedResolutions.get(ae.descriptorHash))!=null?T:null,_=ge!==null&&(N=i.storedPackages.get(ge))!=null?N:null;return ee.tuple(ee.Type.RESOLUTION,{descriptor:A,locator:_})}))}Vn.emitTree(w,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Tu.paths=[[\"info\"]],Tu.usage=an.Command.Usage({description:\"see information related to packages\",details:\"\\n      This command prints various information related to the specified packages, accepting glob patterns.\\n\\n      By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\\n\\n      Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\\n\\n      Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\\n    \",examples:[[\"Show information about Lodash\",\"$0 info lodash\"]]});var ib=ne(yc()),Wr=ne(Xe()),rAe=ne(ns()),Ou=class extends ve{constructor(){super(...arguments);this.json=Wr.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.immutable=Wr.Option.Boolean(\"--immutable\",{description:\"Abort with an error exit code if the lockfile was to be modified\"});this.immutableCache=Wr.Option.Boolean(\"--immutable-cache\",{description:\"Abort with an error exit code if the cache folder was to be modified\"});this.checkCache=Wr.Option.Boolean(\"--check-cache\",!1,{description:\"Always refetch the packages and ensure that their checksums are consistent\"});this.inlineBuilds=Wr.Option.Boolean(\"--inline-builds\",{description:\"Verbosely print the output of the build steps of dependencies\"});this.mode=Wr.Option.String(\"--mode\",{description:\"Change what artifacts installs generate\",validator:rAe.isEnum(Xn)});this.cacheFolder=Wr.Option.String(\"--cache-folder\",{hidden:!0});this.frozenLockfile=Wr.Option.Boolean(\"--frozen-lockfile\",{hidden:!0});this.ignoreEngines=Wr.Option.Boolean(\"--ignore-engines\",{hidden:!0});this.nonInteractive=Wr.Option.Boolean(\"--non-interactive\",{hidden:!0});this.preferOffline=Wr.Option.Boolean(\"--prefer-offline\",{hidden:!0});this.production=Wr.Option.Boolean(\"--production\",{hidden:!0});this.registry=Wr.Option.String(\"--registry\",{hidden:!0});this.silent=Wr.Option.Boolean(\"--silent\",{hidden:!0});this.networkTimeout=Wr.Option.String(\"--network-timeout\",{hidden:!0})}async execute(){var f;let t=await Ie.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<\"u\"&&t.useWithSource(\"<cli>\",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(h,{error:p})=>{let C=await Ke.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async w=>{p?w.reportError(50,h):w.reportWarning(50,h)});return C.hasErrors()?C.exitCode():null};if(typeof this.ignoreEngines<\"u\"){let h=await n(\"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore\",{error:!ib.default.VERCEL});if(h!==null)return h}if(typeof this.registry<\"u\"){let h=await n(\"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file\",{error:!1});if(h!==null)return h}if(typeof this.preferOffline<\"u\"){let h=await n(\"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead\",{error:!ib.default.VERCEL});if(h!==null)return h}if(typeof this.production<\"u\"){let h=await n(\"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead\",{error:!0});if(h!==null)return h}if(typeof this.nonInteractive<\"u\"){let h=await n(\"The --non-interactive option is deprecated\",{error:!i});if(h!==null)return h}if(typeof this.frozenLockfile<\"u\"&&(await n(\"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead\",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<\"u\"){let h=await n(\"The cache-folder option has been deprecated; use rc settings instead\",{error:!ib.default.NETLIFY});if(h!==null)return h}let s=this.mode===\"update-lockfile\";if(s&&(this.immutable||this.immutableCache))throw new Wr.UsageError(`${ee.pretty(t,\"--immutable\",ee.Type.CODE)} and ${ee.pretty(t,\"--immutable-cache\",ee.Type.CODE)} cannot be used with ${ee.pretty(t,\"--mode=update-lockfile\",ee.Type.CODE)}`);let o=((f=this.immutable)!=null?f:t.get(\"enableImmutableInstalls\"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let h=await Ke.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async p=>{await q3e(t,o)&&(p.reportInfo(48,\"Automatically fixed merge conflicts \\u{1F44D}\"),p.reportSeparator())});if(h.hasErrors())return h.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get(\"nodeLinker\")>\"u\"){let h=t.projectCwd,p;try{p=await M.readFilePromise(x.join(h,xt.lockfile),\"utf8\")}catch{}if(p!=null&&p.includes(\"yarn lockfile v1\")){let C=await Ke.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async w=>{w.reportInfo(70,\"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \\u{1F44D}\"),w.reportSeparator(),t.use(\"<compat>\",{nodeLinker:\"node-modules\"},h,{overwrite:!0}),await Ie.updateConfiguration(h,{nodeLinker:\"node-modules\"})});if(C.hasErrors())return C.exitCode()}}if(t.projectCwd!==null){let h=await Ke.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async p=>{var C;(C=Ie.telemetry)!=null&&C.isNew&&(p.reportInfo(65,\"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry\"),p.reportInfo(65,`Run ${ee.pretty(t,\"yarn config set --home enableTelemetry 0\",ee.Type.CODE)} to disable`),p.reportSeparator())});if(h.hasErrors())return h.exitCode()}let{project:l,workspace:c}=await He.find(t,this.context.cwd),u=await kt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new ct(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await Ke.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async h=>{await l.install({cache:u,report:h,immutable:o,mode:this.mode})})).exitCode()}};Ou.paths=[[\"install\"],Wr.Command.Default],Ou.usage=Wr.Command.Usage({description:\"install the project dependencies\",details:`\n      This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n      - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n      - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of \\`cacheFolder\\` in \\`yarn config\\` to see where the cache files are stored).\n\n      - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know).\n\n      - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n      Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n      If the \\`--immutable\\` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the \\`immutablePatterns\\` configuration setting). For backward compatibility we offer an alias under the name of \\`--frozen-lockfile\\`, but it will be removed in a later release.\n\n      If the \\`--immutable-cache\\` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n      If the \\`--check-cache\\` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n      If the \\`--inline-builds\\` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n      If the \\`--mode=<mode>\\` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n      - \\`skip-build\\` will not run the build scripts at all. Note that this is different from setting \\`enableScripts\\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n      - \\`update-lockfile\\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n    `,examples:[[\"Install the project\",\"$0 install\"],[\"Validate a project when using Zero-Installs\",\"$0 install --immutable --immutable-cache\"],[\"Validate a project when using Zero-Installs (slightly safer if you accept external PRs)\",\"$0 install --immutable --immutable-cache --check-cache\"]]});var G3e=\"|||||||\",Y3e=\">>>>>>>\",j3e=\"=======\",iAe=\"<<<<<<<\";async function q3e(r,e){if(!r.projectCwd)return!1;let t=x.join(r.projectCwd,r.get(\"lockfileFilename\"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,\"utf8\");if(!i.includes(iAe))return!1;if(e)throw new ot(47,\"Cannot autofix a lockfile when running an immutable install\");let[n,s]=J3e(i),o,a;try{o=Qi(n),a=Qi(s)}catch{throw new ot(46,\"The individual variants of the lockfile failed to parse\")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u==\"string\"&&delete l[c];return await M.changeFilePromise(t,ba(l),{automaticNewlines:!0}),!0}function J3e(r){let e=[[],[]],t=r.split(/\\r?\\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>\"u\")throw new Error(\"Assertion failed: Some lines should remain\");if(n.startsWith(iAe)){for(;t.length>0;){let s=t.shift();if(typeof s>\"u\")throw new Error(\"Assertion failed: Some lines should remain\");if(s===j3e){i=!1;break}else if(i||s.startsWith(G3e)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>\"u\")throw new Error(\"Assertion failed: Some lines should remain\");if(s.startsWith(Y3e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(`\n`),e[1].join(`\n`)]}var ks=ne(Xe()),Mu=class extends ve{constructor(){super(...arguments);this.all=ks.Option.Boolean(\"-A,--all\",!1,{description:\"Link all workspaces belonging to the target project to the current one\"});this.private=ks.Option.Boolean(\"-p,--private\",!1,{description:\"Also link private workspaces belonging to the target project to the current one\"});this.relative=ks.Option.Boolean(\"-r,--relative\",!1,{description:\"Link workspaces using relative paths instead of absolute paths\"});this.destination=ks.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=x.resolve(this.context.cwd,K.toPortablePath(this.destination)),a=await Ie.find(o,this.context.plugins,{useRc:!1,strict:!1}),{project:l,workspace:c}=await He.find(a,o);if(i.cwd===l.cwd)throw new ks.UsageError(\"Invalid destination; Can't link the project to itself\");if(!c)throw new ct(l.cwd,o);let u=i.topLevelWorkspace,g=[];if(this.all){for(let h of l.workspaces)h.manifest.name&&(!h.manifest.private||this.private)&&g.push(h);if(g.length===0)throw new ks.UsageError(\"No workspace found to be linked in the target project\")}else{if(!c.manifest.name)throw new ks.UsageError(\"The target workspace doesn't have a name and thus cannot be linked\");if(c.manifest.private&&!this.private)throw new ks.UsageError(\"The target workspace is marked private - use the --private flag to link it anyway\");g.push(c)}for(let h of g){let p=P.stringifyIdent(h.locator),C=this.relative?x.relative(i.cwd,h.cwd):h.cwd;u.manifest.resolutions.push({pattern:{descriptor:{fullName:p}},reference:`portal:${C}`})}return(await Ke.start({configuration:t,stdout:this.context.stdout},async h=>{await i.install({cache:s,report:h})})).exitCode()}};Mu.paths=[[\"link\"]],Mu.usage=ks.Command.Usage({description:\"connect the local project to another one\",details:\"\\n      This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\\n    \",examples:[[\"Register a remote workspace for use in the current project\",\"$0 link ~/ts-loader\"],[\"Register all workspaces from a remote project for use in the current project\",\"$0 link ~/jest --all\"]]});var nb=ne(Xe()),Ku=class extends ve{constructor(){super(...arguments);this.args=nb.Option.Proxy()}async execute(){return this.cli.run([\"exec\",\"node\",...this.args])}};Ku.paths=[[\"node\"]],Ku.usage=nb.Command.Usage({description:\"run node with the hook already setup\",details:`\n      This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n\n      The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version.\n    `,examples:[[\"Run a Node script\",\"$0 node ./my-script.js\"]]});var AA=ne(Xe()),lAe=J(\"os\");var sa=ne(Xe()),nAe=J(\"os\");var sb=ne(Xe()),W3e=\"https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml\";async function Hu(r){let e=await Vt.get(W3e,{configuration:r});return Qi(e.toString())}var Uu=class extends ve{constructor(){super(...arguments);this.json=sb.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins);return(await Ke.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await Hu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=\" [experimental]\"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Uu.paths=[[\"plugin\",\"list\"]],Uu.usage=sb.Command.Usage({category:\"Plugin-related commands\",description:\"list the available official plugins\",details:\"\\n      This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\\n    \",examples:[[\"List the official plugins\",\"$0 plugin list\"]]});var z3e=/^[0-9]+$/;function sAe(r){return z3e.test(r)?`pull/${r}/head`:r}var V3e=({repository:r,branch:e},t)=>[[\"git\",\"init\",K.fromPortablePath(t)],[\"git\",\"remote\",\"add\",\"origin\",r],[\"git\",\"fetch\",\"origin\",\"--depth=1\",sAe(e)],[\"git\",\"reset\",\"--hard\",\"FETCH_HEAD\"]],X3e=({branch:r})=>[[\"git\",\"fetch\",\"origin\",\"--depth=1\",sAe(r),\"--force\"],[\"git\",\"reset\",\"--hard\",\"FETCH_HEAD\"],[\"git\",\"clean\",\"-dfx\"]],_3e=({plugins:r,noMinify:e},t)=>[[\"yarn\",\"build:cli\",...new Array().concat(...r.map(i=>[\"--plugin\",x.resolve(t,i)])),...e?[\"--no-minify\"]:[],\"|\"]],Gu=class extends ve{constructor(){super(...arguments);this.installPath=sa.Option.String(\"--path\",{description:\"The path where the repository should be cloned to\"});this.repository=sa.Option.String(\"--repository\",\"https://github.com/yarnpkg/berry.git\",{description:\"The repository that should be cloned\"});this.branch=sa.Option.String(\"--branch\",\"master\",{description:\"The branch of the repository that should be cloned\"});this.plugins=sa.Option.Array(\"--plugin\",[],{description:\"An array of additional plugins that should be included in the bundle\"});this.noMinify=sa.Option.Boolean(\"--no-minify\",!1,{description:\"Build a bundle for development (debugging) - non-minified and non-mangled\"});this.force=sa.Option.Boolean(\"-f,--force\",!1,{description:\"Always clone the repository instead of trying to fetch the latest commits\"});this.skipPlugins=sa.Option.Boolean(\"--skip-plugins\",!1,{description:\"Skip updating the contrib plugins\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i}=await He.find(t,this.context.cwd),n=typeof this.installPath<\"u\"?x.resolve(this.context.cwd,K.toPortablePath(this.installPath)):x.resolve(K.toPortablePath((0,nAe.tmpdir)()),\"yarnpkg-sources\",gi.makeHash(this.repository).slice(0,6));return(await Ke.start({configuration:t,stdout:this.context.stdout},async o=>{await RO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,\"Building a fresh bundle\"),o.reportSeparator(),await mE(_3e(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=x.resolve(n,\"packages/yarnpkg-cli/bundles/yarn.js\"),l=await M.readFilePromise(a);await kO(t,\"sources\",l,{report:o}),this.skipPlugins||await Z3e(this,{project:i,report:o,target:n})})).exitCode()}};Gu.paths=[[\"set\",\"version\",\"from\",\"sources\"]],Gu.usage=sa.Command.Usage({description:\"build Yarn from master\",details:`\n      This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project.\n\n      By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \\`--skip-plugins\\` flag.\n    `,examples:[[\"Build Yarn from master\",\"$0 set version from sources\"]]});async function mE(r,{configuration:e,context:t,target:i}){for(let[n,...s]of r){let o=s[s.length-1]===\"|\";if(o&&s.pop(),o)await mr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${ee.pretty(e,`  $ ${[n,...s].join(\" \")}`,\"grey\")}\n`);try{await mr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function RO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(x.join(i,\".git\"))){t.reportInfo(0,\"Fetching the latest commits\"),t.reportSeparator();try{await mE(X3e(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,\"Repository update failed; we'll try to regenerate it\")}}n||(t.reportInfo(0,\"Cloning the remote repository\"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await mE(V3e(r,i),{configuration:e,context:r.context,target:i}))}async function Z3e(r,{project:e,report:t,target:i}){let n=await Hu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await FO(o,r,{project:e,report:t,target:i})}var ob=ne(Xe()),oAe=ne($r()),aAe=J(\"url\"),AAe=J(\"vm\");var Yu=class extends ve{constructor(){super(...arguments);this.name=ob.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins);return(await Ke.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await He.find(t,this.context.cwd),o,a;if(this.name.match(/^\\.{0,2}[\\\\/]/)||K.isAbsolute(this.name)){let l=x.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${ee.pretty(t,l,ee.Type.PATH)}`),o=x.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new aAe.URL(this.name)}catch{throw new ot(52,`Plugin specifier \"${this.name}\" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=P.parseLocator(this.name.replace(/^((@yarnpkg\\/)?plugin-)?/,\"@yarnpkg/plugin-\"));if(c.reference!==\"unknown\"&&!oAe.default.valid(c.reference))throw new ot(0,\"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.\");let u=P.stringifyIdent(c),g=await Hu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new ot(51,`Couldn't find a plugin named \"${u}\" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!==\"unknown\"?l=l.replace(/\\/master\\//,`/${u}/${c.reference}/`):Or!==null&&(l=l.replace(/\\/master\\//,`/@yarnpkg/cli/${Or}/`))}n.reportInfo(0,`Downloading ${ee.pretty(t,l,\"green\")}`),a=await Vt.get(l,{configuration:t})}await NO(o,a,{project:s,report:n})})).exitCode()}};Yu.paths=[[\"plugin\",\"import\"]],Yu.usage=ob.Command.Usage({category:\"Plugin-related commands\",description:\"download a plugin\",details:`\n      This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations.\n\n      Three types of plugin references are accepted:\n\n      - If the plugin is stored within the Yarn repository, it can be referenced by name.\n      - Third-party plugins can be referenced directly through their public urls.\n      - Local plugins can be referenced by their path on the disk.\n\n      Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \\`@yarnpkg/builder\\` package).\n    `,examples:[['Download and activate the \"@yarnpkg/plugin-exec\" plugin',\"$0 plugin import @yarnpkg/plugin-exec\"],['Download and activate the \"@yarnpkg/plugin-exec\" plugin (shorthand)',\"$0 plugin import exec\"],[\"Download and activate a community plugin\",\"$0 plugin import https://example.org/path/to/plugin.js\"],[\"Activate a local plugin\",\"$0 plugin import ./path/to/plugin.js\"]]});async function NO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,AAe.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=x.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${ee.pretty(n,l,\"magenta\")}`),await M.mkdirPromise(x.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ie.updateConfiguration(t.cwd,g=>{let f=[],h=!1;for(let p of g.plugins||[]){let C=typeof p!=\"string\"?p.path:p,w=x.resolve(t.cwd,K.toPortablePath(C)),{name:B}=Ee.dynamicRequire(w);B!==a?f.push(p):(f.push(u),h=!0)}return h||f.push(u),{...g,plugins:f}})}var $3e=({pluginName:r,noMinify:e},t)=>[[\"yarn\",`build:${r}`,...e?[\"--no-minify\"]:[],\"|\"]],ju=class extends ve{constructor(){super(...arguments);this.installPath=AA.Option.String(\"--path\",{description:\"The path where the repository should be cloned to\"});this.repository=AA.Option.String(\"--repository\",\"https://github.com/yarnpkg/berry.git\",{description:\"The repository that should be cloned\"});this.branch=AA.Option.String(\"--branch\",\"master\",{description:\"The branch of the repository that should be cloned\"});this.noMinify=AA.Option.Boolean(\"--no-minify\",!1,{description:\"Build a plugin for development (debugging) - non-minified and non-mangled\"});this.force=AA.Option.Boolean(\"-f,--force\",!1,{description:\"Always clone the repository instead of trying to fetch the latest commits\"});this.name=AA.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<\"u\"?x.resolve(this.context.cwd,K.toPortablePath(this.installPath)):x.resolve(K.toPortablePath((0,lAe.tmpdir)()),\"yarnpkg-sources\",gi.makeHash(this.repository).slice(0,6));return(await Ke.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await He.find(t,this.context.cwd),a=P.parseIdent(this.name.replace(/^((@yarnpkg\\/)?plugin-)?/,\"@yarnpkg/plugin-\")),l=P.stringifyIdent(a),c=await Hu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new ot(51,`Couldn't find a plugin named \"${l}\" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await RO(this,{configuration:t,report:s,target:i}),await FO(u,this,{project:o,report:s,target:i})})).exitCode()}};ju.paths=[[\"plugin\",\"import\",\"from\",\"sources\"]],ju.usage=AA.Command.Usage({category:\"Plugin-related commands\",description:\"build a plugin from sources\",details:`\n      This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations.\n\n      The plugins can be referenced by their short name if sourced from the official Yarn repository.\n    `,examples:[['Build and activate the \"@yarnpkg/plugin-exec\" plugin',\"$0 plugin import from sources @yarnpkg/plugin-exec\"],['Build and activate the \"@yarnpkg/plugin-exec\" plugin (shorthand)',\"$0 plugin import from sources exec\"]]});async function FO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\\//,\"\"),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await mE($3e({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=x.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await NO(r,c,{project:i,report:n})}var pp=ne(Xe()),qu=class extends ve{constructor(){super(...arguments);this.name=pp.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i}=await He.find(t,this.context.cwd);return(await Ke.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=P.parseIdent(o);if(!t.plugins.has(o))throw new pp.UsageError(`${P.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=x.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${ee.pretty(t,l,ee.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,\"Updating the configuration...\"),await Ie.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(f=>f.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};qu.paths=[[\"plugin\",\"remove\"]],qu.usage=pp.Command.Usage({category:\"Plugin-related commands\",description:\"remove a plugin\",details:`\n      This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration.\n\n      **Note:** The plugins have to be referenced by their name property, which can be obtained using the \\`yarn plugin runtime\\` command. Shorthands are not allowed.\n   `,examples:[[\"Remove a plugin imported from the Yarn repository\",\"$0 plugin remove @yarnpkg/plugin-typescript\"],[\"Remove a plugin imported from a local file\",\"$0 plugin remove my-local-plugin\"]]});var ab=ne(Xe()),Ju=class extends ve{constructor(){super(...arguments);this.json=ab.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins);return(await Ke.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let s of t.plugins.keys()){let o=this.context.plugins.plugins.has(s),a=s;o&&(a+=\" [builtin]\"),n.reportJson({name:s,builtin:o}),n.reportInfo(null,`${a}`)}})).exitCode()}};Ju.paths=[[\"plugin\",\"runtime\"]],Ju.usage=ab.Command.Usage({category:\"Plugin-related commands\",description:\"list the active plugins\",details:`\n      This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.\n    `,examples:[[\"List the currently active plugins\",\"$0 plugin runtime\"]]});var Ab=ne(Xe()),Wu=class extends ve{constructor(){super(...arguments);this.idents=Ab.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(P.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new ni}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await Ke.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Wu.paths=[[\"rebuild\"]],Wu.usage=Ab.Command.Usage({description:\"rebuild the project's native packages\",details:`\n      This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again.\n\n      Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future).\n\n      By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory.\n    `,examples:[[\"Rebuild all packages\",\"$0 rebuild\"],[\"Rebuild fsevents only\",\"$0 rebuild fsevents\"]]});var Sl=ne(Xe()),LO=ne(wn()),cAe=ne(ns());var zu=class extends ve{constructor(){super(...arguments);this.all=Sl.Option.Boolean(\"-A,--all\",!1,{description:\"Apply the operation to all workspaces from the current project\"});this.mode=Sl.Option.String(\"--mode\",{description:\"Change what artifacts installs generate\",validator:cAe.isEnum(Xn)});this.patterns=Sl.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=[\"dependencies\",\"devDependencies\",\"peerDependencies\"],l=[],c=!1,u=[];for(let p of this.patterns){let C=!1,w=P.parseIdent(p);for(let B of o){let v=[...B.manifest.peerDependenciesMeta.keys()];for(let D of(0,LO.default)(v,p))B.manifest.peerDependenciesMeta.delete(D),c=!0,C=!0;for(let D of a){let L=B.manifest.getForScope(D),H=[...L.values()].map(j=>P.stringifyIdent(j));for(let j of(0,LO.default)(H,P.stringifyIdent(w))){let{identHash:$}=P.parseIdent(j),V=L.get($);if(typeof V>\"u\")throw new Error(\"Assertion failed: Expected the descriptor to be registered\");B.manifest[D].delete($),u.push([B,D,V]),c=!0,C=!0}}}C||l.push(p)}let g=l.length>1?\"Patterns\":\"Pattern\",f=l.length>1?\"don't\":\"doesn't\",h=this.all?\"any\":\"this\";if(l.length>0)throw new Sl.UsageError(`${g} ${ee.prettyList(t,l,Pi.CODE)} ${f} match any packages referenced by ${h} workspace`);return c?(await t.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,u),(await Ke.start({configuration:t,stdout:this.context.stdout},async C=>{await i.install({cache:s,report:C,mode:this.mode})})).exitCode()):0}};zu.paths=[[\"remove\"]],zu.usage=Sl.Command.Usage({description:\"remove dependencies from the project\",details:`\n      This command will remove the packages matching the specified patterns from the current workspace.\n\n      If the \\`--mode=<mode>\\` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n      - \\`skip-build\\` will not run the build scripts at all. Note that this is different from setting \\`enableScripts\\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n      - \\`update-lockfile\\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n      This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n    `,examples:[[\"Remove a dependency from the current project\",\"$0 remove lodash\"],[\"Remove a dependency from all workspaces at once\",\"$0 remove lodash --all\"],[\"Remove all dependencies starting with `eslint-`\",\"$0 remove 'eslint-*'\"],[\"Remove all dependencies with the `@babel` scope\",\"$0 remove '@babel/*'\"],[\"Remove all dependencies matching `react-dom` or `react-helmet`\",\"$0 remove 'react-{dom,helmet}'\"]]});var uAe=J(\"util\"),dp=class extends ve{async execute(){let e=await Ie.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await He.find(e,this.context.cwd);if(!i)throw new ct(t.cwd,this.context.cwd);return(await Ke.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=Ee.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get(\"enableColors\"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c,\" \")}   ${(0,uAe.inspect)(g,l)}`)})).exitCode()}};dp.paths=[[\"run\"]];var qi=ne(Xe()),Vu=class extends ve{constructor(){super(...arguments);this.inspect=qi.Option.String(\"--inspect\",!1,{tolerateBoolean:!0,description:\"Forwarded to the underlying Node process when executing a binary\"});this.inspectBrk=qi.Option.String(\"--inspect-brk\",!1,{tolerateBoolean:!0,description:\"Forwarded to the underlying Node process when executing a binary\"});this.topLevel=qi.Option.Boolean(\"-T,--top-level\",!1,{description:\"Check the root workspace for scripts and/or binaries instead of the current one\"});this.binariesOnly=qi.Option.Boolean(\"-B,--binaries-only\",!1,{description:\"Ignore any user defined scripts and only check for binaries\"});this.silent=qi.Option.Boolean(\"--silent\",{hidden:!0});this.scriptName=qi.Option.String();this.args=qi.Option.Proxy()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await He.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Jt.hasPackageScript(o,this.scriptName,{project:i}))return await Jt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Jt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect==\"string\"?c.push(`--inspect=${this.inspect}`):c.push(\"--inspect\")),this.inspectBrk&&(typeof this.inspectBrk==\"string\"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push(\"--inspect-brk\")),await Jt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(\":\")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Jt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName===\"node-gyp\"?new qi.UsageError(`Couldn't find a script name \"${this.scriptName}\" in the top-level (used by ${P.prettyLocator(t,s)}). This typically happens because some package depends on \"node-gyp\" to build itself, but didn't list it in their dependencies. To fix that, please run \"yarn add node-gyp\" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new qi.UsageError(`Couldn't find a script name \"${this.scriptName}\" in the top-level (used by ${P.prettyLocator(t,s)}).`);{if(this.scriptName===\"global\")throw new qi.UsageError(\"The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead\");let c=[this.scriptName].concat(this.args);for(let[u,g]of Hh)for(let f of g)if(c.length>=f.length&&JSON.stringify(c.slice(0,f.length))===JSON.stringify(f))throw new qi.UsageError(`Couldn't find a script named \"${this.scriptName}\", but a matching command can be found in the ${u} plugin. You can install it with \"yarn plugin import ${u}\".`);throw new qi.UsageError(`Couldn't find a script named \"${this.scriptName}\".`)}}};Vu.paths=[[\"run\"]],Vu.usage=qi.Command.Usage({description:\"run a script defined in the package.json\",details:`\n      This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:\n\n      - If the \\`scripts\\` field from your local package.json contains a matching script name, its definition will get executed.\n\n      - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed.\n\n      - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed.\n\n      Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax).\n    `,examples:[[\"Run the tests from the local workspace\",\"$0 run test\"],['Same thing, but without the \"run\" keyword',\"$0 test\"],[\"Inspect Webpack while running\",\"$0 run --inspect-brk webpack\"]]});var Cp=ne(Xe()),Xu=class extends ve{constructor(){super(...arguments);this.save=Cp.Option.Boolean(\"-s,--save\",!1,{description:\"Persist the resolution inside the top-level manifest\"});this.descriptor=Cp.Option.String();this.resolution=Cp.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new ct(i.cwd,this.context.cwd);let o=P.parseDescriptor(this.descriptor,!0),a=P.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await Ke.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Xu.paths=[[\"set\",\"resolution\"]],Xu.usage=Cp.Command.Usage({description:\"enforce a package resolution\",details:'\\n      This command updates the resolution table so that `descriptor` is resolved by `resolution`.\\n\\n      Note that by default this command only affect the current resolution table - meaning that this \"manual override\" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\\n\\n      Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\\n    ',examples:[[\"Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0\",\"$0 set resolution lodash@npm:^1.2.3 1.5.0\"]]});var vl=ne(Xe()),gAe=ne(wn()),_u=class extends ve{constructor(){super(...arguments);this.all=vl.Option.Boolean(\"-A,--all\",!1,{description:\"Unlink all workspaces belonging to the target project from the current one\"});this.leadingArguments=vl.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith(\"portal:\")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=x.resolve(this.context.cwd,K.toPortablePath(c));if(Ee.isPathLike(c)){let g=await Ie.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:f,workspace:h}=await He.find(g,u);if(!h)throw new ct(f.cwd,u);if(this.all){for(let p of f.workspaces)p.manifest.name&&a.add(P.stringifyIdent(p.locator));if(a.size===0)throw new vl.UsageError(\"No workspace found to be unlinked in the target project\")}else{if(!h.manifest.name)throw new vl.UsageError(\"The target workspace doesn't have a name and thus cannot be unlinked\");a.add(P.stringifyIdent(h.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:f})=>f.descriptor.fullName)];for(let f of(0,gAe.default)(g,c))a.add(f)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await Ke.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};_u.paths=[[\"unlink\"]],_u.usage=vl.Command.Usage({description:\"disconnect the local project from another one\",details:`\n      This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments.\n    `,examples:[[\"Unregister a remote workspace in the current project\",\"$0 unlink ~/ts-loader\"],[\"Unregister all workspaces from a remote project in the current project\",\"$0 unlink ~/jest --all\"],[\"Unregister all previously linked workspaces\",\"$0 unlink --all\"],[\"Unregister all workspaces matching a glob\",\"$0 unlink '@babel/*' 'pkg-{a,b}'\"]]});var Dn=ne(Xe()),fAe=ne(aE()),TO=ne(wn()),mp=ne(ns());var xl=class extends ve{constructor(){super(...arguments);this.interactive=Dn.Option.Boolean(\"-i,--interactive\",{description:\"Offer various choices, depending on the detected upgrade paths\"});this.exact=Dn.Option.Boolean(\"-E,--exact\",!1,{description:\"Don't use any semver modifier on the resolved range\"});this.tilde=Dn.Option.Boolean(\"-T,--tilde\",!1,{description:\"Use the `~` semver modifier on the resolved range\"});this.caret=Dn.Option.Boolean(\"-C,--caret\",!1,{description:\"Use the `^` semver modifier on the resolved range\"});this.recursive=Dn.Option.Boolean(\"-R,--recursive\",!1,{description:\"Resolve again ALL resolutions for those packages\"});this.mode=Dn.Option.String(\"--mode\",{description:\"Change what artifacts installs generate\",validator:mp.isEnum(Xn)});this.patterns=Dn.Option.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>P.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(P.parseDescriptor(g).range!==\"unknown\")throw new Dn.UsageError(\"Ranges aren't allowed when using --recursive\");for(let f of(0,TO.default)(a,g)){let h=P.parseIdent(f);l.add(h.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await Ke.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var w;let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(w=this.interactive)!=null?w:t.get(\"preferInteractive\"),a=lE(this,i),l=o?[\"keep\",\"reuse\",\"project\",\"latest\"]:[\"project\",\"latest\"],c=[],u=[];for(let B of this.patterns){let v=!1,D=P.parseDescriptor(B);for(let L of i.workspaces)for(let H of[\"dependencies\",\"devDependencies\"]){let $=[...L.manifest.getForScope(H).values()].map(V=>P.stringifyIdent(V));for(let V of(0,TO.default)($,P.stringifyIdent(D))){let W=P.parseIdent(V),Z=L.manifest[H].get(W.identHash);if(typeof Z>\"u\")throw new Error(\"Assertion failed: Expected the descriptor to be registered\");let A=P.makeDescriptor(W,D.range);c.push(Promise.resolve().then(async()=>[L,H,Z,await cE(A,{project:i,workspace:L,cache:s,target:H,modifier:a,strategies:l})])),v=!0}}v||u.push(B)}if(u.length>1)throw new Dn.UsageError(`Patterns ${ee.prettyList(t,u,Pi.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new Dn.UsageError(`Pattern ${ee.prettyList(t,u,Pi.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),f=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,v,{suggestions:D,rejections:L}]of g){let H=D.filter(j=>j.descriptor!==null);if(H.length===0){let[j]=L;if(typeof j>\"u\")throw new Error(\"Assertion failed: Expected an error to have been set\");let $=this.cli.error(j);i.configuration.get(\"enableNetwork\")?B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range\n\n${$}`):B.reportError(27,`${P.prettyDescriptor(t,v)} can't be resolved to a satisfying range (note: network resolution has been disabled)\n\n${$}`)}else H.length>1&&!o&&B.reportError(27,`${P.prettyDescriptor(t,v)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(f.hasErrors())return f.exitCode();let h=!1,p=[];for(let[B,v,,{suggestions:D}]of g){let L,H=D.filter(W=>W.descriptor!==null),j=H[0].descriptor,$=H.every(W=>P.areDescriptorsEqual(W.descriptor,j));H.length===1||$?L=j:(h=!0,{answer:L}=await(0,fAe.prompt)({type:\"select\",name:\"answer\",message:`Which range to you want to use in ${P.prettyWorkspace(t,B)} \\u276F ${v}?`,choices:D.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,\"descriptor\")},stdin:this.context.stdin,stdout:this.context.stdout}));let V=B.manifest[v].get(L.identHash);if(typeof V>\"u\")throw new Error(\"Assertion failed: This descriptor should have a matching entry\");if(V.descriptorHash!==L.descriptorHash)B.manifest[v].set(L.identHash,L),p.push([B,v,V,L]);else{let W=t.makeResolver(),Z={project:i,resolver:W},A=W.bindDescriptor(V,B.anchoredLocator,Z);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,p),h&&this.context.stdout.write(`\n`),(await Ke.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};xl.paths=[[\"up\"]],xl.usage=Dn.Command.Usage({description:\"upgrade dependencies across the project\",details:\"\\n      This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\\n\\n      If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\\n\\n      If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\\n\\n      The, `-C,--caret`, `-E,--exact` and  `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\\n\\n      If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\\n\\n      - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\\n\\n      - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\\n\\n      Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\\n\\n      This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\\n\\n      **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\\n    \",examples:[[\"Upgrade all instances of lodash to the latest release\",\"$0 up lodash\"],[\"Upgrade all instances of lodash to the latest release, but ask confirmation for each\",\"$0 up lodash -i\"],[\"Upgrade all instances of lodash to 1.2.3\",\"$0 up lodash@1.2.3\"],[\"Upgrade all instances of packages with the `@babel` scope to the latest release\",\"$0 up '@babel/*'\"],[\"Upgrade all instances of packages containing the word `jest` to the latest release\",\"$0 up '*jest*'\"],[\"Upgrade all instances of packages with the `@babel` scope to 7.0.0\",\"$0 up '@babel/*@7.0.0'\"]]}),xl.schema=[mp.hasKeyRelationship(\"recursive\",mp.KeyRelationship.Forbids,[\"interactive\",\"exact\",\"tilde\",\"caret\"],{ignore:[void 0,!1]})];var Zu=ne(Xe()),$u=class extends ve{constructor(){super(...arguments);this.recursive=Zu.Option.Boolean(\"-R,--recursive\",!1,{description:\"List, for each workspace, what are all the paths that lead to the dependency\"});this.json=Zu.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.peers=Zu.Option.Boolean(\"--peers\",!1,{description:\"Also print the peer dependencies that match the specified name\"});this.package=Zu.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let s=P.parseIdent(this.package).identHash,o=this.recursive?t4e(i,s,{configuration:t,peers:this.peers}):e4e(i,s,{configuration:t,peers:this.peers});Vn.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};$u.paths=[[\"why\"]],$u.usage=Zu.Command.Usage({description:\"display the reason why a package is needed\",details:`\n      This command prints the exact reasons why a package appears in the dependency tree.\n\n      If \\`-R,--recursive\\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named \"Foo\" when looking for \"Bar\", it means that \"Foo\" already got printed higher in the tree.\n    `,examples:[[\"Explain why lodash is used in your project\",\"$0 why lodash\"]]});function e4e(r,e,{configuration:t,peers:i}){let n=Ee.sortMap(r.storedPackages.values(),a=>P.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(\"Assertion failed: The resolution should have been registered\");let f=r.storedPackages.get(g);if(!f)throw new Error(\"Assertion failed: The package should have been registered\");if(f.identHash!==e)continue;{let p=P.stringifyLocator(a);s[p]={value:[a,ee.Type.LOCATOR],children:l}}let h=P.stringifyLocator(f);l[h]={value:[{descriptor:u,locator:f},ee.Type.DEPENDENT]}}}return o}function t4e(r,e,{configuration:t,peers:i}){let n=Ee.sortMap(r.workspaces,f=>P.stringifyLocator(f.anchoredLocator)),s=new Set,o=new Set,a=f=>{if(s.has(f.locatorHash))return o.has(f.locatorHash);if(s.add(f.locatorHash),f.identHash===e)return o.add(f.locatorHash),!0;let h=!1;f.identHash===e&&(h=!0);for(let p of f.dependencies.values()){if(!i&&f.peerDependencies.has(p.identHash))continue;let C=r.storedResolutions.get(p.descriptorHash);if(!C)throw new Error(\"Assertion failed: The resolution should have been registered\");let w=r.storedPackages.get(C);if(!w)throw new Error(\"Assertion failed: The package should have been registered\");a(w)&&(h=!0)}return h&&o.add(f.locatorHash),h};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error(\"Assertion failed: The package should have been registered\");a(h)}let l=new Set,c={},u={children:c},g=(f,h,p)=>{if(!o.has(f.locatorHash))return;let C=p!==null?ee.tuple(ee.Type.DEPENDENT,{locator:f,descriptor:p}):ee.tuple(ee.Type.LOCATOR,f),w={},B={value:C,children:w},v=P.stringifyLocator(f);if(h[v]=B,!l.has(f.locatorHash)&&(l.add(f.locatorHash),!(p!==null&&r.tryWorkspaceByLocator(f))))for(let D of f.dependencies.values()){if(!i&&f.peerDependencies.has(D.identHash))continue;let L=r.storedResolutions.get(D.descriptorHash);if(!L)throw new Error(\"Assertion failed: The resolution should have been registered\");let H=r.storedPackages.get(L);if(!H)throw new Error(\"Assertion failed: The package should have been registered\");g(H,w,D)}};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error(\"Assertion failed: The package should have been registered\");g(h,c,null)}return u}var JO={};ht(JO,{default:()=>I4e,gitUtils:()=>lA});var lA={};ht(lA,{TreeishProtocols:()=>lb,clone:()=>qO,fetchBase:()=>FAe,fetchChangedFiles:()=>NAe,fetchChangedWorkspaces:()=>m4e,fetchRoot:()=>RAe,isGitUrl:()=>Ip,lsRemote:()=>kAe,normalizeLocator:()=>YO,normalizeRepoUrl:()=>yE,resolveUrl:()=>jO,splitRepoUrl:()=>IE});var EE=ne(Xe()),GO=ne(vAe()),xAe=ne(r0()),Ep=ne(J(\"querystring\")),UO=ne($r()),PAe=ne(J(\"url\"));function DAe(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||\"ssh\"} -o BatchMode=yes`}}var C4e=[/^ssh:/,/^git(?:\\+[^:]+)?:/,/^(?:git\\+)?https?:[^#]+\\/[^#]+(?:\\.git)(?:#.*)?$/,/^git@[^#]+\\/[^#]+\\.git(?:#.*)?$/,/^(?:github:|https:\\/\\/github\\.com\\/)?(?!\\.{1,2}\\/)([a-zA-Z._0-9-]+)\\/(?!\\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\\.git)?(?:#.*)?$/,/^https:\\/\\/github\\.com\\/(?!\\.{1,2}\\/)([a-zA-Z0-9._-]+)\\/(?!\\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\\/tarball\\/(.+)?$/],lb=(n=>(n.Commit=\"commit\",n.Head=\"head\",n.Tag=\"tag\",n.Semver=\"semver\",n))(lb||{});function Ip(r){return r?C4e.some(e=>!!r.match(e)):!1}function IE(r){r=yE(r);let e=r.indexOf(\"#\");if(e===-1)return{repo:r,treeish:{protocol:\"head\",request:\"HEAD\"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=Ep.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!=\"string\")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(lb).find(l=>Object.prototype.hasOwnProperty.call(n,l)),o,a;typeof s<\"u\"?(o=s,a=n[s]):(o=\"head\",a=\"HEAD\");for(let l of Object.values(lb))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(\":\"),s,o;return n===-1?(s=null,o=i):(s=i.slice(0,n),o=i.slice(n+1)),{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function yE(r,{git:e=!1}={}){var t;if(r=r.replace(/^git\\+https:/,\"https:\"),r=r.replace(/^(?:github:|https:\\/\\/github\\.com\\/)?(?!\\.{1,2}\\/)([a-zA-Z0-9._-]+)\\/(?!\\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\\.git)?(#.*)?$/,\"https://github.com/$1/$2.git$3\"),r=r.replace(/^https:\\/\\/github\\.com\\/(?!\\.{1,2}\\/)([a-zA-Z0-9._-]+)\\/(?!\\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\\/tarball\\/(.+)?$/,\"https://github.com/$1/$2.git#$3\"),e){r=r.replace(/^git\\+([^:]+):/,\"$1:\");let i;try{i=PAe.default.parse(r)}catch{i=null}i&&i.protocol===\"ssh:\"&&((t=i.path)==null?void 0:t.startsWith(\"/:\"))&&(r=r.replace(/^ssh:\\/\\//,\"\"))}return r}function YO(r){return P.makeLocator(r,yE(r.reference))}async function kAe(r,e){let t=yE(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,GO.default)(t).resource}`,{configuration:e}).enableNetwork)throw new Error(`Request to '${t}' has been blocked because of your configuration settings`);let n=await HO(\"listing refs\",[\"ls-remote\",t],{cwd:e.startingCwd,env:DAe()},{configuration:e,normalizedRepoUrl:t}),s=new Map,o=/^([a-f0-9]{40})\\t([^\\n]+)/gm,a;for(;(a=o.exec(n.stdout))!==null;)s.set(a[2],a[1]);return s}async function jO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=IE(r),o=await kAe(t,e),a=(c,u)=>{switch(c){case\"commit\":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error(\"Invalid commit hash\");return Ep.default.stringify({...s,commit:u})}case\"head\":{let g=o.get(u===\"HEAD\"?u:`refs/heads/${u}`);if(typeof g>\"u\")throw new Error(`Unknown head (\"${u}\")`);return Ep.default.stringify({...s,commit:g})}case\"tag\":{let g=o.get(`refs/tags/${u}`);if(typeof g>\"u\")throw new Error(`Unknown tag (\"${u}\")`);return Ep.default.stringify({...s,commit:g})}case\"semver\":{let g=vt.validRange(u);if(!g)throw new Error(`Invalid range (\"${u}\")`);let f=new Map([...o.entries()].filter(([p])=>p.startsWith(\"refs/tags/\")).map(([p,C])=>[UO.default.parse(p.slice(10)),C]).filter(p=>p[0]!==null)),h=UO.default.maxSatisfying([...f.keys()],g);if(h===null)throw new Error(`No matching range (\"${u}\")`);return Ep.default.stringify({...s,commit:f.get(h)})}case null:{let g;if((g=l(\"commit\",u))!==null||(g=l(\"tag\",u))!==null||(g=l(\"head\",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve \"${u}\" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve \"${u}\" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol (\"${c}\")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function qO(r,e){return await e.getLimit(\"cloneConcurrency\")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=IE(r);if(i!==\"commit\")throw new Error(\"Invalid treeish protocol when cloning\");let s=yE(t,{git:!0});if(Vt.getNetworkSettings(`https://${(0,GO.default)(s).resource}`,{configuration:e}).enableNetwork===!1)throw new Error(`Request to '${s}' has been blocked because of your configuration settings`);let o=await M.mktempPromise(),a={cwd:o,env:DAe()};return await HO(\"cloning the repository\",[\"clone\",\"-c core.autocrlf=false\",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await HO(\"switching branch\",[\"checkout\",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function RAe(r){let e=null,t,i=r;do t=i,await M.existsPromise(x.join(t,\".git\"))&&(e=t),i=x.dirname(t);while(e===null&&i!==t);return e}async function FAe(r,{baseRefs:e}){if(e.length===0)throw new EE.UsageError(\"Can't run this command with zero base refs specified.\");let t=[];for(let a of e){let{code:l}=await mr.execvp(\"git\",[\"merge-base\",a,\"HEAD\"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new EE.UsageError(`No ancestor could be found between any of HEAD and ${e.join(\", \")}`);let{stdout:i}=await mr.execvp(\"git\",[\"merge-base\",\"HEAD\",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await mr.execvp(\"git\",[\"show\",\"--quiet\",\"--pretty=format:%s\",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function NAe(r,{base:e,project:t}){let i=Ee.buildIgnorePattern(t.configuration.get(\"changesetIgnorePatterns\")),{stdout:n}=await mr.execvp(\"git\",[\"diff\",\"--name-only\",`${e}`],{cwd:r,strict:!0}),s=n.split(/\\r\\n|\\r|\\n/).filter(c=>c.length>0).map(c=>x.resolve(r,K.toPortablePath(c))),{stdout:o}=await mr.execvp(\"git\",[\"ls-files\",\"--others\",\"--exclude-standard\"],{cwd:r,strict:!0}),a=o.split(/\\r\\n|\\r|\\n/).filter(c=>c.length>0).map(c=>x.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!x.relative(t.cwd,c).match(i)):l}async function m4e({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new EE.UsageError(\"This command can only be run from within a Yarn project\");let t=[x.resolve(e.cwd,e.configuration.get(\"cacheFolder\")),x.resolve(e.cwd,e.configuration.get(\"installStatePath\")),x.resolve(e.cwd,e.configuration.get(\"lockfileFilename\")),x.resolve(e.cwd,e.configuration.get(\"virtualFolder\"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await RAe(e.configuration.projectCwd);if(i==null)throw new EE.UsageError(\"This command can only be run on Git repositories\");let n=await FAe(i,{baseRefs:typeof r==\"string\"?[r]:e.configuration.get(\"changesetBaseRefs\")}),s=await NAe(i,{base:n.hash,project:e});return new Set(Ee.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?Ee.mapAndFilter.skip:t.some(l=>o.startsWith(l))?Ee.mapAndFilter.skip:a}))}async function HO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await mr.execvp(\"git\",e,{...t,strict:!0})}catch(s){if(!(s instanceof mr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new ot(1,`Failed ${r}`,l=>{l.reportError(1,`  ${ee.prettyField(i,{label:\"Repository URL\",value:ee.tuple(ee.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let f=u===\"error\"?\"Error\":`${(0,xAe.default)(u)} Error`;l.reportError(1,`  ${ee.prettyField(i,{label:f,value:ee.tuple(ee.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var cb=class{supports(e,t){return Ip(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=YO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:P.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await qO(e.reference,t.project.configuration),n=IE(e.reference),s=x.join(i,\"package.tgz\");await Jt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await Ee.releaseAfterUseAsync(async()=>await yi.convertToZip(o,{compressionLevel:t.project.configuration.get(\"compressionLevel\"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}))}};var ub=class{supportsDescriptor(e,t){return Ip(e.range)}supportsLocator(e,t){return Ip(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await jO(e.range,i.project.configuration);return[P.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ee.releaseAfterUseAsync(async()=>await nt.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||\"0.0.0\",languageName:n.languageName||t.project.configuration.get(\"defaultLanguageName\"),linkType:\"HARD\",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var E4e={configuration:{changesetBaseRefs:{description:\"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.\",type:\"STRING\",isArray:!0,isNullable:!1,default:[\"master\",\"origin/master\",\"upstream/master\",\"main\",\"origin/main\",\"upstream/main\"]},changesetIgnorePatterns:{description:\"Array of glob patterns; files matching them will be ignored when fetching the changed files\",type:\"STRING\",default:[],isArray:!0},cloneConcurrency:{description:\"Maximal number of concurrent clones\",type:\"NUMBER\",default:2}},fetchers:[cb],resolvers:[ub]};var I4e=E4e;var Pl=ne(Xe()),eg=class extends ve{constructor(){super(...arguments);this.since=Pl.Option.String(\"--since\",{description:\"Only include workspaces that have been changed since the specified ref.\",tolerateBoolean:!0});this.recursive=Pl.Option.Boolean(\"-R,--recursive\",!1,{description:\"Find packages via dependencies/devDependencies instead of using the workspaces field\"});this.noPrivate=Pl.Option.Boolean(\"--no-private\",{description:\"Exclude workspaces that have the private field set to true\"});this.verbose=Pl.Option.Boolean(\"-v,--verbose\",!1,{description:\"Also return the cross-dependencies between workspaces\"});this.json=Pl.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i}=await He.find(t,this.context.cwd);return(await Ke.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,f=new Set;for(let h of nt.hardDependencies)for(let[p,C]of c.getForScope(h)){let w=i.tryWorkspaceByDescriptor(C);w===null?i.workspacesByIdent.has(p)&&f.add(C):g.add(w)}u={workspaceDependencies:Array.from(g).map(h=>h.relativeCwd),mismatchedWorkspaceDependencies:Array.from(f).map(h=>P.stringifyDescriptor(h))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?P.stringifyIdent(c.name):null,...u})}})).exitCode()}};eg.paths=[[\"workspaces\",\"list\"]],eg.usage=Pl.Command.Usage({category:\"Workspace-related commands\",description:\"list all available workspaces\",details:\"\\n      This command will print the list of all workspaces in the project.\\n\\n      - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\\n\\n      - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\\n\\n      - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\\n\\n      - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\\n    \"});var Dl=ne(Xe()),tg=class extends ve{constructor(){super(...arguments);this.workspaceName=Dl.Option.String();this.commandName=Dl.Option.String();this.args=Dl.Option.Proxy()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[P.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new Dl.UsageError(`Workspace '${this.workspaceName}' not found. Did you mean any of the following:\n  - ${l.join(`\n  - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};tg.paths=[[\"workspace\"]],tg.usage=Dl.Command.Usage({category:\"Workspace-related commands\",description:\"run a command within the specified workspace\",details:`\n      This command will run a given sub-command on a single workspace.\n    `,examples:[[\"Add a package to a single workspace\",\"yarn workspace components add -D react\"],[\"Run build script on a single workspace\",\"yarn workspace components run build\"]]});var y4e={configuration:{enableImmutableInstalls:{description:\"If true (the default on CI), prevents the install command from modifying the lockfile\",type:\"BOOLEAN\",default:LAe.isCI},defaultSemverRangePrefix:{description:\"The default save prefix: '^', '~' or ''\",type:\"STRING\",values:[\"^\",\"~\",\"\"],default:\"^\"}},commands:[Su,vu,xu,Pu,Xu,Gu,Nu,eg,cp,up,hE,gp,Qu,bu,Du,ku,Ru,Fu,Lu,Tu,Ou,Mu,_u,Ku,ju,Yu,qu,Uu,Ju,Wu,zu,dp,Vu,xl,$u,tg]},w4e=y4e;var ZO={};ht(ZO,{default:()=>Q4e});var Fe={optional:!0},zO=[[\"@tailwindcss/aspect-ratio@<0.2.1\",{peerDependencies:{tailwindcss:\"^2.0.2\"}}],[\"@tailwindcss/line-clamp@<0.2.1\",{peerDependencies:{tailwindcss:\"^2.0.2\"}}],[\"@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0\",{peerDependencies:{postcss:\"^8.0.0\"}}],[\"@samverschueren/stream-to-observable@<0.3.1\",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],[\"any-observable@<0.5.1\",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],[\"@pm2/agent@<1.0.4\",{dependencies:{debug:\"*\"}}],[\"debug@<4.2.0\",{peerDependenciesMeta:{[\"supports-color\"]:Fe}}],[\"got@<11\",{dependencies:{[\"@types/responselike\"]:\"^1.0.0\",[\"@types/keyv\"]:\"^3.1.1\"}}],[\"cacheable-lookup@<4.1.2\",{dependencies:{[\"@types/keyv\"]:\"^3.1.1\"}}],[\"http-link-dataloader@*\",{peerDependencies:{graphql:\"^0.13.1 || ^14.0.0\"}}],[\"typescript-language-server@*\",{dependencies:{[\"vscode-jsonrpc\"]:\"^5.0.1\",[\"vscode-languageserver-protocol\"]:\"^3.15.0\"}}],[\"postcss-syntax@*\",{peerDependenciesMeta:{[\"postcss-html\"]:Fe,[\"postcss-jsx\"]:Fe,[\"postcss-less\"]:Fe,[\"postcss-markdown\"]:Fe,[\"postcss-scss\"]:Fe}}],[\"jss-plugin-rule-value-function@<=10.1.1\",{dependencies:{[\"tiny-warning\"]:\"^1.0.2\"}}],[\"ink-select-input@<4.1.0\",{peerDependencies:{react:\"^16.8.2\"}}],[\"license-webpack-plugin@<2.3.18\",{peerDependenciesMeta:{webpack:Fe}}],[\"snowpack@>=3.3.0\",{dependencies:{[\"node-gyp\"]:\"^7.1.0\"}}],[\"promise-inflight@*\",{peerDependenciesMeta:{bluebird:Fe}}],[\"reactcss@*\",{peerDependencies:{react:\"*\"}}],[\"react-color@<=2.19.0\",{peerDependencies:{react:\"*\"}}],[\"gatsby-plugin-i18n@*\",{dependencies:{ramda:\"^0.24.1\"}}],[\"useragent@^2.0.0\",{dependencies:{request:\"^2.88.0\",yamlparser:\"0.0.x\",semver:\"5.5.x\"}}],[\"@apollographql/apollo-tools@<=0.5.2\",{peerDependencies:{graphql:\"^14.2.1 || ^15.0.0\"}}],[\"material-table@^2.0.0\",{dependencies:{\"@babel/runtime\":\"^7.11.2\"}}],[\"@babel/parser@*\",{dependencies:{\"@babel/types\":\"^7.8.3\"}}],[\"fork-ts-checker-webpack-plugin@<=6.3.4\",{peerDependencies:{eslint:\">= 6\",typescript:\">= 2.7\",webpack:\">= 4\",\"vue-template-compiler\":\"*\"},peerDependenciesMeta:{eslint:Fe,\"vue-template-compiler\":Fe}}],[\"rc-animate@<=3.1.1\",{peerDependencies:{react:\">=16.9.0\",\"react-dom\":\">=16.9.0\"}}],[\"react-bootstrap-table2-paginator@*\",{dependencies:{classnames:\"^2.2.6\"}}],[\"react-draggable@<=4.4.3\",{peerDependencies:{react:\">= 16.3.0\",\"react-dom\":\">= 16.3.0\"}}],[\"apollo-upload-client@<14\",{peerDependencies:{graphql:\"14 - 15\"}}],[\"react-instantsearch-core@<=6.7.0\",{peerDependencies:{algoliasearch:\">= 3.1 < 5\"}}],[\"react-instantsearch-dom@<=6.7.0\",{dependencies:{\"react-fast-compare\":\"^3.0.0\"}}],[\"ws@<7.2.1\",{peerDependencies:{bufferutil:\"^4.0.1\",\"utf-8-validate\":\"^5.0.2\"},peerDependenciesMeta:{bufferutil:Fe,\"utf-8-validate\":Fe}}],[\"react-portal@*\",{peerDependencies:{\"react-dom\":\"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0\"}}],[\"react-scripts@<=4.0.1\",{peerDependencies:{react:\"*\"}}],[\"testcafe@<=1.10.1\",{dependencies:{\"@babel/plugin-transform-for-of\":\"^7.12.1\",\"@babel/runtime\":\"^7.12.5\"}}],[\"testcafe-legacy-api@<=4.2.0\",{dependencies:{\"testcafe-hammerhead\":\"^17.0.1\",\"read-file-relative\":\"^1.2.0\"}}],[\"@google-cloud/firestore@<=4.9.3\",{dependencies:{protobufjs:\"^6.8.6\"}}],[\"gatsby-source-apiserver@*\",{dependencies:{[\"babel-polyfill\"]:\"^6.26.0\"}}],[\"@webpack-cli/package-utils@<=1.0.1-alpha.4\",{dependencies:{[\"cross-spawn\"]:\"^7.0.3\"}}],[\"gatsby-remark-prismjs@<3.3.28\",{dependencies:{lodash:\"^4\"}}],[\"gatsby-plugin-favicon@*\",{peerDependencies:{webpack:\"*\"}}],[\"gatsby-plugin-sharp@<=4.6.0-next.3\",{dependencies:{debug:\"^4.3.1\"}}],[\"gatsby-react-router-scroll@<=5.6.0-next.0\",{dependencies:{[\"prop-types\"]:\"^15.7.2\"}}],[\"@rebass/forms@*\",{dependencies:{[\"@styled-system/should-forward-prop\"]:\"^5.0.0\"},peerDependencies:{react:\"^16.8.6\"}}],[\"rebass@*\",{peerDependencies:{react:\"^16.8.6\"}}],[\"@ant-design/react-slick@<=0.28.3\",{peerDependencies:{react:\">=16.0.0\"}}],[\"mqtt@<4.2.7\",{dependencies:{duplexify:\"^4.1.1\"}}],[\"vue-cli-plugin-vuetify@<=2.0.3\",{dependencies:{semver:\"^6.3.0\"},peerDependenciesMeta:{\"sass-loader\":Fe,\"vuetify-loader\":Fe}}],[\"vue-cli-plugin-vuetify@<=2.0.4\",{dependencies:{\"null-loader\":\"^3.0.0\"}}],[\"vue-cli-plugin-vuetify@>=2.4.3\",{peerDependencies:{vue:\"*\"}}],[\"@vuetify/cli-plugin-utils@<=0.0.4\",{dependencies:{semver:\"^6.3.0\"},peerDependenciesMeta:{\"sass-loader\":Fe}}],[\"@vue/cli-plugin-typescript@<=5.0.0-alpha.0\",{dependencies:{\"babel-loader\":\"^8.1.0\"}}],[\"@vue/cli-plugin-typescript@<=5.0.0-beta.0\",{dependencies:{\"@babel/core\":\"^7.12.16\"},peerDependencies:{\"vue-template-compiler\":\"^2.0.0\"},peerDependenciesMeta:{\"vue-template-compiler\":Fe}}],[\"cordova-ios@<=6.3.0\",{dependencies:{underscore:\"^1.9.2\"}}],[\"cordova-lib@<=10.0.1\",{dependencies:{underscore:\"^1.9.2\"}}],[\"git-node-fs@*\",{peerDependencies:{\"js-git\":\"^0.7.8\"},peerDependenciesMeta:{\"js-git\":Fe}}],[\"consolidate@<0.16.0\",{peerDependencies:{mustache:\"^3.0.0\"},peerDependenciesMeta:{mustache:Fe}}],[\"consolidate@*\",{peerDependencies:{velocityjs:\"^2.0.1\",tinyliquid:\"^0.2.34\",\"liquid-node\":\"^3.0.1\",jade:\"^1.11.0\",\"then-jade\":\"*\",dust:\"^0.3.0\",\"dustjs-helpers\":\"^1.7.4\",\"dustjs-linkedin\":\"^2.7.5\",swig:\"^1.4.2\",\"swig-templates\":\"^2.0.3\",\"razor-tmpl\":\"^1.3.1\",atpl:\">=0.7.6\",liquor:\"^0.0.5\",twig:\"^1.15.2\",ejs:\"^3.1.5\",eco:\"^1.1.0-rc-3\",jazz:\"^0.0.18\",jqtpl:\"~1.1.0\",hamljs:\"^0.6.2\",hamlet:\"^0.3.3\",whiskers:\"^0.4.0\",\"haml-coffee\":\"^1.14.1\",\"hogan.js\":\"^3.0.2\",templayed:\">=0.2.3\",handlebars:\"^4.7.6\",underscore:\"^1.11.0\",lodash:\"^4.17.20\",pug:\"^3.0.0\",\"then-pug\":\"*\",qejs:\"^3.0.5\",walrus:\"^0.10.1\",mustache:\"^4.0.1\",just:\"^0.1.8\",ect:\"^0.5.9\",mote:\"^0.2.0\",toffee:\"^0.3.6\",dot:\"^1.1.3\",\"bracket-template\":\"^1.1.5\",ractive:\"^1.3.12\",nunjucks:\"^3.2.2\",htmling:\"^0.0.8\",\"babel-core\":\"^6.26.3\",plates:\"~0.4.11\",\"react-dom\":\"^16.13.1\",react:\"^16.13.1\",\"arc-templates\":\"^0.5.3\",vash:\"^0.13.0\",slm:\"^2.0.0\",marko:\"^3.14.4\",teacup:\"^2.0.0\",\"coffee-script\":\"^1.12.7\",squirrelly:\"^5.1.0\",twing:\"^5.0.2\"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,\"liquid-node\":Fe,jade:Fe,\"then-jade\":Fe,dust:Fe,\"dustjs-helpers\":Fe,\"dustjs-linkedin\":Fe,swig:Fe,\"swig-templates\":Fe,\"razor-tmpl\":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,\"haml-coffee\":Fe,\"hogan.js\":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,\"then-pug\":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,\"bracket-template\":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,\"babel-core\":Fe,plates:Fe,\"react-dom\":Fe,react:Fe,\"arc-templates\":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,\"coffee-script\":Fe,squirrelly:Fe,twing:Fe}}],[\"vue-loader@<=16.3.3\",{peerDependencies:{\"@vue/compiler-sfc\":\"^3.0.8\",webpack:\"^4.1.0 || ^5.0.0-0\"},peerDependenciesMeta:{\"@vue/compiler-sfc\":Fe}}],[\"vue-loader@^16.7.0\",{peerDependencies:{\"@vue/compiler-sfc\":\"^3.0.8\",vue:\"^3.2.13\"},peerDependenciesMeta:{\"@vue/compiler-sfc\":Fe,vue:Fe}}],[\"scss-parser@*\",{dependencies:{lodash:\"^4.17.21\"}}],[\"query-ast@*\",{dependencies:{lodash:\"^4.17.21\"}}],[\"redux-thunk@<=2.3.0\",{peerDependencies:{redux:\"^4.0.0\"}}],[\"skypack@<=0.3.2\",{dependencies:{tar:\"^6.1.0\"}}],[\"@npmcli/metavuln-calculator@<2.0.0\",{dependencies:{\"json-parse-even-better-errors\":\"^2.3.1\"}}],[\"bin-links@<2.3.0\",{dependencies:{\"mkdirp-infer-owner\":\"^1.0.2\"}}],[\"rollup-plugin-polyfill-node@<=0.8.0\",{peerDependencies:{rollup:\"^1.20.0 || ^2.0.0\"}}],[\"snowpack@<3.8.6\",{dependencies:{\"magic-string\":\"^0.25.7\"}}],[\"elm-webpack-loader@*\",{dependencies:{temp:\"^0.9.4\"}}],[\"winston-transport@<=4.4.0\",{dependencies:{logform:\"^2.2.0\"}}],[\"jest-vue-preprocessor@*\",{dependencies:{\"@babel/core\":\"7.8.7\",\"@babel/template\":\"7.8.6\"},peerDependencies:{pug:\"^2.0.4\"},peerDependenciesMeta:{pug:Fe}}],[\"redux-persist@*\",{peerDependencies:{react:\">=16\"},peerDependenciesMeta:{react:Fe}}],[\"sodium@>=3\",{dependencies:{\"node-gyp\":\"^3.8.0\"}}],[\"babel-plugin-graphql-tag@<=3.1.0\",{peerDependencies:{graphql:\"^14.0.0 || ^15.0.0\"}}],[\"@playwright/test@<=1.14.1\",{dependencies:{\"jest-matcher-utils\":\"^26.4.2\"}}],...[\"babel-plugin-remove-graphql-queries@<3.14.0-next.1\",\"babel-preset-gatsby-package@<1.14.0-next.1\",\"create-gatsby@<1.14.0-next.1\",\"gatsby-admin@<0.24.0-next.1\",\"gatsby-cli@<3.14.0-next.1\",\"gatsby-core-utils@<2.14.0-next.1\",\"gatsby-design-tokens@<3.14.0-next.1\",\"gatsby-legacy-polyfills@<1.14.0-next.1\",\"gatsby-plugin-benchmark-reporting@<1.14.0-next.1\",\"gatsby-plugin-graphql-config@<0.23.0-next.1\",\"gatsby-plugin-image@<1.14.0-next.1\",\"gatsby-plugin-mdx@<2.14.0-next.1\",\"gatsby-plugin-netlify-cms@<5.14.0-next.1\",\"gatsby-plugin-no-sourcemaps@<3.14.0-next.1\",\"gatsby-plugin-page-creator@<3.14.0-next.1\",\"gatsby-plugin-preact@<5.14.0-next.1\",\"gatsby-plugin-preload-fonts@<2.14.0-next.1\",\"gatsby-plugin-schema-snapshot@<2.14.0-next.1\",\"gatsby-plugin-styletron@<6.14.0-next.1\",\"gatsby-plugin-subfont@<3.14.0-next.1\",\"gatsby-plugin-utils@<1.14.0-next.1\",\"gatsby-recipes@<0.25.0-next.1\",\"gatsby-source-shopify@<5.6.0-next.1\",\"gatsby-source-wikipedia@<3.14.0-next.1\",\"gatsby-transformer-screenshot@<3.14.0-next.1\",\"gatsby-worker@<0.5.0-next.1\"].map(r=>[r,{dependencies:{\"@babel/runtime\":\"^7.14.8\"}}]),[\"gatsby-core-utils@<2.14.0-next.1\",{dependencies:{got:\"8.3.2\"}}],[\"gatsby-plugin-gatsby-cloud@<=3.1.0-next.0\",{dependencies:{\"gatsby-core-utils\":\"^2.13.0-next.0\"}}],[\"gatsby-plugin-gatsby-cloud@<=3.2.0-next.1\",{peerDependencies:{webpack:\"*\"}}],[\"babel-plugin-remove-graphql-queries@<=3.14.0-next.1\",{dependencies:{\"gatsby-core-utils\":\"^2.8.0-next.1\"}}],[\"gatsby-plugin-netlify@3.13.0-next.1\",{dependencies:{\"gatsby-core-utils\":\"^2.13.0-next.0\"}}],[\"clipanion-v3-codemod@<=0.2.0\",{peerDependencies:{jscodeshift:\"^0.11.0\"}}],[\"react-live@*\",{peerDependencies:{\"react-dom\":\"*\",react:\"*\"}}],[\"webpack@<4.44.1\",{peerDependenciesMeta:{\"webpack-cli\":Fe,\"webpack-command\":Fe}}],[\"webpack@<5.0.0-beta.23\",{peerDependenciesMeta:{\"webpack-cli\":Fe}}],[\"webpack-dev-server@<3.10.2\",{peerDependenciesMeta:{\"webpack-cli\":Fe}}],[\"@docusaurus/responsive-loader@<1.5.0\",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],[\"eslint-module-utils@*\",{peerDependenciesMeta:{\"eslint-import-resolver-node\":Fe,\"eslint-import-resolver-typescript\":Fe,\"eslint-import-resolver-webpack\":Fe,\"@typescript-eslint/parser\":Fe}}],[\"eslint-plugin-import@*\",{peerDependenciesMeta:{\"@typescript-eslint/parser\":Fe}}],[\"critters-webpack-plugin@<3.0.2\",{peerDependenciesMeta:{\"html-webpack-plugin\":Fe}}],[\"terser@<=5.10.0\",{dependencies:{acorn:\"^8.5.0\"}}],[\"babel-preset-react-app@10.0.x\",{dependencies:{\"@babel/plugin-proposal-private-property-in-object\":\"^7.16.0\"}}],[\"eslint-config-react-app@*\",{peerDependenciesMeta:{typescript:Fe}}],[\"@vue/eslint-config-typescript@<11.0.0\",{peerDependenciesMeta:{typescript:Fe}}],[\"unplugin-vue2-script-setup@<0.9.1\",{peerDependencies:{\"@vue/composition-api\":\"^1.4.3\",\"@vue/runtime-dom\":\"^3.2.26\"}}],[\"@cypress/snapshot@*\",{dependencies:{debug:\"^3.2.7\"}}],[\"auto-relay@*\",{peerDependencies:{\"reflect-metadata\":\"^0.1.13\"}}],[\"vue-template-babel-compiler@<1.2.0\",{peerDependencies:{[\"vue-template-compiler\"]:\"^2.6.0\"}}],[\"@parcel/transformer-image@<2.5.0\",{peerDependencies:{[\"@parcel/core\"]:\"*\"}}],[\"@parcel/transformer-js@<2.5.0\",{peerDependencies:{[\"@parcel/core\"]:\"*\"}}],[\"parcel@*\",{peerDependenciesMeta:{[\"@parcel/core\"]:Fe}}],[\"react-scripts@*\",{peerDependencies:{eslint:\"*\"}}],[\"focus-trap-react@^8.0.0\",{dependencies:{tabbable:\"^5.3.2\"}}],[\"react-rnd@<10.3.7\",{peerDependencies:{react:\">=16.3.0\",\"react-dom\":\">=16.3.0\"}}],[\"connect-mongo@*\",{peerDependencies:{\"express-session\":\"^1.17.1\"}}],[\"vue-i18n@<9\",{peerDependencies:{vue:\"^2\"}}],[\"vue-router@<4\",{peerDependencies:{vue:\"^2\"}}],[\"unified@<10\",{dependencies:{\"@types/unist\":\"^2.0.0\"}}],[\"react-github-btn@<=1.3.0\",{peerDependencies:{react:\">=16.3.0\"}}],[\"react-dev-utils@*\",{peerDependencies:{typescript:\">=2.7\",webpack:\">=4\"},peerDependenciesMeta:{typescript:Fe}}],[\"@asyncapi/react-component@<=1.0.0-next.39\",{peerDependencies:{react:\">=16.8.0\",\"react-dom\":\">=16.8.0\"}}],[\"xo@*\",{peerDependencies:{webpack:\">=1.11.0\"},peerDependenciesMeta:{webpack:Fe}}],[\"babel-plugin-remove-graphql-queries@<=4.20.0-next.0\",{dependencies:{\"@babel/types\":\"^7.15.4\"}}],[\"gatsby-plugin-page-creator@<=4.20.0-next.1\",{dependencies:{\"fs-extra\":\"^10.1.0\"}}],[\"gatsby-plugin-utils@<=3.14.0-next.1\",{dependencies:{fastq:\"^1.13.0\"},peerDependencies:{graphql:\"^15.0.0\"}}],[\"gatsby-plugin-mdx@<3.1.0-next.1\",{dependencies:{mkdirp:\"^1.0.4\"}}],[\"gatsby-plugin-mdx@^2\",{peerDependencies:{gatsby:\"^3.0.0-next\"}}]];var VO;function TAe(){return typeof VO>\"u\"&&(VO=J(\"zlib\").brotliDecompressSync(Buffer.from(\"G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==\",\"base64\")).toString()),VO}var XO;function OAe(){return typeof XO>\"u\"&&(XO=J(\"zlib\").brotliDecompressSync(Buffer.from(\"G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=\",\"base64\")).toString()),XO}var _O;function MAe(){return typeof _O>\"u\"&&(_O=J(\"zlib\").brotliDecompressSync(Buffer.from(\"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\",\"base64\")).toString()),_O}var KAe=new Map([[P.makeIdent(null,\"fsevents\").identHash,TAe],[P.makeIdent(null,\"resolve\").identHash,OAe],[P.makeIdent(null,\"typescript\").identHash,MAe]]),B4e={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of zO)e(P.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t=\"compat/\";if(!e.startsWith(t))return;let i=P.parseIdent(e.slice(t.length)),n=(s=KAe.get(i.identHash))==null?void 0:s();return typeof n<\"u\"?n:null},reduceDependency:async(r,e,t,i)=>typeof KAe.get(r.identHash)>\"u\"?r:P.makeDescriptor(r,P.makeRange({protocol:\"patch:\",source:P.stringifyDescriptor(r),selector:`~builtin<compat/${P.stringifyIdent(r)}>`,params:null}))}},Q4e=B4e;var $O={};ht($O,{default:()=>S4e});var wE=ne(Xe()),yp=class extends ve{constructor(){super(...arguments);this.pkg=wE.Option.String(\"-p,--package\",{description:\"The package to run the provided command from\"});this.quiet=wE.Option.Boolean(\"-q,--quiet\",!1,{description:\"Only report critical errors instead of printing the full install logs\"});this.command=wE.Option.String();this.args=wE.Option.Proxy()}async execute(){let t=[];this.pkg&&t.push(\"--package\",this.pkg),this.quiet&&t.push(\"--quiet\");let i=P.parseDescriptor(this.command),n;i.scope?n=P.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith(\"@\")?n=P.makeIdent(i.name.substring(1),\"create\"):n=P.makeIdent(null,`create-${i.name}`);let s=P.stringifyIdent(n);return i.range!==\"unknown\"&&(s+=`@${i.range}`),this.cli.run([\"dlx\",...t,s,...this.args])}};yp.paths=[[\"create\"]];var rg=ne(Xe()),ig=class extends ve{constructor(){super(...arguments);this.packages=rg.Option.Array(\"-p,--package\",{description:\"The package(s) to install before running the command\"});this.quiet=rg.Option.Boolean(\"-q,--quiet\",!1,{description:\"Only report critical errors instead of printing the full install logs\"});this.command=rg.Option.String();this.args=rg.Option.Proxy()}async execute(){return Ie.telemetry=null,await M.mktempPromise(async t=>{var C;let i=x.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(x.join(i,\"package.json\"),`{}\n`),await M.writeFilePromise(x.join(i,\"yarn.lock\"),\"\");let n=x.join(i,\".yarnrc.yml\"),s=await Ie.findProjectCwd(this.context.cwd,xt.lockfile),o=!(await Ie.find(this.context.cwd,null,{strict:!1})).get(\"enableGlobalCache\"),a=s!==null?x.join(s,\".yarnrc.yml\"):null;a!==null&&M.existsSync(a)?(await M.copyFilePromise(a,n),await Ie.updateConfiguration(i,w=>{let B={...w,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(w.plugins)&&(B.plugins=w.plugins.map(v=>{let D=typeof v==\"string\"?v:v.path,L=K.isAbsolute(D)?D:K.resolve(K.fromPortablePath(s),D);return typeof v==\"string\"?L:{path:L,spec:v.spec}})),B})):await M.writeFilePromise(n,`enableGlobalCache: ${o}\nenableTelemetry: false\n`);let l=(C=this.packages)!=null?C:[this.command],c=P.parseDescriptor(this.command).name,u=await this.cli.run([\"add\",\"--\",...l],{cwd:i,quiet:this.quiet});if(u!==0)return u;this.quiet||this.context.stdout.write(`\n`);let g=await Ie.find(i,this.context.plugins),{project:f,workspace:h}=await He.find(g,i);if(h===null)throw new ct(f.cwd,i);await f.restoreInstallState();let p=await Jt.getWorkspaceAccessibleBinaries(h);return p.has(c)===!1&&p.size===1&&typeof this.packages>\"u\"&&(c=Array.from(p)[0][0]),await Jt.executeWorkspaceAccessibleBinary(h,c,this.args,{packageAccessibleBinaries:p,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};ig.paths=[[\"dlx\"]],ig.usage=rg.Command.Usage({description:\"run a package in a temporary environment\",details:\"\\n      This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\\n\\n      By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\\n\\n      Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\\n    \",examples:[[\"Use create-react-app to create a new React app\",\"yarn dlx create-react-app ./my-app\"],[\"Install multiple packages for a single command\",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e \"console.log('hello!')\"`]]});var b4e={commands:[yp,ig]},S4e=b4e;var iM={};ht(iM,{default:()=>P4e,fileUtils:()=>QE});var wp=/^(?:[a-zA-Z]:[\\\\/]|\\.{0,2}\\/)/,BE=/^[^?]*\\.(?:tar\\.gz|tgz)(?:::.*)?$/,zr=\"file:\";var QE={};ht(QE,{makeArchiveFromLocator:()=>gb,makeBufferFromLocator:()=>rM,makeLocator:()=>tM,makeSpec:()=>UAe,parseSpec:()=>eM});function eM(r){let{params:e,selector:t}=P.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator==\"string\"?P.parseLocator(e.locator):null,path:i}}function UAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:P.stringifyLocator(r)}:{},s=typeof t<\"u\"?{hash:t}:{};return P.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function tM(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return P.makeLocator(r,UAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function gb(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=P.parseFileStyleRange(r.reference,{protocol:e}),o=x.isAbsolute(s)?{packageFs:new jt(ke.root),prefixPath:ke.dot,localPath:ke.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(ke.root),prefixPath:x.relative(ke.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=x.join(a.prefixPath,s);return await Ee.releaseAfterUseAsync(async()=>await yi.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:P.getIdentVendorPath(r),compressionLevel:t.project.configuration.get(\"compressionLevel\"),inMemory:i}),a.releaseFs)}async function rM(r,{protocol:e,fetchOptions:t}){return(await gb(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var fb=class{supports(e,t){return!!e.reference.startsWith(zr)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:zr});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return gb(e,{protocol:zr,fetchOptions:t})}};var v4e=2,hb=class{supportsDescriptor(e,t){return e.range.match(wp)?!0:!!e.range.startsWith(zr)}supportsLocator(e,t){return!!e.reference.startsWith(zr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return wp.test(e.range)&&(e=P.makeDescriptor(e,`${zr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let{path:n,parentLocator:s}=eM(e.range);if(s===null)throw new Error(\"Assertion failed: The descriptor should have been bound\");let o=await rM(P.makeLocator(e,P.makeRange({protocol:zr,source:n,selector:n,params:{locator:P.stringifyLocator(s)}})),{protocol:zr,fetchOptions:i.fetchOptions}),a=gi.makeHash(`${v4e}`,o).slice(0,6);return[tM(e,{parentLocator:s,path:n,folderHash:a,protocol:zr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ee.releaseAfterUseAsync(async()=>await nt.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||\"0.0.0\",languageName:n.languageName||t.project.configuration.get(\"defaultLanguageName\"),linkType:\"HARD\",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var pb=class{supports(e,t){return BE.test(e.reference)?!!e.reference.startsWith(zr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:zr}),s=x.isAbsolute(n)?{packageFs:new jt(ke.root),prefixPath:ke.dot,localPath:ke.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(ke.root),prefixPath:x.relative(ke.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.join(o.prefixPath,n),c=await a.readFilePromise(l);return await Ee.releaseAfterUseAsync(async()=>await yi.convertToZip(c,{compressionLevel:t.project.configuration.get(\"compressionLevel\"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var db=class{supportsDescriptor(e,t){return BE.test(e.range)?!!(e.range.startsWith(zr)||wp.test(e.range)):!1}supportsLocator(e,t){return BE.test(e.reference)?!!e.reference.startsWith(zr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return wp.test(e.range)&&(e=P.makeDescriptor(e,`${zr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range;return n.startsWith(zr)&&(n=n.slice(zr.length)),[P.makeLocator(e,`${zr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ee.releaseAfterUseAsync(async()=>await nt.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||\"0.0.0\",languageName:n.languageName||t.project.configuration.get(\"defaultLanguageName\"),linkType:\"HARD\",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var x4e={fetchers:[pb,fb],resolvers:[db,hb]},P4e=x4e;var nM={};ht(nM,{default:()=>F4e});var HAe=ne(J(\"querystring\")),GAe=[/^https?:\\/\\/(?:([^/]+?)@)?github.com\\/([^/#]+)\\/([^/#]+)\\/tarball\\/([^/#]+)(?:#(.*))?$/,/^https?:\\/\\/(?:([^/]+?)@)?github.com\\/([^/#]+)\\/([^/#]+?)(?:\\.git)?(?:#(.*))?$/];function YAe(r){return r?GAe.some(e=>!!r.match(e)):!1}function jAe(r){let e;for(let a of GAe)if(e=r.match(a),e)break;if(!e)throw new Error(D4e(r));let[,t,i,n,s=\"master\"]=e,{commit:o}=HAe.default.parse(s);return s=o||s.replace(/[^:]*:/,\"\"),{auth:t,username:i,reponame:n,treeish:s}}function D4e(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var Cb=class{supports(e,t){return!!YAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new jt(n);await yi.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=x.join(n,\"package.tgz\");await Jt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await yi.convertToZip(l,{compressionLevel:t.project.configuration.get(\"compressionLevel\"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=jAe(e.reference);return`https://${i?`${i}@`:\"\"}github.com/${n}/${s}/archive/${o}.tar.gz`}};var R4e={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new Cb;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},F4e=R4e;var sM={};ht(sM,{default:()=>L4e});var bE=/^[^?]*\\.(?:tar\\.gz|tgz)(?:\\?.*)?$/,SE=/^https?:/;var mb=class{supports(e,t){return bE.test(e.reference)?!!SE.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await yi.convertToZip(i,{compressionLevel:t.project.configuration.get(\"compressionLevel\"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var Eb=class{supportsDescriptor(e,t){return bE.test(e.range)?!!SE.test(e.range):!1}supportsLocator(e,t){return bE.test(e.reference)?!!SE.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[P.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ee.releaseAfterUseAsync(async()=>await nt.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||\"0.0.0\",languageName:n.languageName||t.project.configuration.get(\"defaultLanguageName\"),linkType:\"HARD\",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var N4e={fetchers:[mb],resolvers:[Eb]},L4e=N4e;var lM={};ht(lM,{default:()=>Tze});var uo=ne(Xe()),Cle=ne(dle()),AM=J(\"util\"),ng=class extends ve{constructor(){super(...arguments);this.private=uo.Option.Boolean(\"-p,--private\",!1,{description:\"Initialize a private package\"});this.workspace=uo.Option.Boolean(\"-w,--workspace\",!1,{description:\"Initialize a workspace root with a `packages/` directory\"});this.install=uo.Option.String(\"-i,--install\",!1,{tolerateBoolean:!0,description:\"Initialize a package with a specific bundle that will be locked in the project\"});this.usev2=uo.Option.Boolean(\"-2\",!1,{hidden:!0});this.yes=uo.Option.Boolean(\"-y,--yes\",{hidden:!0});this.assumeFreshProject=uo.Option.Boolean(\"--assume-fresh-project\",!1,{hidden:!0})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=typeof this.install==\"string\"?this.install:this.usev2||this.install===!0?\"latest\":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new uo.UsageError(\"Cannot use the --install flag from within a project subdirectory\");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=x.join(this.context.cwd,t.get(\"lockfileFilename\"));M.existsSync(n)||await M.writeFilePromise(n,\"\");let s=await this.cli.run([\"set\",\"version\",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push(\"-p\"),this.workspace&&o.push(\"-w\"),this.yes&&o.push(\"-y\"),await M.mktempPromise(async a=>{let{code:l}=await mr.pipevp(\"yarn\",[\"init\",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Jt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await He.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await nt.tryFind(this.context.cwd)||new nt,s=Object.fromEntries(t.get(\"initFields\").entries());n.load(s),n.name=(c=n.name)!=null?c:P.makeIdent(t.get(\"initScope\"),x.basename(this.context.cwd)),n.packageManager=Or&&Ee.isTaggedYarnVersion(Or)?`yarn@${Or}`:null,typeof n.raw.private>\"u\"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(x.join(this.context.cwd,\"packages\"),{recursive:!0}),n.workspaceDefinitions=[{pattern:\"packages/*\"}]);let o={};n.exportTo(o),AM.inspect.styles.name=\"cyan\",this.context.stdout.write(`${(0,AM.inspect)(o,{depth:1/0,colors:!0,compact:!1})}\n`);let a=x.join(this.context.cwd,nt.fileName);await M.changeFilePromise(a,`${JSON.stringify(o,null,2)}\n`,{automaticNewlines:!0});let l=x.join(this.context.cwd,\"README.md\");if(M.existsSync(l)||await M.writeFilePromise(l,`# ${P.stringifyIdent(n.name)}\n`),!i||i.cwd===this.context.cwd){let u=x.join(this.context.cwd,xt.lockfile);M.existsSync(u)||await M.writeFilePromise(u,\"\");let f=[\".yarn/*\",\"!.yarn/patches\",\"!.yarn/plugins\",\"!.yarn/releases\",\"!.yarn/sdks\",\"!.yarn/versions\",\"\",\"# Swap the comments on the following lines if you don't wish to use zero-installs\",\"# Documentation here: https://yarnpkg.com/features/zero-installs\",\"!.yarn/cache\",\"#.pnp.*\"].map(B=>`${B}\n`).join(\"\"),h=x.join(this.context.cwd,\".gitignore\");M.existsSync(h)||await M.writeFilePromise(h,f);let p={[\"*\"]:{endOfLine:\"lf\",insertFinalNewline:!0},[\"*.{js,json,yml}\"]:{charset:\"utf-8\",indentStyle:\"space\",indentSize:2}};(0,Cle.default)(p,t.get(\"initEditorConfig\"));let C=`root = true\n`;for(let[B,v]of Object.entries(p)){C+=`\n[${B}]\n`;for(let[D,L]of Object.entries(v))C+=`${D.replace(/[A-Z]/g,j=>`_${j.toLowerCase()}`)} = ${L}\n`}let w=x.join(this.context.cwd,\".editorconfig\");M.existsSync(w)||await M.writeFilePromise(w,C),M.existsSync(x.join(this.context.cwd,\".git\"))||await mr.execvp(\"git\",[\"init\"],{cwd:this.context.cwd})}}};ng.paths=[[\"init\"]],ng.usage=uo.Command.Usage({description:\"create a new package\",details:\"\\n      This command will setup a new package in your local directory.\\n\\n      If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\\n\\n      If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\\n\\n      If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\\n\\n      The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\\n    \",examples:[[\"Create a new package in the local directory\",\"yarn init\"],[\"Create a new private package in the local directory\",\"yarn init -p\"],[\"Create a new package and store the Yarn release inside\",\"yarn init -i=latest\"],[\"Create a new private package and defines it as a workspace root\",\"yarn init -w\"]]});var Lze={configuration:{initScope:{description:\"Scope used when creating packages via the init command\",type:\"STRING\",default:null},initFields:{description:\"Additional fields to set when creating packages via the init command\",type:\"MAP\",valueDefinition:{description:\"\",type:\"ANY\"}},initEditorConfig:{description:\"Extra rules to define in the generator editorconfig\",type:\"MAP\",valueDefinition:{description:\"\",type:\"ANY\"}}},commands:[ng]},Tze=Lze;var cM={};ht(cM,{default:()=>Mze});var cA=\"portal:\",uA=\"link:\";var Ib=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA}),s=x.isAbsolute(n)?{packageFs:new jt(ke.root),prefixPath:ke.dot,localPath:ke.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(ke.root),prefixPath:x.relative(ke.root,s.localPath),localPath:ke.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:ke.dot,localPath:l}:{packageFs:new bo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:ke.dot}}};var yb=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[P.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Ee.releaseAfterUseAsync(async()=>await nt.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||\"0.0.0\",languageName:n.languageName||t.project.configuration.get(\"defaultLanguageName\"),linkType:\"SOFT\",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var wb=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:uA});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:uA}),s=x.isAbsolute(n)?{packageFs:new jt(ke.root),prefixPath:ke.dot,localPath:ke.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(ke.root),prefixPath:x.relative(ke.root,s.localPath),localPath:ke.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:ke.dot,discardFromLookup:!0,localPath:l}:{packageFs:new bo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:ke.dot,discardFromLookup:!0}}};var Bb=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[P.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:\"0.0.0\",languageName:t.project.configuration.get(\"defaultLanguageName\"),linkType:\"SOFT\",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var Oze={fetchers:[wb,Ib],resolvers:[Bb,yb]},Mze=Oze;var YM={};ht(YM,{default:()=>Z5e});var gM=(r,e)=>`${r}@${e}`,mle=(r,e)=>{let t=e.indexOf(\"#\"),i=t>=0?e.substring(t+1):e;return gM(r,i)};var yle=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=qze(r,s),l=!1,c=0;do l=fM(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=vE(a);if(fM(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree:\n${u}, next tree:\n${vE(a)}`);let f=wle(a);if(f)throw new Error(`${f}, after hoisting finished:\n${vE(a)}`)}return s.debugLevel>=2&&console.log(vE(a)),Jze(a)},Kze=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},Uze=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},Ele=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:p,hoistedTo:C}=e,w={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:new Map(p),hoistedTo:new Map(C)},B=w.dependencies.get(t);return B&&B.ident==w.ident&&w.dependencies.set(t,w),r.dependencies.set(w.name,w),w},Hze=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf(\"@\",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},uM=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},fM=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=Wze(o),l=Hze(o,a),c=r==o?new Map:n.fastLookupPossible?Kze(e):Uze(e),u,g=!1,f=!1,h=new Map(Array.from(l.entries()).map(([C,w])=>[C,w[0]])),p=new Map;do{let C=jze(r,e,t,c,h,l,i,p,n);C.isGraphChanged&&(f=!0),C.anotherRoundNeeded&&(g=!0),u=!1;for(let[w,B]of l)B.length>1&&!o.dependencies.has(w)&&(h.delete(w),B.shift(),h.set(w,B[0]),u=!0)}while(u);for(let C of o.dependencies.values())if(!o.peerNames.has(C.name)&&!t.has(C.locator)){t.add(C.locator);let w=fM(r,[...e,C],t,p,n);w.isGraphChanged&&(f=!0),w.anotherRoundNeeded&&(g=!0),t.delete(C.locator)}return{anotherRoundNeeded:g,isGraphChanged:f}},Gze=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},Yze=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,f=new Set;l&&(u=`${Array.from(e).map(w=>Ri(w)).join(\"\\u2192\")}`);let h=t[t.length-1],C=!(i.ident===h.ident);if(l&&!C&&(g=\"- self-reference\"),C&&(C=i.dependencyKind!==1,l&&!C&&(g=\"- workspace\")),C&&i.dependencyKind===2&&(C=!Gze(i),l&&!C&&(g=\"- external soft link with unhoisted dependencies\")),C&&(C=h.dependencyKind!==1||h.hoistedFrom.has(i.name)||e.size===1,l&&!C&&(g=h.reasons.get(i.name))),C&&(C=!r.peerNames.has(i.name),l&&!C&&(g=`- cannot shadow peer: ${Ri(r.originalDependencies.get(i.name).locator)} at ${u}`)),C){let w=!1,B=n.get(i.name);if(w=!B||B.ident===i.ident,l&&!w&&(g=`- filled by: ${Ri(B.locator)} at ${u}`),w)for(let v=t.length-1;v>=1;v--){let L=t[v].dependencies.get(i.name);if(L&&L.ident!==i.ident){w=!1;let H=a.get(h);H||(H=new Set,a.set(h,H)),H.add(i.name),l&&(g=`- filled by ${Ri(L.locator)} at ${t.slice(0,v).map(j=>Ri(j.locator)).join(\"\\u2192\")}`);break}}C=w}if(C&&(C=s.get(i.name)===i.ident,l&&!C&&(g=`- filled by: ${Ri(o.get(i.name)[0])} at ${u}`)),C){let w=!0,B=new Set(i.peerNames);for(let v=t.length-1;v>=1;v--){let D=t[v];for(let L of B){if(D.peerNames.has(L)&&D.originalDependencies.has(L))continue;let H=D.dependencies.get(L);H&&r.dependencies.get(L)!==H&&(v===t.length-1?f.add(H):(f=null,w=!1,l&&(g=`- peer dependency ${Ri(H.locator)} from parent ${Ri(D.locator)} was not hoisted to ${u}`))),B.delete(L)}if(!w)break}C=w}if(C&&!c)for(let w of i.hoistedDependencies.values()){let B=n.get(w.name)||r.dependencies.get(w.name);if(!B||w.ident!==B.ident){C=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Ri(w.locator)}, available: ${Ri(B==null?void 0:B.locator)}`);break}}return f!==null&&f.size>0?{isHoistable:2,dependsOn:f,reason:g}:{isHoistable:C?0:1,reason:g}},Qb=r=>`${r.name}@${r.locator}`,jze=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,f=!1,h=(B,v,D,L,H)=>{if(u.has(L))return;let j=[...v,Qb(L)],$=[...D,Qb(L)],V=new Map,W=new Map;for(let _ of uM(L)){let T=Yze(c,t,[c,...B,L],_,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(_,T),T.isHoistable===2)for(let N of T.dependsOn){let ue=V.get(N.name)||new Set;ue.add(_.name),V.set(N.name,ue)}}let Z=new Set,A=(_,T,N)=>{if(!Z.has(_)){Z.add(_),W.set(_,{isHoistable:1,reason:N});for(let ue of V.get(_.name)||[])A(L.dependencies.get(ue),T,l.debugLevel>=2?`- peer dependency ${Ri(_.locator)} from parent ${Ri(L.locator)} was not hoisted`:\"\")}};for(let[_,T]of W)T.isHoistable===1&&A(_,T,T.reason);let ae=!1;for(let _ of W.keys())if(!Z.has(_)){f=!0;let T=o.get(L);T&&T.has(_.name)&&(g=!0),ae=!0,L.dependencies.delete(_.name),L.hoistedDependencies.set(_.name,_),L.reasons.delete(_.name);let N=c.dependencies.get(_.name);if(l.debugLevel>=2){let ue=Array.from(v).concat([L.locator]).map(Le=>Ri(Le)).join(\"\\u2192\"),we=c.hoistedFrom.get(_.name);we||(we=[],c.hoistedFrom.set(_.name,we)),we.push(ue),L.hoistedTo.set(_.name,Array.from(e).map(Le=>Ri(Le.locator)).join(\"\\u2192\"))}if(!N)c.ident!==_.ident&&(c.dependencies.set(_.name,_),H.add(_));else for(let ue of _.references)N.references.add(ue)}if(L.dependencyKind===2&&ae&&(g=!0),l.check){let _=wle(r);if(_)throw new Error(`${_}, after hoisting dependencies of ${[c,...B,L].map(T=>Ri(T.locator)).join(\"\\u2192\")}:\n${vE(r)}`)}let ge=uM(L);for(let _ of ge)if(Z.has(_)){let T=W.get(_);if((n.get(_.name)===_.ident||!L.reasons.has(_.name))&&T.isHoistable!==0&&L.reasons.set(_.name,T.reason),!_.isHoistBorder&&$.indexOf(Qb(_))<0){u.add(L);let ue=Ele(L,_);h([...B,L],j,$,ue,C),u.delete(L)}}},p,C=new Set(uM(c)),w=Array.from(e).map(B=>Qb(B));do{p=C,C=new Set;for(let B of p){if(B.locator===c.locator||B.isHoistBorder)continue;let v=Ele(c,B);h([],Array.from(t),w,v,C)}}while(C.size>0);return{anotherRoundNeeded:g,isGraphChanged:f}},wle=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(f=>Ri(f.locator)).join(\"\\u2192\")}`;if(s.peerNames.has(c.name)){let f=o.get(c.name);(f!==u||!f||f.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${f&&f.ident}`)}else{let f=a.hoistedFrom.get(s.name),h=s.hoistedTo.get(c.name),p=`${f?` hoisted from ${f.join(\", \")}`:\"\"}`,C=`${h?` hoisted to ${h}`:\"\"}`,w=`${g()}${p}`;u?u.ident!==c.ident&&e.push(`${w} - broken require promise for ${c.name}${C}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${w} - broken require promise: no required dependency ${c.name}${C} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(`\n`)},qze=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:gM(t,n),ident:mle(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),f=!!g;if(!g){let{name:h,identName:p,reference:C,peerNames:w,hoistPriority:B,dependencyKind:v}=c,D=e.hoistingLimits.get(u.locator);g={name:h,references:new Set([C]),locator:gM(p,C),ident:mle(p,C),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(w),reasons:new Map,decoupled:!0,isHoistBorder:D?D.has(h):!1,hoistPriority:B||0,dependencyKind:v||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),f){let h=new Set,p=C=>{if(!h.has(C)){h.add(C),C.decoupled=!1;for(let w of C.dependencies.values())C.peerNames.has(w.name)||p(w)}};p(g)}else for(let h of c.dependencies)l(h,g)};for(let c of r.dependencies)l(c,o);return o},hM=r=>r.substring(0,r.indexOf(\"@\",1)),Jze=r=>{let e={name:r.name,identName:hM(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:hM(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},Wze=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Ri=r=>{if(!r)return\"none\";let e=r.indexOf(\"@\",1),t=r.substring(0,e);t.endsWith(\"$wsroot$\")&&(t=`wh:${t.replace(\"$wsroot$\",\"\")}`);let i=r.substring(e+1);if(i===\"workspace:.\")return\".\";if(i){let n=(i.indexOf(\"#\")>0?i.split(\"#\")[1]:i).replace(\"npm:\",\"\");return i.startsWith(\"virtual\")&&(t=`v:${t}`),n.startsWith(\"workspace\")&&(t=`w:${t}`,n=\"\"),`${t}${n?`@${n}`:\"\"}`}else return`${t}`},Ile=5e4,vE=r=>{let e=0,t=(n,s,o=\"\")=>{if(e>Ile||s.has(n))return\"\";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l=\"\";s.add(n);for(let c=0;c<a.length;c++){let u=a[c];if(!n.peerNames.has(u.name)&&u!==n){let g=n.reasons.get(u.name),f=hM(u.locator);l+=`${o}${c<a.length-1?\"\\u251C\\u2500\":\"\\u2514\\u2500\"}${(s.has(u)?\">\":\"\")+(f!==u.name?`a:${u.name}:`:\"\")+Ri(u.locator)+(g?` ${g}`:\"\")}\n`,l+=t(u,s,`${o}${c<a.length-1?\"\\u2502 \":\"  \"}`)}}return s.delete(n),l};return t(r,new Set)+(e>Ile?`\nTree is too large, part of the tree has been dunped\n`:\"\")};var xE=(i=>(i.WORKSPACES=\"workspaces\",i.DEPENDENCIES=\"dependencies\",i.NONE=\"none\",i))(xE||{}),Ble=\"node_modules\",sg=\"$wsroot$\";var PE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=Vze(r,e),o=null;if(n.length===0){let a=yle(t,{hoistingLimits:i});o=_ze(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},oa=r=>`${r.name}@${r.reference}`,dM=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(x.delimiter).length,o=n.split(x.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},Qle=(r,e)=>{let t=P.isVirtualLocator(r)?P.devirtualizeLocator(r):r,i=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e;return P.areLocatorsEqual(t,i)},pM=(r,e,t,i)=>{if(r.linkType!==\"SOFT\")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith(\"virtual:\")?t.resolveVirtual(r.packageLocation):r.packageLocation);return x.contains(i,n)===null},zze=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error(\"Assertion failed: Expected the top-level package to have been registered\");if(r.findPackageLocator(e.packageLocation)===null)throw new Error(\"Assertion failed: Expected the top-level package to have a physical locator\");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(f,h)=>{let p=oa(f);if(l.has(p))return;l.add(p);let C=r.getPackageInformation(f);if(C){let w=h?oa(h):\"\";if(oa(f)!==w&&C.linkType===\"SOFT\"&&!pM(C,f,r,i)){let B=ble(C,f,r);(!a.get(B)||f.reference.startsWith(\"workspace:\"))&&a.set(B,f)}for(let[B,v]of C.packageDependencies)v!==null&&(C.packagePeers.has(B)||c(r.getLocator(B,v),f))}};for(let f of o)c(f,null);let u=i.split(x.sep);for(let f of a.values()){let h=r.getPackageInformation(f),C=K.toPortablePath(h.packageLocation.slice(0,-1)).split(x.sep).slice(u.length),w=s;for(let B of C){let v=w.children.get(B);v||(v={children:new Map},w.children.set(B,v)),w=v}w.workspaceLocator=f}let g=(f,h)=>{if(f.workspaceLocator){let p=oa(h),C=n.get(p);C||(C=new Set,n.set(p,C)),C.add(f.workspaceLocator)}for(let p of f.children.values())g(p,f.workspaceLocator||h)};for(let f of s.children.values())g(f,s.workspaceLocator);return n},Vze=(r,e)=>{let t=[],i=!1,n=new Map,s=zze(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error(\"Assertion failed: Expected the top-level package to have been registered\");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error(\"Assertion failed: Expected the top-level package to have a physical locator\");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(h,p)=>`${oa(p)}:${h}`,f=(h,p,C,w,B,v,D,L)=>{var _,T;let H=g(h,C),j=u.get(H),$=!!j;!$&&C.name===a.name&&C.reference===a.reference&&(j=c,u.set(H,c));let V=pM(p,C,r,l);if(!j){let N=0;V?N=2:p.linkType===\"SOFT\"&&C.name.endsWith(sg)&&(N=1),j={name:h,identName:C.name,reference:C.reference,dependencies:new Set,peerNames:N===1?new Set:p.packagePeers,dependencyKind:N},u.set(H,j)}let W;if(V?W=2:B.linkType===\"SOFT\"?W=1:W=0,j.hoistPriority=Math.max(j.hoistPriority||0,W),L&&!V){let N=oa({name:w.identName,reference:w.reference}),ue=n.get(N)||new Set;n.set(N,ue),ue.add(j.name)}let Z=new Map(p.packageDependencies);if(e.project){let N=e.project.workspacesByCwd.get(K.toPortablePath(p.packageLocation.slice(0,-1)));if(N){let ue=new Set([...Array.from(N.manifest.peerDependencies.values(),we=>P.stringifyIdent(we)),...Array.from(N.manifest.peerDependenciesMeta.keys())]);for(let we of ue)Z.has(we)||(Z.set(we,v.get(we)||null),j.peerNames.add(we))}}let A=oa({name:C.name.replace(sg,\"\"),reference:C.reference}),ae=s.get(A);if(ae)for(let N of ae)Z.set(`${N.name}${sg}`,N.reference);(p!==B||p.linkType!==\"SOFT\"||!V&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(D)))&&w.dependencies.add(j);let ge=C!==a&&p.linkType===\"SOFT\"&&!C.name.endsWith(sg)&&!V;if(!$&&!ge){let N=new Map;for(let[ue,we]of Z)if(we!==null){let Le=r.getLocator(ue,we),Pe=r.getLocator(ue.replace(sg,\"\"),we),Te=r.getPackageInformation(Pe);if(Te===null)throw new Error(\"Assertion failed: Expected the package to have been registered\");let se=pM(Te,Le,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Te.packageDependencies.size>0&&(i=!0);for(let[Ge,ie]of Te.packageDependencies)if(ie!==null){let Y=P.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ge}@${ie}`);if(oa(Y)!==oa(Le)){let he=Z.get(Ge);if(he){let re=P.parseLocator(Array.isArray(he)?`${he[0]}@${he[1]}`:`${Ge}@${he}`);Qle(re,Y)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(Le.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${C.name}@${C.reference}`))} dependency ${P.prettyLocator(e.project.configuration,Y)} conflicts with parent dependency ${P.prettyLocator(e.project.configuration,re)}`})}else{let re=N.get(Ge);if(re){let me=re.target,tt=P.parseLocator(Array.isArray(me)?`${me[0]}@${me[1]}`:`${Ge}@${me}`);Qle(tt,Y)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(Le.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${C.name}@${C.reference}`))} dependency ${P.prettyLocator(e.project.configuration,Y)} conflicts with dependency ${P.prettyLocator(e.project.configuration,tt)} from sibling portal ${P.prettyIdent(e.project.configuration,P.parseIdent(re.portal.name))}`})}else N.set(Ge,{target:Y.reference,portal:Le})}}}}let Ae=(_=e.hoistingLimitsByCwd)==null?void 0:_.get(D),Qe=se?D:x.relative(l,K.toPortablePath(Te.packageLocation))||ke.dot,fe=(T=e.hoistingLimitsByCwd)==null?void 0:T.get(Qe);f(ue,Te,Le,j,p,Z,Qe,Ae===\"dependencies\"||fe===\"dependencies\"||fe===\"workspaces\")}}};return f(a.name,o,a,c,o,o.packageDependencies,ke.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function ble(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith(\"virtual:\")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function Xze(r,e,t){let i=e.getLocator(r.name.replace(sg,\"\"),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error(\"Assertion failed: Expected the package to be registered\");let s,o;return t.pnpifyFs?(o=K.toPortablePath(n.packageLocation),s=\"SOFT\"):(o=ble(n,r,e),s=n.linkType),{linkType:s,target:o}}var _ze=(r,e,t)=>{let i=new Map,n=(u,g,f)=>{let{linkType:h,target:p}=Xze(u,r,t);return{locator:oa(u),nodePath:g,target:p,linkType:h,aliases:f}},s=u=>{let[g,f]=u.split(\"/\");return f?{scope:Gr(g),name:Gr(f)}:{scope:null,name:Gr(g)}},o=new Set,a=(u,g,f)=>{if(o.has(u))return;o.add(u);let h=Array.from(u.references).sort().join(\"#\");for(let p of u.dependencies){let C=Array.from(p.references).sort().join(\"#\");if(p.identName===u.identName&&C===h)continue;let w=Array.from(p.references).sort(),B={name:p.identName,reference:w[0]},{name:v,scope:D}=s(p.name),L=D?[D,v]:[v],H=x.join(g,Ble),j=x.join(H,...L),$=`${f}/${B.name}`,V=n(B,f,w.slice(1)),W=!1;if(V.linkType===\"SOFT\"&&t.project){let A=t.project.workspacesByCwd.get(V.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=V.linkType===\"SOFT\"&&j.startsWith(V.target);if(!p.name.endsWith(sg)&&!W&&!Z){let A=i.get(j);if(A){if(A.dirList)throw new Error(`Assertion failed: ${j} cannot merge dir node with leaf node`);{let T=P.parseLocator(A.locator),N=P.parseLocator(V.locator);if(A.linkType!==V.linkType)throw new Error(`Assertion failed: ${j} cannot merge nodes with different link types ${A.nodePath}/${P.stringifyLocator(T)} and ${f}/${P.stringifyLocator(N)}`);if(T.identHash!==N.identHash)throw new Error(`Assertion failed: ${j} cannot merge nodes with different idents ${A.nodePath}/${P.stringifyLocator(T)} and ${f}/s${P.stringifyLocator(N)}`);V.aliases=[...V.aliases,...A.aliases,P.parseLocator(A.locator).reference]}}i.set(j,V);let ae=j.split(\"/\"),ge=ae.indexOf(Ble),_=ae.length-1;for(;ge>=0&&_>ge;){let T=K.toPortablePath(ae.slice(0,_).join(x.sep)),N=Gr(ae[_]),ue=i.get(T);if(!ue)i.set(T,{dirList:new Set([N])});else if(ue.dirList){if(ue.dirList.has(N))break;ue.dirList.add(N)}_--}}a(p,V.linkType===\"SOFT\"?V.target:j,$)}},l=n({name:e.name,reference:Array.from(e.references)[0]},\"\",[]),c=l.target;return i.set(c,l),a(e,c,\"\"),i};var kM={};ht(kM,{PnpInstaller:()=>ag,PnpLinker:()=>kl,default:()=>b5e,getPnpPath:()=>Rl,jsInstallUtils:()=>ho,pnpUtils:()=>ME,quotePathIfNeeded:()=>ace});var sce=ne($r()),oce=J(\"url\");var Sle={[\"DEFAULT\"]:{collapsed:!1,next:{[\"*\"]:\"DEFAULT\"}},[\"TOP_LEVEL\"]:{collapsed:!1,next:{fallbackExclusionList:\"FALLBACK_EXCLUSION_LIST\",packageRegistryData:\"PACKAGE_REGISTRY_DATA\",[\"*\"]:\"DEFAULT\"}},[\"FALLBACK_EXCLUSION_LIST\"]:{collapsed:!1,next:{[\"*\"]:\"FALLBACK_EXCLUSION_ENTRIES\"}},[\"FALLBACK_EXCLUSION_ENTRIES\"]:{collapsed:!0,next:{[\"*\"]:\"FALLBACK_EXCLUSION_DATA\"}},[\"FALLBACK_EXCLUSION_DATA\"]:{collapsed:!0,next:{[\"*\"]:\"DEFAULT\"}},[\"PACKAGE_REGISTRY_DATA\"]:{collapsed:!1,next:{[\"*\"]:\"PACKAGE_REGISTRY_ENTRIES\"}},[\"PACKAGE_REGISTRY_ENTRIES\"]:{collapsed:!0,next:{[\"*\"]:\"PACKAGE_STORE_DATA\"}},[\"PACKAGE_STORE_DATA\"]:{collapsed:!1,next:{[\"*\"]:\"PACKAGE_STORE_ENTRIES\"}},[\"PACKAGE_STORE_ENTRIES\"]:{collapsed:!0,next:{[\"*\"]:\"PACKAGE_INFORMATION_DATA\"}},[\"PACKAGE_INFORMATION_DATA\"]:{collapsed:!1,next:{packageDependencies:\"PACKAGE_DEPENDENCIES\",[\"*\"]:\"DEFAULT\"}},[\"PACKAGE_DEPENDENCIES\"]:{collapsed:!1,next:{[\"*\"]:\"PACKAGE_DEPENDENCY\"}},[\"PACKAGE_DEPENDENCY\"]:{collapsed:!0,next:{[\"*\"]:\"DEFAULT\"}}};function Zze(r,e,t){let i=\"\";i+=\"[\";for(let n=0,s=r.length;n<s;++n)i+=bb(String(n),r[n],e,t).replace(/^ +/g,\"\"),n+1<s&&(i+=\", \");return i+=\"]\",i}function $ze(r,e,t){let i=`${t}  `,n=\"\";n+=t,n+=`[\n`;for(let s=0,o=r.length;s<o;++s)n+=i+bb(String(s),r[s],e,i).replace(/^ +/,\"\"),s+1<o&&(n+=\",\"),n+=`\n`;return n+=t,n+=\"]\",n}function e5e(r,e,t){let i=Object.keys(r),n=\"\";n+=\"{\";for(let s=0,o=i.length,a=0;s<o;++s){let l=i[s],c=r[l];typeof c>\"u\"||(a!==0&&(n+=\", \"),n+=JSON.stringify(l),n+=\": \",n+=bb(l,c,e,t).replace(/^ +/g,\"\"),a+=1)}return n+=\"}\",n}function t5e(r,e,t){let i=Object.keys(r),n=`${t}  `,s=\"\";s+=t,s+=`{\n`;let o=0;for(let a=0,l=i.length;a<l;++a){let c=i[a],u=r[c];typeof u>\"u\"||(o!==0&&(s+=\",\",s+=`\n`),s+=n,s+=JSON.stringify(c),s+=\": \",s+=bb(c,u,e,n).replace(/^ +/g,\"\"),o+=1)}return o!==0&&(s+=`\n`),s+=t,s+=\"}\",s}function bb(r,e,t,i){let{next:n}=Sle[t],s=n[r]||n[\"*\"];return vle(e,s,i)}function vle(r,e,t){let{collapsed:i}=Sle[e];return Array.isArray(r)?i?Zze(r,e,t):$ze(r,e,t):typeof r==\"object\"&&r!==null?i?e5e(r,e,t):t5e(r,e,t):JSON.stringify(r)}function xle(r){return vle(r,\"TOP_LEVEL\",\"\")}function DE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function r5e(r){let e=new Map,t=DE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>\"u\"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function i5e(r){return DE(r.fallbackPool||[],([e])=>e)}function n5e(r){let e=[];for(let[t,i]of DE(r.packageRegistry,([n])=>n===null?\"0\":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of DE(i,([g])=>g===null?\"0\":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[p,C]of DE(a.entries(),([w])=>w))g.push([p,C]);let f=l&&l.size>0?Array.from(l):void 0,h=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:f,linkType:c,discardFromLookup:h}])}}return e}function kE(r){return{__info:[\"This file is automatically generated. Do not touch it, or risk\",\"your modifications being lost. We also recommend you not to read\",\"it either without using the @yarnpkg/pnp package, as the data layout\",\"is entirely unspecified and WILL change from a version to another.\"],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:r5e(r),fallbackPool:i5e(r),packageRegistryData:n5e(r)}}var kle=ne(Dle());function Rle(r,e){return[r?`${r}\n`:\"\",`/* eslint-disable */\n`,`\"use strict\";\n`,`\n`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) {\n`,e.replace(/^/gm,\"  \"),`}\n`,`\n`,(0,kle.default)()].join(\"\")}function s5e(r){return JSON.stringify(r,null,2)}function o5e(r){return`'${r.replace(/\\\\/g,\"\\\\\\\\\").replace(/'/g,\"\\\\'\").replace(/\\n/g,`\\\\\n`)}'`}function a5e(r){return[`return hydrateRuntimeState(JSON.parse(${o5e(xle(r))}), {basePath: basePath || __dirname});\n`].join(\"\")}function A5e(r){return[`var path = require('path');\n`,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(r)});\n`,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)});\n`].join(\"\")}function Fle(r){let e=kE(r),t=a5e(e);return Rle(r.shebang,t)}function Nle(r){let e=kE(r),t=A5e(r.dataLocation),i=Rle(r.shebang,t);return{dataFile:s5e(e),loaderFile:i}}var _le=J(\"fs\");var Zle=J(\"util\");function mM(r,{basePath:e}){let t=K.toPortablePath(e),i=x.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,f])=>[g,new Map(f.map(([h,p])=>{var D;if(g===null!=(h===null))throw new Error(\"Assertion failed: The name and reference should be null, or neither should\");let C=(D=p.discardFromLookup)!=null?D:!1,w={name:g,reference:h},B=s.get(p.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&C,C||(B.locator=w)):s.set(p.packageLocation,{locator:w,discardFromLookup:C});let v=null;return[h,{packageDependencies:new Map(p.packageDependencies),packagePeers:new Set(p.packagePeers),linkType:p.linkType,discardFromLookup:C,get packageLocation(){return v||(v=x.join(i,p.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,f])=>[g,new Set(f)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var TE=J(\"module\");function Bp(r,e){if(typeof r==\"string\")return r;if(r){let t,i;if(Array.isArray(r)){for(t=0;t<r.length;t++)if(i=Bp(r[t],e))return i}else for(t in r)if(e.has(t))return Bp(r[t],e)}}function og(r,e,t){throw new Error(t?`No known conditions for \"${e}\" entry in \"${r}\" package`:`Missing \"${e}\" export in \"${r}\" package`)}function l5e(r,e){return e===r?\".\":e[0]===\".\"?e:e.replace(new RegExp(\"^\"+r+\"/\"),\"./\")}function Lle(r,e=\".\",t={}){let{name:i,exports:n}=r;if(n){let{browser:s,require:o,unsafe:a,conditions:l=[]}=t,c=l5e(i,e);if(c[0]!==\".\"&&(c=\"./\"+c),typeof n==\"string\")return c===\".\"?n:og(i,c);let u=new Set([\"default\",...l]);a||u.add(o?\"require\":\"import\"),a||u.add(s?\"browser\":\"node\");let g,f,h=!1;for(g in n){h=g[0]!==\".\";break}if(h)return c===\".\"?Bp(n,u)||og(i,c,1):og(i,c);if(f=n[c])return Bp(f,u)||og(i,c,1);for(g in n){if(f=g[g.length-1],f===\"/\"&&c.startsWith(g))return(f=Bp(n[g],u))?f+c.substring(g.length):og(i,c,1);if(f===\"*\"&&c.startsWith(g.slice(0,-1))&&c.substring(g.length-1).length>0)return(f=Bp(n[g],u))?f.replace(\"*\",c.substring(g.length-1)):og(i,c,1)}return og(i,c)}}var Fb=J(\"url\"),BM=J(\"util\");var go=J(\"url\");var Gle=ne(J(\"assert\"));var Tle=Array.isArray,RE=JSON.stringify,EM=Object.getOwnPropertyNames,Qp=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),IM=(r,e)=>RegExp.prototype.exec.call(r,e),yM=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),FE=(r,...e)=>String.prototype.endsWith.apply(r,e),Ole=(r,...e)=>String.prototype.includes.apply(r,e),Mle=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),Sb=(r,...e)=>String.prototype.indexOf.apply(r,e),Kle=(r,...e)=>String.prototype.replace.apply(r,e),NE=(r,...e)=>String.prototype.slice.apply(r,e),gA=(r,...e)=>String.prototype.startsWith.apply(r,e),Ule=Map,Hle=JSON.parse;function vb(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var Yle=vb(\"ERR_PACKAGE_IMPORT_NOT_DEFINED\",(r,e,t)=>`Package import specifier \"${r}\" is not defined${e?` in package ${e}package.json`:\"\"} imported from ${t}`,TypeError),wM=vb(\"ERR_INVALID_MODULE_SPECIFIER\",(r,e,t=void 0)=>`Invalid module \"${r}\" ${e}${t?` imported from ${t}`:\"\"}`,TypeError),jle=vb(\"ERR_INVALID_PACKAGE_TARGET\",(r,e,t,i=!1,n=void 0)=>{let s=typeof t==\"string\"&&!i&&t.length&&!gA(t,\"./\");return e===\".\"?((0,Gle.default)(i===!1),`Invalid \"exports\" main target ${RE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:\"\"}${s?'; targets must start with \"./\"':\"\"}`):`Invalid \"${i?\"imports\":\"exports\"}\" target ${RE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:\"\"}${s?'; targets must start with \"./\"':\"\"}`},Error),xb=vb(\"ERR_INVALID_PACKAGE_CONFIG\",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:\"\"}${t?`. ${t}`:\"\"}`,Error);var Db=J(\"url\");function qle(r,e){let t=Object.create(null);for(let i=0;i<e.length;i++){let n=e[i];Qp(r,n)&&(t[n]=r[n])}return t}var Pb=new Ule;function c5e(r,e,t,i){let n=Pb.get(r);if(n!==void 0)return n;let s=i(r);if(s===void 0){let h={pjsonPath:r,exists:!1,main:void 0,name:void 0,type:\"none\",exports:void 0,imports:void 0};return Pb.set(r,h),h}let o;try{o=Hle(s)}catch(h){throw new xb(r,(t?`\"${e}\" from `:\"\")+(0,Db.fileURLToPath)(t||e),h.message)}let{imports:a,main:l,name:c,type:u}=qle(o,[\"imports\",\"main\",\"name\",\"type\"]),g=Qp(o,\"exports\")?o.exports:void 0;(typeof a!=\"object\"||a===null)&&(a=void 0),typeof l!=\"string\"&&(l=void 0),typeof c!=\"string\"&&(c=void 0),u!==\"module\"&&u!==\"commonjs\"&&(u=\"none\");let f={pjsonPath:r,exists:!0,main:l,name:c,type:u,exports:g,imports:a};return Pb.set(r,f),f}function Jle(r,e){let t=new URL(\"./package.json\",r);for(;;){let s=t.pathname;if(FE(s,\"node_modules/package.json\"))break;let o=c5e((0,Db.fileURLToPath)(t),r,void 0,e);if(o.exists)return o;let a=t;if(t=new URL(\"../package.json\",t),t.pathname===a.pathname)break}let i=(0,Db.fileURLToPath)(t),n={pjsonPath:i,exists:!1,main:void 0,name:void 0,type:\"none\",exports:void 0,imports:void 0};return Pb.set(i,n),n}function u5e(r,e,t){throw new Yle(r,e&&(0,go.fileURLToPath)(new URL(\".\",e)),(0,go.fileURLToPath)(t))}function g5e(r,e,t,i){let n=`request is not a valid subpath for the \"${t?\"imports\":\"exports\"}\" resolution of ${(0,go.fileURLToPath)(e)}`;throw new wM(r,n,i&&(0,go.fileURLToPath)(i))}function LE(r,e,t,i,n){throw typeof e==\"object\"&&e!==null?e=RE(e,null,\"\"):e=`${e}`,new jle((0,go.fileURLToPath)(new URL(\".\",t)),r,e,i,n&&(0,go.fileURLToPath)(n))}var Wle=/(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\\\|\\/|$)/i,zle=/\\*/g;function f5e(r,e,t,i,n,s,o,a){if(e!==\"\"&&!s&&r[r.length-1]!==\"/\"&&LE(t,r,i,o,n),!gA(r,\"./\")){if(o&&!gA(r,\"../\")&&!gA(r,\"/\")){let g=!1;try{new URL(r),g=!0}catch{}if(!g)return s?yM(zle,r,()=>e):r+e}LE(t,r,i,o,n)}IM(Wle,NE(r,2))!==null&&LE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(\".\",i).pathname;if(gA(c,u)||LE(t,r,i,o,n),e===\"\")return l;if(IM(Wle,e)!==null){let g=s?Kle(t,\"*\",()=>e):t+e;g5e(g,i,o,n)}return s?new URL(yM(zle,l.href,()=>e)):new URL(e,l)}function h5e(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function kb(r,e,t,i,n,s,o,a){if(typeof e==\"string\")return f5e(e,t,i,r,n,s,o,a);if(Tle(e)){if(e.length===0)return null;let l;for(let c=0;c<e.length;c++){let u=e[c],g;try{g=kb(r,u,t,i,n,s,o,a)}catch(f){if(l=f,f.code===\"ERR_INVALID_PACKAGE_TARGET\")continue;throw f}if(g!==void 0){if(g===null){l=null;continue}return g}}if(l==null)return l;throw l}else if(typeof e==\"object\"&&e!==null){let l=EM(e);for(let c=0;c<l.length;c++){let u=l[c];if(h5e(u))throw new xb((0,go.fileURLToPath)(r),n,'\"exports\" cannot contain numeric property keys.')}for(let c=0;c<l.length;c++){let u=l[c];if(u===\"default\"||a.has(u)){let g=e[u],f=kb(r,g,t,i,n,s,o,a);if(f===void 0)continue;return f}}return}else if(e===null)return null;LE(i,e,r,o,n)}function p5e(r,e){let t=Sb(r,\"*\"),i=Sb(e,\"*\"),n=t===-1?r.length:t+1,s=i===-1?e.length:i+1;return n>s?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function Vle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r===\"#\"||gA(r,\"#/\")||FE(r,\"/\")){let o=\"is not a valid internal imports specifier name\";throw new wM(r,o,(0,go.fileURLToPath)(e))}let n,s=Jle(e,i);if(s.exists){n=(0,go.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Qp(o,r)&&!Ole(r,\"*\")){let a=kb(n,o[r],\"\",r,e,!1,!0,t);if(a!=null)return a}else{let a=\"\",l,c=EM(o);for(let u=0;u<c.length;u++){let g=c[u],f=Sb(g,\"*\");if(f!==-1&&gA(r,NE(g,0,f))){let h=NE(g,f+1);r.length>=g.length&&FE(r,h)&&p5e(a,g)===1&&Mle(g,\"*\")===f&&(a=g,l=NE(r,f,r.length-h.length))}}if(a){let u=o[a],g=kb(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}u5e(r,n,e)}var d5e=new Set([\"BUILTIN_NODE_RESOLUTION_FAILED\",\"MISSING_DEPENDENCY\",\"MISSING_PEER_DEPENDENCY\",\"QUALIFIED_PATH_RESOLUTION_FAILED\",\"UNDECLARED_DEPENDENCY\"]);function si(r,e,t={},i){i!=null||(i=d5e.has(r)?\"MODULE_NOT_FOUND\":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function fo(r){return K.normalize(K.fromPortablePath(r))}var Xle=J(\"module\");var C5e=new Set(Xle.Module.builtinModules||Object.keys(process.binding(\"natives\"))),Rb=r=>r.startsWith(\"node:\")||C5e.has(r);function QM(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\\\/]|\\\\\\\\|\\.{0,2}(?:\\/|$))((?:node:)?(?:@[^/]+\\/)?[^/]+)\\/*(.*|)$/,s=/^(\\/|\\.{1,2}(\\/|$))/,o=/\\/$/,a=/^\\.{0,2}\\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of[\"react-scripts\",\"gatsby\"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let Qe of Ae.keys()){if(Qe===null)throw new Error(\"Assertion failed: This reference shouldn't be null\");c.push({name:se,reference:Qe})}}let{ignorePattern:g,packageRegistry:f,packageLocatorsByLocations:h}=r;function p(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function C(se){var Ge,ie,Y,he,re,me;let Ae=(Y=(ie=(Ge=process.stderr)==null?void 0:Ge.hasColors)==null?void 0:ie.call(Ge))!=null?Y:process.stdout.isTTY,Qe=(tt,Rt)=>`\\x1B[${tt}m${Rt}\\x1B[0m`,fe=se.error;console.error(fe?Qe(\"31;1\",`\\u2716 ${(he=se.error)==null?void 0:he.message.replace(/\\n.*/s,\"\")}`):Qe(\"33;1\",\"\\u203C Resolution\")),se.args.length>0&&console.error();for(let tt of se.args)console.error(`  ${Qe(\"37;1\",\"In \\u2190\")} ${(0,BM.inspect)(tt,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(`  ${Qe(\"37;1\",\"Out \\u2192\")} ${(0,BM.inspect)(se.result,{colors:Ae,compact:!0})}`));let le=(me=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?me:[];if(le.length>0){console.error();for(let tt of le)console.error(`  ${Qe(\"38;5;244\",tt)}`)}console.error()}function w(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...Qe)=>{let fe=p(se,Qe);try{return fe.result=Ae(...Qe)}catch(le){throw fe.error=le}finally{C(fe)}};if(i>=1)return(...Qe)=>{try{return Ae(...Qe)}catch(fe){let le=p(se,Qe);throw le.error=fe,C(le),fe}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw si(\"INTERNAL\",\"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)\");return Ae}function v(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let D=new Set([\"default\",\"node\",\"require\"]);function L(se,Ae=D){let Qe=_(x.join(se,\"internal.js\"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(Qe===null)throw si(\"INTERNAL\",`The locator that owns the \"${se}\" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:fe}=B(Qe),le=x.join(fe,xt.manifest);if(!e.fakeFs.existsSync(le))return null;let Ge=JSON.parse(e.fakeFs.readFileSync(le,\"utf8\")),ie=x.contains(fe,se);if(ie===null)throw si(\"INTERNAL\",\"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)\");a.test(ie)||(ie=`./${ie}`);let Y;try{Y=Lle(Ge,x.normalize(ie),{conditions:Ae,unsafe:!0})}catch(he){throw si(\"EXPORTS_RESOLUTION_FAILED\",he.message,{unqualifiedPath:fo(se),locator:Qe,pkgJson:Ge,subpath:fo(ie),conditions:Ae},\"ERR_PACKAGE_PATH_NOT_EXPORTED\")}return typeof Y==\"string\"?x.join(fe,Y):null}function H(se,Ae,{extensions:Qe}){let fe;try{Ae.push(se),fe=e.fakeFs.statSync(se)}catch{}if(fe&&!fe.isDirectory())return e.fakeFs.realpathSync(se);if(fe&&fe.isDirectory()){let le;try{le=JSON.parse(e.fakeFs.readFileSync(x.join(se,xt.manifest),\"utf8\"))}catch{}let Ge;if(le&&le.main&&(Ge=x.resolve(se,le.main)),Ge&&Ge!==se){let ie=H(Ge,Ae,{extensions:Qe});if(ie!==null)return ie}}for(let le=0,Ge=Qe.length;le<Ge;le++){let ie=`${se}${Qe[le]}`;if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}if(fe&&fe.isDirectory())for(let le=0,Ge=Qe.length;le<Ge;le++){let ie=x.format({dir:se,name:\"index\",ext:Qe[le]});if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}return null}function j(se){let Ae=new TE.Module(se,null);return Ae.filename=se,Ae.paths=TE.Module._nodeModulePaths(se),Ae}function $(se,Ae){return Ae.endsWith(\"/\")&&(Ae=x.join(Ae,\"internal.js\")),TE.Module._resolveFilename(K.fromPortablePath(se),j(K.fromPortablePath(Ae)),!1,{plugnplay:!1})}function V(se){if(g===null)return!1;let Ae=x.contains(r.basePath,se);return Ae===null?!1:!!g.test(Ae.replace(/\\/$/,\"\"))}let W={std:3,resolveVirtual:1,getAllLocators:1},Z=l;function A({name:se,reference:Ae}){let Qe=f.get(se);if(!Qe)return null;let fe=Qe.get(Ae);return fe||null}function ae({name:se,reference:Ae}){let Qe=[];for(let[fe,le]of f)if(fe!==null)for(let[Ge,ie]of le)Ge===null||ie.packageDependencies.get(se)!==Ae||fe===se&&Ge===Ae||Qe.push({name:fe,reference:Ge});return Qe}function ge(se,Ae){let Qe=new Map,fe=new Set,le=ie=>{let Y=JSON.stringify(ie.name);if(fe.has(Y))return;fe.add(Y);let he=ae(ie);for(let re of he)if(B(re).packagePeers.has(se))le(re);else{let tt=Qe.get(re.name);typeof tt>\"u\"&&Qe.set(re.name,tt=new Set),tt.add(re.reference)}};le(Ae);let Ge=[];for(let ie of[...Qe.keys()].sort())for(let Y of[...Qe.get(ie)].sort())Ge.push({name:ie,reference:Y});return Ge}function _(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:Qe=!1}={}){if(V(se)&&!Ae)return null;let fe=x.relative(r.basePath,se);fe.match(s)||(fe=`./${fe}`),fe.endsWith(\"/\")||(fe=`${fe}/`);do{let le=h.get(fe);if(typeof le>\"u\"||le.discardFromLookup&&!Qe){fe=fe.substring(0,fe.lastIndexOf(\"/\",fe.length-2)+1);continue}return le.locator}while(fe!==\"\");return null}function T(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),\"utf8\")}catch(Ae){if(Ae.code===\"ENOENT\")return;throw Ae}}function N(se,Ae,{considerBuiltins:Qe=!0}={}){if(se.startsWith(\"#\"))throw new Error(\"resolveToUnqualified can not handle private import mappings\");if(se===\"pnpapi\")return K.toPortablePath(e.pnpapiResolution);if(Qe&&Rb(se))return null;let fe=fo(se),le=Ae&&fo(Ae);if(Ae&&V(Ae)&&(!x.isAbsolute(se)||_(se)===null)){let Y=$(se,Ae);if(Y===!1)throw si(\"BUILTIN_NODE_RESOLUTION_FAILED\",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp)\n\nRequire request: \"${fe}\"\nRequired by: ${le}\n`,{request:fe,issuer:le});return K.toPortablePath(Y)}let Ge,ie=se.match(n);if(ie){if(!Ae)throw si(\"API_ERROR\",\"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute\",{request:fe,issuer:le});let[,Y,he]=ie,re=_(Ae);if(!re){let pr=$(se,Ae);if(pr===!1)throw si(\"BUILTIN_NODE_RESOLUTION_FAILED\",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).\n\nRequire path: \"${fe}\"\nRequired by: ${le}\n`,{request:fe,issuer:le});return K.toPortablePath(pr)}let tt=B(re).packageDependencies.get(Y),Rt=null;if(tt==null&&re.name!==null){let pr=r.fallbackExclusionList.get(re.name);if(!pr||!pr.has(re.reference)){for(let ai=0,Os=c.length;ai<Os;++ai){let Bi=B(c[ai]).packageDependencies.get(Y);if(Bi!=null){t?Rt=Bi:tt=Bi;break}}if(r.enableTopLevelFallback&&tt==null&&Rt===null){let ai=r.fallbackPool.get(Y);ai!=null&&(Rt=ai)}}}let It=null;if(tt===null)if(v(re))It=si(\"MISSING_PEER_DEPENDENCY\",`Your application tried to access ${Y} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.\n\nRequired package: ${Y}${Y!==fe?` (via \"${fe}\")`:\"\"}\nRequired by: ${le}\n`,{request:fe,issuer:le,dependencyName:Y});else{let pr=ge(Y,re);pr.every(di=>v(di))?It=si(\"MISSING_PEER_DEPENDENCY\",`${re.name} tried to access ${Y} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.\n\nRequired package: ${Y}${Y!==fe?` (via \"${fe}\")`:\"\"}\nRequired by: ${re.name}@${re.reference} (via ${le})\n${pr.map(di=>`Ancestor breaking the chain: ${di.name}@${di.reference}\n`).join(\"\")}\n`,{request:fe,issuer:le,issuerLocator:Object.assign({},re),dependencyName:Y,brokenAncestors:pr}):It=si(\"MISSING_PEER_DEPENDENCY\",`${re.name} tried to access ${Y} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.\n\nRequired package: ${Y}${Y!==fe?` (via \"${fe}\")`:\"\"}\nRequired by: ${re.name}@${re.reference} (via ${le})\n\n${pr.map(di=>`Ancestor breaking the chain: ${di.name}@${di.reference}\n`).join(\"\")}\n`,{request:fe,issuer:le,issuerLocator:Object.assign({},re),dependencyName:Y,brokenAncestors:pr})}else tt===void 0&&(!Qe&&Rb(se)?v(re)?It=si(\"UNDECLARED_DEPENDENCY\",`Your application tried to access ${Y}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Y} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.\n\nRequired package: ${Y}${Y!==fe?` (via \"${fe}\")`:\"\"}\nRequired by: ${le}\n`,{request:fe,issuer:le,dependencyName:Y}):It=si(\"UNDECLARED_DEPENDENCY\",`${re.name} tried to access ${Y}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Y} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound.\n\nRequired package: ${Y}${Y!==fe?` (via \"${fe}\")`:\"\"}\nRequired by: ${le}\n`,{request:fe,issuer:le,issuerLocator:Object.assign({},re),dependencyName:Y}):v(re)?It=si(\"UNDECLARED_DEPENDENCY\",`Your application tried to access ${Y}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${Y}${Y!==fe?` (via \"${fe}\")`:\"\"}\nRequired by: ${le}\n`,{request:fe,issuer:le,dependencyName:Y}):It=si(\"UNDECLARED_DEPENDENCY\",`${re.name} tried to access ${Y}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${Y}${Y!==fe?` (via \"${fe}\")`:\"\"}\nRequired by: ${re.name}@${re.reference} (via ${le})\n`,{request:fe,issuer:le,issuerLocator:Object.assign({},re),dependencyName:Y}));if(tt==null){if(Rt===null||It===null)throw It||new Error(\"Assertion failed: Expected an error to have been set\");tt=Rt;let pr=It.message.replace(/\\n.*/g,\"\");It.message=pr,!u.has(pr)&&i!==0&&(u.add(pr),process.emitWarning(It))}let Kr=Array.isArray(tt)?{name:tt[0],reference:tt[1]}:{name:Y,reference:tt},oi=B(Kr);if(!oi.packageLocation)throw si(\"MISSING_DEPENDENCY\",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.\n\nRequired package: ${Kr.name}@${Kr.reference}${Kr.name!==fe?` (via \"${fe}\")`:\"\"}\nRequired by: ${re.name}@${re.reference} (via ${le})\n`,{request:fe,issuer:le,dependencyLocator:Object.assign({},Kr)});let pi=oi.packageLocation;he?Ge=x.join(pi,he):Ge=pi}else if(x.isAbsolute(se))Ge=x.normalize(se);else{if(!Ae)throw si(\"API_ERROR\",\"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute\",{request:fe,issuer:le});let Y=x.resolve(Ae);Ae.match(o)?Ge=x.normalize(x.join(Y,se)):Ge=x.normalize(x.join(x.dirname(Y),se))}return x.normalize(Ge)}function ue(se,Ae,Qe=D){if(s.test(se))return Ae;let fe=L(Ae,Qe);return fe?x.normalize(fe):Ae}function we(se,{extensions:Ae=Object.keys(TE.Module._extensions)}={}){var le,Ge;let Qe=[],fe=H(se,Qe,{extensions:Ae});if(fe)return x.normalize(fe);{let ie=fo(se),Y=_(se);if(Y){let{packageLocation:he}=B(Y),re=!0;try{e.fakeFs.accessSync(he)}catch(me){if((me==null?void 0:me.code)===\"ENOENT\")re=!1;else{let tt=((Ge=(le=me==null?void 0:me.message)!=null?le:me)!=null?Ge:\"empty exception thrown\").replace(/^[A-Z]/,Rt=>Rt.toLowerCase());throw si(\"QUALIFIED_PATH_RESOLUTION_FAILED\",`Required package exists but could not be accessed (${tt}).\n\nMissing package: ${Y.name}@${Y.reference}\nExpected package location: ${fo(he)}\n`,{unqualifiedPath:ie,extensions:Ae})}}if(!re){let me=he.includes(\"/unplugged/\")?\"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).\":\"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.\";throw si(\"QUALIFIED_PATH_RESOLUTION_FAILED\",`${me}\n\nMissing package: ${Y.name}@${Y.reference}\nExpected package location: ${fo(he)}\n`,{unqualifiedPath:ie,extensions:Ae})}}throw si(\"QUALIFIED_PATH_RESOLUTION_FAILED\",`Qualified path resolution failed: we looked for the following paths, but none could be accessed.\n\nSource path: ${ie}\n${Qe.map(he=>`Not found: ${fo(he)}\n`).join(\"\")}`,{unqualifiedPath:ie,extensions:Ae})}}function Le(se,Ae,Qe){var le;if(!Ae)throw new Error(\"Assertion failed: An issuer is required to resolve private import mappings\");let fe=Vle({name:se,base:(0,Fb.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(le=Qe.conditions)!=null?le:D,readFileSyncFn:T});if(fe instanceof URL)return we(K.toPortablePath((0,Fb.fileURLToPath)(fe)),{extensions:Qe.extensions});if(fe.startsWith(\"#\"))throw new Error(\"Mapping from one private import to another isn't allowed\");return Pe(fe,Ae,Qe)}function Pe(se,Ae,Qe={}){try{if(se.startsWith(\"#\"))return Le(se,Ae,Qe);let{considerBuiltins:fe,extensions:le,conditions:Ge}=Qe,ie=N(se,Ae,{considerBuiltins:fe});if(se===\"pnpapi\")return ie;if(ie===null)return null;let Y=()=>Ae!==null?V(Ae):!1,he=(!fe||!Rb(se))&&!Y()?ue(se,ie,Ge):ie;return we(he,{extensions:le})}catch(fe){throw Object.prototype.hasOwnProperty.call(fe,\"pnpCode\")&&Object.assign(fe.data,{request:fo(se),issuer:Ae&&fo(Ae)}),fe}}function Te(se){let Ae=x.normalize(se),Qe=Nr.resolveVirtual(Ae);return Qe!==Ae?Qe:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,Qe]of f)for(let fe of Qe.keys())Ae!==null&&fe!==null&&se.push({name:Ae,reference:fe});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let Qe=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:Qe}},findPackageLocator:se=>_(K.toPortablePath(se)),resolveToUnqualified:w(\"resolveToUnqualified\",(se,Ae,Qe)=>{let fe=Ae!==null?K.toPortablePath(Ae):null,le=N(K.toPortablePath(se),fe,Qe);return le===null?null:K.fromPortablePath(le)}),resolveUnqualified:w(\"resolveUnqualified\",(se,Ae)=>K.fromPortablePath(we(K.toPortablePath(se),Ae))),resolveRequest:w(\"resolveRequest\",(se,Ae,Qe)=>{let fe=Ae!==null?K.toPortablePath(Ae):null,le=Pe(K.toPortablePath(se),fe,Qe);return le===null?null:K.fromPortablePath(le)}),resolveVirtual:w(\"resolveVirtual\",se=>{let Ae=Te(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var CBt=(0,Zle.promisify)(_le.readFile);var $le=(r,e,t)=>{let i=kE(r),n=mM(i,{basePath:e}),s=K.join(e,xt.pnpCjs);return QM(n,{fakeFs:t,pnpapiResolution:s})};var SM=ne(tce());var DM=ne(Xe());var ho={};ht(ho,{checkAndReportManifestCompatibility:()=>ice,checkManifestCompatibility:()=>rce,extractBuildScripts:()=>Nb,getExtractHint:()=>vM,hasBindingGyp:()=>xM});function rce(r){return P.isPackageCompatible(r,io.getArchitectureSet())}function ice(r,e,{configuration:t,report:i}){return rce(r)?!0:(i==null||i.reportWarningOnce(76,`${P.prettyLocator(t,r)} The ${io.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function Nb(r,e,t,{configuration:i,report:n}){let s=[];for(let a of[\"preinstall\",\"install\",\"postinstall\"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has(\"install\")&&e.misc.hasBindingGyp&&s.push([1,\"node-gyp rebuild\"]),s.length===0?[]:r.linkType!==\"HARD\"?(n==null||n.reportWarningOnce(6,`${P.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${P.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get(\"enableScripts\")&&!t.built?(n==null||n.reportWarningOnce(4,`${P.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):ice(r,\"build\",{configuration:i,report:n})?s:[]}var E5e=new Set([\".exe\",\".h\",\".hh\",\".hpp\",\".c\",\".cc\",\".cpp\",\".java\",\".jar\",\".node\"]);function vM(r){return r.packageFs.getExtractHint({relevantExtensions:E5e})}function xM(r){let e=x.join(r.prefixPath,\"binding.gyp\");return r.packageFs.existsSync(e)}var ME={};ht(ME,{getUnpluggedPath:()=>OE});function OE(r,{configuration:e}){return x.resolve(e.get(\"pnpUnpluggedFolder\"),P.slugifyLocator(r))}var I5e=new Set([P.makeIdent(null,\"nan\").identHash,P.makeIdent(null,\"node-gyp\").identHash,P.makeIdent(null,\"node-pre-gyp\").identHash,P.makeIdent(null,\"node-addon-api\").identHash,P.makeIdent(null,\"fsevents\").identHash,P.makeIdent(null,\"open\").identHash,P.makeIdent(null,\"opn\").identHash]),kl=class{constructor(){this.mode=\"strict\";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error(\"Assertion failed: Expected the PnP linker to be enabled\");let i=Rl(t.project).cjs;if(!M.existsSync(i))throw new DM.UsageError(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=Ee.getFactoryWithDefault(this.pnpCache,i,()=>Ee.dynamicRequire(i,{cachingStrategy:Ee.CachingStrategy.FsTime})),s={name:P.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new DM.UsageError(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=Rl(t.project).cjs;if(!M.existsSync(i))return null;let s=Ee.getFactoryWithDefault(this.pnpCache,i,()=>Ee.dynamicRequire(i,{cachingStrategy:Ee.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?P.makeLocator(P.parseIdent(s.name),s.reference):null}makeInstaller(e){return new ag(e)}isEnabled(e){return!(e.project.configuration.get(\"nodeLinker\")!==\"pnp\"||e.project.configuration.get(\"pnpMode\")!==this.mode)}},ag=class{constructor(e){this.opts=e;this.mode=\"strict\";this.asyncActions=new Ee.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:\"PnpInstaller\",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=P.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=P.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!==\"SOFT\",g,f;if(c||u){let D=a?P.devirtualizeLocator(e):e;g=this.customData.store.get(D.locatorHash),typeof g>\"u\"&&(g=await y5e(t),e.linkType===\"HARD\"&&this.customData.store.set(D.locatorHash,g)),g.manifest.type===\"module\"&&(this.isESMLoaderRequired=!0),f=this.opts.project.getDependencyMeta(D,e.version)}let h=c?Nb(e,g,f,{configuration:this.opts.project.configuration,report:this.opts.report}):[],p=u?await this.unplugPackageIfNeeded(e,g,t,f,i):t.packageFs;if(x.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let C=x.resolve(p.getRealPath(),t.prefixPath),w=PM(this.opts.project.cwd,C),B=new Map,v=new Set;if(a){for(let D of e.peerDependencies.values())B.set(P.stringifyIdent(D),null),v.add(P.stringifyIdent(D));if(!o){let D=P.devirtualizeLocator(e);this.virtualTemplates.set(D.locatorHash,{location:PM(this.opts.project.cwd,Nr.resolveVirtual(C)),locator:D})}}return Ee.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:w,packageDependencies:B,packagePeers:v,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:C,buildDirective:h.length>0?h:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(P.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get(\"pnpMode\")!==this.mode)return;let e=Rl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${ee.pretty(this.opts.project.configuration,xt.pnpJs,ee.Type.PATH)} file. You might need to manually update existing references to reference the new ${ee.pretty(this.opts.project.configuration,xt.pnpCjs,ee.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${ee.pretty(this.opts.project.configuration,\"yarn sdks\",ee.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get(\"nodeLinker\")!==\"pnp\"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get(\"pnpDataPath\")),await M.removePromise(e.esmLoader);return}for(let{locator:u,location:g}of this.virtualTemplates.values())Ee.getMapWithDefault(this.packageRegistry,P.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:\"SOFT\",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get(\"pnpFallbackMode\"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:P.stringifyIdent(u),reference:u.reference})),n=t!==\"none\",s=[],o=new Map,a=Ee.buildIgnorePattern([\".yarn/sdks/**\",...this.opts.project.configuration.get(\"pnpIgnorePatterns\")]),l=this.packageRegistry,c=this.opts.project.configuration.get(\"pnpShebang\");if(t===\"dependencies-only\")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:P.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has(\"pnpEnableEsmLoader\"))return this.opts.project.configuration.get(\"pnpEnableEsmLoader\");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type===\"module\")return!0;return!1}async finalizeInstallWithPnp(e){let t=Rl(this.opts.project),i=this.opts.project.configuration.get(\"pnpDataPath\"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,\"One or more node_modules have been detected and will be removed. This operation may take some time.\");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get(\"pnpEnableInlining\")){let o=Fle(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=x.relative(x.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=Nle({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,\"ESM support for PnP uses the experimental loader API and is therefore experimental\"),await M.changeFilePromise(t.esmLoader,(0,SM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get(\"pnpUnpluggedFolder\");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=x.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=x.join(n.cwd,\"node_modules\");if(i&&i.test(x.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===\".bin\"||!l.name.startsWith(\".\"));if(a.length===o.length)t.push(s);else for(let l of a)t.push(x.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<\"u\"?i.unplugged:I5e.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(Nb(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=OE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Qo(n,{baseFs:t.packageFs,pathUtils:x}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=x.join(n,t.prefixPath,\".ready\");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,ke.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,\"\"))})),new jt(n))}getPackageInformation(e){let t=P.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${P.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${P.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=Ee.getMapWithDefault(this.packageRegistry,\"@@disk\"),i=PM(this.opts.project.cwd,e);return Ee.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:\"SOFT\",discardFromLookup:!1}))}};function PM(r,e){let t=x.relative(r,e);return t.match(/^\\.{0,2}\\//)||(t=`./${t}`),t.replace(/\\/?$/,\"/\")}async function y5e(r){var i;let e=(i=await nt.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new nt,t=new Set([\"preinstall\",\"install\",\"postinstall\"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:vM(r),hasBindingGyp:xM(r)}}}var Rs=ne(Xe()),nce=ne(wn());var Ag=class extends ve{constructor(){super(...arguments);this.all=Rs.Option.Boolean(\"-A,--all\",!1,{description:\"Unplug direct dependencies from the entire project\"});this.recursive=Rs.Option.Boolean(\"-R,--recursive\",!1,{description:\"Unplug both direct and transitive dependencies\"});this.json=Rs.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.patterns=Rs.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);if(t.get(\"nodeLinker\")!==\"pnp\")throw new Rs.UsageError(\"This command can only be used if the `nodeLinker` option is set to `pnp`\");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(h=>{let p=P.parseDescriptor(h),C=p.range!==\"unknown\"?p:P.makeDescriptor(p,\"*\");if(!vt.validRange(C.range))throw new Rs.UsageError(`The range of the descriptor patterns must be a valid semver range (${P.prettyDescriptor(t,C)})`);return w=>{let B=P.stringifyIdent(w);return!nce.default.isMatch(B,P.stringifyIdent(C))||w.version&&!vt.satisfiesWithPrereleases(w.version,C.range)?!1:(o.delete(h),!0)}}),l=()=>{let h=[];for(let p of i.storedPackages.values())!i.tryWorkspaceByLocator(p)&&!P.isVirtualLocator(p)&&a.some(C=>C(p))&&h.push(p);return h},c=h=>{let p=new Set,C=[],w=(B,v)=>{if(!p.has(B.locatorHash)&&(p.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(D=>D(B))&&C.push(B),!(v>0&&!this.recursive)))for(let D of B.dependencies.values()){let L=i.storedResolutions.get(D.descriptorHash);if(!L)throw new Error(\"Assertion failed: The resolution should have been registered\");let H=i.storedPackages.get(L);if(!H)throw new Error(\"Assertion failed: The package should have been registered\");w(H,v+1)}};for(let B of h){let v=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!v)throw new Error(\"Assertion failed: The package should have been registered\");w(v,0)}return C},u,g;if(this.all&&this.recursive?(u=l(),g=\"the project\"):this.all?(u=c(i.workspaces),g=\"any workspace\"):(u=c([n]),g=\"this workspace\"),o.size>1)throw new Rs.UsageError(`Patterns ${ee.prettyList(t,o,ee.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new Rs.UsageError(`Pattern ${ee.prettyList(t,o,ee.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=Ee.sortMap(u,h=>P.stringifyLocator(h)),(await Ke.start({configuration:t,stdout:this.context.stdout,json:this.json},async h=>{var p;for(let C of u){let w=(p=C.version)!=null?p:\"unknown\",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(P.makeDescriptor(C,w));B.unplugged=!0,h.reportInfo(0,`Will unpack ${P.prettyLocator(t,C)} to ${ee.pretty(t,OE(C,{configuration:t}),ee.Type.PATH)}`),h.reportJson({locator:P.stringifyLocator(C),version:w})}await i.topLevelWorkspace.persistManifest(),h.reportSeparator(),await i.install({cache:s,report:h})})).exitCode()}};Ag.paths=[[\"unplug\"]],Ag.usage=Rs.Command.Usage({description:\"force the unpacking of a list of packages\",details:\"\\n      This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\\n\\n      A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\\n\\n      Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\\n\\n      By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\\n\\n      This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\\n    \",examples:[[\"Unplug the lodash dependency from the active workspace\",\"yarn unplug lodash\"],[\"Unplug all instances of lodash referenced by any workspace\",\"yarn unplug lodash -A\"],[\"Unplug all instances of lodash referenced by the active workspace and its dependencies\",\"yarn unplug lodash -R\"],[\"Unplug all instances of lodash, anywhere\",\"yarn unplug lodash -AR\"],[\"Unplug one specific version of lodash\",\"yarn unplug lodash@1.2.3\"],[\"Unplug all packages with the `@babel` scope\",\"yarn unplug '@babel/*'\"],[\"Unplug all packages (only for testing, not recommended)\",\"yarn unplug -R '*'\"]]});var Rl=r=>({cjs:x.join(r.cwd,xt.pnpCjs),cjsLegacy:x.join(r.cwd,xt.pnpJs),esmLoader:x.join(r.cwd,\".pnp.loader.mjs\")}),ace=r=>/\\s/.test(r)?JSON.stringify(r):r;async function w5e(r,e,t){let i=Rl(r),n=`--require ${ace(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,oce.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(\" \")&&sce.default.lt(process.versions.node,\"12.0.0\"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||\"\",o=/\\s*--require\\s+\\S*\\.pnp\\.c?js\\s*/g,a=/\\s*--experimental-loader\\s+\\S*\\.pnp\\.loader\\.mjs\\s*/;s=s.replace(o,\" \").replace(a,\" \").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function B5e(r,e){let t=Rl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get(\"pnpDataPath\")),e(r.configuration.get(\"pnpUnpluggedFolder\"))}var Q5e={hooks:{populateYarnPaths:B5e,setupScriptEnvironment:w5e},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: \"pnp\", \"node-modules\"',type:\"STRING\",default:\"pnp\"},pnpMode:{description:\"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.\",type:\"STRING\",default:\"strict\"},pnpShebang:{description:\"String to prepend to the generated PnP script\",type:\"STRING\",default:\"#!/usr/bin/env node\"},pnpIgnorePatterns:{description:\"Array of glob patterns; files matching them will use the classic resolution\",type:\"STRING\",default:[],isArray:!0},pnpEnableEsmLoader:{description:\"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.\",type:\"BOOLEAN\",default:!1},pnpEnableInlining:{description:\"If true, the PnP data will be inlined along with the generated loader\",type:\"BOOLEAN\",default:!0},pnpFallbackMode:{description:\"If true, the generated PnP loader will follow the top-level fallback rule\",type:\"STRING\",default:\"dependencies-only\"},pnpUnpluggedFolder:{description:\"Folder where the unplugged packages must be stored\",type:\"ABSOLUTE_PATH\",default:\"./.yarn/unplugged\"},pnpDataPath:{description:\"Path of the file where the PnP data (used by the loader) must be written\",type:\"ABSOLUTE_PATH\",default:\"./.pnp.data.json\"}},linkers:[kl],commands:[Ag]},b5e=Q5e;var pce=ne(gce()),TM=ne(Xe()),KM=ne(J(\"crypto\")),dce=ne(J(\"fs\")),Cce=1,Rr=\"node_modules\",Lb=\".bin\",mce=\".yarn-state.yml\",G5e=1e3;var Tb=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error(\"Assertion failed: Expected the node-modules linker to be enabled\");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await Ee.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await MM(t.project,{unrollAliases:!0}));if(n===null)throw new TM.UsageError(\"Couldn't find the node_modules state file - running an install might help (findPackageLocation)\");let s=n.locatorMap.get(P.stringifyLocator(e));if(!s){let l=new TM.UsageError(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code=\"LOCATOR_NOT_INSTALLED\",l}let o=s.locations.sort((l,c)=>l.split(x.sep).length-c.split(x.sep).length),a=x.join(t.project.configuration.startingCwd,Rr);return o.find(l=>x.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await Ee.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await MM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=Ob(x.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return P.parseLocator(a)}makeInstaller(e){return new OM(e)}isEnabled(e){return e.project.configuration.get(\"nodeLinker\")===\"node-modules\"}},OM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:\"NodeModulesInstaller\",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=x.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>\"u\"&&(n=await Y5e(e,t),e.linkType===\"HARD\"&&this.customData.store.set(e.locatorHash,n)),!P.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(P.stringifyIdent(e))||s.set(P.stringifyIdent(e),e.reference);let a=e;if(P.isVirtualLocator(e)){a=P.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(P.stringifyIdent(g),null),o.add(P.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf(\"/\")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>\"u\")throw new Error(\"Assertion failed: Expected information object to have been registered\");for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error(\"External dependencies haven't been implemented for the node-modules linker\")}async finalizeInstall(){if(this.opts.project.configuration.get(\"nodeLinker\")!==\"node-modules\")return;let e=new Nr({baseFs:new On({libzip:await nn(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await MM(this.opts.project),i=this.opts.project.configuration.get(\"nmMode\");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(f=>{var p,C;let h=this.opts.project.configuration.get(\"nmHoistingLimits\");try{h=Ee.validateEnum(xE,(C=(p=f.manifest.installConfig)==null?void 0:p.hoistingLimits)!=null?C:h)}catch{let B=P.prettyWorkspace(this.opts.project.configuration,f);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(xE).join(\", \")}, using default: \"${h}\"`)}return[f.relativeCwd,h]})),s=new Map(this.opts.project.workspaces.map(f=>{var p,C;let h=this.opts.project.configuration.get(\"nmSelfReferences\");return h=(C=(p=f.manifest.installConfig)==null?void 0:p.selfReferences)!=null?C:h,[f.relativeCwd,h]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(f,h)=>Array.isArray(h)?{name:h[0],reference:h[1]}:{name:f,reference:h},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(f=>{let h=f.anchoredLocator;return{name:P.stringifyIdent(f.locator),reference:h.reference}}),getPackageInformation:f=>{let h=f.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:P.makeLocator(P.parseIdent(f.name),f.reference),p=this.localStore.get(h.locatorHash);if(typeof p>\"u\")throw new Error(\"Assertion failed: Expected the package reference to have been registered\");return p.pnpNode},findPackageLocator:f=>{let h=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(f));if(h!==null){let p=h.anchoredLocator;return{name:P.stringifyIdent(p),reference:p.reference}}throw new Error(\"Assertion failed: Unimplemented\")},resolveToUnqualified:()=>{throw new Error(\"Assertion failed: Unimplemented\")},resolveUnqualified:()=>{throw new Error(\"Assertion failed: Unimplemented\")},resolveRequest:()=>{throw new Error(\"Assertion failed: Unimplemented\")},resolveVirtual:f=>K.fromPortablePath(Nr.resolveVirtual(K.toPortablePath(f)))},{tree:a,errors:l,preserveSymlinksRequired:c}=PE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:f,text:h}of l)this.opts.report.reportError(f,h);return}let u=dM(a);await V5e(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async f=>{let h=P.parseLocator(f),p=this.localStore.get(h.locatorHash);if(typeof p>\"u\")throw new Error(\"Assertion failed: Expected the slot to exist\");return p.customPackageData.manifest}});let g=[];for(let[f,h]of u.entries()){if(wce(f))continue;let p=P.parseLocator(f),C=this.localStore.get(p.locatorHash);if(typeof C>\"u\")throw new Error(\"Assertion failed: Expected the slot to exist\");if(this.opts.project.tryWorkspaceByLocator(C.pkg))continue;let w=ho.extractBuildScripts(C.pkg,C.customPackageData,C.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});w.length!==0&&g.push({buildLocations:h.locations,locatorHash:p.locatorHash,buildDirective:w})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${ee.pretty(this.opts.project.configuration,\"--preserve-symlinks\",ee.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function Y5e(r,e){var n;let t=(n=await nt.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new nt,i=new Set([\"preinstall\",\"install\",\"postinstall\"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:ho.getExtractHint(e),hasBindingGyp:ho.hasBindingGyp(e)}}}async function j5e(r,e,t,i,{installChangedByUser:n}){let s=\"\";s+=`# Warning: This file is automatically generated. Removing it is fine, but will\n`,s+=`# cause your node_modules installation to become invalidated.\n`,s+=`\n`,s+=`__metadata:\n`,s+=`  version: ${Cce}\n`,s+=`  nmMode: ${i.value}\n`;let o=Array.from(e.keys()).sort(),a=P.stringifyLocator(r.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=`\n`,s+=`${JSON.stringify(u)}:\n`,s+=`  locations:\n`;for(let f of g.locations){let h=x.contains(r.cwd,f);if(h===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=`    - ${JSON.stringify(h)}\n`}if(g.aliases.length>0){s+=`  aliases:\n`;for(let f of g.aliases)s+=`    - ${JSON.stringify(f)}\n`}if(u===a&&t.size>0){s+=`  bin:\n`;for(let[f,h]of t){let p=x.contains(r.cwd,f);if(p===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=`    ${JSON.stringify(p)}:\n`;for(let[C,w]of h){let B=x.relative(x.join(f,Rr),w);s+=`      ${JSON.stringify(C)}: ${JSON.stringify(B)}\n`}}}}let l=r.cwd,c=x.join(l,Rr,mce);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function MM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=x.join(t,Rr,mce),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=Qi(await M.readFilePromise(i,\"utf8\"));if(s.__metadata.version>Cce)return null;let o=s.__metadata.nmMode||\"classic\",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(h=>x.join(t,h)),f=u.bin;if(f)for(let[h,p]of Object.entries(f)){let C=x.join(t,K.toPortablePath(h)),w=Ee.getMapWithDefault(l,C);for(let[B,v]of Object.entries(p))w.set(Gr(B),K.toPortablePath([C,Rr,v].join(x.sep)))}if(a.set(c,{target:ke.dot,linkType:\"HARD\",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let h of u.aliases){let{scope:p,name:C}=P.parseLocator(c),w=P.makeLocator(P.makeIdent(p,C),h),B=P.stringifyLocator(w);a.set(B,{target:ke.dot,linkType:\"HARD\",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Ece(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var Sp=async(r,e)=>{if(r.split(x.sep).indexOf(Rr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=x.join(r,Gr(i.name));i.isDirectory()?(i.name!==Rr||e&&e.innerLoop)&&await Sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!==\"ENOENT\"&&t.code!==\"ENOTEMPTY\")throw t}},fce=4,Ob=(r,{skipPrefix:e})=>{let t=x.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(x.sep).filter(l=>l!==\"\"),n=i.indexOf(Rr),s=i.slice(0,n).join(x.sep),o=x.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Ece=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:\"HARD\"});for(let[n,s]of r.entries()){if(s.linkType===\"SOFT\"&&x.contains(e,s.target)!==null){let a=Ee.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=Ob(o,{skipPrefix:e}),c=Ee.getFactoryWithDefault(t,a,i);for(let u=0;u<l.length;++u){let g=l[u];if(g!==\".\"){let f=Ee.getFactoryWithDefault(c.children,g,i);c.children.set(g,f),c=f}u===l.length-1&&(c.locator=n,c.linkType=s.linkType)}}}return t},UM=async(r,e)=>{let t;try{process.platform===\"win32\"&&(t=await M.lstatPromise(r))}catch{}process.platform==\"win32\"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,\"junction\"):await M.symlinkPromise(x.relative(x.dirname(e),r),e)};async function Ice(r,e,t){let i=x.join(r,Gr(`${KM.default.randomBytes(16).toString(\"hex\")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function q5e({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===yce.FILE){if(s.value===\"hardlinks-global\"&&i&&t.digest){let a=x.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs<t.mtimeMs-G5e))if(await gi.checksumFile(a,{baseFs:M,algorithm:\"sha1\"})!==t.digest){let g=x.join(i,Gr(`${KM.default.randomBytes(16).toString(\"hex\")}.tmp`));await M.renamePromise(a,g);let f=await n.readFilePromise(r);await M.writeFilePromise(g,f);try{await M.linkPromise(g,a),t.mtimeMs=new Date().getTime(),await M.unlinkPromise(g)}catch{}}else t.mtimeMs||(t.mtimeMs=Math.ceil(c.mtimeMs));await M.linkPromise(a,e),l=!0}catch{l=!1}if(!l){let c=await n.readFilePromise(r);await Ice(i,a,c),t.mtimeMs=new Date().getTime();try{await M.linkPromise(a,e)}catch(u){u&&u.code&&u.code==\"EXDEV\"&&(s.value=\"hardlinks-local\",await n.copyFilePromise(r,e))}}}else await n.copyFilePromise(r,e);let o=t.mode&511;o!==420&&await M.chmodPromise(e,o)}}var yce=(i=>(i.FILE=\"file\",i.DIRECTORY=\"directory\",i.SYMLINK=\"symlink\",i))(yce||{}),J5e=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=ke.dot)=>{let u=x.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),f=new Map;for(let h of g){let p=x.join(c,h.name),C,w=x.join(u,h.name);if(h.isFile()){if(C={kind:\"file\",mode:(await t.lstatPromise(w)).mode},n.value===\"hardlinks-global\"){let B=await gi.checksumFile(w,{baseFs:t,algorithm:\"sha1\"});C.digest=B}}else if(h.isDirectory())C={kind:\"directory\"};else if(h.isSymbolicLink())C={kind:\"symlink\",symlinkTo:await t.readlinkPromise(w)};else throw new Error(`Unsupported file type (file: ${w}, mode: 0o${await t.statSync(w).mode.toString(8).padStart(6,\"0\")})`);if(f.set(p,C),h.isDirectory()&&p!==Rr){let B=await o(p);for(let[v,D]of B)f.set(v,D)}}return f},a;if(n.value===\"hardlinks-global\"&&i&&s){let c=x.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,\"utf8\"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=x.join(e,c),f=x.join(r,c);if(u.kind===\"directory\")await M.mkdirPromise(f,{recursive:!0});else if(u.kind===\"file\"){let h=u.mtimeMs;await q5e({srcPath:g,dstPath:f,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==h&&(l=!0)}else u.kind===\"symlink\"&&await UM(x.resolve(x.dirname(f),u.symlinkTo),f)}if(n.value===\"hardlinks-global\"&&i&&l&&s){let c=x.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Ice(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function W5e(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,f,h)=>{let p=!0,C=x.join(c,u),w=new Set;if(u===Rr||u.startsWith(\"@\")){let v;try{v=M.statSync(C)}catch{}p=!!v,v?v.mtimeMs>t?(a=!0,w=new Set(M.readdirSync(C))):w=new Set(g.children.get(u).children.keys()):a=!0;let D=e.get(c);if(D){let L=x.join(c,Rr,Lb),H;try{H=M.statSync(L)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let j=new Set(M.readdirSync(L)),$=new Map;s.set(c,$);for(let[V,W]of D)j.has(V)&&$.set(V,W)}else s.set(c,D)}}else p=h.has(u);let B=g.children.get(u);if(p){let{linkType:v,locator:D}=B,L={children:new Map,linkType:v,locator:D};if(f.children.set(u,L),D){let H=Ee.getSetWithDefault(o,D);H.add(C),o.set(D,H)}for(let H of B.children.keys())l(C,H,B,L,w)}else B.locator&&i.storedBuildState.delete(P.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:f}=u,h={children:new Map,linkType:g,locator:f};if(n.set(c,h),f){let p=Ee.getSetWithDefault(o,u.locator);p.add(c),o.set(u.locator,p)}u.children.has(Rr)&&l(c,Rr,u,h,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function wce(r){let e=P.parseDescriptor(r);return P.isVirtualDescriptor(e)&&(e=P.devirtualizeDescriptor(e)),e.range.startsWith(\"link:\")}async function z5e(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=wce(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,f]of c.bin){let h=x.join(l[0],f);f!==\"\"&&M.existsSync(h)&&u.set(g,f)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=x.contains(t,a);if(c.locator&&g!==null){let f=n.get(c.locator);for(let[h,p]of f){let C=x.join(a,K.toPortablePath(p));u.set(Gr(h),C)}for(let[h,p]of c.children){let C=x.join(a,h),w=o(C,C,p);w.size>0&&s.set(a,new Map([...s.get(a)||new Map,...w]))}}else for(let[f,h]of c.children){let p=o(x.join(a,f),l,h);for(let[C,w]of p)u.set(C,w)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var hce=(r,e)=>{if(!r||!e)return r===e;let t=P.parseLocator(r);P.isVirtualLocator(t)&&(t=P.devirtualizeLocator(t));let i=P.parseLocator(e);return P.isVirtualLocator(i)&&(i=P.devirtualizeLocator(i)),P.areLocatorsEqual(t,i)};function HM(r){return x.join(r.get(\"globalFolder\"),\"store\")}async function V5e(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=x.join(i.cwd,Rr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=W5e(r.locationTree,r.binSymlinks,r.mtimeMs,i),f=Ece(e,{skipPrefix:i.cwd}),h=[],p=async({srcDir:V,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ae,packageChecksum:ge})=>{let _=(async()=>{try{Z===\"SOFT\"?(await M.mkdirPromise(x.dirname(W),{recursive:!0}),await UM(x.resolve(V),W)):await J5e(W,V,{baseFs:t,globalHardlinksStore:A,nmMode:ae,packageChecksum:ge})}catch(T){throw T.message=`While persisting ${V} -> ${W} ${T.message}`,T}finally{L.tick()}})().then(()=>h.splice(h.indexOf(_),1));h.push(_),h.length>fce&&await Promise.race(h)},C=async(V,W,Z)=>{let A=(async()=>{let ae=async(ge,_,T)=>{try{T.innerLoop||await M.mkdirPromise(_,{recursive:!0});let N=await M.readdirPromise(ge,{withFileTypes:!0});for(let ue of N){if(!T.innerLoop&&ue.name===Lb)continue;let we=x.join(ge,ue.name),Le=x.join(_,ue.name);ue.isDirectory()?(ue.name!==Rr||T&&T.innerLoop)&&(await M.mkdirPromise(Le,{recursive:!0}),await ae(we,Le,{...T,innerLoop:!0})):$.value===\"hardlinks-local\"||$.value===\"hardlinks-global\"?await M.linkPromise(we,Le):await M.copyFilePromise(we,Le,dce.default.constants.COPYFILE_FICLONE)}}catch(N){throw T.innerLoop||(N.message=`While cloning ${ge} -> ${_} ${N.message}`),N}finally{T.innerLoop||L.tick()}};await ae(V,W,Z)})().then(()=>h.splice(h.indexOf(A),1));h.push(A),h.length>fce&&await Promise.race(h)},w=async(V,W,Z)=>{if(Z)for(let[A,ae]of W.children){let ge=Z.children.get(A);await w(x.join(V,A),ae,ge)}else{W.children.has(Rr)&&await Sp(x.join(V,Rr),{contentsOnly:!1});let A=x.basename(V)===Rr&&f.has(x.join(x.dirname(V),x.sep));await Sp(V,{contentsOnly:V===a,allowSymlink:A})}};for(let[V,W]of l){let Z=f.get(V);for(let[A,ae]of W.children){if(A===\".\")continue;let ge=Z&&Z.children.get(A),_=x.join(V,A);await w(_,ae,ge)}}let B=async(V,W,Z)=>{if(Z){hce(W.locator,Z.locator)||await Sp(V,{contentsOnly:W.linkType===\"HARD\"});for(let[A,ae]of W.children){let ge=Z.children.get(A);await B(x.join(V,A),ae,ge)}}else{W.children.has(Rr)&&await Sp(x.join(V,Rr),{contentsOnly:!0});let A=x.basename(V)===Rr&&f.has(x.join(x.dirname(V),x.sep));await Sp(V,{contentsOnly:W.linkType===\"HARD\",allowSymlink:A})}};for(let[V,W]of f){let Z=l.get(V);for(let[A,ae]of W.children){if(A===\".\")continue;let ge=Z&&Z.children.get(A);await B(x.join(V,A),ae,ge)}}let v=new Map,D=[];for(let[V,W]of u)for(let Z of W){let{locationRoot:A,segments:ae}=Ob(Z,{skipPrefix:i.cwd}),ge=f.get(A),_=A;if(ge){for(let T of ae)if(_=x.join(_,T),ge=ge.children.get(T),!ge)break;if(ge){let T=hce(ge.locator,V),N=e.get(ge.locator),ue=N.target,we=_,Le=N.linkType;if(T)v.has(ue)||v.set(ue,we);else if(ue!==we){let Pe=P.parseLocator(ge.locator);P.isVirtualLocator(Pe)&&(Pe=P.devirtualizeLocator(Pe)),D.push({srcDir:ue,dstDir:we,linkType:Le,realLocatorHash:Pe.locatorHash})}}}}for(let[V,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ae}=Ob(Z,{skipPrefix:i.cwd}),ge=l.get(A),_=f.get(A),T=A,N=e.get(V),ue=P.parseLocator(V);P.isVirtualLocator(ue)&&(ue=P.devirtualizeLocator(ue));let we=ue.locatorHash,Le=N.target,Pe=Z;if(Le===Pe)continue;let Te=N.linkType;for(let se of ae)_=_.children.get(se);if(!ge)D.push({srcDir:Le,dstDir:Pe,linkType:Te,realLocatorHash:we});else for(let se of ae)if(T=x.join(T,se),ge=ge.children.get(se),!ge){D.push({srcDir:Le,dstDir:Pe,linkType:Te,realLocatorHash:we});break}}let L=xi.progressViaCounter(D.length),H=n.reportProgress(L),j=i.configuration.get(\"nmMode\"),$={value:j};try{let V=$.value===\"hardlinks-global\"?`${HM(i.configuration)}/v1`:null;if(V&&!await M.existsPromise(V)){await M.mkdirpPromise(V);for(let Z=0;Z<256;Z++)await M.mkdirPromise(x.join(V,Z.toString(16).padStart(2,\"0\")))}for(let Z of D)(Z.linkType===\"SOFT\"||!v.has(Z.srcDir))&&(v.set(Z.srcDir,Z.dstDir),await p({...Z,globalHardlinksStore:V,nmMode:$,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(h),h.length=0;for(let Z of D){let A=v.get(Z.srcDir);Z.linkType!==\"SOFT\"&&Z.dstDir!==A&&await C(A,Z.dstDir,{nmMode:$})}await Promise.all(h),await M.mkdirPromise(a,{recursive:!0});let W=await z5e(e,f,i.cwd,{loadManifest:s});await X5e(c,W,i.cwd),await j5e(i,e,W,$,{installChangedByUser:g}),j==\"hardlinks-global\"&&$.value==\"hardlinks-local\"&&n.reportWarningOnce(74,\"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices\")}finally{H.stop()}}async function X5e(r,e,t){for(let i of r.keys()){if(x.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=x.join(i,Rr,Lb);await M.removePromise(n)}}for(let[i,n]of e){if(x.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=x.join(i,Rr,Lb),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(x.join(s,a)),process.platform===\"win32\"&&await M.removePromise(x.join(s,Gr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=x.join(s,a);c!==l&&(process.platform===\"win32\"?await(0,pce.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await UM(l,u),x.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var Mb=class extends kl{constructor(){super(...arguments);this.mode=\"loose\"}makeInstaller(t){return new GM(t)}},GM=class extends ag{constructor(){super(...arguments);this.mode=\"loose\"}async transformPnpSettings(t){let i=new Nr({baseFs:new On({libzip:await nn(),maxOpenFiles:80,readOnlyArchives:!0})}),n=$le(t,this.opts.project.cwd,i),{tree:s,errors:o}=PE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:f}of o)this.opts.report.reportError(g,f);return}let a=new Map;t.fallbackPool=a;let l=(g,f)=>{let h=P.parseLocator(f.locator),p=P.stringifyIdent(h);p===g?a.set(g,h.reference):a.set(g,[p,h.reference])},c=x.join(this.opts.project.cwd,xt.nodeModules),u=s.get(c);if(!(typeof u>\"u\")){if(\"target\"in u)throw new Error(\"Assertion failed: Expected the root junction point to be a directory\");for(let g of u.dirList){let f=x.join(c,g),h=s.get(f);if(typeof h>\"u\")throw new Error(\"Assertion failed: Expected the child to have been registered\");if(\"target\"in h)l(g,h);else for(let p of h.dirList){let C=x.join(f,p),w=s.get(C);if(typeof w>\"u\")throw new Error(\"Assertion failed: Expected the subchild to have been registered\");if(\"target\"in w)l(`${g}/${p}`,w);else throw new Error(\"Assertion failed: Expected the leaf junction to be a package\")}}}}};var _5e={hooks:{cleanGlobalArtifacts:async r=>{let e=HM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:\"Prevent packages to be hoisted past specific levels\",type:\"STRING\",values:[\"workspaces\",\"dependencies\",\"none\"],default:\"none\"},nmMode:{description:'If set to \"hardlinks-local\" Yarn will utilize hardlinks to reduce disk space consumption inside \"node_modules\" directories. With \"hardlinks-global\" Yarn will use global content addressable storage to reduce \"node_modules\" size across all the projects using this option.',type:\"STRING\",values:[\"classic\",\"hardlinks-local\",\"hardlinks-global\"],default:\"classic\"},nmSelfReferences:{description:\"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created\",type:\"BOOLEAN\",default:!0}},linkers:[Tb,Mb]},Z5e=_5e;var UK={};ht(UK,{default:()=>o7e,npmConfigUtils:()=>or,npmHttpUtils:()=>Mt,npmPublishUtils:()=>Mp});var xce=ne($r());var fr=\"npm:\";var Mt={};ht(Mt,{AuthType:()=>vce,customPackageError:()=>e6e,del:()=>i6e,get:()=>Co,getIdentUrl:()=>Nl,handleInvalidAuthenticationError:()=>Fl,post:()=>t6e,put:()=>r6e});var JM=ne(aE()),Sce=J(\"url\");var or={};ht(or,{RegistryType:()=>Bce,getAuditRegistry:()=>$5e,getAuthConfiguration:()=>qM,getDefaultRegistry:()=>Kb,getPublishRegistry:()=>Qce,getRegistryConfiguration:()=>bce,getScopeConfiguration:()=>jM,getScopeRegistry:()=>fA,normalizeRegistry:()=>po});var Bce=(i=>(i.AUDIT_REGISTRY=\"npmAuditRegistry\",i.FETCH_REGISTRY=\"npmRegistryServer\",i.PUBLISH_REGISTRY=\"npmPublishRegistry\",i))(Bce||{});function po(r){return r.replace(/\\/$/,\"\")}function $5e(r,{configuration:e}){let t=e.get(\"npmAuditRegistry\");return t!==null?po(t):Qce(r,{configuration:e})}function Qce(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?po(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:\"npmPublishRegistry\"}):Kb({configuration:e,type:\"npmPublishRegistry\"})}function fA(r,{configuration:e,type:t=\"npmRegistryServer\"}){let i=jM(r,{configuration:e});if(i===null)return Kb({configuration:e,type:t});let n=i.get(t);return n===null?Kb({configuration:e,type:t}):po(n)}function Kb({configuration:r,type:e=\"npmRegistryServer\"}){let t=r.get(e);return po(t!==null?t:r.get(\"npmRegistryServer\"))}function bce(r,{configuration:e}){let t=e.get(\"npmRegistries\"),i=po(r),n=t.get(i);if(typeof n<\"u\")return n;let s=t.get(i.replace(/^[a-z]+:/,\"\"));return typeof s<\"u\"?s:null}function jM(r,{configuration:e}){if(r===null)return null;let i=e.get(\"npmScopes\").get(r);return i||null}function qM(r,{configuration:e,ident:t}){let i=t&&jM(t.scope,{configuration:e});return(i==null?void 0:i.get(\"npmAuthIdent\"))||(i==null?void 0:i.get(\"npmAuthToken\"))?i:bce(r,{configuration:e})||e}var vce=(n=>(n[n.NO_AUTH=0]=\"NO_AUTH\",n[n.BEST_EFFORT=1]=\"BEST_EFFORT\",n[n.CONFIGURATION=2]=\"CONFIGURATION\",n[n.ALWAYS_AUTH=3]=\"ALWAYS_AUTH\",n))(vce||{});async function Fl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(Hb(r))throw new ot(41,\"Invalid OTP token\");if(((s=r.originalError)==null?void 0:s.name)===\"HTTPError\"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new ot(41,`Invalid authentication (${typeof e!=\"string\"?`as ${await s6e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function e6e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?\"Package not found\":null}function Nl(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function Co(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>\"u\"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>\"u\"&&(n=1),typeof s!=\"string\")throw new Error(\"Assertion failed: The registry should be a string\");let a=await Ub(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)===\"/\"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Fl(l,{registry:s,configuration:e,headers:t}),l}}async function t6e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>\"u\"&&(a=fA(s.scope,{configuration:i})),typeof a!=\"string\")throw new Error(\"Assertion failed: The registry should be a string\");let u=await Ub(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...vp(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!Hb(g)||l)throw await Fl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await WM(g,{configuration:i});let f={...n,...vp(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:f,...c})}catch(h){throw await Fl(h,{attemptedAs:t,registry:a,configuration:i,headers:n}),h}}}async function r6e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>\"u\"&&(a=fA(s.scope,{configuration:i})),typeof a!=\"string\")throw new Error(\"Assertion failed: The registry should be a string\");let u=await Ub(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...vp(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!Hb(g))throw await Fl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await WM(g,{configuration:i});let f={...n,...vp(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:f,...c})}catch(h){throw await Fl(h,{attemptedAs:t,registry:a,configuration:i,headers:n}),h}}}async function i6e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>\"u\"&&(o=fA(n.scope,{configuration:t})),typeof o!=\"string\")throw new Error(\"Assertion failed: The registry should be a string\");let c=await Ub(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...vp(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!Hb(u)||a)throw await Fl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await WM(u,{configuration:t});let g={...i,...vp(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(f){throw await Fl(f,{attemptedAs:e,registry:o,configuration:t,headers:i}),f}}}async function Ub(r,{authType:e=2,configuration:t,ident:i}){let n=qM(r,{configuration:t,ident:i}),s=n6e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get(\"npmAuthToken\"))return`Bearer ${n.get(\"npmAuthToken\")}`;if(n.get(\"npmAuthIdent\")){let a=n.get(\"npmAuthIdent\");return a.includes(\":\")?`Basic ${Buffer.from(a).toString(\"base64\")}`:`Basic ${a}`}if(s&&e!==1)throw new ot(33,\"No authentication configured for request\");return null}function n6e(r,e){switch(e){case 2:return r.get(\"npmAlwaysAuth\");case 1:case 3:return!0;case 0:return!1;default:throw new Error(\"Unreachable\")}}async function s6e(r,e,{configuration:t}){var i;if(typeof e>\"u\"||typeof e.authorization>\"u\")return\"an anonymous user\";try{return(i=(await Vt.get(new Sce.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:\"an unknown user\"}catch{return\"an unknown user\"}}async function WM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers[\"npm-notice\"];if(t&&(await Ke.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\\/\\/\\S+)/g,ee.pretty(e,\"$1\",ee.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\\/\\/\\S+)/i);if(o&&io.openUrl){let{openNow:a}=await(0,JM.prompt)({type:\"confirm\",name:\"openNow\",message:\"Do you want to try to open this url now?\",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await io.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,\"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.\")))}}}),process.stdout.write(`\n`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||\"\";let{otp:i}=await(0,JM.prompt)({type:\"password\",name:\"otp\",message:\"One-time password:\",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(`\n`),i}function Hb(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!==\"HTTPError\")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers[\"www-authenticate\"].split(/,\\s*/).map(n=>n.toLowerCase())).includes(\"otp\")}catch{return!1}}function vp(r){return{[\"npm-otp\"]:r}}var Gb=class{supports(e,t){if(!e.reference.startsWith(fr))return!1;let{selector:i,params:n}=P.parseRange(e.reference);return!(!xce.default.valid(i)||n===null||typeof n.__archiveUrl!=\"string\")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=P.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!=\"string\")throw new Error(\"Assertion failed: The archiveUrl querystring parameter should have been available\");let n=await Co(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await yi.convertToZip(n,{compressionLevel:t.project.configuration.get(\"compressionLevel\"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var Yb=class{supportsDescriptor(e,t){return!(!e.range.startsWith(fr)||!P.tryParseDescriptor(e.range.slice(fr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error(\"Unreachable\")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=P.parseDescriptor(e.range.slice(fr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=P.parseDescriptor(e.range.slice(fr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=P.parseDescriptor(e.range.slice(fr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error(\"Unreachable\")}};var Pce=ne($r()),Dce=J(\"url\");var Ns=class{supports(e,t){if(!e.reference.startsWith(fr))return!1;let i=new Dce.URL(e.reference);return!(!Pce.default.valid(i.pathname)||i.searchParams.has(\"__archiveUrl\"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await Co(Ns.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await Co(Ns.getLocatorUrl(e).replace(/%2f/g,\"/\"),{configuration:t.project.configuration,ident:e})}return await yi.convertToZip(i,{compressionLevel:t.project.configuration.get(\"compressionLevel\"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ns.getLocatorUrl(e);return t=t.replace(/^https?:(\\/\\/(?:[^/]+\\.)?npmjs.org(?:$|\\/))/,\"https:$1\"),n=n.replace(/^https:\\/\\/registry\\.npmjs\\.org($|\\/)/,\"https://registry.yarnpkg.com$1\"),t=t.replace(/^https:\\/\\/registry\\.npmjs\\.org($|\\/)/,\"https://registry.yarnpkg.com$1\"),t===n+s||t===n+s.replace(/%2f/g,\"/\")}static getLocatorUrl(e){let t=vt.clean(e.reference.slice(fr.length));if(t===null)throw new ot(10,\"The npm semver resolver got selected, but the version isn't semver\");return`${Nl(e)}/-/${e.name}-${t}.tgz`}};var kce=ne($r());var jb=P.makeIdent(null,\"node-gyp\"),o6e=/\\b(node-gyp|prebuild-install)\\b/,qb=class{supportsDescriptor(e,t){return e.range.startsWith(fr)?!!vt.validRange(e.range.slice(fr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(fr))return!1;let{selector:i}=P.parseRange(e.reference);return!!kce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=vt.validRange(e.range.slice(fr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(fr.length)}`);let s=await Co(Nl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=Ee.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new vt.SemVer(c);if(n.test(u))return u}catch{}return Ee.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=P.makeLocator(e,`${fr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ns.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:P.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=vt.validRange(e.range.slice(fr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(fr.length)}`);return Ee.mapAndFilter(t,s=>{try{let{selector:o}=P.parseRange(s,{requireProtocol:fr}),a=new vt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return Ee.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>P.makeLocator(e,s))}async resolve(e,t){let{selector:i}=P.parseRange(e.reference),n=vt.clean(i);if(n===null)throw new ot(10,\"The npm semver resolver got selected, but the version isn't semver\");let s=await Co(Nl(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,\"versions\"))throw new ot(15,'Registry returned invalid data for - missing \"versions\" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new ot(16,`Registry failed to return reference \"${n}\"`);let o=new nt;if(o.load(s.versions[n]),!o.dependencies.has(jb.identHash)&&!o.peerDependencies.has(jb.identHash)){for(let a of o.scripts.values())if(a.match(o6e)){o.dependencies.set(jb.identHash,P.makeDescriptor(jb,\"latest\")),t.report.reportWarningOnce(32,`${P.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated==\"string\"&&o.raw.deprecated!==\"\"){let a=P.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:\"node\",linkType:\"HARD\",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var Jb=class{supportsDescriptor(e,t){return!(!e.range.startsWith(fr)||!zf.test(e.range.slice(fr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error(\"Unreachable\")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(fr.length),s=await Co(Nl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,\"dist-tags\"))throw new ot(15,'Registry returned invalid data - missing \"dist-tags\" field');let o=s[\"dist-tags\"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new ot(16,`Registry failed to return tag \"${n}\"`);let a=o[n],l=P.makeLocator(e,`${fr}${a}`),c=s.versions[a].dist.tarball;return Ns.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[P.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error(\"Unreachable\")}};var Mp={};ht(Mp,{getGitHead:()=>n7e,makePublishBody:()=>i7e});var LK={};ht(LK,{default:()=>K9e,packUtils:()=>la});var Yl=ne(Xe());var la={};ht(la,{genPackList:()=>pS,genPackStream:()=>NK,genPackageManifest:()=>Age,hasPackScripts:()=>RK,prepareForPack:()=>FK});var kK=ne(wn()),oge=ne(rge()),age=J(\"zlib\"),x9e=[\"/package.json\",\"/readme\",\"/readme.*\",\"/license\",\"/license.*\",\"/licence\",\"/licence.*\",\"/changelog\",\"/changelog.*\"],P9e=[\"/package.tgz\",\".github\",\".git\",\".hg\",\"node_modules\",\".npmignore\",\".gitignore\",\".#*\",\".DS_Store\"];async function RK(r){return!!(Jt.hasWorkspaceScript(r,\"prepack\")||Jt.hasWorkspaceScript(r,\"postpack\"))}async function FK(r,{report:e},t){await Jt.maybeExecuteWorkspaceLifecycleScript(r,\"prepack\",{report:e});try{let i=x.join(r.cwd,nt.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Jt.maybeExecuteWorkspaceLifecycleScript(r,\"postpack\",{report:e})}}async function NK(r,e){var s,o;typeof e>\"u\"&&(e=await pS(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(x.normalize(a));for(let a of r.manifest.bin.values())t.add(x.normalize(a));let i=oge.default.pack();process.nextTick(async()=>{for(let a of e){let l=x.normalize(a),c=x.resolve(r.cwd,l),u=x.join(\"package\",l),g=await M.lstatPromise(c),f={name:u,mtime:new Date(Pr.SAFE_TIME*1e3)},h=t.has(l)?493:420,p,C,w=new Promise((v,D)=>{p=v,C=D}),B=v=>{v?C(v):p()};if(g.isFile()){let v;l===\"package.json\"?v=Buffer.from(JSON.stringify(await Age(r),null,2)):v=await M.readFilePromise(c),i.entry({...f,mode:h,type:\"file\"},v,B)}else g.isSymbolicLink()?i.entry({...f,mode:h,type:\"symlink\",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await w}i.finalize()});let n=(0,age.createGzip)();return i.pipe(n),n}async function Age(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function pS(r){var g,f,h,p,C,w,B,v;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let D of P9e)i.reject.push(D);for(let D of x9e)i.accept.push(D);i.reject.push(t.get(\"rcFilename\"));let n=D=>{if(D===null||!D.startsWith(`${r.cwd}/`))return;let L=x.relative(r.cwd,D),H=x.resolve(ke.root,L);i.reject.push(H)};n(x.resolve(e.cwd,t.get(\"lockfileFilename\"))),n(t.get(\"cacheFolder\")),n(t.get(\"globalFolder\")),n(t.get(\"installStatePath\")),n(t.get(\"virtualFolder\")),n(t.get(\"yarnPath\")),await t.triggerHook(D=>D.populateYarnPaths,e,D=>{n(D)});for(let D of e.workspaces){let L=x.relative(r.cwd,D.cwd);L!==\"\"&&!L.match(/^(\\.\\.)?\\//)&&i.reject.push(`/${L}`)}let s={accept:[],reject:[]},o=(f=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?f:r.manifest.main,a=(p=(h=r.manifest.publishConfig)==null?void 0:h.module)!=null?p:r.manifest.module,l=(w=(C=r.manifest.publishConfig)==null?void 0:C.browser)!=null?w:r.manifest.browser,c=(v=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?v:r.manifest.bin;o!=null&&s.accept.push(x.resolve(ke.root,o)),a!=null&&s.accept.push(x.resolve(ke.root,a)),typeof l==\"string\"&&s.accept.push(x.resolve(ke.root,l));for(let D of c.values())s.accept.push(x.resolve(ke.root,D));if(l instanceof Map)for(let[D,L]of l.entries())s.accept.push(x.resolve(ke.root,D)),typeof L==\"string\"&&s.accept.push(x.resolve(ke.root,L));let u=r.manifest.files!==null;if(u){s.reject.push(\"/*\");for(let D of r.manifest.files)lge(s.accept,D,{cwd:ke.root})}return await D9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function D9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new bo(r),o=[[ke.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!nge(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,f=!1;if(!e||a!==ke.root)for(let C of u)g=g||C===\".gitignore\",f=f||C===\".npmignore\";let h=f?await ige(s,a,\".npmignore\"):g?await ige(s,a,\".gitignore\"):null,p=h!==null?[h].concat(l):l;nge(a,{globalList:t,ignoreLists:l})&&(p=[...l,{accept:[],reject:[\"**/*\"]}]);for(let C of u)o.push([x.resolve(a,C),p])}else(c.isFile()||c.isSymbolicLink())&&n.push(x.relative(ke.root,a))}return n.sort()}async function ige(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(x.join(e,t),\"utf8\");for(let s of n.split(/\\n/g))lge(i.reject,s,{cwd:e});return i}function k9e(r,{cwd:e}){let t=r[0]===\"!\";return t&&(r=r.slice(1)),r.match(/\\.{0,1}\\//)&&(r=x.resolve(e,r)),t&&(r=`!${r}`),r}function lge(r,e,{cwd:t}){let i=e.trim();i===\"\"||i[0]===\"#\"||r.push(k9e(i,{cwd:t}))}function nge(r,{globalList:e,ignoreLists:t}){let i=hS(r,e.accept);if(i!==0)return i===2;let n=hS(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=hS(r,s.accept);if(o!==0)return o===2;let a=hS(r,s.reject);if(a!==0)return a===1}return!1}function hS(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n][0]!==\"!\"?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n].slice(1)));return sge(r,i)?2:sge(r,t)?1:0}function sge(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n].includes(\"/\")?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n]));return!!(kK.default.isMatch(r,t,{dot:!0,nocase:!0})||kK.default.isMatch(r,i,{dot:!0,basename:!0,nocase:!0}))}var fg=class extends ve{constructor(){super(...arguments);this.installIfNeeded=Yl.Option.Boolean(\"--install-if-needed\",!1,{description:\"Run a preliminary `yarn install` if the package contains build scripts\"});this.dryRun=Yl.Option.Boolean(\"-n,--dry-run\",!1,{description:\"Print the file paths without actually generating the package archive\"});this.json=Yl.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.out=Yl.Option.String(\"-o,--out\",{description:\"Create the archive at the specified path\"});this.filename=Yl.Option.String(\"--filename\",{hidden:!0})}async execute(){var l;let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await RK(n)&&(this.installIfNeeded?await i.install({cache:await kt.find(t),report:new ni}):await i.restoreInstallState());let s=(l=this.out)!=null?l:this.filename,o=typeof s<\"u\"?x.resolve(this.context.cwd,R9e(s,{workspace:n})):x.resolve(n.cwd,\"package.tgz\");return(await Ke.start({configuration:t,stdout:this.context.stdout,json:this.json},async c=>{await FK(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await pS(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await NK(n,u),f=M.createWriteStream(o);g.pipe(f),await new Promise(h=>{f.on(\"finish\",h)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${ee.pretty(t,o,ee.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};fg.paths=[[\"pack\"]],fg.usage=Yl.Command.Usage({description:\"generate a tarball from the active workspace\",details:\"\\n      This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\\n\\n      If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\\n    \",examples:[[\"Create an archive from the active workspace\",\"yarn pack\"],[\"List the files that would be made part of the workspace's archive\",\"yarn pack --dry-run\"],[\"Name and output the archive in a dedicated folder\",\"yarn pack --out /artifacts/%s-%v.tgz\"]]});function R9e(r,{workspace:e}){let t=r.replace(\"%s\",F9e(e)).replace(\"%v\",N9e(e));return K.toPortablePath(t)}function F9e(r){return r.manifest.name!==null?P.slugifyIdent(r.manifest.name):\"package\"}function N9e(r){return r.manifest.version!==null?r.manifest.version:\"unknown\"}var L9e=[\"dependencies\",\"devDependencies\",\"peerDependencies\"],T9e=\"workspace:\",O9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of L9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=P.parseRange(o.range);if(l.protocol===T9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new ot(21,`${P.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;P.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector===\"*\"?c=(i=a.manifest.version)!=null?i:\"0.0.0\":l.selector===\"~\"||l.selector===\"^\"?c=`${l.selector}${(n=a.manifest.version)!=null?n:\"0.0.0\"}`:c=l.selector;let u=s===\"dependencies\"?P.makeDescriptor(o,\"unknown\"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?\"optionalDependencies\":s;e[g][P.stringifyIdent(o)]=c}}},M9e={hooks:{beforeWorkspacePacking:O9e},commands:[fg]},K9e=M9e;var mge=J(\"crypto\"),Ege=ne(Cge()),Ige=J(\"url\");async function i7e(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.project.configuration,a=r.manifest.name,l=r.manifest.version,c=P.stringifyIdent(a),u=(0,mge.createHash)(\"sha1\").update(e).digest(\"hex\"),g=Ege.default.fromData(e).toString();typeof t>\"u\"&&(r.manifest.publishConfig&&typeof r.manifest.publishConfig.access==\"string\"?t=r.manifest.publishConfig.access:o.get(\"npmPublishAccess\")!==null?t=o.get(\"npmPublishAccess\"):a.scope?t=\"restricted\":t=\"public\");let f=await la.genPackageManifest(r),h=`${c}-${l}.tgz`,p=new Ige.URL(`${po(n)}/${c}/-/${h}`);return{_id:c,_attachments:{[h]:{content_type:\"application/octet-stream\",data:e.toString(\"base64\"),length:e.length}},name:c,access:t,[\"dist-tags\"]:{[i]:l},versions:{[l]:{...f,_id:`${c}@${l}`,name:c,version:l,gitHead:s,dist:{shasum:u,integrity:g,tarball:p.toString()}}}}}async function n7e(r){try{let{stdout:e}=await mr.execvp(\"git\",[\"rev-parse\",\"--revs-only\",\"HEAD\"],{cwd:r});return e.trim()===\"\"?void 0:e.trim()}catch{return}}var KK={npmAlwaysAuth:{description:\"URL of the selected npm registry (note: npm enterprise isn't supported)\",type:\"BOOLEAN\",default:!1},npmAuthIdent:{description:\"Authentication identity for the npm registry (_auth in npm and yarn v1)\",type:\"SECRET\",default:null},npmAuthToken:{description:\"Authentication token for the npm registry (_authToken in npm and yarn v1)\",type:\"SECRET\",default:null}},yge={npmAuditRegistry:{description:\"Registry to query for audit reports\",type:\"STRING\",default:null},npmPublishRegistry:{description:\"Registry to push packages to\",type:\"STRING\",default:null},npmRegistryServer:{description:\"URL of the selected npm registry (note: npm enterprise isn't supported)\",type:\"STRING\",default:\"https://registry.yarnpkg.com\"}},s7e={configuration:{...KK,...yge,npmScopes:{description:\"Settings per package scope\",type:\"MAP\",valueDefinition:{description:\"\",type:\"SHAPE\",properties:{...KK,...yge}}},npmRegistries:{description:\"Settings per registry\",type:\"MAP\",normalizeKeys:po,valueDefinition:{description:\"\",type:\"SHAPE\",properties:{...KK}}}},fetchers:[Gb,Ns],resolvers:[Yb,qb,Jb]},o7e=s7e;var qK={};ht(qK,{default:()=>d7e});var ga=ne(Xe()),tI=ne(wn()),HK=ne(ns());var dS=(i=>(i.All=\"all\",i.Production=\"production\",i.Development=\"development\",i))(dS||{}),CS=(s=>(s.Info=\"info\",s.Low=\"low\",s.Moderate=\"moderate\",s.High=\"high\",s.Critical=\"critical\",s))(CS||{});var eI=[\"info\",\"low\",\"moderate\",\"high\",\"critical\"];function Bge(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>\"u\")throw new Error(\"Assertion failed: Expected the resolution to have been registered\");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function a7e(r,e){return new Set([...r].filter(t=>!e.has(t)))}function A7e(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(f=>f.manifest),s=new Set(n.map(f=>[...f.dependencies].map(([h,p])=>h)).flat()),o=new Set(n.map(f=>[...f.devDependencies].map(([h,p])=>h)).flat()),a=i.map(f=>[...f.dependencies.values()]).flat(),l=a.filter(f=>s.has(f.identHash)).map(f=>f.descriptorHash),c=a.filter(f=>o.has(f.identHash)).map(f=>f.descriptorHash),u=Bge(r,l),g=Bge(r,c);return a7e(g,u)}function Qge(r){let e={};for(let t of r)e[P.stringifyIdent(t)]=P.parseRange(t.range).selector;return e}function bge(r){if(typeof r>\"u\")return new Set(eI);let e=eI.indexOf(r),t=eI.slice(e);return new Set(t)}function l7e(r,e){let t=bge(e),i={};for(let n of t)i[n]=r[n];return i}function Sge(r,e){var i;let t=l7e(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function vge(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=bge(e);n=n.filter(a=>o.has(a.severity))}for(let o of Ee.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:ee.tuple(ee.Type.RANGE,o.findings.map(a=>a.version).join(\", \")),children:{ID:{label:\"ID\",value:ee.tuple(ee.Type.NUMBER,o.id)},Issue:{label:\"Issue\",value:ee.tuple(ee.Type.NO_HINT,o.title)},URL:{label:\"URL\",value:ee.tuple(ee.Type.URL,o.url)},Severity:{label:\"Severity\",value:ee.tuple(ee.Type.NO_HINT,o.severity)},[\"Vulnerable Versions\"]:{label:\"Vulnerable Versions\",value:ee.tuple(ee.Type.RANGE,o.vulnerable_versions)},[\"Patched Versions\"]:{label:\"Patched Versions\",value:ee.tuple(ee.Type.RANGE,o.patched_versions)},Via:{label:\"Via\",value:ee.tuple(ee.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(\">\")[0]))).join(\", \"))},Recommendation:{label:\"Recommendation\",value:ee.tuple(ee.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\\n/g,\" \"))}}};return i}function xge(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=[\"all\",\"production\"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=[\"all\",\"development\"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Qge([...o,...l].filter(c=>P.parseRange(c.range).protocol===null))}function Pge(r,e,{all:t}){var s;let i=A7e(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[P.stringifyIdent(o)]={version:(s=o.version)!=null?s:\"0.0.0\",integrity:o.identHash,requires:Qge(o.dependencies.values()),dev:i.has(P.convertLocatorToDescriptor(o).descriptorHash)};return n}var dg=class extends ve{constructor(){super(...arguments);this.all=ga.Option.Boolean(\"-A,--all\",!1,{description:\"Audit dependencies from all workspaces\"});this.recursive=ga.Option.Boolean(\"-R,--recursive\",!1,{description:\"Audit transitive dependencies as well\"});this.environment=ga.Option.String(\"--environment\",\"all\",{description:\"Which environments to cover\",validator:HK.isEnum(dS)});this.json=ga.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.severity=ga.Option.String(\"--severity\",\"info\",{description:\"Minimal severity requested for packages to be displayed\",validator:HK.isEnum(CS)});this.excludes=ga.Option.Array(\"--exclude\",[],{description:\"Array of glob patterns of packages to exclude from audit\"});this.ignores=ga.Option.Array(\"--ignore\",[],{description:\"Array of glob patterns of advisory ID's to ignore in the audit report\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let s=xge(i,n,{all:this.all,environment:this.environment}),o=Pge(i,n,{all:this.all});if(!this.recursive)for(let C of Object.keys(o))Object.prototype.hasOwnProperty.call(s,C)?o[C].requires={}:delete o[C];let a=Array.from(new Set([...t.get(\"npmAuditExcludePackages\"),...this.excludes]));if(a){for(let C of Object.keys(s))tI.default.isMatch(C,a)&&delete s[C];for(let C of Object.keys(o))tI.default.isMatch(C,a)&&delete o[C];for(let C of Object.keys(o))for(let w of Object.keys(o[C].requires))tI.default.isMatch(w,a)&&delete o[C].requires[w]}let l={requires:s,dependencies:o},c=or.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await Mt.post(\"/-/npm/v1/security/audits/quick\",l,{authType:Mt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let f=Array.from(new Set([...t.get(\"npmAuditIgnoreAdvisories\"),...this.ignores]));if(f){for(let C of Object.keys(u.advisories))if(tI.default.isMatch(C,f)){let w=u.advisories[C];u.metadata.vulnerabilities[w.severity]-=1,delete u.advisories[C]}}let h=Sge(u.metadata.vulnerabilities,this.severity);return!this.json&&h?(Vn.emitTree(vge(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Ke.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async C=>{C.reportJson(u),h||C.reportInfo(1,\"No audit suggestions\")})).exitCode()}};dg.paths=[[\"npm\",\"audit\"]],dg.usage=ga.Command.Usage({description:\"perform a vulnerability audit against the installed packages\",details:`\n      This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths).\n\n      For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \\`-A,--all\\`. To extend this search to both direct and transitive dependencies, use \\`-R,--recursive\\`.\n\n      Applying the \\`--severity\\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${eI.map(t=>`\\`${t}\\``).join(\", \")}.\n\n      If the \\`--json\\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages.\n\n      If certain packages produce false positives for a particular environment, the \\`--exclude\\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \\`npmAuditExcludePackages\\` option.\n\n      If particular advisories are needed to be ignored, the \\`--ignore\\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \\`npmAuditIgnoreAdvisories\\` option.\n\n      To understand the dependency tree requiring vulnerable packages, check the raw report with the \\`--json\\` flag or use \\`yarn why <package>\\` to get more information as to who depends on them.\n    `,examples:[[\"Checks for known security issues with the installed packages. The output is a list of known issues.\",\"yarn npm audit\"],[\"Audit dependencies in all workspaces\",\"yarn npm audit --all\"],[\"Limit auditing to `dependencies` (excludes `devDependencies`)\",\"yarn npm audit --environment production\"],[\"Show audit report as valid JSON\",\"yarn npm audit --json\"],[\"Audit all direct and transitive dependencies\",\"yarn npm audit --recursive\"],[\"Output moderate (or more severe) vulnerabilities\",\"yarn npm audit --severity moderate\"],[\"Exclude certain packages\",\"yarn npm audit --exclude package1 --exclude package2\"],[\"Ignore specific advisories\",\"yarn npm audit --ignore 1234567 --ignore 7654321\"]]});var ql=ne(Xe()),GK=ne($r()),YK=J(\"util\"),Cg=class extends ve{constructor(){super(...arguments);this.fields=ql.Option.String(\"-f,--fields\",{description:\"A comma-separated list of manifest fields that should be displayed\"});this.json=ql.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.packages=ql.Option.Rest()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i}=await He.find(t,this.context.cwd),n=typeof this.fields<\"u\"?new Set([\"name\",...this.fields.split(/\\s*,\\s*/)]):null,s=[],o=!1,a=await Ke.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c===\".\"){let L=i.topLevelWorkspace;if(!L.manifest.name)throw new ql.UsageError(`Missing ${ee.pretty(t,\"name\",ee.Type.CODE)} field in ${K.fromPortablePath(x.join(L.cwd,xt.manifest))}`);u=P.makeDescriptor(L.manifest.name,\"unknown\")}else u=P.parseDescriptor(c);let g=Mt.getIdentUrl(u),f=jK(await Mt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:Mt.customPackageError})),h=Object.keys(f.versions).sort(GK.default.compareLoose),C=f[\"dist-tags\"].latest||h[h.length-1],w=vt.validRange(u.range);if(w){let L=GK.default.maxSatisfying(h,w);L!==null?C=L:(l.reportWarning(0,`Unmet range ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(f[\"dist-tags\"],u.range)?C=f[\"dist-tags\"][u.range]:u.range!==\"unknown\"&&(l.reportWarning(0,`Unknown tag ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=f.versions[C],v={...f,...B,version:C,versions:h},D;if(n!==null){D={};for(let L of n){let H=v[L];if(typeof H<\"u\")D[L]=H;else{l.reportWarning(1,`The ${ee.pretty(t,L,ee.Type.CODE)} field doesn't exist inside ${P.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete v.dist,delete v.readme,delete v.users),D=v;l.reportJson(D),this.json||s.push(D)}});YK.inspect.styles.name=\"cyan\";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(`\n`),this.context.stdout.write(`${(0,YK.inspect)(l,{depth:1/0,colors:!0,compact:!1})}\n`);return a.exitCode()}};Cg.paths=[[\"npm\",\"info\"]],Cg.usage=ql.Command.Usage({category:\"Npm-related commands\",description:\"show information about a package\",details:\"\\n      This command fetches information about a package from the npm registry and prints it in a tree format.\\n\\n      The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\\n\\n      Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\\n\\n      If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\\n\\n      By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\\n    \",examples:[[\"Show all available information about react (except the `dist`, `readme`, and `users` fields)\",\"yarn npm info react\"],[\"Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)\",\"yarn npm info react --json\"],[\"Show all available information about react@16.12.0\",\"yarn npm info react@16.12.0\"],[\"Show all available information about react@next\",\"yarn npm info react@next\"],[\"Show the description of react\",\"yarn npm info react --fields description\"],[\"Show all available versions of react\",\"yarn npm info react --fields versions\"],[\"Show the readme of react\",\"yarn npm info react --fields readme\"],[\"Show a few fields of react\",\"yarn npm info react --fields homepage,repository\"]]});function jK(r){if(Array.isArray(r)){let e=[];for(let t of r)t=jK(t),t&&e.push(t);return e}else if(typeof r==\"object\"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith(\"_\"))continue;let i=jK(r[t]);i&&(e[t]=i)}return e}else return r||null}var rI=ne(Xe()),Dge=ne(aE()),mg=class extends ve{constructor(){super(...arguments);this.scope=rI.Option.String(\"-s,--scope\",{description:\"Login to the registry configured for a given scope\"});this.publish=rI.Option.Boolean(\"--publish\",!1,{description:\"Login to the publish registry\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=await mS({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Ke.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await g7e({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=`/-/user/org.couchdb.user:${encodeURIComponent(o.name)}`,l=await Mt.put(a,o,{attemptedAs:o.name,configuration:t,registry:i,jsonResponse:!0,authType:Mt.AuthType.NO_AUTH});return await u7e(i,l.token,{configuration:t,scope:this.scope}),s.reportInfo(0,\"Successfully logged in\")})).exitCode()}};mg.paths=[[\"npm\",\"login\"]],mg.usage=rI.Command.Usage({category:\"Npm-related commands\",description:\"store new login info to access the npm registry\",details:\"\\n      This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\\n\\n      Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\\n\\n      Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\\n    \",examples:[[\"Login to the default registry\",\"yarn npm login\"],[\"Login to the registry linked to the @my-scope registry\",\"yarn npm login --scope my-scope\"],[\"Login to the publish registry for the current package\",\"yarn npm login --publish\"]]});async function mS({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?or.getScopeRegistry(r,{configuration:t,type:or.RegistryType.PUBLISH_REGISTRY}):r?or.getScopeRegistry(r,{configuration:t}):e?or.getPublishRegistry((await tp(t,i)).manifest,{configuration:t}):or.getDefaultRegistry({configuration:t})}async function u7e(r,e,{configuration:t,scope:i}){let n=o=>a=>{let l=Ee.isIndexableObject(a)?a:{},c=l[o],u=Ee.isIndexableObject(c)?c:{};return{...l,[o]:{...u,npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ie.updateHomeConfiguration(s)}async function g7e({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${ee.pretty(r,e,ee.Type.URL)}`);let s=!1;if(e.match(/^https:\\/\\/npm\\.pkg\\.github\\.com(\\/|$)/)&&(t.reportInfo(0,\"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions.\"),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||\"\",password:process.env.YARN_INJECT_NPM_PASSWORD||\"\"};let{username:o,password:a}=await(0,Dge.prompt)([{type:\"input\",name:\"username\",message:\"Username:\",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:\"password\",name:\"password\",message:s?\"Token:\":\"Password:\",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),{name:o,password:a}}var Kp=ne(Xe());var Up=new Set([\"npmAuthIdent\",\"npmAuthToken\"]),Eg=class extends ve{constructor(){super(...arguments);this.scope=Kp.Option.String(\"-s,--scope\",{description:\"Logout of the registry configured for a given scope\"});this.publish=Kp.Option.Boolean(\"--publish\",!1,{description:\"Logout of the publish registry\"});this.all=Kp.Option.Boolean(\"-A,--all\",!1,{description:\"Logout of all registries\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await mS({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ie.find(this.context.cwd,this.context.plugins),a=P.makeIdent((c=this.scope)!=null?c:null,\"pkg\");return!or.getAuthConfiguration(s,{configuration:o,ident:a}).get(\"npmAuthToken\")};return(await Ke.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await h7e(),s.reportInfo(0,\"Successfully logged out from everything\")),this.scope){await kge(\"npmScopes\",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,\"Scope authentication settings removed, but some other ones settings still apply to it\");return}let o=await mS({configuration:t,cwd:this.context.cwd,publish:this.publish});await kge(\"npmRegistries\",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,\"Registry authentication settings removed, but some other ones settings still apply to it\")})).exitCode()}};Eg.paths=[[\"npm\",\"logout\"]],Eg.usage=Kp.Command.Usage({category:\"Npm-related commands\",description:\"logout of the npm registry\",details:\"\\n      This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\\n\\n      Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\\n\\n      Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\\n\\n      Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\\n    \",examples:[[\"Logout of the default registry\",\"yarn npm logout\"],[\"Logout of the @my-scope scope\",\"yarn npm logout --scope my-scope\"],[\"Logout of the publish registry for the current package\",\"yarn npm logout --publish\"],[\"Logout of all registries\",\"yarn npm logout --all\"]]});function f7e(r,e){let t=r[e];if(!Ee.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...Up].every(s=>!i.has(s)))return!1;for(let s of Up)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of Up)delete n[s];return r[e]=n,!0}async function h7e(){let r=e=>{let t=!1,i=Ee.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))f7e(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ie.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function kge(r,e){return await Ie.updateHomeConfiguration({[r]:t=>{let i=Ee.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=Ee.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...Up].every(l=>!o.has(l)))return t;for(let l of Up)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of Up)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var fa=ne(Xe()),Ig=class extends ve{constructor(){super(...arguments);this.access=fa.Option.String(\"--access\",{description:\"The access for the published package (public or restricted)\"});this.tag=fa.Option.String(\"--tag\",\"latest\",{description:\"The tag on the registry that the package should be attached to\"});this.tolerateRepublish=fa.Option.Boolean(\"--tolerate-republish\",!1,{description:\"Warn and exit when republishing an already existing version of a package\"});this.otp=fa.Option.String(\"--otp\",{description:\"The OTP token to use with the command\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);if(n.manifest.private)throw new fa.UsageError(\"Private workspaces cannot be published\");if(n.manifest.name===null||n.manifest.version===null)throw new fa.UsageError(\"Workspaces must have valid names and versions to be published on an external registry\");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=or.getPublishRegistry(n.manifest,{configuration:t});return(await Ke.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let f=await Mt.get(Mt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(f,\"versions\"))throw new ot(15,'Registry returned invalid data for - missing \"versions\" field');if(Object.prototype.hasOwnProperty.call(f.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(f){if(((g=(u=f.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw f}await Jt.maybeExecuteWorkspaceLifecycleScript(n,\"prepublish\",{report:c}),await la.prepareForPack(n,{report:c},async()=>{let f=await la.genPackList(n);for(let B of f)c.reportInfo(null,B);let h=await la.genPackStream(n,f),p=await Ee.bufferStream(h),C=await Mp.getGitHead(n.cwd),w=await Mp.makePublishBody(n,p,{access:this.access,tag:this.tag,registry:a,gitHead:C});await Mt.put(Mt.getIdentUrl(s),w,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,\"Package archive published\")})).exitCode()}};Ig.paths=[[\"npm\",\"publish\"]],Ig.usage=fa.Command.Usage({category:\"Npm-related commands\",description:\"publish the active workspace to the npm registry\",details:'\\n      This command will pack the active workspace into a fresh archive and upload it to the npm registry.\\n\\n      The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\\n\\n      Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka \"private packages\"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\\n    ',examples:[[\"Publish the active workspace\",\"yarn npm publish\"]]});var Qg=ne(Xe()),Rge=ne($r());var wg=ne(Xe()),yg=class extends ve{constructor(){super(...arguments);this.json=wg.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.package=wg.Option.String({required:!1})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s;if(typeof this.package<\"u\")s=P.parseIdent(this.package);else{if(!n)throw new ct(i.cwd,this.context.cwd);if(!n.manifest.name)throw new wg.UsageError(`Missing 'name' field in ${K.fromPortablePath(x.join(n.cwd,xt.manifest))}`);s=n.manifest.name}let o=await iI(s,t),l={children:Ee.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:ee.tuple(ee.Type.RESOLUTION,{descriptor:P.makeDescriptor(s,c),locator:P.makeLocator(s,u)})}))};return Vn.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};yg.paths=[[\"npm\",\"tag\",\"list\"]],yg.usage=wg.Command.Usage({category:\"Npm-related commands\",description:\"list all dist-tags of a package\",details:`\n      This command will list all tags of a package from the npm registry.\n\n      If the package is not specified, Yarn will default to the current workspace.\n    `,examples:[[\"List all tags of package `my-pkg`\",\"yarn npm tag list my-pkg\"]]});async function iI(r,e){let t=`/-/package${Mt.getIdentUrl(r)}/dist-tags`;return Mt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:Mt.customPackageError})}var Bg=class extends ve{constructor(){super(...arguments);this.package=Qg.Option.String();this.tag=Qg.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);let s=P.parseDescriptor(this.package,!0),o=s.range;if(!Rge.default.valid(o))throw new Qg.UsageError(`The range ${ee.pretty(t,s.range,ee.Type.RANGE)} must be a valid semver version`);let a=or.getPublishRegistry(n.manifest,{configuration:t}),l=ee.pretty(t,s,ee.Type.IDENT),c=ee.pretty(t,o,ee.Type.RANGE),u=ee.pretty(t,this.tag,ee.Type.CODE);return(await Ke.start({configuration:t,stdout:this.context.stdout},async f=>{let h=await iI(s,t);Object.prototype.hasOwnProperty.call(h,this.tag)&&h[this.tag]===o&&f.reportWarning(0,`Tag ${u} is already set to version ${c}`);let p=`/-/package${Mt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Mt.put(p,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),f.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};Bg.paths=[[\"npm\",\"tag\",\"add\"]],Bg.usage=Qg.Command.Usage({category:\"Npm-related commands\",description:\"add a tag for a specific version of a package\",details:`\n      This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten.\n    `,examples:[[\"Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`\",\"yarn npm tag add my-pkg@2.3.4-beta.4 beta\"]]});var Jl=ne(Xe());var bg=class extends ve{constructor(){super(...arguments);this.package=Jl.Option.String();this.tag=Jl.Option.String()}async execute(){if(this.tag===\"latest\")throw new Jl.UsageError(\"The 'latest' tag cannot be removed.\");let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);let s=P.parseIdent(this.package),o=or.getPublishRegistry(n.manifest,{configuration:t}),a=ee.pretty(t,this.tag,ee.Type.CODE),l=ee.pretty(t,s,ee.Type.IDENT),c=await iI(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new Jl.UsageError(`${a} is not a tag of package ${l}`);return(await Ke.start({configuration:t,stdout:this.context.stdout},async g=>{let f=`/-/package${Mt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Mt.del(f,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};bg.paths=[[\"npm\",\"tag\",\"remove\"]],bg.usage=Jl.Command.Usage({category:\"Npm-related commands\",description:\"remove a tag from a package\",details:`\n      This command will remove a tag from a package from the npm registry.\n    `,examples:[[\"Remove the `beta` tag from package `my-pkg`\",\"yarn npm tag remove my-pkg beta\"]]});var nI=ne(Xe()),Sg=class extends ve{constructor(){super(...arguments);this.scope=nI.Option.String(\"-s,--scope\",{description:\"Print username for the registry configured for a given scope\"});this.publish=nI.Option.Boolean(\"--publish\",!1,{description:\"Print username for the publish registry\"})}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=or.getScopeRegistry(this.scope,{configuration:t,type:or.RegistryType.PUBLISH_REGISTRY}):this.scope?i=or.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=or.getPublishRegistry((await tp(t,this.context.cwd)).manifest,{configuration:t}):i=or.getDefaultRegistry({configuration:t}),(await Ke.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await Mt.get(\"/-/whoami\",{configuration:t,registry:i,authType:Mt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?P.makeIdent(this.scope,\"\"):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,\"Authentication failed - your credentials may have expired\");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Sg.paths=[[\"npm\",\"whoami\"]],Sg.usage=nI.Command.Usage({category:\"Npm-related commands\",description:\"display the name of the authenticated user\",details:\"\\n      Print the username associated with the current authentication settings to the standard output.\\n\\n      When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\\n\\n      When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\\n    \",examples:[[\"Print username for the default registry\",\"yarn npm whoami\"],[\"Print username for the registry on a given scope\",\"yarn npm whoami --scope company\"]]});var p7e={configuration:{npmPublishAccess:{description:\"Default access of the published packages\",type:\"STRING\",default:null},npmAuditExcludePackages:{description:\"Array of glob patterns of packages to exclude from npm audit\",type:\"STRING\",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:\"Array of glob patterns of advisory IDs to exclude from npm audit\",type:\"STRING\",default:[],isArray:!0}},commands:[dg,Cg,mg,Eg,Ig,Bg,yg,bg,Sg]},d7e=p7e;var e1={};ht(e1,{default:()=>R7e,patchUtils:()=>vg});var vg={};ht(vg,{applyPatchFile:()=>IS,diffFolders:()=>ZK,ensureUnpatchedDescriptor:()=>WK,extractPackageToDisk:()=>_K,extractPatchFlags:()=>Kge,isParentRequired:()=>XK,loadPatchFiles:()=>AI,makeDescriptor:()=>zK,makeLocator:()=>VK,makePatchHash:()=>$K,parseDescriptor:()=>oI,parseLocator:()=>aI,parsePatchFile:()=>sI});var C7e=/^@@ -(\\d+)(,(\\d+))? \\+(\\d+)(,(\\d+))? @@.*/;function Hp(r){return x.relative(ke.root,x.resolve(ke.root,K.toPortablePath(r)))}function m7e(r){let e=r.trim().match(C7e);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var E7e=420,I7e=493;var Fge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),y7e=r=>({header:m7e(r),parts:[]}),w7e={[\"@\"]:\"header\",[\"-\"]:\"deletion\",[\"+\"]:\"insertion\",[\" \"]:\"context\",[\"\\\\\"]:\"pragma\",undefined:\"context\"};function B7e(r){let e=[],t=Fge(),i=\"parsing header\",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=Fge()}for(let l=0;l<r.length;l++){let c=r[l];if(i===\"parsing header\")if(c.startsWith(\"@@\"))i=\"parsing hunks\",t.hunks=[],l-=1;else if(c.startsWith(\"diff --git \")){t&&t.diffLineFromPath&&a();let u=c.match(/^diff --git a\\/(.*?) b\\/(.*?)\\s*$/);if(!u)throw new Error(`Bad diff line: ${c}`);t.diffLineFromPath=u[1],t.diffLineToPath=u[2]}else if(c.startsWith(\"old mode \"))t.oldMode=c.slice(9).trim();else if(c.startsWith(\"new mode \"))t.newMode=c.slice(9).trim();else if(c.startsWith(\"deleted file mode \"))t.deletedFileMode=c.slice(18).trim();else if(c.startsWith(\"new file mode \"))t.newFileMode=c.slice(14).trim();else if(c.startsWith(\"rename from \"))t.renameFrom=c.slice(12).trim();else if(c.startsWith(\"rename to \"))t.renameTo=c.slice(10).trim();else if(c.startsWith(\"index \")){let u=c.match(/(\\w+)\\.\\.(\\w+)/);if(!u)continue;t.beforeHash=u[1],t.afterHash=u[2]}else c.startsWith(\"semver exclusivity \")?t.semverExclusivity=c.slice(19).trim():c.startsWith(\"--- \")?t.fromPath=c.slice(6).trim():c.startsWith(\"+++ \")&&(t.toPath=c.slice(6).trim());else{let u=w7e[c[0]]||null;switch(u){case\"header\":o(),n=y7e(c);break;case null:i=\"parsing header\",a(),l-=1;break;case\"pragma\":{if(!c.startsWith(\"\\\\ No newline at end of file\"))throw new Error(`Unrecognized pragma in patch file: ${c}`);if(!s)throw new Error(\"Bad parser state: No newline at EOF pragma encountered without context\");s.noNewlineAtEndOfFile=!0}break;case\"context\":case\"deletion\":case\"insertion\":{if(!n)throw new Error(\"Bad parser state: Hunk lines encountered before hunk header\");s&&s.type!==u&&(n.parts.push(s),s=null),s||(s={type:u,lines:[],noNewlineAtEndOfFile:!1}),s.lines.push(c.slice(1))}break;default:Ee.assertNever(u);break}}}a();for(let{hunks:l}of e)if(l)for(let c of l)b7e(c);return e}function Q7e(r){let e=[];for(let t of r){let{semverExclusivity:i,diffLineFromPath:n,diffLineToPath:s,oldMode:o,newMode:a,deletedFileMode:l,newFileMode:c,renameFrom:u,renameTo:g,beforeHash:f,afterHash:h,fromPath:p,toPath:C,hunks:w}=t,B=u?\"rename\":l?\"file deletion\":c?\"file creation\":w&&w.length>0?\"patch\":\"mode change\",v=null;switch(B){case\"rename\":{if(!u||!g)throw new Error(\"Bad parser state: rename from & to not given\");e.push({type:\"rename\",semverExclusivity:i,fromPath:Hp(u),toPath:Hp(g)}),v=g}break;case\"file deletion\":{let D=n||p;if(!D)throw new Error(\"Bad parse state: no path given for file deletion\");e.push({type:\"file deletion\",semverExclusivity:i,hunk:w&&w[0]||null,path:Hp(D),mode:ES(l),hash:f})}break;case\"file creation\":{let D=s||C;if(!D)throw new Error(\"Bad parse state: no path given for file creation\");e.push({type:\"file creation\",semverExclusivity:i,hunk:w&&w[0]||null,path:Hp(D),mode:ES(c),hash:h})}break;case\"patch\":case\"mode change\":v=C||s;break;default:Ee.assertNever(B);break}v&&o&&a&&o!==a&&e.push({type:\"mode change\",semverExclusivity:i,path:Hp(v),oldMode:ES(o),newMode:ES(a)}),v&&w&&w.length&&e.push({type:\"patch\",semverExclusivity:i,path:Hp(v),hunks:w,beforeHash:f,afterHash:h})}if(e.length===0)throw new Error(\"Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string\");return e}function ES(r){let e=parseInt(r,8)&511;if(e!==E7e&&e!==I7e)throw new Error(`Unexpected file mode string: ${r}`);return e}function sI(r){let e=r.split(/\\n/g);return e[e.length-1]===\"\"&&e.pop(),Q7e(B7e(e))}function b7e(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case\"context\":t+=n.length,e+=n.length;break;case\"deletion\":e+=n.length;break;case\"insertion\":t+=n.length;break;default:Ee.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Gp=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function Yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<\"u\"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error(\"Cannot preserve the time values of a symlink\")}async function IS(r,{baseFs:e=new $t,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!vt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case\"file deletion\":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await Yp(e,x.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case\"rename\":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await Yp(e,x.dirname(n.fromPath),async()=>{await Yp(e,x.dirname(n.toPath),async()=>{await Yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case\"file creation\":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(`\n`)+(n.hunk.parts[0].noNewlineAtEndOfFile?\"\":`\n`):\"\";await e.mkdirpPromise(x.dirname(n.path),{chmod:493,utimes:[Pr.SAFE_TIME,Pr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,Pr.SAFE_TIME,Pr.SAFE_TIME)}break;case\"patch\":await Yp(e,n.path,async()=>{await x7e(n,{baseFs:e,dryRun:t})});break;case\"mode change\":{let o=(await e.statPromise(n.path)).mode;if(Nge(n.newMode)!==Nge(o))continue;await Yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:Ee.assertNever(n);break}}function Nge(r){return(r&64)>0}function Lge(r){return r.replace(/\\s+$/,\"\")}function v7e(r,e){return Lge(r)===Lge(e)}async function x7e({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,\"utf8\")).split(/\\n/),a=[],l=0,c=0;for(let g of r){let f=Math.max(c,g.header.patched.start+l),h=Math.max(0,f-c),p=Math.max(0,o.length-f-g.header.original.length),C=Math.max(h,p),w=0,B=0,v=null;for(;w<=C;){if(w<=h&&(B=f-w,v=Tge(g,o,B),v!==null)){w=-w;break}if(w<=p&&(B=f+w,v=Tge(g,o,B),v!==null))break;w+=1}if(v===null)throw new Gp(r.indexOf(g),g);a.push(v),l+=w,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let f of g)switch(f.type){case\"splice\":{let h=f.index+u;o.splice(h,f.numToDelete,...f.linesToInsert),u+=f.linesToInsert.length-f.numToDelete}break;case\"pop\":o.pop();break;case\"push\":o.push(f.line);break;default:Ee.assertNever(f);break}await t.writeFilePromise(e,o.join(`\n`),{mode:n})}function Tge(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case\"context\":case\"deletion\":{for(let s of n.lines){let o=e[t];if(o==null||!v7e(o,s))return null;t+=1}n.type===\"deletion\"&&(i.push({type:\"splice\",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:\"push\",line:\"\"}))}break;case\"insertion\":i.push({type:\"splice\",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:\"pop\"});break;default:Ee.assertNever(n.type);break}return i}var D7e=/^builtin<([^>]+)>$/;function JK(r,e){let{source:t,selector:i,params:n}=P.parseRange(r);if(t===null)throw new Error(\"Patch locators must explicitly define their source\");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator==\"string\"?P.parseLocator(n.locator):null,a=n&&typeof n.version==\"string\"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function oI(r){let{sourceItem:e,...t}=JK(r.range,P.parseDescriptor);return{...t,sourceDescriptor:e}}function aI(r){let{sourceItem:e,...t}=JK(r.reference,P.parseLocator);return{...t,sourceLocator:e}}function WK(r){if(!r.range.startsWith(\"patch:\"))return r;let{sourceItem:e}=JK(r.range,P.parseDescriptor);return e}function Oge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:P.stringifyLocator(r)}:{},a=typeof i<\"u\"?{version:i}:{},l=typeof n<\"u\"?{hash:n}:{};return P.makeRange({protocol:\"patch:\",source:s(e),selector:t.join(\"&\"),params:{...a,...l,...o}})}function zK(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return P.makeDescriptor(r,Oge({parentLocator:e,sourceItem:t,patchPaths:i},P.stringifyDescriptor))}function VK(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return P.makeLocator(r,Oge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},P.stringifyLocator))}function Mge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith(\"~\")&&(i=i.slice(1));let s=i.match(D7e);return s!==null?t(s[1]):x.isAbsolute(i)?r(i):e(i)}function Kge(r){let e=r.startsWith(\"~\");return e&&(r=r.slice(1)),{optional:e}}function XK(r){return Mge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function AI(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(ke.root),prefixPath:x.relative(ke.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await Ee.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=Kge(o),l=await Mge({onAbsolute:async()=>await M.readFilePromise(o,\"utf8\"),onRelative:async()=>{if(n===null)throw new Error(\"Assertion failed: The parent locator should have been fetched\");return await n.packageFs.readFilePromise(x.join(n.prefixPath,o),\"utf8\")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source==\"string\"&&(o.source=o.source.replace(/\\r\\n?/g,`\n`));return s}async function _K(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>\"u\")throw new Error(\"Assertion failed: Expected the package to be registered\");let n=t.storedChecksums,s=new ni,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=x.join(l,\"source\"),u=x.join(l,\"user\"),g=x.join(l,\".yarn-patch.json\");return await Promise.all([M.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),M.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),M.writeJsonPromise(g,{locator:P.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function ZK(r,e){let t=K.fromPortablePath(r).replace(/\\\\/g,\"/\"),i=K.fromPortablePath(e).replace(/\\\\/g,\"/\"),{stdout:n,stderr:s}=await mr.execvp(\"git\",[\"-c\",\"core.safecrlf=false\",\"diff\",\"--src-prefix=a/\",\"--dst-prefix=b/\",\"--ignore-cr-at-eol\",\"--full-index\",\"--no-index\",\"--no-renames\",\"--text\",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:\"1\",HOME:\"\",XDG_CONFIG_HOME:\"\",USERPROFILE:\"\"}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH.\nThe following error was reported by 'git':\n${s}`);let o=t.startsWith(\"/\")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${Ee.escapeRegExp(`/${o(t)}/`)})`,\"g\"),\"$1/\").replace(new RegExp(`(a|b)${Ee.escapeRegExp(`/${o(i)}/`)}`,\"g\"),\"$1/\").replace(new RegExp(Ee.escapeRegExp(`${t}/`),\"g\"),\"\").replace(new RegExp(Ee.escapeRegExp(`${i}/`),\"g\"),\"\")}function $K(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=sI(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!vt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return gi.makeHash(`${3}`,...t).slice(0,6)}function Uge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case\"context\":t.reportInfo(null,`  ${ee.pretty(e,n,\"grey\")}`);break;case\"deletion\":t.reportError(28,`- ${ee.pretty(e,n,ee.Type.REMOVED)}`);break;case\"insertion\":t.reportError(28,`+ ${ee.pretty(e,n,ee.Type.ADDED)}`);break;default:Ee.assertNever(i.type)}}var yS=class{supports(e,t){return!!e.reference.startsWith(\"patch:\")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=aI(e),a=await AI(i,o,t),l=await M.mktempPromise(),c=x.join(l,\"current.zip\"),u=await t.fetcher.fetch(n,t),g=P.getIdentVendorPath(e),f=await nn(),h=new Xr(c,{libzip:f,create:!0,level:t.project.configuration.get(\"compressionLevel\")});await Ee.releaseAfterUseAsync(async()=>{await h.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),h.saveAndClose();for(let{source:p,optional:C}of a){if(p===null)continue;let w=new Xr(c,{libzip:f,level:t.project.configuration.get(\"compressionLevel\")}),B=new jt(x.resolve(ke.root,g),{baseFs:w});try{await IS(sI(p),{baseFs:B,version:s})}catch(v){if(!(v instanceof Gp))throw v;let D=t.project.configuration.get(\"enableInlineHunks\"),L=!D&&!C?\" (set enableInlineHunks for details)\":\"\",H=`${P.prettyLocator(t.project.configuration,e)}: ${v.message}${L}`,j=$=>{!D||Uge(v.hunk,{configuration:t.project.configuration,report:$})};if(w.discardAndClose(),C){t.report.reportWarningOnce(66,H,{reportExtra:j});continue}else throw new ot(66,H,j)}w.saveAndClose()}return new Xr(c,{libzip:f,level:t.project.configuration.get(\"compressionLevel\")})}};var wS=class{supportsDescriptor(e,t){return!!e.range.startsWith(\"patch:\")}supportsLocator(e,t){return!!e.reference.startsWith(\"patch:\")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=oI(e);return n.every(s=>!XK(s))?e:P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=oI(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error(\"Assertion failed: This resolver cannot be used unless a fetcher is configured\");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=oI(e),a=await AI(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>\"u\")throw new Error(\"Assertion failed: The dependency should have been resolved\");let c=$K(a,l.version);return[VK(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=aI(e);return{...await t.resolver.resolve(i,t),...e}}};var Wl=ne(Xe());var xg=class extends ve{constructor(){super(...arguments);this.save=Wl.Option.Boolean(\"-s,--save\",!1,{description:\"Add the patch to your resolution entries\"});this.patchFolder=Wl.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=x.join(s,\"../source\"),a=x.join(s,\"../.yarn-patch.json\");if(!M.existsSync(o))throw new Wl.UsageError(\"The argument folder didn't get created by 'yarn patch'\");let l=await ZK(o,s),c=await M.readJsonPromise(a),u=P.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new Wl.UsageError(\"No package found in the project for the given locator\");if(!this.save){this.context.stdout.write(l);return}let g=t.get(\"patchFolder\"),f=x.join(g,`${P.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(f,l);let h=new Map;for(let p of i.storedPackages.values()){if(P.isVirtualLocator(p))continue;let C=p.dependencies.get(u.identHash);if(!C)continue;let w=P.isVirtualDescriptor(C)?P.devirtualizeDescriptor(C):C,B=WK(w),v=i.storedResolutions.get(B.descriptorHash);if(!v)throw new Error(\"Assertion failed: Expected the resolution to have been registered\");if(!i.storedPackages.get(v))throw new Error(\"Assertion failed: Expected the package to have been registered\");let L=i.originalPackages.get(p.locatorHash);if(!L)throw new Error(\"Assertion failed: Expected the original package to have been registered\");let H=L.dependencies.get(C.identHash);if(!H)throw new Error(\"Assertion failed: Expected the original dependency to have been registered\");h.set(H.descriptorHash,H)}for(let p of h.values()){let C=zK(p,{parentLocator:null,sourceDescriptor:P.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${x.relative(i.cwd,f)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:P.stringifyIdent(C),description:p.range}},reference:C.range})}await i.persist()}};xg.paths=[[\"patch-commit\"]],xg.usage=Wl.Command.Usage({description:\"generate a patch out of a directory\",details:\"\\n      By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\\n\\n      With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\\n\\n      Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\\n    \"});var CA=ne(Xe());var Pg=class extends ve{constructor(){super(...arguments);this.json=CA.Option.Boolean(\"--json\",!1,{description:\"Format the output as an NDJSON stream\"});this.package=CA.Option.String()}async execute(){let t=await Ie.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await He.find(t,this.context.cwd),s=await kt.find(t);if(!n)throw new ct(i.cwd,this.context.cwd);await i.restoreInstallState();let o=P.parseLocator(this.package);if(o.reference===\"unknown\"){let a=Ee.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?Ee.mapAndFilter.skip:P.isVirtualLocator(l)?Ee.mapAndFilter.skip:l);if(a.length===0)throw new CA.UsageError(\"No package found in the project for the given locator\");if(a.length>1)throw new CA.UsageError(`Multiple candidate packages found; explicitly choose one of them (use \\`yarn why <package>\\` to get more information as to who depends on them):\n${a.map(l=>`\n- ${P.prettyLocator(t,l)}`).join(\"\")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new CA.UsageError(\"No package found in the project for the given locator\");await Ke.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await _K(o,{cache:s,project:i});a.reportJson({locator:P.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${P.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${ee.pretty(t,K.fromPortablePath(l),\"magenta\")}`),a.reportInfo(0,`Once you are done run ${ee.pretty(t,`yarn patch-commit -s ${process.platform===\"win32\"?'\"':\"\"}${K.fromPortablePath(l)}${process.platform===\"win32\"?'\"':\"\"}`,\"cyan\")} and Yarn will store a patchfile based on your changes.`)})}};Pg.paths=[[\"patch\"]],Pg.usage=CA.Command.Usage({description:\"prepare a package for patching\",details:\"\\n      This command will cause a package to be extracted in a temporary directory intended to be editable at will.\\n      \\n      Once you're done with your changes, run `yarn patch-commit -s <path>` (with `<path>` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\\n    \"});var k7e={configuration:{enableInlineHunks:{description:\"If true, the installs will print unmatched patch hunks\",type:\"BOOLEAN\",default:!1},patchFolder:{description:\"Folder where the patch files must be written\",type:\"ABSOLUTE_PATH\",default:\"./.yarn/patches\"}},commands:[xg,Pg],fetchers:[yS],resolvers:[wS]},R7e=k7e;var n1={};ht(n1,{default:()=>L7e});var BS=ne(Xe()),QS=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error(\"Assertion failed: Expected the pnpm linker to be enabled\");let i=r1(),n=t.project.installersCustomData.get(i);if(!n)throw new BS.UsageError(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>\"u\")throw new BS.UsageError(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=r1(),n=t.project.installersCustomData.get(i);if(!n)throw new BS.UsageError(`The project in ${ee.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ee.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\\/node_modules\\/(@[^/]*\\/)?[^/]+)(\\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=x.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new t1(e)}isEnabled(e){return e.project.configuration.get(\"nodeLinker\")===\"pnpm\"}},t1=class{constructor(e){this.opts=e;this.asyncActions=new Ee.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return r1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case\"SOFT\":return this.installPackageSoft(e,t,i);case\"HARD\":return this.installPackageHard(e,t,i)}throw new Error(\"Assertion failed: Unsupported package link type\")}async installPackageSoft(e,t,i){let n=x.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=F7e(e,{project:this.opts.project});this.customData.locatorByPath.set(n,P.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e,a={manifest:(u=await nt.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new nt,misc:{hasBindingGyp:ho.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=ho.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get(\"nodeLinker\")===\"pnpm\"&&(!Hge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>\"u\")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(e)})`);let s=x.join(n,xt.nodeModules),o=[],a=await Gge(s);for(let[l,c]of t){let u=c;Hge(c,{project:this.opts.project})||(this.opts.report.reportWarning(0,\"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies\"),u=P.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>\"u\")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(c)})`);let f=P.stringifyIdent(l),h=x.join(s,f),p=x.relative(x.dirname(h),g),C=a.get(f);a.delete(f),o.push(Promise.resolve().then(async()=>{if(C){if(C.isSymbolicLink()&&await M.readlinkPromise(h)===p)return;await M.removePromise(h)}await M.mkdirpPromise(x.dirname(h)),process.platform==\"win32\"?await M.symlinkPromise(g,h,\"junction\"):await M.symlinkPromise(p,h)}))}o.push(Yge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error(\"External dependencies haven't been implemented for the pnpm linker\")}async finalizeInstall(){let e=qge(this.opts.project);if(this.opts.project.configuration.get(\"nodeLinker\")!==\"pnpm\")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=x.contains(e,s);if(o!==null){let[a,,...l]=o.split(x.sep);i.add(a);let c=x.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let f=x.join(c,g);if(g===xt.nodeModules){let h=await Gge(f);return h.delete(l.join(x.sep)),Yge(f,h)}else return M.removePromise(f)}))).catch(u=>{if(u.code!==\"ENOENT\")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(x.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await i1(e),this.opts.project.configuration.get(\"nodeLinker\")!==\"node-modules\"&&await i1(jge(this.opts.project)),{customData:this.customData}}};function r1(){return JSON.stringify({name:\"PnpmInstaller\",version:2})}function jge(r){return x.join(r.cwd,xt.nodeModules)}function qge(r){return x.join(jge(r),\".store\")}function F7e(r,{project:e}){let t=P.slugifyLocator(r),i=P.getIdentVendorPath(r);return x.join(qge(e),t,i)}function Hge(r,{project:e}){return!P.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function Gge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!==\"ENOENT\")throw i}try{for(let i of t)if(!i.name.startsWith(\".\"))if(i.name.startsWith(\"@\")){let n=await M.readdirPromise(x.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!==\"ENOENT\")throw i}return e}async function Yge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(x.join(r,s)));let o=(n=P.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>i1(x.join(r,s)))))}async function i1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!==\"ENOENT\"&&e.code!==\"ENOTEMPTY\")throw e}}var N7e={linkers:[QS]},L7e=N7e;var jQ=()=>({modules:new Map([[\"@yarnpkg/cli\",rE],[\"@yarnpkg/core\",vm],[\"@yarnpkg/fslib\",hd],[\"@yarnpkg/libzip\",VC],[\"@yarnpkg/parsers\",wd],[\"@yarnpkg/shell\",$C],[\"clipanion\",Iee(T7e)],[\"semver\",O7e],[\"typanion\",M7e],[\"yup\",K7e],[\"@yarnpkg/plugin-essentials\",WO],[\"@yarnpkg/plugin-compat\",ZO],[\"@yarnpkg/plugin-dlx\",$O],[\"@yarnpkg/plugin-file\",iM],[\"@yarnpkg/plugin-git\",JO],[\"@yarnpkg/plugin-github\",nM],[\"@yarnpkg/plugin-http\",sM],[\"@yarnpkg/plugin-init\",lM],[\"@yarnpkg/plugin-link\",cM],[\"@yarnpkg/plugin-nm\",YM],[\"@yarnpkg/plugin-npm\",UK],[\"@yarnpkg/plugin-npm-cli\",qK],[\"@yarnpkg/plugin-pack\",LK],[\"@yarnpkg/plugin-patch\",e1],[\"@yarnpkg/plugin-pnp\",kM],[\"@yarnpkg/plugin-pnpm\",n1]]),plugins:new Set([\"@yarnpkg/plugin-essentials\",\"@yarnpkg/plugin-compat\",\"@yarnpkg/plugin-dlx\",\"@yarnpkg/plugin-file\",\"@yarnpkg/plugin-git\",\"@yarnpkg/plugin-github\",\"@yarnpkg/plugin-http\",\"@yarnpkg/plugin-init\",\"@yarnpkg/plugin-link\",\"@yarnpkg/plugin-nm\",\"@yarnpkg/plugin-npm\",\"@yarnpkg/plugin-npm-cli\",\"@yarnpkg/plugin-pack\",\"@yarnpkg/plugin-patch\",\"@yarnpkg/plugin-pnp\",\"@yarnpkg/plugin-pnpm\"])});EQ({binaryVersion:Or||\"<unknown>\",pluginConfiguration:jQ()});})();\n/*!\n * buildToken\n * Builds OAuth token prefix (helper function)\n *\n * @name buildToken\n * @function\n * @param {GitUrl} obj The parsed Git url object.\n * @return {String} token prefix\n */\n/*!\n * fill-range <https://github.com/jonschlinkert/fill-range>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n/*!\n * is-extglob <https://github.com/jonschlinkert/is-extglob>\n *\n * Copyright (c) 2014-2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n/*!\n * is-glob <https://github.com/jonschlinkert/is-glob>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n/*!\n * is-number <https://github.com/jonschlinkert/is-number>\n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n/*!\n * is-windows <https://github.com/jonschlinkert/is-windows>\n *\n * Copyright © 2015-2018, Jon Schlinkert.\n * Released under the MIT License.\n */\n/*!\n * to-regex-range <https://github.com/micromatch/to-regex-range>\n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n/**\n  @license\n  Copyright Node.js contributors. All rights reserved.\n\n  Permission is hereby granted, free of charge, to any person obtaining a copy\n  of this software and associated documentation files (the \"Software\"), to\n  deal in the Software without restriction, including without limitation the\n  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n  sell copies of the Software, and to permit persons to whom the Software is\n  furnished to do so, subject to the following conditions:\n\n  The above copyright notice and this permission notice shall be included in\n  all copies or substantial portions of the Software.\n\n  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n  IN THE SOFTWARE.\n*/\n"
  },
  {
    "path": ".yarnrc.yml",
    "content": "nodeLinker: node-modules\n\nplugins:\n  - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs\n    spec: \"@yarnpkg/plugin-workspace-tools\"\n\nyarnPath: .yarn/releases/yarn-3.3.0.cjs\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participation in our\ncommunity a harassment-free experience for everyone, regardless of age, body\nsize, visible or invisible disability, ethnicity, sex characteristics, gender\nidentity and expression, level of experience, education, socio-economic status,\nnationality, personal appearance, race, religion, or sexual identity\nand orientation.\n\nWe pledge to act and interact in ways that contribute to an open, welcoming,\ndiverse, inclusive, and healthy community.\n\n## Our Standards\n\nExamples of behavior that contributes to a positive environment for our\ncommunity include:\n\n- Demonstrating empathy and kindness toward other people\n- Being respectful of differing opinions, viewpoints, and experiences\n- Giving and gracefully accepting constructive feedback\n- Accepting responsibility and apologizing to those affected by our mistakes,\n  and learning from the experience\n- Focusing on what is best not just for us as individuals, but for the\n  overall community\n\nExamples of unacceptable behavior include:\n\n- The use of sexualized language or imagery, and sexual attention or\n  advances of any kind\n- Trolling, insulting or derogatory comments, and personal or political attacks\n- Public or private harassment\n- Publishing others' private information, such as a physical or email\n  address, without their explicit permission\n- Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Enforcement Responsibilities\n\nCommunity leaders are responsible for clarifying and enforcing our standards of\nacceptable behavior and will take appropriate and fair corrective action in\nresponse to any behavior that they deem inappropriate, threatening, offensive,\nor harmful.\n\nCommunity leaders have the right and responsibility to remove, edit, or reject\ncomments, commits, code, wiki edits, issues, and other contributions that are\nnot aligned to this Code of Conduct, and will communicate reasons for moderation\ndecisions when appropriate.\n\n## Scope\n\nThis Code of Conduct applies within all community spaces, and also applies when\nan individual is officially representing the community in public spaces.\nExamples of representing our community include using an official e-mail address,\nposting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported to the community leaders responsible for enforcement at [Stability AI](https://stability.ai).\nAll complaints will be reviewed and investigated promptly and fairly.\n\nAll community leaders are obligated to respect the privacy and security of the\nreporter of any incident.\n\n## Enforcement Guidelines\n\nCommunity leaders will follow these Community Impact Guidelines in determining\nthe consequences for any action they deem in violation of this Code of Conduct:\n\n### 1. Correction\n\n**Community Impact**: Use of inappropriate language or other behavior deemed\nunprofessional or unwelcome in the community.\n\n**Consequence**: A private, written warning from community leaders, providing\nclarity around the nature of the violation and an explanation of why the\nbehavior was inappropriate. A public apology may be requested.\n\n### 2. Warning\n\n**Community Impact**: A violation through a single incident or series\nof actions.\n\n**Consequence**: A warning with consequences for continued behavior. No\ninteraction with the people involved, including unsolicited interaction with\nthose enforcing the Code of Conduct, for a specified period of time. This\nincludes avoiding interactions in community spaces as well as external channels\nlike social media. Violating these terms may lead to a temporary or\npermanent ban.\n\n### 3. Temporary Ban\n\n**Community Impact**: A serious violation of community standards, including\nsustained inappropriate behavior.\n\n**Consequence**: A temporary ban from any sort of interaction or public\ncommunication with the community for a specified period of time. No public or\nprivate interaction with the people involved, including unsolicited interaction\nwith those enforcing the Code of Conduct, is allowed during this period.\nViolating these terms may lead to a permanent ban.\n\n### 4. Permanent Ban\n\n**Community Impact**: Demonstrating a pattern of violation of community\nstandards, including sustained inappropriate behavior, harassment of an\nindividual, or aggression toward or disparagement of classes of individuals.\n\n**Consequence**: A permanent ban from any sort of public interaction within\nthe community.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage],\nversion 2.0, available at\nhttps://www.contributor-covenant.org/version/2/0/code_of_conduct.html.\n\nCommunity Impact Guidelines were inspired by [Mozilla's code of conduct\nenforcement ladder](https://github.com/mozilla/diversity).\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see the FAQ at\nhttps://www.contributor-covenant.org/faq. Translations are available at\nhttps://www.contributor-covenant.org/translations.\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2023 Stability AI\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": "README.md",
    "content": "<div align=\"center\" style=\"display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1em; margin: 4em 0;\">\n\n<img src=\"./misc/Banner.png\" />\n<img src=\"./misc/GenerateScreenshot.png\" style=\"width: 400px; max-width: 600px; flex-grow: 1;\" />\n<img src=\"./misc/EditScreenshot.png\" style=\"width: 400px; max-width: 600px; flex-grow: 1;\" />\n\n<h3>👋 Welcome to StableStudio, the open-source version of <a href=\"https://dreamstudio.ai\" target=\"_blank\">DreamStudio</a>!</h3>\n\n**🗺 Contents – [🚀 Quick Start](#quick-start) · [ℹ️ About](#about) · [🙋 FAQ](#faq) · [🧑‍💻 Contributing](#contributing)**\n\n**📚 Documentation – [🎨 UI](./packages/stablestudio-ui/README.md) · [🔌 Plugins](./packages/stablestudio-plugin/README.md) · <a href=\"https://platform.stability.ai\" target=\"_blank\">⚡️ platform.stability.ai</a>**\n\n**🔗 Links – <a href=\"https://discord.com/channels/1002292111942635562/1108055793674227782\" target=\"_blank\">🎮 Discord</a> · <a href=\"https://dreamstudio.ai\" target=\"_blank\">🌈 DreamStudio</a> · <a href=\"https://github.com/Stability-AI/StableStudio/issues\">🛟 Bugs & Support</a> · <a href=\"https://github.com/Stability-AI/StableStudio/discussions\">💬 Discussion</a>**\n\n<br />\n<br />\n\n</div>\n\n# <a id=\"quick-start\" href=\"#quick-start\">🚀 Quick Start</a>\n\nYou'll need to have [Node.js](https://nodejs.org/en/) and [Yarn](https://yarnpkg.com/) installed. Then run the following commands to install dependencies and launch StableStudio.\n\n```bash\ngit clone https://github.com/Stability-AI/StableStudio.git\n```\n\n```bash\ncd StableStudio\n```\n\n```bash\nyarn\n```\n\n```bash\nyarn dev\n```\n\n_**That's it! 🎉**_\n\nStableStudio will be running at [localhost:3000](http://localhost:3000) by default.\n\n> If you are using the default Stability API plugin, You'll need to have your [API key](https://platform.stability.ai/docs/getting-started/authentication) handy. Otherwise, you should be good to go!\n\n# <a id=\"about\" href=\"#about\">About</a>\n\n<div style=\"display: flex; justify-content: center; align-items: center; gap: 1em; margin: 0 0 2em 0;\">\n  <img src=\"./misc/PainterWithRobot.png\" style=\"flex-grow: 1; flex-shrink: 1;\" />\n</div>\n\nStableStudio is [Stability AI](https://stability.ai)'s official open-source variant of [DreamStudio](https://www.dreamstudio.ai), our user interface for generative AI. It is a web-based application that allows users to create and edit generated images. We're not entirely sure where this project is going just yet, but we're excited to see what the community does with it!\n\n# <a id=\"faq\" href=\"#faq\">FAQ</a>\n\n### What's the difference between StableStudio and [DreamStudio](https://dreamstudio.ai)?\n\n_Not much!_ There are a few tweaks we made to make the project more community-friendly:\n\n- We removed [DreamStudio](https://dreamstudio.ai)-specific branding.\n\n- All \"over-the-wire\" API calls have been replaced by a [plugin system](./packages/stablestudio-plugin/README.md) which allows you to easily swap out the back-end.\n\n  - With a little bit of TypeScript, you can [create your own plugin](./packages/stablestudio-plugin/README.md) and use StableStudio with any back-end you want!\n\n- We removed Stability-specific account features such as billing, API key management, etc.\n\n  - These features are still available at [DreamStudio's account page](https://dreamstudio.ai/account).\n\n### Will [DreamStudio](https://dreamstudio.ai) still be supported?\n\n_Yes!_ Stability's hosted deployment of StableStudio will remain [DreamStudio](https://dreamstudio.ai). It will continue to get updates and stay up-to-date with StableStudio whenever possible.\n\n# <a id=\"contributing\" href=\"#contributing\">🧑‍💻 Contributing</a>\n\n<div style=\"display: flex; justify-content: center; align-items: center; gap: 1em; margin: 0 0 2em 0;\">\n  <img src=\"./misc/ProgrammingRobots.png\" style=\"flex-grow: 1; flex-shrink: 1;\" />\n</div>\n\n_**Community contributions are encouraged!**_\n\n**The UI package's [README](./packages/stablestudio-ui/README.md) is a great place to start.** Bug fixes, documentation, general clean-up, new features, etc. are all welcome.\n\nHere are some useful links...\n\n- [Discussion](https://github.com/Stability-AI/StableStudio/discussions)\n- [Open Issues](https://github.com/Stability-AI/StableStudio/issues)\n- [Open Pull Requests](https://github.com/Stability-AI/StableStudio/pulls)\n- [Code of Conduct](./CODE_OF_CONDUCT.md)\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"license\": \"MIT\",\n  \"packageManager\": \"yarn@3.3.0\",\n  \"workspaces\": {\n    \"packages\": [\n      \"packages/*\"\n    ]\n  },\n  \"scripts\": {\n    \"postinstall\": \"node -e \\\"try { require('husky').install() } catch (e) {if (e.code !== 'MODULE_NOT_FOUND') throw e}\\\" && yarn build\",\n    \"stablestudio-plugin\": \"yarn workspace @stability/stablestudio-plugin\",\n    \"stablestudio-plugin-example\": \"yarn workspace @stability/stablestudio-plugin-example\",\n    \"stablestudio-plugin-stability\": \"yarn workspace @stability/stablestudio-plugin-stability\",\n    \"stablestudio-plugin-webgpu\": \"yarn workspace @stability/stablestudio-plugin-webgpu\",\n    \"stablestudio-plugin-webui\": \"yarn workspace @stability/stablestudio-plugin-webui\",\n    \"stablestudio-ui\": \"yarn workspace @stability/stablestudio-ui\",\n    \"dev:use-example-plugin\": \"cross-env VITE_USE_EXAMPLE_PLUGIN=true yarn dev\",\n    \"dev:use-webui-plugin\": \"cross-env VITE_USE_WEBUI_PLUGIN=true yarn dev\",\n    \"dev\": \"yarn workspaces foreach --all --interlaced --verbose --parallel --jobs unlimited run dev\",\n    \"build\": \"yarn workspaces foreach --all --interlaced --verbose --jobs unlimited run build\",\n    \"clean\": \"yarn workspaces foreach --all --interlaced --verbose --parallel --jobs unlimited run clean && rimraf node_modules\"\n  },\n  \"devDependencies\": {\n    \"cross-env\": \"^7.0.3\",\n    \"husky\": \"^8.0.3\",\n    \"lint-staged\": \"^13.1.2\",\n    \"rimraf\": \"^3.0.2\",\n    \"yarn\": \"^1.22.19\"\n  },\n  \"lint-staged\": {\n    \"./packages/ui/**/*.{ts,tsx,js,jsx,md}\": [\n      \"prettier --write\",\n      \"eslint --fix\"\n    ]\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin/.eslintrc.json",
    "content": "{ \"extends\": [\"../../.eslintrc.json\"] }\n"
  },
  {
    "path": "packages/stablestudio-plugin/.gitignore",
    "content": "lib\n"
  },
  {
    "path": "packages/stablestudio-plugin/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2023 Stability AI\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": "packages/stablestudio-plugin/README.md",
    "content": "<div align=\"center\">\n\n# 🔌 Plugins\n\n**🗺 Contents – [ℹ️ About](#about) · [📦 Installation](#installation) · [🤝 Contract](#technology) · [🔮 Future](#conventions)**\n\n**[⬆️ Top-Level README](../../README.md)**\n\n![MagicalElectricPlugs](../../misc/MagicalElectricPlugs.png)\n\n### 🚧 👷 **PLUGINS ARE EXPERIMENTAL AND NOT FINAL** 🛠 🚧\n\n_The contract and implementation are [likely to change](https://github.com/Stability-AI/StableStudio/issues/3)..._\n\n</div>\n\n# <a id=\"about\" href=\"#about\">ℹ️ About</a>\n\nIn order to make StableStudio easier to extend, we've ripped out the \"back-end\" into a plugin system.\n\nThis means you can implement an entirely different inference stack, StableStudio doesn't care if it's local or a hosted API.\n\n## ⭐️ First-Party Plugins\n\nThere are currently three first-party plugins which are maintained in this repository:\n\n- [`stablestudio-plugin-stability`](../stablestudio-plugin-stability/src/index.ts) – The default plugin which uses [Stability's API](https://platform.stability.ai) for inference.\n\n  ```bash\n  yarn dev\n  ```\n\n- [`stablestudio-plugin-webui`](../stablestudio-plugin-webui/README.md) – This plugin uses [`stable-diffusion-webui`](https://github.com/AUTOMATIC1111/stable-diffusion-webui) for inference.\n\n  ```bash\n  yarn dev:use-webui-plugin\n  ```\n\nWe are still figuring out a more scalable strategy for third-party plugins, [let us know what you think](https://github.com/Stability-AI/StableStudio/issues/3)!\n\n## ⚡️ Features\n\nWe're hoping this list expands [over time](#future), but here's what's available right now...\n\n- **🏞 Image Generation**\n\n  All aspects of image generation are handled by plugins including the default input, how styles are implemented, how to fetch existing images, etc.\n\n- **🪪 Plugin Manifest**\n\n  Plugins can provide a manifest with a markdown description, author details, version information, etc.\n\n- **⚙️ Plugin Settings**\n\n  Plugins can declare settings which are available to the user in the settings menu.\n\n## 🧪 Development\n\n**If you want to play around with an example plugin which has nice developer tooling, check out the [example plugin](../stablestudio-plugin-example/src/index.ts).**\n\nYou can load the UI using example plugin instead of the default [Stability plugin](../stablestudio-plugin-stability/src/index.ts) by running...\n\n```bash\nyarn dev:use-example-plugin\n```\n\nAny changes you make within the [example plugin](../stablestudio-plugin-example/src/index.ts) will be hot-reloaded into StableStudio.\n\n# <a id=\"installation\" href=\"#installation\">📦 Installation</a>\n\n**This is mainly a feature intended for developers, we're [likely to change](https://github.com/Stability-AI/StableStudio/issues/3) how plugins work for end-users.**\n\n_Never install plugins from untrusted sources!_\n\nAlthough they are sand-boxed to the browser, a malicious actor could read through your image history or steal your API key if you're not careful.\n\nTo install a plugin, first enable \"developer mode\" in the settings menu...\n\n![DeveloperMode](../../misc/DeveloperMode.png)\n\nNow you can point to any fetch-able JavaScript file which exports a plugin...\n\n![InstallPlugin](../../misc/InstallPlugin.png)\n\nIf loaded successfully, you'll see it in the settings menu...\n\n![ExamplePlugin](../../misc/ExamplePlugin.png)\n\n✅ _**That's it!**_\n\nAs of now, you can only have one active plugin at a time.\n\nThe main purpose of plugins in their current form is to allow developers to experiment with different inference stacks.\n\n# <a id=\"contract\" href=\"#contract\">🤝 Contract</a>\n\n**Check out the [TypeScript source](./src/Plugin.ts) to see full documentation of the API.**\n\nPlugins are effectively just a bag of JavaScript functions.\n\nStableStudio calls these functions for core functionality, such as `createStableDiffusionImages`, `getStableDiffusionStyles`, `getStableDiffusionDefaultInput`, etc.\n\nFunctionality degrades gracefully, for example, if you don't implement `getStableDiffusionStyles`, no styles will be shown in the UI.\n\n# <a id=\"future\" href=\"#future\">🔮 Future</a>\n\nPlugins were mostly created to rip out calls to Stability's [gRPC API](https://platform.stability.ai), so their functionality is quite limited.\n\n**Given the importance of a robust plugin system, we're really hoping to [gather feedback](https://github.com/Stability-AI/StableStudio/issues/3) on how we can improve the API.**\n\nHere's what's on our mind when it comes to the future of StableStudio plugins...\n\n- **🧠 More Inference Stacks**\n\n  The default [Stability plugin](../stablestudio-plugin-stability/src/index.ts) enables inference relying on [Stability's API](../stablestudio-plugin-stability/src/index.ts), but we're hoping to expand support for local inference.\n\n  We're particularly interested in creating a plugin for using [`stable-diffusion-webui`](https://github.com/AUTOMATIC1111/stable-diffusion-webui)'s [REST API](https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/API).\n\n  Though it's not fully-ready, we're excited about the future of [WebGPU](https://developer.mozilla.org/en-US/docs/Web/API/WebGPU_API), and would love to support it via a plugin.\n\n  _We've stubbed out two empty packages to house these potential plugins..._\n\n  [`stablestudio-plugin-webui`](../stablestudio-plugin-webui/src/index.ts)\n\n  [`stablestudio-plugin-webgpu`](../stablestudio-plugin-webgpu/src/index.ts)\n\n- **🎨 Deeper UI Extensibility**\n\n  Currently plugins can only change \"back-end\" functionality. We'd love to allow plugins to create entire new features or modify existing ones.\n\n- **🧱 Multiple Plugins**\n\n  Only one plugin can be loaded at a time with our current implementation. Allowing multiple plugins to play nicely with each other would be a huge win.\n\n- **🛍 Plugin Library**\n\n  If there is enough interest and community momentum, we'd love to create a plugin library where users can easily install plugins from a curated list.\n"
  },
  {
    "path": "packages/stablestudio-plugin/package.json",
    "content": "{\n  \"name\": \"@stability/stablestudio-plugin\",\n  \"version\": \"0.0.0\",\n  \"license\": \"MIT\",\n  \"main\": \"./lib/index.js\",\n  \"types\": \"./lib/index.d.ts\",\n  \"files\": [\n    \"lib\"\n  ],\n  \"scripts\": {\n    \"clean\": \"rimraf lib && rimraf node_modules\",\n    \"build:types\": \"ttsc --project tsconfig.json\",\n    \"build:javascript\": \"tsx scripts/Build.ts\",\n    \"build\": \"yarn build:types && yarn build:javascript\",\n    \"dev\": \"nodemon --watch src --ext ts,tsx,json --exec \\\"yarn build\\\"\"\n  },\n  \"devDependencies\": {\n    \"@typescript-eslint/eslint-plugin\": \"^5.33.1\",\n    \"@typescript-eslint/parser\": \"^5.33.1\",\n    \"eslint\": \"8.22.0\",\n    \"eslint-config-prettier\": \"^8.5.0\",\n    \"eslint-plugin-import\": \"^2.26.0\",\n    \"eslint-plugin-markdown\": \"^3.0.0\",\n    \"eslint-plugin-prettier\": \"^4.2.1\",\n    \"eslint-plugin-react\": \"^7.30.1\",\n    \"eslint-plugin-react-hooks\": \"^4.6.0\",\n    \"nodemon\": \"^2.0.20\",\n    \"prettier\": \"^2.7.1\",\n    \"rimraf\": \"^3.0.2\",\n    \"ts-node\": \"^10.9.1\",\n    \"tsx\": \"^3.12.1\",\n    \"ttypescript\": \"^1.5.13\",\n    \"typescript\": \"4.8.4\",\n    \"typescript-transform-paths\": \"^3.4.4\"\n  },\n  \"dependencies\": {\n    \"zustand\": \"^4.3.7\"\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin/scripts/Build.ts",
    "content": "import * as ESBuild from \"esbuild\";\n\nconst main = async () => {\n  try {\n    await ESBuild.build({\n      entryPoints: [\"src/index.ts\"],\n      outdir: \"lib\",\n      bundle: true,\n      sourcemap: true,\n      minify: true,\n      splitting: true,\n      format: \"esm\",\n      target: [\"esnext\"],\n    });\n  } catch (error) {\n    console.error(error);\n    process.exit(1);\n  }\n};\n\nmain();\n"
  },
  {
    "path": "packages/stablestudio-plugin/src/Plugin.ts",
    "content": "import { createStore, StoreApi } from \"zustand\";\n\n/**\n * Function used to create a `Plugin`\n *\n * ```ts\n * import * as StableStudio from \"@stability/stablestudio-plugin\";\n *\n * // You need to export your plugin like this...\n * export const createPlugin = StableStudio.createPlugin(() => ({}));\n * ```\n *\n * It returns a function waiting for `PluginCreateContext` as an argument, which the UI provides\n */\nexport const createPlugin =\n  <P extends PluginTypeHelper>(\n    createPlugin: (options: {\n      context: PluginCreateContext;\n      set: StoreApi<Plugin<P>>[\"setState\"];\n      get: StoreApi<Plugin<P>>[\"getState\"];\n    }) => Plugin<P>\n  ) =>\n  (context: PluginCreateContext) =>\n    createStore<Plugin<P>>((set, get) => createPlugin({ set, get, context }));\n\n/** `PluginCreateContext` is passed to the `createPlugin` function and provides some useful functions */\ntype PluginCreateContext = {\n  /** Get the git hash of the repository */\n  getGitHash: () => string;\n\n  /** Get a random prompt for image generation */\n  getStableDiffusionRandomPrompt: () => string;\n};\n\n/** `PluginManifest` is used to describe your plugin on the settings page */\nexport type PluginManifest = {\n  /** What is your plugin called? */\n  name?: string;\n\n  /** A link to your plugin's icon */\n  icon?: URLString;\n\n  /** A link to your plugin's website */\n  link?: URLString;\n\n  /** Your plugin version, no versioning schema is currently enforced */\n  version?: string;\n\n  /** What's the license, no licensing schema is currently enforced */\n  license?: string;\n\n  /** Who made this plugin? */\n  author?: string;\n\n  /** What does your plugin do? */\n  description?: Markdown;\n};\n\nexport type PluginSettingCommon = {\n  /** What is your plugin called? */\n  title?: string;\n\n  /** What is your plugin called? */\n  description?: Markdown;\n\n  /** Is this setting required? If so, users will be forced to provide an input */\n  required?: boolean;\n};\n\n/** `PluginSetting` allows for `string`, `number`, and `boolean` input types   */\nexport type PluginSetting<T> =\n  | PluginSettingString<T>\n  | PluginSettingNumber<T>\n  | PluginSettingBoolean<T>;\n\n/** `PluginSetting` which is displayed and input as a `string` */\nexport type PluginSettingString<T = string> = PluginSettingCommon & {\n  type: \"string\";\n\n  /** The current `value` */\n  value?: T;\n\n  /** If you provide `options`, this will become a dropdown */\n  options?: { label: string; value: T }[];\n\n  /** The `placeholder` input `string` */\n  placeholder?: string;\n\n  /** Given a `value`, how should it be displayed? Useful if your value is a `Date` for example */\n  formatter?: (value: T) => string;\n\n  /** Given a `string`, how should it be saved as a `value`? */\n  parser?: (string: string) => T;\n\n  /** Determines whether this input is displayed as a `password` type */\n  password?: boolean;\n};\n\n/** `PluginSetting` which is displayed and input as a `number` */\nexport type PluginSettingNumber<T = number> = PluginSettingCommon & {\n  type: \"number\";\n\n  /** The current `value` */\n  value?: T;\n\n  /** The `placeholder` input `number` */\n  placeholder?: number;\n\n  /** Enforces an inclusive `min` allowed `value` */\n  min?: number;\n\n  /** Enforces an inclusive `max` allowed `value` */\n  max?: number;\n\n  /** Enforces a `step` size between each `value` */\n  step?: number;\n\n  /** Given a `value`, how can it formatted as a `number`? */\n  formatter?: (value: T) => number;\n\n  /** Given a `number`, how should it be saved as a `value`? */\n  parser?: (value: number) => T;\n\n  /** Determines whether to use a slider or input. Uses `input` by default */\n  variant?: \"slider\" | \"input\";\n};\n\n/** `PluginSetting` which is displayed and input as a `boolean` */\nexport type PluginSettingBoolean<T = boolean> = PluginSettingCommon & {\n  type: \"boolean\";\n\n  /** The current `value` */\n  value?: T;\n};\n\n/** `PluginStatus` is displayed via an indicator on the `/settings` page */\nexport type PluginStatus = {\n  /** Determines the text displayed next to the `indicator` icon */\n  text?: string;\n\n  /** Determines the `indicator` color and icon */\n  indicator?: \"success\" | \"error\" | \"warning\" | \"info\" | \"loading\";\n};\n\n/** `PluginSettings` is a map of the settings your plugin will show on the `/settings` page */\nexport type PluginSettings = {\n  /** Each setting needs a unique `key` */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  [settingKey: string]: PluginSetting<any>;\n};\n\n/** Useful for strictly-typing things */\nexport type PluginTypeHelper = { settings?: PluginSettings };\nexport type PluginTypeHelperDefault = { settings: undefined };\n\n/** The `Plugin` type defines the API which StableStudio uses to provide functionality via plugins */\nexport type Plugin<P extends PluginTypeHelper = PluginTypeHelperDefault> = {\n  /** You should provide a `PluginManifest`, otherwise the UI shows a warning */\n  manifest?: PluginManifest;\n\n  /** The most fundamental function needed for stable diffusion generations */\n  createStableDiffusionImages?: (options?: {\n    /** The `StableDiffusionInput` you've been asked to generate, if empty, you could still return a random image */\n    input?: StableDiffusionInput;\n\n    /** Determines how many images will be created using the given `StableDiffusionInput` */\n    count?: number;\n  }) => MaybePromise<StableDiffusionImages | undefined>;\n\n  /** This function provides historical access to generated images. If omitted, the app will lose its history on refresh */\n  getStableDiffusionExistingImages?: (options?: {\n    /** How many images the UI is requesting */\n    limit?: number;\n\n    /** The `ID` of last image the UI has access to, it should be omitted from the response */\n    exclusiveStartImageID?: ID;\n  }) => MaybePromise<StableDiffusionImages[] | undefined>;\n\n  /** If more than one `StableDiffusionModel`, you can return them via this function and they will be presented as a dropdown in the UI */\n  getStableDiffusionModels?: () => MaybePromise<\n    StableDiffusionModel[] | undefined\n  >;\n\n  /** If more than one `StableDiffusionSampler`, you can return them via this function and they will be presented as a dropdown in the UI */\n  getStableDiffusionSamplers?: () => MaybePromise<\n    StableDiffusionSampler[] | undefined\n  >;\n\n  /** If more than one `StableDiffusionStyle`, you can return them via this function and they will be presented as a dropdown in the UI */\n  getStableDiffusionStyles?: () => MaybePromise<\n    StableDiffusionStyle[] | undefined\n  >;\n\n  /** Determines the default count passed to `createStableDiffusionImages` */\n  getStableDiffusionDefaultCount?: () => number | undefined;\n\n  /** Determines the default input passed to `createStableDiffusionImages` and is also used when setting up a new generation */\n  getStableDiffusionDefaultInput?: () => StableDiffusionInput | undefined;\n\n  /** If you support deleting existing images by `ID`, this function will enable a deletion UI */\n  deleteStableDiffusionImages?: (options?: {\n    imageIDs?: ID[];\n  }) => MaybePromise<void>;\n\n  /** Determines whether to display a `PluginStatus` and sets its contents */\n  getStatus?: () => MaybePromise<PluginStatus | undefined>;\n\n  /** If your plugin has `settings` you want to make available on the `/settings page, you can declare them here`  */\n  settings?: P[\"settings\"];\n\n  /** Handles changes in `settings`, you'll need to actually use Zustand's `set` to persist the change */\n  setSetting?: (\n    settingKey: keyof P[\"settings\"],\n    value: string | number | boolean\n  ) => void;\n} & P;\n\nexport type StableDiffusionInput = {\n  prompts?: StableDiffusionPrompt[];\n\n  /** If `getStableDiffusionModels` is available and a `StableDiffusionModel` is selected, this is its `ID` */\n  model?: ID;\n\n  /** If `getStableDiffusionStyles` is available and a `StableDiffusionStyle` is selected, this is its `ID` */\n  style?: ID;\n\n  width?: number;\n  height?: number;\n\n  sampler?: StableDiffusionSampler;\n  cfgScale?: number;\n  steps?: number;\n  seed?: number;\n\n  /** `StableDiffusionInputImage` in the form of a black and white mask used for in-painting and out-painting */\n  maskImage?: StableDiffusionInputImage;\n\n  /** `StableDiffusionInputImage` which is used for image-to-image generations such as creating variations */\n  initialImage?: StableDiffusionInputImage;\n};\n\nexport type StableDiffusionPrompt = {\n  text?: string;\n\n  /** Value between `-1` and `1` */\n  weight?: number;\n};\n\n/** This controls how a `StableDiffusionModel` is displayed in the UI */\nexport type StableDiffusionModel = {\n  id: ID;\n  name?: string;\n  description?: string;\n  image?: URLString;\n};\n\n/** This controls how a `StableDiffusionStyle` is displayed in the UI */\nexport type StableDiffusionStyle = {\n  id: ID;\n  name?: string;\n  description?: string;\n  image?: URLString;\n};\n\n/** This controls how a `StableDiffusionSampler` is displayed in the UI */\nexport declare type StableDiffusionSampler = {\n  id: ID;\n  name?: string;\n};\n\nexport type StableDiffusionInputImage = {\n  blob?: Blob;\n\n  /** Value between `0` and `1` */\n  weight?: number;\n};\n\n/** Since multiple images can be generated at once, this is how they are grouped */\nexport type StableDiffusionImages = {\n  id: ID;\n\n  /** If `exclusiveStartImageID` is set, this means more images exist for this group and the `ID` is passed to `getStableDiffusionExistingImages` */\n  exclusiveStartImageID?: ID;\n\n  images?: StableDiffusionImage[];\n};\n\nexport type StableDiffusionImage = {\n  id: ID;\n\n  createdAt?: Date;\n\n  /** The `StableDiffusionInput` used to create this image */\n  input?: StableDiffusionInput;\n\n  blob?: Blob;\n};\n\n/** Allows both asynchronous and synchronous return types */\ntype MaybePromise<T> = T | Promise<T>;\n\n/** In this context, an `ID` represents a unique-within-this-plugin `ID`, no schema is enforced */\nexport type ID = string;\n\n/** A valid URL */\nexport type URLString = string;\n\n/** Markdown string which is rendered as markdown in the UI */\nexport type Markdown = string;\n"
  },
  {
    "path": "packages/stablestudio-plugin/src/index.ts",
    "content": "export * from \"./Plugin\";\n"
  },
  {
    "path": "packages/stablestudio-plugin/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"include\": [\"src/**/*\"],\n  \"exclude\": [\"node_modules\"],\n  \"compilerOptions\": {\n    \"emitDeclarationOnly\": true,\n    \"declaration\": true,\n    \"noUncheckedIndexedAccess\": false,\n\n    \"outDir\": \"./lib\",\n    \"baseUrl\": \"./\",\n    \"paths\": {\n      \"~/*\": [\"./src/*\"]\n    },\n\n    \"plugins\": [\n      { \"transform\": \"typescript-transform-paths\" },\n      { \"transform\": \"typescript-transform-paths\", \"afterDeclarations\": true }\n    ]\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-example/.eslintrc.json",
    "content": "{ \"extends\": [\"../../.eslintrc.json\"] }\n"
  },
  {
    "path": "packages/stablestudio-plugin-example/.gitignore",
    "content": "lib\n"
  },
  {
    "path": "packages/stablestudio-plugin-example/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2023 Stability AI\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": "packages/stablestudio-plugin-example/README.md",
    "content": ""
  },
  {
    "path": "packages/stablestudio-plugin-example/package.json",
    "content": "{\n  \"name\": \"@stability/stablestudio-plugin-example\",\n  \"version\": \"0.0.0\",\n  \"license\": \"MIT\",\n  \"main\": \"./lib/index.js\",\n  \"types\": \"./lib/index.d.ts\",\n  \"files\": [\n    \"lib\"\n  ],\n  \"scripts\": {\n    \"clean\": \"rimraf lib && rimraf node_modules\",\n    \"build:types\": \"ttsc --project tsconfig.json\",\n    \"build:javascript\": \"tsx scripts/Build.ts\",\n    \"build\": \"yarn build:types && yarn build:javascript\",\n    \"dev\": \"nodemon --watch src --ext ts,tsx,json --exec \\\"yarn build\\\"\"\n  },\n  \"dependencies\": {\n    \"@stability/stablestudio-plugin\": \"workspace:^\"\n  },\n  \"devDependencies\": {\n    \"@typescript-eslint/eslint-plugin\": \"^5.33.1\",\n    \"@typescript-eslint/parser\": \"^5.33.1\",\n    \"eslint\": \"8.22.0\",\n    \"eslint-config-prettier\": \"^8.5.0\",\n    \"eslint-plugin-import\": \"^2.26.0\",\n    \"eslint-plugin-markdown\": \"^3.0.0\",\n    \"eslint-plugin-prettier\": \"^4.2.1\",\n    \"eslint-plugin-react\": \"^7.30.1\",\n    \"eslint-plugin-react-hooks\": \"^4.6.0\",\n    \"nodemon\": \"^2.0.20\",\n    \"prettier\": \"^2.7.1\",\n    \"rimraf\": \"^3.0.2\",\n    \"ts-node\": \"^10.9.1\",\n    \"tsx\": \"^3.12.1\",\n    \"ttypescript\": \"^1.5.13\",\n    \"typescript\": \"4.8.4\",\n    \"typescript-transform-paths\": \"^3.4.4\"\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-example/scripts/Build.ts",
    "content": "import * as ESBuild from \"esbuild\";\n\nconst main = async () => {\n  try {\n    await ESBuild.build({\n      entryPoints: [\"src/index.ts\"],\n      outdir: \"lib\",\n      bundle: true,\n      sourcemap: true,\n      minify: true,\n      splitting: true,\n      format: \"esm\",\n      target: [\"esnext\"],\n    });\n  } catch (error) {\n    console.error(error);\n    process.exit(1);\n  }\n};\n\nmain();\n"
  },
  {
    "path": "packages/stablestudio-plugin-example/src/index.ts",
    "content": "import * as StableStudio from \"@stability/stablestudio-plugin\";\n\nexport const createPlugin = StableStudio.createPlugin<{\n  imagesGeneratedSoFar: number;\n  settings: {\n    exampleSetting: StableStudio.PluginSettingString;\n  };\n}>(({ set, get }) => ({\n  imagesGeneratedSoFar: 0,\n\n  manifest: {\n    name: \"Example Plugin\",\n    author: \"Bobby Joe\",\n    link: \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\n    icon: `${window.location.origin}/DummyImage.png`,\n    version: \"1.2.3\",\n    license: \"MIT\",\n    description: \"An example plugin for StableStudio\",\n  },\n\n  createStableDiffusionImages: async () => {\n    const image = await fetch(`${window.location.origin}/DummyImage.png`);\n    const blob = await image.blob();\n    const createdAt = new Date();\n\n    set(({ imagesGeneratedSoFar }) => ({\n      imagesGeneratedSoFar: imagesGeneratedSoFar + 4,\n    }));\n\n    return {\n      id: `${Math.random() * 10000000}`,\n      images: [\n        {\n          id: `${Math.random() * 10000000}`,\n          createdAt,\n          blob,\n        },\n        {\n          id: `${Math.random() * 10000000}`,\n          createdAt,\n          blob,\n        },\n        {\n          id: `${Math.random() * 10000000}`,\n          createdAt,\n          blob,\n        },\n        {\n          id: `${Math.random() * 10000000}`,\n          createdAt,\n          blob,\n        },\n      ],\n    };\n  },\n\n  getStatus: () => {\n    const { imagesGeneratedSoFar } = get();\n    return {\n      indicator: \"success\",\n      text:\n        imagesGeneratedSoFar > 0\n          ? `${imagesGeneratedSoFar} images generated`\n          : \"Ready\",\n    };\n  },\n\n  settings: {\n    exampleSetting: {\n      type: \"string\" as const,\n      default: \"Hello, World!\",\n      placeholder: \"Example setting\",\n    },\n  },\n\n  setSetting: (key, value) =>\n    set(({ settings }) => ({\n      settings: {\n        [key]: { ...settings[key], value: value as string },\n      },\n    })),\n}));\n"
  },
  {
    "path": "packages/stablestudio-plugin-example/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"include\": [\"src/**/*\"],\n  \"exclude\": [\"node_modules\"],\n  \"compilerOptions\": {\n    \"emitDeclarationOnly\": true,\n    \"declaration\": true,\n    \"noUncheckedIndexedAccess\": false,\n\n    \"outDir\": \"./lib\",\n    \"baseUrl\": \"./\",\n    \"paths\": {\n      \"~/*\": [\"./src/*\"]\n    },\n\n    \"plugins\": [\n      { \"transform\": \"typescript-transform-paths\" },\n      { \"transform\": \"typescript-transform-paths\", \"afterDeclarations\": true }\n    ]\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/.eslintignore",
    "content": "./src/Proto/Generated/**/*\n./api-interfaces/**"
  },
  {
    "path": "packages/stablestudio-plugin-stability/.eslintrc.json",
    "content": "{\n  \"extends\": [\"../../.eslintrc.json\"],\n  \"ignorePatterns\": [\"./src/Proto/Generated/**\"]\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/.gitignore",
    "content": "api-interfaces\nlib\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/.prettierignore",
    "content": "./src/Proto/Generated/**/*\n./api-interfaces/**"
  },
  {
    "path": "packages/stablestudio-plugin-stability/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2023 Stability AI\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": "packages/stablestudio-plugin-stability/package.json",
    "content": "{\n  \"name\": \"@stability/stablestudio-plugin-stability\",\n  \"version\": \"0.0.0\",\n  \"license\": \"MIT\",\n  \"main\": \"./lib/index.js\",\n  \"types\": \"./lib/index.d.ts\",\n  \"files\": [\n    \"lib\"\n  ],\n  \"scripts\": {\n    \"clean\": \"rimraf lib && rimraf api-interfaces && rimraf node_modules\",\n    \"generate:proto\": \"tsx scripts/GenerateProto.ts\",\n    \"build:types\": \"ttsc --project tsconfig.json\",\n    \"build:javascript\": \"tsx scripts/Build.ts\",\n    \"build\": \"yarn build:types && yarn build:javascript\",\n    \"dev\": \"nodemon --watch src --ext ts,json --exec \\\"yarn build\\\"\"\n  },\n  \"dependencies\": {\n    \"@protobuf-ts/grpcweb-transport\": \"^2.8.2\",\n    \"@protobuf-ts/runtime\": \"^2.8.1\",\n    \"@protobuf-ts/runtime-rpc\": \"^2.8.1\"\n  },\n  \"devDependencies\": {\n    \"@protobuf-ts/plugin\": \"^2.8.1\",\n    \"@types/node\": \"^18.11.9\",\n    \"@typescript-eslint/eslint-plugin\": \"^5.33.1\",\n    \"@typescript-eslint/parser\": \"^5.33.1\",\n    \"concurrently\": \"^7.6.0\",\n    \"eslint\": \"8.22.0\",\n    \"eslint-config-prettier\": \"^8.5.0\",\n    \"eslint-plugin-import\": \"^2.26.0\",\n    \"eslint-plugin-markdown\": \"^3.0.0\",\n    \"eslint-plugin-prettier\": \"^4.2.1\",\n    \"eslint-plugin-react\": \"^7.30.1\",\n    \"eslint-plugin-react-hooks\": \"^4.6.0\",\n    \"nodemon\": \"^2.0.20\",\n    \"prettier\": \"^2.7.1\",\n    \"rimraf\": \"^3.0.2\",\n    \"ts-node\": \"^10.9.1\",\n    \"ts-proto\": \"^1.133.0\",\n    \"tsx\": \"^3.12.1\",\n    \"ttypescript\": \"^1.5.13\",\n    \"typescript\": \"4.8.4\",\n    \"typescript-transform-paths\": \"^3.4.4\"\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/scripts/Build.ts",
    "content": "import * as ESBuild from \"esbuild\";\n\nconst main = async () => {\n  try {\n    await ESBuild.build({\n      entryPoints: [\"src/index.ts\"],\n      outdir: \"lib\",\n      bundle: true,\n      sourcemap: true,\n      minify: true,\n      splitting: true,\n      format: \"esm\",\n      target: [\"esnext\"],\n    });\n  } catch (error) {\n    console.error(error);\n    process.exit(1);\n  }\n};\n\nmain();\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/scripts/GenerateProto.ts",
    "content": "import * as ChildProcess from \"child_process\";\nimport * as FileSystem from \"fs\";\nimport * as Path from \"path\";\n\n// Set up input and output directories\n\nconst inputDirectoryPath = Path.join(__dirname, \"../api-interfaces\");\nconst outputDirectoryPath = Path.join(__dirname, \"../src/Proto/Generated\");\n\n// Remove and recreate the output directory\n\nFileSystem.existsSync(outputDirectoryPath) &&\n  FileSystem.rmSync(outputDirectoryPath, { recursive: true });\n\nFileSystem.mkdirSync(outputDirectoryPath);\n\n// Set up proto directories\n\nconst protoDirPath = `${inputDirectoryPath}/src/proto` as const;\nconst tensorProtoDirPath =\n  `${inputDirectoryPath}/src/tensorizer/proto` as const;\n\n// Clone latest tensorizer git repository\n\nconst tensorizerGitPath = `${inputDirectoryPath}/src/tensorizer`;\n\n// Clone and force update the api-interfaces Git repository\n\n!FileSystem.existsSync(inputDirectoryPath) &&\n  ChildProcess.execSync(\n    `git clone https://github.com/Stability-AI/api-interfaces.git ${inputDirectoryPath}`\n  );\n\nChildProcess.execSync(\"git reset --hard origin/main\", {\n  cwd: inputDirectoryPath,\n});\n\n// Clone and force update the tensorizer Git repository\n\n!FileSystem.existsSync(`${tensorizerGitPath}/.git`) &&\n  ChildProcess.execSync(\n    `git clone https://github.com/coreweave/tensorizer.git ${tensorizerGitPath}`\n  );\n\nChildProcess.execSync(\"git reset --hard origin/main\", {\n  cwd: tensorizerGitPath,\n});\n\n// Copy tensors.proto from tensorizer to api-interfaces proto directory\n\nFileSystem.copyFileSync(\n  `${tensorProtoDirPath}/tensors.proto`,\n  `${protoDirPath}/tensors.proto`\n);\n\n// Get all the proto paths and source files\n\nconst protoPaths = [\n  protoDirPath,\n  ...FileSystem.readdirSync(protoDirPath)\n    .filter((file) => file.endsWith(\".proto\"))\n    .map((file) => Path.join(protoDirPath, file)),\n].join(\" \");\n\n// Generate TypeScript files from the final list of proto files\n\nChildProcess.execSync(\n  `npx protoc --ts_out ${outputDirectoryPath} --proto_path ${protoPaths}`\n);\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/Proto/Generated/dashboard.client.ts",
    "content": "// @generated by protobuf-ts 2.8.2\n// @generated from protobuf file \"dashboard.proto\" (package \"gooseai\", syntax proto3)\n// tslint:disable\nimport type { RpcTransport } from \"@protobuf-ts/runtime-rpc\";\nimport type { ServiceInfo } from \"@protobuf-ts/runtime-rpc\";\nimport { DashboardService } from \"./dashboard\";\nimport type { GetAutoChargeRequest } from \"./dashboard\";\nimport type { AutoChargeIntent } from \"./dashboard\";\nimport type { CreateAutoChargeIntentRequest } from \"./dashboard\";\nimport type { Charges } from \"./dashboard\";\nimport type { GetChargesRequest } from \"./dashboard\";\nimport type { Charge } from \"./dashboard\";\nimport type { CreateChargeRequest } from \"./dashboard\";\nimport type { UserPasswordChangeTicket } from \"./dashboard\";\nimport type { UpdateUserInfoRequest } from \"./dashboard\";\nimport type { ClientSettings } from \"./dashboard\";\nimport type { UpdateDefaultOrganizationRequest } from \"./dashboard\";\nimport type { APIKeyFindRequest } from \"./dashboard\";\nimport type { APIKey } from \"./dashboard\";\nimport type { APIKeyRequest } from \"./dashboard\";\nimport type { Metrics } from \"./dashboard\";\nimport type { GetMetricsRequest } from \"./dashboard\";\nimport type { Organization } from \"./dashboard\";\nimport type { GetOrganizationRequest } from \"./dashboard\";\nimport { stackIntercept } from \"@protobuf-ts/runtime-rpc\";\nimport type { User } from \"./dashboard\";\nimport type { EmptyRequest } from \"./dashboard\";\nimport type { UnaryCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { RpcOptions } from \"@protobuf-ts/runtime-rpc\";\n/**\n * @generated from protobuf service gooseai.DashboardService\n */\nexport interface IDashboardServiceClient {\n    /**\n     * Get info\n     *\n     * @generated from protobuf rpc: GetMe(gooseai.EmptyRequest) returns (gooseai.User);\n     */\n    getMe(input: EmptyRequest, options?: RpcOptions): UnaryCall<EmptyRequest, User>;\n    /**\n     * @generated from protobuf rpc: GetOrganization(gooseai.GetOrganizationRequest) returns (gooseai.Organization);\n     */\n    getOrganization(input: GetOrganizationRequest, options?: RpcOptions): UnaryCall<GetOrganizationRequest, Organization>;\n    /**\n     * @generated from protobuf rpc: GetMetrics(gooseai.GetMetricsRequest) returns (gooseai.Metrics);\n     */\n    getMetrics(input: GetMetricsRequest, options?: RpcOptions): UnaryCall<GetMetricsRequest, Metrics>;\n    /**\n     * API key management\n     *\n     * @generated from protobuf rpc: CreateAPIKey(gooseai.APIKeyRequest) returns (gooseai.APIKey);\n     */\n    createAPIKey(input: APIKeyRequest, options?: RpcOptions): UnaryCall<APIKeyRequest, APIKey>;\n    /**\n     * @generated from protobuf rpc: DeleteAPIKey(gooseai.APIKeyFindRequest) returns (gooseai.APIKey);\n     */\n    deleteAPIKey(input: APIKeyFindRequest, options?: RpcOptions): UnaryCall<APIKeyFindRequest, APIKey>;\n    /**\n     * User settings\n     *\n     * @generated from protobuf rpc: UpdateDefaultOrganization(gooseai.UpdateDefaultOrganizationRequest) returns (gooseai.User);\n     */\n    updateDefaultOrganization(input: UpdateDefaultOrganizationRequest, options?: RpcOptions): UnaryCall<UpdateDefaultOrganizationRequest, User>;\n    /**\n     * @generated from protobuf rpc: GetClientSettings(gooseai.EmptyRequest) returns (gooseai.ClientSettings);\n     */\n    getClientSettings(input: EmptyRequest, options?: RpcOptions): UnaryCall<EmptyRequest, ClientSettings>;\n    /**\n     * @generated from protobuf rpc: SetClientSettings(gooseai.ClientSettings) returns (gooseai.ClientSettings);\n     */\n    setClientSettings(input: ClientSettings, options?: RpcOptions): UnaryCall<ClientSettings, ClientSettings>;\n    /**\n     * @generated from protobuf rpc: UpdateUserInfo(gooseai.UpdateUserInfoRequest) returns (gooseai.User);\n     */\n    updateUserInfo(input: UpdateUserInfoRequest, options?: RpcOptions): UnaryCall<UpdateUserInfoRequest, User>;\n    /**\n     * @generated from protobuf rpc: CreatePasswordChangeTicket(gooseai.EmptyRequest) returns (gooseai.UserPasswordChangeTicket);\n     */\n    createPasswordChangeTicket(input: EmptyRequest, options?: RpcOptions): UnaryCall<EmptyRequest, UserPasswordChangeTicket>;\n    /**\n     * @generated from protobuf rpc: DeleteAccount(gooseai.EmptyRequest) returns (gooseai.User);\n     */\n    deleteAccount(input: EmptyRequest, options?: RpcOptions): UnaryCall<EmptyRequest, User>;\n    /**\n     * Payment functions\n     *\n     * @generated from protobuf rpc: CreateCharge(gooseai.CreateChargeRequest) returns (gooseai.Charge);\n     */\n    createCharge(input: CreateChargeRequest, options?: RpcOptions): UnaryCall<CreateChargeRequest, Charge>;\n    /**\n     * @generated from protobuf rpc: GetCharges(gooseai.GetChargesRequest) returns (gooseai.Charges);\n     */\n    getCharges(input: GetChargesRequest, options?: RpcOptions): UnaryCall<GetChargesRequest, Charges>;\n    /**\n     * @generated from protobuf rpc: CreateAutoChargeIntent(gooseai.CreateAutoChargeIntentRequest) returns (gooseai.AutoChargeIntent);\n     */\n    createAutoChargeIntent(input: CreateAutoChargeIntentRequest, options?: RpcOptions): UnaryCall<CreateAutoChargeIntentRequest, AutoChargeIntent>;\n    /**\n     * @generated from protobuf rpc: UpdateAutoChargeIntent(gooseai.CreateAutoChargeIntentRequest) returns (gooseai.AutoChargeIntent);\n     */\n    updateAutoChargeIntent(input: CreateAutoChargeIntentRequest, options?: RpcOptions): UnaryCall<CreateAutoChargeIntentRequest, AutoChargeIntent>;\n    /**\n     * @generated from protobuf rpc: GetAutoChargeIntent(gooseai.GetAutoChargeRequest) returns (gooseai.AutoChargeIntent);\n     */\n    getAutoChargeIntent(input: GetAutoChargeRequest, options?: RpcOptions): UnaryCall<GetAutoChargeRequest, AutoChargeIntent>;\n}\n/**\n * @generated from protobuf service gooseai.DashboardService\n */\nexport class DashboardServiceClient implements IDashboardServiceClient, ServiceInfo {\n    typeName = DashboardService.typeName;\n    methods = DashboardService.methods;\n    options = DashboardService.options;\n    constructor(private readonly _transport: RpcTransport) {\n    }\n    /**\n     * Get info\n     *\n     * @generated from protobuf rpc: GetMe(gooseai.EmptyRequest) returns (gooseai.User);\n     */\n    getMe(input: EmptyRequest, options?: RpcOptions): UnaryCall<EmptyRequest, User> {\n        const method = this.methods[0], opt = this._transport.mergeOptions(options);\n        return stackIntercept<EmptyRequest, User>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: GetOrganization(gooseai.GetOrganizationRequest) returns (gooseai.Organization);\n     */\n    getOrganization(input: GetOrganizationRequest, options?: RpcOptions): UnaryCall<GetOrganizationRequest, Organization> {\n        const method = this.methods[1], opt = this._transport.mergeOptions(options);\n        return stackIntercept<GetOrganizationRequest, Organization>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: GetMetrics(gooseai.GetMetricsRequest) returns (gooseai.Metrics);\n     */\n    getMetrics(input: GetMetricsRequest, options?: RpcOptions): UnaryCall<GetMetricsRequest, Metrics> {\n        const method = this.methods[2], opt = this._transport.mergeOptions(options);\n        return stackIntercept<GetMetricsRequest, Metrics>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * API key management\n     *\n     * @generated from protobuf rpc: CreateAPIKey(gooseai.APIKeyRequest) returns (gooseai.APIKey);\n     */\n    createAPIKey(input: APIKeyRequest, options?: RpcOptions): UnaryCall<APIKeyRequest, APIKey> {\n        const method = this.methods[3], opt = this._transport.mergeOptions(options);\n        return stackIntercept<APIKeyRequest, APIKey>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: DeleteAPIKey(gooseai.APIKeyFindRequest) returns (gooseai.APIKey);\n     */\n    deleteAPIKey(input: APIKeyFindRequest, options?: RpcOptions): UnaryCall<APIKeyFindRequest, APIKey> {\n        const method = this.methods[4], opt = this._transport.mergeOptions(options);\n        return stackIntercept<APIKeyFindRequest, APIKey>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * User settings\n     *\n     * @generated from protobuf rpc: UpdateDefaultOrganization(gooseai.UpdateDefaultOrganizationRequest) returns (gooseai.User);\n     */\n    updateDefaultOrganization(input: UpdateDefaultOrganizationRequest, options?: RpcOptions): UnaryCall<UpdateDefaultOrganizationRequest, User> {\n        const method = this.methods[5], opt = this._transport.mergeOptions(options);\n        return stackIntercept<UpdateDefaultOrganizationRequest, User>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: GetClientSettings(gooseai.EmptyRequest) returns (gooseai.ClientSettings);\n     */\n    getClientSettings(input: EmptyRequest, options?: RpcOptions): UnaryCall<EmptyRequest, ClientSettings> {\n        const method = this.methods[6], opt = this._transport.mergeOptions(options);\n        return stackIntercept<EmptyRequest, ClientSettings>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: SetClientSettings(gooseai.ClientSettings) returns (gooseai.ClientSettings);\n     */\n    setClientSettings(input: ClientSettings, options?: RpcOptions): UnaryCall<ClientSettings, ClientSettings> {\n        const method = this.methods[7], opt = this._transport.mergeOptions(options);\n        return stackIntercept<ClientSettings, ClientSettings>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: UpdateUserInfo(gooseai.UpdateUserInfoRequest) returns (gooseai.User);\n     */\n    updateUserInfo(input: UpdateUserInfoRequest, options?: RpcOptions): UnaryCall<UpdateUserInfoRequest, User> {\n        const method = this.methods[8], opt = this._transport.mergeOptions(options);\n        return stackIntercept<UpdateUserInfoRequest, User>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: CreatePasswordChangeTicket(gooseai.EmptyRequest) returns (gooseai.UserPasswordChangeTicket);\n     */\n    createPasswordChangeTicket(input: EmptyRequest, options?: RpcOptions): UnaryCall<EmptyRequest, UserPasswordChangeTicket> {\n        const method = this.methods[9], opt = this._transport.mergeOptions(options);\n        return stackIntercept<EmptyRequest, UserPasswordChangeTicket>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: DeleteAccount(gooseai.EmptyRequest) returns (gooseai.User);\n     */\n    deleteAccount(input: EmptyRequest, options?: RpcOptions): UnaryCall<EmptyRequest, User> {\n        const method = this.methods[10], opt = this._transport.mergeOptions(options);\n        return stackIntercept<EmptyRequest, User>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * Payment functions\n     *\n     * @generated from protobuf rpc: CreateCharge(gooseai.CreateChargeRequest) returns (gooseai.Charge);\n     */\n    createCharge(input: CreateChargeRequest, options?: RpcOptions): UnaryCall<CreateChargeRequest, Charge> {\n        const method = this.methods[11], opt = this._transport.mergeOptions(options);\n        return stackIntercept<CreateChargeRequest, Charge>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: GetCharges(gooseai.GetChargesRequest) returns (gooseai.Charges);\n     */\n    getCharges(input: GetChargesRequest, options?: RpcOptions): UnaryCall<GetChargesRequest, Charges> {\n        const method = this.methods[12], opt = this._transport.mergeOptions(options);\n        return stackIntercept<GetChargesRequest, Charges>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: CreateAutoChargeIntent(gooseai.CreateAutoChargeIntentRequest) returns (gooseai.AutoChargeIntent);\n     */\n    createAutoChargeIntent(input: CreateAutoChargeIntentRequest, options?: RpcOptions): UnaryCall<CreateAutoChargeIntentRequest, AutoChargeIntent> {\n        const method = this.methods[13], opt = this._transport.mergeOptions(options);\n        return stackIntercept<CreateAutoChargeIntentRequest, AutoChargeIntent>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: UpdateAutoChargeIntent(gooseai.CreateAutoChargeIntentRequest) returns (gooseai.AutoChargeIntent);\n     */\n    updateAutoChargeIntent(input: CreateAutoChargeIntentRequest, options?: RpcOptions): UnaryCall<CreateAutoChargeIntentRequest, AutoChargeIntent> {\n        const method = this.methods[14], opt = this._transport.mergeOptions(options);\n        return stackIntercept<CreateAutoChargeIntentRequest, AutoChargeIntent>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: GetAutoChargeIntent(gooseai.GetAutoChargeRequest) returns (gooseai.AutoChargeIntent);\n     */\n    getAutoChargeIntent(input: GetAutoChargeRequest, options?: RpcOptions): UnaryCall<GetAutoChargeRequest, AutoChargeIntent> {\n        const method = this.methods[15], opt = this._transport.mergeOptions(options);\n        return stackIntercept<GetAutoChargeRequest, AutoChargeIntent>(\"unary\", this._transport, method, opt, input);\n    }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/Proto/Generated/dashboard.ts",
    "content": "// @generated by protobuf-ts 2.8.2\n// @generated from protobuf file \"dashboard.proto\" (package \"gooseai\", syntax proto3)\n// tslint:disable\nimport { ServiceType } from \"@protobuf-ts/runtime-rpc\";\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MESSAGE_TYPE } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * @generated from protobuf message gooseai.OrganizationMember\n */\nexport interface OrganizationMember {\n    /**\n     * @generated from protobuf field: gooseai.Organization organization = 1;\n     */\n    organization?: Organization;\n    /**\n     * @generated from protobuf field: optional gooseai.User user = 2;\n     */\n    user?: User;\n    /**\n     * @generated from protobuf field: gooseai.OrganizationRole role = 3;\n     */\n    role: OrganizationRole;\n    /**\n     * @generated from protobuf field: bool is_default = 4;\n     */\n    isDefault: boolean;\n}\n/**\n * @generated from protobuf message gooseai.OrganizationGrant\n */\nexport interface OrganizationGrant {\n    /**\n     * @generated from protobuf field: double amount_granted = 1;\n     */\n    amountGranted: number;\n    /**\n     * @generated from protobuf field: double amount_used = 2;\n     */\n    amountUsed: number;\n    /**\n     * @generated from protobuf field: uint64 expires_at = 3;\n     */\n    expiresAt: bigint;\n    /**\n     * @generated from protobuf field: uint64 granted_at = 4;\n     */\n    grantedAt: bigint;\n}\n/**\n * @generated from protobuf message gooseai.OrganizationPaymentInfo\n */\nexport interface OrganizationPaymentInfo {\n    /**\n     * @generated from protobuf field: double balance = 1;\n     */\n    balance: number;\n    /**\n     * @generated from protobuf field: repeated gooseai.OrganizationGrant grants = 2;\n     */\n    grants: OrganizationGrant[];\n}\n/**\n * @generated from protobuf message gooseai.OrganizationAutoCharge\n */\nexport interface OrganizationAutoCharge {\n    /**\n     * @generated from protobuf field: bool enabled = 1;\n     */\n    enabled: boolean;\n    /**\n     * @generated from protobuf field: string id = 2;\n     */\n    id: string;\n    /**\n     * @generated from protobuf field: uint64 created_at = 3;\n     */\n    createdAt: bigint;\n}\n/**\n * @generated from protobuf message gooseai.Organization\n */\nexport interface Organization {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string;\n    /**\n     * @generated from protobuf field: string name = 2;\n     */\n    name: string;\n    /**\n     * @generated from protobuf field: string description = 3;\n     */\n    description: string;\n    /**\n     * @generated from protobuf field: repeated gooseai.OrganizationMember members = 4;\n     */\n    members: OrganizationMember[];\n    /**\n     * @generated from protobuf field: optional gooseai.OrganizationPaymentInfo payment_info = 5;\n     */\n    paymentInfo?: OrganizationPaymentInfo;\n    /**\n     * @generated from protobuf field: optional string stripe_customer_id = 6;\n     */\n    stripeCustomerId?: string;\n    /**\n     * @generated from protobuf field: optional gooseai.OrganizationAutoCharge auto_charge = 7;\n     */\n    autoCharge?: OrganizationAutoCharge;\n}\n/**\n * @generated from protobuf message gooseai.APIKey\n */\nexport interface APIKey {\n    /**\n     * @generated from protobuf field: string key = 1;\n     */\n    key: string;\n    /**\n     * @generated from protobuf field: bool is_secret = 2;\n     */\n    isSecret: boolean;\n    /**\n     * @generated from protobuf field: uint64 created_at = 3;\n     */\n    createdAt: bigint;\n}\n/**\n * @generated from protobuf message gooseai.User\n */\nexport interface User {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string;\n    /**\n     * @generated from protobuf field: optional string auth_id = 2;\n     */\n    authId?: string;\n    /**\n     * @generated from protobuf field: string profile_picture = 3;\n     */\n    profilePicture: string;\n    /**\n     * @generated from protobuf field: string email = 4;\n     */\n    email: string;\n    /**\n     * @generated from protobuf field: repeated gooseai.OrganizationMember organizations = 5;\n     */\n    organizations: OrganizationMember[];\n    /**\n     * @generated from protobuf field: repeated gooseai.APIKey api_keys = 7;\n     */\n    apiKeys: APIKey[];\n    /**\n     * @generated from protobuf field: uint64 created_at = 8;\n     */\n    createdAt: bigint;\n    /**\n     * @generated from protobuf field: optional bool email_verified = 9;\n     */\n    emailVerified?: boolean;\n}\n/**\n * @generated from protobuf message gooseai.CostData\n */\nexport interface CostData {\n    /**\n     * @generated from protobuf field: uint32 amount_tokens = 1;\n     */\n    amountTokens: number;\n    /**\n     * @generated from protobuf field: double amount_credits = 2;\n     */\n    amountCredits: number;\n}\n/**\n * @generated from protobuf message gooseai.UsageMetric\n */\nexport interface UsageMetric {\n    /**\n     * @generated from protobuf field: string operation = 1;\n     */\n    operation: string;\n    /**\n     * @generated from protobuf field: string engine = 2;\n     */\n    engine: string;\n    /**\n     * @generated from protobuf field: gooseai.CostData input_cost = 3;\n     */\n    inputCost?: CostData;\n    /**\n     * @generated from protobuf field: gooseai.CostData output_cost = 4;\n     */\n    outputCost?: CostData;\n    /**\n     * @generated from protobuf field: optional string user = 5;\n     */\n    user?: string;\n    /**\n     * @generated from protobuf field: uint64 aggregation_timestamp = 6;\n     */\n    aggregationTimestamp: bigint;\n}\n/**\n * @generated from protobuf message gooseai.CostTotal\n */\nexport interface CostTotal {\n    /**\n     * @generated from protobuf field: uint32 amount_tokens = 1;\n     */\n    amountTokens: number;\n    /**\n     * @generated from protobuf field: double amount_credits = 2;\n     */\n    amountCredits: number;\n}\n/**\n * @generated from protobuf message gooseai.TotalMetricsData\n */\nexport interface TotalMetricsData {\n    /**\n     * @generated from protobuf field: gooseai.CostTotal input_total = 1;\n     */\n    inputTotal?: CostTotal;\n    /**\n     * @generated from protobuf field: gooseai.CostTotal output_total = 2;\n     */\n    outputTotal?: CostTotal;\n}\n/**\n * @generated from protobuf message gooseai.Metrics\n */\nexport interface Metrics {\n    /**\n     * @generated from protobuf field: repeated gooseai.UsageMetric metrics = 1;\n     */\n    metrics: UsageMetric[];\n    /**\n     * @generated from protobuf field: gooseai.TotalMetricsData total = 2;\n     */\n    total?: TotalMetricsData;\n}\n/**\n * @generated from protobuf message gooseai.EmptyRequest\n */\nexport interface EmptyRequest {\n}\n/**\n * @generated from protobuf message gooseai.GetOrganizationRequest\n */\nexport interface GetOrganizationRequest {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string;\n}\n/**\n * @generated from protobuf message gooseai.GetMetricsRequest\n */\nexport interface GetMetricsRequest {\n    /**\n     * @generated from protobuf field: string organization_id = 1;\n     */\n    organizationId: string;\n    /**\n     * @generated from protobuf field: optional string user_id = 2;\n     */\n    userId?: string;\n    /**\n     * @generated from protobuf field: uint64 range_from = 3;\n     */\n    rangeFrom: bigint;\n    /**\n     * @generated from protobuf field: uint64 range_to = 4;\n     */\n    rangeTo: bigint;\n    /**\n     * @generated from protobuf field: bool include_per_request_metrics = 5;\n     */\n    includePerRequestMetrics: boolean;\n}\n/**\n * @generated from protobuf message gooseai.APIKeyRequest\n */\nexport interface APIKeyRequest {\n    /**\n     * @generated from protobuf field: bool is_secret = 1;\n     */\n    isSecret: boolean;\n}\n/**\n * @generated from protobuf message gooseai.APIKeyFindRequest\n */\nexport interface APIKeyFindRequest {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string;\n}\n/**\n * @generated from protobuf message gooseai.UpdateDefaultOrganizationRequest\n */\nexport interface UpdateDefaultOrganizationRequest {\n    /**\n     * @generated from protobuf field: string organization_id = 1;\n     */\n    organizationId: string;\n}\n/**\n * @generated from protobuf message gooseai.ClientSettings\n */\nexport interface ClientSettings {\n    /**\n     * @generated from protobuf field: bytes settings = 1;\n     */\n    settings: Uint8Array;\n}\n/**\n * @generated from protobuf message gooseai.CreateAutoChargeIntentRequest\n */\nexport interface CreateAutoChargeIntentRequest {\n    /**\n     * @generated from protobuf field: string organization_id = 1;\n     */\n    organizationId: string;\n    /**\n     * @generated from protobuf field: uint64 monthly_maximum = 2;\n     */\n    monthlyMaximum: bigint;\n    /**\n     * @generated from protobuf field: uint64 minimum_value = 3;\n     */\n    minimumValue: bigint;\n    /**\n     * @generated from protobuf field: uint64 amount_credits = 4;\n     */\n    amountCredits: bigint;\n}\n/**\n * @generated from protobuf message gooseai.CreateChargeRequest\n */\nexport interface CreateChargeRequest {\n    /**\n     * @generated from protobuf field: uint64 amount = 1;\n     */\n    amount: bigint;\n    /**\n     * @generated from protobuf field: string organization_id = 2;\n     */\n    organizationId: string;\n}\n/**\n * @generated from protobuf message gooseai.GetChargesRequest\n */\nexport interface GetChargesRequest {\n    /**\n     * @generated from protobuf field: string organization_id = 1;\n     */\n    organizationId: string;\n    /**\n     * @generated from protobuf field: uint64 range_from = 2;\n     */\n    rangeFrom: bigint;\n    /**\n     * @generated from protobuf field: uint64 range_to = 3;\n     */\n    rangeTo: bigint;\n}\n/**\n * @generated from protobuf message gooseai.Charge\n */\nexport interface Charge {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string;\n    /**\n     * @generated from protobuf field: bool paid = 2;\n     */\n    paid: boolean;\n    /**\n     * @generated from protobuf field: string receipt_link = 3;\n     */\n    receiptLink: string;\n    /**\n     * @generated from protobuf field: string payment_link = 4;\n     */\n    paymentLink: string;\n    /**\n     * @generated from protobuf field: uint64 created_at = 5;\n     */\n    createdAt: bigint;\n    /**\n     * @generated from protobuf field: uint64 amount_credits = 6;\n     */\n    amountCredits: bigint;\n}\n/**\n * @generated from protobuf message gooseai.Charges\n */\nexport interface Charges {\n    /**\n     * @generated from protobuf field: repeated gooseai.Charge charges = 1;\n     */\n    charges: Charge[];\n}\n/**\n * @generated from protobuf message gooseai.GetAutoChargeRequest\n */\nexport interface GetAutoChargeRequest {\n    /**\n     * @generated from protobuf field: string organization_id = 1;\n     */\n    organizationId: string;\n}\n/**\n * @generated from protobuf message gooseai.AutoChargeIntent\n */\nexport interface AutoChargeIntent {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string;\n    /**\n     * @generated from protobuf field: string payment_link = 2;\n     */\n    paymentLink: string;\n    /**\n     * @generated from protobuf field: uint64 created_at = 3;\n     */\n    createdAt: bigint;\n    /**\n     * @generated from protobuf field: uint64 monthly_maximum = 4;\n     */\n    monthlyMaximum: bigint;\n    /**\n     * @generated from protobuf field: uint64 minimum_value = 5;\n     */\n    minimumValue: bigint;\n    /**\n     * @generated from protobuf field: uint64 amount_credits = 6;\n     */\n    amountCredits: bigint;\n}\n/**\n * @generated from protobuf message gooseai.UpdateUserInfoRequest\n */\nexport interface UpdateUserInfoRequest {\n    /**\n     * @generated from protobuf field: optional string email = 1;\n     */\n    email?: string;\n}\n/**\n * @generated from protobuf message gooseai.UserPasswordChangeTicket\n */\nexport interface UserPasswordChangeTicket {\n    /**\n     * @generated from protobuf field: string ticket = 1;\n     */\n    ticket: string;\n}\n/**\n * @generated from protobuf enum gooseai.OrganizationRole\n */\nexport enum OrganizationRole {\n    /**\n     * @generated from protobuf enum value: MEMBER = 0;\n     */\n    MEMBER = 0,\n    /**\n     * @generated from protobuf enum value: ACCOUNTANT = 1;\n     */\n    ACCOUNTANT = 1,\n    /**\n     * @generated from protobuf enum value: OWNER = 2;\n     */\n    OWNER = 2\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass OrganizationMember$Type extends MessageType<OrganizationMember> {\n    constructor() {\n        super(\"gooseai.OrganizationMember\", [\n            { no: 1, name: \"organization\", kind: \"message\", T: () => Organization },\n            { no: 2, name: \"user\", kind: \"message\", T: () => User },\n            { no: 3, name: \"role\", kind: \"enum\", T: () => [\"gooseai.OrganizationRole\", OrganizationRole] },\n            { no: 4, name: \"is_default\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n        ]);\n    }\n    create(value?: PartialMessage<OrganizationMember>): OrganizationMember {\n        const message = { role: 0, isDefault: false };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<OrganizationMember>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OrganizationMember): OrganizationMember {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* gooseai.Organization organization */ 1:\n                    message.organization = Organization.internalBinaryRead(reader, reader.uint32(), options, message.organization);\n                    break;\n                case /* optional gooseai.User user */ 2:\n                    message.user = User.internalBinaryRead(reader, reader.uint32(), options, message.user);\n                    break;\n                case /* gooseai.OrganizationRole role */ 3:\n                    message.role = reader.int32();\n                    break;\n                case /* bool is_default */ 4:\n                    message.isDefault = reader.bool();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: OrganizationMember, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* gooseai.Organization organization = 1; */\n        if (message.organization)\n            Organization.internalBinaryWrite(message.organization, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* optional gooseai.User user = 2; */\n        if (message.user)\n            User.internalBinaryWrite(message.user, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.OrganizationRole role = 3; */\n        if (message.role !== 0)\n            writer.tag(3, WireType.Varint).int32(message.role);\n        /* bool is_default = 4; */\n        if (message.isDefault !== false)\n            writer.tag(4, WireType.Varint).bool(message.isDefault);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.OrganizationMember\n */\nexport const OrganizationMember = new OrganizationMember$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass OrganizationGrant$Type extends MessageType<OrganizationGrant> {\n    constructor() {\n        super(\"gooseai.OrganizationGrant\", [\n            { no: 1, name: \"amount_granted\", kind: \"scalar\", T: 1 /*ScalarType.DOUBLE*/ },\n            { no: 2, name: \"amount_used\", kind: \"scalar\", T: 1 /*ScalarType.DOUBLE*/ },\n            { no: 3, name: \"expires_at\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 4, name: \"granted_at\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<OrganizationGrant>): OrganizationGrant {\n        const message = { amountGranted: 0, amountUsed: 0, expiresAt: 0n, grantedAt: 0n };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<OrganizationGrant>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OrganizationGrant): OrganizationGrant {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* double amount_granted */ 1:\n                    message.amountGranted = reader.double();\n                    break;\n                case /* double amount_used */ 2:\n                    message.amountUsed = reader.double();\n                    break;\n                case /* uint64 expires_at */ 3:\n                    message.expiresAt = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 granted_at */ 4:\n                    message.grantedAt = reader.uint64().toBigInt();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: OrganizationGrant, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* double amount_granted = 1; */\n        if (message.amountGranted !== 0)\n            writer.tag(1, WireType.Bit64).double(message.amountGranted);\n        /* double amount_used = 2; */\n        if (message.amountUsed !== 0)\n            writer.tag(2, WireType.Bit64).double(message.amountUsed);\n        /* uint64 expires_at = 3; */\n        if (message.expiresAt !== 0n)\n            writer.tag(3, WireType.Varint).uint64(message.expiresAt);\n        /* uint64 granted_at = 4; */\n        if (message.grantedAt !== 0n)\n            writer.tag(4, WireType.Varint).uint64(message.grantedAt);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.OrganizationGrant\n */\nexport const OrganizationGrant = new OrganizationGrant$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass OrganizationPaymentInfo$Type extends MessageType<OrganizationPaymentInfo> {\n    constructor() {\n        super(\"gooseai.OrganizationPaymentInfo\", [\n            { no: 1, name: \"balance\", kind: \"scalar\", T: 1 /*ScalarType.DOUBLE*/ },\n            { no: 2, name: \"grants\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => OrganizationGrant }\n        ]);\n    }\n    create(value?: PartialMessage<OrganizationPaymentInfo>): OrganizationPaymentInfo {\n        const message = { balance: 0, grants: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<OrganizationPaymentInfo>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OrganizationPaymentInfo): OrganizationPaymentInfo {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* double balance */ 1:\n                    message.balance = reader.double();\n                    break;\n                case /* repeated gooseai.OrganizationGrant grants */ 2:\n                    message.grants.push(OrganizationGrant.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: OrganizationPaymentInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* double balance = 1; */\n        if (message.balance !== 0)\n            writer.tag(1, WireType.Bit64).double(message.balance);\n        /* repeated gooseai.OrganizationGrant grants = 2; */\n        for (let i = 0; i < message.grants.length; i++)\n            OrganizationGrant.internalBinaryWrite(message.grants[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.OrganizationPaymentInfo\n */\nexport const OrganizationPaymentInfo = new OrganizationPaymentInfo$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass OrganizationAutoCharge$Type extends MessageType<OrganizationAutoCharge> {\n    constructor() {\n        super(\"gooseai.OrganizationAutoCharge\", [\n            { no: 1, name: \"enabled\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n            { no: 2, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"created_at\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<OrganizationAutoCharge>): OrganizationAutoCharge {\n        const message = { enabled: false, id: \"\", createdAt: 0n };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<OrganizationAutoCharge>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OrganizationAutoCharge): OrganizationAutoCharge {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* bool enabled */ 1:\n                    message.enabled = reader.bool();\n                    break;\n                case /* string id */ 2:\n                    message.id = reader.string();\n                    break;\n                case /* uint64 created_at */ 3:\n                    message.createdAt = reader.uint64().toBigInt();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: OrganizationAutoCharge, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* bool enabled = 1; */\n        if (message.enabled !== false)\n            writer.tag(1, WireType.Varint).bool(message.enabled);\n        /* string id = 2; */\n        if (message.id !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.id);\n        /* uint64 created_at = 3; */\n        if (message.createdAt !== 0n)\n            writer.tag(3, WireType.Varint).uint64(message.createdAt);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.OrganizationAutoCharge\n */\nexport const OrganizationAutoCharge = new OrganizationAutoCharge$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Organization$Type extends MessageType<Organization> {\n    constructor() {\n        super(\"gooseai.Organization\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"description\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"members\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => OrganizationMember },\n            { no: 5, name: \"payment_info\", kind: \"message\", T: () => OrganizationPaymentInfo },\n            { no: 6, name: \"stripe_customer_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 7, name: \"auto_charge\", kind: \"message\", T: () => OrganizationAutoCharge }\n        ]);\n    }\n    create(value?: PartialMessage<Organization>): Organization {\n        const message = { id: \"\", name: \"\", description: \"\", members: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Organization>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Organization): Organization {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* string name */ 2:\n                    message.name = reader.string();\n                    break;\n                case /* string description */ 3:\n                    message.description = reader.string();\n                    break;\n                case /* repeated gooseai.OrganizationMember members */ 4:\n                    message.members.push(OrganizationMember.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* optional gooseai.OrganizationPaymentInfo payment_info */ 5:\n                    message.paymentInfo = OrganizationPaymentInfo.internalBinaryRead(reader, reader.uint32(), options, message.paymentInfo);\n                    break;\n                case /* optional string stripe_customer_id */ 6:\n                    message.stripeCustomerId = reader.string();\n                    break;\n                case /* optional gooseai.OrganizationAutoCharge auto_charge */ 7:\n                    message.autoCharge = OrganizationAutoCharge.internalBinaryRead(reader, reader.uint32(), options, message.autoCharge);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Organization, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* string name = 2; */\n        if (message.name !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.name);\n        /* string description = 3; */\n        if (message.description !== \"\")\n            writer.tag(3, WireType.LengthDelimited).string(message.description);\n        /* repeated gooseai.OrganizationMember members = 4; */\n        for (let i = 0; i < message.members.length; i++)\n            OrganizationMember.internalBinaryWrite(message.members[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        /* optional gooseai.OrganizationPaymentInfo payment_info = 5; */\n        if (message.paymentInfo)\n            OrganizationPaymentInfo.internalBinaryWrite(message.paymentInfo, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n        /* optional string stripe_customer_id = 6; */\n        if (message.stripeCustomerId !== undefined)\n            writer.tag(6, WireType.LengthDelimited).string(message.stripeCustomerId);\n        /* optional gooseai.OrganizationAutoCharge auto_charge = 7; */\n        if (message.autoCharge)\n            OrganizationAutoCharge.internalBinaryWrite(message.autoCharge, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Organization\n */\nexport const Organization = new Organization$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass APIKey$Type extends MessageType<APIKey> {\n    constructor() {\n        super(\"gooseai.APIKey\", [\n            { no: 1, name: \"key\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"is_secret\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n            { no: 3, name: \"created_at\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<APIKey>): APIKey {\n        const message = { key: \"\", isSecret: false, createdAt: 0n };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<APIKey>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: APIKey): APIKey {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string key */ 1:\n                    message.key = reader.string();\n                    break;\n                case /* bool is_secret */ 2:\n                    message.isSecret = reader.bool();\n                    break;\n                case /* uint64 created_at */ 3:\n                    message.createdAt = reader.uint64().toBigInt();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: APIKey, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string key = 1; */\n        if (message.key !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.key);\n        /* bool is_secret = 2; */\n        if (message.isSecret !== false)\n            writer.tag(2, WireType.Varint).bool(message.isSecret);\n        /* uint64 created_at = 3; */\n        if (message.createdAt !== 0n)\n            writer.tag(3, WireType.Varint).uint64(message.createdAt);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.APIKey\n */\nexport const APIKey = new APIKey$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass User$Type extends MessageType<User> {\n    constructor() {\n        super(\"gooseai.User\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"auth_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"profile_picture\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"email\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 5, name: \"organizations\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => OrganizationMember },\n            { no: 7, name: \"api_keys\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => APIKey },\n            { no: 8, name: \"created_at\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 9, name: \"email_verified\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ }\n        ]);\n    }\n    create(value?: PartialMessage<User>): User {\n        const message = { id: \"\", profilePicture: \"\", email: \"\", organizations: [], apiKeys: [], createdAt: 0n };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<User>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: User): User {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* optional string auth_id */ 2:\n                    message.authId = reader.string();\n                    break;\n                case /* string profile_picture */ 3:\n                    message.profilePicture = reader.string();\n                    break;\n                case /* string email */ 4:\n                    message.email = reader.string();\n                    break;\n                case /* repeated gooseai.OrganizationMember organizations */ 5:\n                    message.organizations.push(OrganizationMember.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* repeated gooseai.APIKey api_keys */ 7:\n                    message.apiKeys.push(APIKey.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* uint64 created_at */ 8:\n                    message.createdAt = reader.uint64().toBigInt();\n                    break;\n                case /* optional bool email_verified */ 9:\n                    message.emailVerified = reader.bool();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: User, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* optional string auth_id = 2; */\n        if (message.authId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.authId);\n        /* string profile_picture = 3; */\n        if (message.profilePicture !== \"\")\n            writer.tag(3, WireType.LengthDelimited).string(message.profilePicture);\n        /* string email = 4; */\n        if (message.email !== \"\")\n            writer.tag(4, WireType.LengthDelimited).string(message.email);\n        /* repeated gooseai.OrganizationMember organizations = 5; */\n        for (let i = 0; i < message.organizations.length; i++)\n            OrganizationMember.internalBinaryWrite(message.organizations[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n        /* repeated gooseai.APIKey api_keys = 7; */\n        for (let i = 0; i < message.apiKeys.length; i++)\n            APIKey.internalBinaryWrite(message.apiKeys[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n        /* uint64 created_at = 8; */\n        if (message.createdAt !== 0n)\n            writer.tag(8, WireType.Varint).uint64(message.createdAt);\n        /* optional bool email_verified = 9; */\n        if (message.emailVerified !== undefined)\n            writer.tag(9, WireType.Varint).bool(message.emailVerified);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.User\n */\nexport const User = new User$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CostData$Type extends MessageType<CostData> {\n    constructor() {\n        super(\"gooseai.CostData\", [\n            { no: 1, name: \"amount_tokens\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n            { no: 2, name: \"amount_credits\", kind: \"scalar\", T: 1 /*ScalarType.DOUBLE*/ }\n        ]);\n    }\n    create(value?: PartialMessage<CostData>): CostData {\n        const message = { amountTokens: 0, amountCredits: 0 };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<CostData>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CostData): CostData {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* uint32 amount_tokens */ 1:\n                    message.amountTokens = reader.uint32();\n                    break;\n                case /* double amount_credits */ 2:\n                    message.amountCredits = reader.double();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: CostData, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* uint32 amount_tokens = 1; */\n        if (message.amountTokens !== 0)\n            writer.tag(1, WireType.Varint).uint32(message.amountTokens);\n        /* double amount_credits = 2; */\n        if (message.amountCredits !== 0)\n            writer.tag(2, WireType.Bit64).double(message.amountCredits);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.CostData\n */\nexport const CostData = new CostData$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass UsageMetric$Type extends MessageType<UsageMetric> {\n    constructor() {\n        super(\"gooseai.UsageMetric\", [\n            { no: 1, name: \"operation\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"engine\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"input_cost\", kind: \"message\", T: () => CostData },\n            { no: 4, name: \"output_cost\", kind: \"message\", T: () => CostData },\n            { no: 5, name: \"user\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 6, name: \"aggregation_timestamp\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<UsageMetric>): UsageMetric {\n        const message = { operation: \"\", engine: \"\", aggregationTimestamp: 0n };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<UsageMetric>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UsageMetric): UsageMetric {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string operation */ 1:\n                    message.operation = reader.string();\n                    break;\n                case /* string engine */ 2:\n                    message.engine = reader.string();\n                    break;\n                case /* gooseai.CostData input_cost */ 3:\n                    message.inputCost = CostData.internalBinaryRead(reader, reader.uint32(), options, message.inputCost);\n                    break;\n                case /* gooseai.CostData output_cost */ 4:\n                    message.outputCost = CostData.internalBinaryRead(reader, reader.uint32(), options, message.outputCost);\n                    break;\n                case /* optional string user */ 5:\n                    message.user = reader.string();\n                    break;\n                case /* uint64 aggregation_timestamp */ 6:\n                    message.aggregationTimestamp = reader.uint64().toBigInt();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: UsageMetric, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string operation = 1; */\n        if (message.operation !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.operation);\n        /* string engine = 2; */\n        if (message.engine !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.engine);\n        /* gooseai.CostData input_cost = 3; */\n        if (message.inputCost)\n            CostData.internalBinaryWrite(message.inputCost, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.CostData output_cost = 4; */\n        if (message.outputCost)\n            CostData.internalBinaryWrite(message.outputCost, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        /* optional string user = 5; */\n        if (message.user !== undefined)\n            writer.tag(5, WireType.LengthDelimited).string(message.user);\n        /* uint64 aggregation_timestamp = 6; */\n        if (message.aggregationTimestamp !== 0n)\n            writer.tag(6, WireType.Varint).uint64(message.aggregationTimestamp);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.UsageMetric\n */\nexport const UsageMetric = new UsageMetric$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CostTotal$Type extends MessageType<CostTotal> {\n    constructor() {\n        super(\"gooseai.CostTotal\", [\n            { no: 1, name: \"amount_tokens\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n            { no: 2, name: \"amount_credits\", kind: \"scalar\", T: 1 /*ScalarType.DOUBLE*/ }\n        ]);\n    }\n    create(value?: PartialMessage<CostTotal>): CostTotal {\n        const message = { amountTokens: 0, amountCredits: 0 };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<CostTotal>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CostTotal): CostTotal {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* uint32 amount_tokens */ 1:\n                    message.amountTokens = reader.uint32();\n                    break;\n                case /* double amount_credits */ 2:\n                    message.amountCredits = reader.double();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: CostTotal, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* uint32 amount_tokens = 1; */\n        if (message.amountTokens !== 0)\n            writer.tag(1, WireType.Varint).uint32(message.amountTokens);\n        /* double amount_credits = 2; */\n        if (message.amountCredits !== 0)\n            writer.tag(2, WireType.Bit64).double(message.amountCredits);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.CostTotal\n */\nexport const CostTotal = new CostTotal$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TotalMetricsData$Type extends MessageType<TotalMetricsData> {\n    constructor() {\n        super(\"gooseai.TotalMetricsData\", [\n            { no: 1, name: \"input_total\", kind: \"message\", T: () => CostTotal },\n            { no: 2, name: \"output_total\", kind: \"message\", T: () => CostTotal }\n        ]);\n    }\n    create(value?: PartialMessage<TotalMetricsData>): TotalMetricsData {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<TotalMetricsData>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TotalMetricsData): TotalMetricsData {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* gooseai.CostTotal input_total */ 1:\n                    message.inputTotal = CostTotal.internalBinaryRead(reader, reader.uint32(), options, message.inputTotal);\n                    break;\n                case /* gooseai.CostTotal output_total */ 2:\n                    message.outputTotal = CostTotal.internalBinaryRead(reader, reader.uint32(), options, message.outputTotal);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: TotalMetricsData, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* gooseai.CostTotal input_total = 1; */\n        if (message.inputTotal)\n            CostTotal.internalBinaryWrite(message.inputTotal, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.CostTotal output_total = 2; */\n        if (message.outputTotal)\n            CostTotal.internalBinaryWrite(message.outputTotal, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.TotalMetricsData\n */\nexport const TotalMetricsData = new TotalMetricsData$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Metrics$Type extends MessageType<Metrics> {\n    constructor() {\n        super(\"gooseai.Metrics\", [\n            { no: 1, name: \"metrics\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => UsageMetric },\n            { no: 2, name: \"total\", kind: \"message\", T: () => TotalMetricsData }\n        ]);\n    }\n    create(value?: PartialMessage<Metrics>): Metrics {\n        const message = { metrics: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Metrics>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Metrics): Metrics {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated gooseai.UsageMetric metrics */ 1:\n                    message.metrics.push(UsageMetric.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* gooseai.TotalMetricsData total */ 2:\n                    message.total = TotalMetricsData.internalBinaryRead(reader, reader.uint32(), options, message.total);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Metrics, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated gooseai.UsageMetric metrics = 1; */\n        for (let i = 0; i < message.metrics.length; i++)\n            UsageMetric.internalBinaryWrite(message.metrics[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.TotalMetricsData total = 2; */\n        if (message.total)\n            TotalMetricsData.internalBinaryWrite(message.total, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Metrics\n */\nexport const Metrics = new Metrics$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass EmptyRequest$Type extends MessageType<EmptyRequest> {\n    constructor() {\n        super(\"gooseai.EmptyRequest\", []);\n    }\n    create(value?: PartialMessage<EmptyRequest>): EmptyRequest {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<EmptyRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EmptyRequest): EmptyRequest {\n        return target ?? this.create();\n    }\n    internalBinaryWrite(message: EmptyRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.EmptyRequest\n */\nexport const EmptyRequest = new EmptyRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetOrganizationRequest$Type extends MessageType<GetOrganizationRequest> {\n    constructor() {\n        super(\"gooseai.GetOrganizationRequest\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<GetOrganizationRequest>): GetOrganizationRequest {\n        const message = { id: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<GetOrganizationRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetOrganizationRequest): GetOrganizationRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: GetOrganizationRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.GetOrganizationRequest\n */\nexport const GetOrganizationRequest = new GetOrganizationRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetMetricsRequest$Type extends MessageType<GetMetricsRequest> {\n    constructor() {\n        super(\"gooseai.GetMetricsRequest\", [\n            { no: 1, name: \"organization_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"user_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"range_from\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 4, name: \"range_to\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 5, name: \"include_per_request_metrics\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n        ]);\n    }\n    create(value?: PartialMessage<GetMetricsRequest>): GetMetricsRequest {\n        const message = { organizationId: \"\", rangeFrom: 0n, rangeTo: 0n, includePerRequestMetrics: false };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<GetMetricsRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetMetricsRequest): GetMetricsRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string organization_id */ 1:\n                    message.organizationId = reader.string();\n                    break;\n                case /* optional string user_id */ 2:\n                    message.userId = reader.string();\n                    break;\n                case /* uint64 range_from */ 3:\n                    message.rangeFrom = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 range_to */ 4:\n                    message.rangeTo = reader.uint64().toBigInt();\n                    break;\n                case /* bool include_per_request_metrics */ 5:\n                    message.includePerRequestMetrics = reader.bool();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: GetMetricsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string organization_id = 1; */\n        if (message.organizationId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.organizationId);\n        /* optional string user_id = 2; */\n        if (message.userId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.userId);\n        /* uint64 range_from = 3; */\n        if (message.rangeFrom !== 0n)\n            writer.tag(3, WireType.Varint).uint64(message.rangeFrom);\n        /* uint64 range_to = 4; */\n        if (message.rangeTo !== 0n)\n            writer.tag(4, WireType.Varint).uint64(message.rangeTo);\n        /* bool include_per_request_metrics = 5; */\n        if (message.includePerRequestMetrics !== false)\n            writer.tag(5, WireType.Varint).bool(message.includePerRequestMetrics);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.GetMetricsRequest\n */\nexport const GetMetricsRequest = new GetMetricsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass APIKeyRequest$Type extends MessageType<APIKeyRequest> {\n    constructor() {\n        super(\"gooseai.APIKeyRequest\", [\n            { no: 1, name: \"is_secret\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n        ]);\n    }\n    create(value?: PartialMessage<APIKeyRequest>): APIKeyRequest {\n        const message = { isSecret: false };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<APIKeyRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: APIKeyRequest): APIKeyRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* bool is_secret */ 1:\n                    message.isSecret = reader.bool();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: APIKeyRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* bool is_secret = 1; */\n        if (message.isSecret !== false)\n            writer.tag(1, WireType.Varint).bool(message.isSecret);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.APIKeyRequest\n */\nexport const APIKeyRequest = new APIKeyRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass APIKeyFindRequest$Type extends MessageType<APIKeyFindRequest> {\n    constructor() {\n        super(\"gooseai.APIKeyFindRequest\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<APIKeyFindRequest>): APIKeyFindRequest {\n        const message = { id: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<APIKeyFindRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: APIKeyFindRequest): APIKeyFindRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: APIKeyFindRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.APIKeyFindRequest\n */\nexport const APIKeyFindRequest = new APIKeyFindRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass UpdateDefaultOrganizationRequest$Type extends MessageType<UpdateDefaultOrganizationRequest> {\n    constructor() {\n        super(\"gooseai.UpdateDefaultOrganizationRequest\", [\n            { no: 1, name: \"organization_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<UpdateDefaultOrganizationRequest>): UpdateDefaultOrganizationRequest {\n        const message = { organizationId: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<UpdateDefaultOrganizationRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateDefaultOrganizationRequest): UpdateDefaultOrganizationRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string organization_id */ 1:\n                    message.organizationId = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: UpdateDefaultOrganizationRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string organization_id = 1; */\n        if (message.organizationId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.organizationId);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.UpdateDefaultOrganizationRequest\n */\nexport const UpdateDefaultOrganizationRequest = new UpdateDefaultOrganizationRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ClientSettings$Type extends MessageType<ClientSettings> {\n    constructor() {\n        super(\"gooseai.ClientSettings\", [\n            { no: 1, name: \"settings\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ }\n        ]);\n    }\n    create(value?: PartialMessage<ClientSettings>): ClientSettings {\n        const message = { settings: new Uint8Array(0) };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ClientSettings>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClientSettings): ClientSettings {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* bytes settings */ 1:\n                    message.settings = reader.bytes();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: ClientSettings, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* bytes settings = 1; */\n        if (message.settings.length)\n            writer.tag(1, WireType.LengthDelimited).bytes(message.settings);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.ClientSettings\n */\nexport const ClientSettings = new ClientSettings$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CreateAutoChargeIntentRequest$Type extends MessageType<CreateAutoChargeIntentRequest> {\n    constructor() {\n        super(\"gooseai.CreateAutoChargeIntentRequest\", [\n            { no: 1, name: \"organization_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"monthly_maximum\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 3, name: \"minimum_value\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 4, name: \"amount_credits\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<CreateAutoChargeIntentRequest>): CreateAutoChargeIntentRequest {\n        const message = { organizationId: \"\", monthlyMaximum: 0n, minimumValue: 0n, amountCredits: 0n };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<CreateAutoChargeIntentRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateAutoChargeIntentRequest): CreateAutoChargeIntentRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string organization_id */ 1:\n                    message.organizationId = reader.string();\n                    break;\n                case /* uint64 monthly_maximum */ 2:\n                    message.monthlyMaximum = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 minimum_value */ 3:\n                    message.minimumValue = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 amount_credits */ 4:\n                    message.amountCredits = reader.uint64().toBigInt();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: CreateAutoChargeIntentRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string organization_id = 1; */\n        if (message.organizationId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.organizationId);\n        /* uint64 monthly_maximum = 2; */\n        if (message.monthlyMaximum !== 0n)\n            writer.tag(2, WireType.Varint).uint64(message.monthlyMaximum);\n        /* uint64 minimum_value = 3; */\n        if (message.minimumValue !== 0n)\n            writer.tag(3, WireType.Varint).uint64(message.minimumValue);\n        /* uint64 amount_credits = 4; */\n        if (message.amountCredits !== 0n)\n            writer.tag(4, WireType.Varint).uint64(message.amountCredits);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.CreateAutoChargeIntentRequest\n */\nexport const CreateAutoChargeIntentRequest = new CreateAutoChargeIntentRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CreateChargeRequest$Type extends MessageType<CreateChargeRequest> {\n    constructor() {\n        super(\"gooseai.CreateChargeRequest\", [\n            { no: 1, name: \"amount\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 2, name: \"organization_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<CreateChargeRequest>): CreateChargeRequest {\n        const message = { amount: 0n, organizationId: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<CreateChargeRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateChargeRequest): CreateChargeRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* uint64 amount */ 1:\n                    message.amount = reader.uint64().toBigInt();\n                    break;\n                case /* string organization_id */ 2:\n                    message.organizationId = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: CreateChargeRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* uint64 amount = 1; */\n        if (message.amount !== 0n)\n            writer.tag(1, WireType.Varint).uint64(message.amount);\n        /* string organization_id = 2; */\n        if (message.organizationId !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.organizationId);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.CreateChargeRequest\n */\nexport const CreateChargeRequest = new CreateChargeRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetChargesRequest$Type extends MessageType<GetChargesRequest> {\n    constructor() {\n        super(\"gooseai.GetChargesRequest\", [\n            { no: 1, name: \"organization_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"range_from\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 3, name: \"range_to\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<GetChargesRequest>): GetChargesRequest {\n        const message = { organizationId: \"\", rangeFrom: 0n, rangeTo: 0n };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<GetChargesRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetChargesRequest): GetChargesRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string organization_id */ 1:\n                    message.organizationId = reader.string();\n                    break;\n                case /* uint64 range_from */ 2:\n                    message.rangeFrom = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 range_to */ 3:\n                    message.rangeTo = reader.uint64().toBigInt();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: GetChargesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string organization_id = 1; */\n        if (message.organizationId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.organizationId);\n        /* uint64 range_from = 2; */\n        if (message.rangeFrom !== 0n)\n            writer.tag(2, WireType.Varint).uint64(message.rangeFrom);\n        /* uint64 range_to = 3; */\n        if (message.rangeTo !== 0n)\n            writer.tag(3, WireType.Varint).uint64(message.rangeTo);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.GetChargesRequest\n */\nexport const GetChargesRequest = new GetChargesRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Charge$Type extends MessageType<Charge> {\n    constructor() {\n        super(\"gooseai.Charge\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"paid\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n            { no: 3, name: \"receipt_link\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"payment_link\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 5, name: \"created_at\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 6, name: \"amount_credits\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<Charge>): Charge {\n        const message = { id: \"\", paid: false, receiptLink: \"\", paymentLink: \"\", createdAt: 0n, amountCredits: 0n };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Charge>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Charge): Charge {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* bool paid */ 2:\n                    message.paid = reader.bool();\n                    break;\n                case /* string receipt_link */ 3:\n                    message.receiptLink = reader.string();\n                    break;\n                case /* string payment_link */ 4:\n                    message.paymentLink = reader.string();\n                    break;\n                case /* uint64 created_at */ 5:\n                    message.createdAt = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 amount_credits */ 6:\n                    message.amountCredits = reader.uint64().toBigInt();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Charge, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* bool paid = 2; */\n        if (message.paid !== false)\n            writer.tag(2, WireType.Varint).bool(message.paid);\n        /* string receipt_link = 3; */\n        if (message.receiptLink !== \"\")\n            writer.tag(3, WireType.LengthDelimited).string(message.receiptLink);\n        /* string payment_link = 4; */\n        if (message.paymentLink !== \"\")\n            writer.tag(4, WireType.LengthDelimited).string(message.paymentLink);\n        /* uint64 created_at = 5; */\n        if (message.createdAt !== 0n)\n            writer.tag(5, WireType.Varint).uint64(message.createdAt);\n        /* uint64 amount_credits = 6; */\n        if (message.amountCredits !== 0n)\n            writer.tag(6, WireType.Varint).uint64(message.amountCredits);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Charge\n */\nexport const Charge = new Charge$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Charges$Type extends MessageType<Charges> {\n    constructor() {\n        super(\"gooseai.Charges\", [\n            { no: 1, name: \"charges\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Charge }\n        ]);\n    }\n    create(value?: PartialMessage<Charges>): Charges {\n        const message = { charges: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Charges>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Charges): Charges {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated gooseai.Charge charges */ 1:\n                    message.charges.push(Charge.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Charges, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated gooseai.Charge charges = 1; */\n        for (let i = 0; i < message.charges.length; i++)\n            Charge.internalBinaryWrite(message.charges[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Charges\n */\nexport const Charges = new Charges$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetAutoChargeRequest$Type extends MessageType<GetAutoChargeRequest> {\n    constructor() {\n        super(\"gooseai.GetAutoChargeRequest\", [\n            { no: 1, name: \"organization_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<GetAutoChargeRequest>): GetAutoChargeRequest {\n        const message = { organizationId: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<GetAutoChargeRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetAutoChargeRequest): GetAutoChargeRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string organization_id */ 1:\n                    message.organizationId = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: GetAutoChargeRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string organization_id = 1; */\n        if (message.organizationId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.organizationId);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.GetAutoChargeRequest\n */\nexport const GetAutoChargeRequest = new GetAutoChargeRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AutoChargeIntent$Type extends MessageType<AutoChargeIntent> {\n    constructor() {\n        super(\"gooseai.AutoChargeIntent\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"payment_link\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"created_at\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 4, name: \"monthly_maximum\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 5, name: \"minimum_value\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 6, name: \"amount_credits\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<AutoChargeIntent>): AutoChargeIntent {\n        const message = { id: \"\", paymentLink: \"\", createdAt: 0n, monthlyMaximum: 0n, minimumValue: 0n, amountCredits: 0n };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<AutoChargeIntent>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AutoChargeIntent): AutoChargeIntent {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* string payment_link */ 2:\n                    message.paymentLink = reader.string();\n                    break;\n                case /* uint64 created_at */ 3:\n                    message.createdAt = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 monthly_maximum */ 4:\n                    message.monthlyMaximum = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 minimum_value */ 5:\n                    message.minimumValue = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 amount_credits */ 6:\n                    message.amountCredits = reader.uint64().toBigInt();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: AutoChargeIntent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* string payment_link = 2; */\n        if (message.paymentLink !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.paymentLink);\n        /* uint64 created_at = 3; */\n        if (message.createdAt !== 0n)\n            writer.tag(3, WireType.Varint).uint64(message.createdAt);\n        /* uint64 monthly_maximum = 4; */\n        if (message.monthlyMaximum !== 0n)\n            writer.tag(4, WireType.Varint).uint64(message.monthlyMaximum);\n        /* uint64 minimum_value = 5; */\n        if (message.minimumValue !== 0n)\n            writer.tag(5, WireType.Varint).uint64(message.minimumValue);\n        /* uint64 amount_credits = 6; */\n        if (message.amountCredits !== 0n)\n            writer.tag(6, WireType.Varint).uint64(message.amountCredits);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.AutoChargeIntent\n */\nexport const AutoChargeIntent = new AutoChargeIntent$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass UpdateUserInfoRequest$Type extends MessageType<UpdateUserInfoRequest> {\n    constructor() {\n        super(\"gooseai.UpdateUserInfoRequest\", [\n            { no: 1, name: \"email\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<UpdateUserInfoRequest>): UpdateUserInfoRequest {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<UpdateUserInfoRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateUserInfoRequest): UpdateUserInfoRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional string email */ 1:\n                    message.email = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: UpdateUserInfoRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional string email = 1; */\n        if (message.email !== undefined)\n            writer.tag(1, WireType.LengthDelimited).string(message.email);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.UpdateUserInfoRequest\n */\nexport const UpdateUserInfoRequest = new UpdateUserInfoRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass UserPasswordChangeTicket$Type extends MessageType<UserPasswordChangeTicket> {\n    constructor() {\n        super(\"gooseai.UserPasswordChangeTicket\", [\n            { no: 1, name: \"ticket\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<UserPasswordChangeTicket>): UserPasswordChangeTicket {\n        const message = { ticket: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<UserPasswordChangeTicket>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UserPasswordChangeTicket): UserPasswordChangeTicket {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string ticket */ 1:\n                    message.ticket = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: UserPasswordChangeTicket, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string ticket = 1; */\n        if (message.ticket !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.ticket);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.UserPasswordChangeTicket\n */\nexport const UserPasswordChangeTicket = new UserPasswordChangeTicket$Type();\n/**\n * @generated ServiceType for protobuf service gooseai.DashboardService\n */\nexport const DashboardService = new ServiceType(\"gooseai.DashboardService\", [\n    { name: \"GetMe\", options: {}, I: EmptyRequest, O: User },\n    { name: \"GetOrganization\", options: {}, I: GetOrganizationRequest, O: Organization },\n    { name: \"GetMetrics\", options: {}, I: GetMetricsRequest, O: Metrics },\n    { name: \"CreateAPIKey\", options: {}, I: APIKeyRequest, O: APIKey },\n    { name: \"DeleteAPIKey\", options: {}, I: APIKeyFindRequest, O: APIKey },\n    { name: \"UpdateDefaultOrganization\", options: {}, I: UpdateDefaultOrganizationRequest, O: User },\n    { name: \"GetClientSettings\", options: {}, I: EmptyRequest, O: ClientSettings },\n    { name: \"SetClientSettings\", options: {}, I: ClientSettings, O: ClientSettings },\n    { name: \"UpdateUserInfo\", options: {}, I: UpdateUserInfoRequest, O: User },\n    { name: \"CreatePasswordChangeTicket\", options: {}, I: EmptyRequest, O: UserPasswordChangeTicket },\n    { name: \"DeleteAccount\", options: {}, I: EmptyRequest, O: User },\n    { name: \"CreateCharge\", options: {}, I: CreateChargeRequest, O: Charge },\n    { name: \"GetCharges\", options: {}, I: GetChargesRequest, O: Charges },\n    { name: \"CreateAutoChargeIntent\", options: {}, I: CreateAutoChargeIntentRequest, O: AutoChargeIntent },\n    { name: \"UpdateAutoChargeIntent\", options: {}, I: CreateAutoChargeIntentRequest, O: AutoChargeIntent },\n    { name: \"GetAutoChargeIntent\", options: {}, I: GetAutoChargeRequest, O: AutoChargeIntent }\n]);\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/Proto/Generated/engines.client.ts",
    "content": "// @generated by protobuf-ts 2.8.2\n// @generated from protobuf file \"engines.proto\" (package \"gooseai\", syntax proto3)\n// tslint:disable\nimport type { RpcTransport } from \"@protobuf-ts/runtime-rpc\";\nimport type { ServiceInfo } from \"@protobuf-ts/runtime-rpc\";\nimport { EnginesService } from \"./engines\";\nimport { stackIntercept } from \"@protobuf-ts/runtime-rpc\";\nimport type { Engines } from \"./engines\";\nimport type { ListEnginesRequest } from \"./engines\";\nimport type { UnaryCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { RpcOptions } from \"@protobuf-ts/runtime-rpc\";\n/**\n * @generated from protobuf service gooseai.EnginesService\n */\nexport interface IEnginesServiceClient {\n    /**\n     * @generated from protobuf rpc: ListEngines(gooseai.ListEnginesRequest) returns (gooseai.Engines);\n     */\n    listEngines(input: ListEnginesRequest, options?: RpcOptions): UnaryCall<ListEnginesRequest, Engines>;\n}\n/**\n * @generated from protobuf service gooseai.EnginesService\n */\nexport class EnginesServiceClient implements IEnginesServiceClient, ServiceInfo {\n    typeName = EnginesService.typeName;\n    methods = EnginesService.methods;\n    options = EnginesService.options;\n    constructor(private readonly _transport: RpcTransport) {\n    }\n    /**\n     * @generated from protobuf rpc: ListEngines(gooseai.ListEnginesRequest) returns (gooseai.Engines);\n     */\n    listEngines(input: ListEnginesRequest, options?: RpcOptions): UnaryCall<ListEnginesRequest, Engines> {\n        const method = this.methods[0], opt = this._transport.mergeOptions(options);\n        return stackIntercept<ListEnginesRequest, Engines>(\"unary\", this._transport, method, opt, input);\n    }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/Proto/Generated/engines.ts",
    "content": "// @generated by protobuf-ts 2.8.2\n// @generated from protobuf file \"engines.proto\" (package \"gooseai\", syntax proto3)\n// tslint:disable\nimport { ServiceType } from \"@protobuf-ts/runtime-rpc\";\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MESSAGE_TYPE } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * Engine info struct\n *\n * @generated from protobuf message gooseai.EngineInfo\n */\nexport interface EngineInfo {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string;\n    /**\n     * @generated from protobuf field: string owner = 2;\n     */\n    owner: string;\n    /**\n     * @generated from protobuf field: bool ready = 3;\n     */\n    ready: boolean;\n    /**\n     * @generated from protobuf field: gooseai.EngineType type = 4;\n     */\n    type: EngineType;\n    /**\n     * @generated from protobuf field: gooseai.EngineTokenizer tokenizer = 5;\n     */\n    tokenizer: EngineTokenizer;\n    /**\n     * @generated from protobuf field: string name = 6;\n     */\n    name: string;\n    /**\n     * @generated from protobuf field: string description = 7;\n     */\n    description: string;\n}\n/**\n * Empty\n *\n * @generated from protobuf message gooseai.ListEnginesRequest\n */\nexport interface ListEnginesRequest {\n}\n/**\n * Engine info list\n *\n * @generated from protobuf message gooseai.Engines\n */\nexport interface Engines {\n    /**\n     * @generated from protobuf field: repeated gooseai.EngineInfo engine = 1;\n     */\n    engine: EngineInfo[];\n}\n/**\n * Possible engine type\n *\n * @generated from protobuf enum gooseai.EngineType\n */\nexport enum EngineType {\n    /**\n     * @generated from protobuf enum value: TEXT = 0;\n     */\n    TEXT = 0,\n    /**\n     * @generated from protobuf enum value: PICTURE = 1;\n     */\n    PICTURE = 1,\n    /**\n     * @generated from protobuf enum value: AUDIO = 2;\n     */\n    AUDIO = 2,\n    /**\n     * @generated from protobuf enum value: VIDEO = 3;\n     */\n    VIDEO = 3,\n    /**\n     * @generated from protobuf enum value: CLASSIFICATION = 4;\n     */\n    CLASSIFICATION = 4,\n    /**\n     * @generated from protobuf enum value: STORAGE = 5;\n     */\n    STORAGE = 5\n}\n/**\n * @generated from protobuf enum gooseai.EngineTokenizer\n */\nexport enum EngineTokenizer {\n    /**\n     * @generated from protobuf enum value: GPT2 = 0;\n     */\n    GPT2 = 0,\n    /**\n     * @generated from protobuf enum value: PILE = 1;\n     */\n    PILE = 1\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass EngineInfo$Type extends MessageType<EngineInfo> {\n    constructor() {\n        super(\"gooseai.EngineInfo\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"ready\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n            { no: 4, name: \"type\", kind: \"enum\", T: () => [\"gooseai.EngineType\", EngineType] },\n            { no: 5, name: \"tokenizer\", kind: \"enum\", T: () => [\"gooseai.EngineTokenizer\", EngineTokenizer] },\n            { no: 6, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 7, name: \"description\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<EngineInfo>): EngineInfo {\n        const message = { id: \"\", owner: \"\", ready: false, type: 0, tokenizer: 0, name: \"\", description: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<EngineInfo>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EngineInfo): EngineInfo {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* string owner */ 2:\n                    message.owner = reader.string();\n                    break;\n                case /* bool ready */ 3:\n                    message.ready = reader.bool();\n                    break;\n                case /* gooseai.EngineType type */ 4:\n                    message.type = reader.int32();\n                    break;\n                case /* gooseai.EngineTokenizer tokenizer */ 5:\n                    message.tokenizer = reader.int32();\n                    break;\n                case /* string name */ 6:\n                    message.name = reader.string();\n                    break;\n                case /* string description */ 7:\n                    message.description = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: EngineInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* string owner = 2; */\n        if (message.owner !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.owner);\n        /* bool ready = 3; */\n        if (message.ready !== false)\n            writer.tag(3, WireType.Varint).bool(message.ready);\n        /* gooseai.EngineType type = 4; */\n        if (message.type !== 0)\n            writer.tag(4, WireType.Varint).int32(message.type);\n        /* gooseai.EngineTokenizer tokenizer = 5; */\n        if (message.tokenizer !== 0)\n            writer.tag(5, WireType.Varint).int32(message.tokenizer);\n        /* string name = 6; */\n        if (message.name !== \"\")\n            writer.tag(6, WireType.LengthDelimited).string(message.name);\n        /* string description = 7; */\n        if (message.description !== \"\")\n            writer.tag(7, WireType.LengthDelimited).string(message.description);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.EngineInfo\n */\nexport const EngineInfo = new EngineInfo$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListEnginesRequest$Type extends MessageType<ListEnginesRequest> {\n    constructor() {\n        super(\"gooseai.ListEnginesRequest\", []);\n    }\n    create(value?: PartialMessage<ListEnginesRequest>): ListEnginesRequest {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ListEnginesRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListEnginesRequest): ListEnginesRequest {\n        return target ?? this.create();\n    }\n    internalBinaryWrite(message: ListEnginesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.ListEnginesRequest\n */\nexport const ListEnginesRequest = new ListEnginesRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Engines$Type extends MessageType<Engines> {\n    constructor() {\n        super(\"gooseai.Engines\", [\n            { no: 1, name: \"engine\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => EngineInfo }\n        ]);\n    }\n    create(value?: PartialMessage<Engines>): Engines {\n        const message = { engine: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Engines>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Engines): Engines {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated gooseai.EngineInfo engine */ 1:\n                    message.engine.push(EngineInfo.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Engines, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated gooseai.EngineInfo engine = 1; */\n        for (let i = 0; i < message.engine.length; i++)\n            EngineInfo.internalBinaryWrite(message.engine[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Engines\n */\nexport const Engines = new Engines$Type();\n/**\n * @generated ServiceType for protobuf service gooseai.EnginesService\n */\nexport const EnginesService = new ServiceType(\"gooseai.EnginesService\", [\n    { name: \"ListEngines\", options: {}, I: ListEnginesRequest, O: Engines }\n]);\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/Proto/Generated/generation.client.ts",
    "content": "// @generated by protobuf-ts 2.8.2\n// @generated from protobuf file \"generation.proto\" (package \"gooseai\", syntax proto3)\n// tslint:disable\nimport type { RpcTransport } from \"@protobuf-ts/runtime-rpc\";\nimport type { ServiceInfo } from \"@protobuf-ts/runtime-rpc\";\nimport { GenerationService } from \"./generation\";\nimport type { ChainRequest } from \"./generation\";\nimport { stackIntercept } from \"@protobuf-ts/runtime-rpc\";\nimport type { Answer } from \"./generation\";\nimport type { Request } from \"./generation\";\nimport type { ServerStreamingCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { RpcOptions } from \"@protobuf-ts/runtime-rpc\";\n/**\n *\n * gRPC services\n *\n *\n * @generated from protobuf service gooseai.GenerationService\n */\nexport interface IGenerationServiceClient {\n    /**\n     * @generated from protobuf rpc: Generate(gooseai.Request) returns (stream gooseai.Answer);\n     */\n    generate(input: Request, options?: RpcOptions): ServerStreamingCall<Request, Answer>;\n    /**\n     * @generated from protobuf rpc: ChainGenerate(gooseai.ChainRequest) returns (stream gooseai.Answer);\n     */\n    chainGenerate(input: ChainRequest, options?: RpcOptions): ServerStreamingCall<ChainRequest, Answer>;\n}\n/**\n *\n * gRPC services\n *\n *\n * @generated from protobuf service gooseai.GenerationService\n */\nexport class GenerationServiceClient implements IGenerationServiceClient, ServiceInfo {\n    typeName = GenerationService.typeName;\n    methods = GenerationService.methods;\n    options = GenerationService.options;\n    constructor(private readonly _transport: RpcTransport) {\n    }\n    /**\n     * @generated from protobuf rpc: Generate(gooseai.Request) returns (stream gooseai.Answer);\n     */\n    generate(input: Request, options?: RpcOptions): ServerStreamingCall<Request, Answer> {\n        const method = this.methods[0], opt = this._transport.mergeOptions(options);\n        return stackIntercept<Request, Answer>(\"serverStreaming\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: ChainGenerate(gooseai.ChainRequest) returns (stream gooseai.Answer);\n     */\n    chainGenerate(input: ChainRequest, options?: RpcOptions): ServerStreamingCall<ChainRequest, Answer> {\n        const method = this.methods[1], opt = this._transport.mergeOptions(options);\n        return stackIntercept<ChainRequest, Answer>(\"serverStreaming\", this._transport, method, opt, input);\n    }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/Proto/Generated/generation.ts",
    "content": "// @generated by protobuf-ts 2.8.2\n// @generated from protobuf file \"generation.proto\" (package \"gooseai\", syntax proto3)\n// tslint:disable\nimport { ServiceType } from \"@protobuf-ts/runtime-rpc\";\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MESSAGE_TYPE } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\nimport { Struct } from \"./google/protobuf/struct\";\nimport { Tensor } from \"./tensors\";\n/**\n * Generally, a GPT BPE 16-bit token, paired with an optional string representation.\n *\n * @generated from protobuf message gooseai.Token\n */\nexport interface Token {\n    /**\n     * @generated from protobuf field: optional string text = 1;\n     */\n    text?: string;\n    /**\n     * @generated from protobuf field: uint32 id = 2;\n     */\n    id: number;\n}\n/**\n * Sequence of tokens, paired with the id of the tokenizer used to generate them.\n *\n * @generated from protobuf message gooseai.Tokens\n */\nexport interface Tokens {\n    /**\n     * @generated from protobuf field: repeated gooseai.Token tokens = 1;\n     */\n    tokens: Token[];\n    /**\n     * @generated from protobuf field: optional string tokenizer_id = 2;\n     */\n    tokenizerId?: string;\n}\n/**\n * A tangible Artifact, such as an image, video, or text that is used for input\n * or output.\n *\n * @generated from protobuf message gooseai.Artifact\n */\nexport interface Artifact {\n    /**\n     * @generated from protobuf field: uint64 id = 1;\n     */\n    id: bigint;\n    /**\n     * @generated from protobuf field: gooseai.ArtifactType type = 2;\n     */\n    type: ArtifactType;\n    /**\n     * @generated from protobuf field: string mime = 3;\n     */\n    mime: string; // MIME type identifier, e.g. \"image/png\"\n    /**\n     * @generated from protobuf field: optional string magic = 4;\n     */\n    magic?: string; // Magic number, e.g. \"PNG\"\n    /**\n     * @generated from protobuf oneof: data\n     */\n    data: {\n        oneofKind: \"binary\";\n        /**\n         * @generated from protobuf field: bytes binary = 5;\n         */\n        binary: Uint8Array; // Binary data, e.g. PNG image\n    } | {\n        oneofKind: \"text\";\n        /**\n         * @generated from protobuf field: string text = 6;\n         */\n        text: string; // Text data, e.g. text prompt\n    } | {\n        oneofKind: \"tokens\";\n        /**\n         * @generated from protobuf field: gooseai.Tokens tokens = 7;\n         */\n        tokens: Tokens; // Tokenized text data, e.g. GPT tokens\n    } | {\n        oneofKind: \"classifier\";\n        /**\n         * @generated from protobuf field: gooseai.ClassifierParameters classifier = 11;\n         */\n        classifier: ClassifierParameters;\n    } | {\n        oneofKind: \"tensor\";\n        /**\n         * @generated from protobuf field: tensors.Tensor tensor = 14;\n         */\n        tensor: Tensor; // torch.Tensor:\n    } | {\n        oneofKind: undefined;\n    };\n    /**\n     * @generated from protobuf field: uint32 index = 8;\n     */\n    index: number; // Index of this artifact in input/output list\n    /**\n     * @generated from protobuf field: gooseai.FinishReason finish_reason = 9;\n     */\n    finishReason: FinishReason; // Reason for finishing, if applicable\n    /**\n     * @generated from protobuf field: uint32 seed = 10;\n     */\n    seed: number; // Seed used to generate this artifact\n    /**\n     * @generated from protobuf field: string uuid = 12;\n     */\n    uuid: string; // UUIDv4 of the artifact, used for asset lookup\n    /**\n     * @generated from protobuf field: uint64 size = 13;\n     */\n    size: bigint; // Size of the artifact in bytes\n}\n/**\n * A set of parameters for each individual Prompt.\n *\n * @generated from protobuf message gooseai.PromptParameters\n */\nexport interface PromptParameters {\n    /**\n     * @generated from protobuf field: optional bool init = 1;\n     */\n    init?: boolean; // deprecated, no longer used\n    /**\n     * @generated from protobuf field: optional float weight = 2;\n     */\n    weight?: number;\n}\n/**\n * A Prompt is a special type of Artifact that is used to generate an output.\n * There can be multiple Prompts that affect the same output. Currently, the\n * only Prompts supported are:\n *   - Text (singular)\n *   - Init Image (singular, optional, type ARTIFACT_IMAGE)\n *   - Mask (singular, optional, type ARTIFACT_MASK)\n *   - Depth (singular, optional, type ARTIFACT_DEPTH)\n *\n * @generated from protobuf message gooseai.Prompt\n */\nexport interface Prompt {\n    /**\n     * @generated from protobuf field: optional gooseai.PromptParameters parameters = 1;\n     */\n    parameters?: PromptParameters;\n    /**\n     * @generated from protobuf oneof: prompt\n     */\n    prompt: {\n        oneofKind: \"text\";\n        /**\n         * @generated from protobuf field: string text = 2;\n         */\n        text: string;\n    } | {\n        oneofKind: \"tokens\";\n        /**\n         * @generated from protobuf field: gooseai.Tokens tokens = 3;\n         */\n        tokens: Tokens;\n    } | {\n        oneofKind: \"artifact\";\n        /**\n         * @generated from protobuf field: gooseai.Artifact artifact = 4;\n         */\n        artifact: Artifact;\n    } | {\n        oneofKind: undefined;\n    };\n}\n/**\n * Parameters that affect the behavior of the sampler, typically used for CFG.\n *\n * @generated from protobuf message gooseai.SamplerParameters\n */\nexport interface SamplerParameters {\n    /**\n     * @generated from protobuf field: optional float eta = 1;\n     */\n    eta?: number;\n    /**\n     * @generated from protobuf field: optional uint64 sampling_steps = 2;\n     */\n    samplingSteps?: bigint;\n    /**\n     * @generated from protobuf field: optional uint64 latent_channels = 3;\n     */\n    latentChannels?: bigint;\n    /**\n     * @generated from protobuf field: optional uint64 downsampling_factor = 4;\n     */\n    downsamplingFactor?: bigint;\n    /**\n     * @generated from protobuf field: optional float cfg_scale = 5;\n     */\n    cfgScale?: number;\n    /**\n     * @generated from protobuf field: optional float init_noise_scale = 6;\n     */\n    initNoiseScale?: number; // defaults to 0.99\n    /**\n     * @generated from protobuf field: optional float step_noise_scale = 7;\n     */\n    stepNoiseScale?: number; // defaults to 0.99\n}\n/**\n * Unused, but reserved for future use. Adjustments to the latents after\n * initialization.\n *\n * @generated from protobuf message gooseai.ConditionerParameters\n */\nexport interface ConditionerParameters {\n    /**\n     * @generated from protobuf field: optional string vector_adjust_prior = 1;\n     */\n    vectorAdjustPrior?: string;\n    /**\n     * @generated from protobuf field: optional gooseai.Model conditioner = 2;\n     */\n    conditioner?: Model;\n}\n/**\n * When does this schedule definition apply?\n *\n * @generated from protobuf message gooseai.ScheduleParameters\n */\nexport interface ScheduleParameters {\n    /**\n     * @generated from protobuf field: optional float start = 1;\n     */\n    start?: number; // 0.0 to 1.0\n    /**\n     * @generated from protobuf field: optional float end = 2;\n     */\n    end?: number; // 0.0 to 1.0\n    /**\n     * @generated from protobuf field: optional float value = 3;\n     */\n    value?: number; // float value to apply on this schedule\n}\n/**\n * Parameters that apply to this block of the schedule.\n *\n * @generated from protobuf message gooseai.StepParameter\n */\nexport interface StepParameter {\n    /**\n     * @generated from protobuf field: float scaled_step = 1;\n     */\n    scaledStep: number;\n    /**\n     * @generated from protobuf field: optional gooseai.SamplerParameters sampler = 2;\n     */\n    sampler?: SamplerParameters;\n    /**\n     * @generated from protobuf field: optional gooseai.ScheduleParameters schedule = 3;\n     */\n    schedule?: ScheduleParameters;\n    /**\n     * @generated from protobuf field: optional gooseai.GuidanceParameters guidance = 4;\n     */\n    guidance?: GuidanceParameters;\n}\n/**\n * @generated from protobuf message gooseai.Model\n */\nexport interface Model {\n    /**\n     * @generated from protobuf field: gooseai.ModelArchitecture architecture = 1;\n     */\n    architecture: ModelArchitecture;\n    /**\n     * @generated from protobuf field: string publisher = 2;\n     */\n    publisher: string;\n    /**\n     * @generated from protobuf field: string dataset = 3;\n     */\n    dataset: string;\n    /**\n     * @generated from protobuf field: float version = 4;\n     */\n    version: number;\n    /**\n     * @generated from protobuf field: string semantic_version = 5;\n     */\n    semanticVersion: string;\n    /**\n     * @generated from protobuf field: string alias = 6;\n     */\n    alias: string;\n}\n/**\n * @generated from protobuf message gooseai.CutoutParameters\n */\nexport interface CutoutParameters {\n    /**\n     * @generated from protobuf field: repeated gooseai.CutoutParameters cutouts = 1;\n     */\n    cutouts: CutoutParameters[]; // Nested cutouts, unsupported\n    /**\n     * @generated from protobuf field: optional uint32 count = 2;\n     */\n    count?: number; // 0 to n, usually 8 to 32, 0 inner\n    /**\n     * @generated from protobuf field: optional float gray = 3;\n     */\n    gray?: number; // 0.0 to 1.0, defaults to 0.2\n    /**\n     * @generated from protobuf field: optional float blur = 4;\n     */\n    blur?: number; // percentage of cutouts to blur\n    /**\n     * @generated from protobuf field: optional float size_power = 5;\n     */\n    sizePower?: number; // defaults to inner: 0.5, outer: 0.0\n}\n/**\n * GuidanceScheduleParameters are used to define a schedule for CLIP guidance, and\n * are used to define the behavior of the guidance over time. They are relative\n * to the total number of steps, and are scaled to the number of steps in the\n * current run.\n *\n * @generated from protobuf message gooseai.GuidanceScheduleParameters\n */\nexport interface GuidanceScheduleParameters {\n    /**\n     * @generated from protobuf field: float duration = 1;\n     */\n    duration: number;\n    /**\n     * @generated from protobuf field: float value = 2;\n     */\n    value: number;\n}\n/**\n * Parameters that affect the behavior of the guidance, typically used for CLIP.\n * We can specify more than one model, and the guidance will be a weighted sum\n * of the models.\n *\n * @generated from protobuf message gooseai.GuidanceInstanceParameters\n */\nexport interface GuidanceInstanceParameters {\n    /**\n     * @generated from protobuf field: repeated gooseai.Model models = 2;\n     */\n    models: Model[]; // models to use for this set\n    /**\n     * @generated from protobuf field: optional float guidance_strength = 3;\n     */\n    guidanceStrength?: number; // 0.0 to 1.0, usually 0.05 to 0.225\n    /**\n     * @generated from protobuf field: repeated gooseai.GuidanceScheduleParameters schedule = 4;\n     */\n    schedule: GuidanceScheduleParameters[]; // when to apply guidance\n    /**\n     * @generated from protobuf field: optional gooseai.CutoutParameters cutouts = 5;\n     */\n    cutouts?: CutoutParameters; // cutout parameters\n    /**\n     * @generated from protobuf field: optional gooseai.Prompt prompt = 6;\n     */\n    prompt?: Prompt; // prompt to use for guidance\n}\n/**\n * Parameters that affect the behavior of the guidance, typically used for CLIP.\n * The omission of this field implies the default guidance of CFG.\n *\n * @generated from protobuf message gooseai.GuidanceParameters\n */\nexport interface GuidanceParameters {\n    /**\n     * @generated from protobuf field: gooseai.GuidancePreset guidance_preset = 1;\n     */\n    guidancePreset: GuidancePreset; // base preset for guidance\n    /**\n     * @generated from protobuf field: repeated gooseai.GuidanceInstanceParameters instances = 2;\n     */\n    instances: GuidanceInstanceParameters[]; // guidance instances\n}\n/**\n * @generated from protobuf message gooseai.TransformType\n */\nexport interface TransformType {\n    /**\n     * @generated from protobuf oneof: type\n     */\n    type: {\n        oneofKind: \"diffusion\";\n        /**\n         * @generated from protobuf field: gooseai.DiffusionSampler diffusion = 1;\n         */\n        diffusion: DiffusionSampler;\n    } | {\n        oneofKind: \"upscaler\";\n        /**\n         * @generated from protobuf field: gooseai.Upscaler upscaler = 2;\n         */\n        upscaler: Upscaler;\n    } | {\n        oneofKind: undefined;\n    };\n}\n/**\n * @generated from protobuf message gooseai.ImageParameters\n */\nexport interface ImageParameters {\n    /**\n     * @generated from protobuf field: optional uint64 height = 1;\n     */\n    height?: bigint;\n    /**\n     * @generated from protobuf field: optional uint64 width = 2;\n     */\n    width?: bigint;\n    /**\n     * @generated from protobuf field: repeated uint32 seed = 3;\n     */\n    seed: number[];\n    /**\n     * @generated from protobuf field: optional uint64 samples = 4;\n     */\n    samples?: bigint;\n    /**\n     * @generated from protobuf field: optional uint64 steps = 5;\n     */\n    steps?: bigint;\n    /**\n     * @generated from protobuf field: optional gooseai.TransformType transform = 6;\n     */\n    transform?: TransformType;\n    /**\n     * @generated from protobuf field: repeated gooseai.StepParameter parameters = 7;\n     */\n    parameters: StepParameter[];\n    /**\n     * @generated from protobuf field: optional gooseai.MaskedAreaInit masked_area_init = 8;\n     */\n    maskedAreaInit?: MaskedAreaInit; // defaults to MASKED_AREA_INIT_ZERO\n    /**\n     * @generated from protobuf field: optional gooseai.WeightMethod weight_method = 9;\n     */\n    weightMethod?: WeightMethod; // defaults to TEXT_ENCODER\n    /**\n     * @generated from protobuf field: optional bool quantize = 10;\n     */\n    quantize?: boolean; // defaults to true\n}\n/**\n * @generated from protobuf message gooseai.ClassifierConcept\n */\nexport interface ClassifierConcept {\n    /**\n     * @generated from protobuf field: string concept = 1;\n     */\n    concept: string;\n    /**\n     * @generated from protobuf field: optional float threshold = 2;\n     */\n    threshold?: number;\n}\n/**\n * @generated from protobuf message gooseai.ClassifierCategory\n */\nexport interface ClassifierCategory {\n    /**\n     * @generated from protobuf field: string name = 1;\n     */\n    name: string;\n    /**\n     * @generated from protobuf field: repeated gooseai.ClassifierConcept concepts = 2;\n     */\n    concepts: ClassifierConcept[];\n    /**\n     * @generated from protobuf field: optional float adjustment = 3;\n     */\n    adjustment?: number;\n    /**\n     * @generated from protobuf field: optional gooseai.Action action = 4;\n     */\n    action?: Action;\n    /**\n     * @generated from protobuf field: optional gooseai.ClassifierMode classifier_mode = 5;\n     */\n    classifierMode?: ClassifierMode;\n}\n/**\n * @generated from protobuf message gooseai.ClassifierParameters\n */\nexport interface ClassifierParameters {\n    /**\n     * @generated from protobuf field: repeated gooseai.ClassifierCategory categories = 1;\n     */\n    categories: ClassifierCategory[];\n    /**\n     * @generated from protobuf field: repeated gooseai.ClassifierCategory exceeds = 2;\n     */\n    exceeds: ClassifierCategory[];\n    /**\n     * @generated from protobuf field: optional gooseai.Action realized_action = 3;\n     */\n    realizedAction?: Action;\n}\n/**\n * Interpolation between two images applied at specified blend ratios\n *\n * @generated from protobuf message gooseai.InterpolateParameters\n */\nexport interface InterpolateParameters {\n    /**\n     * @generated from protobuf field: repeated float ratios = 1;\n     */\n    ratios: number[];\n    /**\n     * @generated from protobuf field: optional gooseai.InterpolateMode mode = 2;\n     */\n    mode?: InterpolateMode;\n}\n/**\n * @generated from protobuf message gooseai.TransformColorAdjust\n */\nexport interface TransformColorAdjust {\n    /**\n     * @generated from protobuf field: optional float brightness = 1;\n     */\n    brightness?: number; // scale pixel intensities, 1.0 is no change\n    /**\n     * @generated from protobuf field: optional float contrast = 2;\n     */\n    contrast?: number; // contrast adjustment, 1.0 is no change\n    /**\n     * @generated from protobuf field: optional float hue = 3;\n     */\n    hue?: number; // -180 to 180 hue adjustment, 0.0 is no change\n    /**\n     * @generated from protobuf field: optional float saturation = 4;\n     */\n    saturation?: number; // 0.0 to 2.0 saturation scale, 1.0 is no change\n    /**\n     * @generated from protobuf field: optional float lightness = 5;\n     */\n    lightness?: number; // -1.0 to 1.0 lightness adjustment, 0.0 is no change\n    /**\n     * @generated from protobuf field: optional gooseai.Artifact match_image = 6;\n     */\n    matchImage?: Artifact; // image to color match\n    /**\n     * @generated from protobuf field: optional gooseai.ColorMatchMode match_mode = 7;\n     */\n    matchMode?: ColorMatchMode; // color match mode to use\n    /**\n     * @generated from protobuf field: optional float noise_amount = 8;\n     */\n    noiseAmount?: number; // amount of gaussian noise to add\n    /**\n     * @generated from protobuf field: optional uint32 noise_seed = 9;\n     */\n    noiseSeed?: number; // random seed for noise\n}\n/**\n * @generated from protobuf message gooseai.TransformDepthCalc\n */\nexport interface TransformDepthCalc {\n    /**\n     * @generated from protobuf field: optional float blend_weight = 1;\n     */\n    blendWeight?: number; // blend factor between AdaBins (0.0) and MiDaS (1.0)\n    /**\n     * @generated from protobuf field: optional uint32 blur_radius = 2;\n     */\n    blurRadius?: number; // defaults to 0.0\n    /**\n     * @generated from protobuf field: optional bool reverse = 3;\n     */\n    reverse?: boolean; // make near depths have higher values\n}\n/**\n * @generated from protobuf message gooseai.TransformMatrix\n */\nexport interface TransformMatrix {\n    /**\n     * Column-major 3x3 or 4x4 perspective matrix\n     * [sx, 10, 20, tx]   [x]\n     * [01, sy, 21, ty] . [y]\n     * [02, 12, sz, tz]   [z]\n     * [03, 13, 23, 33]   [1]\n     *\n     * @generated from protobuf field: repeated float data = 1 [packed = true];\n     */\n    data: number[];\n}\n/**\n * @generated from protobuf message gooseai.TransformResample\n */\nexport interface TransformResample {\n    /**\n     * @generated from protobuf field: gooseai.BorderMode border_mode = 1;\n     */\n    borderMode: BorderMode; // extrapolation of border pixels\n    /**\n     * @generated from protobuf field: gooseai.TransformMatrix transform = 2;\n     */\n    transform?: TransformMatrix; // 3x3 or 4x4 matrix\n    /**\n     * @generated from protobuf field: optional gooseai.TransformMatrix prev_transform = 3;\n     */\n    prevTransform?: TransformMatrix; // 3x3 or 4x4 matrix, defaults to identity\n    /**\n     * @generated from protobuf field: optional float depth_warp = 4;\n     */\n    depthWarp?: number; // depth warp factor, defaults to 1.0\n    /**\n     * @generated from protobuf field: optional bool export_mask = 5;\n     */\n    exportMask?: boolean; // return inpaint mask\n}\n/**\n * @generated from protobuf message gooseai.CameraParameters\n */\nexport interface CameraParameters {\n    /**\n     * @generated from protobuf field: gooseai.CameraType camera_type = 1;\n     */\n    cameraType: CameraType;\n    /**\n     * @generated from protobuf field: float near_plane = 2;\n     */\n    nearPlane: number; // Nearest plane depth of a rendered frustum\n    /**\n     * @generated from protobuf field: float far_plane = 3;\n     */\n    farPlane: number; // Farthest plane depth of a rendered frustum\n    /**\n     * @generated from protobuf field: optional float fov = 4;\n     */\n    fov?: number; // Camera field of view (in degrees). Must be set for CAMERA_PERSPECTIVE type.\n}\n/**\n * @generated from protobuf message gooseai.TransformCameraPose\n */\nexport interface TransformCameraPose {\n    /**\n     * @generated from protobuf field: gooseai.TransformMatrix world_to_view_matrix = 1;\n     */\n    worldToViewMatrix?: TransformMatrix; // 4x4 transform matrix for the next frame\n    /**\n     * @generated from protobuf field: gooseai.CameraParameters camera_parameters = 2;\n     */\n    cameraParameters?: CameraParameters;\n    /**\n     * @generated from protobuf field: bool do_prefill = 5;\n     */\n    doPrefill: boolean; // Prefill masked areas with values matching the colors around the area\n    /**\n     * @generated from protobuf field: gooseai.RenderMode render_mode = 8;\n     */\n    renderMode: RenderMode; // Both image and mask will be rendered using this method.\n}\n/**\n * @generated from protobuf message gooseai.TransformParameters\n */\nexport interface TransformParameters {\n    /**\n     * @generated from protobuf oneof: transform\n     */\n    transform: {\n        oneofKind: \"colorAdjust\";\n        /**\n         * @generated from protobuf field: gooseai.TransformColorAdjust color_adjust = 2;\n         */\n        colorAdjust: TransformColorAdjust;\n    } | {\n        oneofKind: \"depthCalc\";\n        /**\n         * @generated from protobuf field: gooseai.TransformDepthCalc depth_calc = 4;\n         */\n        depthCalc: TransformDepthCalc;\n    } | {\n        oneofKind: \"resample\";\n        /**\n         * @generated from protobuf field: gooseai.TransformResample resample = 5;\n         */\n        resample: TransformResample;\n    } | {\n        oneofKind: \"cameraPose\";\n        /**\n         * @generated from protobuf field: gooseai.TransformCameraPose camera_pose = 6;\n         */\n        cameraPose: TransformCameraPose;\n    } | {\n        oneofKind: undefined;\n    };\n}\n/**\n * @generated from protobuf message gooseai.AssetParameters\n */\nexport interface AssetParameters {\n    /**\n     * @generated from protobuf field: gooseai.AssetAction action = 1;\n     */\n    action: AssetAction;\n    /**\n     * @generated from protobuf field: string project_id = 2;\n     */\n    projectId: string;\n    /**\n     * @generated from protobuf field: gooseai.AssetUse use = 3;\n     */\n    use: AssetUse;\n}\n/**\n * AnswerMeta is a set of metadata about an answer, usually the operating\n * environment.\n *\n * @generated from protobuf message gooseai.AnswerMeta\n */\nexport interface AnswerMeta {\n    /**\n     * @generated from protobuf field: optional string gpu_id = 1;\n     */\n    gpuId?: string;\n    /**\n     * @generated from protobuf field: optional string cpu_id = 2;\n     */\n    cpuId?: string;\n    /**\n     * @generated from protobuf field: optional string node_id = 3;\n     */\n    nodeId?: string;\n    /**\n     * @generated from protobuf field: optional string engine_id = 4;\n     */\n    engineId?: string;\n}\n/**\n * An Answer is a response to a Request. It is a set of Artifacts, which can be\n * of any type and forwarded to the client or the next stage.\n *\n * @generated from protobuf message gooseai.Answer\n */\nexport interface Answer {\n    /**\n     * @generated from protobuf field: string answer_id = 1;\n     */\n    answerId: string;\n    /**\n     * @generated from protobuf field: string request_id = 2;\n     */\n    requestId: string;\n    /**\n     * @generated from protobuf field: uint64 received = 3;\n     */\n    received: bigint;\n    /**\n     * @generated from protobuf field: uint64 created = 4;\n     */\n    created: bigint;\n    /**\n     * @generated from protobuf field: optional gooseai.AnswerMeta meta = 6;\n     */\n    meta?: AnswerMeta;\n    /**\n     * @generated from protobuf field: repeated gooseai.Artifact artifacts = 7;\n     */\n    artifacts: Artifact[];\n}\n/**\n * An AnswerBatch is a set of Answers. It can represent one or several completed\n * requests, which may be sent to the client in a single response.\n *\n * @generated from protobuf message gooseai.AnswerBatch\n */\nexport interface AnswerBatch {\n    /**\n     * @generated from protobuf field: string batch_id = 1;\n     */\n    batchId: string;\n    /**\n     * @generated from protobuf field: repeated gooseai.Answer answers = 2;\n     */\n    answers: Answer[];\n}\n/**\n * A Request is a set of Artifacts, which can be of any type with model or\n * transform parameters. It is sent to the server, which will respond with an\n * Answer.\n *\n * @generated from protobuf message gooseai.Request\n */\nexport interface Request {\n    /**\n     * @generated from protobuf field: string engine_id = 1;\n     */\n    engineId: string;\n    /**\n     * @generated from protobuf field: string request_id = 2;\n     */\n    requestId: string;\n    /**\n     * @generated from protobuf field: gooseai.ArtifactType requested_type = 3;\n     */\n    requestedType: ArtifactType;\n    /**\n     * @generated from protobuf field: repeated gooseai.Prompt prompt = 4;\n     */\n    prompt: Prompt[];\n    /**\n     * @generated from protobuf oneof: params\n     */\n    params: {\n        oneofKind: \"image\";\n        /**\n         * @generated from protobuf field: gooseai.ImageParameters image = 5;\n         */\n        image: ImageParameters;\n    } | {\n        oneofKind: \"classifier\";\n        /**\n         * @generated from protobuf field: gooseai.ClassifierParameters classifier = 7;\n         */\n        classifier: ClassifierParameters;\n    } | {\n        oneofKind: \"asset\";\n        /**\n         * @generated from protobuf field: gooseai.AssetParameters asset = 8;\n         */\n        asset: AssetParameters;\n    } | {\n        oneofKind: \"interpolate\";\n        /**\n         * @generated from protobuf field: gooseai.InterpolateParameters interpolate = 11;\n         */\n        interpolate: InterpolateParameters;\n    } | {\n        oneofKind: \"transform\";\n        /**\n         * @generated from protobuf field: gooseai.TransformParameters transform = 12;\n         */\n        transform: TransformParameters;\n    } | {\n        oneofKind: undefined;\n    };\n    /**\n     * @generated from protobuf field: optional gooseai.ConditionerParameters conditioner = 6;\n     */\n    conditioner?: ConditionerParameters;\n    /**\n     * @generated from protobuf field: optional google.protobuf.Struct extras = 2047;\n     */\n    extras?: Struct; // for development use\n}\n/**\n * @generated from protobuf message gooseai.OnStatus\n */\nexport interface OnStatus {\n    /**\n     * @generated from protobuf field: repeated gooseai.FinishReason reason = 1;\n     */\n    reason: FinishReason[];\n    /**\n     * @generated from protobuf field: optional string target = 2;\n     */\n    target?: string;\n    /**\n     * @generated from protobuf field: repeated gooseai.StageAction action = 3;\n     */\n    action: StageAction[];\n}\n/**\n * @generated from protobuf message gooseai.Stage\n */\nexport interface Stage {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string;\n    /**\n     * @generated from protobuf field: gooseai.Request request = 2;\n     */\n    request?: Request;\n    /**\n     * @generated from protobuf field: repeated gooseai.OnStatus on_status = 3;\n     */\n    onStatus: OnStatus[];\n}\n/**\n * @generated from protobuf message gooseai.ChainRequest\n */\nexport interface ChainRequest {\n    /**\n     * @generated from protobuf field: string request_id = 1;\n     */\n    requestId: string;\n    /**\n     * @generated from protobuf field: repeated gooseai.Stage stage = 2;\n     */\n    stage: Stage[];\n}\n/**\n * @generated from protobuf enum gooseai.FinishReason\n */\nexport enum FinishReason {\n    /**\n     * @generated from protobuf enum value: NULL = 0;\n     */\n    NULL = 0,\n    /**\n     * @generated from protobuf enum value: LENGTH = 1;\n     */\n    LENGTH = 1,\n    /**\n     * @generated from protobuf enum value: STOP = 2;\n     */\n    STOP = 2,\n    /**\n     * @generated from protobuf enum value: ERROR = 3;\n     */\n    ERROR = 3,\n    /**\n     * @generated from protobuf enum value: FILTER = 4;\n     */\n    FILTER = 4\n}\n/**\n * @generated from protobuf enum gooseai.ArtifactType\n */\nexport enum ArtifactType {\n    /**\n     * @generated from protobuf enum value: ARTIFACT_NONE = 0;\n     */\n    ARTIFACT_NONE = 0,\n    /**\n     * @generated from protobuf enum value: ARTIFACT_IMAGE = 1;\n     */\n    ARTIFACT_IMAGE = 1,\n    /**\n     * @generated from protobuf enum value: ARTIFACT_VIDEO = 2;\n     */\n    ARTIFACT_VIDEO = 2,\n    /**\n     * @generated from protobuf enum value: ARTIFACT_TEXT = 3;\n     */\n    ARTIFACT_TEXT = 3,\n    /**\n     * @generated from protobuf enum value: ARTIFACT_TOKENS = 4;\n     */\n    ARTIFACT_TOKENS = 4,\n    /**\n     * @generated from protobuf enum value: ARTIFACT_EMBEDDING = 5;\n     */\n    ARTIFACT_EMBEDDING = 5,\n    /**\n     * @generated from protobuf enum value: ARTIFACT_CLASSIFICATIONS = 6;\n     */\n    ARTIFACT_CLASSIFICATIONS = 6,\n    /**\n     * @generated from protobuf enum value: ARTIFACT_MASK = 7;\n     */\n    ARTIFACT_MASK = 7,\n    /**\n     * @generated from protobuf enum value: ARTIFACT_LATENT = 8;\n     */\n    ARTIFACT_LATENT = 8,\n    /**\n     * @generated from protobuf enum value: ARTIFACT_TENSOR = 9;\n     */\n    ARTIFACT_TENSOR = 9,\n    /**\n     * @generated from protobuf enum value: ARTIFACT_DEPTH = 10;\n     */\n    ARTIFACT_DEPTH = 10\n}\n/**\n * @generated from protobuf enum gooseai.MaskedAreaInit\n */\nexport enum MaskedAreaInit {\n    /**\n     * @generated from protobuf enum value: MASKED_AREA_INIT_ZERO = 0;\n     */\n    ZERO = 0,\n    /**\n     * @generated from protobuf enum value: MASKED_AREA_INIT_RANDOM = 1;\n     */\n    RANDOM = 1,\n    /**\n     * @generated from protobuf enum value: MASKED_AREA_INIT_ORIGINAL = 2;\n     */\n    ORIGINAL = 2\n}\n/**\n * @generated from protobuf enum gooseai.WeightMethod\n */\nexport enum WeightMethod {\n    /**\n     * @generated from protobuf enum value: TEXT_ENCODER = 0;\n     */\n    TEXT_ENCODER = 0,\n    /**\n     * @generated from protobuf enum value: CROSS_ATTENTION = 1;\n     */\n    CROSS_ATTENTION = 1\n}\n/**\n * DiffusionSampler identifies which sampler to use for Diffusion, and represents\n * the internal set of supported samplers.\n *\n * @generated from protobuf enum gooseai.DiffusionSampler\n */\nexport enum DiffusionSampler {\n    /**\n     * @generated from protobuf enum value: SAMPLER_DDIM = 0;\n     */\n    SAMPLER_DDIM = 0,\n    /**\n     * @generated from protobuf enum value: SAMPLER_DDPM = 1;\n     */\n    SAMPLER_DDPM = 1,\n    /**\n     * @generated from protobuf enum value: SAMPLER_K_EULER = 2;\n     */\n    SAMPLER_K_EULER = 2,\n    /**\n     * @generated from protobuf enum value: SAMPLER_K_EULER_ANCESTRAL = 3;\n     */\n    SAMPLER_K_EULER_ANCESTRAL = 3,\n    /**\n     * @generated from protobuf enum value: SAMPLER_K_HEUN = 4;\n     */\n    SAMPLER_K_HEUN = 4,\n    /**\n     * @generated from protobuf enum value: SAMPLER_K_DPM_2 = 5;\n     */\n    SAMPLER_K_DPM_2 = 5,\n    /**\n     * @generated from protobuf enum value: SAMPLER_K_DPM_2_ANCESTRAL = 6;\n     */\n    SAMPLER_K_DPM_2_ANCESTRAL = 6,\n    /**\n     * @generated from protobuf enum value: SAMPLER_K_LMS = 7;\n     */\n    SAMPLER_K_LMS = 7,\n    /**\n     * @generated from protobuf enum value: SAMPLER_K_DPMPP_2S_ANCESTRAL = 8;\n     */\n    SAMPLER_K_DPMPP_2S_ANCESTRAL = 8,\n    /**\n     * @generated from protobuf enum value: SAMPLER_K_DPMPP_2M = 9;\n     */\n    SAMPLER_K_DPMPP_2M = 9,\n    /**\n     * @generated from protobuf enum value: SAMPLER_K_DPMPP_SDE = 10;\n     */\n    SAMPLER_K_DPMPP_SDE = 10\n}\n/**\n * Future, unimplemented.\n *\n * @generated from protobuf enum gooseai.Upscaler\n */\nexport enum Upscaler {\n    /**\n     * @generated from protobuf enum value: UPSCALER_RGB = 0;\n     */\n    RGB = 0,\n    /**\n     * @generated from protobuf enum value: UPSCALER_GFPGAN = 1;\n     */\n    GFPGAN = 1,\n    /**\n     * @generated from protobuf enum value: UPSCALER_ESRGAN = 2;\n     */\n    ESRGAN = 2\n}\n/**\n * Presets for CLIP guidance.\n *\n * @generated from protobuf enum gooseai.GuidancePreset\n */\nexport enum GuidancePreset {\n    /**\n     * @generated from protobuf enum value: GUIDANCE_PRESET_NONE = 0;\n     */\n    NONE = 0,\n    /**\n     * @generated from protobuf enum value: GUIDANCE_PRESET_SIMPLE = 1;\n     */\n    SIMPLE = 1,\n    /**\n     * @generated from protobuf enum value: GUIDANCE_PRESET_FAST_BLUE = 2;\n     */\n    FAST_BLUE = 2,\n    /**\n     * @generated from protobuf enum value: GUIDANCE_PRESET_FAST_GREEN = 3;\n     */\n    FAST_GREEN = 3,\n    /**\n     * @generated from protobuf enum value: GUIDANCE_PRESET_SLOW = 4;\n     */\n    SLOW = 4,\n    /**\n     * @generated from protobuf enum value: GUIDANCE_PRESET_SLOWER = 5;\n     */\n    SLOWER = 5,\n    /**\n     * @generated from protobuf enum value: GUIDANCE_PRESET_SLOWEST = 6;\n     */\n    SLOWEST = 6\n}\n/**\n * @generated from protobuf enum gooseai.ModelArchitecture\n */\nexport enum ModelArchitecture {\n    /**\n     * @generated from protobuf enum value: MODEL_ARCHITECTURE_NONE = 0;\n     */\n    NONE = 0,\n    /**\n     * @generated from protobuf enum value: MODEL_ARCHITECTURE_CLIP_VIT = 1;\n     */\n    CLIP_VIT = 1,\n    /**\n     * @generated from protobuf enum value: MODEL_ARCHITECTURE_CLIP_RESNET = 2;\n     */\n    CLIP_RESNET = 2,\n    /**\n     * @generated from protobuf enum value: MODEL_ARCHITECTURE_LDM = 3;\n     */\n    LDM = 3\n}\n/**\n * @generated from protobuf enum gooseai.Action\n */\nexport enum Action {\n    /**\n     * @generated from protobuf enum value: ACTION_PASSTHROUGH = 0;\n     */\n    PASSTHROUGH = 0,\n    /**\n     * @generated from protobuf enum value: ACTION_REGENERATE_DUPLICATE = 1;\n     */\n    REGENERATE_DUPLICATE = 1,\n    /**\n     * @generated from protobuf enum value: ACTION_REGENERATE = 2;\n     */\n    REGENERATE = 2,\n    /**\n     * @generated from protobuf enum value: ACTION_OBFUSCATE_DUPLICATE = 3;\n     */\n    OBFUSCATE_DUPLICATE = 3,\n    /**\n     * @generated from protobuf enum value: ACTION_OBFUSCATE = 4;\n     */\n    OBFUSCATE = 4,\n    /**\n     * @generated from protobuf enum value: ACTION_DISCARD = 5;\n     */\n    DISCARD = 5\n}\n// \n// Artifact classification parameters.\n// \n\n/**\n * @generated from protobuf enum gooseai.ClassifierMode\n */\nexport enum ClassifierMode {\n    /**\n     * @generated from protobuf enum value: CLSFR_MODE_ZEROSHOT = 0;\n     */\n    CLSFR_MODE_ZEROSHOT = 0,\n    /**\n     * CLSFR_MODE_ODDSRATIO = 2;\n     *\n     * @generated from protobuf enum value: CLSFR_MODE_MULTICLASS = 1;\n     */\n    CLSFR_MODE_MULTICLASS = 1\n}\n// \n// Interpolation\n// \n\n/**\n * @generated from protobuf enum gooseai.InterpolateMode\n */\nexport enum InterpolateMode {\n    /**\n     * @generated from protobuf enum value: INTERPOLATE_LINEAR = 0;\n     */\n    INTERPOLATE_LINEAR = 0,\n    /**\n     * @generated from protobuf enum value: INTERPOLATE_RIFE = 1;\n     */\n    INTERPOLATE_RIFE = 1,\n    /**\n     * @generated from protobuf enum value: INTERPOLATE_VAE_LINEAR = 2;\n     */\n    INTERPOLATE_VAE_LINEAR = 2,\n    /**\n     * @generated from protobuf enum value: INTERPOLATE_VAE_SLERP = 3;\n     */\n    INTERPOLATE_VAE_SLERP = 3,\n    /**\n     * @generated from protobuf enum value: INTERPOLATE_FILM = 4;\n     */\n    INTERPOLATE_FILM = 4\n}\n// \n// Transforms\n// \n\n/**\n * @generated from protobuf enum gooseai.BorderMode\n */\nexport enum BorderMode {\n    /**\n     * reflect image values across the border\n     *\n     * @generated from protobuf enum value: BORDER_REFLECT = 0;\n     */\n    BORDER_REFLECT = 0,\n    /**\n     * replicate border values outside the image\n     *\n     * @generated from protobuf enum value: BORDER_REPLICATE = 1;\n     */\n    BORDER_REPLICATE = 1,\n    /**\n     * wrap around / tile the image values\n     *\n     * @generated from protobuf enum value: BORDER_WRAP = 2;\n     */\n    BORDER_WRAP = 2,\n    /**\n     * use 0 for locations outside the image\n     *\n     * @generated from protobuf enum value: BORDER_ZERO = 3;\n     */\n    BORDER_ZERO = 3,\n    /**\n     * prefill border areas with values matching the colors around the area\n     *\n     * @generated from protobuf enum value: BORDER_PREFILL = 4;\n     */\n    BORDER_PREFILL = 4\n}\n/**\n * @generated from protobuf enum gooseai.ColorMatchMode\n */\nexport enum ColorMatchMode {\n    /**\n     * match hue, saturation, and value histograms\n     *\n     * @generated from protobuf enum value: COLOR_MATCH_HSV = 0;\n     */\n    COLOR_MATCH_HSV = 0,\n    /**\n     * match lightness, a, and b histograms\n     *\n     * @generated from protobuf enum value: COLOR_MATCH_LAB = 1;\n     */\n    COLOR_MATCH_LAB = 1,\n    /**\n     * match red, green, and blue histograms\n     *\n     * @generated from protobuf enum value: COLOR_MATCH_RGB = 2;\n     */\n    COLOR_MATCH_RGB = 2\n}\n/**\n * @generated from protobuf enum gooseai.CameraType\n */\nexport enum CameraType {\n    /**\n     * Perspective camera\n     *\n     * @generated from protobuf enum value: CAMERA_PERSPECTIVE = 0;\n     */\n    CAMERA_PERSPECTIVE = 0,\n    /**\n     * Orthographic camera. Well suited for isometric animations\n     *\n     * @generated from protobuf enum value: CAMERA_ORTHOGRAPHIC = 1;\n     */\n    CAMERA_ORTHOGRAPHIC = 1\n}\n/**\n * @generated from protobuf enum gooseai.RenderMode\n */\nexport enum RenderMode {\n    /**\n     * @generated from protobuf enum value: RENDER_MESH = 0;\n     */\n    RENDER_MESH = 0,\n    /**\n     * @generated from protobuf enum value: RENDER_POINTCLOUD = 1;\n     */\n    RENDER_POINTCLOUD = 1\n}\n// \n// Asset parameters\n// \n\n/**\n * @generated from protobuf enum gooseai.AssetAction\n */\nexport enum AssetAction {\n    /**\n     * @generated from protobuf enum value: ASSET_PUT = 0;\n     */\n    ASSET_PUT = 0,\n    /**\n     * @generated from protobuf enum value: ASSET_GET = 1;\n     */\n    ASSET_GET = 1,\n    /**\n     * @generated from protobuf enum value: ASSET_DELETE = 2;\n     */\n    ASSET_DELETE = 2\n}\n/**\n * AssetUse defines how the asset is used within a project.  This enum matches\n * the values the project proto.\n *\n * @generated from protobuf enum gooseai.AssetUse\n */\nexport enum AssetUse {\n    /**\n     * Asset does not have use defined\n     *\n     * @generated from protobuf enum value: ASSET_USE_UNDEFINED = 0;\n     */\n    UNDEFINED = 0,\n    /**\n     * Asset is used as an input for the project\n     *\n     * @generated from protobuf enum value: ASSET_USE_INPUT = 1;\n     */\n    INPUT = 1,\n    /**\n     * Asset is an output from the project\n     *\n     * @generated from protobuf enum value: ASSET_USE_OUTPUT = 2;\n     */\n    OUTPUT = 2,\n    /**\n     * Asset is an output from an intermediate step of the project\n     *\n     * @generated from protobuf enum value: ASSET_USE_INTERMEDIATE = 3;\n     */\n    INTERMEDIATE = 3,\n    /**\n     * Asset is used as the project file for the project\n     *\n     * @generated from protobuf enum value: ASSET_USE_PROJECT = 4;\n     */\n    PROJECT = 4\n}\n// \n// Stages\n// \n// A Stage is a single step in a pipeline. Stages are a set of Requests, which are\n// sent to the server, and a set of Answers, which are received from the server.\n\n/**\n * @generated from protobuf enum gooseai.StageAction\n */\nexport enum StageAction {\n    /**\n     * @generated from protobuf enum value: STAGE_ACTION_PASS = 0;\n     */\n    PASS = 0,\n    /**\n     * @generated from protobuf enum value: STAGE_ACTION_DISCARD = 1;\n     */\n    DISCARD = 1,\n    /**\n     * @generated from protobuf enum value: STAGE_ACTION_RETURN = 2;\n     */\n    RETURN = 2\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Token$Type extends MessageType<Token> {\n    constructor() {\n        super(\"gooseai.Token\", [\n            { no: 1, name: \"text\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"id\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ }\n        ]);\n    }\n    create(value?: PartialMessage<Token>): Token {\n        const message = { id: 0 };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Token>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Token): Token {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional string text */ 1:\n                    message.text = reader.string();\n                    break;\n                case /* uint32 id */ 2:\n                    message.id = reader.uint32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Token, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional string text = 1; */\n        if (message.text !== undefined)\n            writer.tag(1, WireType.LengthDelimited).string(message.text);\n        /* uint32 id = 2; */\n        if (message.id !== 0)\n            writer.tag(2, WireType.Varint).uint32(message.id);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Token\n */\nexport const Token = new Token$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Tokens$Type extends MessageType<Tokens> {\n    constructor() {\n        super(\"gooseai.Tokens\", [\n            { no: 1, name: \"tokens\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Token },\n            { no: 2, name: \"tokenizer_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<Tokens>): Tokens {\n        const message = { tokens: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Tokens>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Tokens): Tokens {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated gooseai.Token tokens */ 1:\n                    message.tokens.push(Token.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* optional string tokenizer_id */ 2:\n                    message.tokenizerId = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Tokens, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated gooseai.Token tokens = 1; */\n        for (let i = 0; i < message.tokens.length; i++)\n            Token.internalBinaryWrite(message.tokens[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* optional string tokenizer_id = 2; */\n        if (message.tokenizerId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.tokenizerId);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Tokens\n */\nexport const Tokens = new Tokens$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Artifact$Type extends MessageType<Artifact> {\n    constructor() {\n        super(\"gooseai.Artifact\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 2, name: \"type\", kind: \"enum\", T: () => [\"gooseai.ArtifactType\", ArtifactType] },\n            { no: 3, name: \"mime\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"magic\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 5, name: \"binary\", kind: \"scalar\", oneof: \"data\", T: 12 /*ScalarType.BYTES*/ },\n            { no: 6, name: \"text\", kind: \"scalar\", oneof: \"data\", T: 9 /*ScalarType.STRING*/ },\n            { no: 7, name: \"tokens\", kind: \"message\", oneof: \"data\", T: () => Tokens },\n            { no: 11, name: \"classifier\", kind: \"message\", oneof: \"data\", T: () => ClassifierParameters },\n            { no: 14, name: \"tensor\", kind: \"message\", oneof: \"data\", T: () => Tensor },\n            { no: 8, name: \"index\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n            { no: 9, name: \"finish_reason\", kind: \"enum\", T: () => [\"gooseai.FinishReason\", FinishReason] },\n            { no: 10, name: \"seed\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n            { no: 12, name: \"uuid\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 13, name: \"size\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<Artifact>): Artifact {\n        const message = { id: 0n, type: 0, mime: \"\", data: { oneofKind: undefined }, index: 0, finishReason: 0, seed: 0, uuid: \"\", size: 0n };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Artifact>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Artifact): Artifact {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* uint64 id */ 1:\n                    message.id = reader.uint64().toBigInt();\n                    break;\n                case /* gooseai.ArtifactType type */ 2:\n                    message.type = reader.int32();\n                    break;\n                case /* string mime */ 3:\n                    message.mime = reader.string();\n                    break;\n                case /* optional string magic */ 4:\n                    message.magic = reader.string();\n                    break;\n                case /* bytes binary */ 5:\n                    message.data = {\n                        oneofKind: \"binary\",\n                        binary: reader.bytes()\n                    };\n                    break;\n                case /* string text */ 6:\n                    message.data = {\n                        oneofKind: \"text\",\n                        text: reader.string()\n                    };\n                    break;\n                case /* gooseai.Tokens tokens */ 7:\n                    message.data = {\n                        oneofKind: \"tokens\",\n                        tokens: Tokens.internalBinaryRead(reader, reader.uint32(), options, (message.data as any).tokens)\n                    };\n                    break;\n                case /* gooseai.ClassifierParameters classifier */ 11:\n                    message.data = {\n                        oneofKind: \"classifier\",\n                        classifier: ClassifierParameters.internalBinaryRead(reader, reader.uint32(), options, (message.data as any).classifier)\n                    };\n                    break;\n                case /* tensors.Tensor tensor */ 14:\n                    message.data = {\n                        oneofKind: \"tensor\",\n                        tensor: Tensor.internalBinaryRead(reader, reader.uint32(), options, (message.data as any).tensor)\n                    };\n                    break;\n                case /* uint32 index */ 8:\n                    message.index = reader.uint32();\n                    break;\n                case /* gooseai.FinishReason finish_reason */ 9:\n                    message.finishReason = reader.int32();\n                    break;\n                case /* uint32 seed */ 10:\n                    message.seed = reader.uint32();\n                    break;\n                case /* string uuid */ 12:\n                    message.uuid = reader.string();\n                    break;\n                case /* uint64 size */ 13:\n                    message.size = reader.uint64().toBigInt();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Artifact, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* uint64 id = 1; */\n        if (message.id !== 0n)\n            writer.tag(1, WireType.Varint).uint64(message.id);\n        /* gooseai.ArtifactType type = 2; */\n        if (message.type !== 0)\n            writer.tag(2, WireType.Varint).int32(message.type);\n        /* string mime = 3; */\n        if (message.mime !== \"\")\n            writer.tag(3, WireType.LengthDelimited).string(message.mime);\n        /* optional string magic = 4; */\n        if (message.magic !== undefined)\n            writer.tag(4, WireType.LengthDelimited).string(message.magic);\n        /* bytes binary = 5; */\n        if (message.data.oneofKind === \"binary\")\n            writer.tag(5, WireType.LengthDelimited).bytes(message.data.binary);\n        /* string text = 6; */\n        if (message.data.oneofKind === \"text\")\n            writer.tag(6, WireType.LengthDelimited).string(message.data.text);\n        /* gooseai.Tokens tokens = 7; */\n        if (message.data.oneofKind === \"tokens\")\n            Tokens.internalBinaryWrite(message.data.tokens, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.ClassifierParameters classifier = 11; */\n        if (message.data.oneofKind === \"classifier\")\n            ClassifierParameters.internalBinaryWrite(message.data.classifier, writer.tag(11, WireType.LengthDelimited).fork(), options).join();\n        /* tensors.Tensor tensor = 14; */\n        if (message.data.oneofKind === \"tensor\")\n            Tensor.internalBinaryWrite(message.data.tensor, writer.tag(14, WireType.LengthDelimited).fork(), options).join();\n        /* uint32 index = 8; */\n        if (message.index !== 0)\n            writer.tag(8, WireType.Varint).uint32(message.index);\n        /* gooseai.FinishReason finish_reason = 9; */\n        if (message.finishReason !== 0)\n            writer.tag(9, WireType.Varint).int32(message.finishReason);\n        /* uint32 seed = 10; */\n        if (message.seed !== 0)\n            writer.tag(10, WireType.Varint).uint32(message.seed);\n        /* string uuid = 12; */\n        if (message.uuid !== \"\")\n            writer.tag(12, WireType.LengthDelimited).string(message.uuid);\n        /* uint64 size = 13; */\n        if (message.size !== 0n)\n            writer.tag(13, WireType.Varint).uint64(message.size);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Artifact\n */\nexport const Artifact = new Artifact$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PromptParameters$Type extends MessageType<PromptParameters> {\n    constructor() {\n        super(\"gooseai.PromptParameters\", [\n            { no: 1, name: \"init\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n            { no: 2, name: \"weight\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<PromptParameters>): PromptParameters {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<PromptParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PromptParameters): PromptParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional bool init */ 1:\n                    message.init = reader.bool();\n                    break;\n                case /* optional float weight */ 2:\n                    message.weight = reader.float();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: PromptParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional bool init = 1; */\n        if (message.init !== undefined)\n            writer.tag(1, WireType.Varint).bool(message.init);\n        /* optional float weight = 2; */\n        if (message.weight !== undefined)\n            writer.tag(2, WireType.Bit32).float(message.weight);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.PromptParameters\n */\nexport const PromptParameters = new PromptParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Prompt$Type extends MessageType<Prompt> {\n    constructor() {\n        super(\"gooseai.Prompt\", [\n            { no: 1, name: \"parameters\", kind: \"message\", T: () => PromptParameters },\n            { no: 2, name: \"text\", kind: \"scalar\", oneof: \"prompt\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"tokens\", kind: \"message\", oneof: \"prompt\", T: () => Tokens },\n            { no: 4, name: \"artifact\", kind: \"message\", oneof: \"prompt\", T: () => Artifact }\n        ]);\n    }\n    create(value?: PartialMessage<Prompt>): Prompt {\n        const message = { prompt: { oneofKind: undefined } };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Prompt>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Prompt): Prompt {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional gooseai.PromptParameters parameters */ 1:\n                    message.parameters = PromptParameters.internalBinaryRead(reader, reader.uint32(), options, message.parameters);\n                    break;\n                case /* string text */ 2:\n                    message.prompt = {\n                        oneofKind: \"text\",\n                        text: reader.string()\n                    };\n                    break;\n                case /* gooseai.Tokens tokens */ 3:\n                    message.prompt = {\n                        oneofKind: \"tokens\",\n                        tokens: Tokens.internalBinaryRead(reader, reader.uint32(), options, (message.prompt as any).tokens)\n                    };\n                    break;\n                case /* gooseai.Artifact artifact */ 4:\n                    message.prompt = {\n                        oneofKind: \"artifact\",\n                        artifact: Artifact.internalBinaryRead(reader, reader.uint32(), options, (message.prompt as any).artifact)\n                    };\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Prompt, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional gooseai.PromptParameters parameters = 1; */\n        if (message.parameters)\n            PromptParameters.internalBinaryWrite(message.parameters, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* string text = 2; */\n        if (message.prompt.oneofKind === \"text\")\n            writer.tag(2, WireType.LengthDelimited).string(message.prompt.text);\n        /* gooseai.Tokens tokens = 3; */\n        if (message.prompt.oneofKind === \"tokens\")\n            Tokens.internalBinaryWrite(message.prompt.tokens, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.Artifact artifact = 4; */\n        if (message.prompt.oneofKind === \"artifact\")\n            Artifact.internalBinaryWrite(message.prompt.artifact, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Prompt\n */\nexport const Prompt = new Prompt$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SamplerParameters$Type extends MessageType<SamplerParameters> {\n    constructor() {\n        super(\"gooseai.SamplerParameters\", [\n            { no: 1, name: \"eta\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 2, name: \"sampling_steps\", kind: \"scalar\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 3, name: \"latent_channels\", kind: \"scalar\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 4, name: \"downsampling_factor\", kind: \"scalar\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 5, name: \"cfg_scale\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 6, name: \"init_noise_scale\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 7, name: \"step_noise_scale\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<SamplerParameters>): SamplerParameters {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<SamplerParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SamplerParameters): SamplerParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional float eta */ 1:\n                    message.eta = reader.float();\n                    break;\n                case /* optional uint64 sampling_steps */ 2:\n                    message.samplingSteps = reader.uint64().toBigInt();\n                    break;\n                case /* optional uint64 latent_channels */ 3:\n                    message.latentChannels = reader.uint64().toBigInt();\n                    break;\n                case /* optional uint64 downsampling_factor */ 4:\n                    message.downsamplingFactor = reader.uint64().toBigInt();\n                    break;\n                case /* optional float cfg_scale */ 5:\n                    message.cfgScale = reader.float();\n                    break;\n                case /* optional float init_noise_scale */ 6:\n                    message.initNoiseScale = reader.float();\n                    break;\n                case /* optional float step_noise_scale */ 7:\n                    message.stepNoiseScale = reader.float();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: SamplerParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional float eta = 1; */\n        if (message.eta !== undefined)\n            writer.tag(1, WireType.Bit32).float(message.eta);\n        /* optional uint64 sampling_steps = 2; */\n        if (message.samplingSteps !== undefined)\n            writer.tag(2, WireType.Varint).uint64(message.samplingSteps);\n        /* optional uint64 latent_channels = 3; */\n        if (message.latentChannels !== undefined)\n            writer.tag(3, WireType.Varint).uint64(message.latentChannels);\n        /* optional uint64 downsampling_factor = 4; */\n        if (message.downsamplingFactor !== undefined)\n            writer.tag(4, WireType.Varint).uint64(message.downsamplingFactor);\n        /* optional float cfg_scale = 5; */\n        if (message.cfgScale !== undefined)\n            writer.tag(5, WireType.Bit32).float(message.cfgScale);\n        /* optional float init_noise_scale = 6; */\n        if (message.initNoiseScale !== undefined)\n            writer.tag(6, WireType.Bit32).float(message.initNoiseScale);\n        /* optional float step_noise_scale = 7; */\n        if (message.stepNoiseScale !== undefined)\n            writer.tag(7, WireType.Bit32).float(message.stepNoiseScale);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.SamplerParameters\n */\nexport const SamplerParameters = new SamplerParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ConditionerParameters$Type extends MessageType<ConditionerParameters> {\n    constructor() {\n        super(\"gooseai.ConditionerParameters\", [\n            { no: 1, name: \"vector_adjust_prior\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"conditioner\", kind: \"message\", T: () => Model }\n        ]);\n    }\n    create(value?: PartialMessage<ConditionerParameters>): ConditionerParameters {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ConditionerParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ConditionerParameters): ConditionerParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional string vector_adjust_prior */ 1:\n                    message.vectorAdjustPrior = reader.string();\n                    break;\n                case /* optional gooseai.Model conditioner */ 2:\n                    message.conditioner = Model.internalBinaryRead(reader, reader.uint32(), options, message.conditioner);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: ConditionerParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional string vector_adjust_prior = 1; */\n        if (message.vectorAdjustPrior !== undefined)\n            writer.tag(1, WireType.LengthDelimited).string(message.vectorAdjustPrior);\n        /* optional gooseai.Model conditioner = 2; */\n        if (message.conditioner)\n            Model.internalBinaryWrite(message.conditioner, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.ConditionerParameters\n */\nexport const ConditionerParameters = new ConditionerParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ScheduleParameters$Type extends MessageType<ScheduleParameters> {\n    constructor() {\n        super(\"gooseai.ScheduleParameters\", [\n            { no: 1, name: \"start\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 2, name: \"end\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 3, name: \"value\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<ScheduleParameters>): ScheduleParameters {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ScheduleParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ScheduleParameters): ScheduleParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional float start */ 1:\n                    message.start = reader.float();\n                    break;\n                case /* optional float end */ 2:\n                    message.end = reader.float();\n                    break;\n                case /* optional float value */ 3:\n                    message.value = reader.float();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: ScheduleParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional float start = 1; */\n        if (message.start !== undefined)\n            writer.tag(1, WireType.Bit32).float(message.start);\n        /* optional float end = 2; */\n        if (message.end !== undefined)\n            writer.tag(2, WireType.Bit32).float(message.end);\n        /* optional float value = 3; */\n        if (message.value !== undefined)\n            writer.tag(3, WireType.Bit32).float(message.value);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.ScheduleParameters\n */\nexport const ScheduleParameters = new ScheduleParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass StepParameter$Type extends MessageType<StepParameter> {\n    constructor() {\n        super(\"gooseai.StepParameter\", [\n            { no: 1, name: \"scaled_step\", kind: \"scalar\", T: 2 /*ScalarType.FLOAT*/ },\n            { no: 2, name: \"sampler\", kind: \"message\", T: () => SamplerParameters },\n            { no: 3, name: \"schedule\", kind: \"message\", T: () => ScheduleParameters },\n            { no: 4, name: \"guidance\", kind: \"message\", T: () => GuidanceParameters }\n        ]);\n    }\n    create(value?: PartialMessage<StepParameter>): StepParameter {\n        const message = { scaledStep: 0 };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<StepParameter>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StepParameter): StepParameter {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* float scaled_step */ 1:\n                    message.scaledStep = reader.float();\n                    break;\n                case /* optional gooseai.SamplerParameters sampler */ 2:\n                    message.sampler = SamplerParameters.internalBinaryRead(reader, reader.uint32(), options, message.sampler);\n                    break;\n                case /* optional gooseai.ScheduleParameters schedule */ 3:\n                    message.schedule = ScheduleParameters.internalBinaryRead(reader, reader.uint32(), options, message.schedule);\n                    break;\n                case /* optional gooseai.GuidanceParameters guidance */ 4:\n                    message.guidance = GuidanceParameters.internalBinaryRead(reader, reader.uint32(), options, message.guidance);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: StepParameter, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* float scaled_step = 1; */\n        if (message.scaledStep !== 0)\n            writer.tag(1, WireType.Bit32).float(message.scaledStep);\n        /* optional gooseai.SamplerParameters sampler = 2; */\n        if (message.sampler)\n            SamplerParameters.internalBinaryWrite(message.sampler, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* optional gooseai.ScheduleParameters schedule = 3; */\n        if (message.schedule)\n            ScheduleParameters.internalBinaryWrite(message.schedule, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        /* optional gooseai.GuidanceParameters guidance = 4; */\n        if (message.guidance)\n            GuidanceParameters.internalBinaryWrite(message.guidance, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.StepParameter\n */\nexport const StepParameter = new StepParameter$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Model$Type extends MessageType<Model> {\n    constructor() {\n        super(\"gooseai.Model\", [\n            { no: 1, name: \"architecture\", kind: \"enum\", T: () => [\"gooseai.ModelArchitecture\", ModelArchitecture, \"MODEL_ARCHITECTURE_\"] },\n            { no: 2, name: \"publisher\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"dataset\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"version\", kind: \"scalar\", T: 2 /*ScalarType.FLOAT*/ },\n            { no: 5, name: \"semantic_version\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 6, name: \"alias\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<Model>): Model {\n        const message = { architecture: 0, publisher: \"\", dataset: \"\", version: 0, semanticVersion: \"\", alias: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Model>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Model): Model {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* gooseai.ModelArchitecture architecture */ 1:\n                    message.architecture = reader.int32();\n                    break;\n                case /* string publisher */ 2:\n                    message.publisher = reader.string();\n                    break;\n                case /* string dataset */ 3:\n                    message.dataset = reader.string();\n                    break;\n                case /* float version */ 4:\n                    message.version = reader.float();\n                    break;\n                case /* string semantic_version */ 5:\n                    message.semanticVersion = reader.string();\n                    break;\n                case /* string alias */ 6:\n                    message.alias = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Model, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* gooseai.ModelArchitecture architecture = 1; */\n        if (message.architecture !== 0)\n            writer.tag(1, WireType.Varint).int32(message.architecture);\n        /* string publisher = 2; */\n        if (message.publisher !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.publisher);\n        /* string dataset = 3; */\n        if (message.dataset !== \"\")\n            writer.tag(3, WireType.LengthDelimited).string(message.dataset);\n        /* float version = 4; */\n        if (message.version !== 0)\n            writer.tag(4, WireType.Bit32).float(message.version);\n        /* string semantic_version = 5; */\n        if (message.semanticVersion !== \"\")\n            writer.tag(5, WireType.LengthDelimited).string(message.semanticVersion);\n        /* string alias = 6; */\n        if (message.alias !== \"\")\n            writer.tag(6, WireType.LengthDelimited).string(message.alias);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Model\n */\nexport const Model = new Model$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CutoutParameters$Type extends MessageType<CutoutParameters> {\n    constructor() {\n        super(\"gooseai.CutoutParameters\", [\n            { no: 1, name: \"cutouts\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => CutoutParameters },\n            { no: 2, name: \"count\", kind: \"scalar\", opt: true, T: 13 /*ScalarType.UINT32*/ },\n            { no: 3, name: \"gray\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 4, name: \"blur\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 5, name: \"size_power\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<CutoutParameters>): CutoutParameters {\n        const message = { cutouts: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<CutoutParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CutoutParameters): CutoutParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated gooseai.CutoutParameters cutouts */ 1:\n                    message.cutouts.push(CutoutParameters.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* optional uint32 count */ 2:\n                    message.count = reader.uint32();\n                    break;\n                case /* optional float gray */ 3:\n                    message.gray = reader.float();\n                    break;\n                case /* optional float blur */ 4:\n                    message.blur = reader.float();\n                    break;\n                case /* optional float size_power */ 5:\n                    message.sizePower = reader.float();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: CutoutParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated gooseai.CutoutParameters cutouts = 1; */\n        for (let i = 0; i < message.cutouts.length; i++)\n            CutoutParameters.internalBinaryWrite(message.cutouts[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* optional uint32 count = 2; */\n        if (message.count !== undefined)\n            writer.tag(2, WireType.Varint).uint32(message.count);\n        /* optional float gray = 3; */\n        if (message.gray !== undefined)\n            writer.tag(3, WireType.Bit32).float(message.gray);\n        /* optional float blur = 4; */\n        if (message.blur !== undefined)\n            writer.tag(4, WireType.Bit32).float(message.blur);\n        /* optional float size_power = 5; */\n        if (message.sizePower !== undefined)\n            writer.tag(5, WireType.Bit32).float(message.sizePower);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.CutoutParameters\n */\nexport const CutoutParameters = new CutoutParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GuidanceScheduleParameters$Type extends MessageType<GuidanceScheduleParameters> {\n    constructor() {\n        super(\"gooseai.GuidanceScheduleParameters\", [\n            { no: 1, name: \"duration\", kind: \"scalar\", T: 2 /*ScalarType.FLOAT*/ },\n            { no: 2, name: \"value\", kind: \"scalar\", T: 2 /*ScalarType.FLOAT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<GuidanceScheduleParameters>): GuidanceScheduleParameters {\n        const message = { duration: 0, value: 0 };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<GuidanceScheduleParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GuidanceScheduleParameters): GuidanceScheduleParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* float duration */ 1:\n                    message.duration = reader.float();\n                    break;\n                case /* float value */ 2:\n                    message.value = reader.float();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: GuidanceScheduleParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* float duration = 1; */\n        if (message.duration !== 0)\n            writer.tag(1, WireType.Bit32).float(message.duration);\n        /* float value = 2; */\n        if (message.value !== 0)\n            writer.tag(2, WireType.Bit32).float(message.value);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.GuidanceScheduleParameters\n */\nexport const GuidanceScheduleParameters = new GuidanceScheduleParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GuidanceInstanceParameters$Type extends MessageType<GuidanceInstanceParameters> {\n    constructor() {\n        super(\"gooseai.GuidanceInstanceParameters\", [\n            { no: 2, name: \"models\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Model },\n            { no: 3, name: \"guidance_strength\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 4, name: \"schedule\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => GuidanceScheduleParameters },\n            { no: 5, name: \"cutouts\", kind: \"message\", T: () => CutoutParameters },\n            { no: 6, name: \"prompt\", kind: \"message\", T: () => Prompt }\n        ]);\n    }\n    create(value?: PartialMessage<GuidanceInstanceParameters>): GuidanceInstanceParameters {\n        const message = { models: [], schedule: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<GuidanceInstanceParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GuidanceInstanceParameters): GuidanceInstanceParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated gooseai.Model models */ 2:\n                    message.models.push(Model.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* optional float guidance_strength */ 3:\n                    message.guidanceStrength = reader.float();\n                    break;\n                case /* repeated gooseai.GuidanceScheduleParameters schedule */ 4:\n                    message.schedule.push(GuidanceScheduleParameters.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* optional gooseai.CutoutParameters cutouts */ 5:\n                    message.cutouts = CutoutParameters.internalBinaryRead(reader, reader.uint32(), options, message.cutouts);\n                    break;\n                case /* optional gooseai.Prompt prompt */ 6:\n                    message.prompt = Prompt.internalBinaryRead(reader, reader.uint32(), options, message.prompt);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: GuidanceInstanceParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated gooseai.Model models = 2; */\n        for (let i = 0; i < message.models.length; i++)\n            Model.internalBinaryWrite(message.models[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* optional float guidance_strength = 3; */\n        if (message.guidanceStrength !== undefined)\n            writer.tag(3, WireType.Bit32).float(message.guidanceStrength);\n        /* repeated gooseai.GuidanceScheduleParameters schedule = 4; */\n        for (let i = 0; i < message.schedule.length; i++)\n            GuidanceScheduleParameters.internalBinaryWrite(message.schedule[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        /* optional gooseai.CutoutParameters cutouts = 5; */\n        if (message.cutouts)\n            CutoutParameters.internalBinaryWrite(message.cutouts, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n        /* optional gooseai.Prompt prompt = 6; */\n        if (message.prompt)\n            Prompt.internalBinaryWrite(message.prompt, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.GuidanceInstanceParameters\n */\nexport const GuidanceInstanceParameters = new GuidanceInstanceParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GuidanceParameters$Type extends MessageType<GuidanceParameters> {\n    constructor() {\n        super(\"gooseai.GuidanceParameters\", [\n            { no: 1, name: \"guidance_preset\", kind: \"enum\", T: () => [\"gooseai.GuidancePreset\", GuidancePreset, \"GUIDANCE_PRESET_\"] },\n            { no: 2, name: \"instances\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => GuidanceInstanceParameters }\n        ]);\n    }\n    create(value?: PartialMessage<GuidanceParameters>): GuidanceParameters {\n        const message = { guidancePreset: 0, instances: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<GuidanceParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GuidanceParameters): GuidanceParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* gooseai.GuidancePreset guidance_preset */ 1:\n                    message.guidancePreset = reader.int32();\n                    break;\n                case /* repeated gooseai.GuidanceInstanceParameters instances */ 2:\n                    message.instances.push(GuidanceInstanceParameters.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: GuidanceParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* gooseai.GuidancePreset guidance_preset = 1; */\n        if (message.guidancePreset !== 0)\n            writer.tag(1, WireType.Varint).int32(message.guidancePreset);\n        /* repeated gooseai.GuidanceInstanceParameters instances = 2; */\n        for (let i = 0; i < message.instances.length; i++)\n            GuidanceInstanceParameters.internalBinaryWrite(message.instances[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.GuidanceParameters\n */\nexport const GuidanceParameters = new GuidanceParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransformType$Type extends MessageType<TransformType> {\n    constructor() {\n        super(\"gooseai.TransformType\", [\n            { no: 1, name: \"diffusion\", kind: \"enum\", oneof: \"type\", T: () => [\"gooseai.DiffusionSampler\", DiffusionSampler] },\n            { no: 2, name: \"upscaler\", kind: \"enum\", oneof: \"type\", T: () => [\"gooseai.Upscaler\", Upscaler, \"UPSCALER_\"] }\n        ]);\n    }\n    create(value?: PartialMessage<TransformType>): TransformType {\n        const message = { type: { oneofKind: undefined } };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<TransformType>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TransformType): TransformType {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* gooseai.DiffusionSampler diffusion */ 1:\n                    message.type = {\n                        oneofKind: \"diffusion\",\n                        diffusion: reader.int32()\n                    };\n                    break;\n                case /* gooseai.Upscaler upscaler */ 2:\n                    message.type = {\n                        oneofKind: \"upscaler\",\n                        upscaler: reader.int32()\n                    };\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: TransformType, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* gooseai.DiffusionSampler diffusion = 1; */\n        if (message.type.oneofKind === \"diffusion\")\n            writer.tag(1, WireType.Varint).int32(message.type.diffusion);\n        /* gooseai.Upscaler upscaler = 2; */\n        if (message.type.oneofKind === \"upscaler\")\n            writer.tag(2, WireType.Varint).int32(message.type.upscaler);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.TransformType\n */\nexport const TransformType = new TransformType$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ImageParameters$Type extends MessageType<ImageParameters> {\n    constructor() {\n        super(\"gooseai.ImageParameters\", [\n            { no: 1, name: \"height\", kind: \"scalar\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 2, name: \"width\", kind: \"scalar\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 3, name: \"seed\", kind: \"scalar\", repeat: 1 /*RepeatType.PACKED*/, T: 13 /*ScalarType.UINT32*/ },\n            { no: 4, name: \"samples\", kind: \"scalar\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 5, name: \"steps\", kind: \"scalar\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 6, name: \"transform\", kind: \"message\", T: () => TransformType },\n            { no: 7, name: \"parameters\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => StepParameter },\n            { no: 8, name: \"masked_area_init\", kind: \"enum\", opt: true, T: () => [\"gooseai.MaskedAreaInit\", MaskedAreaInit, \"MASKED_AREA_INIT_\"] },\n            { no: 9, name: \"weight_method\", kind: \"enum\", opt: true, T: () => [\"gooseai.WeightMethod\", WeightMethod] },\n            { no: 10, name: \"quantize\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ }\n        ]);\n    }\n    create(value?: PartialMessage<ImageParameters>): ImageParameters {\n        const message = { seed: [], parameters: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ImageParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ImageParameters): ImageParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional uint64 height */ 1:\n                    message.height = reader.uint64().toBigInt();\n                    break;\n                case /* optional uint64 width */ 2:\n                    message.width = reader.uint64().toBigInt();\n                    break;\n                case /* repeated uint32 seed */ 3:\n                    if (wireType === WireType.LengthDelimited)\n                        for (let e = reader.int32() + reader.pos; reader.pos < e;)\n                            message.seed.push(reader.uint32());\n                    else\n                        message.seed.push(reader.uint32());\n                    break;\n                case /* optional uint64 samples */ 4:\n                    message.samples = reader.uint64().toBigInt();\n                    break;\n                case /* optional uint64 steps */ 5:\n                    message.steps = reader.uint64().toBigInt();\n                    break;\n                case /* optional gooseai.TransformType transform */ 6:\n                    message.transform = TransformType.internalBinaryRead(reader, reader.uint32(), options, message.transform);\n                    break;\n                case /* repeated gooseai.StepParameter parameters */ 7:\n                    message.parameters.push(StepParameter.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* optional gooseai.MaskedAreaInit masked_area_init */ 8:\n                    message.maskedAreaInit = reader.int32();\n                    break;\n                case /* optional gooseai.WeightMethod weight_method */ 9:\n                    message.weightMethod = reader.int32();\n                    break;\n                case /* optional bool quantize */ 10:\n                    message.quantize = reader.bool();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: ImageParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional uint64 height = 1; */\n        if (message.height !== undefined)\n            writer.tag(1, WireType.Varint).uint64(message.height);\n        /* optional uint64 width = 2; */\n        if (message.width !== undefined)\n            writer.tag(2, WireType.Varint).uint64(message.width);\n        /* repeated uint32 seed = 3; */\n        if (message.seed.length) {\n            writer.tag(3, WireType.LengthDelimited).fork();\n            for (let i = 0; i < message.seed.length; i++)\n                writer.uint32(message.seed[i]);\n            writer.join();\n        }\n        /* optional uint64 samples = 4; */\n        if (message.samples !== undefined)\n            writer.tag(4, WireType.Varint).uint64(message.samples);\n        /* optional uint64 steps = 5; */\n        if (message.steps !== undefined)\n            writer.tag(5, WireType.Varint).uint64(message.steps);\n        /* optional gooseai.TransformType transform = 6; */\n        if (message.transform)\n            TransformType.internalBinaryWrite(message.transform, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n        /* repeated gooseai.StepParameter parameters = 7; */\n        for (let i = 0; i < message.parameters.length; i++)\n            StepParameter.internalBinaryWrite(message.parameters[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n        /* optional gooseai.MaskedAreaInit masked_area_init = 8; */\n        if (message.maskedAreaInit !== undefined)\n            writer.tag(8, WireType.Varint).int32(message.maskedAreaInit);\n        /* optional gooseai.WeightMethod weight_method = 9; */\n        if (message.weightMethod !== undefined)\n            writer.tag(9, WireType.Varint).int32(message.weightMethod);\n        /* optional bool quantize = 10; */\n        if (message.quantize !== undefined)\n            writer.tag(10, WireType.Varint).bool(message.quantize);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.ImageParameters\n */\nexport const ImageParameters = new ImageParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ClassifierConcept$Type extends MessageType<ClassifierConcept> {\n    constructor() {\n        super(\"gooseai.ClassifierConcept\", [\n            { no: 1, name: \"concept\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"threshold\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<ClassifierConcept>): ClassifierConcept {\n        const message = { concept: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ClassifierConcept>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClassifierConcept): ClassifierConcept {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string concept */ 1:\n                    message.concept = reader.string();\n                    break;\n                case /* optional float threshold */ 2:\n                    message.threshold = reader.float();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: ClassifierConcept, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string concept = 1; */\n        if (message.concept !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.concept);\n        /* optional float threshold = 2; */\n        if (message.threshold !== undefined)\n            writer.tag(2, WireType.Bit32).float(message.threshold);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.ClassifierConcept\n */\nexport const ClassifierConcept = new ClassifierConcept$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ClassifierCategory$Type extends MessageType<ClassifierCategory> {\n    constructor() {\n        super(\"gooseai.ClassifierCategory\", [\n            { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"concepts\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => ClassifierConcept },\n            { no: 3, name: \"adjustment\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 4, name: \"action\", kind: \"enum\", opt: true, T: () => [\"gooseai.Action\", Action, \"ACTION_\"] },\n            { no: 5, name: \"classifier_mode\", kind: \"enum\", opt: true, T: () => [\"gooseai.ClassifierMode\", ClassifierMode] }\n        ]);\n    }\n    create(value?: PartialMessage<ClassifierCategory>): ClassifierCategory {\n        const message = { name: \"\", concepts: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ClassifierCategory>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClassifierCategory): ClassifierCategory {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string name */ 1:\n                    message.name = reader.string();\n                    break;\n                case /* repeated gooseai.ClassifierConcept concepts */ 2:\n                    message.concepts.push(ClassifierConcept.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* optional float adjustment */ 3:\n                    message.adjustment = reader.float();\n                    break;\n                case /* optional gooseai.Action action */ 4:\n                    message.action = reader.int32();\n                    break;\n                case /* optional gooseai.ClassifierMode classifier_mode */ 5:\n                    message.classifierMode = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: ClassifierCategory, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string name = 1; */\n        if (message.name !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.name);\n        /* repeated gooseai.ClassifierConcept concepts = 2; */\n        for (let i = 0; i < message.concepts.length; i++)\n            ClassifierConcept.internalBinaryWrite(message.concepts[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* optional float adjustment = 3; */\n        if (message.adjustment !== undefined)\n            writer.tag(3, WireType.Bit32).float(message.adjustment);\n        /* optional gooseai.Action action = 4; */\n        if (message.action !== undefined)\n            writer.tag(4, WireType.Varint).int32(message.action);\n        /* optional gooseai.ClassifierMode classifier_mode = 5; */\n        if (message.classifierMode !== undefined)\n            writer.tag(5, WireType.Varint).int32(message.classifierMode);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.ClassifierCategory\n */\nexport const ClassifierCategory = new ClassifierCategory$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ClassifierParameters$Type extends MessageType<ClassifierParameters> {\n    constructor() {\n        super(\"gooseai.ClassifierParameters\", [\n            { no: 1, name: \"categories\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => ClassifierCategory },\n            { no: 2, name: \"exceeds\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => ClassifierCategory },\n            { no: 3, name: \"realized_action\", kind: \"enum\", opt: true, T: () => [\"gooseai.Action\", Action, \"ACTION_\"] }\n        ]);\n    }\n    create(value?: PartialMessage<ClassifierParameters>): ClassifierParameters {\n        const message = { categories: [], exceeds: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ClassifierParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClassifierParameters): ClassifierParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated gooseai.ClassifierCategory categories */ 1:\n                    message.categories.push(ClassifierCategory.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* repeated gooseai.ClassifierCategory exceeds */ 2:\n                    message.exceeds.push(ClassifierCategory.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* optional gooseai.Action realized_action */ 3:\n                    message.realizedAction = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: ClassifierParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated gooseai.ClassifierCategory categories = 1; */\n        for (let i = 0; i < message.categories.length; i++)\n            ClassifierCategory.internalBinaryWrite(message.categories[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* repeated gooseai.ClassifierCategory exceeds = 2; */\n        for (let i = 0; i < message.exceeds.length; i++)\n            ClassifierCategory.internalBinaryWrite(message.exceeds[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* optional gooseai.Action realized_action = 3; */\n        if (message.realizedAction !== undefined)\n            writer.tag(3, WireType.Varint).int32(message.realizedAction);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.ClassifierParameters\n */\nexport const ClassifierParameters = new ClassifierParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass InterpolateParameters$Type extends MessageType<InterpolateParameters> {\n    constructor() {\n        super(\"gooseai.InterpolateParameters\", [\n            { no: 1, name: \"ratios\", kind: \"scalar\", repeat: 1 /*RepeatType.PACKED*/, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 2, name: \"mode\", kind: \"enum\", opt: true, T: () => [\"gooseai.InterpolateMode\", InterpolateMode] }\n        ]);\n    }\n    create(value?: PartialMessage<InterpolateParameters>): InterpolateParameters {\n        const message = { ratios: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<InterpolateParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InterpolateParameters): InterpolateParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated float ratios */ 1:\n                    if (wireType === WireType.LengthDelimited)\n                        for (let e = reader.int32() + reader.pos; reader.pos < e;)\n                            message.ratios.push(reader.float());\n                    else\n                        message.ratios.push(reader.float());\n                    break;\n                case /* optional gooseai.InterpolateMode mode */ 2:\n                    message.mode = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: InterpolateParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated float ratios = 1; */\n        if (message.ratios.length) {\n            writer.tag(1, WireType.LengthDelimited).fork();\n            for (let i = 0; i < message.ratios.length; i++)\n                writer.float(message.ratios[i]);\n            writer.join();\n        }\n        /* optional gooseai.InterpolateMode mode = 2; */\n        if (message.mode !== undefined)\n            writer.tag(2, WireType.Varint).int32(message.mode);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.InterpolateParameters\n */\nexport const InterpolateParameters = new InterpolateParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransformColorAdjust$Type extends MessageType<TransformColorAdjust> {\n    constructor() {\n        super(\"gooseai.TransformColorAdjust\", [\n            { no: 1, name: \"brightness\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 2, name: \"contrast\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 3, name: \"hue\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 4, name: \"saturation\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 5, name: \"lightness\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 6, name: \"match_image\", kind: \"message\", T: () => Artifact },\n            { no: 7, name: \"match_mode\", kind: \"enum\", opt: true, T: () => [\"gooseai.ColorMatchMode\", ColorMatchMode] },\n            { no: 8, name: \"noise_amount\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 9, name: \"noise_seed\", kind: \"scalar\", opt: true, T: 13 /*ScalarType.UINT32*/ }\n        ]);\n    }\n    create(value?: PartialMessage<TransformColorAdjust>): TransformColorAdjust {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<TransformColorAdjust>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TransformColorAdjust): TransformColorAdjust {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional float brightness */ 1:\n                    message.brightness = reader.float();\n                    break;\n                case /* optional float contrast */ 2:\n                    message.contrast = reader.float();\n                    break;\n                case /* optional float hue */ 3:\n                    message.hue = reader.float();\n                    break;\n                case /* optional float saturation */ 4:\n                    message.saturation = reader.float();\n                    break;\n                case /* optional float lightness */ 5:\n                    message.lightness = reader.float();\n                    break;\n                case /* optional gooseai.Artifact match_image */ 6:\n                    message.matchImage = Artifact.internalBinaryRead(reader, reader.uint32(), options, message.matchImage);\n                    break;\n                case /* optional gooseai.ColorMatchMode match_mode */ 7:\n                    message.matchMode = reader.int32();\n                    break;\n                case /* optional float noise_amount */ 8:\n                    message.noiseAmount = reader.float();\n                    break;\n                case /* optional uint32 noise_seed */ 9:\n                    message.noiseSeed = reader.uint32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: TransformColorAdjust, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional float brightness = 1; */\n        if (message.brightness !== undefined)\n            writer.tag(1, WireType.Bit32).float(message.brightness);\n        /* optional float contrast = 2; */\n        if (message.contrast !== undefined)\n            writer.tag(2, WireType.Bit32).float(message.contrast);\n        /* optional float hue = 3; */\n        if (message.hue !== undefined)\n            writer.tag(3, WireType.Bit32).float(message.hue);\n        /* optional float saturation = 4; */\n        if (message.saturation !== undefined)\n            writer.tag(4, WireType.Bit32).float(message.saturation);\n        /* optional float lightness = 5; */\n        if (message.lightness !== undefined)\n            writer.tag(5, WireType.Bit32).float(message.lightness);\n        /* optional gooseai.Artifact match_image = 6; */\n        if (message.matchImage)\n            Artifact.internalBinaryWrite(message.matchImage, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n        /* optional gooseai.ColorMatchMode match_mode = 7; */\n        if (message.matchMode !== undefined)\n            writer.tag(7, WireType.Varint).int32(message.matchMode);\n        /* optional float noise_amount = 8; */\n        if (message.noiseAmount !== undefined)\n            writer.tag(8, WireType.Bit32).float(message.noiseAmount);\n        /* optional uint32 noise_seed = 9; */\n        if (message.noiseSeed !== undefined)\n            writer.tag(9, WireType.Varint).uint32(message.noiseSeed);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.TransformColorAdjust\n */\nexport const TransformColorAdjust = new TransformColorAdjust$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransformDepthCalc$Type extends MessageType<TransformDepthCalc> {\n    constructor() {\n        super(\"gooseai.TransformDepthCalc\", [\n            { no: 1, name: \"blend_weight\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 2, name: \"blur_radius\", kind: \"scalar\", opt: true, T: 13 /*ScalarType.UINT32*/ },\n            { no: 3, name: \"reverse\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ }\n        ]);\n    }\n    create(value?: PartialMessage<TransformDepthCalc>): TransformDepthCalc {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<TransformDepthCalc>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TransformDepthCalc): TransformDepthCalc {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional float blend_weight */ 1:\n                    message.blendWeight = reader.float();\n                    break;\n                case /* optional uint32 blur_radius */ 2:\n                    message.blurRadius = reader.uint32();\n                    break;\n                case /* optional bool reverse */ 3:\n                    message.reverse = reader.bool();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: TransformDepthCalc, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional float blend_weight = 1; */\n        if (message.blendWeight !== undefined)\n            writer.tag(1, WireType.Bit32).float(message.blendWeight);\n        /* optional uint32 blur_radius = 2; */\n        if (message.blurRadius !== undefined)\n            writer.tag(2, WireType.Varint).uint32(message.blurRadius);\n        /* optional bool reverse = 3; */\n        if (message.reverse !== undefined)\n            writer.tag(3, WireType.Varint).bool(message.reverse);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.TransformDepthCalc\n */\nexport const TransformDepthCalc = new TransformDepthCalc$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransformMatrix$Type extends MessageType<TransformMatrix> {\n    constructor() {\n        super(\"gooseai.TransformMatrix\", [\n            { no: 1, name: \"data\", kind: \"scalar\", repeat: 1 /*RepeatType.PACKED*/, T: 2 /*ScalarType.FLOAT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<TransformMatrix>): TransformMatrix {\n        const message = { data: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<TransformMatrix>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TransformMatrix): TransformMatrix {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated float data = 1 [packed = true];*/ 1:\n                    if (wireType === WireType.LengthDelimited)\n                        for (let e = reader.int32() + reader.pos; reader.pos < e;)\n                            message.data.push(reader.float());\n                    else\n                        message.data.push(reader.float());\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: TransformMatrix, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated float data = 1 [packed = true]; */\n        if (message.data.length) {\n            writer.tag(1, WireType.LengthDelimited).fork();\n            for (let i = 0; i < message.data.length; i++)\n                writer.float(message.data[i]);\n            writer.join();\n        }\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.TransformMatrix\n */\nexport const TransformMatrix = new TransformMatrix$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransformResample$Type extends MessageType<TransformResample> {\n    constructor() {\n        super(\"gooseai.TransformResample\", [\n            { no: 1, name: \"border_mode\", kind: \"enum\", T: () => [\"gooseai.BorderMode\", BorderMode] },\n            { no: 2, name: \"transform\", kind: \"message\", T: () => TransformMatrix },\n            { no: 3, name: \"prev_transform\", kind: \"message\", T: () => TransformMatrix },\n            { no: 4, name: \"depth_warp\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 5, name: \"export_mask\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ }\n        ]);\n    }\n    create(value?: PartialMessage<TransformResample>): TransformResample {\n        const message = { borderMode: 0 };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<TransformResample>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TransformResample): TransformResample {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* gooseai.BorderMode border_mode */ 1:\n                    message.borderMode = reader.int32();\n                    break;\n                case /* gooseai.TransformMatrix transform */ 2:\n                    message.transform = TransformMatrix.internalBinaryRead(reader, reader.uint32(), options, message.transform);\n                    break;\n                case /* optional gooseai.TransformMatrix prev_transform */ 3:\n                    message.prevTransform = TransformMatrix.internalBinaryRead(reader, reader.uint32(), options, message.prevTransform);\n                    break;\n                case /* optional float depth_warp */ 4:\n                    message.depthWarp = reader.float();\n                    break;\n                case /* optional bool export_mask */ 5:\n                    message.exportMask = reader.bool();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: TransformResample, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* gooseai.BorderMode border_mode = 1; */\n        if (message.borderMode !== 0)\n            writer.tag(1, WireType.Varint).int32(message.borderMode);\n        /* gooseai.TransformMatrix transform = 2; */\n        if (message.transform)\n            TransformMatrix.internalBinaryWrite(message.transform, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* optional gooseai.TransformMatrix prev_transform = 3; */\n        if (message.prevTransform)\n            TransformMatrix.internalBinaryWrite(message.prevTransform, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        /* optional float depth_warp = 4; */\n        if (message.depthWarp !== undefined)\n            writer.tag(4, WireType.Bit32).float(message.depthWarp);\n        /* optional bool export_mask = 5; */\n        if (message.exportMask !== undefined)\n            writer.tag(5, WireType.Varint).bool(message.exportMask);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.TransformResample\n */\nexport const TransformResample = new TransformResample$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CameraParameters$Type extends MessageType<CameraParameters> {\n    constructor() {\n        super(\"gooseai.CameraParameters\", [\n            { no: 1, name: \"camera_type\", kind: \"enum\", T: () => [\"gooseai.CameraType\", CameraType] },\n            { no: 2, name: \"near_plane\", kind: \"scalar\", T: 2 /*ScalarType.FLOAT*/ },\n            { no: 3, name: \"far_plane\", kind: \"scalar\", T: 2 /*ScalarType.FLOAT*/ },\n            { no: 4, name: \"fov\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<CameraParameters>): CameraParameters {\n        const message = { cameraType: 0, nearPlane: 0, farPlane: 0 };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<CameraParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CameraParameters): CameraParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* gooseai.CameraType camera_type */ 1:\n                    message.cameraType = reader.int32();\n                    break;\n                case /* float near_plane */ 2:\n                    message.nearPlane = reader.float();\n                    break;\n                case /* float far_plane */ 3:\n                    message.farPlane = reader.float();\n                    break;\n                case /* optional float fov */ 4:\n                    message.fov = reader.float();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: CameraParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* gooseai.CameraType camera_type = 1; */\n        if (message.cameraType !== 0)\n            writer.tag(1, WireType.Varint).int32(message.cameraType);\n        /* float near_plane = 2; */\n        if (message.nearPlane !== 0)\n            writer.tag(2, WireType.Bit32).float(message.nearPlane);\n        /* float far_plane = 3; */\n        if (message.farPlane !== 0)\n            writer.tag(3, WireType.Bit32).float(message.farPlane);\n        /* optional float fov = 4; */\n        if (message.fov !== undefined)\n            writer.tag(4, WireType.Bit32).float(message.fov);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.CameraParameters\n */\nexport const CameraParameters = new CameraParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransformCameraPose$Type extends MessageType<TransformCameraPose> {\n    constructor() {\n        super(\"gooseai.TransformCameraPose\", [\n            { no: 1, name: \"world_to_view_matrix\", kind: \"message\", T: () => TransformMatrix },\n            { no: 2, name: \"camera_parameters\", kind: \"message\", T: () => CameraParameters },\n            { no: 5, name: \"do_prefill\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n            { no: 8, name: \"render_mode\", kind: \"enum\", T: () => [\"gooseai.RenderMode\", RenderMode] }\n        ]);\n    }\n    create(value?: PartialMessage<TransformCameraPose>): TransformCameraPose {\n        const message = { doPrefill: false, renderMode: 0 };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<TransformCameraPose>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TransformCameraPose): TransformCameraPose {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* gooseai.TransformMatrix world_to_view_matrix */ 1:\n                    message.worldToViewMatrix = TransformMatrix.internalBinaryRead(reader, reader.uint32(), options, message.worldToViewMatrix);\n                    break;\n                case /* gooseai.CameraParameters camera_parameters */ 2:\n                    message.cameraParameters = CameraParameters.internalBinaryRead(reader, reader.uint32(), options, message.cameraParameters);\n                    break;\n                case /* bool do_prefill */ 5:\n                    message.doPrefill = reader.bool();\n                    break;\n                case /* gooseai.RenderMode render_mode */ 8:\n                    message.renderMode = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: TransformCameraPose, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* gooseai.TransformMatrix world_to_view_matrix = 1; */\n        if (message.worldToViewMatrix)\n            TransformMatrix.internalBinaryWrite(message.worldToViewMatrix, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.CameraParameters camera_parameters = 2; */\n        if (message.cameraParameters)\n            CameraParameters.internalBinaryWrite(message.cameraParameters, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* bool do_prefill = 5; */\n        if (message.doPrefill !== false)\n            writer.tag(5, WireType.Varint).bool(message.doPrefill);\n        /* gooseai.RenderMode render_mode = 8; */\n        if (message.renderMode !== 0)\n            writer.tag(8, WireType.Varint).int32(message.renderMode);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.TransformCameraPose\n */\nexport const TransformCameraPose = new TransformCameraPose$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransformParameters$Type extends MessageType<TransformParameters> {\n    constructor() {\n        super(\"gooseai.TransformParameters\", [\n            { no: 2, name: \"color_adjust\", kind: \"message\", oneof: \"transform\", T: () => TransformColorAdjust },\n            { no: 4, name: \"depth_calc\", kind: \"message\", oneof: \"transform\", T: () => TransformDepthCalc },\n            { no: 5, name: \"resample\", kind: \"message\", oneof: \"transform\", T: () => TransformResample },\n            { no: 6, name: \"camera_pose\", kind: \"message\", oneof: \"transform\", T: () => TransformCameraPose }\n        ]);\n    }\n    create(value?: PartialMessage<TransformParameters>): TransformParameters {\n        const message = { transform: { oneofKind: undefined } };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<TransformParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TransformParameters): TransformParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* gooseai.TransformColorAdjust color_adjust */ 2:\n                    message.transform = {\n                        oneofKind: \"colorAdjust\",\n                        colorAdjust: TransformColorAdjust.internalBinaryRead(reader, reader.uint32(), options, (message.transform as any).colorAdjust)\n                    };\n                    break;\n                case /* gooseai.TransformDepthCalc depth_calc */ 4:\n                    message.transform = {\n                        oneofKind: \"depthCalc\",\n                        depthCalc: TransformDepthCalc.internalBinaryRead(reader, reader.uint32(), options, (message.transform as any).depthCalc)\n                    };\n                    break;\n                case /* gooseai.TransformResample resample */ 5:\n                    message.transform = {\n                        oneofKind: \"resample\",\n                        resample: TransformResample.internalBinaryRead(reader, reader.uint32(), options, (message.transform as any).resample)\n                    };\n                    break;\n                case /* gooseai.TransformCameraPose camera_pose */ 6:\n                    message.transform = {\n                        oneofKind: \"cameraPose\",\n                        cameraPose: TransformCameraPose.internalBinaryRead(reader, reader.uint32(), options, (message.transform as any).cameraPose)\n                    };\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: TransformParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* gooseai.TransformColorAdjust color_adjust = 2; */\n        if (message.transform.oneofKind === \"colorAdjust\")\n            TransformColorAdjust.internalBinaryWrite(message.transform.colorAdjust, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.TransformDepthCalc depth_calc = 4; */\n        if (message.transform.oneofKind === \"depthCalc\")\n            TransformDepthCalc.internalBinaryWrite(message.transform.depthCalc, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.TransformResample resample = 5; */\n        if (message.transform.oneofKind === \"resample\")\n            TransformResample.internalBinaryWrite(message.transform.resample, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.TransformCameraPose camera_pose = 6; */\n        if (message.transform.oneofKind === \"cameraPose\")\n            TransformCameraPose.internalBinaryWrite(message.transform.cameraPose, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.TransformParameters\n */\nexport const TransformParameters = new TransformParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AssetParameters$Type extends MessageType<AssetParameters> {\n    constructor() {\n        super(\"gooseai.AssetParameters\", [\n            { no: 1, name: \"action\", kind: \"enum\", T: () => [\"gooseai.AssetAction\", AssetAction] },\n            { no: 2, name: \"project_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"use\", kind: \"enum\", T: () => [\"gooseai.AssetUse\", AssetUse, \"ASSET_USE_\"] }\n        ]);\n    }\n    create(value?: PartialMessage<AssetParameters>): AssetParameters {\n        const message = { action: 0, projectId: \"\", use: 0 };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<AssetParameters>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AssetParameters): AssetParameters {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* gooseai.AssetAction action */ 1:\n                    message.action = reader.int32();\n                    break;\n                case /* string project_id */ 2:\n                    message.projectId = reader.string();\n                    break;\n                case /* gooseai.AssetUse use */ 3:\n                    message.use = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: AssetParameters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* gooseai.AssetAction action = 1; */\n        if (message.action !== 0)\n            writer.tag(1, WireType.Varint).int32(message.action);\n        /* string project_id = 2; */\n        if (message.projectId !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.projectId);\n        /* gooseai.AssetUse use = 3; */\n        if (message.use !== 0)\n            writer.tag(3, WireType.Varint).int32(message.use);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.AssetParameters\n */\nexport const AssetParameters = new AssetParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AnswerMeta$Type extends MessageType<AnswerMeta> {\n    constructor() {\n        super(\"gooseai.AnswerMeta\", [\n            { no: 1, name: \"gpu_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"cpu_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"node_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"engine_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<AnswerMeta>): AnswerMeta {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<AnswerMeta>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AnswerMeta): AnswerMeta {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional string gpu_id */ 1:\n                    message.gpuId = reader.string();\n                    break;\n                case /* optional string cpu_id */ 2:\n                    message.cpuId = reader.string();\n                    break;\n                case /* optional string node_id */ 3:\n                    message.nodeId = reader.string();\n                    break;\n                case /* optional string engine_id */ 4:\n                    message.engineId = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: AnswerMeta, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional string gpu_id = 1; */\n        if (message.gpuId !== undefined)\n            writer.tag(1, WireType.LengthDelimited).string(message.gpuId);\n        /* optional string cpu_id = 2; */\n        if (message.cpuId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.cpuId);\n        /* optional string node_id = 3; */\n        if (message.nodeId !== undefined)\n            writer.tag(3, WireType.LengthDelimited).string(message.nodeId);\n        /* optional string engine_id = 4; */\n        if (message.engineId !== undefined)\n            writer.tag(4, WireType.LengthDelimited).string(message.engineId);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.AnswerMeta\n */\nexport const AnswerMeta = new AnswerMeta$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Answer$Type extends MessageType<Answer> {\n    constructor() {\n        super(\"gooseai.Answer\", [\n            { no: 1, name: \"answer_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"request_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"received\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 4, name: \"created\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 6, name: \"meta\", kind: \"message\", T: () => AnswerMeta },\n            { no: 7, name: \"artifacts\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Artifact }\n        ]);\n    }\n    create(value?: PartialMessage<Answer>): Answer {\n        const message = { answerId: \"\", requestId: \"\", received: 0n, created: 0n, artifacts: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Answer>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Answer): Answer {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string answer_id */ 1:\n                    message.answerId = reader.string();\n                    break;\n                case /* string request_id */ 2:\n                    message.requestId = reader.string();\n                    break;\n                case /* uint64 received */ 3:\n                    message.received = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 created */ 4:\n                    message.created = reader.uint64().toBigInt();\n                    break;\n                case /* optional gooseai.AnswerMeta meta */ 6:\n                    message.meta = AnswerMeta.internalBinaryRead(reader, reader.uint32(), options, message.meta);\n                    break;\n                case /* repeated gooseai.Artifact artifacts */ 7:\n                    message.artifacts.push(Artifact.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Answer, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string answer_id = 1; */\n        if (message.answerId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.answerId);\n        /* string request_id = 2; */\n        if (message.requestId !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.requestId);\n        /* uint64 received = 3; */\n        if (message.received !== 0n)\n            writer.tag(3, WireType.Varint).uint64(message.received);\n        /* uint64 created = 4; */\n        if (message.created !== 0n)\n            writer.tag(4, WireType.Varint).uint64(message.created);\n        /* optional gooseai.AnswerMeta meta = 6; */\n        if (message.meta)\n            AnswerMeta.internalBinaryWrite(message.meta, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n        /* repeated gooseai.Artifact artifacts = 7; */\n        for (let i = 0; i < message.artifacts.length; i++)\n            Artifact.internalBinaryWrite(message.artifacts[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Answer\n */\nexport const Answer = new Answer$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AnswerBatch$Type extends MessageType<AnswerBatch> {\n    constructor() {\n        super(\"gooseai.AnswerBatch\", [\n            { no: 1, name: \"batch_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"answers\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Answer }\n        ]);\n    }\n    create(value?: PartialMessage<AnswerBatch>): AnswerBatch {\n        const message = { batchId: \"\", answers: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<AnswerBatch>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AnswerBatch): AnswerBatch {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string batch_id */ 1:\n                    message.batchId = reader.string();\n                    break;\n                case /* repeated gooseai.Answer answers */ 2:\n                    message.answers.push(Answer.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: AnswerBatch, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string batch_id = 1; */\n        if (message.batchId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.batchId);\n        /* repeated gooseai.Answer answers = 2; */\n        for (let i = 0; i < message.answers.length; i++)\n            Answer.internalBinaryWrite(message.answers[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.AnswerBatch\n */\nexport const AnswerBatch = new AnswerBatch$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Request$Type extends MessageType<Request> {\n    constructor() {\n        super(\"gooseai.Request\", [\n            { no: 1, name: \"engine_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"request_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"requested_type\", kind: \"enum\", T: () => [\"gooseai.ArtifactType\", ArtifactType] },\n            { no: 4, name: \"prompt\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Prompt },\n            { no: 5, name: \"image\", kind: \"message\", oneof: \"params\", T: () => ImageParameters },\n            { no: 7, name: \"classifier\", kind: \"message\", oneof: \"params\", T: () => ClassifierParameters },\n            { no: 8, name: \"asset\", kind: \"message\", oneof: \"params\", T: () => AssetParameters },\n            { no: 11, name: \"interpolate\", kind: \"message\", oneof: \"params\", T: () => InterpolateParameters },\n            { no: 12, name: \"transform\", kind: \"message\", oneof: \"params\", T: () => TransformParameters },\n            { no: 6, name: \"conditioner\", kind: \"message\", T: () => ConditionerParameters },\n            { no: 2047, name: \"extras\", kind: \"message\", T: () => Struct }\n        ]);\n    }\n    create(value?: PartialMessage<Request>): Request {\n        const message = { engineId: \"\", requestId: \"\", requestedType: 0, prompt: [], params: { oneofKind: undefined } };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Request>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Request): Request {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string engine_id */ 1:\n                    message.engineId = reader.string();\n                    break;\n                case /* string request_id */ 2:\n                    message.requestId = reader.string();\n                    break;\n                case /* gooseai.ArtifactType requested_type */ 3:\n                    message.requestedType = reader.int32();\n                    break;\n                case /* repeated gooseai.Prompt prompt */ 4:\n                    message.prompt.push(Prompt.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* gooseai.ImageParameters image */ 5:\n                    message.params = {\n                        oneofKind: \"image\",\n                        image: ImageParameters.internalBinaryRead(reader, reader.uint32(), options, (message.params as any).image)\n                    };\n                    break;\n                case /* gooseai.ClassifierParameters classifier */ 7:\n                    message.params = {\n                        oneofKind: \"classifier\",\n                        classifier: ClassifierParameters.internalBinaryRead(reader, reader.uint32(), options, (message.params as any).classifier)\n                    };\n                    break;\n                case /* gooseai.AssetParameters asset */ 8:\n                    message.params = {\n                        oneofKind: \"asset\",\n                        asset: AssetParameters.internalBinaryRead(reader, reader.uint32(), options, (message.params as any).asset)\n                    };\n                    break;\n                case /* gooseai.InterpolateParameters interpolate */ 11:\n                    message.params = {\n                        oneofKind: \"interpolate\",\n                        interpolate: InterpolateParameters.internalBinaryRead(reader, reader.uint32(), options, (message.params as any).interpolate)\n                    };\n                    break;\n                case /* gooseai.TransformParameters transform */ 12:\n                    message.params = {\n                        oneofKind: \"transform\",\n                        transform: TransformParameters.internalBinaryRead(reader, reader.uint32(), options, (message.params as any).transform)\n                    };\n                    break;\n                case /* optional gooseai.ConditionerParameters conditioner */ 6:\n                    message.conditioner = ConditionerParameters.internalBinaryRead(reader, reader.uint32(), options, message.conditioner);\n                    break;\n                case /* optional google.protobuf.Struct extras */ 2047:\n                    message.extras = Struct.internalBinaryRead(reader, reader.uint32(), options, message.extras);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string engine_id = 1; */\n        if (message.engineId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.engineId);\n        /* string request_id = 2; */\n        if (message.requestId !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.requestId);\n        /* gooseai.ArtifactType requested_type = 3; */\n        if (message.requestedType !== 0)\n            writer.tag(3, WireType.Varint).int32(message.requestedType);\n        /* repeated gooseai.Prompt prompt = 4; */\n        for (let i = 0; i < message.prompt.length; i++)\n            Prompt.internalBinaryWrite(message.prompt[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.ImageParameters image = 5; */\n        if (message.params.oneofKind === \"image\")\n            ImageParameters.internalBinaryWrite(message.params.image, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.ClassifierParameters classifier = 7; */\n        if (message.params.oneofKind === \"classifier\")\n            ClassifierParameters.internalBinaryWrite(message.params.classifier, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.AssetParameters asset = 8; */\n        if (message.params.oneofKind === \"asset\")\n            AssetParameters.internalBinaryWrite(message.params.asset, writer.tag(8, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.InterpolateParameters interpolate = 11; */\n        if (message.params.oneofKind === \"interpolate\")\n            InterpolateParameters.internalBinaryWrite(message.params.interpolate, writer.tag(11, WireType.LengthDelimited).fork(), options).join();\n        /* gooseai.TransformParameters transform = 12; */\n        if (message.params.oneofKind === \"transform\")\n            TransformParameters.internalBinaryWrite(message.params.transform, writer.tag(12, WireType.LengthDelimited).fork(), options).join();\n        /* optional gooseai.ConditionerParameters conditioner = 6; */\n        if (message.conditioner)\n            ConditionerParameters.internalBinaryWrite(message.conditioner, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n        /* optional google.protobuf.Struct extras = 2047; */\n        if (message.extras)\n            Struct.internalBinaryWrite(message.extras, writer.tag(2047, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Request\n */\nexport const Request = new Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass OnStatus$Type extends MessageType<OnStatus> {\n    constructor() {\n        super(\"gooseai.OnStatus\", [\n            { no: 1, name: \"reason\", kind: \"enum\", repeat: 1 /*RepeatType.PACKED*/, T: () => [\"gooseai.FinishReason\", FinishReason] },\n            { no: 2, name: \"target\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"action\", kind: \"enum\", repeat: 1 /*RepeatType.PACKED*/, T: () => [\"gooseai.StageAction\", StageAction, \"STAGE_ACTION_\"] }\n        ]);\n    }\n    create(value?: PartialMessage<OnStatus>): OnStatus {\n        const message = { reason: [], action: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<OnStatus>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OnStatus): OnStatus {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated gooseai.FinishReason reason */ 1:\n                    if (wireType === WireType.LengthDelimited)\n                        for (let e = reader.int32() + reader.pos; reader.pos < e;)\n                            message.reason.push(reader.int32());\n                    else\n                        message.reason.push(reader.int32());\n                    break;\n                case /* optional string target */ 2:\n                    message.target = reader.string();\n                    break;\n                case /* repeated gooseai.StageAction action */ 3:\n                    if (wireType === WireType.LengthDelimited)\n                        for (let e = reader.int32() + reader.pos; reader.pos < e;)\n                            message.action.push(reader.int32());\n                    else\n                        message.action.push(reader.int32());\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: OnStatus, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated gooseai.FinishReason reason = 1; */\n        if (message.reason.length) {\n            writer.tag(1, WireType.LengthDelimited).fork();\n            for (let i = 0; i < message.reason.length; i++)\n                writer.int32(message.reason[i]);\n            writer.join();\n        }\n        /* optional string target = 2; */\n        if (message.target !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.target);\n        /* repeated gooseai.StageAction action = 3; */\n        if (message.action.length) {\n            writer.tag(3, WireType.LengthDelimited).fork();\n            for (let i = 0; i < message.action.length; i++)\n                writer.int32(message.action[i]);\n            writer.join();\n        }\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.OnStatus\n */\nexport const OnStatus = new OnStatus$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Stage$Type extends MessageType<Stage> {\n    constructor() {\n        super(\"gooseai.Stage\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"request\", kind: \"message\", T: () => Request },\n            { no: 3, name: \"on_status\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => OnStatus }\n        ]);\n    }\n    create(value?: PartialMessage<Stage>): Stage {\n        const message = { id: \"\", onStatus: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Stage>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Stage): Stage {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* gooseai.Request request */ 2:\n                    message.request = Request.internalBinaryRead(reader, reader.uint32(), options, message.request);\n                    break;\n                case /* repeated gooseai.OnStatus on_status */ 3:\n                    message.onStatus.push(OnStatus.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Stage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* gooseai.Request request = 2; */\n        if (message.request)\n            Request.internalBinaryWrite(message.request, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* repeated gooseai.OnStatus on_status = 3; */\n        for (let i = 0; i < message.onStatus.length; i++)\n            OnStatus.internalBinaryWrite(message.onStatus[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Stage\n */\nexport const Stage = new Stage$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ChainRequest$Type extends MessageType<ChainRequest> {\n    constructor() {\n        super(\"gooseai.ChainRequest\", [\n            { no: 1, name: \"request_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"stage\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Stage }\n        ]);\n    }\n    create(value?: PartialMessage<ChainRequest>): ChainRequest {\n        const message = { requestId: \"\", stage: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ChainRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ChainRequest): ChainRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string request_id */ 1:\n                    message.requestId = reader.string();\n                    break;\n                case /* repeated gooseai.Stage stage */ 2:\n                    message.stage.push(Stage.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: ChainRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string request_id = 1; */\n        if (message.requestId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.requestId);\n        /* repeated gooseai.Stage stage = 2; */\n        for (let i = 0; i < message.stage.length; i++)\n            Stage.internalBinaryWrite(message.stage[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.ChainRequest\n */\nexport const ChainRequest = new ChainRequest$Type();\n/**\n * @generated ServiceType for protobuf service gooseai.GenerationService\n */\nexport const GenerationService = new ServiceType(\"gooseai.GenerationService\", [\n    { name: \"Generate\", serverStreaming: true, options: {}, I: Request, O: Answer },\n    { name: \"ChainGenerate\", serverStreaming: true, options: {}, I: ChainRequest, O: Answer }\n]);\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/Proto/Generated/google/protobuf/struct.ts",
    "content": "// @generated by protobuf-ts 2.8.2\n// @generated from protobuf file \"google/protobuf/struct.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// 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\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. 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//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MESSAGE_TYPE } from \"@protobuf-ts/runtime\";\nimport { isJsonObject } from \"@protobuf-ts/runtime\";\nimport { typeofJsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonReadOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonObject } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * `Struct` represents a structured data value, consisting of fields\n * which map to dynamically typed values. In some languages, `Struct`\n * might be supported by a native representation. For example, in\n * scripting languages like JS a struct is represented as an\n * object. The details of that representation are described together\n * with the proto support for the language.\n *\n * The JSON representation for `Struct` is JSON object.\n *\n * @generated from protobuf message google.protobuf.Struct\n */\nexport interface Struct {\n    /**\n     * Unordered map of dynamically typed values.\n     *\n     * @generated from protobuf field: map<string, google.protobuf.Value> fields = 1;\n     */\n    fields: {\n        [key: string]: Value;\n    };\n}\n/**\n * `Value` represents a dynamically typed value which can be either\n * null, a number, a string, a boolean, a recursive struct value, or a\n * list of values. A producer of value is expected to set one of these\n * variants. Absence of any variant indicates an error.\n *\n * The JSON representation for `Value` is JSON value.\n *\n * @generated from protobuf message google.protobuf.Value\n */\nexport interface Value {\n    /**\n     * @generated from protobuf oneof: kind\n     */\n    kind: {\n        oneofKind: \"nullValue\";\n        /**\n         * Represents a null value.\n         *\n         * @generated from protobuf field: google.protobuf.NullValue null_value = 1;\n         */\n        nullValue: NullValue;\n    } | {\n        oneofKind: \"numberValue\";\n        /**\n         * Represents a double value.\n         *\n         * @generated from protobuf field: double number_value = 2;\n         */\n        numberValue: number;\n    } | {\n        oneofKind: \"stringValue\";\n        /**\n         * Represents a string value.\n         *\n         * @generated from protobuf field: string string_value = 3;\n         */\n        stringValue: string;\n    } | {\n        oneofKind: \"boolValue\";\n        /**\n         * Represents a boolean value.\n         *\n         * @generated from protobuf field: bool bool_value = 4;\n         */\n        boolValue: boolean;\n    } | {\n        oneofKind: \"structValue\";\n        /**\n         * Represents a structured value.\n         *\n         * @generated from protobuf field: google.protobuf.Struct struct_value = 5;\n         */\n        structValue: Struct;\n    } | {\n        oneofKind: \"listValue\";\n        /**\n         * Represents a repeated `Value`.\n         *\n         * @generated from protobuf field: google.protobuf.ListValue list_value = 6;\n         */\n        listValue: ListValue;\n    } | {\n        oneofKind: undefined;\n    };\n}\n/**\n * `ListValue` is a wrapper around a repeated field of values.\n *\n * The JSON representation for `ListValue` is JSON array.\n *\n * @generated from protobuf message google.protobuf.ListValue\n */\nexport interface ListValue {\n    /**\n     * Repeated field of dynamically typed values.\n     *\n     * @generated from protobuf field: repeated google.protobuf.Value values = 1;\n     */\n    values: Value[];\n}\n/**\n * `NullValue` is a singleton enumeration to represent the null value for the\n * `Value` type union.\n *\n *  The JSON representation for `NullValue` is JSON `null`.\n *\n * @generated from protobuf enum google.protobuf.NullValue\n */\nexport enum NullValue {\n    /**\n     * Null value.\n     *\n     * @generated from protobuf enum value: NULL_VALUE = 0;\n     */\n    NULL_VALUE = 0\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Struct$Type extends MessageType<Struct> {\n    constructor() {\n        super(\"google.protobuf.Struct\", [\n            { no: 1, name: \"fields\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"message\", T: () => Value } }\n        ]);\n    }\n    /**\n     * Encode `Struct` to JSON object.\n     */\n    internalJsonWrite(message: Struct, options: JsonWriteOptions): JsonValue {\n        let json: JsonObject = {};\n        for (let [k, v] of Object.entries(message.fields)) {\n            json[k] = Value.toJson(v);\n        }\n        return json;\n    }\n    /**\n     * Decode `Struct` from JSON object.\n     */\n    internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Struct): Struct {\n        if (!isJsonObject(json))\n            throw new globalThis.Error(\"Unable to parse message \" + this.typeName + \" from JSON \" + typeofJsonValue(json) + \".\");\n        if (!target)\n            target = this.create();\n        for (let [k, v] of globalThis.Object.entries(json)) {\n            target.fields[k] = Value.fromJson(v);\n        }\n        return target;\n    }\n    create(value?: PartialMessage<Struct>): Struct {\n        const message = { fields: {} };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Struct>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Struct): Struct {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* map<string, google.protobuf.Value> fields */ 1:\n                    this.binaryReadMap1(message.fields, reader, options);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    private binaryReadMap1(map: Struct[\"fields\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n        let len = reader.uint32(), end = reader.pos + len, key: keyof Struct[\"fields\"] | undefined, val: Struct[\"fields\"][any] | undefined;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case 1:\n                    key = reader.string();\n                    break;\n                case 2:\n                    val = Value.internalBinaryRead(reader, reader.uint32(), options);\n                    break;\n                default: throw new globalThis.Error(\"unknown map entry field for field google.protobuf.Struct.fields\");\n            }\n        }\n        map[key ?? \"\"] = val ?? Value.create();\n    }\n    internalBinaryWrite(message: Struct, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* map<string, google.protobuf.Value> fields = 1; */\n        for (let k of Object.keys(message.fields)) {\n            writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k);\n            writer.tag(2, WireType.LengthDelimited).fork();\n            Value.internalBinaryWrite(message.fields[k], writer, options);\n            writer.join().join();\n        }\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Struct\n */\nexport const Struct = new Struct$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Value$Type extends MessageType<Value> {\n    constructor() {\n        super(\"google.protobuf.Value\", [\n            { no: 1, name: \"null_value\", kind: \"enum\", oneof: \"kind\", T: () => [\"google.protobuf.NullValue\", NullValue] },\n            { no: 2, name: \"number_value\", kind: \"scalar\", oneof: \"kind\", T: 1 /*ScalarType.DOUBLE*/ },\n            { no: 3, name: \"string_value\", kind: \"scalar\", oneof: \"kind\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"bool_value\", kind: \"scalar\", oneof: \"kind\", T: 8 /*ScalarType.BOOL*/ },\n            { no: 5, name: \"struct_value\", kind: \"message\", oneof: \"kind\", T: () => Struct },\n            { no: 6, name: \"list_value\", kind: \"message\", oneof: \"kind\", T: () => ListValue }\n        ]);\n    }\n    /**\n     * Encode `Value` to JSON value.\n     */\n    internalJsonWrite(message: Value, options: JsonWriteOptions): JsonValue {\n        if (message.kind.oneofKind === undefined)\n            throw new globalThis.Error();\n        switch (message.kind.oneofKind) {\n            case undefined: throw new globalThis.Error();\n            case \"boolValue\": return message.kind.boolValue;\n            case \"nullValue\": return null;\n            case \"numberValue\": return message.kind.numberValue;\n            case \"stringValue\": return message.kind.stringValue;\n            case \"listValue\":\n                let listValueField = this.fields.find(f => f.no === 6);\n                if (listValueField?.kind !== \"message\")\n                    throw new globalThis.Error();\n                return listValueField.T().toJson(message.kind.listValue);\n            case \"structValue\":\n                let structValueField = this.fields.find(f => f.no === 5);\n                if (structValueField?.kind !== \"message\")\n                    throw new globalThis.Error();\n                return structValueField.T().toJson(message.kind.structValue);\n        }\n    }\n    /**\n     * Decode `Value` from JSON value.\n     */\n    internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Value): Value {\n        if (!target)\n            target = this.create();\n        switch (typeof json) {\n            case \"number\":\n                target.kind = { oneofKind: \"numberValue\", numberValue: json };\n                break;\n            case \"string\":\n                target.kind = { oneofKind: \"stringValue\", stringValue: json };\n                break;\n            case \"boolean\":\n                target.kind = { oneofKind: \"boolValue\", boolValue: json };\n                break;\n            case \"object\":\n                if (json === null) {\n                    target.kind = { oneofKind: \"nullValue\", nullValue: NullValue.NULL_VALUE };\n                }\n                else if (globalThis.Array.isArray(json)) {\n                    target.kind = { oneofKind: \"listValue\", listValue: ListValue.fromJson(json) };\n                }\n                else {\n                    let val = Struct.fromJson(json);\n                    target.kind = { oneofKind: \"structValue\", structValue: Struct.fromJson(json) };\n                }\n                break;\n            default: throw new globalThis.Error(\"Unable to parse \" + this.typeName + \" from JSON \" + typeofJsonValue(json));\n        }\n        return target;\n    }\n    create(value?: PartialMessage<Value>): Value {\n        const message = { kind: { oneofKind: undefined } };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Value>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Value): Value {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* google.protobuf.NullValue null_value */ 1:\n                    message.kind = {\n                        oneofKind: \"nullValue\",\n                        nullValue: reader.int32()\n                    };\n                    break;\n                case /* double number_value */ 2:\n                    message.kind = {\n                        oneofKind: \"numberValue\",\n                        numberValue: reader.double()\n                    };\n                    break;\n                case /* string string_value */ 3:\n                    message.kind = {\n                        oneofKind: \"stringValue\",\n                        stringValue: reader.string()\n                    };\n                    break;\n                case /* bool bool_value */ 4:\n                    message.kind = {\n                        oneofKind: \"boolValue\",\n                        boolValue: reader.bool()\n                    };\n                    break;\n                case /* google.protobuf.Struct struct_value */ 5:\n                    message.kind = {\n                        oneofKind: \"structValue\",\n                        structValue: Struct.internalBinaryRead(reader, reader.uint32(), options, (message.kind as any).structValue)\n                    };\n                    break;\n                case /* google.protobuf.ListValue list_value */ 6:\n                    message.kind = {\n                        oneofKind: \"listValue\",\n                        listValue: ListValue.internalBinaryRead(reader, reader.uint32(), options, (message.kind as any).listValue)\n                    };\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Value, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* google.protobuf.NullValue null_value = 1; */\n        if (message.kind.oneofKind === \"nullValue\")\n            writer.tag(1, WireType.Varint).int32(message.kind.nullValue);\n        /* double number_value = 2; */\n        if (message.kind.oneofKind === \"numberValue\")\n            writer.tag(2, WireType.Bit64).double(message.kind.numberValue);\n        /* string string_value = 3; */\n        if (message.kind.oneofKind === \"stringValue\")\n            writer.tag(3, WireType.LengthDelimited).string(message.kind.stringValue);\n        /* bool bool_value = 4; */\n        if (message.kind.oneofKind === \"boolValue\")\n            writer.tag(4, WireType.Varint).bool(message.kind.boolValue);\n        /* google.protobuf.Struct struct_value = 5; */\n        if (message.kind.oneofKind === \"structValue\")\n            Struct.internalBinaryWrite(message.kind.structValue, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.ListValue list_value = 6; */\n        if (message.kind.oneofKind === \"listValue\")\n            ListValue.internalBinaryWrite(message.kind.listValue, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Value\n */\nexport const Value = new Value$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListValue$Type extends MessageType<ListValue> {\n    constructor() {\n        super(\"google.protobuf.ListValue\", [\n            { no: 1, name: \"values\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Value }\n        ]);\n    }\n    /**\n     * Encode `ListValue` to JSON array.\n     */\n    internalJsonWrite(message: ListValue, options: JsonWriteOptions): JsonValue {\n        return message.values.map(v => Value.toJson(v));\n    }\n    /**\n     * Decode `ListValue` from JSON array.\n     */\n    internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: ListValue): ListValue {\n        if (!globalThis.Array.isArray(json))\n            throw new globalThis.Error(\"Unable to parse \" + this.typeName + \" from JSON \" + typeofJsonValue(json));\n        if (!target)\n            target = this.create();\n        let values = json.map(v => Value.fromJson(v));\n        target.values.push(...values);\n        return target;\n    }\n    create(value?: PartialMessage<ListValue>): ListValue {\n        const message = { values: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ListValue>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListValue): ListValue {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated google.protobuf.Value values */ 1:\n                    message.values.push(Value.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: ListValue, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated google.protobuf.Value values = 1; */\n        for (let i = 0; i < message.values.length; i++)\n            Value.internalBinaryWrite(message.values[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.ListValue\n */\nexport const ListValue = new ListValue$Type();\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/Proto/Generated/project.client.ts",
    "content": "// @generated by protobuf-ts 2.8.2\n// @generated from protobuf file \"project.proto\" (package \"gooseai\", syntax proto3)\n// tslint:disable\nimport type { RpcTransport } from \"@protobuf-ts/runtime-rpc\";\nimport type { ServiceInfo } from \"@protobuf-ts/runtime-rpc\";\nimport { ProjectService } from \"./project\";\nimport type { DeleteAssetsResponse } from \"./project\";\nimport type { DeleteAssetsRequest } from \"./project\";\nimport type { QueryAssetsResponse } from \"./project\";\nimport type { QueryAssetsRequest } from \"./project\";\nimport type { UntagAssetsResponse } from \"./project\";\nimport type { UntagAssetsRequest } from \"./project\";\nimport type { TagAssetsResponse } from \"./project\";\nimport type { TagAssetsRequest } from \"./project\";\nimport type { DeleteProjectRequest } from \"./project\";\nimport type { GetProjectRequest } from \"./project\";\nimport type { ListProjectRequest } from \"./project\";\nimport type { ServerStreamingCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { UpdateProjectRequest } from \"./project\";\nimport { stackIntercept } from \"@protobuf-ts/runtime-rpc\";\nimport type { Project } from \"./project\";\nimport type { CreateProjectRequest } from \"./project\";\nimport type { UnaryCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { RpcOptions } from \"@protobuf-ts/runtime-rpc\";\n/**\n *\n * gRPC services\n *\n *\n * @generated from protobuf service gooseai.ProjectService\n */\nexport interface IProjectServiceClient {\n    /**\n     * Create a new project if it does not exist\n     *\n     * @generated from protobuf rpc: Create(gooseai.CreateProjectRequest) returns (gooseai.Project);\n     */\n    create(input: CreateProjectRequest, options?: RpcOptions): UnaryCall<CreateProjectRequest, Project>;\n    /**\n     * Update an existing project\n     *\n     * @generated from protobuf rpc: Update(gooseai.UpdateProjectRequest) returns (gooseai.Project);\n     */\n    update(input: UpdateProjectRequest, options?: RpcOptions): UnaryCall<UpdateProjectRequest, Project>;\n    /**\n     * List all the projects for an organization\n     *\n     * @generated from protobuf rpc: List(gooseai.ListProjectRequest) returns (stream gooseai.Project);\n     */\n    list(input: ListProjectRequest, options?: RpcOptions): ServerStreamingCall<ListProjectRequest, Project>;\n    /**\n     * Get a project\n     *\n     * @generated from protobuf rpc: Get(gooseai.GetProjectRequest) returns (gooseai.Project);\n     */\n    get(input: GetProjectRequest, options?: RpcOptions): UnaryCall<GetProjectRequest, Project>;\n    /**\n     * Delete a project\n     *\n     * @generated from protobuf rpc: Delete(gooseai.DeleteProjectRequest) returns (gooseai.Project);\n     */\n    delete(input: DeleteProjectRequest, options?: RpcOptions): UnaryCall<DeleteProjectRequest, Project>;\n    /**\n     * Add or remove tags from an asset\n     *\n     * @generated from protobuf rpc: TagAssets(gooseai.TagAssetsRequest) returns (gooseai.TagAssetsResponse);\n     */\n    tagAssets(input: TagAssetsRequest, options?: RpcOptions): UnaryCall<TagAssetsRequest, TagAssetsResponse>;\n    /**\n     * @generated from protobuf rpc: UntagAssets(gooseai.UntagAssetsRequest) returns (gooseai.UntagAssetsResponse);\n     */\n    untagAssets(input: UntagAssetsRequest, options?: RpcOptions): UnaryCall<UntagAssetsRequest, UntagAssetsResponse>;\n    /**\n     * Query the assets of a project, with additional filtering\n     *\n     * @generated from protobuf rpc: QueryAssets(gooseai.QueryAssetsRequest) returns (gooseai.QueryAssetsResponse);\n     */\n    queryAssets(input: QueryAssetsRequest, options?: RpcOptions): UnaryCall<QueryAssetsRequest, QueryAssetsResponse>;\n    /**\n     * Delete one or more assets of a project\n     *\n     * @generated from protobuf rpc: DeleteAssets(gooseai.DeleteAssetsRequest) returns (gooseai.DeleteAssetsResponse);\n     */\n    deleteAssets(input: DeleteAssetsRequest, options?: RpcOptions): UnaryCall<DeleteAssetsRequest, DeleteAssetsResponse>;\n}\n/**\n *\n * gRPC services\n *\n *\n * @generated from protobuf service gooseai.ProjectService\n */\nexport class ProjectServiceClient implements IProjectServiceClient, ServiceInfo {\n    typeName = ProjectService.typeName;\n    methods = ProjectService.methods;\n    options = ProjectService.options;\n    constructor(private readonly _transport: RpcTransport) {\n    }\n    /**\n     * Create a new project if it does not exist\n     *\n     * @generated from protobuf rpc: Create(gooseai.CreateProjectRequest) returns (gooseai.Project);\n     */\n    create(input: CreateProjectRequest, options?: RpcOptions): UnaryCall<CreateProjectRequest, Project> {\n        const method = this.methods[0], opt = this._transport.mergeOptions(options);\n        return stackIntercept<CreateProjectRequest, Project>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * Update an existing project\n     *\n     * @generated from protobuf rpc: Update(gooseai.UpdateProjectRequest) returns (gooseai.Project);\n     */\n    update(input: UpdateProjectRequest, options?: RpcOptions): UnaryCall<UpdateProjectRequest, Project> {\n        const method = this.methods[1], opt = this._transport.mergeOptions(options);\n        return stackIntercept<UpdateProjectRequest, Project>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * List all the projects for an organization\n     *\n     * @generated from protobuf rpc: List(gooseai.ListProjectRequest) returns (stream gooseai.Project);\n     */\n    list(input: ListProjectRequest, options?: RpcOptions): ServerStreamingCall<ListProjectRequest, Project> {\n        const method = this.methods[2], opt = this._transport.mergeOptions(options);\n        return stackIntercept<ListProjectRequest, Project>(\"serverStreaming\", this._transport, method, opt, input);\n    }\n    /**\n     * Get a project\n     *\n     * @generated from protobuf rpc: Get(gooseai.GetProjectRequest) returns (gooseai.Project);\n     */\n    get(input: GetProjectRequest, options?: RpcOptions): UnaryCall<GetProjectRequest, Project> {\n        const method = this.methods[3], opt = this._transport.mergeOptions(options);\n        return stackIntercept<GetProjectRequest, Project>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * Delete a project\n     *\n     * @generated from protobuf rpc: Delete(gooseai.DeleteProjectRequest) returns (gooseai.Project);\n     */\n    delete(input: DeleteProjectRequest, options?: RpcOptions): UnaryCall<DeleteProjectRequest, Project> {\n        const method = this.methods[4], opt = this._transport.mergeOptions(options);\n        return stackIntercept<DeleteProjectRequest, Project>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * Add or remove tags from an asset\n     *\n     * @generated from protobuf rpc: TagAssets(gooseai.TagAssetsRequest) returns (gooseai.TagAssetsResponse);\n     */\n    tagAssets(input: TagAssetsRequest, options?: RpcOptions): UnaryCall<TagAssetsRequest, TagAssetsResponse> {\n        const method = this.methods[5], opt = this._transport.mergeOptions(options);\n        return stackIntercept<TagAssetsRequest, TagAssetsResponse>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * @generated from protobuf rpc: UntagAssets(gooseai.UntagAssetsRequest) returns (gooseai.UntagAssetsResponse);\n     */\n    untagAssets(input: UntagAssetsRequest, options?: RpcOptions): UnaryCall<UntagAssetsRequest, UntagAssetsResponse> {\n        const method = this.methods[6], opt = this._transport.mergeOptions(options);\n        return stackIntercept<UntagAssetsRequest, UntagAssetsResponse>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * Query the assets of a project, with additional filtering\n     *\n     * @generated from protobuf rpc: QueryAssets(gooseai.QueryAssetsRequest) returns (gooseai.QueryAssetsResponse);\n     */\n    queryAssets(input: QueryAssetsRequest, options?: RpcOptions): UnaryCall<QueryAssetsRequest, QueryAssetsResponse> {\n        const method = this.methods[7], opt = this._transport.mergeOptions(options);\n        return stackIntercept<QueryAssetsRequest, QueryAssetsResponse>(\"unary\", this._transport, method, opt, input);\n    }\n    /**\n     * Delete one or more assets of a project\n     *\n     * @generated from protobuf rpc: DeleteAssets(gooseai.DeleteAssetsRequest) returns (gooseai.DeleteAssetsResponse);\n     */\n    deleteAssets(input: DeleteAssetsRequest, options?: RpcOptions): UnaryCall<DeleteAssetsRequest, DeleteAssetsResponse> {\n        const method = this.methods[8], opt = this._transport.mergeOptions(options);\n        return stackIntercept<DeleteAssetsRequest, DeleteAssetsResponse>(\"unary\", this._transport, method, opt, input);\n    }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/Proto/Generated/project.ts",
    "content": "// @generated by protobuf-ts 2.8.2\n// @generated from protobuf file \"project.proto\" (package \"gooseai\", syntax proto3)\n// tslint:disable\nimport { ServiceType } from \"@protobuf-ts/runtime-rpc\";\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MESSAGE_TYPE } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\nimport { Request } from \"./generation\";\n/**\n * @generated from protobuf message gooseai.ProjectAsset\n */\nexport interface ProjectAsset {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the asset, UUIDv4\n    /**\n     * @generated from protobuf field: string uri = 2;\n     */\n    uri: string; // The URI to the asset\n    /**\n     * @generated from protobuf field: gooseai.ProjectAssetUse use = 3;\n     */\n    use: ProjectAssetUse; // The use of the asset with respect to the project\n    /**\n     * @generated from protobuf field: string name = 4;\n     */\n    name: string; // The name of the asset\n    /**\n     * @generated from protobuf field: uint64 size = 5;\n     */\n    size: bigint; // The asset size in bytes\n    /**\n     * @generated from protobuf field: uint64 created_at = 6;\n     */\n    createdAt: bigint; // Time of asset creation (UTC seconds epoch)\n    /**\n     * @generated from protobuf field: uint64 updated_at = 7;\n     */\n    updatedAt: bigint; // Time of last asset update (UTC seconds epoch)\n    /**\n     * @generated from protobuf field: gooseai.Request request = 8;\n     */\n    request?: Request; // The request object that is associated with the artifact\n    /**\n     * @generated from protobuf field: map<string, string> tags = 9;\n     */\n    tags: {\n        [key: string]: string;\n    }; // The tags associated with the asset\n}\n/**\n * @generated from protobuf message gooseai.Project\n */\nexport interface Project {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the project, UUIDv4\n    /**\n     * @generated from protobuf field: string title = 2;\n     */\n    title: string; // Title of the project\n    /**\n     * @generated from protobuf field: string owner_id = 3;\n     */\n    ownerId: string; // The ID of the organization owning the project\n    /**\n     * @generated from protobuf field: gooseai.ProjectAccess access = 4;\n     */\n    access: ProjectAccess; // The access of the project (such as public vs private)\n    /**\n     * @generated from protobuf field: gooseai.ProjectStatus status = 5;\n     */\n    status: ProjectStatus; // The status of the project (such as active vs inactive)\n    /**\n     * @generated from protobuf field: uint64 size = 6;\n     */\n    size: bigint; // The size of the project in bytes\n    /**\n     * @generated from protobuf field: gooseai.ProjectAsset file = 7;\n     */\n    file?: ProjectAsset; // Project file for the project\n    /**\n     * @generated from protobuf field: uint64 created_at = 8;\n     */\n    createdAt: bigint; // Time of project creation (UTC seconds epoch)\n    /**\n     * @generated from protobuf field: uint64 updated_at = 9;\n     */\n    updatedAt: bigint; // Time of last project update (UTC seconds epoch)\n    /**\n     * @generated from protobuf field: repeated gooseai.ProjectAsset assets = 10;\n     */\n    assets: ProjectAsset[]; // The listing of all assets associated with the project\n}\n/**\n * @generated from protobuf message gooseai.CreateProjectRequest\n */\nexport interface CreateProjectRequest {\n    /**\n     * @generated from protobuf field: string title = 1;\n     */\n    title: string; // title of the project\n    /**\n     * @generated from protobuf field: optional string owner_id = 2;\n     */\n    ownerId?: string; // The ID of the organization owning the project, empty for default org for user\n    /**\n     * @generated from protobuf field: gooseai.ProjectAccess access = 3;\n     */\n    access: ProjectAccess; // The access of the project (such as public vs private)\n    /**\n     * @generated from protobuf field: gooseai.ProjectStatus status = 4;\n     */\n    status: ProjectStatus; // The status of the project (such as active vs inactive)\n    /**\n     * @generated from protobuf field: optional gooseai.ProjectAsset file = 5;\n     */\n    file?: ProjectAsset; // Project file for the project (if existing, else will create)\n}\n/**\n * @generated from protobuf message gooseai.UpdateProjectRequest\n */\nexport interface UpdateProjectRequest {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the project, UUIDv4\n    /**\n     * @generated from protobuf field: optional string owner_id = 2;\n     */\n    ownerId?: string; // The ID of the organization owning the project, empty for default org for user\n    /**\n     * @generated from protobuf field: optional string title = 3;\n     */\n    title?: string; // Title of the project\n    /**\n     * @generated from protobuf field: optional gooseai.ProjectAccess access = 4;\n     */\n    access?: ProjectAccess; // The access of the project (such as public vs private)\n    /**\n     * @generated from protobuf field: optional gooseai.ProjectStatus status = 5;\n     */\n    status?: ProjectStatus; // The status of the project (such as active vs inactive)\n    /**\n     * @generated from protobuf field: optional gooseai.ProjectAsset file = 6;\n     */\n    file?: ProjectAsset; // Project file for the project\n}\n/**\n * @generated from protobuf message gooseai.ListProjectRequest\n */\nexport interface ListProjectRequest {\n    /**\n     * @generated from protobuf field: optional string owner_id = 1;\n     */\n    ownerId?: string; // The ID of the organization owning the project, empty for default org for user\n}\n/**\n * @generated from protobuf message gooseai.GetProjectRequest\n */\nexport interface GetProjectRequest {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the project to request, UUIDv4, empty string uses default project\n    /**\n     * @generated from protobuf field: optional string owner_id = 2;\n     */\n    ownerId?: string; // The ID of the organization owning the project, empty for default org for user\n}\n/**\n * @generated from protobuf message gooseai.DeleteProjectRequest\n */\nexport interface DeleteProjectRequest {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the project to request, UUIDv4\n    /**\n     * @generated from protobuf field: optional string owner_id = 2;\n     */\n    ownerId?: string; // The ID of the organization owning the project, empty for default org for user\n}\n/**\n * @generated from protobuf message gooseai.QueryAssetsRequest\n */\nexport interface QueryAssetsRequest {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the project to request, UUIDv4, empty string uses default project\n    /**\n     * @generated from protobuf field: optional string owner_id = 2;\n     */\n    ownerId?: string; // The ID of the organization owning the assets, unset for default org for user\n    /**\n     * @generated from protobuf field: optional uint64 since = 3;\n     */\n    since?: bigint; // The time (UTC seconds epoch) to start listing assets from, unset for no restriction\n    /**\n     * @generated from protobuf field: optional uint64 until = 4;\n     */\n    until?: bigint; // The time (UTC seconds epoch) to stop listing assets at, unset for no restriction\n    /**\n     * @generated from protobuf field: optional uint64 limit = 5;\n     */\n    limit?: bigint; // The maximum number of assets to return, unset for no limit\n    /**\n     * @generated from protobuf field: optional string start_key = 6;\n     */\n    startKey?: string; // The key to start from, used to paginate results, unset for no offset\n    /**\n     * @generated from protobuf field: repeated gooseai.ProjectAssetUse use = 7;\n     */\n    use: ProjectAssetUse[]; // The asset usage to filter the assets returned, empty for no filter\n    /**\n     * @generated from protobuf field: gooseai.ProjectSortDir sort_dir = 8;\n     */\n    sortDir: ProjectSortDir; // The sort direction based on asset creation time, default is descending\n    /**\n     * @generated from protobuf field: map<string, string> tags = 9;\n     */\n    tags: {\n        [key: string]: string;\n    }; // The tag values used to filter the assets returned, empty for no filter\n}\n/**\n * @generated from protobuf message gooseai.QueryAssetsResponse\n */\nexport interface QueryAssetsResponse {\n    /**\n     * @generated from protobuf field: repeated gooseai.ProjectAsset assets = 1;\n     */\n    assets: ProjectAsset[]; // The assets returned by the query\n    /**\n     * @generated from protobuf field: optional string last_key = 2;\n     */\n    lastKey?: string; // The last asset key returned when the results were limited, unset when not limited\n}\n/**\n * @generated from protobuf message gooseai.TagAssetsRequest\n */\nexport interface TagAssetsRequest {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the project to request, UUIDv4, empty string uses default project\n    /**\n     * @generated from protobuf field: optional string owner_id = 2;\n     */\n    ownerId?: string; // The ID of the organization owning the assets, unset for default org for user\n    /**\n     * @generated from protobuf field: repeated string asset_ids = 3;\n     */\n    assetIds: string[]; // The IDs of the assets to tag in the project, UUIDv4, limit 1000\n    /**\n     * @generated from protobuf field: map<string, string> tags = 4;\n     */\n    tags: {\n        [key: string]: string;\n    }; // The tags to add to the assets\n}\n/**\n * @generated from protobuf message gooseai.TagAssetsResponse\n */\nexport interface TagAssetsResponse {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the project, UUIDv4\n    /**\n     * @generated from protobuf field: string owner_id = 2;\n     */\n    ownerId: string; // The ID of the organization owning the project\n    /**\n     * @generated from protobuf field: repeated string asset_ids = 3;\n     */\n    assetIds: string[]; // The IDs of the assets updated in the project, UUIDv4, limit 1000\n}\n/**\n * @generated from protobuf message gooseai.UntagAssetsRequest\n */\nexport interface UntagAssetsRequest {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the project to request, UUIDv4, empty string uses default project\n    /**\n     * @generated from protobuf field: optional string owner_id = 2;\n     */\n    ownerId?: string; // The ID of the organization owning the assets, unset for default org for user\n    /**\n     * @generated from protobuf field: repeated string asset_ids = 3;\n     */\n    assetIds: string[]; // The IDs of the assets to tag in the project, UUIDv4, limit 1000\n    /**\n     * @generated from protobuf field: repeated string tag_keys = 4;\n     */\n    tagKeys: string[]; // The keys of the tags to remove from the assets\n}\n/**\n * @generated from protobuf message gooseai.UntagAssetsResponse\n */\nexport interface UntagAssetsResponse {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the project, UUIDv4\n    /**\n     * @generated from protobuf field: string owner_id = 2;\n     */\n    ownerId: string; // The ID of the organization owning the project\n    /**\n     * @generated from protobuf field: repeated string asset_ids = 3;\n     */\n    assetIds: string[]; // The IDs of the assets updated in the project, UUIDv4, limit 1000\n}\n/**\n * @generated from protobuf message gooseai.DeleteAssetsRequest\n */\nexport interface DeleteAssetsRequest {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the project to request, UUIDv4, empty string uses default project\n    /**\n     * @generated from protobuf field: optional string owner_id = 2;\n     */\n    ownerId?: string; // The ID of the organization owning the project, unset for default org for user\n    /**\n     * @generated from protobuf field: repeated string asset_ids = 3;\n     */\n    assetIds: string[]; // The IDs of the assets to delete from the project, UUIDv4, limit 1000\n}\n/**\n * @generated from protobuf message gooseai.DeleteAssetsResponse\n */\nexport interface DeleteAssetsResponse {\n    /**\n     * @generated from protobuf field: string id = 1;\n     */\n    id: string; // ID of the project, UUIDv4\n    /**\n     * @generated from protobuf field: string owner_id = 2;\n     */\n    ownerId: string; // The ID of the organization owning the project\n    /**\n     * @generated from protobuf field: repeated string asset_ids = 3;\n     */\n    assetIds: string[]; // The IDs of the assets deleted from the project, UUIDv4, limit 1000\n}\n/**\n * @generated from protobuf enum gooseai.ProjectAccess\n */\nexport enum ProjectAccess {\n    /**\n     * Private access, only owner organization can access\n     *\n     * @generated from protobuf enum value: PROJECT_ACCESS_PRIVATE = 0;\n     */\n    PRIVATE = 0,\n    /**\n     * Public access, anyone can access\n     *\n     * @generated from protobuf enum value: PROJECT_ACCESS_PUBLIC = 1;\n     */\n    PUBLIC = 1\n}\n/**\n * @generated from protobuf enum gooseai.ProjectStatus\n */\nexport enum ProjectStatus {\n    /**\n     * Inactive project\n     *\n     * @generated from protobuf enum value: PROJECT_STATUS_INACTIVE = 0;\n     */\n    INACTIVE = 0,\n    /**\n     * Active project\n     *\n     * @generated from protobuf enum value: PROJECT_STATUS_ACTIVE = 1;\n     */\n    ACTIVE = 1,\n    /**\n     * Deleted project, only set by delete endpoint\n     *\n     * @generated from protobuf enum value: PROJECT_STATUS_DELETED = 2;\n     */\n    DELETED = 2\n}\n/**\n * @generated from protobuf enum gooseai.ProjectAssetUse\n */\nexport enum ProjectAssetUse {\n    /**\n     * Asset does not have use defined\n     *\n     * @generated from protobuf enum value: PROJECT_ASSET_USE_UNDEFINED = 0;\n     */\n    UNDEFINED = 0,\n    /**\n     * Asset is used as an input for the project\n     *\n     * @generated from protobuf enum value: PROJECT_ASSET_USE_INPUT = 1;\n     */\n    INPUT = 1,\n    /**\n     * Asset is an output from the project\n     *\n     * @generated from protobuf enum value: PROJECT_ASSET_USE_OUTPUT = 2;\n     */\n    OUTPUT = 2,\n    /**\n     * Asset is an output from an intermediate step of the project\n     *\n     * @generated from protobuf enum value: PROJECT_ASSET_USE_INTERMEDIATE = 3;\n     */\n    INTERMEDIATE = 3,\n    /**\n     * Asset is used as the project file for the project\n     *\n     * @generated from protobuf enum value: PROJECT_ASSET_USE_PROJECT = 4;\n     */\n    PROJECT = 4\n}\n/**\n * @generated from protobuf enum gooseai.ProjectSortDir\n */\nexport enum ProjectSortDir {\n    /**\n     * Sort direction is not specified, uses default\n     *\n     * @generated from protobuf enum value: PROJECT_SORT_DIR_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * Sort in ascending order\n     *\n     * @generated from protobuf enum value: PROJECT_SORT_DIR_ASC = 1;\n     */\n    ASC = 1,\n    /**\n     * Sort in descending order\n     *\n     * @generated from protobuf enum value: PROJECT_SORT_DIR_DESC = 2;\n     */\n    DESC = 2\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass ProjectAsset$Type extends MessageType<ProjectAsset> {\n    constructor() {\n        super(\"gooseai.ProjectAsset\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"uri\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"use\", kind: \"enum\", T: () => [\"gooseai.ProjectAssetUse\", ProjectAssetUse, \"PROJECT_ASSET_USE_\"] },\n            { no: 4, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 5, name: \"size\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 6, name: \"created_at\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 7, name: \"updated_at\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 8, name: \"request\", kind: \"message\", T: () => Request },\n            { no: 9, name: \"tags\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"scalar\", T: 9 /*ScalarType.STRING*/ } }\n        ]);\n    }\n    create(value?: PartialMessage<ProjectAsset>): ProjectAsset {\n        const message = { id: \"\", uri: \"\", use: 0, name: \"\", size: 0n, createdAt: 0n, updatedAt: 0n, tags: {} };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ProjectAsset>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ProjectAsset): ProjectAsset {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* string uri */ 2:\n                    message.uri = reader.string();\n                    break;\n                case /* gooseai.ProjectAssetUse use */ 3:\n                    message.use = reader.int32();\n                    break;\n                case /* string name */ 4:\n                    message.name = reader.string();\n                    break;\n                case /* uint64 size */ 5:\n                    message.size = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 created_at */ 6:\n                    message.createdAt = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 updated_at */ 7:\n                    message.updatedAt = reader.uint64().toBigInt();\n                    break;\n                case /* gooseai.Request request */ 8:\n                    message.request = Request.internalBinaryRead(reader, reader.uint32(), options, message.request);\n                    break;\n                case /* map<string, string> tags */ 9:\n                    this.binaryReadMap9(message.tags, reader, options);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    private binaryReadMap9(map: ProjectAsset[\"tags\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n        let len = reader.uint32(), end = reader.pos + len, key: keyof ProjectAsset[\"tags\"] | undefined, val: ProjectAsset[\"tags\"][any] | undefined;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case 1:\n                    key = reader.string();\n                    break;\n                case 2:\n                    val = reader.string();\n                    break;\n                default: throw new globalThis.Error(\"unknown map entry field for field gooseai.ProjectAsset.tags\");\n            }\n        }\n        map[key ?? \"\"] = val ?? \"\";\n    }\n    internalBinaryWrite(message: ProjectAsset, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* string uri = 2; */\n        if (message.uri !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.uri);\n        /* gooseai.ProjectAssetUse use = 3; */\n        if (message.use !== 0)\n            writer.tag(3, WireType.Varint).int32(message.use);\n        /* string name = 4; */\n        if (message.name !== \"\")\n            writer.tag(4, WireType.LengthDelimited).string(message.name);\n        /* uint64 size = 5; */\n        if (message.size !== 0n)\n            writer.tag(5, WireType.Varint).uint64(message.size);\n        /* uint64 created_at = 6; */\n        if (message.createdAt !== 0n)\n            writer.tag(6, WireType.Varint).uint64(message.createdAt);\n        /* uint64 updated_at = 7; */\n        if (message.updatedAt !== 0n)\n            writer.tag(7, WireType.Varint).uint64(message.updatedAt);\n        /* gooseai.Request request = 8; */\n        if (message.request)\n            Request.internalBinaryWrite(message.request, writer.tag(8, WireType.LengthDelimited).fork(), options).join();\n        /* map<string, string> tags = 9; */\n        for (let k of Object.keys(message.tags))\n            writer.tag(9, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.tags[k]).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.ProjectAsset\n */\nexport const ProjectAsset = new ProjectAsset$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Project$Type extends MessageType<Project> {\n    constructor() {\n        super(\"gooseai.Project\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"title\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"owner_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"access\", kind: \"enum\", T: () => [\"gooseai.ProjectAccess\", ProjectAccess, \"PROJECT_ACCESS_\"] },\n            { no: 5, name: \"status\", kind: \"enum\", T: () => [\"gooseai.ProjectStatus\", ProjectStatus, \"PROJECT_STATUS_\"] },\n            { no: 6, name: \"size\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 7, name: \"file\", kind: \"message\", T: () => ProjectAsset },\n            { no: 8, name: \"created_at\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 9, name: \"updated_at\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 10, name: \"assets\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => ProjectAsset }\n        ]);\n    }\n    create(value?: PartialMessage<Project>): Project {\n        const message = { id: \"\", title: \"\", ownerId: \"\", access: 0, status: 0, size: 0n, createdAt: 0n, updatedAt: 0n, assets: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Project>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Project): Project {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* string title */ 2:\n                    message.title = reader.string();\n                    break;\n                case /* string owner_id */ 3:\n                    message.ownerId = reader.string();\n                    break;\n                case /* gooseai.ProjectAccess access */ 4:\n                    message.access = reader.int32();\n                    break;\n                case /* gooseai.ProjectStatus status */ 5:\n                    message.status = reader.int32();\n                    break;\n                case /* uint64 size */ 6:\n                    message.size = reader.uint64().toBigInt();\n                    break;\n                case /* gooseai.ProjectAsset file */ 7:\n                    message.file = ProjectAsset.internalBinaryRead(reader, reader.uint32(), options, message.file);\n                    break;\n                case /* uint64 created_at */ 8:\n                    message.createdAt = reader.uint64().toBigInt();\n                    break;\n                case /* uint64 updated_at */ 9:\n                    message.updatedAt = reader.uint64().toBigInt();\n                    break;\n                case /* repeated gooseai.ProjectAsset assets */ 10:\n                    message.assets.push(ProjectAsset.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Project, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* string title = 2; */\n        if (message.title !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.title);\n        /* string owner_id = 3; */\n        if (message.ownerId !== \"\")\n            writer.tag(3, WireType.LengthDelimited).string(message.ownerId);\n        /* gooseai.ProjectAccess access = 4; */\n        if (message.access !== 0)\n            writer.tag(4, WireType.Varint).int32(message.access);\n        /* gooseai.ProjectStatus status = 5; */\n        if (message.status !== 0)\n            writer.tag(5, WireType.Varint).int32(message.status);\n        /* uint64 size = 6; */\n        if (message.size !== 0n)\n            writer.tag(6, WireType.Varint).uint64(message.size);\n        /* gooseai.ProjectAsset file = 7; */\n        if (message.file)\n            ProjectAsset.internalBinaryWrite(message.file, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n        /* uint64 created_at = 8; */\n        if (message.createdAt !== 0n)\n            writer.tag(8, WireType.Varint).uint64(message.createdAt);\n        /* uint64 updated_at = 9; */\n        if (message.updatedAt !== 0n)\n            writer.tag(9, WireType.Varint).uint64(message.updatedAt);\n        /* repeated gooseai.ProjectAsset assets = 10; */\n        for (let i = 0; i < message.assets.length; i++)\n            ProjectAsset.internalBinaryWrite(message.assets[i], writer.tag(10, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.Project\n */\nexport const Project = new Project$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CreateProjectRequest$Type extends MessageType<CreateProjectRequest> {\n    constructor() {\n        super(\"gooseai.CreateProjectRequest\", [\n            { no: 1, name: \"title\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"access\", kind: \"enum\", T: () => [\"gooseai.ProjectAccess\", ProjectAccess, \"PROJECT_ACCESS_\"] },\n            { no: 4, name: \"status\", kind: \"enum\", T: () => [\"gooseai.ProjectStatus\", ProjectStatus, \"PROJECT_STATUS_\"] },\n            { no: 5, name: \"file\", kind: \"message\", T: () => ProjectAsset }\n        ]);\n    }\n    create(value?: PartialMessage<CreateProjectRequest>): CreateProjectRequest {\n        const message = { title: \"\", access: 0, status: 0 };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<CreateProjectRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateProjectRequest): CreateProjectRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string title */ 1:\n                    message.title = reader.string();\n                    break;\n                case /* optional string owner_id */ 2:\n                    message.ownerId = reader.string();\n                    break;\n                case /* gooseai.ProjectAccess access */ 3:\n                    message.access = reader.int32();\n                    break;\n                case /* gooseai.ProjectStatus status */ 4:\n                    message.status = reader.int32();\n                    break;\n                case /* optional gooseai.ProjectAsset file */ 5:\n                    message.file = ProjectAsset.internalBinaryRead(reader, reader.uint32(), options, message.file);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: CreateProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string title = 1; */\n        if (message.title !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.title);\n        /* optional string owner_id = 2; */\n        if (message.ownerId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.ownerId);\n        /* gooseai.ProjectAccess access = 3; */\n        if (message.access !== 0)\n            writer.tag(3, WireType.Varint).int32(message.access);\n        /* gooseai.ProjectStatus status = 4; */\n        if (message.status !== 0)\n            writer.tag(4, WireType.Varint).int32(message.status);\n        /* optional gooseai.ProjectAsset file = 5; */\n        if (message.file)\n            ProjectAsset.internalBinaryWrite(message.file, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.CreateProjectRequest\n */\nexport const CreateProjectRequest = new CreateProjectRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass UpdateProjectRequest$Type extends MessageType<UpdateProjectRequest> {\n    constructor() {\n        super(\"gooseai.UpdateProjectRequest\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"title\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"access\", kind: \"enum\", opt: true, T: () => [\"gooseai.ProjectAccess\", ProjectAccess, \"PROJECT_ACCESS_\"] },\n            { no: 5, name: \"status\", kind: \"enum\", opt: true, T: () => [\"gooseai.ProjectStatus\", ProjectStatus, \"PROJECT_STATUS_\"] },\n            { no: 6, name: \"file\", kind: \"message\", T: () => ProjectAsset }\n        ]);\n    }\n    create(value?: PartialMessage<UpdateProjectRequest>): UpdateProjectRequest {\n        const message = { id: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<UpdateProjectRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateProjectRequest): UpdateProjectRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* optional string owner_id */ 2:\n                    message.ownerId = reader.string();\n                    break;\n                case /* optional string title */ 3:\n                    message.title = reader.string();\n                    break;\n                case /* optional gooseai.ProjectAccess access */ 4:\n                    message.access = reader.int32();\n                    break;\n                case /* optional gooseai.ProjectStatus status */ 5:\n                    message.status = reader.int32();\n                    break;\n                case /* optional gooseai.ProjectAsset file */ 6:\n                    message.file = ProjectAsset.internalBinaryRead(reader, reader.uint32(), options, message.file);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: UpdateProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* optional string owner_id = 2; */\n        if (message.ownerId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.ownerId);\n        /* optional string title = 3; */\n        if (message.title !== undefined)\n            writer.tag(3, WireType.LengthDelimited).string(message.title);\n        /* optional gooseai.ProjectAccess access = 4; */\n        if (message.access !== undefined)\n            writer.tag(4, WireType.Varint).int32(message.access);\n        /* optional gooseai.ProjectStatus status = 5; */\n        if (message.status !== undefined)\n            writer.tag(5, WireType.Varint).int32(message.status);\n        /* optional gooseai.ProjectAsset file = 6; */\n        if (message.file)\n            ProjectAsset.internalBinaryWrite(message.file, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.UpdateProjectRequest\n */\nexport const UpdateProjectRequest = new UpdateProjectRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListProjectRequest$Type extends MessageType<ListProjectRequest> {\n    constructor() {\n        super(\"gooseai.ListProjectRequest\", [\n            { no: 1, name: \"owner_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<ListProjectRequest>): ListProjectRequest {\n        const message = {};\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<ListProjectRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListProjectRequest): ListProjectRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* optional string owner_id */ 1:\n                    message.ownerId = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: ListProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* optional string owner_id = 1; */\n        if (message.ownerId !== undefined)\n            writer.tag(1, WireType.LengthDelimited).string(message.ownerId);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.ListProjectRequest\n */\nexport const ListProjectRequest = new ListProjectRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetProjectRequest$Type extends MessageType<GetProjectRequest> {\n    constructor() {\n        super(\"gooseai.GetProjectRequest\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<GetProjectRequest>): GetProjectRequest {\n        const message = { id: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<GetProjectRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetProjectRequest): GetProjectRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* optional string owner_id */ 2:\n                    message.ownerId = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: GetProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* optional string owner_id = 2; */\n        if (message.ownerId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.ownerId);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.GetProjectRequest\n */\nexport const GetProjectRequest = new GetProjectRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass DeleteProjectRequest$Type extends MessageType<DeleteProjectRequest> {\n    constructor() {\n        super(\"gooseai.DeleteProjectRequest\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<DeleteProjectRequest>): DeleteProjectRequest {\n        const message = { id: \"\" };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<DeleteProjectRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteProjectRequest): DeleteProjectRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* optional string owner_id */ 2:\n                    message.ownerId = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: DeleteProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* optional string owner_id = 2; */\n        if (message.ownerId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.ownerId);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.DeleteProjectRequest\n */\nexport const DeleteProjectRequest = new DeleteProjectRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass QueryAssetsRequest$Type extends MessageType<QueryAssetsRequest> {\n    constructor() {\n        super(\"gooseai.QueryAssetsRequest\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"since\", kind: \"scalar\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 4, name: \"until\", kind: \"scalar\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 5, name: \"limit\", kind: \"scalar\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 6, name: \"start_key\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 7, name: \"use\", kind: \"enum\", repeat: 1 /*RepeatType.PACKED*/, T: () => [\"gooseai.ProjectAssetUse\", ProjectAssetUse, \"PROJECT_ASSET_USE_\"] },\n            { no: 8, name: \"sort_dir\", kind: \"enum\", T: () => [\"gooseai.ProjectSortDir\", ProjectSortDir, \"PROJECT_SORT_DIR_\"] },\n            { no: 9, name: \"tags\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"scalar\", T: 9 /*ScalarType.STRING*/ } }\n        ]);\n    }\n    create(value?: PartialMessage<QueryAssetsRequest>): QueryAssetsRequest {\n        const message = { id: \"\", use: [], sortDir: 0, tags: {} };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<QueryAssetsRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryAssetsRequest): QueryAssetsRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* optional string owner_id */ 2:\n                    message.ownerId = reader.string();\n                    break;\n                case /* optional uint64 since */ 3:\n                    message.since = reader.uint64().toBigInt();\n                    break;\n                case /* optional uint64 until */ 4:\n                    message.until = reader.uint64().toBigInt();\n                    break;\n                case /* optional uint64 limit */ 5:\n                    message.limit = reader.uint64().toBigInt();\n                    break;\n                case /* optional string start_key */ 6:\n                    message.startKey = reader.string();\n                    break;\n                case /* repeated gooseai.ProjectAssetUse use */ 7:\n                    if (wireType === WireType.LengthDelimited)\n                        for (let e = reader.int32() + reader.pos; reader.pos < e;)\n                            message.use.push(reader.int32());\n                    else\n                        message.use.push(reader.int32());\n                    break;\n                case /* gooseai.ProjectSortDir sort_dir */ 8:\n                    message.sortDir = reader.int32();\n                    break;\n                case /* map<string, string> tags */ 9:\n                    this.binaryReadMap9(message.tags, reader, options);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    private binaryReadMap9(map: QueryAssetsRequest[\"tags\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n        let len = reader.uint32(), end = reader.pos + len, key: keyof QueryAssetsRequest[\"tags\"] | undefined, val: QueryAssetsRequest[\"tags\"][any] | undefined;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case 1:\n                    key = reader.string();\n                    break;\n                case 2:\n                    val = reader.string();\n                    break;\n                default: throw new globalThis.Error(\"unknown map entry field for field gooseai.QueryAssetsRequest.tags\");\n            }\n        }\n        map[key ?? \"\"] = val ?? \"\";\n    }\n    internalBinaryWrite(message: QueryAssetsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* optional string owner_id = 2; */\n        if (message.ownerId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.ownerId);\n        /* optional uint64 since = 3; */\n        if (message.since !== undefined)\n            writer.tag(3, WireType.Varint).uint64(message.since);\n        /* optional uint64 until = 4; */\n        if (message.until !== undefined)\n            writer.tag(4, WireType.Varint).uint64(message.until);\n        /* optional uint64 limit = 5; */\n        if (message.limit !== undefined)\n            writer.tag(5, WireType.Varint).uint64(message.limit);\n        /* optional string start_key = 6; */\n        if (message.startKey !== undefined)\n            writer.tag(6, WireType.LengthDelimited).string(message.startKey);\n        /* repeated gooseai.ProjectAssetUse use = 7; */\n        if (message.use.length) {\n            writer.tag(7, WireType.LengthDelimited).fork();\n            for (let i = 0; i < message.use.length; i++)\n                writer.int32(message.use[i]);\n            writer.join();\n        }\n        /* gooseai.ProjectSortDir sort_dir = 8; */\n        if (message.sortDir !== 0)\n            writer.tag(8, WireType.Varint).int32(message.sortDir);\n        /* map<string, string> tags = 9; */\n        for (let k of Object.keys(message.tags))\n            writer.tag(9, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.tags[k]).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.QueryAssetsRequest\n */\nexport const QueryAssetsRequest = new QueryAssetsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass QueryAssetsResponse$Type extends MessageType<QueryAssetsResponse> {\n    constructor() {\n        super(\"gooseai.QueryAssetsResponse\", [\n            { no: 1, name: \"assets\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => ProjectAsset },\n            { no: 2, name: \"last_key\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<QueryAssetsResponse>): QueryAssetsResponse {\n        const message = { assets: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<QueryAssetsResponse>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryAssetsResponse): QueryAssetsResponse {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* repeated gooseai.ProjectAsset assets */ 1:\n                    message.assets.push(ProjectAsset.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* optional string last_key */ 2:\n                    message.lastKey = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: QueryAssetsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* repeated gooseai.ProjectAsset assets = 1; */\n        for (let i = 0; i < message.assets.length; i++)\n            ProjectAsset.internalBinaryWrite(message.assets[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* optional string last_key = 2; */\n        if (message.lastKey !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.lastKey);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.QueryAssetsResponse\n */\nexport const QueryAssetsResponse = new QueryAssetsResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TagAssetsRequest$Type extends MessageType<TagAssetsRequest> {\n    constructor() {\n        super(\"gooseai.TagAssetsRequest\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"asset_ids\", kind: \"scalar\", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"tags\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"scalar\", T: 9 /*ScalarType.STRING*/ } }\n        ]);\n    }\n    create(value?: PartialMessage<TagAssetsRequest>): TagAssetsRequest {\n        const message = { id: \"\", assetIds: [], tags: {} };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<TagAssetsRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TagAssetsRequest): TagAssetsRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* optional string owner_id */ 2:\n                    message.ownerId = reader.string();\n                    break;\n                case /* repeated string asset_ids */ 3:\n                    message.assetIds.push(reader.string());\n                    break;\n                case /* map<string, string> tags */ 4:\n                    this.binaryReadMap4(message.tags, reader, options);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    private binaryReadMap4(map: TagAssetsRequest[\"tags\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n        let len = reader.uint32(), end = reader.pos + len, key: keyof TagAssetsRequest[\"tags\"] | undefined, val: TagAssetsRequest[\"tags\"][any] | undefined;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case 1:\n                    key = reader.string();\n                    break;\n                case 2:\n                    val = reader.string();\n                    break;\n                default: throw new globalThis.Error(\"unknown map entry field for field gooseai.TagAssetsRequest.tags\");\n            }\n        }\n        map[key ?? \"\"] = val ?? \"\";\n    }\n    internalBinaryWrite(message: TagAssetsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* optional string owner_id = 2; */\n        if (message.ownerId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.ownerId);\n        /* repeated string asset_ids = 3; */\n        for (let i = 0; i < message.assetIds.length; i++)\n            writer.tag(3, WireType.LengthDelimited).string(message.assetIds[i]);\n        /* map<string, string> tags = 4; */\n        for (let k of Object.keys(message.tags))\n            writer.tag(4, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.tags[k]).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.TagAssetsRequest\n */\nexport const TagAssetsRequest = new TagAssetsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TagAssetsResponse$Type extends MessageType<TagAssetsResponse> {\n    constructor() {\n        super(\"gooseai.TagAssetsResponse\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"asset_ids\", kind: \"scalar\", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<TagAssetsResponse>): TagAssetsResponse {\n        const message = { id: \"\", ownerId: \"\", assetIds: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<TagAssetsResponse>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TagAssetsResponse): TagAssetsResponse {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* string owner_id */ 2:\n                    message.ownerId = reader.string();\n                    break;\n                case /* repeated string asset_ids */ 3:\n                    message.assetIds.push(reader.string());\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: TagAssetsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* string owner_id = 2; */\n        if (message.ownerId !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.ownerId);\n        /* repeated string asset_ids = 3; */\n        for (let i = 0; i < message.assetIds.length; i++)\n            writer.tag(3, WireType.LengthDelimited).string(message.assetIds[i]);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.TagAssetsResponse\n */\nexport const TagAssetsResponse = new TagAssetsResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass UntagAssetsRequest$Type extends MessageType<UntagAssetsRequest> {\n    constructor() {\n        super(\"gooseai.UntagAssetsRequest\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"asset_ids\", kind: \"scalar\", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"tag_keys\", kind: \"scalar\", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<UntagAssetsRequest>): UntagAssetsRequest {\n        const message = { id: \"\", assetIds: [], tagKeys: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<UntagAssetsRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UntagAssetsRequest): UntagAssetsRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* optional string owner_id */ 2:\n                    message.ownerId = reader.string();\n                    break;\n                case /* repeated string asset_ids */ 3:\n                    message.assetIds.push(reader.string());\n                    break;\n                case /* repeated string tag_keys */ 4:\n                    message.tagKeys.push(reader.string());\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: UntagAssetsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* optional string owner_id = 2; */\n        if (message.ownerId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.ownerId);\n        /* repeated string asset_ids = 3; */\n        for (let i = 0; i < message.assetIds.length; i++)\n            writer.tag(3, WireType.LengthDelimited).string(message.assetIds[i]);\n        /* repeated string tag_keys = 4; */\n        for (let i = 0; i < message.tagKeys.length; i++)\n            writer.tag(4, WireType.LengthDelimited).string(message.tagKeys[i]);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.UntagAssetsRequest\n */\nexport const UntagAssetsRequest = new UntagAssetsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass UntagAssetsResponse$Type extends MessageType<UntagAssetsResponse> {\n    constructor() {\n        super(\"gooseai.UntagAssetsResponse\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"asset_ids\", kind: \"scalar\", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<UntagAssetsResponse>): UntagAssetsResponse {\n        const message = { id: \"\", ownerId: \"\", assetIds: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<UntagAssetsResponse>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UntagAssetsResponse): UntagAssetsResponse {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* string owner_id */ 2:\n                    message.ownerId = reader.string();\n                    break;\n                case /* repeated string asset_ids */ 3:\n                    message.assetIds.push(reader.string());\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: UntagAssetsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* string owner_id = 2; */\n        if (message.ownerId !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.ownerId);\n        /* repeated string asset_ids = 3; */\n        for (let i = 0; i < message.assetIds.length; i++)\n            writer.tag(3, WireType.LengthDelimited).string(message.assetIds[i]);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.UntagAssetsResponse\n */\nexport const UntagAssetsResponse = new UntagAssetsResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass DeleteAssetsRequest$Type extends MessageType<DeleteAssetsRequest> {\n    constructor() {\n        super(\"gooseai.DeleteAssetsRequest\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"asset_ids\", kind: \"scalar\", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<DeleteAssetsRequest>): DeleteAssetsRequest {\n        const message = { id: \"\", assetIds: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<DeleteAssetsRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteAssetsRequest): DeleteAssetsRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* optional string owner_id */ 2:\n                    message.ownerId = reader.string();\n                    break;\n                case /* repeated string asset_ids */ 3:\n                    message.assetIds.push(reader.string());\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: DeleteAssetsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* optional string owner_id = 2; */\n        if (message.ownerId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.ownerId);\n        /* repeated string asset_ids = 3; */\n        for (let i = 0; i < message.assetIds.length; i++)\n            writer.tag(3, WireType.LengthDelimited).string(message.assetIds[i]);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.DeleteAssetsRequest\n */\nexport const DeleteAssetsRequest = new DeleteAssetsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass DeleteAssetsResponse$Type extends MessageType<DeleteAssetsResponse> {\n    constructor() {\n        super(\"gooseai.DeleteAssetsResponse\", [\n            { no: 1, name: \"id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"owner_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"asset_ids\", kind: \"scalar\", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<DeleteAssetsResponse>): DeleteAssetsResponse {\n        const message = { id: \"\", ownerId: \"\", assetIds: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<DeleteAssetsResponse>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteAssetsResponse): DeleteAssetsResponse {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string id */ 1:\n                    message.id = reader.string();\n                    break;\n                case /* string owner_id */ 2:\n                    message.ownerId = reader.string();\n                    break;\n                case /* repeated string asset_ids */ 3:\n                    message.assetIds.push(reader.string());\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: DeleteAssetsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string id = 1; */\n        if (message.id !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.id);\n        /* string owner_id = 2; */\n        if (message.ownerId !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.ownerId);\n        /* repeated string asset_ids = 3; */\n        for (let i = 0; i < message.assetIds.length; i++)\n            writer.tag(3, WireType.LengthDelimited).string(message.assetIds[i]);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message gooseai.DeleteAssetsResponse\n */\nexport const DeleteAssetsResponse = new DeleteAssetsResponse$Type();\n/**\n * @generated ServiceType for protobuf service gooseai.ProjectService\n */\nexport const ProjectService = new ServiceType(\"gooseai.ProjectService\", [\n    { name: \"Create\", options: {}, I: CreateProjectRequest, O: Project },\n    { name: \"Update\", options: {}, I: UpdateProjectRequest, O: Project },\n    { name: \"List\", serverStreaming: true, options: {}, I: ListProjectRequest, O: Project },\n    { name: \"Get\", options: {}, I: GetProjectRequest, O: Project },\n    { name: \"Delete\", options: {}, I: DeleteProjectRequest, O: Project },\n    { name: \"TagAssets\", options: {}, I: TagAssetsRequest, O: TagAssetsResponse },\n    { name: \"UntagAssets\", options: {}, I: UntagAssetsRequest, O: UntagAssetsResponse },\n    { name: \"QueryAssets\", options: {}, I: QueryAssetsRequest, O: QueryAssetsResponse },\n    { name: \"DeleteAssets\", options: {}, I: DeleteAssetsRequest, O: DeleteAssetsResponse }\n]);\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/Proto/Generated/tensors.ts",
    "content": "// @generated by protobuf-ts 2.8.2\n// @generated from protobuf file \"tensors.proto\" (package \"tensors\", syntax proto3)\n// tslint:disable\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MESSAGE_TYPE } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * @generated from protobuf message tensors.Tensor\n */\nexport interface Tensor {\n    /**\n     * @generated from protobuf field: tensors.Dtype dtype = 1;\n     */\n    dtype: Dtype;\n    /**\n     * @generated from protobuf field: repeated int64 shape = 2;\n     */\n    shape: bigint[];\n    /**\n     * @generated from protobuf field: bytes data = 3;\n     */\n    data: Uint8Array;\n    /**\n     * @generated from protobuf field: optional tensors.AttributeType attr_type = 4;\n     */\n    attrType?: AttributeType;\n}\n/**\n * @generated from protobuf message tensors.Attribute\n */\nexport interface Attribute {\n    /**\n     * @generated from protobuf field: string name = 1;\n     */\n    name: string;\n    /**\n     * @generated from protobuf oneof: value\n     */\n    value: {\n        oneofKind: \"module\";\n        /**\n         * @generated from protobuf field: tensors.Module module = 3;\n         */\n        module: Module;\n    } | {\n        oneofKind: \"tensor\";\n        /**\n         * @generated from protobuf field: tensors.Tensor tensor = 4;\n         */\n        tensor: Tensor;\n    } | {\n        oneofKind: \"string\";\n        /**\n         * @generated from protobuf field: string string = 5;\n         */\n        string: string;\n    } | {\n        oneofKind: \"int64\";\n        /**\n         * @generated from protobuf field: int64 int64 = 6;\n         */\n        int64: bigint;\n    } | {\n        oneofKind: \"float\";\n        /**\n         * @generated from protobuf field: float float = 7;\n         */\n        float: number;\n    } | {\n        oneofKind: \"bool\";\n        /**\n         * @generated from protobuf field: bool bool = 8;\n         */\n        bool: boolean;\n    } | {\n        oneofKind: undefined;\n    };\n}\n/**\n * @generated from protobuf message tensors.Module\n */\nexport interface Module {\n    /**\n     * @generated from protobuf field: string name = 1;\n     */\n    name: string;\n    /**\n     * @generated from protobuf field: repeated string names = 2;\n     */\n    names: string[];\n    /**\n     * @generated from protobuf field: repeated tensors.Attribute attributes = 3;\n     */\n    attributes: Attribute[];\n}\n/**\n * @generated from protobuf enum tensors.Dtype\n */\nexport enum Dtype {\n    /**\n     * @generated from protobuf enum value: DT_INVALID = 0;\n     */\n    DT_INVALID = 0,\n    /**\n     * @generated from protobuf enum value: DT_FLOAT32 = 1;\n     */\n    DT_FLOAT32 = 1,\n    /**\n     * @generated from protobuf enum value: DT_FLOAT64 = 2;\n     */\n    DT_FLOAT64 = 2,\n    /**\n     * @generated from protobuf enum value: DT_FLOAT16 = 3;\n     */\n    DT_FLOAT16 = 3,\n    /**\n     * @generated from protobuf enum value: DT_BFLOAT16 = 4;\n     */\n    DT_BFLOAT16 = 4,\n    /**\n     * @generated from protobuf enum value: DT_COMPLEX32 = 5;\n     */\n    DT_COMPLEX32 = 5,\n    /**\n     * @generated from protobuf enum value: DT_COMPLEX64 = 6;\n     */\n    DT_COMPLEX64 = 6,\n    /**\n     * @generated from protobuf enum value: DT_COMPLEX128 = 7;\n     */\n    DT_COMPLEX128 = 7,\n    /**\n     * @generated from protobuf enum value: DT_UINT8 = 8;\n     */\n    DT_UINT8 = 8,\n    /**\n     * @generated from protobuf enum value: DT_INT8 = 9;\n     */\n    DT_INT8 = 9,\n    /**\n     * @generated from protobuf enum value: DT_INT16 = 10;\n     */\n    DT_INT16 = 10,\n    /**\n     * @generated from protobuf enum value: DT_INT32 = 11;\n     */\n    DT_INT32 = 11,\n    /**\n     * @generated from protobuf enum value: DT_INT64 = 12;\n     */\n    DT_INT64 = 12,\n    /**\n     * @generated from protobuf enum value: DT_BOOL = 13;\n     */\n    DT_BOOL = 13,\n    /**\n     * @generated from protobuf enum value: DT_QUINT8 = 14;\n     */\n    DT_QUINT8 = 14,\n    /**\n     * @generated from protobuf enum value: DT_QINT8 = 15;\n     */\n    DT_QINT8 = 15,\n    /**\n     * @generated from protobuf enum value: DT_QINT32 = 16;\n     */\n    DT_QINT32 = 16,\n    /**\n     * @generated from protobuf enum value: DT_QUINT4_2 = 17;\n     */\n    DT_QUINT4_2 = 17\n}\n/**\n * @generated from protobuf enum tensors.AttributeType\n */\nexport enum AttributeType {\n    /**\n     * @generated from protobuf enum value: AT_PARAMETER = 0;\n     */\n    AT_PARAMETER = 0,\n    /**\n     * @generated from protobuf enum value: AT_BUFFER = 1;\n     */\n    AT_BUFFER = 1\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Tensor$Type extends MessageType<Tensor> {\n    constructor() {\n        super(\"tensors.Tensor\", [\n            { no: 1, name: \"dtype\", kind: \"enum\", T: () => [\"tensors.Dtype\", Dtype] },\n            { no: 2, name: \"shape\", kind: \"scalar\", repeat: 1 /*RepeatType.PACKED*/, T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 3, name: \"data\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ },\n            { no: 4, name: \"attr_type\", kind: \"enum\", opt: true, T: () => [\"tensors.AttributeType\", AttributeType] }\n        ]);\n    }\n    create(value?: PartialMessage<Tensor>): Tensor {\n        const message = { dtype: 0, shape: [], data: new Uint8Array(0) };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Tensor>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Tensor): Tensor {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* tensors.Dtype dtype */ 1:\n                    message.dtype = reader.int32();\n                    break;\n                case /* repeated int64 shape */ 2:\n                    if (wireType === WireType.LengthDelimited)\n                        for (let e = reader.int32() + reader.pos; reader.pos < e;)\n                            message.shape.push(reader.int64().toBigInt());\n                    else\n                        message.shape.push(reader.int64().toBigInt());\n                    break;\n                case /* bytes data */ 3:\n                    message.data = reader.bytes();\n                    break;\n                case /* optional tensors.AttributeType attr_type */ 4:\n                    message.attrType = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Tensor, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* tensors.Dtype dtype = 1; */\n        if (message.dtype !== 0)\n            writer.tag(1, WireType.Varint).int32(message.dtype);\n        /* repeated int64 shape = 2; */\n        if (message.shape.length) {\n            writer.tag(2, WireType.LengthDelimited).fork();\n            for (let i = 0; i < message.shape.length; i++)\n                writer.int64(message.shape[i]);\n            writer.join();\n        }\n        /* bytes data = 3; */\n        if (message.data.length)\n            writer.tag(3, WireType.LengthDelimited).bytes(message.data);\n        /* optional tensors.AttributeType attr_type = 4; */\n        if (message.attrType !== undefined)\n            writer.tag(4, WireType.Varint).int32(message.attrType);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tensors.Tensor\n */\nexport const Tensor = new Tensor$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Attribute$Type extends MessageType<Attribute> {\n    constructor() {\n        super(\"tensors.Attribute\", [\n            { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"module\", kind: \"message\", oneof: \"value\", T: () => Module },\n            { no: 4, name: \"tensor\", kind: \"message\", oneof: \"value\", T: () => Tensor },\n            { no: 5, name: \"string\", kind: \"scalar\", oneof: \"value\", T: 9 /*ScalarType.STRING*/ },\n            { no: 6, name: \"int64\", kind: \"scalar\", oneof: \"value\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n            { no: 7, name: \"float\", kind: \"scalar\", oneof: \"value\", T: 2 /*ScalarType.FLOAT*/ },\n            { no: 8, name: \"bool\", kind: \"scalar\", oneof: \"value\", T: 8 /*ScalarType.BOOL*/ }\n        ]);\n    }\n    create(value?: PartialMessage<Attribute>): Attribute {\n        const message = { name: \"\", value: { oneofKind: undefined } };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Attribute>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Attribute): Attribute {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string name */ 1:\n                    message.name = reader.string();\n                    break;\n                case /* tensors.Module module */ 3:\n                    message.value = {\n                        oneofKind: \"module\",\n                        module: Module.internalBinaryRead(reader, reader.uint32(), options, (message.value as any).module)\n                    };\n                    break;\n                case /* tensors.Tensor tensor */ 4:\n                    message.value = {\n                        oneofKind: \"tensor\",\n                        tensor: Tensor.internalBinaryRead(reader, reader.uint32(), options, (message.value as any).tensor)\n                    };\n                    break;\n                case /* string string */ 5:\n                    message.value = {\n                        oneofKind: \"string\",\n                        string: reader.string()\n                    };\n                    break;\n                case /* int64 int64 */ 6:\n                    message.value = {\n                        oneofKind: \"int64\",\n                        int64: reader.int64().toBigInt()\n                    };\n                    break;\n                case /* float float */ 7:\n                    message.value = {\n                        oneofKind: \"float\",\n                        float: reader.float()\n                    };\n                    break;\n                case /* bool bool */ 8:\n                    message.value = {\n                        oneofKind: \"bool\",\n                        bool: reader.bool()\n                    };\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Attribute, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string name = 1; */\n        if (message.name !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.name);\n        /* tensors.Module module = 3; */\n        if (message.value.oneofKind === \"module\")\n            Module.internalBinaryWrite(message.value.module, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        /* tensors.Tensor tensor = 4; */\n        if (message.value.oneofKind === \"tensor\")\n            Tensor.internalBinaryWrite(message.value.tensor, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        /* string string = 5; */\n        if (message.value.oneofKind === \"string\")\n            writer.tag(5, WireType.LengthDelimited).string(message.value.string);\n        /* int64 int64 = 6; */\n        if (message.value.oneofKind === \"int64\")\n            writer.tag(6, WireType.Varint).int64(message.value.int64);\n        /* float float = 7; */\n        if (message.value.oneofKind === \"float\")\n            writer.tag(7, WireType.Bit32).float(message.value.float);\n        /* bool bool = 8; */\n        if (message.value.oneofKind === \"bool\")\n            writer.tag(8, WireType.Varint).bool(message.value.bool);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tensors.Attribute\n */\nexport const Attribute = new Attribute$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Module$Type extends MessageType<Module> {\n    constructor() {\n        super(\"tensors.Module\", [\n            { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"names\", kind: \"scalar\", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"attributes\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Attribute }\n        ]);\n    }\n    create(value?: PartialMessage<Module>): Module {\n        const message = { name: \"\", names: [], attributes: [] };\n        globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });\n        if (value !== undefined)\n            reflectionMergePartial<Module>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Module): Module {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string name */ 1:\n                    message.name = reader.string();\n                    break;\n                case /* repeated string names */ 2:\n                    message.names.push(reader.string());\n                    break;\n                case /* repeated tensors.Attribute attributes */ 3:\n                    message.attributes.push(Attribute.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Module, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string name = 1; */\n        if (message.name !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.name);\n        /* repeated string names = 2; */\n        for (let i = 0; i < message.names.length; i++)\n            writer.tag(2, WireType.LengthDelimited).string(message.names[i]);\n        /* repeated tensors.Attribute attributes = 3; */\n        for (let i = 0; i < message.attributes.length; i++)\n            Attribute.internalBinaryWrite(message.attributes[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tensors.Module\n */\nexport const Module = new Module$Type();\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/Proto/index.ts",
    "content": "export * as Dashboard from \"./Generated/dashboard\";\nexport * from \"./Generated/dashboard.client\";\nexport * as Engines from \"./Generated/engines\";\nexport * from \"./Generated/engines.client\";\nexport * as Generation from \"./Generated/generation\";\nexport * from \"./Generated/generation.client\";\nexport * as Project from \"./Generated/project\";\nexport * from \"./Generated/project.client\";\nexport * from \"./Generated/google/protobuf/struct\";\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/src/index.ts",
    "content": "import { GrpcWebFetchTransport } from \"@protobuf-ts/grpcweb-transport\";\nimport { RpcError } from \"@protobuf-ts/runtime-rpc\";\nimport * as StableStudio from \"@stability/stablestudio-plugin\";\n\nimport {\n  EnginesServiceClient,\n  Generation,\n  GenerationServiceClient,\n  Project,\n  ProjectServiceClient,\n  Struct,\n} from \"./Proto\";\n\nconst getStableDiffusionDefaultCount = () => 4;\nconst getStableDiffusionDefaultInputFromPrompt = (prompt: string) => ({\n  prompts: [\n    {\n      text: prompt,\n      weight: 1,\n    },\n\n    {\n      text: \"\",\n      weight: -0.75,\n    },\n  ],\n\n  model: \"stable-diffusion-xl-beta-v2-2-2\",\n  sampler: { id: \"0\", name: \"DDIM\" },\n  style: \"enhance\",\n\n  width: 512,\n  height: 512,\n\n  cfgScale: 7,\n  steps: 50,\n});\n\nexport const createPlugin = StableStudio.createPlugin<{\n  settings: {\n    apiKey: StableStudio.PluginSettingString;\n  };\n}>(({ context, set }) => {\n  const functionsWhichNeedAPIKey = (\n    apiKey?: string\n  ): Pick<\n    StableStudio.Plugin,\n    | \"createStableDiffusionImages\"\n    | \"getStableDiffusionExistingImages\"\n    | \"getStableDiffusionModels\"\n    | \"deleteStableDiffusionImages\"\n    | \"getStatus\"\n    | \"getStableDiffusionSamplers\"\n  > => {\n    if (!apiKey)\n      return {\n        createStableDiffusionImages: undefined,\n        getStableDiffusionExistingImages: undefined,\n        getStableDiffusionModels: undefined,\n        deleteStableDiffusionImages: undefined,\n\n        getStatus: () => ({\n          indicator: \"error\",\n          text: \"Missing API key\",\n        }),\n      };\n\n    const transport = new GrpcWebFetchTransport({\n      baseUrl: \"https://grpc.stability.ai\",\n      meta: {\n        Authorization: `Bearer ${apiKey}`,\n\n        \"stability-client-id\": \"StableStudio\",\n        \"stability-client-version\": context.getGitHash(),\n      },\n    });\n\n    const generation = new GenerationServiceClient(transport);\n    const engines = new EnginesServiceClient(transport);\n    const project = new ProjectServiceClient(transport);\n\n    return {\n      createStableDiffusionImages: async (options) => {\n        const count = options?.count ?? getStableDiffusionDefaultCount();\n        const defaultStableDiffusionInput =\n          getStableDiffusionDefaultInputFromPrompt(\n            context.getStableDiffusionRandomPrompt()\n          );\n\n        const input = {\n          ...defaultStableDiffusionInput,\n          ...options?.input,\n        };\n\n        const width = input.width ?? defaultStableDiffusionInput.width;\n        const height = input.height ?? defaultStableDiffusionInput.height;\n\n        const prompt =\n          input.prompts?.map(\n            ({ text = context.getStableDiffusionRandomPrompt(), weight }) =>\n              Generation.Prompt.create({\n                prompt: { oneofKind: \"text\", text },\n                parameters: { weight },\n              })\n          ) ?? [];\n\n        // add init and mask\n        if (input.maskImage?.blob) {\n          prompt.push(\n            Generation.Prompt.create({\n              parameters: { init: false, weight: 1 },\n              prompt: {\n                oneofKind: \"artifact\",\n                artifact: Generation.Artifact.create({\n                  type: Generation.ArtifactType.ARTIFACT_MASK,\n                  mime: \"image/png\",\n                  data: {\n                    oneofKind: \"binary\",\n                    binary: new Uint8Array(\n                      await input.maskImage.blob.arrayBuffer()\n                    ),\n                  },\n                }),\n              },\n            })\n          );\n        }\n\n        if (input.initialImage?.blob) {\n          prompt.push(\n            Generation.Prompt.create({\n              parameters: { init: true, weight: input.initialImage.weight },\n              prompt: {\n                oneofKind: \"artifact\",\n                artifact: Generation.Artifact.create({\n                  type: Generation.ArtifactType.ARTIFACT_IMAGE,\n                  mime: \"image/png\",\n                  data: {\n                    oneofKind: \"binary\",\n                    binary: new Uint8Array(\n                      await input.initialImage.blob.arrayBuffer()\n                    ),\n                  },\n                }),\n              },\n            })\n          );\n        }\n\n        console.log(input.sampler.id ? parseInt(input.sampler.id) : 0);\n\n        const imageParams = Generation.ImageParameters.create({\n          width: BigInt(width),\n          height: BigInt(height),\n\n          steps: BigInt(input.steps),\n          samples: BigInt(count),\n          seed: Array.from({ length: count }, () => input.seed ?? 0),\n\n          transform: Generation.TransformType.create({\n            type: {\n              oneofKind: \"diffusion\",\n              diffusion: input.sampler.id ? parseInt(input.sampler.id) : 0,\n            },\n          }),\n\n          parameters: [\n            Generation.StepParameter.create({\n              sampler: Generation.SamplerParameters.create({\n                cfgScale: input.cfgScale,\n              }),\n\n              scaledStep: 0,\n              schedule: Generation.ScheduleParameters.create({\n                start: input.initialImage\n                  ? 1 - (input.initialImage.weight ?? 0)\n                  : 1,\n              }),\n            }),\n          ],\n        });\n\n        const extras = (input.style || input.width !== input.height) && {\n          extras: Struct.fromJson({\n            $IPC: {\n              preset: input.style,\n              ...(input.width !== input.height && { mode: \"multistage\" }),\n            },\n          }),\n        };\n\n        const request = generation.chainGenerate({\n          requestId: \"\",\n          stage: [\n            {\n              id: \"Main\",\n\n              request: Generation.Request.create({\n                prompt,\n\n                engineId: input.model,\n                requestedType: Generation.ArtifactType.ARTIFACT_IMAGE,\n                params: { oneofKind: \"image\", image: imageParams },\n\n                ...extras,\n              }),\n\n              onStatus: [\n                {\n                  target: \"Asset\",\n                  reason: [],\n                  action: [\n                    Generation.StageAction.PASS,\n                    Generation.StageAction.RETURN,\n                  ],\n                },\n              ],\n            },\n\n            {\n              id: \"Asset\",\n\n              request: Generation.Request.create({\n                engineId: \"asset-service\",\n                params: {\n                  oneofKind: \"asset\",\n                  asset: {\n                    projectId: \"\",\n                    action: Generation.AssetAction.ASSET_PUT,\n                    use: Generation.AssetUse.OUTPUT,\n                  },\n                },\n              }),\n\n              onStatus: [\n                { action: [Generation.StageAction.RETURN], reason: [] },\n              ],\n            },\n          ],\n        });\n\n        let id: string | undefined;\n        const images: StableStudio.StableDiffusionImage[] = [];\n\n        for await (const response of request.responses) {\n          for (const artifact of response.artifacts) {\n            if (\n              artifact.type === Generation.ArtifactType.ARTIFACT_TEXT &&\n              artifact.finishReason === Generation.FinishReason.FILTER\n            )\n              throw new RpcError(\"Banned word detected!\", \"BANNED_TERM\");\n\n            if (\n              artifact.type === Generation.ArtifactType.ARTIFACT_IMAGE &&\n              artifact.data.oneofKind === \"binary\"\n            ) {\n              id = response.requestId;\n              images.push({\n                input: {\n                  ...input,\n                  seed: artifact.seed,\n                },\n                id: artifact.uuid,\n                blob: new Blob([artifact.data.binary], { type: \"image/png\" }),\n              });\n            }\n          }\n        }\n\n        return id ? { id, images } : undefined;\n      },\n\n      getStableDiffusionExistingImages: async (options) => {\n        const { limit, exclusiveStartImageID } = { limit: 25, ...options };\n        if (limit <= 0) return [];\n\n        const { response } = await project.queryAssets({\n          id: \"\",\n          limit: BigInt(limit),\n          startKey: exclusiveStartImageID,\n          use: [Project.ProjectAssetUse.OUTPUT],\n          sortDir: Project.ProjectSortDir.DESC,\n          tags: {},\n        });\n\n        type ImageWithBlobPromise = Omit<\n          StableStudio.StableDiffusionImage,\n          \"blob\"\n        > & { blob: Promise<Blob> };\n\n        type ImagesWithBlobPromises = Record<\n          StableStudio.ID,\n          Omit<StableStudio.StableDiffusionImages, \"images\"> & {\n            images: ImageWithBlobPromise[];\n          }\n        >;\n\n        const images = response.assets.reduce((previous, response) => {\n          if (\n            !response.request ||\n            response.request.params.oneofKind !== \"image\"\n          )\n            return previous;\n\n          const prompts = response.request.prompt.reduce((prompts, prompt) => {\n            if (\n              prompt.prompt.oneofKind !== \"artifact\" ||\n              prompt.prompt.artifact.data.oneofKind !== \"text\"\n            )\n              return prompts;\n\n            return [\n              ...prompts,\n              {\n                text: prompt.prompt.artifact.data.text,\n                weight: prompt.parameters?.weight ?? 1,\n              },\n            ];\n          }, [] as StableStudio.StableDiffusionPrompt[]);\n\n          if (prompts.length === 0) return previous;\n\n          const id = response.request.requestId.split(\":\")[0];\n          if (!id) return previous;\n\n          const imageID = response.id;\n          const createdAt = new Date(Number(response.createdAt) * 1000);\n\n          const model = response.request.engineId;\n          const style = parseExtras(response.request.extras?.fields).$IPC\n            ?.preset;\n\n          const width = response.request.params.image.width\n            ? Number(response.request.params.image.width)\n            : undefined;\n\n          const height = response.request.params.image.height\n            ? Number(response.request.params.image.height)\n            : undefined;\n\n          const cfgScale = response.request.params.image.parameters.reduce(\n            (_, parameters) =>\n              parameters.sampler?.cfgScale\n                ? Number(parameters.sampler.cfgScale)\n                : undefined,\n            undefined as number | undefined\n          );\n\n          const steps = response.request.params.image.steps\n            ? Number(response.request.params.image.steps)\n            : undefined;\n\n          const seed = response.request.params.image.seed[0]\n            ? Number(response.request.params.image.seed[0])\n            : undefined;\n\n          const input: StableStudio.StableDiffusionInput = {\n            prompts,\n\n            model,\n            style,\n\n            width,\n            height,\n\n            cfgScale,\n            steps,\n            seed,\n          };\n\n          const src = response.uri\n            ?.replace(\n              \"https://object.lga1.coreweave.com/stability-staging-assets\",\n              \"https://staging-cdn.stability.ai/assets\"\n            )\n            ?.replace(\n              \"https://object.lga1.coreweave.com/stability-assets\",\n              \"https://cdn.stability.ai/assets\"\n            );\n\n          const image = {\n            id: imageID,\n            createdAt,\n            input,\n            blob: fetch(src).then((response) => response.blob()),\n          };\n\n          return {\n            ...previous,\n            [id]: {\n              ...previous[id],\n              ...(exclusiveStartImageID === imageID && {\n                exclusiveStartImageID: imageID,\n              }),\n\n              images: [...(previous[id]?.images ?? []), image],\n              id: id,\n            },\n          };\n        }, {} as ImagesWithBlobPromises);\n\n        return Promise.all(\n          Object.values(images).map(async ({ id, images }) => ({\n            id,\n            images: await Promise.all(\n              images?.map(async ({ blob, ...image }) => ({\n                ...image,\n                blob: await blob,\n              }))\n            ),\n            exclusiveStartImageID: images?.[images.length - 1]?.id,\n          }))\n        );\n      },\n\n      getStableDiffusionModels: async () => {\n        const request = await engines.listEngines({});\n        const allEngines = await request.response.engine;\n        return allEngines.filter((engine) => engine.type === 1 && engine.ready);\n      },\n\n      deleteStableDiffusionImages: async (options) => {\n        const imageIDs = options?.imageIDs;\n        imageIDs &&\n          (await project.deleteAssets({ id: \"\", assetIds: imageIDs }));\n      },\n\n      getStatus: () => ({\n        indicator: \"success\",\n        text: \"Ready\",\n      }),\n    };\n  };\n\n  return {\n    ...functionsWhichNeedAPIKey(\n      localStorage.getItem(\"stability-apiKey\") ?? undefined\n    ),\n\n    getStableDiffusionSamplers: () => [\n      { id: \"0\", name: \"DDIM\" },\n      { id: \"1\", name: \"DDPM\" },\n      { id: \"2\", name: \"K Euler\" },\n      { id: \"3\", name: \"K Euler Ancestral\" },\n      { id: \"4\", name: \"K Heun\" },\n      { id: \"5\", name: \"K DPM 2\" },\n      { id: \"6\", name: \"K DPM 2 Ancestral\" },\n      { id: \"7\", name: \"K LMS\" },\n      { id: \"8\", name: \"K DPM++ 2S Ancestral\" },\n      { id: \"9\", name: \"K DPM++ 2M\" },\n      { id: \"10\", name: \"K DPM++ SDE\" },\n    ],\n\n    getStableDiffusionStyles: () => [\n      {\n        id: \"enhance\",\n        name: \"Enhance\",\n        image: \"https://dreamstudio.ai/presets/enhance.png\",\n      },\n      {\n        id: \"anime\",\n        name: \"Anime\",\n        image: \"https://dreamstudio.ai/presets/anime.png\",\n      },\n      {\n        id: \"photographic\",\n        name: \"Photographic\",\n        image: \"https://dreamstudio.ai/presets/photographic.png\",\n      },\n      {\n        id: \"digital-art\",\n        name: \"Digital art\",\n        image: \"https://dreamstudio.ai/presets/digital-art.png\",\n      },\n      {\n        id: \"comic-book\",\n        name: \"Comic book\",\n        image: \"https://dreamstudio.ai/presets/comic-book.png\",\n      },\n      {\n        id: \"fantasy-art\",\n        name: \"Fantasy art\",\n        image: \"https://dreamstudio.ai/presets/fantasy-art.png\",\n      },\n      {\n        id: \"analog-film\",\n        name: \"Analog film\",\n        image: \"https://dreamstudio.ai/presets/analog-film.png\",\n      },\n      {\n        id: \"neon-punk\",\n        name: \"Neon punk\",\n        image: \"https://dreamstudio.ai/presets/neon-punk.png\",\n      },\n      {\n        id: \"isometric\",\n        name: \"Isometric\",\n        image: \"https://dreamstudio.ai/presets/isometric.png\",\n      },\n      {\n        id: \"low-poly\",\n        name: \"Low poly\",\n        image: \"https://dreamstudio.ai/presets/low-poly.png\",\n      },\n      {\n        id: \"origami\",\n        name: \"Origami\",\n        image: \"https://dreamstudio.ai/presets/origami.png\",\n      },\n      {\n        id: \"line-art\",\n        name: \"Line art\",\n        image: \"https://dreamstudio.ai/presets/line-art.png\",\n      },\n      {\n        id: \"modeling-compound\",\n        name: \"Craft clay\",\n        image: \"https://dreamstudio.ai/presets/modeling-compound.png\",\n      },\n      {\n        id: \"cinematic\",\n        name: \"Cinematic\",\n        image: \"https://dreamstudio.ai/presets/cinematic.png\",\n      },\n      {\n        id: \"3d-model\",\n        name: \"3D model\",\n        image: \"https://dreamstudio.ai/presets/3d-model.png\",\n      },\n      {\n        id: \"pixel-art\",\n        name: \"Pixel art\",\n        image: \"https://dreamstudio.ai/presets/pixel-art.png\",\n      },\n    ],\n\n    getStableDiffusionDefaultCount,\n    getStableDiffusionDefaultInput: () =>\n      getStableDiffusionDefaultInputFromPrompt(\n        context.getStableDiffusionRandomPrompt()\n      ),\n\n    settings: {\n      apiKey: {\n        type: \"string\",\n\n        title: \"API key\",\n        description:\n          \"You can find your Stability API key at https://dreamstudio.ai/account\",\n\n        placeholder: \"sk-...\",\n        required: true,\n        password: true,\n\n        value: localStorage.getItem(\"stability-apiKey\") ?? \"\",\n      },\n    },\n\n    setSetting: (key, value) => {\n      set(({ settings }) => ({\n        settings: {\n          ...settings,\n          [key]: { ...settings[key], value: value as string },\n        },\n      }));\n\n      if (key === \"apiKey\" && typeof value === \"string\") {\n        localStorage.setItem(\"stability-apiKey\", value);\n        set((plugin) => ({ ...plugin, ...functionsWhichNeedAPIKey(value) }));\n      }\n    },\n\n    manifest: {\n      author: \"Stability AI\",\n      description: markdownDescription,\n      name: \"Stability AI\",\n      license: \"MIT\",\n      link: \"https://stability.ai\",\n      version: \"0.0.0\",\n      icon: \"https://stability.ai/favicon.ico\",\n    },\n  };\n});\n\nfunction parseExtras(extras: any): any | undefined {\n  if (!extras) return undefined;\n\n  if (extras.kind?.oneofKind === \"structValue\") {\n    return parseExtras(extras.kind.structValue.fields);\n  } else if (extras.kind?.oneofKind === \"listValue\") {\n    return extras.listValue.values.map(parseExtras);\n  } else if (extras.kind?.oneofKind === \"numberValue\") {\n    return Number(extras.kind.numberValue);\n  } else if (extras.kind?.oneofKind === \"stringValue\") {\n    return extras.kind.stringValue;\n  } else if (extras.kind?.oneofKind === \"boolValue\") {\n    return extras.kind.boolValue;\n  } else if (extras.kind?.oneofKind === undefined) {\n    return {\n      ...Object.keys(extras).reduce((previous, key) => {\n        return { ...previous, [key]: parseExtras(extras[key]) };\n      }, {}),\n    };\n  }\n\n  return undefined;\n}\n\nconst markdownDescription = `\n# Welcome to StableStudio!\n\n## [📖 README](https://github.com/Stability-AI/StableStudio) · [🎮 Discord](https://discord.com/channels/1002292111942635562/1108055793674227782) · [🌈 DreamStudio](https://dreamstudio.ai) · [💬 Discussion](https://github.com/Stability-AI/StableStudio/discussions)\n\n# Setup\n\nTo get started, you'll need to sign up for a [DreamStudio](https://dreamstudio.ai) account.\n\nOnce you're logged in, head to the [account page](https://dreamstudio.ai/account).\n\nYou should see a section called \\`API keys\\`...\n![](/media/api_keys_screenshot.png)\n\nIf you don't already have a key, you can create one via the plus button...\n![](/media/create_api_key_screenshot.png)\n\nYou can copy your API key by clicking the copy button...\n![](/media/copy_api_key_screenshot.png)\n\nYou'll be asked to accept the terms of service.\n\nNow, paste the key into the field below...\n\nThe plugin status should change to \\`Ready\\` once everything is working.\n` as const;\n"
  },
  {
    "path": "packages/stablestudio-plugin-stability/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"include\": [\"src/**/*\"],\n  \"exclude\": [\"node_modules\"],\n  \"compilerOptions\": {\n    \"emitDeclarationOnly\": true,\n    \"declaration\": true,\n    \"noUncheckedIndexedAccess\": false,\n\n    \"outDir\": \"./lib\",\n    \"baseUrl\": \"./\",\n    \"paths\": {\n      \"~/*\": [\"./src/*\"]\n    },\n\n    \"plugins\": [\n      { \"transform\": \"typescript-transform-paths\" },\n      { \"transform\": \"typescript-transform-paths\", \"afterDeclarations\": true }\n    ]\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-webgpu/.eslintrc.json",
    "content": "{ \"extends\": [\"../../.eslintrc.json\"] }\n"
  },
  {
    "path": "packages/stablestudio-plugin-webgpu/.gitignore",
    "content": "lib\n"
  },
  {
    "path": "packages/stablestudio-plugin-webgpu/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2023 Stability AI\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": "packages/stablestudio-plugin-webgpu/package.json",
    "content": "{\n  \"name\": \"@stability/stablestudio-plugin-webgpu\",\n  \"version\": \"0.0.0\",\n  \"license\": \"MIT\",\n  \"main\": \"./lib/index.js\",\n  \"types\": \"./lib/index.d.ts\",\n  \"files\": [\n    \"lib\"\n  ],\n  \"scripts\": {\n    \"clean\": \"rimraf lib && rimraf node_modules\",\n    \"build:types\": \"ttsc --project tsconfig.json\",\n    \"build:javascript\": \"tsx scripts/Build.ts\",\n    \"build\": \"yarn build:types && yarn build:javascript\",\n    \"dev\": \"nodemon --watch src --ext ts,tsx,json --exec \\\"yarn build\\\"\"\n  },\n  \"dependencies\": {\n    \"@stability/stablestudio-plugin\": \"workspace:^\"\n  },\n  \"devDependencies\": {\n    \"@typescript-eslint/eslint-plugin\": \"^5.33.1\",\n    \"@typescript-eslint/parser\": \"^5.33.1\",\n    \"eslint\": \"8.22.0\",\n    \"eslint-config-prettier\": \"^8.5.0\",\n    \"eslint-plugin-import\": \"^2.26.0\",\n    \"eslint-plugin-markdown\": \"^3.0.0\",\n    \"eslint-plugin-prettier\": \"^4.2.1\",\n    \"eslint-plugin-react\": \"^7.30.1\",\n    \"eslint-plugin-react-hooks\": \"^4.6.0\",\n    \"nodemon\": \"^2.0.20\",\n    \"prettier\": \"^2.7.1\",\n    \"rimraf\": \"^3.0.2\",\n    \"ts-node\": \"^10.9.1\",\n    \"tsx\": \"^3.12.1\",\n    \"ttypescript\": \"^1.5.13\",\n    \"typescript\": \"4.8.4\",\n    \"typescript-transform-paths\": \"^3.4.4\"\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-webgpu/scripts/Build.ts",
    "content": "import * as ESBuild from \"esbuild\";\n\nconst main = async () => {\n  try {\n    await ESBuild.build({\n      entryPoints: [\"src/index.ts\"],\n      outdir: \"lib\",\n      bundle: true,\n      sourcemap: true,\n      minify: true,\n      splitting: true,\n      format: \"esm\",\n      target: [\"esnext\"],\n    });\n  } catch (error) {\n    console.error(error);\n    process.exit(1);\n  }\n};\n\nmain();\n"
  },
  {
    "path": "packages/stablestudio-plugin-webgpu/src/index.ts",
    "content": "import * as StableStudio from \"@stability/stablestudio-plugin\";\n\nexport const createPlugin = StableStudio.createPlugin(() => ({}));\n"
  },
  {
    "path": "packages/stablestudio-plugin-webgpu/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"include\": [\"src/**/*\"],\n  \"exclude\": [\"node_modules\"],\n  \"compilerOptions\": {\n    \"emitDeclarationOnly\": true,\n    \"declaration\": true,\n    \"noUncheckedIndexedAccess\": false,\n\n    \"outDir\": \"./lib\",\n    \"baseUrl\": \"./\",\n    \"paths\": {\n      \"~/*\": [\"./src/*\"]\n    },\n\n    \"plugins\": [\n      { \"transform\": \"typescript-transform-paths\" },\n      { \"transform\": \"typescript-transform-paths\", \"afterDeclarations\": true }\n    ]\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-webui/.eslintrc.json",
    "content": "{ \"extends\": [\"../../.eslintrc.json\"] }\n"
  },
  {
    "path": "packages/stablestudio-plugin-webui/.gitignore",
    "content": "lib\n"
  },
  {
    "path": "packages/stablestudio-plugin-webui/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2023 Stability AI\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": "packages/stablestudio-plugin-webui/README.md",
    "content": "<div align=\"center\">\n\n# 🔌 [`stable-diffusion-webui`](https://github.com/AUTOMATIC1111/stable-diffusion-webui) Plugin\n\n**🗺 Contents – [ℹ️ About](#about) · [⚙️ Usage](#usage) · [⭐️ Features](#features)**\n\n**[⬆️ Top-Level README](../../README.md)**\n\n![Electric1111](../../misc/Electric1111.png)\n\n</div>\n\n# <a id=\"about\" href=\"#about\">ℹ️ About</a>\n\nThis plugin enables StableStudio to run using [`stable-diffusion-webui`](https://github.com/AUTOMATIC1111/stable-diffusion-webui), which means you can generate images entirely on your own machine!\n\nThanks goes to [Terry Jia](https://github.com/jtydhr88) for the original work on this plugin.\n\n# <a id=\"usage\" href=\"#usage\">⚙️ Usage</a>\n\n1. First, you'll need to configure your local installation of `stable-diffusion-webui` to run without the UI and with CORS enabled.\n\n   **Windows**\n\n   Edit the command line arguments within `webui-user.bat`:\n\n   ```\n   set COMMANDLINE_ARGS=--nowebui --cors-allow-origins=http://localhost:3000\n   ```\n\n   **Mac**\n\n   Edit the command line arguments within `webui-macos-env.sh`:\n\n   ```\n   export COMMANDLINE_ARGS=\"--nowebui --cors-allow-origins=http://localhost:3000\"\n   ```\n\n2. Start `stable-diffusion-webui` and look for `INFO: Uvicorn running on http://127.0.0.1:7861`.\n\n   You can make sure everything is running correctly by checking to see if [`http://127.0.0.1:7861/docs`](http://127.0.0.1:7861/docs) displays API documentation.\n\n3. Within your installation of StableStudio, run `yarn dev:use-webui-plugin`.\n\n   _**That's it!**_ 🎉 You should now be able to generate images using your local machine.\n\n## <a id=\"image-history\" href=\"#image-history\">💾 Image History</a>\n\nTo persist your image history, you'll need to install the [`sd-webui-StableStudio`](https://github.com/jtydhr88/sd-webui-StableStudio) extension for `stable-diffusion-webui`.\n\n> 🛑 Be wary installing third-party extensions for `stable-diffusion-webui`, it's always a good idea to check before running untrusted code.\n\n# <a id=\"features\" href=\"#features\">⭐️ Features</a>\n\nMissing something? Please [let us know](https://github.com/Stability-AI/StableStudio/issues/new/choose)!\n\n- [x] Text-to-image\n- [x] Image-to-image\n- [x] Basic features (prompt, negative prompt, steps, batch size, image size)\n- [x] Model selection\n- [x] Sampler selection\n- [x] Masking, in-painting, and out-painting\n- [x] Settings storage\n- [x] Accurate plugin status\n- [x] [Loading existing images](\"#image-history)\n- [x] Upscaling\n- [ ] Lora support\n"
  },
  {
    "path": "packages/stablestudio-plugin-webui/package.json",
    "content": "{\n  \"name\": \"@stability/stablestudio-plugin-webui\",\n  \"version\": \"0.0.0\",\n  \"license\": \"MIT\",\n  \"main\": \"./lib/index.js\",\n  \"types\": \"./lib/index.d.ts\",\n  \"files\": [\n    \"lib\"\n  ],\n  \"scripts\": {\n    \"clean\": \"rimraf lib && rimraf node_modules\",\n    \"build:types\": \"ttsc --project tsconfig.json\",\n    \"build:javascript\": \"tsx scripts/Build.ts\",\n    \"build\": \"yarn build:types && yarn build:javascript\",\n    \"dev\": \"nodemon --watch src --ext ts,tsx,json --exec \\\"yarn build\\\"\"\n  },\n  \"dependencies\": {\n    \"@stability/stablestudio-plugin\": \"workspace:^\"\n  },\n  \"devDependencies\": {\n    \"@typescript-eslint/eslint-plugin\": \"^5.33.1\",\n    \"@typescript-eslint/parser\": \"^5.33.1\",\n    \"eslint\": \"8.22.0\",\n    \"eslint-config-prettier\": \"^8.5.0\",\n    \"eslint-plugin-import\": \"^2.26.0\",\n    \"eslint-plugin-markdown\": \"^3.0.0\",\n    \"eslint-plugin-prettier\": \"^4.2.1\",\n    \"eslint-plugin-react\": \"^7.30.1\",\n    \"eslint-plugin-react-hooks\": \"^4.6.0\",\n    \"nodemon\": \"^2.0.20\",\n    \"prettier\": \"^2.7.1\",\n    \"rimraf\": \"^3.0.2\",\n    \"ts-node\": \"^10.9.1\",\n    \"tsx\": \"^3.12.1\",\n    \"ttypescript\": \"^1.5.13\",\n    \"typescript\": \"4.8.4\",\n    \"typescript-transform-paths\": \"^3.4.4\"\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-webui/scripts/Build.ts",
    "content": "import * as ESBuild from \"esbuild\";\n\nconst main = async () => {\n  try {\n    await ESBuild.build({\n      entryPoints: [\"src/index.ts\"],\n      outdir: \"lib\",\n      bundle: true,\n      sourcemap: true,\n      minify: true,\n      splitting: true,\n      format: \"esm\",\n      target: [\"esnext\"],\n    });\n  } catch (error) {\n    console.error(error);\n    process.exit(1);\n  }\n};\n\nmain();\n"
  },
  {
    "path": "packages/stablestudio-plugin-webui/src/Utilities.ts",
    "content": "import { StableDiffusionInput } from \"@stability/stablestudio-plugin\";\n\nexport function base64ToBlob(base64: string, contentType = \"\"): Promise<Blob> {\n  return fetch(`data:${contentType};base64,${base64}`).then((res) =>\n    res.blob()\n  );\n}\n\nexport function blobToBase64(blob: Blob): Promise<string> {\n  return new Promise((resolve, reject) => {\n    const reader = new FileReader();\n\n    reader.onloadend = () => resolve(reader.result as string);\n    reader.onerror = reject;\n\n    reader.readAsDataURL(blob);\n  });\n}\n\nexport async function fetchOptions(baseUrl: string | undefined) {\n  const optionsResponse = await fetch(`${baseUrl}/sdapi/v1/options`, {\n    method: \"GET\",\n    headers: {\n      \"Content-Type\": \"application/json\",\n    },\n  });\n\n  return await optionsResponse.json();\n}\n\nexport async function setOptions(baseUrl: string | undefined, options: any) {\n  const optionsResponse = await fetch(`${baseUrl}/sdapi/v1/options`, {\n    method: \"POST\",\n    headers: {\n      \"Content-Type\": \"application/json\",\n    },\n    body: JSON.stringify(options),\n  });\n\n  return await optionsResponse.json();\n}\n\nexport async function getImageInfo(\n  baseUrl: string | null,\n  base64image: any\n) {\n  const imageInfoResponse = await fetch(`${baseUrl}/sdapi/v1/png-info`, {\n    method: \"POST\",\n    headers: {\n      \"Content-Type\": \"application/json\",\n    },\n    body: JSON.stringify({ image: base64image }),\n  });\n\n  const imageInfoJson = await imageInfoResponse.json();\n\n  const info = imageInfoJson.info.split(\"\\n\");\n\n  const data: any = {};\n\n  if (info.length === 0) {\n    return data;\n  }\n\n  data.prompt = info[0];\n\n  let detailIndex = 1;\n\n  if (info.length === 3) {\n    data.nagtivePrompt = info[1].split(\":\")[1].trim();\n\n    detailIndex = 2;\n  }\n\n  const details = info[detailIndex].split(\",\");\n\n  details.map((detail: any) => {\n    const detailInfo = detail.trim().split(\":\");\n\n    data[detailInfo[0]] = detailInfo[1].trim();\n  });\n\n  return data;\n}\n\nexport async function testForHistoryPlugin(webuiHostUrl: string) {\n  // timeout after 1 second\n  const finished = Promise.race([\n    fetch(`${webuiHostUrl}/StableStudio/get-generated-images`, {\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n      },\n      body: JSON.stringify({\n        limit: 1,\n      }),\n    }),\n    new Promise((_, reject) =>\n      setTimeout(() => reject(new Error(\"Request timed out\")), 1000)\n    ),\n  ]);\n\n  try {\n    await finished;\n    return (finished as any).ok;\n  } catch (error) {\n    return false;\n  }\n}\n\nexport async function constructPayload(\n  options: {\n    input?: StableDiffusionInput | undefined;\n    count?: number | undefined;\n  },\n  isUpscale = false,\n  upscaler: string | undefined\n) {\n  const { sampler, prompts, initialImage, maskImage, width, height, steps } =\n    options?.input ?? {};\n\n  // Construct payload\n  const data: any = {\n    seed: options?.input?.seed === 0 ? -1 : options?.input?.seed,\n    cfgScale: options?.input?.cfgScale ?? 7,\n  };\n\n  if (isUpscale) {\n    /*\n      Upscaling values\n    */\n\n    data.upscaling_resize_w = width ?? 512;\n    data.upscaling_resize_h = height ?? 512;\n    data.upscaler_1 = upscaler;\n  } else {\n    /*\n      regular image generation values\n    */\n\n    data.width = width ?? 512;\n    data.height = height ?? 512;\n\n    data.sampler_name = sampler?.name ?? \"\";\n    data.sampler_index = sampler?.name ?? \"\";\n\n    data.prompt =\n      prompts?.find((p) => (p.text && (p.weight ?? 0) > 0) ?? 0 > 0)?.text ??\n      \"\";\n    data.negative_prompt =\n      prompts?.find((p) => (p.text && (p.weight ?? 0) < 0) ?? 0 < 0)?.text ??\n      \"\";\n\n    data.steps = steps ?? 20;\n    data.batch_size = options?.count;\n    data.save_images = true;\n  }\n\n  if (initialImage?.weight && !isUpscale) {\n    data.denoising_strength = 1 - initialImage.weight;\n  }\n\n  if (initialImage?.blob) {\n    const initImgB64 = await blobToBase64(initialImage?.blob);\n\n    if (isUpscale) {\n      data.image = initImgB64.split(\",\")[1];\n    } else {\n      data.init_images = [initImgB64.split(\",\")[1]];\n    }\n  }\n\n  if (maskImage?.blob) {\n    const maskImgB64 = await blobToBase64(maskImage?.blob);\n\n    data.mask = maskImgB64.split(\",\")[1];\n\n    data.inpainting_mask_invert = 1; // Mask mode\n    data.inpainting_fill = 1; // Masked content\n    data.inpaint_full_res = false; // Inpaint area\n  }\n\n  return data;\n}\n"
  },
  {
    "path": "packages/stablestudio-plugin-webui/src/index.ts",
    "content": "import * as StableStudio from \"@stability/stablestudio-plugin\";\nimport { StableDiffusionImage } from \"@stability/stablestudio-plugin\";\n\nimport {\n  base64ToBlob,\n  constructPayload,\n  fetchOptions,\n  getImageInfo,\n  setOptions,\n  testForHistoryPlugin,\n} from \"./Utilities\";\n\nconst manifest = {\n  name: \"stable-diffusion-webui\",\n  author: \"Terry Jia\",\n  link: \"https://github.com/jtydhr88\",\n  icon: `${window.location.origin}/DummyImage.png`,\n  version: \"0.0.0\",\n  license: \"MIT\",\n  description:\n    \"This plugin uses [`stable-diffusion-webui`](https://github.com/AUTOMATIC1111/stable-diffusion-webui) as its back-end for inference\",\n};\n\nconst webuiUpscalers = [\n  {\n    label: \"None\",\n    value: \"None\",\n  },\n  {\n    label: \"Lanczos\",\n    value: \"Lanczos\",\n  },\n  {\n    label: \"Nearest\",\n    value: \"Nearest\",\n  },\n  {\n    label: \"ESRGAN_4x\",\n    value: \"ESRGAN_4x\",\n  },\n  {\n    label: \"LDSR\",\n    value: \"LDSR\",\n  },\n  {\n    label: \"R-ESRGAN 4x+\",\n    value: \"R-ESRGAN 4x+\",\n  },\n  {\n    label: \"R-ESRGAN 4x+ Anime6B\",\n    value: \"R-ESRGAN 4x+ Anime6B\",\n  },\n  {\n    label: \"ScuNET GAN\",\n    value: \"ScuNET GAN\",\n  },\n  {\n    label: \"ScuNET PSNR\",\n    value: \"ScuNET PSNR\",\n  },\n  {\n    label: \"SwinIR_4x\",\n    value: \"SwinIR_4x\",\n  },\n];\n\nconst getNumber = (strValue: string | null, defaultValue: number) => {\n  let retValue = defaultValue;\n\n  if (strValue) {\n    retValue = Number(strValue);\n  }\n\n  return retValue;\n};\n\nconst getStableDiffusionDefaultCount = () => 4;\nexport const createPlugin = StableStudio.createPlugin<{\n  settings: {\n    baseUrl: StableStudio.PluginSettingString;\n    upscaler: StableStudio.PluginSettingString;\n    historyImagesCount: StableStudio.PluginSettingNumber;\n  };\n}>(({ set, get }) => {\n  const webuiLoad = (\n    webuiHostUrl?: string\n  ): Pick<\n    StableStudio.Plugin,\n    | \"createStableDiffusionImages\"\n    | \"getStatus\"\n    | \"getStableDiffusionModels\"\n    | \"getStableDiffusionSamplers\"\n    | \"getStableDiffusionDefaultCount\"\n    | \"getStableDiffusionDefaultInput\"\n    | \"getStableDiffusionExistingImages\"\n  > => {\n\n    return {\n      createStableDiffusionImages: async (options) => {\n        if (!options) {\n          throw new Error(\"options is required\");\n        }\n\n        // fetch the current webui options (model/sampler/etc)\n        const webUIOptions = await fetchOptions(webuiHostUrl);\n\n        const { model, sampler, initialImage } = options?.input ?? {};\n        options.count = options?.count ?? getStableDiffusionDefaultCount();\n\n        // quickly save the sampler and model name to local storage\n        if (sampler?.name) {\n          localStorage.setItem(\"webui-saved-sampler\", sampler.name);\n        }\n\n        if (model) {\n          localStorage.setItem(\"webui-saved-model\", model);\n        }\n\n        // little hacky until StableStudio is better with upscaling\n        const isUpscale =\n          options?.input?.initialImage?.weight === 1 &&\n          model === \"esrgan-v1-x2plus\";\n\n        // WebUI doesn't have the right model loaded, switch the model\n        if (model && model !== webUIOptions.sd_model_checkpoint && !isUpscale) {\n          localStorage.setItem(\"webui-saved-model\", model);\n          const modelResponse = await setOptions(webuiHostUrl, {\n            sd_model_checkpoint: model,\n          });\n\n          if (modelResponse.ok) {\n            console.log(\"applied model\");\n          }\n        }\n\n        // Construct payload for webui\n        const data = await constructPayload(\n          options,\n          isUpscale,\n          get().settings.upscaler.value\n        );\n\n        // Send payload to webui\n        const response = await fetch(\n          initialImage\n            ? isUpscale\n              ? `${webuiHostUrl}/sdapi/v1/extra-single-image`\n              : `${webuiHostUrl}/sdapi/v1/img2img`\n            : `${webuiHostUrl}/sdapi/v1/txt2img`,\n          {\n            method: \"POST\",\n            headers: {\n              \"Content-Type\": \"application/json\",\n            },\n            body: JSON.stringify(data),\n          }\n        );\n\n        const responseData = await response.json();\n\n        const images = [];\n        const createdAt = new Date();\n\n        if (isUpscale) {\n          // Upscaling only returns one image\n          const blob = await base64ToBlob(responseData.image, \"image/jpeg\");\n\n          const image = {\n            id: `${Math.random() * 10000000}`,\n            createdAt: createdAt,\n            blob: blob,\n            input: {\n              model: model ?? \"\",\n            },\n          };\n\n          images.push(image);\n        } else {\n          // Image generation returns an array of images\n          const startIndex =\n            responseData.images.length > data.batch_size ? 1 : 0;\n\n          for (let i = startIndex; i < responseData.images.length; i++) {\n            const blob = await base64ToBlob(\n              responseData.images[i],\n              \"image/jpeg\"\n            );\n\n            const image: StableDiffusionImage = {\n              id: `${Math.random() * 10000000}`,\n              createdAt,\n              blob,\n              input: {\n                prompts: options?.input?.prompts ?? [],\n                steps: options?.input?.steps ?? 0,\n                seed: responseData.images[i].seed,\n                model: model ?? \"\",\n                width: options?.input?.width ?? 512,\n                height: options?.input?.height ?? 512,\n                cfgScale: options?.input?.cfgScale ?? 7,\n                sampler: sampler ?? { id: \"\", name: \"\" },\n              },\n            };\n\n            images.push(image);\n          }\n        }\n\n        return {\n          id: `${Math.random() * 10000000}`,\n          images: images,\n        };\n      },\n\n      getStableDiffusionModels: async () => {\n        const response = await fetch(`${webuiHostUrl}/sdapi/v1/sd-models`);\n        const responseData = await response.json();\n\n        return responseData.map((model: any) => ({\n          id: model.title,\n          name: model.model_name,\n        }));\n      },\n\n      getStatus: async () => {\n        const optionsResponse = await fetch(`${webuiHostUrl}/sdapi/v1/options`);\n        const hasWebuiHistoryPlugin = await testForHistoryPlugin(\n          `${webuiHostUrl}`\n        );\n\n        return optionsResponse.ok\n          ? {\n              indicator: hasWebuiHistoryPlugin ? \"success\" : \"info\",\n              text: `Ready ${\n                hasWebuiHistoryPlugin ? \"with\" : \"without\"\n              } history plugin`,\n            }\n          : {\n              indicator: \"error\",\n              text: \"unable to connect webui on \" + webuiHostUrl,\n            };\n      },\n    };\n  };\n\n  let webuiHostUrl = localStorage.getItem(\"webui-host-url\");\n\n  if (!webuiHostUrl || webuiHostUrl === \"\") {\n    webuiHostUrl = \"http://127.0.0.1:7861\";\n  }\n\n  return {\n    ...webuiLoad(webuiHostUrl),\n\n    getStableDiffusionDefaultCount: () => 4,\n\n    getStableDiffusionDefaultInput: () => {\n      return {\n        steps: 20,\n        sampler: {\n          id: localStorage.getItem(\"webui-saved-sampler\") ?? \"\",\n          name: localStorage.getItem(\"webui-saved-sampler\") ?? \"\",\n        },\n        model: localStorage.getItem(\"webui-saved-model\") ?? \"\",\n      };\n    },\n\n    getStableDiffusionSamplers: async () => {\n      const response = await fetch(`${webuiHostUrl}/sdapi/v1/samplers`);\n      const responseData = await response.json();\n\n      return responseData.map((sampler: any) => ({\n        id: sampler.name,\n        name: sampler.name,\n      }));\n    },\n\n    getStableDiffusionExistingImages: async () => {\n      const existingImagesResponse = await fetch(\n        `${webuiHostUrl}/StableStudio/get-generated-images`,\n        {\n          method: \"POST\",\n          headers: {\n            \"Content-Type\": \"application/json\",\n          },\n          body: JSON.stringify({\n            limit: get().settings.historyImagesCount.value,\n          }),\n        }\n      );\n\n      if (!existingImagesResponse.ok) {\n        console.warn(\"unable to get existing data from webui\");\n      }\n\n      const responseData = await existingImagesResponse.json();\n\n      const images = [];\n\n      for (let i = 0; i < responseData.length; i++) {\n        const imageInfo = await getImageInfo(\n          webuiHostUrl,\n          responseData[i].content\n        );\n\n        const blob = await base64ToBlob(responseData[i].content, \"image/jpeg\");\n\n        const timestampInSeconds = responseData[i].create_date;\n        const timestampInMilliseconds = timestampInSeconds * 1000;\n        const createdAt = new Date(timestampInMilliseconds);\n\n        const stableDiffusionImage = {\n          id: responseData[i].image_name,\n          createdAt: createdAt,\n          blob: blob,\n          input: {\n            prompts: [\n              {\n                text: imageInfo[\"prompt\"],\n                weight: imageInfo[\"CFG scale\"],\n              },\n            ],\n            style: \"\",\n            steps: Number(imageInfo[\"Steps\"]) ?? -1,\n            seed: Number(imageInfo[\"Seed\"]) ?? -1,\n            model: imageInfo[\"Model\"] ?? \"\",\n            width: responseData[i].width,\n            height: responseData[i].height,\n          },\n        };\n\n        images.push(stableDiffusionImage);\n      }\n\n      return [\n        {\n          id: `${Math.random() * 10000000}`,\n          images: images,\n        },\n      ];\n    },\n\n    settings: {\n      baseUrl: {\n        type: \"string\",\n        title: \"Host URL\",\n        placeholder: \"http://127.0.0.1:7861\",\n        value: localStorage.getItem(\"webui-host-url\") ?? \"\",\n        description:\n          \"The URL of the `stable-diffusion-webui` host, usually http://127.0.0.1:7861\",\n      },\n\n      upscaler: {\n        type: \"string\",\n        title: \"Upscaler 1\",\n        options: webuiUpscalers,\n        value: localStorage.getItem(\"upscaler1\") ?? webuiUpscalers[0].value,\n        description:\n          \"Select the upscaler used when downloading images at more than 1x size\",\n      },\n\n      historyImagesCount: {\n        type: \"number\",\n        title: \"History image count\",\n        description: \"How many images should be fetched from local history?\",\n        min: 0,\n        max: 50,\n        step: 1,\n        variant: \"slider\",\n        value: getNumber(localStorage.getItem(\"historyImagesCount\"), 20),\n      },\n    },\n\n    setSetting: (key, value) => {\n      set(({ settings }) => ({\n        settings: {\n          ...settings,\n          [key]: { ...settings[key], value: value as string },\n        },\n      }));\n\n      if (key === \"baseUrl\" && typeof value === \"string\") {\n        localStorage.setItem(\"webui-host-url\", value);\n        set((plugin) => ({ ...plugin, ...webuiLoad(value) }));\n      } else if (key === \"upscaler\" && typeof value === \"string\") {\n        localStorage.setItem(\"upscaler1\", value);\n      } else if (key === \"historyImagesCount\" && typeof value === \"number\") {\n        localStorage.setItem(\"historyImagesCount\", value.toString());\n      }\n    },\n\n    manifest,\n  };\n});\n"
  },
  {
    "path": "packages/stablestudio-plugin-webui/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"include\": [\"src/**/*\"],\n  \"exclude\": [\"node_modules\"],\n  \"compilerOptions\": {\n    \"emitDeclarationOnly\": true,\n    \"declaration\": true,\n    \"noUncheckedIndexedAccess\": false,\n\n    \"outDir\": \"./lib\",\n    \"baseUrl\": \"./\",\n    \"paths\": {\n      \"~/*\": [\"./src/*\"]\n    },\n\n    \"plugins\": [\n      { \"transform\": \"typescript-transform-paths\" },\n      { \"transform\": \"typescript-transform-paths\", \"afterDeclarations\": true }\n    ]\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/.eslintrc.json",
    "content": "{ \"extends\": [\"../../.eslintrc.json\"] }\n"
  },
  {
    "path": "packages/stablestudio-ui/.gitignore",
    "content": "stats.html\n\ndist"
  },
  {
    "path": "packages/stablestudio-ui/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2023 Stability AI\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": "packages/stablestudio-ui/README.md",
    "content": "<div align=\"center\">\n\n# 🎨 UI\n\n**🗺 Contents – [ℹ️ About](#about) · [🦾 Technology](#technology) · [🏗 Structure](#structure) · [🤝 Conventions](#conventions)**\n\n**[⬆️ Top-Level README](../../README.md)**\n\n![ManStandingBeforeUI](../../misc/ManStandingBeforeUI.png)\n\n</div>\n\n# <a id=\"about\" href=\"#about\">ℹ️ About</a>\n\n_Welcome to the UI package for StableStudio!_\n\n**If you're ready to dive in and make changes, be sure to read about [technology](#technology), [structure](#structure), [conventions](#conventions), and [plugins](../stablestudio-plugin/README.md) first.**\n\n## 📜 History\n\nStableStudio represents a new direction for [DreamStudio](https://dreamstudio.ai) with renewed focus on open-source and community-driven development, but the project has an interesting backstory...\n\n- **Pre-Stable Diffusion Launch**\n\n  _Summer 2022_\n\n  [DreamStudio](https://dreamstudio.ai) began as passion-project by [@nin](https://twitter.com/nin_artificial) with the goal of creating an all-in-one creative studio for generative animations using Disco Diffusion. He and several collaborators wrote the original UI using Vue.js and a local Python back-end. With the imminent arrival of Stable Diffusion, focus shifted toward creating an easy-to-use interface for image generation so the release of the model would be as accessible as possible.\n\n- **Post-Stable Diffusion Launch**\n\n  _August 2022 – November 2022_\n\n  Following the release of Stable Diffusion, [DreamStudio](https://dreamstudio.ai) served as a vehicle for new models and features shipped by [Stability AI](http://stability.ai). This period saw the introduction of [in-painting](https://platform.stability.ai/docs/features/inpainting?tab=typescript), [out-painting](https://platform.stability.ai/docs/features/inpainting?tab=typescript), and [image-to-image](https://platform.stability.ai/docs/features/image-to-image?tab=typescript).\n\n- **React**\n\n  _December 2022 – April 2023_\n\n  In early December, work began on a new infinite-canvas version of the existing editor. Given the need to manage complicated state and side effects declaratively, the decision was made to switch the editor to React. Once a working editor MVP was finished, the opportunity was taken to rewrite the entire app while also shipping a re-imagined UX.\n\n- **StableStudio**\n\n  _Present – Future_\n\n  The breakneck speed of the Stable Diffusion community has proven distributing generative AI is better achieved through open-source development. We're hopeful StableStudio can serve as a hub for community collaboration and a home for exciting new features.\n\n# <a id=\"technology\" href=\"#technology\">🦾 Technology</a>\n\n![SorcererWithReact](../../misc/SorcererWithReact.png)\n\n- **[TypeScript](https://www.typescriptlang.org/)** – Type safety ftw!\n\n- **[Vite](https://vitejs.dev/)** – Bundler and live-development tool. You can see the full config in [`vite.config.ts`](./vite.config.ts)\n\n- **[React](https://reactjs.org/)** –  We're using React with modern hooks and functional components\n\n- **[Zustand](https://docs.pmnd.rs/zustand/getting-started/introduction)** –  Extremely fast and easy-to-use state management, it's powerful and tiny!\n\n- **[Tailwind](https://tailwindcss.com/)** – Our preferred method of styling components, the config is at [`tailwind.config.js`](./tailwind.config.cjs)\n\n- **[Emotion](https://emotion.sh/docs/introduction)** – For when we need to break free of Tailwind and write \"native CSS\"\n\n# <a id=\"structure\" href=\"#structure\">🏗 Structure</a>\n\n![CyberPyramid](../../misc/CyberPyramid.png)\n\n## 🧱 Domain-Driven Design\n\n**The most important aspect of this codebase's structure is adherence to domain-driven design.**\n\nThis means we organize code around the _concepts_ rather than technical implementation details.\n\nFor example, if we identify a _concept_, let's say `User`, we would create a `User` \"domain.\"\n\nThe `User` domain would _own_ all user-related code, including visual representation, state, hooks, etc.\n\nMost domains are _composed_ of smaller domains; a hypothetical `User` domain might be composed of `User.State`, `User.Avatar`, `User.Preferences`, `User.Details`, etc.\n\n_This structure is fractal in nature,_ meaning `User.Details` might itself be composed of `User.Details.SocialMedia`, `User.Details.ContactInformation`, `User.Details.UpdateRequest`, etc.\n\n### \\*️⃣ Domain Syntax\n\nHere's an example of how we might represent a `User` domain in code...\n\n```tsx\nimport { Avatar } from \"./Avatar\";\nimport { Preferences } from \"./Preferences\";\nimport { Details } from \"./Details\";\n\nexport type User = {\n  id: ID;\n  avatar?: User.Avatar;\n  preferences?: User.Preferences;\n  details?: User.Details;\n};\n\nexport function User({ id }: User.Props) {\n  const user = User.use(id);\n  return (\n    <>\n      <User.Avatar avatar={avatar} />\n      <User.Preferences preferences={preferences} />\n      <User.Details details={details} />\n    </>\n  );\n}\n\nexport declare namespace User {\n  export { Avatar, Preferences, Details };\n}\n\nexport namespace User {\n  User.Avatar = Avatar;\n  User.Preferences = Preferences;\n  User.Details = Details;\n\n  export type Props = {\n    id?: ID;\n  };\n\n  export const use = (id: ID) => {\n    // Make an API call for the user or something\n  };\n}\n```\n\nThis syntax takes advantage of TypeScript's declaration merging feature to enable nice fluent-style APIs for domains...\n\n```tsx\nimport { User } from \"./User\";\n\n// You can use `User` as a type\n\nconst bob: User = { id: \"bob\" };\n\nfunction App(id: ID) {\n  // You can use `User` as a namespace\n\n  const user = User.use(id);\n  const userPreferences = User.Preferences.use(id);\n\n  // You can use `User` as a component\n\n  return (\n    <>\n      <User id={user.id} />\n      <User.Preferences id={user.id} />\n    </>\n  );\n}\n```\n\nHere is an example of a real domain ([`Editor.Camera`](./src/Editor/Camera/index.tsx)) you'll find in the app...\n\n```tsx\n// Owner of all things camera-related in the editor\nEditor.Camera;\n\n// Centers the camera in the editor\nEditor.Camera.Center;\n\n// The hand tool is used for panning around\nEditor.Camera.Hand;\n\n// For resetting the camera to the default view\nEditor.Camera.Reset;\n\n// Specifies keyboard shortcuts for camera actions\nEditor.Camera.Shortcuts;\n\n// Controls the zoom level of the camera and mouse wheel controls\nEditor.Camera.Zoom;\n```\n\nQuick note about the `export declare namespace User` syntax from the first example...\n\nThis is needed when a namespace exports a type.\n\nIt's an unfortunate bit of syntax which might [not be needed](https://github.com/microsoft/TypeScript/issues/39865) in the future.\n\nIf you want to discuss this further, please check out [this issue](https://github.com/Stability-AI/StableStudio/issues/7).\n\n### 📁 Directories and Files\n\n_Domains are usually correlated one-to-one with file/folder structure._\n\nFor example, the [`Editor.Camera`](./src/Editor/Camera/index.tsx) domain mentioned above is composed of the following files...\n\n```\n./src/Editor/Camera/\n├── Center.tsx\n├── Hand.tsx\n├── Reset.tsx\n├── Shortcut.tsx\n├── Zoom.tsx\n└── index.tsx\n```\n\nThis means if you see a domain like [`Generation.Image.Download`](./src/Generation/Image/Download/index.tsx), you can expect to find it at `./src/Generation/Image/Download`.\n\nAll root-level domains located at the top-level of the [`./src`](./src) folder and can be imported using the shorthand syntax...\n\n```ts\nimport { ExampleDomain } from \"~/ExampleDomain\";\n\nimport { ExampleDomain } from \"../../../../../ExampleDomain\";\n// ^ If you were deep in the folder tree, it would look like this without the `~` alias\n```\n\n### 📋 Structuring Tips\n\n- **Look for repeated references to a word or concept**\n\n  For example, if you're working in a `User` domain and find yourself using the word \"avatar\" a lot, you might want to create a `User.Avatar` domain\n\n- **Compound words are structuring hints**\n\n  Domains like `DeviceInformation` might be better represented as `Device.Information`.\n\n- **Plural domains are very important**\n\n  The singular [`Generation.Image.Input`](./src/Generation/Image/Input/index.tsx) domain owns everything related to the concept of what's being fed to an image generation, but [`Generation.Image.Inputs`](./src/Generation/Image/index.tsx) owns the state of all inputs as a collective.\n\n  Plural domains are usually exported at the same level as their singular counterparts, such as [`Editor.Dream`](./src/Editor/Dream/index.tsx) and [`Editor.Dreams`](./src/Editor/Dream/Dreams.tsx).\n\n### ⭐️ Important Domains\n\n- **[`App`](./src/App/index.tsx)** – Owner of app-level functionality such as the React root, sidebars, providers, etc.\n\n- **[`Generation.Image`](./src/Generation/Image/index.tsx)** – Likely the largest domain, owns all things related to image generation\n- **[`Generation.Image.Session`](./src/Generation/Image/Session/index.tsx)** – Domain which was poorly named and grew too large as a result, manages the active \"image generation session\"\n- **[`Editor`](./src/GlobalVariables/index.tsd)** – Home of all editor functionality\n- **[`Plugin`](./src/Plugin/index.ts)** – Owner of plugin setup and access, contains the important `Plugin.use` hook\n- **[`Theme`](./src/Theme/index.ts)** – Contains the StableStudio's design system and common components such as `Theme.Icon`, `Theme.Button`, etc.\n- **[`Shortcut`](./src/Shortcut/index.ts)** – Contains the StableStudio's keyboard shortcut system and menu\n- **[`GlobalState`](./src/GlobalState/index.ts)** – Mostly a pass-through wrapper around [Zustand](https://docs.pmnd.rs/zustand/getting-started/introduction)\n- <span id=\"global-variables\">**[`GlobalVariables`](./src/GlobalVariables/index.ts)**</span> – Extremely useful functions and types available across the StableStudio without needing any imports (`css`, `classes`, `useEffect`, etc.)\n\n# <a id=\"conventions\" href=\"#conventions\">🤝 Conventions</a>\n\n![RobotsHoldingHands](../../misc/RobotsHoldingHands.png)\n\n## 💅 Styles and CSS\n\nMost styling in StableStudio is implemented with [Tailwind CSS](https://tailwindcss.com/).\n\nThe [`Theme`](./src/Theme/index.ts) domain contains a bunch of useful pre-made components, make sure to check there first if you need something \"off-the-shelf.\"\n\nYou can use the [`classes`](#global-variables) function anywhere without imports if you need conditional styling or to break apart class names...\n\n```tsx\nfunction Example({\n  isEmphasized,\n  isDisabled,\n  children,\n}: PropsWithChildren<{\n  isEmphasized?: boolean;\n  isDisabled: boolean;\n}>) {\n  return (\n    <div\n      className={classes(\n        \"bg-gray-100\",\n        isEmphasized && \"bg-red-500 text-4xl font-bold\",\n        isDisabled && \"text-xs opacity-50\"\n      )}\n    >\n      {children}\n    </div>\n  );\n}\n```\n\nYou can always \"break glass\" and use raw CSS via the globally-available `css` function if you need to, but please try to avoid it...\n\n```tsx\nfunction Example() {\n  return (\n    <div\n      css={css`\n        ::-webkit-scrollbar {\n          display: none;\n        }\n      `}\n    >\n      Hello, World!\n    </div>\n  );\n}\n```\n\n## 🏛 State Management via [Zustand](https://docs.pmnd.rs/zustand/getting-started/introduction)\n\nStableStudio uses [Zustand](https://docs.pmnd.rs/zustand/getting-started/introduction) for state management, which is honestly super cool.\n\nIt's fast and small, you can read through the whole codebase in a few minutes.\n\nWe originally used [Recoil](https://recoiljs.org/) it couldn't handle \"hot\" paths nearly as well.\n\nWhenever you need globally-available state, you can use the [`GlobalState`](./src/GlobalState/index.ts) domain, which wraps Zustand...\n\n```tsx\nimport { GlobalState } from \"~/GlobalState\";\n\nfunction Count() {\n  const count = Count.use();\n  const setCount = Count.useSet();\n  return (\n    <div>\n      <button onClick={() => setCount(count + 1)}>Increment</button>\n      <span>{count}</span>\n    </div>\n  );\n}\n\nexport namespace Count {\n  export const use = State.use(({ count }) => count);\n  export const useSet = () =>\n    State.use(({ setCount }) => setCount, GlobalState.shallow);\n}\n\ntype State = {\n  count: number;\n  setCount: (count: number) => void;\n};\n\nnamespace State {\n  const store = GlobalState.create<State>((set) => ({\n    count: 0,\n    setCount: (count) => set({ count }),\n  }));\n\n  export const use = store;\n}\n```\n\nNotice how the `Count` domain exports `Count.use` and `Count.useSet` instead of exporting its state directly.\n\nThis allows us to change the state implementation without breaking any code that uses it.\n\nFinally, you can see `GlobalState.shallow` used to [limit rerenders](https://github.com/pmndrs/zustand#selecting-multiple-state-slices).\n"
  },
  {
    "path": "packages/stablestudio-ui/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>StableStudio</title>\n\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no, viewport-fit=cover\" />\n\n    <link rel=\"stylesheet\" href=\"./src/Theme/index.css\" />\n    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/favicon.svg\" />\n    <link\n      rel=\"preload\"\n      href=\"Inter.ttf\"\n      as=\"font\"\n      type=\"font/ttf\"\n      crossorigin\n    />\n  </head>\n  <body>\n    <div\n      id=\"tooltip-root\"\n      class=\"dark h-[100vh] w-[100vw] overflow-hidden text-white\"\n    ></div>\n    <div id=\"modal-root\" class=\"dark overflow-hidden text-white\"></div>\n    <div id=\"app\" class=\"dark\"></div>\n\n    <script type=\"module\" src=\"/src/index.tsx\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "packages/stablestudio-ui/package.json",
    "content": "{\n  \"name\": \"@stability/stablestudio-ui\",\n  \"version\": \"1.0.0\",\n  \"license\": \"MIT\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"clean\": \"rimraf dist && rimraf node_modules\",\n    \"lint\": \"eslint \\\"./src/**/*.{ts,tsx}\\\"\",\n    \"lint:fix\": \"yarn lint --fix\",\n    \"build:types\": \"tsc --noEmit\",\n    \"build\": \"yarn build:preview\",\n    \"build:preview\": \"yarn build:types && vite build --mode preview\",\n    \"build:production\": \"yarn build:types && vite build --mode production\",\n    \"dev:types\": \"tsc --noEmit --watch\",\n    \"dev\": \"vite\"\n  },\n  \"dependencies\": {\n    \"@emotion/css\": \"^11.10.5\",\n    \"@emotion/react\": \"^11.10.5\",\n    \"@emotion/styled\": \"^11.10.5\",\n    \"@react-hook/resize-observer\": \"^1.2.6\",\n    \"@reecelucas/react-use-hotkeys\": \"^2.0.0\",\n    \"@stability/stablestudio-plugin\": \"workspace:^\",\n    \"@stability/stablestudio-plugin-example\": \"workspace:^\",\n    \"@stability/stablestudio-plugin-stability\": \"workspace:^\",\n    \"@tanstack/react-query\": \"^4.22.0\",\n    \"@tanstack/react-query-devtools\": \"^4.22.0\",\n    \"@tanstack/react-virtual\": \"beta\",\n    \"buffer\": \"^6.0.3\",\n    \"date-fns\": \"^2.29.3\",\n    \"file-saver\": \"^2.0.5\",\n    \"flexsearch\": \"^0.7.31\",\n    \"framer-motion\": \"^8.5.0\",\n    \"idb-keyval\": \"^6.2.0\",\n    \"immer\": \"^9.0.18\",\n    \"jszip\": \"^3.10.1\",\n    \"konva\": \"^8.4.2\",\n    \"lodash.throttle\": \"^4.1.1\",\n    \"lucide-react\": \"^0.105.0\",\n    \"minisearch\": \"^6.0.0\",\n    \"notistack\": \"^3.0.0-alpha.11\",\n    \"query-string\": \"^8.1.0\",\n    \"react\": \"^18.2.0\",\n    \"react-dom\": \"^18.2.0\",\n    \"react-konva\": \"^18.2.3\",\n    \"react-konva-utils\": \"^0.3.1\",\n    \"react-markdown\": \"^8.0.7\",\n    \"react-router-dom\": \"^6.7.0\",\n    \"react-slider\": \"^2.0.4\",\n    \"react-syntax-highlighter\": \"^15.5.0\",\n    \"react-use\": \"^17.4.0\",\n    \"react-virtualized-auto-sizer\": \"^1.0.7\",\n    \"react-window\": \"^1.8.8\",\n    \"remark-custom-heading-id\": \"^1.0.0\",\n    \"remark-gfm\": \"^3.0.1\",\n    \"tailwind-merge\": \"^1.8.1\",\n    \"throttled-queue\": \"^2.1.4\",\n    \"tiny-invariant\": \"^1.3.1\",\n    \"ts-custom-error\": \"^3.3.1\",\n    \"unified\": \"^10.1.2\",\n    \"zundo\": \"beta\",\n    \"zustand\": \"^4.3.2\"\n  },\n  \"devDependencies\": {\n    \"@tailwindcss/typography\": \"^0.5.9\",\n    \"@types/file-saver\": \"^2.0.5\",\n    \"@types/lodash.throttle\": \"^4.1.7\",\n    \"@types/react\": \"^18.0.27\",\n    \"@types/react-dom\": \"^18.0.10\",\n    \"@types/react-slider\": \"^1.3.1\",\n    \"@types/react-syntax-highlighter\": \"^15.5.6\",\n    \"@types/react-virtualized-auto-sizer\": \"^1.0.1\",\n    \"@types/react-window\": \"^1.8.5\",\n    \"@typescript-eslint/eslint-plugin\": \"^5.48.2\",\n    \"@typescript-eslint/parser\": \"^5.48.2\",\n    \"@vitejs/plugin-react\": \"^3.0.1\",\n    \"autoprefixer\": \"^10.4.13\",\n    \"eslint\": \"8.32.0\",\n    \"eslint-config-prettier\": \"^8.6.0\",\n    \"eslint-plugin-import\": \"^2.27.5\",\n    \"eslint-plugin-markdown\": \"^3.0.0\",\n    \"eslint-plugin-prettier\": \"^4.2.1\",\n    \"eslint-plugin-react\": \"^7.32.1\",\n    \"eslint-plugin-react-hooks\": \"^4.6.0\",\n    \"postcss\": \"^8.4.21\",\n    \"prettier\": \"^2.8.3\",\n    \"prettier-plugin-tailwindcss\": \"^0.2.1\",\n    \"rimraf\": \"^4.1.1\",\n    \"rollup-plugin-visualizer\": \"^5.9.0\",\n    \"tailwindcss\": \"^3.2.4\",\n    \"tsx\": \"^3.12.2\",\n    \"typescript\": \"4.9.4\",\n    \"typescript-styled-plugin\": \"^0.18.2\",\n    \"vite\": \"^4.0.4\",\n    \"vite-tsconfig-paths\": \"^4.0.5\"\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/postcss.config.cjs",
    "content": "// This project includes code from `caniuse-lite` by Ben Briggs, available under a CC BY 4.0 license.\n// The original work can be found at the repository: https://github.com/browserslist/caniuse-lite.\n\nmodule.exports = {\n  plugins: {\n    tailwindcss: {},\n    autoprefixer: {},\n  },\n};\n"
  },
  {
    "path": "packages/stablestudio-ui/public/PluginWithManifest.js",
    "content": "var l = (t) => {\n    let e,\n      i = new Set(),\n      r = (o, u) => {\n        let s = typeof o == \"function\" ? o(e) : o;\n        if (!Object.is(s, e)) {\n          let g = e;\n          (e = u ?? typeof s != \"object\" ? s : Object.assign({}, e, s)),\n            i.forEach((p) => p(e, g));\n        }\n      },\n      a = () => e,\n      n = {\n        setState: r,\n        getState: a,\n        subscribe: (o) => (i.add(o), () => i.delete(o)),\n        destroy: () => {\n          (import.meta.env && import.meta.env.MODE) !== \"production\" &&\n            console.warn(\n              \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n            ),\n            i.clear();\n        },\n      };\n    return (e = t(r, a, n)), n;\n  },\n  d = (t) => (t ? l(t) : l),\n  c = (t) => (e) => d((i, r) => t({ set: i, get: r, context: e }));\nvar m = c(() => ({\n  manifest: {\n    name: \"Example Plugin\",\n    description: \"An example plugin for StableStudio\",\n    version: \"1.2.3\",\n    author: \"Bobby Joe\",\n    license: \"MIT\",\n    link: \"https://github.com\",\n    icon: \"https://place.dog/100/100\",\n  },\n  getStatus: () => ({\n    indicator: \"success\",\n    message: \"This plugin is working\",\n  }),\n  settings: {\n    exampleSetting: {\n      type: \"string\",\n      default: \"Hello, World!\",\n      placeholder: \"Example setting\",\n    },\n  },\n}));\nexport { m as createPlugin };\n//# sourceMappingURL=index.js.map\n"
  },
  {
    "path": "packages/stablestudio-ui/public/PluginWithoutManifest.js",
    "content": "var l = (t) => {\n    let e,\n      i = new Set(),\n      r = (o, u) => {\n        let s = typeof o == \"function\" ? o(e) : o;\n        if (!Object.is(s, e)) {\n          let g = e;\n          (e = u ?? typeof s != \"object\" ? s : Object.assign({}, e, s)),\n            i.forEach((p) => p(e, g));\n        }\n      },\n      a = () => e,\n      n = {\n        setState: r,\n        getState: a,\n        subscribe: (o) => (i.add(o), () => i.delete(o)),\n        destroy: () => {\n          (import.meta.env && import.meta.env.MODE) !== \"production\" &&\n            console.warn(\n              \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n            ),\n            i.clear();\n        },\n      };\n    return (e = t(r, a, n)), n;\n  },\n  d = (t) => (t ? l(t) : l),\n  c = (t) => (e) => d((i, r) => t({ set: i, get: r, context: e }));\nvar m = c(() => ({\n  // manifest: {\n  //   name: \"Example Plugin\",\n  //   description: \"An example plugin for StableStudio\",\n  //   version: \"1.2.3\",\n  //   author: \"Bobby Joe\",\n  //   license: \"MIT\",\n  //   link: \"https://github.com\",\n  //   icon: \"place.dog/100/100\",\n  // },\n  getStatus: () => ({\n    indicator: \"success\",\n    message: \"This plugin is working\",\n  }),\n  settings: {\n    exampleSetting: {\n      type: \"string\",\n      default: \"Hello, World!\",\n      placeholder: \"Example setting\",\n    },\n  },\n}));\nexport { m as createPlugin };\n//# sourceMappingURL=index.js.map\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/BottomBar/index.tsx",
    "content": "import { motion } from \"framer-motion\";\nimport { useLocation } from \"react-router-dom\";\nimport { useClickAway } from \"react-use\";\nimport { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport function BottomBar() {\n  const [open, setOpen] = useState(false);\n  const { input } = Generation.Image.Session.useCurrentInput();\n  const createDream = Generation.Image.Session.useCreateDream();\n  const tabRef = useRef<HTMLDivElement>(null);\n  const location = useLocation();\n  console.log(\"BottomBar\");\n\n  useClickAway(tabRef, () => setOpen(false));\n\n  if (!location.pathname.startsWith(\"/generate\")) return null;\n  return (\n    <motion.div\n      layoutId=\"bottom-bar-parent\"\n      className={classes(\n        \"fixed bottom-0 z-[100] flex max-h-screen min-h-0 w-screen flex-col rounded-t-xl border-t border-zinc-700/75 bg-zinc-900 sm:hidden\"\n      )}\n      ref={tabRef}\n    >\n      <div className=\"relative\">\n        <motion.div\n          layoutId=\"bottom-bar-open-button\"\n          layout=\"preserve-aspect\"\n          className=\"flex items-center justify-center pt-3 pb-1\"\n          onClick={() => setOpen(!open)}\n        >\n          <Theme.Icon.ChevronUp\n            className={classes(\"text-lg text-zinc-500\", open && \"rotate-180\")}\n          />\n        </motion.div>\n        {open && input && (\n          <motion.div\n            layoutId=\"bottom-bar\"\n            layout=\"preserve-aspect\"\n            className=\"flex max-h-[60vh] min-h-0 shrink grow-0 flex-col overflow-y-auto\"\n          >\n            <Generation.Image.Sidebar.Tab id={input.id} />\n          </motion.div>\n        )}\n        {input && (\n          <motion.div\n            layout=\"preserve-aspect\"\n            layoutId=\"bottom-bar-create-button\"\n            className=\"p-2\"\n          >\n            <Generation.Image.Create.Button\n              id={input.id}\n              onIdleClick={() => createDream()}\n              fullWidth\n            />\n          </motion.div>\n        )}\n      </div>\n    </motion.div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/Providers.tsx",
    "content": "import { Environment } from \"~/Environment\";\nimport { Remote } from \"~/Remote\";\nimport { Router } from \"~/Router\";\n\nexport function Providers({ children }: React.PropsWithChildren) {\n  return (\n    <Environment.Provider>\n      <Router.Provider>\n        <Remote.Provider>{children}</Remote.Provider>\n      </Router.Provider>\n    </Environment.Provider>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/Sidebar/Resizer.tsx",
    "content": "import { cx } from \"@emotion/css\";\nimport { App } from \"~/App\";\nimport { Editor } from \"~/Editor\";\nimport { Theme } from \"~/Theme\";\n\nexport type Resizer = {\n  width: number;\n  onChange?: (width: number) => void;\n};\n\nexport function Resizer({ position }: App.Sidebar.Props) {\n  const [resizing, setResizing] = useState(false);\n  const [sidebar, setSidebar] = App.Sidebar.use(position);\n  const isMobileDevice = Theme.useIsMobileDevice();\n  const resize = Editor.Canvas.useResize();\n\n  const toggleSidebar = useCallback(() => {\n    if (isMobileDevice) {\n      return setSidebar(({ visible }) => ({ visible: !visible }));\n    } else {\n      setSidebar(({ width }) => ({\n        width: width === 0 ? App.Sidebar.presetWidth() : 0,\n      }));\n    }\n  }, [isMobileDevice, setSidebar]);\n\n  useEffect(() => {\n    const onMouseUp = () => setResizing(false);\n    const onMouseMove = (event: MouseEvent) => {\n      if (!resizing) return;\n\n      event.preventDefault();\n      event.stopPropagation();\n      setSidebar({\n        width: clamp(\n          0,\n          position === \"left\"\n            ? event.clientX\n            : window.innerWidth - event.clientX,\n          600\n        ),\n      });\n      resize();\n    };\n\n    window.addEventListener(\"mousemove\", onMouseMove);\n    window.addEventListener(\"mouseup\", onMouseUp);\n\n    return () => {\n      window.removeEventListener(\"mousemove\", onMouseMove);\n      window.removeEventListener(\"mouseup\", onMouseUp);\n    };\n  }, [position, resize, resizing, setSidebar]);\n\n  return (\n    <div\n      onMouseDown={useCallback(\n        () => !isMobileDevice && setResizing(true),\n        [isMobileDevice, setResizing]\n      )}\n      style={{ [position]: \"100%\" }}\n      className={classes(\n        \"group absolute top-0 bottom-0 flex w-5 cursor-col-resize\",\n        position === \"right\" && \"justify-end\"\n      )}\n    >\n      <div\n        className={classes(\n          \"absolute p-2 duration-150 group-hover:opacity-100 sm:opacity-100 md:opacity-0\",\n          sidebar.width === 0 && \"opacity-muted\"\n        )}\n      >\n        <Theme.Button\n          className={cx(\"dark:bg-zinc-700\", isMobileDevice && \"h-10 w-16\")}\n          onClick={toggleSidebar}\n          icon={\n            position === \"left\" && sidebar.width > 0 && sidebar.visible\n              ? Theme.Icon.ChevronLeft\n              : Theme.Icon.ChevronRight\n          }\n        />\n      </div>\n      <div className=\"relative\">\n        <Line resizing={resizing} />\n        <Line resizing={resizing} className=\"w-1 blur-md\" />\n      </div>\n    </div>\n  );\n}\n\nfunction Line({ resizing, className }: Styleable & { resizing?: boolean }) {\n  return (\n    <div\n      className={classes(\n        \"bg-brand-500 absolute top-0 h-full w-0.5 -translate-x-1/2 opacity-0 duration-150 group-hover:opacity-70\",\n        resizing && \"opacity-100 group-hover:opacity-100\",\n        className\n      )}\n    />\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/Sidebar/Section.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\nexport function Section(props: Section.Props) {\n  const {\n    title,\n    children,\n    className: classNames,\n    collapsable,\n    defaultExpanded,\n    padding = Theme.Common.Size.preset(),\n    button,\n    icon,\n    divider = true,\n    onChange,\n  } = props;\n  const [expanded, setExpanded] = useState(!!defaultExpanded || !collapsable);\n\n  const className = useMemo(\n    () =>\n      typeof classNames === \"function\"\n        ? classNames({ ...props, expanded })\n        : classNames,\n    [classNames, props, expanded]\n  );\n\n  useEffect(() => {\n    if (!defaultExpanded) return;\n    setExpanded(defaultExpanded);\n  }, [defaultExpanded]);\n\n  const buttonProps = useMemo(\n    () => ({ testsdfsadfasdfs: true, transparent: true, className: \"p-0\" }),\n    []\n  );\n\n  const buttonRendered = useMemo(\n    () => (typeof button === \"function\" ? button(buttonProps) : button),\n    [buttonProps, button]\n  );\n\n  return (\n    <div\n      className={classes(\n        \"flex flex-col border-zinc-700 last-of-type:border-b-0\",\n        divider && \"border-b-1 border-b\",\n        className\n      )}\n    >\n      {title && (\n        <div className=\"flex items-center py-2 px-2\">\n          <Theme.Button\n            {...buttonProps}\n            className={classes(\n              buttonProps.className,\n              \"mr-auto\",\n              !collapsable &&\n                \"ml-1 cursor-default hover:text-white/80 dark:hover:text-white/80\"\n            )}\n            onClick={() => {\n              if (!collapsable) return;\n              setExpanded(!expanded);\n              onChange?.(!expanded);\n            }}\n            iconLeft={\n              icon\n                ? typeof icon === \"function\"\n                  ? icon({ ...props, expanded })\n                  : icon\n                : collapsable &&\n                  ((props) => (\n                    <Theme.Icon.ChevronDown\n                      className={classes(\n                        props.className,\n                        !expanded && \"-rotate-90\",\n                        collapsable && \"cursor-pointer\"\n                      )}\n                    />\n                  ))\n            }\n          >\n            {title}\n          </Theme.Button>\n          {buttonRendered}\n        </div>\n      )}\n      {(expanded || !collapsable) && children && (\n        <div\n          className={classes(\n            padding === \"sm\" && \"p-2\",\n            padding === \"md\" && \"p-4\",\n            padding === \"lg\" && \"p-5\"\n          )}\n        >\n          {children}\n        </div>\n      )}\n    </div>\n  );\n}\n\nexport namespace Section {\n  export type Props = {\n    title?: false | string;\n    collapsable?: boolean;\n    defaultExpanded?: boolean;\n    padding?: Theme.Common.Size | \"none\";\n    button?: React.ReactNode | ((props: Theme.Button.Props) => React.ReactNode);\n    divider?: boolean;\n    icon?: (props: Section.Props & { expanded: boolean }) => Theme.Icon.Prop;\n\n    onChange?: (expanded: boolean) => void;\n    className?:\n      | string\n      | ((props: Section.Props & { expanded: boolean }) => string);\n    children?: React.ReactNode;\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/Sidebar/Shortcut.tsx",
    "content": "import { Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Shortcuts {\n  export const use = () => {\n    const toggleSidebars = doNothing;\n    const toggleLayerPanel = doNothing;\n    const toggleBrushPanel = doNothing;\n    const toggleLayersTab = doNothing;\n    const toggleHistoryTab = doNothing;\n\n    Shortcut.use(\n      useMemo(\n        () => ({\n          name: [\"Sidebar\", \"Toggle Both\"],\n          keys: [\"Meta\", \"\\\\\"],\n          icon: Theme.Icon.Sidebar,\n          action: toggleSidebars,\n        }),\n        [toggleSidebars]\n      )\n    );\n\n    Shortcut.use(\n      useMemo(\n        () => ({\n          name: [\"Sidebar\", \"Toggle Right\"],\n          keys: [\"F7\"],\n          icon: Theme.Icon.SidebarOpen,\n          action: toggleLayerPanel,\n        }),\n        [toggleLayerPanel]\n      )\n    );\n\n    Shortcut.use(\n      useMemo(\n        () => ({\n          name: [\"Sidebar\", \"Toggle Left\"],\n          keys: [\"F5\"],\n          icon: Theme.Icon.SidebarClose,\n          action: toggleBrushPanel,\n        }),\n        [toggleBrushPanel]\n      )\n    );\n\n    Shortcut.use(\n      useMemo(\n        () => ({\n          name: [\"Sidebar\", \"Layers\"],\n          keys: [\"Control\", \"l\"],\n          icon: Theme.Icon.Layers,\n          action: toggleLayersTab,\n        }),\n        [toggleLayersTab]\n      )\n    );\n\n    Shortcut.use(\n      useMemo(\n        () => ({\n          name: [\"Sidebar\", \"History\"],\n          keys: [\"Control\", \"y\"],\n          icon: Theme.Icon.History,\n          action: toggleHistoryTab,\n        }),\n        [toggleHistoryTab]\n      )\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/Sidebar/Sidebars.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\n\nexport function Sidebars() {\n  return (\n    <>\n      <Generation.Image.Sidebar />\n      <Editor.Sidebar />\n    </>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/Sidebar/Tab/Bottom.tsx",
    "content": "import { App } from \"~/App\";\n\nexport function Bottom({ className, children }: StyleableWithChildren) {\n  return (\n    <div\n      className={classes(\"justify-end border-t border-zinc-700 p-2\", className)}\n    >\n      {children}\n    </div>\n  );\n}\n\nexport function Bottoms({ position }: App.Sidebar.Props) {\n  const [sidebar] = App.Sidebar.use(position);\n  const tabs = App.Sidebar.Tabs.use(position);\n  const tab = tabs.find((tab) => tab.name === sidebar.tab);\n  return <>{tab?.bottom}</>;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/Sidebar/Tab/Button.tsx",
    "content": "import { App } from \"~/App\";\nimport { Router } from \"~/Router\";\nimport { Theme } from \"~/Theme\";\n\nexport function Button(props: Theme.Button.Props) {\n  return (\n    <Theme.Button\n      size=\"lg\"\n      {...props}\n      className={classes(\"w-full\", props.className)}\n    />\n  );\n}\n\nexport function Buttons({ position }: App.Sidebar.Props) {\n  const navigate = Router.useNavigate();\n  const [sidebar, setSidebar] = App.Sidebar.use(position);\n  const tabs = App.Sidebar.Tabs.use(position);\n\n  const isMobileDevice = Theme.useIsMobileDevice();\n\n  const noButtons = tabs.every((tab) => tab.button === false);\n  return useMemo(() => {\n    if (!tabs[0] || noButtons) return null;\n    return (\n      <div className=\"flex flex-row gap-2 border-b border-zinc-700 p-2\">\n        {tabs.map((tab) => {\n          if (tab.button === false) return null;\n\n          const onClick = () => {\n            setSidebar((sidebar) => ({ ...sidebar, tab: tab.name }));\n            tab.route && navigate(tab.route);\n          };\n\n          const props = {\n            key: tab.name,\n            icon: tab.icon,\n            active: tab.name === sidebar.tab,\n            className: classes(\"justify-start\", !!tab.button && \"w-full\"),\n            children: tab.name,\n            onClick,\n          };\n\n          return typeof tab.button === \"function\" ? (\n            tab.button(props)\n          ) : (\n            <Button {...props} />\n          );\n        })}\n        {isMobileDevice && (\n          <Theme.Button\n            className=\"h-full w-full\"\n            icon={Theme.Icon.ChevronLeft}\n            onClick={() =>\n              setSidebar((sidebar) => ({ ...sidebar, visible: false }))\n            }\n          />\n        )}\n      </div>\n    );\n  }, [tabs, noButtons, isMobileDevice, sidebar.tab, setSidebar, navigate]);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/Sidebar/Tab/Tabs.tsx",
    "content": "import { App } from \"~/App\";\nimport { GlobalState } from \"~/GlobalState\";\n\nexport type Tabs = App.Sidebar.Tab[];\nexport namespace Tabs {\n  export const use = (position: App.Sidebar.Position) => {\n    const tabs = State.use(({ tabs }) => tabs);\n    return useMemo(\n      () =>\n        Object.values(tabs)\n          .filter((tab) => tab.position === position)\n          .sort((a, b) => (a.index ?? Infinity) - (b.index ?? Infinity)),\n      [position, tabs]\n    );\n  };\n\n  export type State = {\n    tabs: Record<App.Sidebar.Tab.Name, App.Sidebar.Tab>;\n    setTab: (name: App.Sidebar.Tab.Name, tab?: App.Sidebar.Tab) => void;\n\n    leftElement?: HTMLDivElement | null;\n    setLeftElement: (element?: HTMLDivElement | null) => void;\n\n    rightElement?: HTMLDivElement | null;\n    setRightElement: (element?: HTMLDivElement | null) => void;\n  };\n\n  export namespace State {\n    export const use = GlobalState.create<State>((set) => ({\n      tabs: {},\n      setTab: (name, tab) =>\n        set((state) => {\n          const { [name]: _previous, ...tabs } = state.tabs;\n          return { tabs: { ...tabs, ...(tab && { [name]: tab }) } };\n        }),\n\n      setLeftElement: (element) => set({ leftElement: element }),\n      setRightElement: (element) => set({ rightElement: element }),\n    }));\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/Sidebar/Tab/index.tsx",
    "content": "import * as ReactDOM from \"react-dom\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { App } from \"~/App\";\nimport { GlobalState } from \"~/GlobalState\";\nimport { Router } from \"~/Router\";\nimport { Theme } from \"~/Theme\";\n\nimport { Bottom, Bottoms } from \"./Bottom\";\nimport { Button, Buttons } from \"./Button\";\nimport { Tabs } from \"./Tabs\";\n\nexport * from \"./Tabs\";\n\nexport type Tab = {\n  name: Tab.Name;\n  position: App.Sidebar.Position;\n  route?: Router.Route;\n  defaultActive?: boolean;\n  enabled?: boolean;\n  index?: number;\n\n  icon?: Theme.Icon.Prop;\n  button?: Theme.Button.Prop;\n\n  above?: React.ReactNode;\n  below?: React.ReactNode;\n  bottom?: React.ReactNode;\n\n  onClick?: (event: MouseEvent) => void;\n};\n\nexport function Tab({ position }: App.Sidebar.Props) {\n  const setElement = Tabs.State.use(\n    (state) =>\n      position === \"left\" ? state.setLeftElement : state.setRightElement,\n    GlobalState.shallow\n  );\n\n  return (\n    <div\n      ref={setElement}\n      className={classes(\"flex min-h-0 shrink flex-col overflow-y-auto\")}\n    />\n  );\n}\n\nexport declare namespace Tab {\n  export { Bottom, Button, Buttons, Bottoms };\n}\n\nexport namespace Tab {\n  Tab.Bottom = Bottom;\n  Tab.Button = Button;\n  Tab.Buttons = Buttons;\n  Tab.Bottoms = Bottoms;\n\n  export type Name = string;\n  export type Props = Tab & StyleableWithChildren;\n\n  export function Set({ children, ...props }: Props) {\n    const [sidebar, setSidebar] = App.Sidebar.use(props.position);\n    const location = useLocation();\n\n    const { setTab, element } = Tabs.State.use(\n      ({ setTab, ...state }) => ({\n        setTab,\n        element:\n          props.position === \"left\" ? state.leftElement : state.rightElement,\n      }),\n      GlobalState.shallow\n    );\n\n    useEffect(() => {\n      setTab(props.name, { enabled: true, ...props });\n      return () => setTab(props.name);\n    }, [props, setTab]);\n\n    useEffect(() => {\n      (window.location.pathname === props.route ||\n        (window.location.pathname === \"/\" && props.defaultActive)) &&\n        setSidebar((sidebar) => ({ ...sidebar, tab: props.name }));\n    }, [props.name, props.defaultActive, setSidebar, props.route, location]);\n\n    return useMemo(\n      () => (\n        <>\n          {sidebar.tab === props.name &&\n            props.enabled &&\n            element &&\n            ReactDOM.createPortal(children, element)}\n        </>\n      ),\n      [children, element, props.enabled, props.name, sidebar.tab]\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/Sidebar/index.tsx",
    "content": "import { GlobalState } from \"~/GlobalState\";\nimport { Theme } from \"~/Theme\";\n\nimport { Resizer } from \"./Resizer\";\nimport { Section } from \"./Section\";\nimport { Shortcuts } from \"./Shortcut\";\nimport { Tab, Tabs } from \"./Tab\";\n\nexport * from \"./Sidebars\";\n\nexport type Sidebar = {\n  visible: boolean;\n  width: number;\n  tab?: Tab.Name;\n};\n\nexport function Sidebar({ position }: Sidebar.Props) {\n  const [sidebar] = Sidebar.use(position);\n  const tabs = Tabs.use(position);\n  const hasTabs = tabs.some((tab) => tab.enabled);\n  const isMobileDevice = Theme.useIsMobileDevice();\n  const showing = hasTabs && sidebar.visible && sidebar.width > 300;\n\n  const bar = useMemo(\n    () => (\n      <>\n        <Tab.Buttons position={position} />\n        <Tab position={position} />\n        <Tab.Bottoms position={position} />\n      </>\n    ),\n    [position]\n  );\n\n  if (isMobileDevice) return null;\n  return (\n    <div\n      style={{ width: showing ? (isMobileDevice ? \"100%\" : sidebar.width) : 0 }}\n      className={classes(\n        \"relative z-[10] min-h-0 shrink-0 border-zinc-700 dark:bg-zinc-900\",\n        showing && (position === \"left\" ? \"border-r\" : \"border-l\")\n      )}\n    >\n      {hasTabs && <Resizer position={position} />}\n      <div\n        className={classes(\n          \"flex h-full min-h-0 shrink grow flex-col\",\n          !showing && \"hidden\"\n        )}\n      >\n        {bar}\n      </div>\n    </div>\n  );\n}\n\nexport declare namespace Sidebar {\n  export { Section, Shortcuts, Tab, Tabs };\n}\n\nexport namespace Sidebar {\n  Sidebar.Section = Section;\n  Sidebar.Shortcuts = Shortcuts;\n  Sidebar.Tab = Tab;\n  Sidebar.Tabs = Tabs;\n\n  export type Props = { position: Position };\n  export type Position = \"left\" | \"right\";\n\n  export const presetWidth = () => 400;\n\n  export const use = (position: Position) => {\n    const { sidebar, stateSet } = State.use(\n      (state) => ({\n        sidebar: state[position],\n        stateSet: state.setSidebar,\n      }),\n      GlobalState.shallow\n    );\n\n    const setSidebar = useCallback(\n      (setSidebar: React.SetStateAction<Partial<Sidebar>>) =>\n        stateSet(position, setSidebar),\n      [position, stateSet]\n    );\n\n    return useMemo(() => [sidebar, setSidebar] as const, [sidebar, setSidebar]);\n  };\n\n  type State = {\n    left: Sidebar;\n    right: Sidebar;\n\n    setSidebar: (\n      position: Position,\n      setSidebar: React.SetStateAction<Partial<Sidebar>>\n    ) => void;\n  };\n\n  namespace State {\n    export const use = GlobalState.create<State>((set) => {\n      const sidebar = { visible: true, width: presetWidth() };\n      return {\n        left: sidebar,\n        right: sidebar,\n\n        setSidebar: (position, setSidebar) =>\n          set((state) => ({\n            [position]: {\n              ...state[position],\n              ...(typeof setSidebar === \"function\"\n                ? setSidebar(state[position])\n                : setSidebar),\n            },\n          })),\n      };\n    });\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/TopBar/Center/index.tsx",
    "content": "import * as ReactDOM from \"react-dom\";\n\nimport { GlobalState } from \"~/GlobalState\";\n\nexport function Center({ className, children }: StyleableWithChildren) {\n  const setElement = State.use(({ setElement }) => setElement);\n  return (\n    <div\n      ref={setElement}\n      className={classes(\n        \"flex h-full grow basis-0 items-center justify-center\",\n        className\n      )}\n    >\n      {children}\n    </div>\n  );\n}\n\nexport namespace Center {\n  export function Set({ children }: React.PropsWithChildren) {\n    const element = State.use(({ element }) => element, GlobalState.shallow);\n    return <>{element && ReactDOM.createPortal(children, element)}</>;\n  }\n}\n\ntype State = {\n  element?: HTMLDivElement | null;\n  setElement: (element?: HTMLDivElement | null) => void;\n};\n\nnamespace State {\n  export const use = GlobalState.create<State>((set) => ({\n    setElement: (element) => set({ element }),\n  }));\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/TopBar/Left/index.tsx",
    "content": "import { Link } from \"react-router-dom\";\nimport { Theme } from \"~/Theme\";\n\nexport const Left = () => {\n  return (\n    <div className=\"flex grow basis-0 items-center gap-4\">\n      <Link className=\"flex flex-row items-center gap-3\" to=\"/\">\n        <Theme.Logo.Next />\n      </Link>\n    </div>\n  );\n};\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/TopBar/Right/index.tsx",
    "content": "import { Link } from \"react-router-dom\";\nimport { Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport const Right = () => {\n  const { setIsOpen } = Shortcut.Palette.use();\n  const isMobileDevice = Theme.useIsMobileDevice();\n  return (\n    <div className=\"flex grow basis-0 items-center justify-end gap-2\">\n      <>\n        {!isMobileDevice && (\n          <Theme.Button\n            outline\n            className=\"rounded-full\"\n            icon={Theme.Icon.Keyboard}\n            onClick={() =>\n              // cause a Ctrl+K to be triggered\n              setIsOpen(true)\n            }\n          >\n            Shortcuts\n            <Shortcut.Keys keys={[\"Meta\", \"k\"]} className=\"ml-2\" />\n          </Theme.Button>\n        )}\n        <Link to=\"/settings\">\n          <Theme.Button\n            outline\n            label=\"Settings\"\n            labelPlacement=\"bottom\"\n            className=\"aspect-square h-[30px] w-[30px]\"\n            icon={Theme.Icon.Settings}\n          />\n        </Link>\n      </>\n    </div>\n  );\n};\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/TopBar/index.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\nimport { Center } from \"./Center\";\nimport { Left } from \"./Left\";\nimport { Right } from \"./Right\";\n\nexport function TopBar() {\n  return (\n    <nav className=\"relative flex h-14 w-screen shrink-0 flex-row items-center border-b border-black/20 bg-zinc-50 px-2 text-black dark:border-zinc-700 dark:bg-zinc-900 dark:text-white sm:min-w-[1000px]\">\n      <Left />\n      <Center />\n      <Right />\n    </nav>\n  );\n}\n\nexport declare namespace TopBar {\n  export { Center };\n}\n\nexport namespace TopBar {\n  TopBar.Center = Center;\n\n  export function Divider(props: Theme.Divider.Props) {\n    return (\n      <Theme.Divider\n        variant=\"vertical\"\n        className=\"mx-2 group-hover:bg-red-500\"\n        {...props}\n      />\n    );\n  }\n\n  export function Buttons({ children }: React.PropsWithChildren) {\n    return <div>{children}</div>;\n  }\n\n  export function Button({\n    menu,\n    ...props\n  }: Theme.Button.Props & { menu?: React.ReactNode }) {\n    return (\n      <div\n        className={classes(\n          \"group/button relative flex h-full items-center justify-center duration-150\",\n          props.active ? \"dark:bg-brand-500\" : \"hover:dark:bg-muted-white-extra\"\n        )}\n      >\n        <Theme.Button transparent size=\"lg\" className=\"p-4\" {...props} />\n        {menu && (\n          <Theme.Button\n            transparent\n            size=\"sm\"\n            className=\"-ml-4 h-full p-0 pr-2\"\n            icon={Theme.Icon.ChevronDown}\n          />\n        )}\n      </div>\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/App/index.tsx",
    "content": "import { Router } from \"~/Router\";\nimport { Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nimport { BottomBar } from \"./BottomBar\";\nimport { Providers } from \"./Providers\";\nimport { Sidebar, Sidebars } from \"./Sidebar\";\nimport { TopBar } from \"./TopBar\";\n\nexport function App() {\n  const isMobileDevice = Theme.useIsMobileDevice();\n  return useMemo(\n    () => (\n      <Providers>\n        <div className=\"absolute top-0 left-0 -z-50 h-screen w-screen dark:bg-zinc-800\" />\n        <div className=\"absolute top-0 left-0 flex h-screen w-screen flex-col text-white sm:overflow-x-auto\">\n          <Shortcut.Palette />\n          <TopBar />\n          <Sidebars />\n          <div className=\"flex min-h-0 grow overflow-auto sm:min-w-[1000px]\">\n            <Sidebar position=\"left\" />\n            <div className=\"shrink grow overflow-y-auto\">\n              <Router />\n            </div>\n            <Sidebar position=\"right\" />\n          </div>\n          {isMobileDevice && <BottomBar />}\n        </div>\n      </Providers>\n    ),\n    [isMobileDevice]\n  );\n}\n\nexport declare namespace App {\n  export { Sidebar, TopBar };\n}\n\nexport namespace App {\n  App.Sidebar = Sidebar;\n  App.TopBar = TopBar;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Device/index.ts",
    "content": "export namespace Device {\n  // TODO: Stop using `appVersion`\n  export const getInfo = () => {\n    const { userAgent } = navigator;\n    const appVersion = navigator.appVersion;\n\n    const deviceType =\n      /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n        userAgent\n      )\n        ? \"Mobile/Phone\"\n        : /iPad/i.test(userAgent)\n        ? \"Tablet\"\n        : \"Desktop/Laptop\";\n\n    const browserName =\n      userAgent.indexOf(\"Chrome\") > -1 &&\n      navigator.userAgent.indexOf(\"OPR\") === -1\n        ? \"Chrome\"\n        : userAgent.indexOf(\"Firefox\") > -1\n        ? \"Firefox\"\n        : userAgent.indexOf(\"Safari\") > -1 && userAgent.indexOf(\"OPR\") === -1\n        ? \"Safari\"\n        : userAgent.indexOf(\"Edge\") > -1 || userAgent.indexOf(\"edg/\") > -1\n        ? \"Edge\"\n        : userAgent.indexOf(\"OPR\") > -1\n        ? \"Opera\"\n        : \"Unknown\";\n\n    const operatingSystem = appVersion.match(/win/i)\n      ? \"Windows\"\n      : appVersion.match(/mac/i)\n      ? \"Mac\"\n      : appVersion.match(/linux/i)\n      ? \"Linux\"\n      : \"Unknown\";\n\n    return { deviceType, browserName, operatingSystem };\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Brush/Blur.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport type Blur = number;\nexport namespace Blur {\n  export const min = () => 0;\n  export const preset = () => 5;\n  export const max = () => 50;\n\n  export const use = () => {\n    const brush = Editor.Brush.use();\n    const setBrush = Editor.Brush.useSet();\n\n    const set = useCallback(\n      (\n        setBlur: number | undefined | ((blur: number) => number | undefined)\n      ) => {\n        setBrush((brush) => {\n          const blur =\n            (typeof setBlur === \"function\" ? setBlur(brush.blur) : setBlur) ??\n            preset();\n\n          return { ...brush, blur: clamp(min(), blur, max()) };\n        });\n      },\n      [setBrush]\n    );\n\n    return useMemo(() => [brush.blur, set] as const, [brush.blur, set]);\n  };\n\n  export namespace Shortcuts {\n    export const use = () => {\n      const [, setBlur] = Editor.Brush.Blur.use();\n      const [tool] = Editor.Tool.Active.use();\n      const enabled = tool === \"brush\";\n\n      Shortcut.use(\n        useMemo(\n          () => ({\n            name: [\"Eraser\", \"Blur\", \"Increase\"],\n            icon: Theme.Icon.Plus,\n            keys: [\"Shift\", \"]\"],\n\n            enabled,\n            action: () => setBlur((blur) => blur + 1),\n          }),\n          [enabled, setBlur]\n        )\n      );\n\n      Shortcut.use(\n        useMemo(\n          () => ({\n            name: [\"Eraser\", \"Blur\", \"Decrease\"],\n            icon: Theme.Icon.Minus,\n            keys: [\"Shift\", \"[\"],\n\n            enabled,\n            action: () => setBlur((blur) => blur - 1),\n          }),\n          [enabled, setBlur]\n        )\n      );\n    };\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Brush/Cursor.tsx",
    "content": "import { Editor } from \"~/Editor\";\n\nexport function Cursor() {\n  const [activeTool] = Editor.Tool.Active.use();\n  const [show, setShow] = useState(false);\n  const svg = useRef<SVGSVGElement>(null);\n\n  const { size, strength } = Editor.Brush.use();\n\n  useEffect(() => {\n    function handleMouseMove(e: MouseEvent) {\n      if (\n        svg.current &&\n        show &&\n        activeTool === \"brush\" &&\n        e.clientX &&\n        e.clientY\n      ) {\n        svg.current.style.left = e.clientX - size / 2 + \"px\";\n        svg.current.style.top = e.clientY - size / 2 + \"px\";\n        svg.current.style.display = \"block\";\n        svg.current.style.cursor = \"none\";\n      } else if (svg.current) {\n        svg.current.style.display = \"none\";\n      }\n    }\n\n    window.addEventListener(\"mousemove\", handleMouseMove);\n\n    document\n      .getElementById(\"canvas-container\")\n      ?.addEventListener(\"mouseenter\", () => setShow(true));\n\n    document\n      .getElementById(\"canvas-container\")\n      ?.addEventListener(\"mouseleave\", () => setShow(false));\n\n    return () => {\n      window.removeEventListener(\"mousemove\", handleMouseMove);\n\n      document\n        .getElementById(\"canvas-container\")\n        ?.removeEventListener(\"mouseenter\", () => setShow(true));\n\n      document\n        .getElementById(\"canvas-container\")\n        ?.removeEventListener(\"mouseleave\", () => setShow(false));\n    };\n  }, [svg, activeTool, size, show]);\n\n  if (show && activeTool === \"brush\") {\n    document.body.style.cursor = \"none\";\n    return (\n      <svg\n        className=\"pointer-events-none absolute hidden\"\n        style={{ zIndex: 1000, opacity: strength }}\n        width={size + 2}\n        height={size + 2}\n        ref={svg}\n      >\n        <circle\n          fill=\"transparent\"\n          stroke=\"white\"\n          strokeWidth=\"2\"\n          r={size / 2}\n          cx={size / 2 + 1}\n          cy={size / 2 + 1}\n        />\n      </svg>\n    );\n  } else {\n    document.body.style.cursor = \"default\";\n    return null;\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Brush/MaskLine.tsx",
    "content": "import Konva from \"konva\";\n\nimport { Editor } from \"~/Editor\";\n\nexport class MaskLine {\n  public strokeWidth = 0;\n  public strokeBlur = 0;\n  public strokeStrength = 0;\n  public points: number[] = [];\n  public line: Konva.Image | null = null;\n  public canvas: HTMLCanvasElement = document.createElement(\"canvas\");\n\n  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n  public context: CanvasRenderingContext2D = this.canvas.getContext(\"2d\")!;\n\n  addPoint(x: number, y: number) {\n    this.points.push(x);\n    this.points.push(y);\n    if (this.line) {\n      this.draw();\n      this.line.getLayer()?.batchDraw();\n    } else {\n      false && console.log(\"no line\");\n    }\n  }\n\n  restart(\n    strokeWidth: number,\n    strokeBlur: number,\n    strokeStrength: number,\n    points: number[]\n  ) {\n    this.strokeWidth = strokeWidth;\n    this.strokeBlur = strokeBlur;\n    this.strokeStrength = strokeStrength;\n    this.points = points;\n    this.line?.visible(true);\n  }\n\n  clear() {\n    this.points = [];\n\n    if (this.line) {\n      this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);\n      this.line.visible(false);\n      this.line.getLayer()?.batchDraw();\n    }\n  }\n\n  draw() {\n    const [topLeftPoint, bottomRightPoint]: { x: number; y: number }[] =\n      this.points.reduce(\n        (acc, point, i) => {\n          if (!acc[0] || !acc[1]) return acc;\n          if (i % 2 === 0) {\n            if (point < acc[0].x) {\n              acc[0].x = point;\n            }\n            if (point > acc[1].x) {\n              acc[1].x = point;\n            }\n          } else {\n            if (point < acc[0].y) {\n              acc[0].y = point;\n            }\n            if (point > acc[1].y) {\n              acc[1].y = point;\n            }\n          }\n          return acc;\n        },\n        [\n          { x: Infinity, y: Infinity },\n          { x: -Infinity, y: -Infinity },\n        ]\n      );\n\n    if (!topLeftPoint || !bottomRightPoint) return;\n\n    const width = bottomRightPoint.x - topLeftPoint.x;\n    const height = bottomRightPoint.y - topLeftPoint.y;\n\n    this.canvas.width = width + this.strokeWidth * 2 + this.strokeBlur * 2;\n    this.canvas.height = height + this.strokeWidth * 2 + this.strokeBlur * 2;\n\n    this.line?.position({\n      x: topLeftPoint.x - this.strokeWidth - this.strokeBlur,\n      y: topLeftPoint.y - this.strokeWidth - this.strokeBlur,\n    });\n\n    this.line?.width(this.canvas.width);\n    this.line?.height(this.canvas.height);\n\n    this.context.beginPath();\n    this.context.fillStyle = \"white\";\n    this.context.filter = `blur(${this.strokeBlur}px)`;\n    this.context.lineWidth = this.strokeWidth;\n    this.context.lineCap = \"round\";\n    this.context.lineJoin = \"round\";\n    this.context.globalAlpha = this.strokeStrength;\n\n    const a = this.points[0];\n    const b = this.points[1];\n\n    a &&\n      b &&\n      this.context.moveTo(a - (this.line?.x() || 0), b - (this.line?.y() || 0));\n\n    for (let i = 2; i < this.points.length; i += 2) {\n      const a = this.points[i];\n      const b = this.points[i + 1];\n\n      a &&\n        b &&\n        this.context.lineTo(\n          a - (this.line?.x() ?? 0),\n          b - (this.line?.y() ?? 0)\n        );\n    }\n    this.context.stroke();\n  }\n}\n\nexport namespace MaskLine {\n  export const applyToImage = (\n    image: Editor.Image,\n    line: Editor.Brush.MaskLine\n  ): Promise<HTMLImageElement | null> =>\n    new Promise((resolve) => {\n      if (!image.element?.complete || !image.element.src) {\n        resolve(null);\n        return;\n      }\n\n      // render image to a canvas, render maskLine with distination-out, then render canvas to image as a DataURL and set it as the image source\n      const canvas = document.createElement(\"canvas\");\n      canvas.width = image.element.width;\n      canvas.height = image.element.height;\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      const ctx = canvas.getContext(\"2d\")!;\n      ctx.drawImage(image.element, 0, 0, canvas.width, canvas.height);\n\n      const scale = Math.max(\n        image.width / image.element.width,\n        image.height / image.element.height\n      );\n\n      const offset = {\n        x: -((image.width - image.element.width * scale) / 2) / scale,\n        y: -((image.height - image.element.height * scale) / 2) / scale,\n      };\n\n      // render maskLine via points\n      ctx.beginPath();\n      ctx.strokeStyle = \"white\";\n      ctx.lineWidth = line.strokeWidth / scale;\n      ctx.lineCap = \"round\";\n      ctx.lineJoin = \"round\";\n      ctx.filter = `blur(${line.strokeBlur / scale}px)`;\n      ctx.globalAlpha = line.strokeStrength;\n      ctx.globalCompositeOperation = \"destination-out\";\n      for (let i = 0; i < line.points.length; i += 2) {\n        const a = line.points[i];\n        const b = line.points[i + 1];\n\n        if (!a || !b) continue;\n\n        i === 0\n          ? ctx.moveTo(\n              a / scale - image.x / scale + offset.x,\n              b / scale - image.y / scale + offset.y\n            )\n          : ctx.lineTo(\n              a / scale - image.x / scale + offset.x,\n              b / scale - image.y / scale + offset.y\n            );\n      }\n\n      ctx.stroke();\n\n      // const m = document.createElement(\"a\");\n      // m.href = canvas.toDataURL(\"image/png\");\n      // m.download = \"mask.png\";\n      // m.click();\n\n      // we are about to replace the image with a new blob url,\n      // so we need to revoke the old one to avoid memory leaks\n      // but, we dont want to revoke the OG image URL\n      if (\n        image.element.src.startsWith(\"blob:\") &&\n        image.element.src !== image.src\n      )\n        URL.revokeObjectURL(image.element.src);\n\n      const element = new window.Image();\n      element.id = image.id;\n      element.onload = () => resolve(element);\n      canvas.toBlob((blob) => {\n        if (blob) element.src = URL.createObjectURL(blob);\n        canvas.remove();\n      });\n    });\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Brush/Panel.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Theme } from \"~/Theme\";\n\nexport function Panel() {\n  const setBrush = Editor.Brush.useSet();\n  const brush = Editor.Brush.use();\n  const { solid, blurred } = usePreviews({ onClick: setBrush });\n  return (\n    <div className=\"pointer-events-auto max-w-[300px] overflow-hidden\">\n      <div className=\"py-3\">\n        <Previews>{solid}</Previews>\n        <Previews>{blurred}</Previews>\n      </div>\n      <Theme.Divider>Settings</Theme.Divider>\n      <div className=\"mb-2 flex flex-col gap-4 p-4 text-zinc-300 dark:text-white\">\n        <Theme.Slider\n          title=\"Size\"\n          value={brush.size}\n          min={Editor.Brush.Size.min()}\n          max={Editor.Brush.Size.max()}\n          onChange={(size) => setBrush((brush) => ({ ...brush, size }))}\n        />\n        <Theme.Slider\n          title=\"Strength\"\n          step={1}\n          value={brush.strength * 100}\n          min={Editor.Brush.Strength.min() * 100}\n          max={Editor.Brush.Strength.max() * 100}\n          onChange={(strength) =>\n            setBrush((brush) => ({ ...brush, strength: strength / 100 }))\n          }\n        />\n        <Theme.Slider\n          title=\"Blur\"\n          value={brush.blur}\n          max={Editor.Brush.Blur.max()}\n          onChange={(blur) => setBrush((brush) => ({ ...brush, blur }))}\n        />\n      </div>\n      <Theme.Divider>Preview</Theme.Divider>\n      <div className=\"py-4\">\n        <Previews>\n          <Preview highlighted {...brush} />\n        </Previews>\n      </div>\n    </div>\n  );\n}\n\nfunction Previews({ children }: React.PropsWithChildren) {\n  return (\n    <div className=\"flex items-stretch justify-center p-2\">{children}</div>\n  );\n}\n\nfunction Preview({\n  size = Editor.Brush.Size.preset(),\n  strength = Editor.Brush.Strength.preset(),\n  blur = Editor.Brush.Blur.preset(),\n  selectable = false,\n  scaleSize = (n) => n,\n  scaleBlur = (n) => n,\n  onClick,\n  ...props\n}: Partial<Editor.Brush> & {\n  highlighted?: boolean;\n  selectable?: boolean;\n  scaleSize?: (value: number) => number;\n  scaleBlur?: (value: number) => number;\n  onClick?: (brush: Editor.Brush) => void;\n}) {\n  const brush = Editor.Brush.use();\n\n  const [hovering, setHovering] = useState(false);\n  const matches = size === brush.size && blur === brush.blur;\n  const highlighted = props.highlighted ?? (hovering || matches);\n\n  return (\n    <div\n      className={classes(\n        \"flex grow items-center justify-center self-stretch\",\n        selectable && \"cursor-pointer\"\n      )}\n      onClick={() => onClick?.({ ...brush, size, blur })}\n      onMouseEnter={() => setHovering(true)}\n      onMouseLeave={() => setHovering(false)}\n    >\n      <div\n        className={classes(\n          \"rounded-full\",\n          highlighted ? \"bg-brand-500\" : \"bg-zinc-600\"\n        )}\n        style={{\n          filter: `blur(${scaleBlur(blur)}px)`,\n          width: `${scaleSize(size)}px`,\n          height: `${scaleSize(size)}px`,\n          opacity: strength,\n        }}\n      />\n    </div>\n  );\n}\n\nfunction usePreviews({ onClick }: { onClick: (brush: Editor.Brush) => void }) {\n  const blurMin = 2;\n  return useMemo(() => {\n    const count = 10;\n    const brushes = Array.from({ length: count }, (_, index) => {\n      const size =\n        Editor.Brush.Size.min() +\n        (index / (count - 1)) *\n          (Editor.Brush.Size.max() - Editor.Brush.Size.min());\n\n      const blur =\n        blurMin +\n        Math.pow(index / (count - 1), 2) * (Editor.Brush.Blur.max() - blurMin);\n\n      return { size, blur };\n    });\n\n    const presets = [...brushes, ...brushes].map(({ size, blur }, index) => {\n      const isSmooth = index >= brushes.length;\n      return (\n        <Preview\n          selectable\n          key={index}\n          scaleSize={(n) => n / 6 + 5}\n          scaleBlur={(n) => Math.max(n / 4, isSmooth ? blurMin : 0)}\n          {...{ onClick, size, blur: isSmooth ? blur : 0 }}\n        />\n      );\n    });\n\n    return {\n      solid: presets.slice(0, brushes.length),\n      blurred: presets.slice(-brushes.length),\n    };\n  }, [onClick]);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Brush/Shortcut.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Shortcuts {\n  export const use = () => {\n    const setTool = Editor.Tool.Active.useSet();\n    const [tool] = Editor.Tool.Active.use();\n    const enabled = tool === \"brush\";\n\n    Editor.Brush.Blur.Shortcuts.use();\n    Editor.Brush.Size.Shortcuts.use();\n\n    Shortcut.Priority.use(\n      useMemo(\n        () => ({\n          name: \"Eraser\",\n          level: \"high\",\n          enabled,\n        }),\n        [enabled]\n      )\n    );\n\n    Shortcut.use(\n      useMemo(\n        () => ({\n          name: \"Eraser\",\n          icon: Theme.Icon.Eraser,\n\n          keys: \"e\",\n          action: () => setTool(\"brush\"),\n        }),\n        [setTool]\n      )\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Brush/Sidebar.tsx",
    "content": "import { App } from \"~/App\";\nimport { Editor } from \"~/Editor\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Sidebar {\n  export function Section() {\n    const setBrush = Editor.Brush.useSet();\n    const brush = Editor.Brush.use();\n    return (\n      <App.Sidebar.Section\n        title=\"Eraser settings\"\n        defaultExpanded\n        collapsable\n        divider\n      >\n        <div className=\"flex w-full items-center gap-5\">\n          <div className=\"relative flex aspect-square w-[10rem] items-center justify-center overflow-hidden rounded bg-white/10\">\n            <Theme.Checkered />\n            <Preview\n              highlighted\n              {...brush}\n              scaleBlur={(v) => v / 2.5}\n              scaleSize={(v) => v / 2.5}\n            />\n          </div>\n          <div className=\"flex w-full flex-col gap-2\">\n            <Theme.Slider\n              title=\"Size\"\n              value={brush.size}\n              min={Editor.Brush.Size.min()}\n              max={Editor.Brush.Size.max()}\n              onChange={(size) => setBrush((brush) => ({ ...brush, size }))}\n            />\n            <Theme.Slider\n              title=\"Blur\"\n              value={brush.blur}\n              max={Editor.Brush.Blur.max()}\n              onChange={(blur) => setBrush((brush) => ({ ...brush, blur }))}\n            />\n            <Theme.Slider\n              title=\"Strength\"\n              step={1}\n              percentage\n              value={brush.strength * 100}\n              min={Editor.Brush.Strength.min() * 100}\n              max={Editor.Brush.Strength.max() * 100}\n              onChange={(strength) =>\n                setBrush((brush) => ({ ...brush, strength: strength / 100 }))\n              }\n            />\n          </div>\n        </div>\n      </App.Sidebar.Section>\n    );\n  }\n}\n\nfunction Preview({\n  size = Editor.Brush.Size.preset(),\n  strength = Editor.Brush.Strength.preset(),\n  blur = Editor.Brush.Blur.preset(),\n  selectable = false,\n  scaleSize = (n) => n,\n  scaleBlur = (n) => n,\n  onClick,\n  ...props\n}: Partial<Editor.Brush> & {\n  highlighted?: boolean;\n  selectable?: boolean;\n  scaleSize?: (value: number) => number;\n  scaleBlur?: (value: number) => number;\n  onClick?: (brush: Editor.Brush) => void;\n}) {\n  const brush = Editor.Brush.use();\n\n  const [hovering, setHovering] = useState(false);\n  const matches = size === brush.size && blur === brush.blur;\n  const highlighted = props.highlighted ?? (hovering || matches);\n\n  return (\n    <div\n      className={classes(\n        \"flex grow items-center justify-center self-stretch\",\n        selectable && \"cursor-pointer\"\n      )}\n      onClick={() => onClick?.({ ...brush, size, blur })}\n      onMouseEnter={() => setHovering(true)}\n      onMouseLeave={() => setHovering(false)}\n    >\n      <div\n        className={classes(\n          \"rounded-full\",\n          highlighted ? \"bg-white\" : \"bg-zinc-600\"\n        )}\n        style={{\n          filter: `blur(${scaleBlur(blur)}px)`,\n          width: `${scaleSize(size)}px`,\n          height: `${scaleSize(size)}px`,\n          opacity: strength,\n        }}\n      />\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Brush/Size.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport type Size = number;\nexport namespace Size {\n  export const min = () => 5;\n  export const preset = () => 50;\n  export const max = () => 200;\n\n  export const use = () => {\n    const brush = Editor.Brush.use();\n    const setBrush = Editor.Brush.useSet();\n\n    const set = useCallback(\n      (\n        setSize: number | undefined | ((size: number) => number | undefined)\n      ) => {\n        setBrush((brush) => {\n          const size =\n            (typeof setSize === \"function\" ? setSize(brush.size) : setSize) ??\n            preset();\n\n          return { ...brush, size: clamp(min(), size, max()) };\n        });\n      },\n      [setBrush]\n    );\n\n    return useMemo(() => [brush.size, set] as const, [brush.size, set]);\n  };\n\n  export namespace Shortcuts {\n    export const use = () => {\n      const [, setSize] = Editor.Brush.Size.use();\n      const [tool] = Editor.Tool.Active.use();\n      const enabled = tool === \"brush\";\n\n      Shortcut.use(\n        useMemo(\n          () => ({\n            name: [\"Eraser\", \"Size\", \"Increase\"],\n            icon: Theme.Icon.Plus,\n\n            keys: \"]\",\n            action: () => setSize((size) => size + 5),\n\n            enabled,\n          }),\n          [enabled, setSize]\n        )\n      );\n\n      Shortcut.use(\n        useMemo(\n          () => ({\n            name: [\"Eraser\", \"Size\", \"Decrease\"],\n            icon: Theme.Icon.Minus,\n\n            keys: \"[\",\n            action: () => setSize((size) => size - 5),\n\n            enabled,\n          }),\n          [enabled, setSize]\n        )\n      );\n    };\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Brush/Strength.tsx",
    "content": "import { Editor } from \"~/Editor\";\n\nexport type Strength = number;\nexport namespace Strength {\n  export const min = () => 0;\n  export const preset = () => max();\n  export const max = () => 1;\n\n  export const use = () => {\n    const brush = Editor.Brush.use();\n    const setBrush = Editor.Brush.useSet();\n\n    const set = useCallback(\n      (\n        setStrength:\n          | number\n          | undefined\n          | ((strength: number) => number | undefined)\n      ) => {\n        setBrush((brush) => {\n          const strength =\n            (typeof setStrength === \"function\"\n              ? setStrength(brush.strength)\n              : setStrength) ?? preset();\n\n          return { ...brush, strength: clamp(min(), strength, max()) };\n        });\n      },\n      [setBrush]\n    );\n\n    return useMemo(() => [brush.strength, set] as const, [brush.strength, set]);\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Brush/index.tsx",
    "content": "import Konva from \"konva\";\nimport { KonvaEventObject } from \"konva/lib/Node\";\nimport { Image } from \"react-konva\";\n\nimport { Editor } from \"~/Editor\";\nimport { GlobalState } from \"~/GlobalState\";\nimport { Theme } from \"~/Theme\";\n\nimport { Blur } from \"./Blur\";\nimport { Cursor } from \"./Cursor\";\nimport { MaskLine } from \"./MaskLine\";\nimport { Panel } from \"./Panel\";\nimport { Shortcuts } from \"./Shortcut\";\nimport { Sidebar } from \"./Sidebar\";\nimport { Size } from \"./Size\";\nimport { Strength } from \"./Strength\";\n\nexport type Brush = {\n  size: Brush.Size;\n  strength: Brush.Strength;\n  blur: Brush.Blur;\n};\n\nexport function Brush() {\n  const [activeTool] = Editor.Tool.Active.use();\n  const maskLine = useRef<MaskLine>(new MaskLine());\n  const line = useRef<Konva.Image | null>(null);\n  const stageRef = Editor.Canvas.use();\n\n  const [, setForceUpdate] = useState(0);\n\n  const entities = Editor.Entities.useMap();\n  const setEntities = Editor.Entities.useSet();\n\n  const { blur, size, strength } = Editor.Brush.use();\n\n  useEffect(() => {\n    if (maskLine.current && line.current) {\n      maskLine.current.line = line.current;\n    }\n  }, []);\n\n  Editor.Canvas.useMouseDown(\n    (e: KonvaEventObject<MouseEvent>) => {\n      if (activeTool === \"brush\" && e.evt.button === 0 && stageRef) {\n        const scale = stageRef.current?.scaleX() || 1;\n        const mousePos = stageRef.current?.getPointerPosition() || {\n          x: 0,\n          y: 0,\n        };\n        const pos = stageRef.current?.getPosition() || { x: 0, y: 0 };\n        maskLine.current.restart(size / scale, blur, strength, [\n          // put out the first point (w/ end so it draws a dot)\n          mousePos.x / scale - pos.x / scale,\n          mousePos.y / scale - pos.y / scale,\n\n          mousePos.x / scale - pos.x / scale,\n          mousePos.y / scale - pos.y / scale,\n        ]);\n\n        setForceUpdate((n) => n + 1);\n      }\n    },\n    [activeTool, size, blur, stageRef?.current, maskLine.current]\n  );\n\n  Editor.Canvas.useMouseUp(() => {\n    if (activeTool === \"brush\") {\n      // go through all images that our points line up to and raserize them\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      const promises: Promise<any>[] = [];\n\n      entities.forEach((image) => {\n        if (image.type !== \"image\") {\n          return;\n        }\n\n        for (let i = 0; i < maskLine.current.points.length; i += 2) {\n          const x = maskLine.current.points[i];\n          const y = maskLine.current.points[i + 1];\n\n          if (!x || !y) return;\n\n          // check if image x/y/w/h contains point x/y\n          // making sure to account for stroke width as circle radius\n          if (\n            Brush.circleIntersectsRectange(\n              x,\n              y,\n              maskLine.current.strokeWidth + maskLine.current.strokeBlur,\n              image.x,\n              image.y,\n              image.width,\n              image.height\n            )\n          ) {\n            // rasterize this image\n            promises.push(MaskLine.applyToImage(image, maskLine.current));\n            break;\n          }\n        }\n      });\n\n      Promise.all(promises).then((newImages) => {\n        const newEntities: Map<string, Editor.Entity> = new Map();\n\n        newImages.forEach((newImage) => {\n          if (!newImage) {\n            return;\n          }\n\n          const e = entities.get(newImage.id) as Editor.Image;\n\n          newEntities.set(e.id, {\n            ...e,\n            element: newImage as HTMLImageElement,\n          });\n        });\n\n        setEntities((entities) => new Map([...entities, ...newEntities]));\n\n        maskLine.current.clear();\n      });\n    }\n  }, [activeTool, maskLine.current]);\n\n  Editor.Canvas.useMouseMove(\n    (e: KonvaEventObject<MouseEvent>) => {\n      if (\n        activeTool === \"brush\" &&\n        maskLine.current &&\n        e.evt.buttons === 1 &&\n        stageRef\n      ) {\n        const scale = stageRef.current?.scaleX() || 1;\n        const mousePos = stageRef.current?.getPointerPosition() || {\n          x: 0,\n          y: 0,\n        };\n        const pos = stageRef.current?.getPosition() || { x: 0, y: 0 };\n\n        maskLine.current.addPoint(\n          mousePos.x / scale - pos.x / scale,\n          mousePos.y / scale - pos.y / scale\n        );\n      }\n    },\n    [activeTool, maskLine.current, stageRef?.current]\n  );\n\n  return (\n    <Image\n      ref={line}\n      listening={false}\n      perfectDrawEnabled={false}\n      globalCompositeOperation=\"destination-out\"\n      visible={activeTool === \"brush\"}\n      image={maskLine.current.canvas}\n    />\n  );\n}\n\nexport declare namespace Brush {\n  export { MaskLine, Cursor, Panel, Sidebar, Shortcuts, Blur, Size, Strength };\n}\n\nexport namespace Brush {\n  Brush.MaskLine = MaskLine;\n  Brush.Panel = Panel;\n  Brush.Cursor = Cursor;\n  Brush.Sidebar = Sidebar;\n  Brush.Shortcuts = Shortcuts;\n  Brush.Blur = Blur;\n  Brush.Size = Size;\n  Brush.Strength = Strength;\n\n  export function circleIntersectsRectange(\n    cx: number,\n    cy: number,\n    radius: number,\n    rx: number,\n    ry: number,\n    rw: number,\n    rh: number\n  ) {\n    const circleDistanceX = Math.abs(cx - (rx + rw / 2));\n    const circleDistanceY = Math.abs(cy - (ry + rh / 2));\n\n    if (circleDistanceX > rw / 2 + radius) {\n      return false;\n    }\n    if (circleDistanceY > rh / 2 + radius) {\n      return false;\n    }\n\n    if (circleDistanceX <= rw / 2) {\n      return true;\n    }\n    if (circleDistanceY <= rh / 2) {\n      return true;\n    }\n\n    const cornerDistanceSq =\n      (circleDistanceX - rw / 2) ** 2 + (circleDistanceY - rh / 2) ** 2;\n\n    return cornerDistanceSq <= radius ** 2;\n  }\n\n  export const preset = (): Brush => ({\n    size: Size.preset(),\n    strength: Strength.preset(),\n    blur: Blur.preset(),\n  });\n\n  const useState = GlobalState.create(() => ({ brush: preset() }));\n\n  export const use = (): Brush => useState(({ brush }) => brush);\n  export const useSet = () => {\n    const brush = use();\n    const set = useState.setState;\n    return useCallback(\n      (setBrush: React.SetStateAction<Brush>) =>\n        set({\n          brush: typeof setBrush === \"function\" ? setBrush(brush) : setBrush,\n        }),\n      [set, brush]\n    );\n  };\n\n  export function Tool() {\n    return (\n      <>\n        <Cursor />\n        <Editor.Tool label=\"Eraser\" tool=\"brush\">\n          <Brush.Icon />\n        </Editor.Tool>\n      </>\n    );\n  }\n\n  export function Icon() {\n    return <Theme.Icon.Eraser strokeWidth={1.5} size={22} />;\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Camera/Center.tsx",
    "content": "import { Editor } from \"~/Editor\";\n\nexport namespace Center {\n  export const useGet = () => {\n    const canvas = Editor.Canvas.use();\n    return useCallback(() => {\n      if (!canvas.current) return;\n\n      const position = canvas.current.getPosition();\n      const size = canvas.current.getSize();\n      const scale = {\n        x: canvas.current.scaleX(),\n        y: canvas.current.scaleY(),\n      };\n\n      return {\n        x: (-position.x + size.width / 2) / scale.x,\n        y: (-position.y + size.height / 2) / scale.y,\n      };\n    }, [canvas]);\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Camera/Hand.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Shortcut as Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Hand {\n  export function Tool() {\n    return (\n      <Editor.Tool tool=\"hand\">\n        <Theme.Icon.Hand strokeWidth={1.5} size={22} />\n      </Editor.Tool>\n    );\n  }\n\n  export namespace Shortcuts {\n    export const use = () => {\n      const setTool = Editor.Tool.Active.useSet();\n      Shortcut.use(\n        useMemo(\n          () => ({\n            name: [\"Camera\", \"Hand\"],\n            icon: Theme.Icon.Hand,\n\n            keys: \"h\",\n            action: () => setTool(\"hand\"),\n          }),\n          [setTool]\n        )\n      );\n    };\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Camera/Reset.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Shortcut as Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Reset {\n  export const use = () => {\n    const box = Editor.Entities.useSurroundingBox();\n    const setCamera = Editor.Camera.useSet();\n    return useCallback(() => {\n      if (!box) return;\n      setCamera(box);\n    }, [box, setCamera]);\n  };\n\n  export function Tool() {\n    const reset = use();\n    return (\n      <Editor.Tool onClick={reset}>\n        <Theme.Icon.LocateFixed />\n      </Editor.Tool>\n    );\n  }\n\n  export namespace Shortcuts {\n    export const use = () => {\n      const reset = Reset.use();\n      Shortcut.use(\n        useMemo(\n          () => ({\n            name: [\"Camera\", \"Reset\"],\n            icon: Theme.Icon.LocateFixed,\n\n            keys: [\"Meta\", \"9\"],\n            action: reset,\n          }),\n          [reset]\n        )\n      );\n    };\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Camera/Shortcut.tsx",
    "content": "import { Editor } from \"~/Editor\";\n\nexport namespace Shortcuts {\n  export const use = () => {\n    // Editor.Camera.Hand.Shortcuts.use();\n    Editor.Camera.Reset.Shortcuts.use();\n    Editor.Camera.Zoom.Shortcuts.use();\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Camera/Zoom.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Shortcut as Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Zoom {\n  export function Tools() {\n    return (\n      <>\n        <In.Tool />\n        <Out.Tool />\n      </>\n    );\n  }\n\n  export namespace Shortcuts {\n    export const use = () => {\n      In.Shortcuts.use();\n      Out.Shortcuts.use();\n      Reset.Shortcuts.use();\n    };\n  }\n\n  export namespace In {\n    export const use = () => {\n      const canvasRef = Editor.Canvas.use();\n      return useCallback(() => {\n        if (!canvasRef?.current) return;\n        Editor.Canvas.changeZoom(1.1, canvasRef.current);\n      }, [canvasRef]);\n    };\n\n    export function Tool() {\n      const zoomIn = use();\n      return (\n        <Editor.Tool onClick={zoomIn}>\n          <Theme.Icon.ZoomIn />\n        </Editor.Tool>\n      );\n    }\n\n    export namespace Shortcuts {\n      export const use = () => {\n        const zoomIn = In.use();\n        Shortcut.use(\n          useMemo(\n            () => ({\n              name: [\"Camera\", \"Zoom\", \"In\"],\n              icon: Theme.Icon.ZoomIn,\n\n              keys: [\"Meta\", \"=\"],\n              action: zoomIn,\n            }),\n            [zoomIn]\n          )\n        );\n      };\n    }\n  }\n\n  export namespace Out {\n    export const use = () => {\n      const canvasRef = Editor.Canvas.use();\n      return useCallback(() => {\n        if (!canvasRef?.current) return;\n        Editor.Canvas.changeZoom(0.9, canvasRef.current);\n      }, [canvasRef]);\n    };\n\n    export function Tool() {\n      const zoomOut = use();\n      return (\n        <Editor.Tool onClick={zoomOut}>\n          <Theme.Icon.ZoomOut />\n        </Editor.Tool>\n      );\n    }\n\n    export namespace Shortcuts {\n      export const use = () => {\n        const zoomOut = Out.use();\n        Shortcut.use(\n          useMemo(\n            () => ({\n              name: [\"Camera\", \"Zoom\", \"Out\"],\n              icon: Theme.Icon.ZoomIn,\n\n              keys: [\"Meta\", \"-\"],\n              action: zoomOut,\n            }),\n            [zoomOut]\n          )\n        );\n      };\n    }\n  }\n\n  export namespace Reset {\n    export const use = () => {\n      const canvasRef = Editor.Canvas.use();\n      return useCallback(() => {\n        if (!canvasRef?.current) return;\n        Editor.Canvas.changeZoom(undefined, canvasRef.current);\n      }, [canvasRef]);\n    };\n\n    export namespace Shortcuts {\n      export const use = () => {\n        const resetZoom = Reset.use();\n        Shortcut.use(\n          useMemo(\n            () => ({\n              name: [\"Camera\", \"Zoom\", \"Reset\"],\n              icon: Theme.Icon.Search,\n\n              keys: [\"Meta\", \"0\"],\n              action: resetZoom,\n            }),\n            [resetZoom]\n          )\n        );\n      };\n    }\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Camera/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Box } from \"~/Geometry\";\n\nimport { Center } from \"./Center\";\nimport { Hand } from \"./Hand\";\nimport { Reset } from \"./Reset\";\nimport { Shortcuts } from \"./Shortcut\";\nimport { Zoom } from \"./Zoom\";\n\nexport type Camera = Box;\n\nexport declare namespace Camera {\n  export { Center, Hand, Reset, Shortcuts, Zoom };\n}\n\nexport namespace Camera {\n  Camera.Center = Center;\n  Camera.Hand = Hand;\n  Camera.Reset = Reset;\n  Camera.Shortcuts = Shortcuts;\n  Camera.Zoom = Zoom;\n\n  export const useSet = () => {\n    const padding = 25;\n    const canvas = Editor.Canvas.use();\n\n    return useCallback(\n      (boxWithoutPadding: Box) => {\n        if (!canvas?.current) return;\n\n        const box = {\n          x: boxWithoutPadding.x - padding,\n          y: boxWithoutPadding.y - padding,\n          width: boxWithoutPadding.width + padding * 2,\n          height: boxWithoutPadding.height + padding * 2,\n        };\n\n        const scale = Math.min(\n          canvas.current.width() / box.width,\n          canvas.current.height() / box.height\n        );\n\n        canvas.current.scale({ x: scale, y: scale });\n        canvas.current.position({\n          x:\n            -box.x * canvas.current.scaleX() +\n            canvas.current.width() / 2 -\n            (box.width * canvas.current.scaleX()) / 2,\n\n          y:\n            -box.y * canvas.current.scaleY() +\n            canvas.current.height() / 2 -\n            (box.height * canvas.current.scaleY()) / 2,\n        });\n      },\n      [canvas, padding]\n    );\n  };\n\n  export function Tools() {\n    return <Hand.Tool />;\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Canvas/Event.tsx",
    "content": "import Konva from \"konva\";\n\nexport type Event<Event> = Konva.KonvaEventObject<Event>;\nexport namespace Event {\n  export type Mouse = Event<MouseEvent>;\n  export type Drag = Event<DragEvent>;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Canvas/ExportBox.tsx",
    "content": "import Konva from \"konva\";\nimport { Rect } from \"react-konva\";\nimport { Editor } from \"~/Editor\";\nimport { GlobalState } from \"~/GlobalState\";\n\n// TODO: Move to `Editor.Export`\nexport function ExportBox() {\n  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n  const rectRef = useRef<Konva.Rect>(null!);\n  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n  const strokeRectRef = useRef<Konva.Rect>(null!);\n\n  const { origin, setOrigin, size, setSize } = ExportBox.useState();\n\n  const [activeTool] = Editor.Tool.Active.use();\n  const setActiveTool = Editor.Tool.Active.useSet();\n\n  const entities = Editor.Entities.use();\n  const selection = Editor.Selection.use();\n  const select = Editor.Selection.useSelect();\n\n  Editor.Canvas.useMouseDown(\n    (e) => {\n      if (activeTool === \"export\" && e.evt.button === 0) {\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        const stage = e.target.getStage()!;\n        const scale = stage.scaleX() || 1;\n        const mousePos = stage.getPointerPosition() || { x: 0, y: 0 };\n        const pos = stage.getPosition() || { x: 0, y: 0 };\n\n        setOrigin(() => [\n          mousePos.x / scale - pos.x / scale,\n          mousePos.y / scale - pos.y / scale,\n        ]);\n        setSize(() => [0, 0]);\n\n        if (rectRef.current) {\n          rectRef.current.visible(true);\n          strokeRectRef.current.visible(true);\n        }\n      }\n    },\n    [activeTool, rectRef.current]\n  );\n\n  Editor.Canvas.useMouseMove(\n    (e) => {\n      if (\n        activeTool === \"export\" &&\n        origin !== null &&\n        rectRef.current?.visible() &&\n        e.evt.buttons === 1\n      ) {\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        const stage = e.target.getStage()!;\n        const scale = stage.scaleX() || 1;\n        const mousePos = stage.getPointerPosition() || { x: 0, y: 0 };\n        const pos = stage.getPosition() || { x: 0, y: 0 };\n\n        const newWidth = mousePos.x / scale - pos.x / scale - origin[0];\n        const newHeight = mousePos.y / scale - pos.y / scale - origin[1];\n\n        if (newWidth < 0) {\n          setOrigin((origin) => [\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            origin![0] + newWidth,\n            strokeRectRef.current.y(),\n          ]);\n          setSize((size) => [-newWidth, size[1]]);\n        } else {\n          setSize((size) => [newWidth, size[1]]);\n        }\n\n        if (newHeight < 0) {\n          setOrigin((origin) => [\n            strokeRectRef.current.x(),\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            origin![1] + newHeight,\n          ]);\n          setSize((size) => [size[0], -newHeight]);\n        } else {\n          setSize((size) => [size[0], newHeight]);\n        }\n\n        const selected: string[] = [];\n        let doUpd = false;\n        entities.forEach((image) => {\n          if (image.type !== \"image\") return;\n          if (\n            Editor.Canvas.rectContainsRect(\n              rectRef.current.x(),\n              rectRef.current.y(),\n              rectRef.current.width(),\n              rectRef.current.height(),\n\n              image.x,\n              image.y,\n              image.width,\n              image.height\n            )\n          ) {\n            selected.push(image.id);\n\n            if (!selection.has(image.id)) {\n              doUpd = true;\n            }\n          } else if (selection.has(image.id)) {\n            doUpd = true;\n          }\n        });\n\n        if (doUpd) {\n          select(selected);\n        }\n      }\n    },\n    [activeTool, rectRef.current, origin]\n  );\n\n  Editor.Canvas.useMouseUp(() => {\n    if (activeTool === \"export\" && origin !== null && rectRef.current) {\n      const bounds = {\n        x: rectRef.current.x(),\n        y: rectRef.current.y(),\n        width: rectRef.current.width(),\n        height: rectRef.current.height(),\n      };\n\n      let images = entities.flatMap((e) =>\n        e.type === \"image\" && e.visible ? [e] : []\n      );\n\n      // check if the pixels are like less than 10\n      if (rectRef.current.width() < 10 && rectRef.current.height() < 10) {\n        // we just want to render clicked on entity\n        const image = Editor.Canvas.Render.getImageFromPoint(\n          rectRef.current.x(),\n          rectRef.current.y(),\n          entities\n            .flatMap((e) => (e.type === \"image\" && e.visible ? [e] : []))\n            .reverse()\n        );\n\n        if (image) {\n          const img: Editor.Image = {\n            ...image,\n            x: 0,\n            y: 0,\n            type: \"image\",\n            id: \"export\",\n            index: 0,\n            locked: false,\n            visible: true,\n          };\n          images = [img];\n\n          bounds.x = image.x;\n          bounds.y = image.y;\n          bounds.width = image.width;\n          bounds.height = image.height;\n        }\n      }\n\n      const canvas = Editor.Canvas.Render.createImageFromBox(\n        bounds.x,\n        bounds.y,\n        bounds.width,\n        bounds.height,\n        images.reverse(),\n        1\n      );\n\n      if (canvas) {\n        const link = document.createElement(\"a\");\n        link.download = \"export.png\";\n        link.href = canvas.toDataURL(\"image/png\");\n        link.click();\n        canvas.remove();\n      }\n\n      setOrigin(() => null);\n      setActiveTool(\"select\");\n    }\n  }, [activeTool, rectRef.current]);\n\n  return (\n    <>\n      {origin && size && (\n        <>\n          <Rect\n            x={origin[0]}\n            y={origin[1]}\n            width={size[0]}\n            height={size[1]}\n            fill=\"#4f46e5\"\n            opacity={0.2}\n            ref={rectRef}\n            listening={false}\n          />\n          <Rect\n            x={origin[0]}\n            y={origin[1]}\n            width={size[0]}\n            height={size[1]}\n            stroke=\"#4f46e5\"\n            strokeWidth={3}\n            dash={[5, 5]}\n            ref={strokeRectRef}\n            listening={false}\n          />\n        </>\n      )}\n    </>\n  );\n}\n\nexport namespace ExportBox {\n  export const useState = GlobalState.create<{\n    origin: [number, number] | null;\n    size: [number, number];\n    setOrigin: (\n      fn: (origin: [number, number] | null) => [number, number] | null\n    ) => void;\n    setSize: (fn: (size: [number, number]) => [number, number]) => void;\n  }>((set) => ({\n    origin: null,\n    size: [0, 0],\n    setOrigin: (fn) => set((state) => ({ ...state, origin: fn(state.origin) })),\n    setSize: (fn) => set((state) => ({ ...state, size: fn(state.size) })),\n  }));\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Canvas/Grid.tsx",
    "content": "import Konva from \"konva\";\nimport { Shape } from \"react-konva\";\n\nimport { Editor } from \"~/Editor\";\nimport { Theme } from \"~/Theme\";\n\nexport function Grid() {\n  const dark = Theme.useDark();\n  const stageRef = Editor.Canvas.use();\n\n  if (1) return null;\n\n  if (!stageRef) {\n    return null;\n  }\n\n  const sceneFunc = useCallback(\n    (context: Konva.Context) => {\n      if (!stageRef.current) return;\n\n      const scale = stageRef.current.scaleX(); // 2 if zoomed in, 0.5 if zoomed out\n\n      // dont draw grid if zoomed out too far\n      if (scale < 0.25) {\n        return;\n      }\n\n      const stageSize = stageRef.current.getSize(); // get the size of the stage\n      const stagePos = stageRef.current.position(); // top left corner of viewport\n      const dotSize = 10; // size of the dots\n      const spacing = 64; // distance between dots\n\n      // draw the background that gets replaced by the lines later (this will be the color of the grid dots)\n      context.beginPath();\n      context.globalCompositeOperation = \"source-over\";\n      context.fillStyle = dark\n        ? \"rgba(255,255,255, 0.05)\"\n        : \"rgba(0, 0, 0, 0.04)\";\n\n      context.fillRect(\n        -stagePos.x / scale,\n        -stagePos.y / scale,\n        stageSize.width / scale,\n        stageSize.height / scale\n      );\n      context.closePath();\n\n      // draw lines with destination-out to make holes where they arent intersecting that are grid dots\n      context.globalCompositeOperation = \"destination-out\";\n      context.strokeStyle = \"white\";\n\n      // calc lineWidth based on dotSize and scale. The lines should be just big enough to leave dots of the size of dotSize\n      const lineWidth = spacing - dotSize;\n\n      // starting with the first line that enters the viewport, draw lines that are spaced by spacing with a width of lineWidth\n      // this will draw lines that are spaced by spacing and are just big enough to leave dots of the size of dotSize\n      context.lineWidth = lineWidth;\n      for (\n        let x =\n          -stagePos.x / scale -\n          lineWidth * 2 -\n          dotSize / 2 +\n          (spacing - ((-stagePos.x / scale - lineWidth / 2) % spacing));\n        x < stageSize.width / scale - stagePos.x / scale + lineWidth / 2;\n        x += spacing\n      ) {\n        context.beginPath();\n        context.moveTo(x, -stagePos.y / scale - lineWidth / 2);\n        context.lineTo(\n          x,\n          stageSize.height / scale - stagePos.y / scale + lineWidth / 2\n        );\n        context.stroke();\n        context.closePath();\n      }\n\n      for (\n        let y =\n          -stagePos.y / scale -\n          lineWidth * 2 -\n          dotSize / 2 +\n          (spacing - ((-stagePos.y / scale - lineWidth / 2) % spacing));\n        y < stageSize.height / scale - stagePos.y / scale + lineWidth / 2;\n        y += spacing\n      ) {\n        context.beginPath();\n        context.moveTo(-stagePos.x / scale, y);\n        context.lineTo((-stagePos.x + stageSize.width) / scale, y);\n        context.stroke();\n        context.closePath();\n      }\n\n      // reset the globalCompositeOperation\n      context.globalCompositeOperation = \"source-over\";\n    },\n    [stageRef, dark]\n  );\n\n  return <Shape stroke=\"white\" {...{ sceneFunc }} />;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Canvas/Render.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Box, Boxes } from \"~/Geometry\";\n\nexport namespace Render {\n  export type RenderMode = \"txt2img\" | \"img2img\" | \"inpaint\";\n\n  export type RenderData = {\n    mode: RenderMode;\n    init: string;\n    mask: string;\n  };\n\n  export function getImageFromPoint(\n    x: number,\n    y: number,\n    images: Editor.Images\n  ) {\n    return images.find(\n      (image) =>\n        image.x <= x &&\n        image.x + image.width >= x &&\n        image.y <= y &&\n        image.y + image.height >= y &&\n        image.element?.src &&\n        image.visible\n    );\n  }\n\n  export function getBoundsOfImages(images: Editor.Images) {\n    return Boxes.surroundingBox(images) as Box;\n  }\n\n  export function createImageFromBox(\n    x: number,\n    y: number,\n    width: number,\n    height: number,\n    images: Editor.Images,\n    opacity: number,\n    autoSize?: boolean,\n    useOriginals?: boolean\n  ) {\n    // check if there are any images intersecting with the box\n    const intersectingImages = images.filter(\n      (image) =>\n        image.x <= x + width &&\n        image.x + image.width >= x &&\n        image.y <= y + height &&\n        image.y + image.height >= y &&\n        image.visible &&\n        (useOriginals ? image.original.element?.src : image.element?.src)\n    );\n\n    if (autoSize && intersectingImages.length > 0) {\n      // resize the box to fit the images\n      const bounds = getBoundsOfImages(intersectingImages);\n      x = bounds.x;\n      y = bounds.y;\n      width = bounds.width;\n      height = bounds.height;\n    }\n\n    if (intersectingImages.length > 0) {\n      // get the canvas\n      const workingCanvas = document.createElement(\"canvas\");\n\n      workingCanvas.width = width;\n      workingCanvas.height = height;\n\n      const workingCtx = workingCanvas.getContext(\"2d\");\n      if (!workingCtx) return;\n\n      intersectingImages.sort().forEach((image) => {\n        const scale = Math.max(\n          image.width / image.original.width,\n          image.height / image.original.height\n        );\n\n        const offset = {\n          x: -((image.width - image.original.width * scale) / 2) / scale,\n          y: -((image.height - image.original.height * scale) / 2) / scale,\n        };\n\n        if (!image.element?.src) return;\n        if (useOriginals ? image.original.element : image.element) {\n          workingCtx.drawImage(\n            image.element,\n\n            offset.x,\n            offset.y,\n            image.width / scale,\n            image.height / scale,\n\n            image.x - x,\n            image.y - y,\n            image.width,\n            image.height\n          );\n\n          if (useOriginals && image.original.element) {\n            // draw the original *behind* the image so as to preserve inpainted regions\n            workingCtx.globalCompositeOperation = \"destination-over\";\n            workingCtx.drawImage(\n              image.original.element,\n\n              offset.x,\n              offset.y,\n              image.width / scale,\n              image.height / scale,\n\n              image.x - x,\n              image.y - y,\n              image.width,\n              image.height\n            );\n\n            workingCtx.globalCompositeOperation = \"source-over\";\n          }\n        }\n      });\n\n      // now draw bg\n      if (useOriginals) {\n        // draw 50% gray on the canvas\n        workingCtx.fillStyle = \"rgb(128, 128, 128)\";\n        workingCtx.globalCompositeOperation = \"destination-over\";\n        workingCtx.fillRect(0, 0, workingCanvas.width, workingCanvas.height);\n        workingCtx.globalCompositeOperation = \"source-over\";\n      }\n\n      // if there's alpha, apply the alpha to the entire canvas at this point\n      if (opacity < 1) {\n        workingCtx.globalAlpha = 1 - opacity;\n        workingCtx.fillStyle = \"white\";\n        workingCtx.globalCompositeOperation = \"destination-out\";\n        workingCtx.fillRect(0, 0, workingCanvas.width, workingCanvas.height);\n        workingCtx.globalAlpha = 1;\n        workingCtx.globalCompositeOperation = \"source-over\";\n      }\n\n      return workingCanvas;\n    } else {\n      return null;\n    }\n  }\n\n  export function getGenerationMetadata(\n    images: Editor.Images,\n    box: Box,\n    opacity: number\n  ): RenderData | null {\n    const form = {\n      x: box.x,\n      y: box.y,\n      width: Math.ceil(box.width / 64) * 64,\n      height: Math.ceil(box.height / 64) * 64,\n    };\n\n    if (form.width * form.height > 1_048_576) {\n      console.log(\"box is too large\");\n      return null;\n    }\n\n    const data: RenderData = {\n      mode: \"txt2img\",\n      init: \"\",\n      mask: \"\",\n    };\n\n    // check if there are any images intersecting with the box\n    const workingCanvas = createImageFromBox(\n      form.x,\n      form.y,\n      form.width,\n      form.height,\n      images,\n      opacity,\n      false,\n      false\n    );\n\n    const initImgCanvas = createImageFromBox(\n      form.x,\n      form.y,\n      form.width,\n      form.height,\n      images,\n      opacity,\n      false,\n      true\n    );\n\n    if (workingCanvas && initImgCanvas) {\n      // make a new canvas and draw the cutout into it\n      const maskCanvas = document.createElement(\"canvas\");\n      maskCanvas.width = initImgCanvas.width;\n      maskCanvas.height = initImgCanvas.height;\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      const maskCtx = maskCanvas.getContext(\"2d\")!;\n      maskCtx.drawImage(\n        workingCanvas,\n        0,\n        0,\n        workingCanvas.width,\n        workingCanvas.height,\n        0,\n        0,\n        workingCanvas.width,\n        workingCanvas.height\n      );\n\n      // render white where the canvas is transparent and black where the canvas is opaque\n      // first render everything that exists as black using globalCompositeOperation = 'source-in'\n      maskCtx.fillStyle = \"white\";\n      maskCtx.globalCompositeOperation = \"source-in\";\n      maskCtx.fillRect(0, 0, maskCanvas.width, maskCanvas.height);\n\n      // then just draw a rectangle over the canvas with white and use globalCompositeOperation = 'source-out'\n      maskCtx.fillStyle = \"black\";\n      maskCtx.globalCompositeOperation = \"destination-atop\";\n      maskCtx.fillRect(0, 0, maskCanvas.width, maskCanvas.height);\n\n      maskCtx.globalCompositeOperation = \"source-over\";\n\n      // check if the mask is all white\n      const maskData = maskCtx.getImageData(\n        0,\n        0,\n        maskCanvas.width,\n        maskCanvas.height\n      );\n      const maskBuffer32 = new Uint32Array(maskData.data.buffer);\n      let allWhite = true;\n      let nonWhitePxls = 0;\n      for (let i = 0; i < maskBuffer32.length; i++) {\n        // check if the pixel isnt white\n        if (maskBuffer32[i] !== 0xffffffff) {\n          nonWhitePxls++;\n        }\n\n        // if there is enough non-white pixels, then we can stop checking\n        if (nonWhitePxls > 25) {\n          allWhite = false;\n          break;\n        }\n      }\n\n      if (!allWhite) {\n        data.mode = \"inpaint\";\n\n        // blur the greyscale mask a little bit to soften the edges between white and black\n        maskCtx.filter = \"blur(20px)\";\n        maskCtx.drawImage(\n          maskCanvas,\n          0,\n          0,\n          maskCanvas.width,\n          maskCanvas.height,\n          0,\n          0,\n          maskCanvas.width,\n          maskCanvas.height\n        );\n      } else {\n        data.mode = \"img2img\";\n\n        if (opacity >= 1) {\n          // if the opacity is one and we are doing img2img, make the mask 85% white (15% black)\n          maskCtx.fillStyle = \"rgb(210, 210, 210)\";\n          maskCtx.fillRect(0, 0, maskCanvas.width, maskCanvas.height);\n        }\n      }\n\n      // now render that to a PNG\n      data.mask = maskCanvas.toDataURL(\"image/png\", 1);\n\n      // download init img\n      // const m = document.createElement(\"a\");\n      // m.href = data.mask;\n      // m.download = \"mask.png\";\n      // m.click();\n\n      data.init = initImgCanvas.toDataURL(\"image/png\", 1);\n\n      // download init img\n      // const a = document.createElement(\"a\");\n      // a.href = data.init;\n      // a.download = \"init.png\";\n      // a.click();\n    }\n\n    return data;\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Canvas/SelectBox.tsx",
    "content": "import Konva from \"konva\";\nimport { Rect } from \"react-konva\";\nimport { Editor } from \"~/Editor\";\n\nexport function SelectBox() {\n  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n  const rectRef = useRef<Konva.Rect>(null!);\n\n  const [origin, setOrigin] = useState<[number, number] | null>(null);\n  const [activeTool] = Editor.Tool.Active.use();\n\n  const entities = Editor.Entities.use();\n  const selection = Editor.Selection.use();\n  const select = Editor.Selection.useSelect();\n\n  const doSelection = useCallback(() => {\n    const selected: string[] = [];\n    let doUpd = false;\n    entities.forEach((image) => {\n      if (image.type !== \"dream\") return;\n      if (\n        Editor.Canvas.rectContainsRect(\n          rectRef.current.x(),\n          rectRef.current.y(),\n          rectRef.current.width(),\n          rectRef.current.height(),\n\n          image.x,\n          image.y,\n          image.width,\n          image.height\n        )\n      ) {\n        selected.push(image.id);\n\n        if (!selection.has(image.id)) {\n          doUpd = true;\n        }\n      } else if (selection.has(image.id)) {\n        doUpd = true;\n      }\n    });\n\n    if (doUpd) {\n      select(selected);\n    }\n  }, [entities, selection, select]);\n\n  Editor.Canvas.useMouseDown(\n    (e) => {\n      if (activeTool === \"select\" && e.evt.button === 0) {\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        const stage = e.target.getStage()!;\n        const scale = stage.scaleX() || 1;\n        const mousePos = stage.getPointerPosition() || { x: 0, y: 0 };\n        const pos = stage.getPosition() || { x: 0, y: 0 };\n\n        const newOrigin: [number, number] = [\n          mousePos.x / scale - pos.x / scale,\n          mousePos.y / scale - pos.y / scale,\n        ];\n\n        setOrigin(newOrigin);\n\n        if (rectRef.current) {\n          rectRef.current.position({ x: newOrigin[0], y: newOrigin[1] });\n          rectRef.current.width(0);\n          rectRef.current.height(0);\n          rectRef.current.visible(true);\n        }\n      }\n    },\n    [activeTool, rectRef.current]\n  );\n\n  Editor.Canvas.useMouseMove(\n    (e) => {\n      if (\n        activeTool === \"select\" &&\n        origin !== null &&\n        rectRef.current?.visible() &&\n        e.evt.buttons === 1\n      ) {\n        const stage = rectRef.current?.getStage();\n\n        if (!stage) {\n          console.error(\"No stage\");\n          return;\n        }\n\n        stage.setPointersPositions(e.evt);\n        const scale = stage.scaleX() || 1;\n        const mousePos = stage.getPointerPosition() || { x: 0, y: 0 };\n        const pos = stage.getPosition() || { x: 0, y: 0 };\n\n        const newWidth = mousePos.x / scale - pos.x / scale - origin[0];\n        const newHeight = mousePos.y / scale - pos.y / scale - origin[1];\n\n        if (newWidth < 0) {\n          rectRef.current.position({\n            x: origin[0] + newWidth,\n            y: rectRef.current.y(),\n          });\n          rectRef.current.width(-newWidth);\n        } else {\n          rectRef.current.width(newWidth);\n        }\n\n        if (newHeight < 0) {\n          rectRef.current.position({\n            x: rectRef.current.x(),\n            y: origin[1] + newHeight,\n          });\n          rectRef.current.height(-newHeight);\n        } else {\n          rectRef.current.height(newHeight);\n        }\n\n        doSelection();\n      }\n    },\n    [activeTool, rectRef.current, origin]\n  );\n\n  Editor.Canvas.useMouseUp(\n    (e) => {\n      if (activeTool === \"select\" && origin !== null && rectRef.current) {\n        e.cancelBubble = true;\n        rectRef.current.visible(false);\n\n        // select everything in the box\n        doSelection();\n\n        setOrigin(null);\n      }\n    },\n    [activeTool, rectRef.current]\n  );\n\n  return <Rect fill=\"#3b82f6\" opacity={0.2} ref={rectRef} listening={false} />;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Canvas/Setup.tsx",
    "content": "import Konva from \"konva\";\nimport { useDebounce, useWindowSize } from \"react-use\";\n\nimport { Editor } from \"~/Editor\";\nimport { GlobalState } from \"~/GlobalState\";\n\nexport namespace Setup {\n  const useGlobalState = GlobalState.create<{\n    id?: ID;\n    canvas: React.RefObject<Konva.Stage>;\n    loading: boolean;\n    zoom: number;\n  }>(() => ({\n    canvas: React.createRef(),\n    loading: true,\n    zoom: 1,\n  }));\n\n  export const useCanvas = () => useGlobalState(({ canvas }) => canvas);\n\n  export const use = () => {\n    useAutomaticResize();\n\n    const resize = Editor.Canvas.useResize();\n    const resetEditor = Editor.Reset.use();\n\n    const state = useGlobalState();\n    const setState = useGlobalState.setState;\n\n    const [id] = useState(ID.create());\n\n    useEffect(() => {\n      if (id === state.id) return;\n      setState({ id, loading: true });\n    }, [id, state.id, setState]);\n\n    useEffect(() => {\n      if (!state.loading || !state.id || !state.canvas.current) return;\n\n      resize();\n      resetEditor();\n      setState({ loading: false });\n    }, [state.loading, state.id, state.canvas, setState, resize, resetEditor]);\n\n    return state;\n  };\n\n  const useAutomaticResize = () => {\n    const { height, width } = useWindowSize();\n    const resize = Editor.Canvas.useResize();\n    useDebounce(resize, 1000, [width, height, resize]);\n  };\n\n  export const setZoom = (zoom: number) => {\n    useGlobalState.setState({ zoom });\n  };\n\n  export const useZoom = () => {\n    const { zoom } = useGlobalState(({ zoom }) => ({ zoom }));\n    return zoom;\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Canvas/index.tsx",
    "content": "import Konva from \"konva\";\nimport { Layer, Stage } from \"react-konva\";\n\nimport { Editor } from \"~/Editor\";\n\nimport { Event } from \"./Event\";\nimport { ExportBox } from \"./ExportBox\";\nimport { Grid } from \"./Grid\";\nimport { Render } from \"./Render\";\nimport { Setup } from \"./Setup\";\n\nexport function Canvas({ children }: React.PropsWithChildren) {\n  const ref = useRef<HTMLDivElement>(null);\n\n  const { canvas, loading } = Setup.use();\n\n  const moving = useRef<boolean>(false);\n\n  const [activeTool] = Editor.Tool.Active.use();\n  const clearSelection = Editor.Selection.useClear();\n\n  return (\n    <div\n      ref={ref}\n      id=\"canvas-container\"\n      className={classes(\n        \"absolute bottom-0 left-0 right-0 top-0 z-0 opacity-100\",\n        loading && \"opacity-0\"\n      )}\n      onDrop={Editor.Image.Import.useOnDrop()}\n      onDragOver={(event) => event.preventDefault()}\n    >\n      <Stage\n        ref={canvas}\n        css={css`\n          & .konvajs-content {\n            position: absolute !important;\n            top: 0;\n            left: 0;\n            right: 0;\n            bottom: 0;\n          }\n        `}\n        onMouseMove={(e: Konva.KonvaEventObject<MouseEvent>) => {\n          e.cancelBubble = true;\n\n          if (\n            (e.evt.buttons === 4 ||\n              (e.evt.button === 0 && activeTool === \"select\")) &&\n            moving.current\n          ) {\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n            const stage = e.target.getStage()!;\n\n            // move the stage by the amount of the latest movement\n            const oldPos = stage.position();\n\n            stage.position({\n              x: oldPos.x + e.evt.movementX,\n              y: oldPos.y + e.evt.movementY,\n            });\n\n            if (activeTool !== \"brush\") {\n              document.body.style.cursor = \"grabbing\";\n            }\n          }\n        }}\n        onWheel={(e: Konva.KonvaEventObject<WheelEvent>) => {\n          // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n          Canvas.changeZoomRelative(e.target.getStage()!, e.evt.deltaY);\n        }}\n        onMouseDown={(e: Konva.KonvaEventObject<MouseEvent>) => {\n          if (\n            e.evt.buttons === 4 ||\n            (e.evt.button === 0 && activeTool === \"select\")\n          ) {\n            moving.current = true;\n          }\n\n          if (activeTool === \"select\") {\n            // should only bubble up if no images were clicked (unselect all images)\n            clearSelection();\n          }\n        }}\n        onMouseUp={() => {\n          moving.current = false;\n          if (activeTool !== \"brush\") {\n            document.body.style.cursor = \"default\";\n          }\n        }}\n        onMouseLeave={() => {\n          moving.current = false;\n        }}\n      >\n        <Layer>\n          <Grid />\n        </Layer>\n        {children}\n        <Layer>\n          {/* <SelectBox /> */}\n          <ExportBox />\n        </Layer>\n      </Stage>\n    </div>\n  );\n}\n\nexport declare namespace Canvas {\n  export { Event, ExportBox, Render };\n}\n\nexport namespace Canvas {\n  export const use = () => Setup.useCanvas();\n\n  export const useGetContainer = () => {\n    const canvas = use();\n    return useCallback(\n      () => canvas.current?.container().parentElement,\n      [canvas]\n    );\n  };\n\n  export const useResize = () => {\n    const canvas = use();\n    const getContainer = useGetContainer();\n    return useCallback(() => {\n      if (!canvas.current) return;\n\n      const container = getContainer();\n      if (!container) return;\n\n      const width = container.offsetWidth;\n      const height = container.offsetHeight;\n\n      if (!width || !height) return;\n\n      canvas.current.setSize({ width, height });\n    }, [canvas, getContainer]);\n  };\n\n  export function useStageEvent(\n    events: string,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    callback: (e: Konva.KonvaEventObject<any>) => void,\n    deps: unknown[] = []\n  ) {\n    const stageRef = use();\n    useEffect(\n      () => {\n        if (stageRef && stageRef.current) {\n          stageRef.current.on(events, callback);\n          return () => {\n            stageRef.current?.off(events, callback);\n          };\n        }\n      },\n      // eslint-disable-next-line react-hooks/exhaustive-deps\n      [events, callback, stageRef, ...deps]\n    );\n\n    return stageRef?.current || null;\n  }\n\n  // hook to get mousemove event from stage\n  export function useMouseMove(\n    callback: (e: Konva.KonvaEventObject<MouseEvent>) => void,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    deps: any[] = []\n  ) {\n    return useStageEvent(\"mousemove\", callback, deps);\n  }\n\n  // hook to get mouseup event from stage\n  export function useMouseUp(\n    callback: (e: Konva.KonvaEventObject<MouseEvent>) => void,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    deps: any[] = []\n  ) {\n    return useStageEvent(\"mouseup\", callback, deps);\n  }\n\n  // hook to get mousedown event from stage\n  export function useMouseDown(\n    callback: (e: Konva.KonvaEventObject<MouseEvent>) => void,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    deps: any[] = []\n  ) {\n    return useStageEvent(\"mousedown\", callback, deps);\n  }\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  export function collectSnapLines(entities: any[]) {\n    const vertical: number[] = [];\n    const horizontal: number[] = [];\n\n    entities.forEach((entity) => {\n      const pos = entity.position();\n      const width = entity.width();\n      const height = entity.height();\n\n      vertical.push(pos.x, pos.x + width);\n      horizontal.push(pos.y, pos.y + height);\n    });\n\n    return { vertical, horizontal };\n  }\n\n  export function rectContainsRect(\n    srx: number,\n    sry: number,\n    srw: number,\n    srh: number,\n\n    drx: number,\n    dry: number,\n    drw: number,\n    drh: number\n  ): boolean {\n    // check if the source rect contains the destination rect in any way\n    return (\n      srx <= drx &&\n      sry <= dry &&\n      srx + srw >= drx + drw &&\n      sry + srh >= dry + drh\n    );\n  }\n\n  export function changeZoom(factor: number | undefined, stage: Konva.Stage) {\n    const oldScale = stage.scaleX();\n    const pointer = {\n      x: stage.width() / 2,\n      y: stage.height() / 2,\n    };\n\n    const mousePointTo = {\n      x: (pointer.x - stage.x()) / oldScale,\n      y: (pointer.y - stage.y()) / oldScale,\n    };\n\n    const newScale = factor ? oldScale * factor : 1;\n\n    stage.scale({ x: newScale, y: newScale });\n\n    const newPos = {\n      x: pointer.x - mousePointTo.x * newScale,\n      y: pointer.y - mousePointTo.y * newScale,\n    };\n\n    stage.position(newPos);\n    stage.batchDraw();\n  }\n\n  export function changeZoomRelative(\n    stage: Konva.Stage,\n    delta: number,\n    mousePos?: { x: number; y: number }\n  ) {\n    if (delta === 0) return;\n\n    const oldScale = stage.scaleX();\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    const pointer = stage.getPointerPosition()!;\n\n    const mousePointTo = mousePos || {\n      x: (pointer.x - stage.x()) / oldScale,\n      y: (pointer.y - stage.y()) / oldScale,\n    };\n\n    const direction = delta > 0 ? -1 : 1;\n\n    const newScale =\n      direction > 0 ? oldScale * (1 + 0.02) : oldScale * (1 - 0.02);\n\n    stage.scale({ x: newScale, y: newScale });\n\n    const newPos = {\n      x: pointer.x - mousePointTo.x * newScale,\n      y: pointer.y - mousePointTo.y * newScale,\n    };\n\n    stage.position(newPos);\n    stage.batchDraw();\n\n    // set zoom in canvas store\n    const zoom = stage.scaleX();\n    Setup.setZoom(zoom);\n  }\n\n  export function useTriggerWheelEvent() {\n    const stage = use();\n    return useCallback(\n      (e: WheelEvent) => {\n        if (e.deltaY === 0) {\n          // this happens if people have a touchpad/mouse that can scroll horizontally\n          return;\n        }\n\n        if (stage && stage.current) {\n          stage.current.setPointersPositions(e);\n          changeZoomRelative(stage.current, e.deltaY);\n        }\n      },\n      [stage]\n    );\n  }\n\n  export function useTriggerMouseMoveEvent() {\n    const stage = use();\n    return useCallback(\n      (e: MouseEvent) => {\n        if (stage && stage.current) {\n          stage.current.fire(\n            \"mousemove\",\n            {\n              evt: e,\n            },\n            true\n          );\n        }\n      },\n      [stage]\n    );\n  }\n\n  Canvas.Render = Render;\n  Canvas.ExportBox = ExportBox;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Dream/Box.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\n\nexport function Box({ id, showHandles }: { id: ID; showHandles?: boolean }) {\n  const { input } = Generation.Image.Input.use(id);\n  const selected = Editor.Selection.useSelected(id);\n  const [dream] = Editor.Entity.use<Editor.Dream>(id);\n  const loading = Generation.Image.Output.useIsGenerating(\n    dream ? dream?.outputID : undefined\n  );\n\n  if (!input) return null;\n  return (\n    <>\n      <div className={classes(\"pointer-events-none relative h-full w-full\")}>\n        <Generation.Image.SpecialEffects\n          showing\n          variant=\"editor\"\n          loading={loading}\n          border={selected}\n        />\n        {!selected && (\n          <div className=\"h-full w-full border-[2px] border-dashed border-white/50\" />\n        )}\n        <div\n          className={classes(\n            \"relative h-full w-full opacity-0 duration-150\",\n            selected && !loading && \"opacity-100\"\n          )}\n        >\n          {selected && showHandles && !input.model.includes(\"xl\") && (\n            <>\n              <Handle className=\"top-0 left-0\" />\n              <Handle className=\"top-0 left-1/2\" />\n              <Handle className=\"top-0 left-full\" />\n              <Handle className=\"top-1/2 left-0\" />\n              <Handle className=\"top-1/2 left-full\" />\n              <Handle className=\"top-full left-0\" />\n              <Handle className=\"top-full left-1/2\" />\n              <Handle className=\"top-full left-full\" />\n            </>\n          )}\n        </div>\n      </div>\n    </>\n  );\n}\n\nfunction Handle({ className }: Styleable) {\n  const size = Editor.Entity.Handle.size();\n  return (\n    <div\n      style={{ width: size, height: size }}\n      className={classes(\n        \"absolute z-[10] -translate-x-1/2 -translate-y-1/2 bg-white drop-shadow\",\n        className\n      )}\n    />\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Dream/Choose/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\n\nexport namespace Choose {\n  export const use = (id: ID) => {\n    const flatten = Editor.Entities.useFlatten();\n    const entities = Editor.Entities.use();\n    const [entity, setEntity] = Editor.Entity.use<Editor.Dream>(id);\n    const createImage = Editor.Image.Create.use();\n    const { autoFlatten } = Editor.State.use();\n\n    return useCallback(\n      (image: Generation.Image) => {\n        if (!entity || !image.src) return;\n\n        const title =\n          Generation.Image.Input.get(image.inputID)?.prompts[0].text ?? \"Image\";\n\n        const intersectingImages = entities.filter(\n          (image) =>\n            image.type === \"image\" &&\n            image.x < entity.x + entity.width &&\n            image.x + image.width > entity.x &&\n            image.y < entity.y + entity.height &&\n            image.y + image.height > entity.y &&\n            image.element?.src &&\n            image.visible &&\n            image.id !== id\n        );\n\n        const element = new window.Image();\n        element.src = image.src;\n\n        element.onload = () => {\n          const original = {\n            element,\n            width: element.width,\n            height: element.height,\n          };\n\n          if (intersectingImages.length >= 1 && autoFlatten) {\n            intersectingImages.push({\n              ...Editor.Image.preset(),\n              index: entities.length,\n              x: entity.x,\n              y: entity.y,\n              width: entity.width,\n              height: entity.height,\n              original,\n              element,\n              title,\n            });\n\n            // flatten everything into one image layer\n            flatten(intersectingImages as Editor.Images);\n          } else {\n            createImage({\n              title,\n              x: entity.x,\n              y: entity.y,\n              width: entity.width,\n              height: entity.height,\n              original,\n              element,\n            });\n          }\n        };\n\n        setEntity((entity) => {\n          entity.locked = false;\n          entity.outputID = undefined;\n          entity.choicesPage = 0;\n        });\n      },\n      [autoFlatten, createImage, entities, entity, flatten, id, setEntity]\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Dream/Create/Shortcut.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Shortcut as Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Shortcuts {\n  export const use = () => {\n    const createDream = Editor.Dream.Create.use();\n    Shortcut.use(\n      useMemo(\n        () => ({\n          name: [\"Dream\", \"Create\"],\n          icon: Theme.Icon.Plus,\n\n          keys: [\"Meta\", \"d\"],\n          action: () => createDream(),\n        }),\n        [createDream]\n      )\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Dream/Create/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\n\nimport { Shortcuts } from \"./Shortcut\";\n\nexport declare namespace Create {\n  export { Shortcuts };\n}\n\nexport namespace Create {\n  Create.Shortcuts = Shortcuts;\n\n  type Options = {\n    allowOverlap?: boolean;\n\n    dream?: Partial<Editor.Dream>;\n    inputID?: ID;\n  };\n\n  export const use = () => {\n    const [inputs, setInputs] = Generation.Image.Inputs.use();\n\n    const entities = Editor.Entities.use();\n    const setEntities = Editor.Entities.useSet();\n    const select = Editor.Selection.useSelect();\n    const getCameraCenter = Editor.Camera.Center.useGet();\n\n    return useCallback(\n      (options?: Options) => {\n        const id = options?.dream?.id ?? ID.create();\n        const optionsInput = options?.inputID\n          ? inputs[options.inputID]\n          : undefined;\n\n        const center = getCameraCenter();\n\n        const createDream = (\n          initial: Editor.Dream = {\n            ...Editor.Dream.preset(),\n            ...options?.dream,\n            id,\n            index: entities.length,\n          },\n          triesLeft = 10\n        ): Editor.Dream => {\n          if (triesLeft === 0 || options?.allowOverlap) return initial;\n\n          const entityCentered = !center\n            ? initial\n            : {\n                ...initial,\n                x: center.x - initial.width / 2,\n                y: center.y - initial.height / 2,\n              };\n\n          const overlappingEntity = entities.find(\n            ({ x, y, width, height }) =>\n              entityCentered.x === x &&\n              entityCentered.y === y &&\n              entityCentered.width === width &&\n              entityCentered.height === height\n          );\n\n          const offsetMax = 20;\n          return !overlappingEntity\n            ? entityCentered\n            : createDream(\n                {\n                  ...entityCentered,\n                  x: entityCentered.x + offsetMax * (Math.random() * 2 - 1),\n                  y: entityCentered.y + offsetMax * (Math.random() * 2 - 1),\n                },\n                triesLeft - 1\n              );\n        };\n\n        const entity = createDream();\n\n        entity.height = optionsInput?.height ?? entity.height;\n        entity.width = optionsInput?.width ?? entity.width;\n\n        const input = {\n          ...Generation.Image.Input.initial(id),\n          ...optionsInput,\n\n          id,\n          seed: 0,\n        };\n\n        setInputs((inputs) => ({ ...inputs, [id]: input }));\n        setEntities((previousEntities) =>\n          new Map(previousEntities).set(id, entity)\n        );\n\n        select(id);\n\n        return entity;\n      },\n      [inputs, getCameraCenter, entities, setEntities, setInputs, select]\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Dream/Dreams.tsx",
    "content": "import { Editor } from \"~/Editor\";\n\nexport type Dreams = Editor.Dream[];\nexport namespace Dreams {\n  export const use = () => Editor.Entities.useType(\"dream\");\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Dream/Pagination.tsx",
    "content": "import { AnimatePresence, motion } from \"framer-motion\";\nimport { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport function Pagination({ id }: { id: ID }) {\n  const [dream, setDream] = Editor.Entity.use<Editor.Dream>(id);\n  const selected = Editor.Selection.useSelected(id);\n  const onChoose = Editor.Dream.Choose.use(id);\n  const output = Generation.Image.Output.use(dream?.outputID);\n\n  const choiceCount = output?.imageIDs.length ?? 0;\n  const pages =\n    choiceCount > Editor.Dream.Results.pageSize() - 1\n      ? Math.ceil(choiceCount / Editor.Dream.Results.pageSize())\n      : choiceCount;\n\n  const pageCount = dream?.lastMode !== \"txt2img\" ? choiceCount : pages;\n  const page = dream?.choicesPage ?? 0;\n\n  const onPaginate = useCallback(\n    (newPage: number) => {\n      setDream((entity) => {\n        entity.choicesPage = newPage;\n      });\n    },\n    [setDream]\n  );\n\n  const onCancel = useCallback(() => {\n    setDream((entity) => {\n      entity.outputID = undefined;\n      entity.locked = false;\n    });\n  }, [setDream]);\n\n  const images = Generation.Images.useFromIDs(...(output?.imageIDs ?? []));\n  const current = images?.[page];\n\n  return (\n    <div\n      className={classes(\n        \"fixed left-[50%] bottom-6 z-[10] flex -translate-x-1/2 flex-row items-center justify-center gap-3 overflow-visible\"\n      )}\n    >\n      <AnimatePresence>\n        {pageCount > 1 && selected && (\n          <motion.div\n            className=\"border-brand-500 pointer-events-auto relative flex flex-col gap-3 rounded-md border-2 bg-zinc-50 p-2 text-black shadow-lg dark:bg-zinc-900 dark:text-white dark:shadow-none\"\n            initial={{ opacity: 0, y: 20 }}\n            animate={{ opacity: 1, y: 0 }}\n            exit={{ opacity: 0, y: 20 }}\n            transition={{\n              type: \"spring\",\n              stiffness: 500,\n              damping: 30,\n            }}\n          >\n            <div className=\"flex w-full flex-row gap-2\">\n              <Theme.Button\n                color=\"brand\"\n                size=\"lg\"\n                onClick={() => current?.src && onChoose(current)}\n              >\n                Select\n              </Theme.Button>\n              <Theme.Button\n                translucent\n                className=\"hover:bg-zinc-800\"\n                size=\"lg\"\n                onClick={onCancel}\n              >\n                Cancel\n              </Theme.Button>\n\n              <div className=\"w-px grow bg-zinc-700\" />\n              <div className=\"flex flex-row items-center justify-between px-2 font-mono text-lg tracking-widest\">\n                {page + 1}\n                <span className=\"opacity-75\">/{pageCount}</span>\n              </div>\n              <Theme.Button\n                icon={Theme.Icon.ChevronLeft}\n                onClick={() => onPaginate(page > 0 ? page - 1 : pageCount - 1)}\n                transparent\n                size=\"lg\"\n              />\n              <Theme.Button\n                icon={Theme.Icon.ChevronRight}\n                onClick={() => onPaginate(page >= pageCount - 1 ? 0 : page + 1)}\n                transparent\n                size=\"lg\"\n              />\n            </div>\n          </motion.div>\n        )}\n      </AnimatePresence>\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Dream/Render/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\n\nexport namespace Render {\n  export const use = (id: ID) => {\n    const create = Generation.Image.Create.use();\n    const entities = Editor.Entities.use();\n    const [entity, setEntity] = Editor.Entity.use<Editor.Dream>(id);\n    return useCallback(() => {\n      if (!entity) return;\n\n      const input = Generation.Image.Input.get(id);\n      if (!input) return;\n\n      setEntity((entity) => (entity.locked = true));\n      const data = Editor.Canvas.Render.getGenerationMetadata(\n        entities\n          .filter((e) => e.type === \"image\" && e.visible)\n          .reverse() as Editor.Image[],\n        entity,\n        1\n      );\n\n      Generation.Image.Input.set(id, (input) => {\n        input.init = data?.init\n          ? {\n              base64: data.init,\n              mask: false,\n              weight: 1,\n            }\n          : null;\n        input.mask = data?.mask\n          ? {\n              base64: data.mask,\n              mask: true,\n              weight: 1,\n            }\n          : null;\n      });\n\n      create({\n        inputID: id,\n        modifiers: {\n          strength: 0,\n        },\n        onStarted(output) {\n          if (!output) return;\n          setEntity((entity) => {\n            entity.outputID = output.id;\n          });\n        },\n        onException() {\n          setEntity((entity) => (entity.locked = false));\n        },\n      });\n    }, [entity, setEntity, entities, create, id]);\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Dream/Results.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nfunction Choice({\n  choice,\n  onChoose,\n  filtered,\n}: {\n  choice: string;\n  onChoose: () => void;\n  filtered?: boolean;\n}) {\n  const [currentSrc, setCurrentSrc] = useState(choice);\n\n  useEffect(() => {\n    const i = new Image();\n    i.src = choice;\n    i.onload = () => setCurrentSrc(choice);\n  }, [choice]);\n\n  return (\n    <div\n      key={choice}\n      className=\"group relative z-[0] h-full w-full cursor-pointer select-none overflow-hidden\"\n    >\n      <div className=\"relative\">\n        <img\n          src={currentSrc}\n          className=\"h-full w-full select-none object-cover\"\n        />\n        <img\n          src={currentSrc}\n          className=\"absolute top-0 left-0 h-full w-full select-none object-cover opacity-0 duration-150 group-hover:opacity-100\"\n          css={css`\n            mask: linear-gradient(black 50%, transparent 90%);\n            backdrop-filter: blur(20px);\n          `}\n        />\n        {filtered && <Generation.Image.SpecialEffects.Filter />}\n      </div>\n      <div className=\"absolute bottom-0 left-0 right-0 flex items-center justify-center bg-gradient-to-t from-black/50 to-transparent pb-2 opacity-0 duration-150 group-hover:opacity-100\">\n        <div className=\"pointer-events-auto flex flex-row items-center justify-center overflow-hidden rounded bg-zinc-50 text-black/75 text-opacity-50 dark:bg-zinc-800 dark:text-white/75\">\n          <button\n            type=\"button\"\n            onClick={onChoose}\n            className=\"relative items-center px-2 py-2 hover:bg-black/10 dark:hover:bg-white/10\"\n          >\n            <Theme.Icon.Check size={20} />\n          </button>\n          {/* <button\n            type=\"button\"\n            className=\"relative items-center border-x border-zinc-200 px-2 py-2 hover:bg-black/10 dark:border-zinc-700 dark:hover:bg-white/10\"\n          >\n            <Theme.Icon.RefreshClockwise size={20} />\n          </button> */}\n          <button\n            type=\"button\"\n            className=\"relative items-center px-2 py-2 hover:bg-black/10 dark:hover:bg-white/10\"\n            onClick={() => {\n              const link = document.createElement(\"a\");\n              link.download = \"dream.png\";\n              link.href = choice;\n              link.click();\n              link.remove();\n            }}\n          >\n            <Theme.Icon.Download size={20} />\n          </button>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport function Results({ id }: { id: ID }) {\n  const [entity] = Editor.Entity.use<Editor.Dream>(id);\n  const onChoose = Editor.Dream.Choose.use(id);\n  const output = Generation.Image.Output.use(entity?.outputID);\n\n  const pageSize =\n    output &&\n    entity &&\n    (output?.imageIDs?.length ?? 0) >= Results.pageSize() &&\n    entity?.lastMode === \"txt2img\"\n      ? Results.pageSize()\n      : 1;\n\n  const images = Generation.Images.useFromIDs(\n    ...(output && entity\n      ? output?.imageIDs?.slice(\n          (entity.choicesPage ?? 0) * pageSize,\n          ((entity.choicesPage ?? 0) + 1) * pageSize\n        ) ?? []\n      : [])\n  );\n\n  const firstImage = images[0];\n  if (!entity || !firstImage) return null;\n\n  if (images && images.length === 1 && firstImage.src) {\n    return (\n      <Choice\n        choice={firstImage.src}\n        onChoose={() => onChoose(firstImage)}\n        filtered={false}\n      />\n    );\n  }\n\n  return (\n    <div\n      className={classes(\n        \"grid grid-cols-2 grid-rows-2 gap-2\",\n        images &&\n          images.length > 1 &&\n          \"pointer-events-auto bg-zinc-300 p-2 dark:bg-zinc-900\"\n      )}\n    >\n      {images &&\n        images\n          .filter((choice) => choice.src)\n          .map((choice) => (\n            <Choice\n              key={choice.src}\n              choice={choice.src as string}\n              onChoose={() => onChoose(choice)}\n              filtered={false}\n            />\n          ))}\n    </div>\n  );\n}\n\nexport namespace Results {\n  export const pageSize = () => 4;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Dream/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\n\nimport { Box } from \"./Box\";\nimport { Choose } from \"./Choose\";\nimport { Create } from \"./Create\";\nimport { Pagination } from \"./Pagination\";\nimport { Render } from \"./Render\";\nimport { Results } from \"./Results\";\n\nexport * from \"./Dreams\";\n\nexport type Dream = Editor.Entity.Definition<{\n  type: \"dream\";\n  outputID?: ID;\n  choicesPage?: number;\n  lastMode?: Editor.Canvas.Render.RenderMode;\n}>;\n\nexport function Dream({ id }: { id: ID }) {\n  const [size, setSize] = useState({ width: 0, height: 0 });\n  const { input } = Generation.Image.Input.use(id);\n  return (\n    <Editor.Entity\n      id={id}\n      showBorder={false}\n      showHandles={false}\n      onSizeChange={setSize}\n      resizable={false}\n      sizeClamp={{\n        min: { width: 512, height: 512 },\n        max: input?.model.includes(\"xl\")\n          ? { width: 512, height: 512 }\n          : { width: 1024, height: 1024 },\n      }}\n    >\n      {Editor.Floating.use({\n        id,\n        ...size,\n        content: <Box id={id} />,\n      })}\n      {Editor.Floating.use({\n        id: id + \"pagination\",\n        ...size,\n        content: <Pagination id={id} />,\n      })}\n      {Editor.Floating.use({\n        id: id + \"results\",\n        ...size,\n        content: <Results id={id} />,\n      })}\n    </Editor.Entity>\n  );\n}\n\nexport declare namespace Dream {\n  export { Choose, Create, Pagination, Render, Results };\n}\n\nexport namespace Dream {\n  Dream.Choose = Choose;\n  Dream.Create = Create;\n  Dream.Pagination = Pagination;\n  Dream.Render = Render;\n  Dream.Results = Results;\n\n  export const preset = (): Omit<Dream, \"index\"> => ({\n    id: ID.create(),\n    type: \"dream\",\n    x: 0,\n    y: 0,\n    width: 512,\n    height: 512,\n    locked: false,\n    visible: true,\n    outputID: undefined,\n  });\n\n  export const use = (id: string) => Editor.Entity.useType(id, \"dream\");\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Entity/Entities/Sidebar.tsx",
    "content": "import { App } from \"~/App\";\nimport { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Sidebar {\n  export function Section() {\n    const entities = Editor.Entities.use();\n    const createDream = Editor.Dream.Create.use();\n    const deleteEntities = Editor.Entities.useDelete();\n    const selected = Editor.Selection.use();\n    const openFiles = Editor.Image.Import.useOpenFiles();\n\n    const { dreams, images, selectedDreams, selectedImages } = useMemo(() => {\n      const dreams = entities.filter((e) => e.type === \"dream\");\n      const images = entities.filter((e) => e.type === \"image\");\n      const selectedDreams = dreams.filter((d) => selected.has(d.id));\n      const selectedImages = images.filter((i) => selected.has(i.id));\n      return { dreams, images, selectedDreams, selectedImages };\n    }, [entities, selected]);\n\n    return (\n      <>\n        <App.Sidebar.Section collapsable divider defaultExpanded padding=\"none\">\n          <div className=\"flex border-b border-zinc-800 py-2 pl-1\">\n            <Theme.Button\n              transparent\n              icon={Theme.Icon.Plus}\n              onClick={() => createDream()}\n            />\n            {selectedDreams.length > 0 && dreams.length > 0 && (\n              <Theme.Button\n                transparent\n                label=\"Delete selected\"\n                icon={Theme.Icon.Trash}\n                onClick={() =>\n                  deleteEntities(...selectedDreams.map((d) => d.id))\n                }\n              />\n            )}\n          </div>\n          <div className=\"overflow-y-auto\">\n            {useMemo(\n              () =>\n                dreams.length > 0 ? (\n                  dreams.flatMap(({ id }, index) => [\n                    <Entity\n                      key={id}\n                      {...{ id, index, total: dreams.length }}\n                    />,\n                  ])\n                ) : (\n                  <div className=\"my-12 select-none text-center text-gray-500\">\n                    You don&apos;t have any dreams yet\n                    <br />\n                    <span\n                      onClick={() => createDream()}\n                      className=\"text-brand-300 cursor-pointer hover:underline\"\n                    >\n                      Create\n                    </span>\n                    &nbsp;one to get started\n                  </div>\n                ),\n              [createDream, dreams]\n            )}\n          </div>\n        </App.Sidebar.Section>\n        <App.Sidebar.Section collapsable divider defaultExpanded padding=\"none\">\n          <div className=\"flex border-b border-zinc-800 py-2 pl-1\">\n            <Theme.Button\n              transparent\n              icon={Theme.Icon.Upload}\n              onClick={() => openFiles()}\n            />\n            {selectedImages.length > 0 && images.length > 0 && (\n              <Theme.Button\n                transparent\n                label=\"Delete selected\"\n                icon={Theme.Icon.Trash}\n                onClick={() =>\n                  deleteEntities(...selectedImages.map((i) => i.id))\n                }\n              />\n            )}\n          </div>\n          <div className=\"overflow-y-auto\">\n            {useMemo(\n              () =>\n                images.length > 0 ? (\n                  images\n                    .filter((e) => e.type === \"image\")\n                    .flatMap(({ id }, index) => [\n                      <Entity\n                        key={id}\n                        {...{ id, index, total: images.length }}\n                      />,\n                    ])\n                ) : (\n                  <div className=\"my-12 select-none text-center text-gray-500\">\n                    You don&apos;t have any images yet\n                    <br />\n                    Generate or&nbsp;\n                    <span\n                      onClick={() => openFiles()}\n                      className=\"text-brand-300 cursor-pointer hover:underline\"\n                    >\n                      import\n                    </span>\n                    &nbsp;some\n                  </div>\n                ),\n              [images, openFiles]\n            )}\n          </div>\n        </App.Sidebar.Section>\n      </>\n    );\n  }\n}\n\nfunction Entity({ id, ...props }: { id: ID; index: number; total: number }) {\n  const setCamera = Editor.Camera.useSet();\n\n  const title = Editor.Entity.useTitle(id);\n  const [entity] = Editor.Entity.use(id);\n\n  const select = Editor.Selection.useSelect();\n  const selection = Editor.Selection.use();\n  const selected = useMemo(() => selection.has(id), [selection, id]);\n\n  const onClick = useCallback(() => {\n    if (!entity) return;\n    if (!selected) select(entity.id);\n    setCamera(entity);\n  }, [entity, selected, select, setCamera]);\n\n  return !entity ? null : (\n    <div\n      onClick={onClick}\n      className={classes(\n        \"group flex items-center gap-3 p-2\",\n        selected ? \"bg-brand-700\" : \"hover:bg-zinc-800/50\"\n      )}\n    >\n      <Preview entity={entity} />\n      <div className=\"grow overflow-hidden\">\n        <div className=\"overflow-hidden overflow-ellipsis whitespace-nowrap\">\n          {title}\n        </div>\n      </div>\n      <Controls {...{ id, ...props }} />\n    </div>\n  );\n}\n\nconst Preview = ({ entity }: { entity: Editor.Entity }) => {\n  const src = entity.type === \"image\" && entity.element?.src;\n  return (\n    <div className=\"relative aspect-square h-8 w-8 shrink-0 overflow-hidden rounded-md shadow\">\n      <Theme.Checkered size=\"sm\" />\n      {src && (\n        <div\n          className=\"absolute bottom-0 left-0 right-0 top-0\"\n          css={css`\n            background-image: url(${src});\n            background-size: cover;\n            background-position: center;\n          `}\n        />\n      )}\n      <div className=\"relative flex h-full w-full items-center justify-center\">\n        {!src && (\n          <Theme.Icon.Wand className=\"h-6 w-6 text-zinc-400 dark:text-zinc-500\" />\n        )}\n        {entity && entity.type === \"dream\" && <Loading id={entity.id} />}\n      </div>\n    </div>\n  );\n};\n\nfunction Loading({ id }: { id: ID }) {\n  const { input } = Generation.Image.Input.use(id);\n  input;\n\n  return <Theme.Loading.Rainbow showing={false} className=\"blur-[8px]\" />;\n}\n\nconst Controls = ({ id }: { id: ID }) => {\n  const deleteEntity = Editor.Entities.useDelete();\n  const [entity, setEntity] = Editor.Entity.use(id);\n  return (\n    <div className=\"flex flex-col justify-between\">\n      {useMemo(() => {\n        const className = \"hidden group-hover:block\";\n\n        const visibilityIcon = (\n          <Theme.Button\n            transparent\n            icon={entity?.visible ? Theme.Icon.Eye : Theme.Icon.EyeOff}\n            className={className}\n            onClick={(event) => {\n              event.stopPropagation();\n              setEntity((entity) => {\n                entity.visible = !entity.visible;\n              });\n            }}\n          />\n        );\n\n        const lockIcon = (\n          <Theme.Button\n            transparent\n            icon={entity?.locked ? Theme.Icon.Lock : Theme.Icon.Unlock}\n            className={className}\n            onClick={(event) => {\n              event.stopPropagation();\n              setEntity((entity) => {\n                entity.locked = !entity.locked;\n              });\n            }}\n          />\n        );\n\n        const removeIcon = (\n          <Theme.Button\n            transparent\n            icon={Theme.Icon.Trash}\n            className={classes(\n              className,\n              \"hover:text-red-500 dark:hover:text-red-500\"\n            )}\n            onClick={(event) => {\n              event.stopPropagation();\n              deleteEntity(id);\n            }}\n          />\n        );\n\n        return (\n          <div className=\"flex flex-row items-center gap-0.5\">\n            {visibilityIcon}\n            {lockIcon}\n            {removeIcon}\n          </div>\n        );\n      }, [entity?.visible, entity?.locked, setEntity, deleteEntity, id])}\n    </div>\n  );\n};\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Entity/Entities/Snapping.tsx",
    "content": "import { Line } from \"react-konva\";\nimport { Editor } from \"~/Editor\";\nimport { Box } from \"~/Geometry\";\n\nexport namespace Snapping {\n  export type Line = { type: \"origin\" | \"center\" | \"end\" } & (\n    | { x: number }\n    | { y: number }\n  );\n  export type Lines = Line[];\n\n  export const use = (id?: ID, snapDistance = 10) => {\n    const entities = Editor.Entities.use();\n    const { allowSnapping } = Editor.State.use();\n    const [lines, setLines] = useState<Lines>([]);\n\n    const snapLines = useMemo(\n      () =>\n        allowSnapping\n          ? entities\n              .filter((entity) => entity.id !== id)\n              .flatMap((entity) => {\n                const { x, y, width, height } = entity;\n                return [\n                  { x: x + width / 2, type: \"center\" },\n                  { y: y + height / 2, type: \"center\" },\n                  { x: x + width, type: \"end\" },\n                  { y: y + height, type: \"end\" },\n                  { x, type: \"origin\" },\n                  { y, type: \"origin\" },\n                ] as Line[];\n              })\n          : [],\n      [allowSnapping, entities, id]\n    );\n\n    const snapComponent = () => {\n      if (!allowSnapping) return null;\n\n      return (\n        <>\n          {lines.map((line, index) => {\n            if (\"x\" in line) {\n              return (\n                <Line\n                  key={\"x\" + line.x + index}\n                  points={[line.x, -999999, line.x, 999999]}\n                  strokeWidth={2}\n                  stroke=\"red\"\n                />\n              );\n            }\n            if (\"y\" in line) {\n              return (\n                <Line\n                  key={\"y\" + line.y + index}\n                  points={[-999999, line.y, 999999, line.y]}\n                  strokeWidth={2}\n                  stroke=\"red\"\n                />\n              );\n            }\n          })}\n        </>\n      );\n    };\n\n    const snap = useCallback(\n      (box: Box) => {\n        if (!allowSnapping) return box;\n\n        const entitySnapLines = [\n          { x: box.x + box.width / 2, type: \"center\" as const },\n          { x: box.x + box.width, type: \"end\" as const },\n          { x: box.x, type: \"origin\" as const },\n          { y: box.y + box.height / 2, type: \"center\" as const },\n          { y: box.y + box.height, type: \"end\" as const },\n          { y: box.y, type: \"origin\" as const },\n        ];\n\n        const distances = snapLines\n          .flatMap((snapLine) => {\n            return entitySnapLines\n              .filter((entityLine) => \"x\" in snapLine === \"x\" in entityLine)\n              .map((entityLine) => {\n                const axis = \"x\" in snapLine ? \"x\" : \"y\";\n\n                // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                //@ts-ignore\n                const distance = Math.abs(snapLine[axis] - entityLine[axis]);\n\n                return distance <= snapDistance\n                  ? { distance, line: snapLine, type: entityLine.type }\n                  : null;\n              });\n          })\n          .filter((d) => d !== null)\n          .sort((a, b) => (a?.distance ?? 0) - (b?.distance ?? 0));\n\n        if (distances.length > 0) {\n          // get one x and one y\n          const Xline = distances.find((d) => d && \"x\" in (d?.line ?? {}));\n          const Yline = distances.find((d) => d && \"y\" in (d?.line ?? {}));\n\n          if (Xline && \"x\" in Xline.line) {\n            if (Xline.type === \"origin\") {\n              box.x = Xline.line.x;\n            } else if (Xline.type === \"center\") {\n              box.x = Xline.line.x - box.width / 2;\n            } else if (Xline.type === \"end\") {\n              box.x = Xline.line.x - box.width;\n            }\n          }\n\n          if (Yline && \"y\" in Yline.line) {\n            if (Yline.type === \"origin\") {\n              box.y = Yline.line.y;\n            } else if (Yline.type === \"center\") {\n              box.y = Yline.line.y - box.height / 2;\n            } else if (Yline.type === \"end\") {\n              box.y = Yline.line.y - box.height;\n            }\n          }\n\n          setLines(\n            [Xline?.line, Yline?.line].filter((l) => l !== undefined) as Lines\n          );\n          return box;\n        }\n\n        setLines([]);\n        return box;\n      },\n      [allowSnapping, snapDistance, snapLines]\n    );\n\n    return [snapComponent, snap, setLines] as const;\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Entity/Entities/index.tsx",
    "content": "import { Layer } from \"react-konva\";\n\nimport { Editor } from \"~/Editor\";\nimport { Boxes } from \"~/Geometry\";\nimport { UndoRedo } from \"~/UndoRedo\";\n\nimport { Sidebar } from \"./Sidebar\";\nimport { Snapping } from \"./Snapping\";\n\nexport type Entities = Map<ID, Editor.Entity>;\n\nexport function Entities() {\n  const entities = Entities.use();\n  return useMemo(\n    () => (\n      <>\n        <Layer on>\n          {[...entities.reverse()]\n            .filter((entity) => entity.type === \"image\" && entity.visible)\n            .map((entity) => (\n              <Editor.Image key={entity.id} id={entity.id} />\n            ))}\n          <Editor.Brush />\n        </Layer>\n        <Layer on>\n          {[...entities.reverse()]\n            .filter((entity) => entity.type === \"dream\" && entity.visible)\n            .map((entity) => (\n              <Editor.Dream key={entity.id} id={entity.id} />\n            ))}\n          <Editor.Brush />\n        </Layer>\n      </>\n    ),\n    [entities]\n  );\n}\n\nconst useState = UndoRedo.create<{\n  entities: Entities;\n  setEntities: (entities: React.SetStateAction<Entities>) => void;\n}>((set) => ({\n  entities: new Map<ID, Editor.Entity>(),\n  setEntities: (setEntities) =>\n    set(({ entities }) => ({\n      entities:\n        typeof setEntities === \"function\" ? setEntities(entities) : setEntities,\n    })),\n}));\n\nexport declare namespace Entities {\n  export { Sidebar, Snapping };\n}\n\nexport namespace Entities {\n  Entities.Sidebar = Sidebar;\n  Entities.Snapping = Snapping;\n\n  export type List = Editor.Entity[];\n\n  export const get = () => useState.getState().entities;\n  export const set = (entities: React.SetStateAction<Entities>) =>\n    useState.getState().setEntities(entities);\n\n  export const useMap = () => useState(({ entities }) => entities);\n  export const use = () => {\n    const entities = useMap();\n    return useMemo(\n      () => [...entities.values()].sort((a, b) => b.index - a.index),\n      [entities]\n    );\n  };\n\n  export const useType = (type: Editor.Entity[\"type\"]) => {\n    const entities = use();\n    return useMemo(\n      () => entities.filter((entity) => entity.type === type),\n      [entities, type]\n    );\n  };\n\n  export const useSet = () => {\n    const { setEntities } = useState();\n    return setEntities;\n  };\n\n  export const useSurroundingBox = () => {\n    const entities = use();\n    return useMemo(() => Boxes.surroundingBox(entities), [entities]);\n  };\n\n  export const useDelete = () => {\n    const { setEntities } = useState();\n    const selected = Editor.Selection.use();\n    const select = Editor.Selection.useSelect();\n    const deselect = Editor.Selection.useClear();\n    return useCallback(\n      (...ids: ID[]) =>\n        setEntities((previousEntities) => {\n          const list = [...previousEntities.values()];\n          const entities = new Map();\n\n          list.forEach((entity) => {\n            if (ids.includes(entity.id)) return;\n            entities.set(entity.id, entity);\n          });\n\n          [...entities.values()].forEach((entity, index) =>\n            entities.set(entity.id, { ...entity, index })\n          );\n\n          const newSelection = Array.from(selected).filter(\n            (id) => !ids.includes(id)\n          );\n\n          if (newSelection.length === 0) {\n            deselect();\n          } else {\n            select(newSelection[0] ?? [], ...newSelection.slice(1));\n          }\n\n          return entities;\n        }),\n      [setEntities, selected, deselect, select]\n    );\n  };\n\n  export const useFlatten = () => {\n    const createImage = Editor.Image.Create.useFromURL();\n    const deleteEntities = useDelete();\n    const flatten = useCallback(\n      (images: Editor.Images) => {\n        const bounds = Editor.Canvas.Render.getBoundsOfImages(images);\n        const canvas = Editor.Canvas.Render.createImageFromBox(\n          bounds.x,\n          bounds.y,\n          bounds.width,\n          bounds.height,\n          images as Editor.Images,\n          1\n        );\n\n        return new Promise((resolve) => {\n          canvas?.toBlob(async (blob) => {\n            if (!blob) return;\n\n            const newEntity = await createImage(URL.createObjectURL(blob), {\n              ...Editor.Image.preset(),\n              x: bounds.x,\n              y: bounds.y,\n              width: bounds.width,\n              height: bounds.height,\n              title: \"Flattened image\",\n            });\n            deleteEntities(...images.map(({ id }) => id));\n\n            return resolve(newEntity);\n          });\n        });\n      },\n      [createImage, deleteEntities]\n    );\n\n    return flatten;\n  };\n\n  export const useDeleteEverything = () => {\n    const entities = use();\n    const deleteEntities = useDelete();\n    return useMemo(\n      () =>\n        entities.length >= 1\n          ? (predicate: (entity: Editor.Entity) => boolean = () => true) =>\n              deleteEntities(...entities.filter(predicate).map(({ id }) => id))\n          : undefined,\n      [entities, deleteEntities]\n    );\n  };\n\n  export const useChangeOrder = () => {\n    const state = useState();\n    const setState = useState.setState;\n    return useCallback(\n      ({ id, direction }: { id: ID; direction: \"up\" | \"down\" }) => {\n        const fromEntity = state.entities.get(id);\n        if (!fromEntity) return;\n\n        const oldIndex = fromEntity.index;\n        const newIndex =\n          direction === \"down\"\n            ? Math.max(0, fromEntity.index - 1)\n            : Math.min(state.entities.size - 1, fromEntity.index + 1);\n\n        if (oldIndex === newIndex) return;\n\n        const toEntity = [...state.entities.values()].find(\n          (entity) => entity.index === newIndex\n        );\n\n        if (!toEntity) return;\n\n        const entities = new Map(state.entities);\n\n        entities.set(fromEntity.id, { ...fromEntity, index: newIndex });\n        entities.set(toEntity.id, { ...toEntity, index: fromEntity.index });\n\n        setState({ entities });\n      },\n      [state, setState]\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Entity/index.tsx",
    "content": "import Konva from \"konva\";\nimport { Group, Rect, Transformer } from \"react-konva\";\n\nimport { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\nimport { Box, Size } from \"~/Geometry\";\n\nimport { Canvas } from \"../Canvas\";\nimport { Setup } from \"../Canvas/Setup\";\n\nexport * from \"./Entities\";\n\nexport type Entity = Editor.Dream | Editor.Image;\n\ntype Props = React.PropsWithChildren & {\n  id: ID;\n\n  draggable?: boolean;\n  selectable?: boolean;\n  resizable?: boolean;\n  showHandles?: boolean;\n  showBorder?: boolean;\n\n  sizeClamp?: Partial<Size.Clamp>;\n  onSizeChange?: (size: Size) => void;\n};\n\nexport function Entity({\n  id,\n\n  draggable = true,\n  selectable = true,\n  resizable = true,\n\n  showHandles = true,\n  showBorder = true,\n\n  onSizeChange,\n  sizeClamp = {\n    min: { width: 64, height: 64 },\n    max: { width: 8192, height: 8192 },\n  },\n\n  children,\n}: Props) {\n  const [activeTool] = Editor.Tool.Active.use();\n  const setCamera = Editor.Camera.useSet();\n\n  const [entity, setEntity] = Editor.Entity.use(id);\n  const [dragging, setDragging] = useState(false);\n  const dragEnabled = draggable && !entity?.locked && activeTool === \"select\";\n  const [SnapLines, snap, setLines] = Editor.Entities.Snapping.use(id);\n\n  const select = Editor.Selection.useSelect();\n  const selected = Editor.Selection.useSelected(id);\n  const selection = Editor.Selection.use();\n  const selectEnabled = selectable && activeTool === \"select\";\n\n  const groupRef = useRef<Konva.Group>(null);\n  const transformerRef = useRef<Konva.Transformer>(null);\n\n  const zoom = Setup.useZoom();\n  useEffect(() => {\n    if (entity && dragging) {\n      // drop entity if global zoom changes\n      groupRef.current?.stopDrag();\n      transformerRef.current?.stopTransform();\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [zoom]);\n\n  const [local, setLocalRaw] = useState<Box>(() => {\n    const size = {\n      width: entity?.width ?? 512,\n      height: entity?.height ?? 512,\n    };\n\n    const local = {\n      x: entity?.x ?? 0,\n      y: entity?.y ?? 0,\n      ...size,\n    };\n\n    onSizeChange?.(size);\n    return local;\n  });\n\n  const setLocal = useCallback(\n    (setBox: React.SetStateAction<Partial<Box>>) => {\n      const box = typeof setBox === \"function\" ? setBox(local) : setBox;\n      const size = Size.Clamp.apply(\n        {\n          width: box.width ?? local.width,\n          height: box.height ?? local.height,\n        },\n        sizeClamp\n      );\n\n      const snapped = { ...local, ...box, ...size };\n\n      setLocalRaw(snapped);\n      onSizeChange?.(size);\n\n      return snapped;\n    },\n    [local, sizeClamp, onSizeChange]\n  );\n\n  const onMouseDown = useCallback(\n    (event: Editor.Canvas.Event.Mouse) => {\n      event.evt.preventDefault();\n      event.cancelBubble = ![\"brush\", \"export\"].includes(activeTool);\n\n      if (selected || !selectEnabled) return;\n\n      const additionalSelections = event.evt.shiftKey ? selection : [];\n\n      select(id, ...additionalSelections);\n    },\n    [activeTool, selected, selectEnabled, selection, select, id]\n  );\n\n  const onDoubleClick = useCallback(() => setCamera(local), [local, setCamera]);\n\n  const onTransformStart = useCallback((event: Editor.Canvas.Event.Mouse) => {\n    if (event.evt.button !== 0) return;\n    event.evt.preventDefault();\n    event.cancelBubble = true;\n  }, []);\n\n  const onTransform = useCallback(\n    (event: Editor.Canvas.Event<Event>) => {\n      const x = event.target.x();\n      const y = event.target.y();\n\n      const size = Size.Clamp.apply(\n        {\n          width: local.width * event.target.scaleX(),\n          height: local.height * event.target.scaleY(),\n        },\n        {\n          min: { width: 64, height: 64 },\n          max: { width: 1024, height: 1024 },\n        }\n      );\n\n      event.target.size(size);\n      event.target.scale({ x: 1, y: 1 });\n\n      setLocal({ x, y, ...size });\n      !dragging && setDragging(true);\n    },\n    [local.width, local.height, setLocal, dragging]\n  );\n\n  const onTransformEnd = useCallback(\n    (event: Editor.Canvas.Event.Drag) =>\n      setEntity((entity) => {\n        entity.x = event.target.x();\n        entity.y = event.target.y();\n        entity.width = event.target.width();\n        entity.height = event.target.height();\n        setDragging(false);\n      }),\n    [setEntity]\n  );\n\n  const onDragStart = useCallback(\n    (event: Editor.Canvas.Event.Drag) => {\n      if (!dragEnabled) return event.target.stopDrag();\n      setDragging(true);\n\n      for (const id of selection) {\n        const node = groupRef.current?.getStage()?.findOne(`#${id}`);\n        if (node && node !== event.target && !node.isDragging()) {\n          node.startDrag(event);\n        }\n      }\n    },\n    [dragEnabled, selection]\n  );\n\n  const onDragMove = useCallback(\n    (event: Canvas.Event.Drag) => {\n      const x = event.target.x();\n      const y = event.target.y();\n      const snapped = snap({ ...local, x, y });\n      event.target.position({ x: snapped.x, y: snapped.y });\n      setLocal({ ...snapped, width: local.width, height: local.height });\n    },\n    [local, setLocal, snap]\n  );\n\n  const onDragEnd = useCallback(\n    (event: Canvas.Event.Drag) => {\n      setDragging(false);\n      setEntity((entity) => {\n        entity.x = event.target.x();\n        entity.y = event.target.y();\n      });\n      setLines([]);\n    },\n    [setEntity, setLines]\n  );\n\n  useEffect(() => {\n    if (dragging) return;\n    setLocalRaw({\n      x: entity?.x ?? local.x,\n      y: entity?.y ?? local.y,\n      width: entity?.width ?? local.width,\n      height: entity?.height ?? local.height,\n    });\n  }, [\n    entity?.x,\n    entity?.y,\n    entity?.width,\n    entity?.height,\n    setLocalRaw,\n    local.x,\n    local.y,\n    local.width,\n    local.height,\n    dragging,\n  ]);\n\n  useEffect(() => {\n    if (!selected || !transformerRef.current || !groupRef.current) return;\n    transformerRef.current.nodes([groupRef.current]);\n    transformerRef.current.getLayer()?.batchDraw();\n  }, [selected]);\n\n  const boundFunction = useCallback(\n    (\n      _oldBoundBox: Box & { rotation: number },\n      newBoundBox: Box & { rotation: number }\n    ) => ({\n      ...newBoundBox,\n      ...Size.Clamp.apply(newBoundBox, {\n        min: { width: 64, height: 64 },\n        max: { width: 1024, height: 1024 },\n      }),\n    }),\n    []\n  );\n\n  if (!entity) return null;\n  return (\n    <>\n      <Group\n        id={id}\n        x={local.x}\n        y={local.y}\n        ref={groupRef}\n        draggable={draggable}\n        onMouseDown={onMouseDown}\n        onDblClick={onDoubleClick}\n        onDragStart={onDragStart}\n        onDragMove={onDragMove}\n        onDragEnd={onDragEnd}\n        onTransform={onTransform}\n        onTransformEnd={onTransformEnd}\n      >\n        <Rect x={0} y={0} width={local.width} height={local.height} />\n        {children}\n      </Group>\n      {selected && ![\"brush\", \"export\"].includes(activeTool) && resizable && (\n        <Transformer\n          {...(!dragEnabled && { enabledAnchors: [] })}\n          ref={transformerRef}\n          boundBoxFunc={boundFunction}\n          onMouseDown={onTransformStart}\n          anchorSize={Entity.Handle.size()}\n          anchorFill={showHandles ? \"white\" : \"transparent\"}\n          anchorStroke={showHandles ? \"white\" : \"transparent\"}\n          borderStroke={showBorder ? \"white\" : \"transparent\"}\n          rotateEnabled={false}\n          flipEnabled={false}\n        />\n      )}\n      <SnapLines />\n    </>\n  );\n}\n\nexport namespace Entity {\n  export type Definition<Config extends { type: string }> = Box &\n    Config & {\n      id: ID;\n      index: number;\n      type: Config[\"type\"];\n      visible: boolean;\n      locked: boolean;\n      title?: string;\n    };\n\n  export function use<E extends Entity>(id: string) {\n    const entities = Editor.Entities.useMap();\n    const setEntities = Editor.Entities.useSet();\n\n    const entity = useMemo(\n      () => entities.get(id) as E | undefined,\n      [id, entities]\n    );\n\n    const setEntity = useCallback(\n      (setEntity: (entity: Mutable<E>) => void) => {\n        setEntities((previousEntities) => {\n          const previousEntity = previousEntities.get(id);\n          return !previousEntity\n            ? previousEntities\n            : new Map(previousEntities).set(\n                id,\n                copy(previousEntity as E, (entity) => void setEntity(entity))\n              );\n        });\n      },\n      [id, setEntities]\n    );\n\n    return [entity, setEntity] as const;\n  }\n\n  export function useType(id: string, type: Entity[\"type\"]) {\n    const [entity, setEntity] = Editor.Entity.use(id);\n    return useMemo(() => {\n      if (entity && entity.type === type) return [entity, setEntity] as const;\n    }, [type, entity, setEntity]);\n  }\n\n  export const useTitle = (id: ID): string | undefined => {\n    const { input } = Generation.Image.Input.use(id);\n    const [entity] = Editor.Entity.use(id);\n    return useMemo(\n      () => entity?.title ?? input?.prompts[0]?.text,\n      [entity?.title, input?.prompts]\n    );\n  };\n\n  export namespace Handle {\n    export const size = () => 12;\n  }\n\n  export namespace Border {\n    export const size = () => 2;\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Export/Everything.tsx",
    "content": "import { AnimatePresence, motion } from \"framer-motion\";\nimport { Editor } from \"~/Editor\";\nimport { Boxes } from \"~/Geometry\";\nimport { Shortcut as Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Everything {\n  export function Tool() {\n    const { setOrigin, setSize } = Editor.Canvas.ExportBox.useState(\n      (state) => ({\n        setOrigin: state.setOrigin,\n        setSize: state.setSize,\n      })\n    );\n\n    const [nothingInView, setNothingInView] = useState(false);\n\n    const entities = Editor.Entities.use();\n    const stageRef = Editor.Canvas.use();\n\n    function getFilteredEntities(): Editor.Images | undefined {\n      if (!stageRef || !stageRef.current) return undefined;\n\n      const scale = stageRef.current.scaleX() || 1;\n      const position = stageRef.current.getPosition() || { x: 0, y: 0 };\n\n      // filter entities in the stageRef visibility (entity x/y/width/height inside of stageRef x/y/width/height)\n      return entities\n        .filter(\n          (entity) =>\n            entity.type === \"image\" &&\n            entity.visible &&\n            entity.x * scale + position.x >= 0 &&\n            entity.y * scale + position.y >= 0 &&\n            entity.x * scale + entity.width * scale + position.x <=\n              // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n              stageRef.current!.width() &&\n            entity.y * scale + entity.height * scale + position.y <=\n              // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n              stageRef.current!.height()\n        )\n        .reverse() as Editor.Image[];\n    }\n\n    return (\n      <>\n        <Editor.Tool\n          label=\"Smart export\"\n          onMouseEnter={() => {\n            if (stageRef && stageRef.current) {\n              const filtered = getFilteredEntities();\n              if (filtered && filtered.length > 0) {\n                const bounds = Boxes.surroundingBox(filtered);\n                if (bounds) {\n                  setOrigin(() => [bounds.x, bounds.y]);\n                  setSize(() => [bounds.width, bounds.height]);\n                }\n              } else {\n                setNothingInView(true);\n              }\n            }\n          }}\n          onMouseLeave={() => {\n            setOrigin(() => null);\n            setSize(() => [0, 0]);\n            setNothingInView(false);\n          }}\n          onClick={() => {\n            const filtered = getFilteredEntities();\n            if (filtered) {\n              const bounds = Boxes.surroundingBox(filtered);\n              if (bounds) {\n                const canvas = Editor.Canvas.Render.createImageFromBox(\n                  bounds.x,\n                  bounds.y,\n                  bounds.width,\n                  bounds.height,\n                  filtered,\n                  1\n                );\n\n                if (canvas) {\n                  const link = document.createElement(\"a\");\n                  link.download = \"export.png\";\n                  link.href = canvas.toDataURL(\"image/png\");\n                  link.click();\n                  canvas.remove();\n                }\n              }\n            }\n\n            setOrigin(() => null);\n            setSize(() => [0, 0]);\n          }}\n        >\n          <Theme.Icon.Download strokeWidth={1.5} size={22} />\n        </Editor.Tool>\n\n        <AnimatePresence>\n          {nothingInView && (\n            <motion.div\n              className=\"pointer-events-none absolute inset-0 flex h-screen w-screen select-none items-center justify-center\"\n              initial={{ opacity: 0 }}\n              animate={{ opacity: 1 }}\n              exit={{ opacity: 0 }}\n              transition={{ duration: 0.05 }}\n            >\n              <div className=\"rounded border border-zinc-700 bg-zinc-900 p-6\">\n                <h1 className=\"opacity-muted text-lg font-light\">\n                  No images in view\n                </h1>\n              </div>\n            </motion.div>\n          )}\n        </AnimatePresence>\n      </>\n    );\n  }\n\n  export namespace Shortcuts {\n    export const use = () => {\n      Shortcut.use(\n        useMemo(\n          () => ({\n            name: [\"Export\", \"Everything\"],\n            icon: Theme.Icon.Download,\n\n            keys: [\"Meta\", \"e\"],\n            action: () =>\n              alert(\"TODO: We need to refactor `Editor.Export.Everything`\"),\n          }),\n          []\n        )\n      );\n    };\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Export/Selection.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Shortcut as Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Selection {\n  export function Tool() {\n    return (\n      <Editor.Tool label=\"Selection export\" tool=\"export\">\n        <Theme.Icon.Camera strokeWidth={1.5} size={22} />\n      </Editor.Tool>\n    );\n  }\n\n  export namespace Shortcuts {\n    export const use = () => {\n      const setTool = Editor.Tool.Active.useSet();\n      Shortcut.use(\n        useMemo(\n          () => ({\n            name: [\"Export\", \"Selection\"],\n            icon: Theme.Icon.Camera,\n\n            keys: \"c\",\n            action: () => setTool(\"export\"),\n          }),\n          [setTool]\n        )\n      );\n    };\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Export/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\n\nimport { Everything } from \"./Everything\";\nimport { Selection } from \"./Selection\";\n\nexport declare namespace Export {\n  export { Everything, Selection };\n}\n\nexport namespace Export {\n  Export.Everything = Everything;\n  Export.Selection = Selection;\n\n  export function Tools() {\n    return (\n      <Editor.Tool.Group>\n        <Selection.Tool />\n        <Everything.Tool />\n      </Editor.Tool.Group>\n    );\n  }\n\n  export namespace Shortcuts {\n    export const use = () => {\n      Everything.Shortcuts.use();\n      Selection.Shortcuts.use();\n    };\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Floating/index.tsx",
    "content": "import Konva from \"konva\";\nimport { Shape } from \"react-konva\";\n\nimport { Editor } from \"~/Editor\";\nimport { Box } from \"~/Geometry\";\nimport { GlobalState } from \"~/GlobalState\";\n\nexport function Floating() {\n  const { elements } = Floating.useState();\n  const triggerWheelEvent = Editor.Canvas.useTriggerWheelEvent();\n  const triggerMouseMoveEvent = Editor.Canvas.useTriggerMouseMoveEvent();\n  return (\n    <div\n      className=\"pointer-events-none absolute top-0 left-0 h-screen w-screen overflow-hidden\"\n      id=\"floating-portal\"\n      onWheel={triggerWheelEvent as any}\n      onMouseMove={(e) => {\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        triggerMouseMoveEvent(e as any);\n      }}\n    >\n      {useMemo(\n        () =>\n          Object.entries(elements).map(\n            ([id, { absolute, content, keepOnScreen }]) => {\n              return (\n                <Element\n                  key={id}\n                  id={id}\n                  absolute={absolute}\n                  content={content}\n                  keepOnScreen={keepOnScreen}\n                />\n              );\n            }\n          ),\n        [elements]\n      )}\n    </div>\n  );\n}\n\nfunction Element({\n  id,\n  absolute,\n  content,\n  keepOnScreen,\n}: {\n  id: ID;\n  absolute: Box;\n  content: React.ReactNode;\n  keepOnScreen?: boolean;\n}) {\n  const elementRef = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    if (keepOnScreen) {\n      const element = elementRef.current;\n      if (!element) return;\n\n      const height = element.getBoundingClientRect().height;\n      const width = element.getBoundingClientRect().width;\n\n      // make sure the element is not off the screen\n      const x = Math.min(\n        Math.max(absolute.x, width),\n        window.innerWidth - width - 10\n      );\n\n      const y = Math.min(\n        Math.max(absolute.y, height),\n        window.innerHeight - height - 10\n      );\n\n      element.style.left = `${x}px`;\n      element.style.top = `${y}px`;\n    }\n  }, [absolute, keepOnScreen]);\n\n  return (\n    <div\n      key={id}\n      className=\"absolute\"\n      style={{\n        left: `${absolute.x}px`,\n        top: `${absolute.y}px`,\n        width: `${absolute.width}px`,\n        height: `${absolute.height}px`,\n      }}\n      ref={elementRef}\n    >\n      {content}\n    </div>\n  );\n}\n\nexport namespace Floating {\n  export const useState = GlobalState.create<{\n    elements: {\n      [id: ID]: {\n        absolute: Box;\n        content: React.ReactNode;\n        keepOnScreen?: boolean;\n      };\n    };\n  }>(() => ({\n    elements: {},\n  }));\n\n  export function use({\n    id,\n    content,\n    keepOnScreen,\n    width = 0,\n    height = 0,\n    x = 0,\n    y = 0,\n  }: Partial<Box> & {\n    id: ID;\n    content: React.ReactNode;\n    keepOnScreen?: boolean;\n  }) {\n    const setState = useState.setState;\n    const setAbsolute = useCallback(\n      (absolute: Box) => {\n        setState((state) => ({\n          ...state,\n          elements: {\n            ...state.elements,\n            [id]: {\n              absolute,\n              content,\n              keepOnScreen,\n            },\n          },\n        }));\n      },\n      [setState, id, content, keepOnScreen]\n    );\n\n    const onResize = useCallback(\n      (_context: unknown, shape: Konva.Shape) =>\n        setAbsolute({\n          x: shape.getAbsolutePosition().x,\n          y: shape.getAbsolutePosition().y,\n          width: shape.getAbsoluteScale().x * width,\n          height: shape.getAbsoluteScale().y * height,\n        }),\n      [width, height, setAbsolute]\n    );\n\n    useEffect(\n      () => () =>\n        setState((state) => {\n          const { [id]: _removedElement, ...elements } = state.elements;\n          return { ...state, elements };\n        }),\n      [id, setState]\n    );\n\n    return <Shape x={x} y={y} sceneFunc={onResize} />;\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Image/Create/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\n\nexport namespace Create {\n  export type Options = Partial<Editor.Image>;\n\n  export const use = () => {\n    const entities = Editor.Entities.use();\n    const setEntities = Editor.Entities.useSet();\n    const getCameraCenter = Editor.Camera.Center.useGet();\n    return useCallback(\n      (options?: Options) => {\n        const image: Editor.Image = {\n          ...Editor.Image.preset(),\n          ...options,\n          index: entities.length,\n        };\n\n        const center = getCameraCenter();\n        const imageCentered = {\n          ...image,\n          x: image.x ?? (center ? center.x - image.width / 2 : 0),\n          y: image.y ?? (center ? center.y - image.height / 2 : 0),\n        };\n\n        setEntities((previousEntities) =>\n          new Map(previousEntities).set(image.id, imageCentered)\n        );\n\n        return imageCentered;\n      },\n      [getCameraCenter, entities.length, setEntities]\n    );\n  };\n\n  export const useFromURL = () => {\n    const create = use();\n    return useCallback(\n      async (url: URLString, options?: Options): Promise<Editor.Image> =>\n        new Promise((resolve) => {\n          const element = new Image();\n          element.crossOrigin = \"anonymous\";\n          element.src = url;\n          element.onload = () => {\n            const size = {\n              width: element.width,\n              height: element.height,\n            };\n\n            resolve(\n              create({\n                ...options,\n                ...size,\n                element,\n                original: { ...size, element },\n              })\n            );\n          };\n        }),\n      [create]\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Image/Import/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\n\nexport namespace Import {\n  export const useOnDrop = () => {\n    const canvas = Editor.Canvas.use();\n    const createImageFromURL = Editor.Image.Create.useFromURL();\n\n    return useCallback(\n      async (event: React.DragEvent<HTMLDivElement>) => {\n        if (!canvas.current) return;\n\n        event.preventDefault();\n        canvas.current.setPointersPositions(event);\n\n        const mousePosition = canvas.current.getPointerPosition();\n        if (!mousePosition) return;\n\n        const scale = canvas.current.scaleX();\n        const position = canvas.current.position();\n        const x = (mousePosition.x - position.x) / scale;\n        const y = (mousePosition.y - position.y) / scale;\n\n        for (const file of event.dataTransfer.files) {\n          const url = URL.createObjectURL(file);\n          createImageFromURL(url, {\n            x,\n            y,\n            title: file.name ?? \"Imported Image\",\n          });\n        }\n      },\n      [canvas, createImageFromURL]\n    );\n  };\n\n  export const useOpenFiles = () => {\n    const getCameraCenter = Editor.Camera.Center.useGet();\n    const createImageFromURL = Editor.Image.Create.useFromURL();\n\n    return useCallback(() => {\n      const center = getCameraCenter();\n      if (!center) return;\n\n      const x = center.x;\n      const y = center.y;\n\n      const input = document.createElement(\"input\");\n      input.type = \"file\";\n      input.multiple = true;\n      input.accept = \"image/*\";\n      input.style.display = \"none\";\n      document.body.appendChild(input);\n      input.click();\n\n      input.onchange = () => {\n        for (const file of input.files ?? []) {\n          const url = URL.createObjectURL(file);\n\n          const element = new Image();\n          element.src = url;\n          element.onload = () => {\n            const offset = {\n              x: element.width / 2,\n              y: element.height / 2,\n            };\n\n            createImageFromURL(url, {\n              x: x - offset.x,\n              y: y - offset.y,\n              title: file.name ?? \"Imported Image\",\n            });\n          };\n        }\n      };\n    }, [createImageFromURL, getCameraCenter]);\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Image/Sidebar.tsx",
    "content": "import { App } from \"~/App\";\nimport { Editor } from \"~/Editor\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Sidebar {\n  export function Tab({ id }: { id: ID }) {\n    const [entity, setEntity] = Editor.Entity.use<Editor.Image>(id);\n    if (!entity) return null;\n    return (\n      <>\n        <App.Sidebar.Section\n          divider\n          collapsable\n          defaultExpanded\n          title=\"Transform\"\n        >\n          <div className=\"flex flex-col gap-4\">\n            <div className=\"grid grid-cols-2 gap-8\">\n              <Theme.NumberInput\n                icon=\"X\"\n                fullWidth\n                number\n                round\n                step={1}\n                value={entity?.x}\n                onNumberChange={(x) =>\n                  setEntity((entity) => ({ ...entity, x }))\n                }\n              />\n              <Theme.NumberInput\n                icon=\"Y\"\n                fullWidth\n                number\n                round\n                step={1}\n                value={entity?.y}\n                onNumberChange={(y) =>\n                  setEntity((entity) => ({ ...entity, y }))\n                }\n              />\n            </div>\n            <div className=\"flex flex-col gap-4\">\n              <div className=\"grid grid-cols-2 gap-8\">\n                <Theme.NumberInput\n                  icon=\"W\"\n                  fullWidth\n                  number\n                  round\n                  step={1}\n                  value={entity?.width}\n                  onNumberChange={(w) =>\n                    setEntity((entity) => ({ ...entity, width: w }))\n                  }\n                />\n                <Theme.NumberInput\n                  icon=\"H\"\n                  fullWidth\n                  number\n                  round\n                  step={1}\n                  value={entity?.height}\n                  onNumberChange={(h) =>\n                    setEntity((entity) => ({ ...entity, height: h }))\n                  }\n                />\n              </div>\n            </div>\n          </div>\n        </App.Sidebar.Section>\n      </>\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Image/index.tsx",
    "content": "import { Rect } from \"react-konva\";\n\nimport { Editor } from \"~/Editor\";\nimport { Size } from \"~/Geometry\";\n\nimport { Create } from \"./Create\";\nimport { Import } from \"./Import\";\nimport { Sidebar } from \"./Sidebar\";\n\nexport type Images = Image[];\nexport type Image = Editor.Entity.Definition<{\n  type: \"image\";\n  outputID?: ID;\n  src?: string;\n  element?: HTMLImageElement;\n  original: Size & { element?: HTMLImageElement };\n}>;\n\nexport function Image({ id }: { id: ID }) {\n  const [image] = Editor.Entity.use<Image>(id);\n  const [{ width, height }, setSize] = useState({ width: 0, height: 0 });\n  return (\n    <Editor.Entity id={id} onSizeChange={setSize}>\n      {image && (\n        <Rect\n          x={0}\n          y={0}\n          width={width}\n          height={height}\n          fillPatternRepeat=\"no-repeat\"\n          fillPatternImage={image.element}\n          fillPatternScale={{\n            x: width / image.original.width,\n            y: height / image.original.height,\n          }}\n        />\n      )}\n    </Editor.Entity>\n  );\n}\n\nexport declare namespace Image {\n  export { Create, Import, Sidebar };\n}\n\nexport namespace Image {\n  Image.Create = Create;\n  Image.Import = Import;\n  Image.Sidebar = Sidebar;\n\n  export const preset = (): Omit<Image, \"index\"> => {\n    const size = {\n      width: 512,\n      height: 512,\n    };\n\n    return {\n      id: ID.create(),\n      type: \"image\",\n\n      visible: true,\n      locked: false,\n\n      x: 0,\n      y: 0,\n\n      ...size,\n      original: size,\n    };\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Import/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\nimport { Router } from \"~/Router\";\n\nexport namespace Import {\n  export const use = (image?: Generation.Image) => {\n    const navigate = Router.useNavigate();\n    const createDream = Editor.Dream.Create.use();\n    const createImage = Editor.Image.Create.useFromURL();\n    return useCallback(async () => {\n      if (!image?.src) return;\n\n      const editorImage = await createImage(image.src, {\n        ...image,\n        title: Generation.Image.Input.get(image.inputID)?.prompts[0].text,\n      });\n\n      createDream({\n        inputID: image.inputID,\n        dream: {\n          x: editorImage.x,\n          y: editorImage.y,\n          width: editorImage.width,\n          height: editorImage.height,\n        },\n      });\n\n      navigate(\"/edit\");\n    }, [image, createImage, createDream, navigate]);\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Panel/Panels.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { GlobalState } from \"~/GlobalState\";\n\nexport function Panels({\n  fixed = false,\n  left,\n  right,\n  children,\n  className,\n}: StyleableWithChildren & {\n  fixed?: boolean;\n  left?: boolean;\n  right?: boolean;\n}) {\n  return (\n    <div\n      className={classes(\n        \"pointer-events-none absolute bottom-2 flex flex-col justify-between gap-2\",\n        fixed ? \"top-0\" : \"top-2\",\n        !fixed && left && \"left-2\",\n        fixed && \"left-12\",\n        right && \"right-2\",\n        className\n      )}\n    >\n      {children}\n    </div>\n  );\n}\n\nexport namespace Panels {\n  const useState = GlobalState.create(() => ({\n    topLeft: false,\n    topRight: false,\n    bottomLeft: false,\n    bottomRight: false,\n  }));\n\n  export const useExpanded = (position: Editor.Panel.Position) => {\n    const state = useState();\n    const setState = useState.setState;\n\n    const expanded = useMemo(() => state[position], [state, position]);\n    const setExpanded = useCallback(\n      (setExpanded?: React.SetStateAction<boolean>) =>\n        setState({\n          [position]:\n            setExpanded === undefined\n              ? !expanded\n              : typeof setExpanded === \"function\"\n              ? setExpanded(expanded)\n              : setExpanded,\n        }),\n      [position, expanded, setState]\n    );\n\n    return [expanded, setExpanded] as const;\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Panel/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Theme } from \"~/Theme\";\n\nexport * from \"./Panels\";\n\nexport function Panel({\n  visible = true,\n  position,\n  icon,\n  title,\n  left,\n  className,\n  contentClassName,\n  children,\n  ...props\n}: StyleableWithChildren & {\n  contentClassName?: string;\n  visible?: boolean;\n  position: Panel.Position;\n  icon?: React.ComponentProps<typeof Theme.Button>[\"icon\"];\n  title?: React.ReactNode;\n  bar?: React.ReactNode;\n  left?: React.ReactNode;\n  onClick?: () => void;\n}) {\n  const [expanded, setExpanded] = Editor.Panels.useExpanded(position);\n  const bottom = position == \"bottomLeft\" || position == \"bottomRight\";\n  const right = position === \"topRight\" || position === \"bottomRight\";\n\n  const resizeCanvas = Editor.Canvas.useResize();\n  useEffect(resizeCanvas, [expanded, resizeCanvas]);\n\n  const onClick = useCallback(\n    () => props.onClick ?? setExpanded((expanded) => !expanded),\n    [props.onClick, setExpanded]\n  );\n\n  const Chevron = useCallback(\n    (props: Styleable) => (\n      <Theme.Icon.ChevronUp\n        className={classes(\n          props.className,\n          right ? \"-ml-0.5\" : \"-mr-0.5\",\n          ((bottom && expanded) || (!bottom && !expanded)) && \"rotate-180\"\n        )}\n      />\n    ),\n    [bottom, expanded, right]\n  );\n\n  const button = title && children && visible && (\n    <div className=\"flex gap-2\">\n      {!expanded && left}\n      <Theme.Button\n        transparent={expanded}\n        onClick={onClick}\n        className=\"shrink-0\"\n        iconLeft={right ? icon : Chevron}\n        iconRight={!right ? icon : Chevron}\n      >\n        {title}\n      </Theme.Button>\n    </div>\n  );\n\n  const barContent = (\n    <div\n      className={classes(\n        \"flex items-center gap-2 px-2\",\n        right && \"justify-start\"\n      )}\n    >\n      {props.bar}\n    </div>\n  );\n\n  const bar = (\n    <div className=\"flex cursor-pointer\">\n      {right && barContent}\n      <div\n        onClick={() => setExpanded(false)}\n        className={classes(\"flex grow cursor-pointer\", right && \"justify-end\")}\n      >\n        {button}\n      </div>\n      {!right && barContent}\n    </div>\n  );\n\n  return (\n    <div\n      className={classes(\n        \"relative z-10 min-h-0\",\n        !visible && \"hidden\",\n        !expanded && (right ? \"self-end\" : \"self-start\"),\n        className\n      )}\n    >\n      {!bottom && !expanded && button}\n      {expanded && children && (\n        <div\n          className={classes(\n            \"pointer-events-auto flex h-full w-[500px] flex-col overflow-hidden rounded-md bg-zinc-50 text-neutral-700 shadow-2xl dark:bg-zinc-800 dark:text-white dark:shadow-none dark:ring-[1px] dark:ring-white/10\",\n            contentClassName\n          )}\n        >\n          {expanded && left && (\n            <div className=\"absolute right-[100%] top-0 mr-2\">{left}</div>\n          )}\n          {!bottom && bar}\n          {children}\n          {bottom && bar}\n        </div>\n      )}\n      {bottom && !expanded && button}\n    </div>\n  );\n}\n\nexport namespace Panel {\n  export type Position = \"topLeft\" | \"topRight\" | \"bottomLeft\" | \"bottomRight\";\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Reset/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\n\nexport namespace Reset {\n  export const use = () => {\n    const resetCamera = Editor.Camera.Reset.use();\n    return useCallback(() => {\n      resetCamera();\n    }, [resetCamera]);\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Selection/Shortcut.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Shortcut as Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Shortcuts {\n  export const use = () => {\n    const selection = Editor.Selection.use();\n    const deleteEntities = Editor.Entities.useDelete();\n    const setTool = Editor.Tool.Active.useSet();\n    const [tool] = Editor.Tool.Active.use();\n\n    const name = useMemo(\n      () => `Selection (${selection.size})`,\n      [selection.size]\n    );\n\n    Shortcut.Priority.use(\n      useMemo(\n        () => ({\n          name,\n          level: \"high\",\n          enabled: selection.size > 0,\n        }),\n        [name, selection.size]\n      )\n    );\n\n    Shortcut.use(\n      useMemo(\n        () => ({\n          name: \"Select\",\n          icon: Editor.Selection.Icon,\n\n          keys: \"v\",\n          action: () => setTool(\"select\"),\n        }),\n        [setTool]\n      )\n    );\n\n    Shortcut.use(\n      useMemo(\n        () => ({\n          name: [name, \"Delete\"],\n          icon: Theme.Icon.Trash,\n\n          keys: [[\"Backspace\"], [\"Delete\"]],\n          action: () => deleteEntities(...selection),\n\n          enabled: selection.size > 0 && tool === \"select\",\n        }),\n        [name, selection, tool, deleteEntities]\n      )\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Selection/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { GlobalState } from \"~/GlobalState\";\nimport { Theme } from \"~/Theme\";\n\nimport { Shortcuts } from \"./Shortcut\";\n\nexport type Selection = Set<string>;\n\nexport declare namespace Selection {\n  export { Shortcuts };\n}\n\nexport namespace Selection {\n  Selection.Shortcuts = Shortcuts;\n\n  const useState = GlobalState.create(() => ({\n    selection: new Set<string>(),\n  }));\n\n  export const use = () => useState(({ selection }) => selection);\n  export const useSelect = () => {\n    const setState = useState.setState;\n    return useCallback(\n      (first: ID | ID[], ...rest: ID[]) => {\n        const ids = [...(typeof first === \"string\" ? [first] : first), ...rest];\n        return setState({ selection: new Set(ids) });\n      },\n      [setState]\n    );\n  };\n\n  export const useSelected = (id: ID) => {\n    const selection = use();\n    return useMemo(() => selection.has(id), [id, selection]);\n  };\n\n  export const useClear = () => {\n    const setState = useState.setState;\n    return useCallback(() => setState({ selection: new Set() }), [setState]);\n  };\n\n  export type OnlyOne = ID | undefined;\n  export namespace OnlyOne {\n    export const use = (id?: ID) => {\n      const selection = useState(({ selection }) => selection);\n      return useMemo(() => {\n        if (selection.size !== 1 || (id && !selection.has(id))) return;\n        return id ?? [...selection][0];\n      }, [id, selection]);\n    };\n\n    export const useSet = (id: ID) => {\n      const setState = useState.setState;\n      return useCallback(\n        (setSelected: React.SetStateAction<boolean>) => {\n          setState(({ selection: previousSelection }) => {\n            const selection = new Set(previousSelection);\n            const isCurrentlySelected = selection.has(id);\n            const shouldBeSelected =\n              typeof setSelected === \"function\"\n                ? setSelected(isCurrentlySelected)\n                : setSelected;\n\n            shouldBeSelected ? selection.add(id) : selection.delete(id);\n            return { selection };\n          });\n        },\n        [id, setState]\n      );\n    };\n  }\n\n  export function Tool() {\n    return (\n      <Editor.Tool label=\"Select\" tool=\"select\">\n        <Icon strokeWidth={1.5} size={22} />\n      </Editor.Tool>\n    );\n  }\n\n  export function Icon(props: React.ComponentProps<typeof Theme.Icon.Select>) {\n    return <Theme.Icon.Select {...props} />;\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Shortcut/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { UndoRedo } from \"~/UndoRedo\";\n\nexport namespace Shortcuts {\n  export const use = () => {\n    UndoRedo.Shortcuts.use();\n    Editor.Dream.Create.Shortcuts.use();\n    Editor.Brush.Shortcuts.use();\n    Editor.Selection.Shortcuts.use();\n    Editor.Export.Shortcuts.use();\n    Editor.Camera.Shortcuts.use();\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Sidebar/index.tsx",
    "content": "import { App } from \"~/App\";\nimport { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\nimport { Router } from \"~/Router\";\nimport { Theme } from \"~/Theme\";\n\nconst tips = [\n  \"You can drag and drop images into the editor to import them\",\n  \"Use the V key to switch to the select tool\",\n  \"Use the E key to switch to the eraser tool\",\n  \"Use the C key to switch to the snapshot tool\",\n  \"You can use the mouse wheel to zoom in and out\",\n  \"Try using multiple dreams to quickly switch between prompt and style presets\",\n  \"You can use the mouse wheel to zoom in and out\",\n  \"Hold shift to select multiple layers and move them together\",\n];\n\nexport function Sidebar() {\n  const location = Router.useLocation();\n  const selectedID = Editor.Selection.OnlyOne.use();\n  const dreams = Editor.Entities.useType(\"dream\") as Editor.Dream[];\n  const [inputID, setInputID] = useState(\"\");\n  const createDream = Editor.Dream.Render.use(inputID);\n\n  useEffect(() => {\n    selectedID && setInputID(selectedID);\n  }, [selectedID]);\n\n  const outputID = useMemo(() => {\n    const dream = dreams.filter((d) => d.id === selectedID)[0];\n    return dream?.outputID;\n  }, [dreams, selectedID]);\n\n  const generating = Generation.Image.Output.useIsGenerating(outputID);\n  const isDream = useMemo(\n    () => dreams.filter(({ id }) => id === selectedID).length > 0,\n    [dreams, selectedID]\n  );\n\n  const bottom = selectedID && (\n    <App.Sidebar.Tab.Bottom>\n      <Generation.Image.Create.Button\n        id={inputID}\n        onIdleClick={() => createDream()}\n        fullWidth\n        disabled={\n          !inputID ||\n          generating ||\n          !(dreams.filter((d) => d.id === selectedID).length > 0)\n        }\n        loading={generating}\n      />\n    </App.Sidebar.Tab.Bottom>\n  );\n\n  return (\n    <>\n      <App.Sidebar.Tab.Set\n        name=\"Edit\"\n        position=\"left\"\n        route=\"/edit\"\n        icon={Theme.Icon.Edit}\n        bottom={bottom}\n        enabled={\n          location.pathname.startsWith(\"/generate\") ||\n          location.pathname.startsWith(\"/edit\")\n        }\n        button={(props) => (\n          <App.Sidebar.Tab.Button {...props} onClick={props.onClick}>\n            Edit\n          </App.Sidebar.Tab.Button>\n        )}\n      >\n        <Editor.Tool.Sidebar.Section />\n        {isDream && (\n          <Generation.Image.Sidebar.Tab variant=\"editor\" id={inputID} />\n        )}\n        {!isDream && selectedID && <Editor.Image.Sidebar.Tab id={selectedID} />}\n        {!selectedID && <EmptySidebar />}\n      </App.Sidebar.Tab.Set>\n      <App.Sidebar.Tab.Set\n        button={false}\n        route=\"/edit\"\n        enabled={location.pathname.startsWith(\"/edit\")}\n        defaultActive\n        name=\"Layers\"\n        position=\"right\"\n        icon={Theme.Icon.Layers}\n      >\n        <Editor.Entities.Sidebar.Section />\n      </App.Sidebar.Tab.Set>\n    </>\n  );\n}\n\nfunction EditorSettings({ name }: { name?: string }) {\n  const {\n    color,\n    setColor,\n    allowSnapping,\n    setAllowSnapping,\n    autoFlatten,\n    setAutoFlatten,\n  } = Editor.State.use();\n\n  const pickerRef = useRef<HTMLInputElement>(null);\n\n  return (\n    <App.Sidebar.Section\n      divider\n      title={name || \"Settings\"}\n      defaultExpanded\n      padding=\"sm\"\n    >\n      <div className=\"flex flex-col gap-2 overflow-hidden px-1 pb-2\">\n        <div className=\"flex items-center justify-between\">\n          <Theme.Tooltip\n            placement=\"right\"\n            content=\"Snap layers to anchor points based on other layers.\"\n          >\n            <h1 className=\"text-muted-white\">Snapping</h1>\n          </Theme.Tooltip>\n          <Theme.Checkbox\n            value={allowSnapping}\n            onChange={setAllowSnapping}\n            labelLeft\n            labelClassName=\"text-muted-white mr-12\"\n          />\n        </div>\n        <div className=\"flex items-center justify-between\">\n          <Theme.Tooltip\n            placement=\"right\"\n            content=\"Automatically combine chosen images with existing overlapping images on the canvas.\"\n          >\n            <h1 className=\"text-muted-white\">Auto flatten</h1>\n          </Theme.Tooltip>\n          <Theme.Checkbox\n            value={autoFlatten}\n            onChange={setAutoFlatten}\n            labelLeft\n            labelClassName=\"text-muted-white mr-7\"\n          />\n        </div>\n        <div className=\"flex items-center justify-between\">\n          <Theme.Tooltip\n            placement=\"right\"\n            content=\"Change the background color for the canvas.\"\n          >\n            <h1 className=\"text-muted-white\">Background fill</h1>\n          </Theme.Tooltip>\n\n          <div className=\"flex items-center gap-3\">\n            <div\n              className=\"relative aspect-square h-7 cursor-pointer rounded-md border border-zinc-800\"\n              style={{ backgroundColor: `#${color}` }}\n              onMouseDown={() => {\n                if (pickerRef.current) {\n                  pickerRef.current.focus();\n                  pickerRef.current.click();\n                }\n              }}\n            >\n              <input\n                ref={pickerRef}\n                type=\"color\"\n                className=\"pointer-events-none absolute inset-0 opacity-0\"\n                value={`#${color}`}\n                onChange={(e) => {\n                  setColor(e.target.value.replace(\"#\", \"\"));\n                }}\n              />\n            </div>\n            <Theme.NumberInput icon=\"#\" onChange={setColor} value={color} />\n          </div>\n        </div>\n      </div>\n    </App.Sidebar.Section>\n  );\n}\n\nfunction EmptySidebar() {\n  const createNewDreambox = Editor.Dream.Create.use();\n  const uploadImage = Editor.Image.Import.useOpenFiles();\n\n  const [tipIndex, setTipIndex] = useState(\n    Math.ceil(Math.random() * (tips.length - 1))\n  );\n\n  return (\n    <>\n      <App.Sidebar.Section\n        divider\n        title=\"Add a dream\"\n        button={\n          <Theme.Button\n            icon={Theme.Icon.Plus}\n            onClick={() => createNewDreambox()}\n            transparent\n          />\n        }\n      />\n      <App.Sidebar.Section\n        divider\n        title=\"Upload\"\n        button={\n          <Theme.Button\n            icon={Theme.Icon.Upload}\n            onClick={() => uploadImage()}\n            transparent\n          />\n        }\n      />\n      <EditorSettings />\n      <div\n        className=\"absolute bottom-2 left-2 right-2 flex cursor-pointer select-none flex-col gap-2 justify-self-end rounded bg-zinc-800 p-2\"\n        onClick={() =>\n          setTipIndex(Math.ceil(Math.random() * (tips.length - 1)))\n        }\n      >\n        <h1 className=\"text-sm\">Tip</h1>\n        <h1 className=\"text-muted-white text-sm\">{tips[tipIndex]}</h1>\n      </div>\n    </>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Tool/Panel.tsx",
    "content": "import { Editor } from \"~/Editor\";\n\nexport function Panel() {\n  const [tool] = Editor.Tool.Active.use();\n\n  const { body } = useMemo(() => {\n    switch (tool) {\n      case \"brush\":\n        return {\n          body: <Editor.Brush.Panel />,\n        };\n\n      default:\n        return {};\n    }\n  }, [tool]);\n\n  return (\n    <Editor.Panels fixed className=\"max-w-[300px]\">\n      <Editor.Panel\n        position=\"topLeft\"\n        title={<span className=\"capitalize\">{tool}</span>}\n        contentClassName=\"w-[300px]\"\n      >\n        {body}\n      </Editor.Panel>\n    </Editor.Panels>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Tool/Sidebar.tsx",
    "content": "import { Editor } from \"~/Editor\";\n\nexport namespace Sidebar {\n  export function Section() {\n    const [tool] = Editor.Tool.Active.use();\n    return useMemo(() => {\n      switch (tool) {\n        case \"brush\":\n          return <Editor.Brush.Sidebar.Section />;\n\n        default:\n          return null;\n      }\n    }, [tool]);\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Tool/Tools.tsx",
    "content": "import { App } from \"~/App\";\nimport { Editor } from \"~/Editor\";\n\nexport function Tools() {\n  const [sidebar] = App.Sidebar.use(\"left\");\n  if (sidebar.tab !== \"Edit\") return null;\n  return (\n    <>\n      <div className=\"flex h-full flex-row items-center gap-2\">\n        <Editor.Tool.Group>\n          <Editor.Selection.Tool />\n          <Editor.Brush.Tool />\n        </Editor.Tool.Group>\n        <div className=\"h-[75%] w-[2px] bg-zinc-700\" />\n        <Editor.Export.Tools />\n      </div>\n    </>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/Tool/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { GlobalState } from \"~/GlobalState\";\nimport { Theme } from \"~/Theme\";\n\nimport { Panel } from \"./Panel\";\nimport { Sidebar } from \"./Sidebar\";\n\nexport * from \"./Tools\";\n\nexport type Tool = \"select\" | \"hand\" | \"brush\" | \"export\";\n\nexport function Tool({\n  tool,\n  label,\n  active,\n  onClick,\n  onMouseEnter,\n  onMouseLeave,\n  children,\n}: React.PropsWithChildren & {\n  tool?: Editor.Tool;\n  label?: string;\n  active?: boolean;\n  onClick?: () => void;\n  onMouseEnter?: () => void;\n  onMouseLeave?: () => void;\n}) {\n  const [activeTool, setActiveTool] = Editor.Tool.Active.use();\n\n  const content = (\n    <div className=\"flex flex-col\">\n      <div\n        onClick={\n          onClick ??\n          (() => {\n            if (!tool) return;\n            setActiveTool(tool);\n          })\n        }\n        onMouseEnter={onMouseEnter}\n        onMouseLeave={onMouseLeave}\n        className={classes(\n          \"m-0.5 flex h-10 w-10 cursor-pointer items-center justify-center rounded\",\n          active || tool === activeTool ? \"bg-brand-500\" : \"hover:bg-zinc-700\"\n        )}\n      >\n        {children}\n      </div>\n    </div>\n  );\n\n  return !label ? (\n    content\n  ) : (\n    <Theme.Tooltip content={label} placement=\"bottom\" delay={500}>\n      {content}\n    </Theme.Tooltip>\n  );\n}\n\nexport declare namespace Tool {\n  export { Panel, Sidebar };\n}\n\nexport namespace Tool {\n  Tool.Panel = Panel;\n  Tool.Sidebar = Sidebar;\n\n  export function Group({ children }: React.PropsWithChildren) {\n    return (\n      <div className=\"pointer-events-auto z-10 flex flex-row\">{children}</div>\n    );\n  }\n\n  export type Active = Tool;\n  export type State = {\n    value: Active;\n    set: (value: Active) => void;\n  };\n\n  export namespace Active {\n    const state = GlobalState.create<State>((set) => ({\n      value: \"select\",\n      set: (value) => set({ value }),\n    }));\n\n    export const use = () => [state().value, state().set] as const;\n    export const useSet = () => state().set;\n    export const useReset = () => state().set(\"select\");\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/TopBar/index.tsx",
    "content": "import { App } from \"~/App\";\n\nimport { Editor } from \"..\";\n\nexport function TopBar() {\n  return (\n    <App.TopBar.Center.Set>\n      <Editor.Tools />\n    </App.TopBar.Center.Set>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Editor/index.tsx",
    "content": "// import { App } from \"~/App\";\n\nimport { GlobalState } from \"~/GlobalState\";\n\nimport { Brush } from \"./Brush\";\nimport { Camera } from \"./Camera\";\nimport { Canvas } from \"./Canvas\";\nimport { Dream } from \"./Dream\";\nimport { Entities, Entity } from \"./Entity\";\nimport { Export } from \"./Export\";\nimport { Floating } from \"./Floating\";\nimport { Image, Images } from \"./Image\";\nimport { Import } from \"./Import\";\nimport { Panel, Panels } from \"./Panel\";\nimport { Reset } from \"./Reset\";\nimport { Selection } from \"./Selection\";\nimport { Shortcuts } from \"./Shortcut\";\nimport { Sidebar } from \"./Sidebar\";\nimport { Tool, Tools } from \"./Tool\";\nimport { TopBar } from \"./TopBar\";\n\nexport function Editor() {\n  Shortcuts.use();\n\n  const createDream = Editor.Dream.Create.use();\n  const { color } = Editor.State.use();\n\n  useEffect(() => {\n    const entities = Editor.Entities.get();\n    if (entities.size > 0) return;\n    createDream();\n  }, [createDream]);\n\n  // App.Breadcrumbs.useSet([\"defaultProject\", \"edit\"]);\n  return useMemo(\n    () => (\n      <>\n        <TopBar />\n        <div\n          className=\"relative z-[0] flex h-full min-h-0 w-full shrink select-none flex-col overflow-hidden dark:text-white\"\n          style={{ backgroundColor: `#${color}` }}\n        >\n          <Canvas>\n            <Entities />\n          </Canvas>\n          <Floating />\n        </div>\n      </>\n    ),\n    [color]\n  );\n}\n\nexport declare namespace Editor {\n  export {\n    Brush,\n    Camera,\n    Canvas,\n    Dream,\n    Entities,\n    Entity,\n    Export,\n    Floating,\n    Image,\n    Images,\n    Import,\n    Panel,\n    Panels,\n    Reset,\n    Selection,\n    Shortcuts,\n    Sidebar,\n    Tool,\n    Tools,\n  };\n}\n\nexport namespace Editor {\n  Editor.Brush = Brush;\n  Editor.Camera = Camera;\n  Editor.Canvas = Canvas;\n  Editor.Dream = Dream;\n  Editor.Entities = Entities;\n  Editor.Entity = Entity;\n  Editor.Export = Export;\n  Editor.Floating = Floating;\n  Editor.Image = Image;\n  Editor.Import = Import;\n  Editor.Panel = Panel;\n  Editor.Panels = Panels;\n  Editor.Reset = Reset;\n  Editor.Selection = Selection;\n  Editor.Shortcuts = Shortcuts;\n  Editor.Sidebar = Sidebar;\n  Editor.Tool = Tool;\n  Editor.Tools = Tools;\n\n  export type State = {\n    color: string;\n    setColor: (color: string) => void;\n    allowSnapping: boolean;\n    setAllowSnapping: (allowSnapping: boolean) => void;\n    autoFlatten: boolean;\n    setAutoFlatten: (autoFlatten: boolean) => void;\n  };\n\n  export namespace State {\n    export const use = GlobalState.create<State>((set) => ({\n      color: \"121212\",\n      setColor: (color) => set((state) => ({ ...state, color })),\n      allowSnapping: true,\n      setAllowSnapping: (allowSnapping) =>\n        set((state) => ({ ...state, allowSnapping })),\n      autoFlatten: true,\n      setAutoFlatten: (autoFlatten) =>\n        set((state) => ({ ...state, autoFlatten })),\n    }));\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Environment/index.tsx",
    "content": "import { CustomError } from \"ts-custom-error\";\n\ndeclare global {\n  interface ImportMeta {\n    readonly env: Environment;\n  }\n\n  interface ImportMetaEnv {\n    readonly VITE_GIT_HASH: string;\n    readonly VITE_USE_EXAMPLE_PLUGIN: string;\n    readonly VITE_USE_WEBUI_PLUGIN: string;\n  }\n}\n\nexport type Environment = ImportMetaEnv;\nexport namespace Environment {\n  export type VariableName = keyof typeof variables extends `VITE_${infer K}`\n    ? K\n    : never;\n\n  const variables = {\n    VITE_GIT_HASH: import.meta.env.VITE_GIT_HASH,\n    VITE_USE_EXAMPLE_PLUGIN: import.meta.env.VITE_USE_EXAMPLE_PLUGIN ?? \"false\",\n    VITE_USE_WEBUI_PLUGIN: import.meta.env.VITE_USE_WEBUI_PLUGIN ?? \"false\",\n  } as const;\n\n  export function get(name: VariableName): string {\n    return variables[`VITE_${name}` as const];\n  }\n\n  export class MissingVariablesError extends CustomError {\n    constructor(missingVariables: string[]) {\n      missingVariables.map((name) => `\\`${name}\\` is \\`undefined\\`!`);\n      super(missingVariables.join(\"\\n\"));\n    }\n  }\n\n  export function Provider({ children }: React.PropsWithChildren) {\n    useEffect(() => {\n      const missingVariables = Object.entries(variables)\n        .filter(([, value]) => `${value ?? \"\"}` === \"\")\n        .map(([name]) => name);\n\n      if (!missingVariables[0]) return;\n      throw new Environment.MissingVariablesError(missingVariables);\n    }, []);\n\n    return <>{children}</>;\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/ClipBoard/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\n\nexport namespace ClipBoard {\n  export const useCopy = () =>\n    useCallback(async (image: Generation.Image) => {\n      const blob = await Generation.Image.blob(image);\n      if (!blob) return;\n\n      const clipboard = new ClipboardItem({ [blob.type]: blob });\n      await navigator.clipboard.write([clipboard]);\n    }, []);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Controls/Button/index.tsx",
    "content": "import { motion } from \"framer-motion\";\n\nimport { Theme } from \"~/Theme\";\n\nexport function Buttons({\n  className,\n  children,\n  y,\n}: StyleableWithChildren & { y: number }) {\n  return (\n    <motion.div\n      className={classes(\"m-3 my-4 flex justify-end gap-2\", className)}\n      initial={{ y }}\n      transition={{ duration: 0.15 }}\n    >\n      {children}\n    </motion.div>\n  );\n}\n\nexport function Button({\n  button,\n  className,\n  name,\n  ...props\n}: Theme.Button.Props & {\n  alwaysShow?: boolean;\n  noBg?: boolean;\n  button?: React.FunctionComponent<Theme.Button.Props>;\n  name?: React.ReactNode;\n}) {\n  const buttonProps: Theme.Button.Props = {\n    ...props,\n    outline: false,\n    className: classes(\n      className,\n      \"pointer-events-auto bg-transparent\",\n      !props.noBg &&\n        !props.disabled &&\n        \"hover:bg-brand-400 dark:hover:bg-brand-400\"\n    ),\n  };\n\n  const content = button ? (\n    button(buttonProps)\n  ) : (\n    <Theme.Button {...buttonProps} />\n  );\n\n  return (\n    <>\n      {name ? (\n        <Theme.Tooltip content={name} placement=\"top\" className={className}>\n          {content}\n        </Theme.Tooltip>\n      ) : (\n        content\n      )}\n    </>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Controls/index.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nimport { Button, Buttons } from \"./Button\";\n\nexport function Controls({ image }: { image: Generation.Image }) {\n  const download = Generation.Image.Download.use(image);\n  const setInitialImage = Generation.Image.Session.useSetInitialImage();\n  const createVariations = Generation.Image.Session.useCreateVariations(image);\n  const sendToEditor = Editor.Import.use(image);\n\n  const { input } = Generation.Image.Input.use(image.inputID);\n  const isInitialImage = useMemo(\n    () => !!input?.init && \"src\" in input.init && input.init?.src === image.src,\n    [input, image.src]\n  );\n\n  const createVariationsButton = useMemo(\n    () =>\n      input?.id &&\n      !Generation.Image.Input.isUpscaling(input) && (\n        <Button\n          button={(props) => (\n            <Generation.Image.Variations.Create.Button\n              {...props}\n              id={input.id}\n              icon={Theme.Icon.Variation}\n              onIdleClick={createVariations}\n              noBrand\n            />\n          )}\n          transparent\n          className=\"mr-auto -ml-1\"\n        />\n      ),\n    [input, createVariations]\n  );\n\n  const editorButton = useMemo(\n    () => (\n      <Button\n        icon={Theme.Icon.Edit}\n        name=\"Edit image\"\n        onClick={sendToEditor}\n        color=\"zinc\"\n        transparent\n      />\n    ),\n    [sendToEditor]\n  );\n\n  const initialImageButton = useMemo(\n    () => (\n      <Button\n        icon={Theme.Icon.Image}\n        name={isInitialImage ? \"Initial image\" : \"Set as initial image\"}\n        disabled={isInitialImage}\n        className={classes(isInitialImage && \"opacity-50\")}\n        onClick={() => setInitialImage(image)}\n        color=\"zinc\"\n        transparent\n      />\n    ),\n    [isInitialImage, setInitialImage, image]\n  );\n\n  const isMobileDevice = Theme.useIsMobileDevice();\n\n  return useMemo(\n    () => (\n      <>\n        <div className=\"pointer-events-none absolute flex h-full w-full flex-col justify-between opacity-0 duration-150 group-hover:opacity-75\">\n          <div className=\"h-[6rem] bg-gradient-to-b from-black to-transparent\" />\n          <div className=\"h-[6rem] bg-gradient-to-b from-transparent to-black sm:hidden\" />\n        </div>\n        <div className=\"pointer-events-none absolute flex h-full w-full flex-col justify-between opacity-0 duration-150 group-hover:opacity-100\">\n          <Generation.Image.Controls.Buttons y={-6}>\n            {createVariationsButton}\n            {!isMobileDevice && (\n              <>\n                {editorButton}\n                {initialImageButton}\n                <Generation.Image.Controls.Button\n                  name=\"Download image\"\n                  icon={Theme.Icon.Download}\n                  onClick={() => download()}\n                  transparent\n                />\n                <Generation.Images.Delete.Button images={[image.id]} />\n              </>\n            )}\n          </Generation.Image.Controls.Buttons>\n          {isMobileDevice && (\n            <Generation.Image.Controls.Buttons className=\"justify-start\" y={6}>\n              {initialImageButton}\n              <Generation.Image.Controls.Button\n                name=\"Download image\"\n                icon={Theme.Icon.Download}\n                onClick={() => download()}\n                transparent\n              />\n              <Generation.Images.Delete.Button images={[image.id]} />\n            </Generation.Image.Controls.Buttons>\n          )}\n        </div>\n      </>\n    ),\n    [\n      createVariationsButton,\n      isMobileDevice,\n      editorButton,\n      initialImageButton,\n      download,\n      image.id,\n    ]\n  );\n}\n\nControls.Button = Button;\nControls.Buttons = Buttons;\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Count/index.tsx",
    "content": "import { GlobalState } from \"~/GlobalState\";\nimport { Theme } from \"~/Theme\";\n\nexport type Count = number;\nexport namespace Count {\n  export function Slider() {\n    const [count, setCount] = Count.use();\n    return (\n      <Theme.Slider\n        title=\"Image count\"\n        min={1}\n        max={10}\n        value={count}\n        onChange={setCount}\n      />\n    );\n  }\n}\n\nexport namespace Count {\n  export const preset = () => 4 as const;\n\n  export const get = (): number => store.getState().count;\n  export const set = (count: number) => store.getState().setCount(count);\n  export const use = () =>\n    store(\n      ({ count, setCount }) => [count, setCount] as const,\n      GlobalState.shallow\n    );\n}\n\nconst store = GlobalState.create<{\n  count: number;\n  setCount: (count: number) => void;\n}>((set) => ({\n  count: Count.preset(),\n  setCount: (count) => set({ count }),\n}));\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Create/Button/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport function Button({\n  id,\n  noTitle,\n  noBrand,\n  disabled,\n  onIdleClick,\n  onClick: originalOnClick,\n  children,\n  ...props\n}: Button.Props) {\n  const isEnabled = Generation.Image.Create.useIsEnabled();\n\n  const { input } = Generation.Image.Input.use(id);\n\n  const onClick = useCallback(\n    (event: MouseEvent) => {\n      originalOnClick?.(event);\n      onIdleClick?.(event);\n    },\n    [onIdleClick, originalOnClick]\n  );\n\n  const validated = useMemo(\n    () => input && Generation.Image.Model.StableDiffusionV1.validate(input),\n    [input]\n  );\n\n  if (!input) return null;\n  return (\n    <Theme.Button\n      size=\"lg\"\n      color={noBrand ? \"zinc\" : \"brand\"}\n      icon={Theme.Icon.Dream}\n      disabled={disabled || !isEnabled || !validated}\n      onClick={onClick}\n      {...props}\n    >\n      {children ?? (!noTitle && <>Dream</>)}\n    </Theme.Button>\n  );\n}\n\nexport namespace Button {\n  export type Props = Theme.Button.Props & {\n    id: ID;\n    noTitle?: boolean;\n    noBadge?: boolean;\n    noBrand?: boolean;\n    onIdleClick?: (event: MouseEvent) => void;\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Create/index.tsx",
    "content": "import * as StableStudio from \"@stability/stablestudio-plugin\";\nimport throttledQueue from \"throttled-queue\";\n\nimport { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\nimport { Plugin } from \"~/Plugin\";\n\nimport { Button } from \"./Button\";\n\nexport declare namespace Create {\n  export { Button };\n}\n\nexport namespace Create {\n  Create.Button = Button;\n\n  type Handlers = {\n    onStarted?: (output?: Generation.Image.Output) => void;\n    onException?: (error: Generation.Image.Exception) => void;\n    onSuccess?: (images: Generation.Images) => void;\n    onFinished?: (\n      result: Generation.Image.Exception | Generation.Images\n    ) => void;\n  };\n\n  namespace Throttle {\n    const requestsPerInterval = 1;\n    const interval = 500;\n    const spaceEvenly = true;\n\n    const queue = throttledQueue(requestsPerInterval, interval, spaceEvenly);\n    export const wait = () => queue(() => Promise.resolve());\n  }\n\n  export const execute = async ({\n    count = Generation.Image.Count.preset(),\n    input,\n\n    onStarted = doNothing,\n    onException = doNothing,\n    onSuccess = doNothing,\n    onFinished = doNothing,\n  }: Handlers & {\n    count: number;\n    input: Generation.Image.Input;\n  }): Promise<Generation.Image.Exception | Generation.Images> => {\n    const { createStableDiffusionImages } = Plugin.get();\n    try {\n      if (!createStableDiffusionImages) throw new Error(\"Plugin not found\");\n\n      Latest.set(new Date());\n      onStarted();\n\n      await Throttle.wait();\n\n      const initImg = await Generation.Image.Input.resizeInit(input);\n      const pluginInput = await Generation.Image.Input.toInput(\n        !initImg\n          ? input\n          : {\n              ...input,\n              init: {\n                base64: initImg,\n                weight: input.init?.weight ?? 1,\n                mask: input.init?.mask ?? false,\n              },\n            }\n      );\n\n      if (!Generation.Image.Input.isUpscaling(input)) {\n        pluginInput.height = Math.ceil((pluginInput.height ?? 512) / 64) * 64;\n        pluginInput.width = Math.ceil((pluginInput.width ?? 512) / 64) * 64;\n      }\n\n      const responses: Generation.Images = [];\n      const response = await createStableDiffusionImages({\n        input: pluginInput,\n        count,\n      });\n\n      if (response instanceof Error) throw response;\n      if (!response || !response?.images || response?.images?.length <= 0)\n        throw new Error();\n\n      const newInputs: Record<ID, Generation.Image.Input> = {};\n\n      for (const image of response.images) {\n        const inputID = ID.create();\n        const newInput = {\n          ...Generation.Image.Input.initial(inputID),\n          ...input,\n          seed: image.input?.seed ?? input.seed,\n          id: inputID,\n        };\n\n        const cropped = await cropImage(image, newInput);\n        if (!cropped) continue;\n\n        responses.push(cropped);\n        newInputs[inputID] = newInput;\n      }\n\n      Generation.Image.Inputs.set({\n        ...Generation.Image.Inputs.get(),\n        ...newInputs,\n      });\n\n      onSuccess(responses);\n      onFinished(responses);\n\n      return responses;\n    } catch (caught: unknown) {\n      const exception = Generation.Image.Exception.create(caught);\n\n      onException(exception);\n      onFinished(exception);\n\n      return exception;\n    }\n  };\n\n  export const use = () => {\n    const showErrorSnackbar = Generation.Image.Exception.Snackbar.use();\n\n    return useCallback(\n      async ({\n        inputID,\n        onStarted = doNothing,\n        onException = doNothing,\n        onSuccess = doNothing,\n        onFinished = doNothing,\n        modifiers = {},\n      }: {\n        inputID: ID;\n        modifiers?: Generation.Image.Input.Modifiers;\n      } & Handlers) => {\n        let input = Generation.Image.Input.get(inputID);\n        if (!input) return;\n\n        input = {\n          ...input,\n          ...modifiers,\n        };\n\n        const output = Generation.Image.Output.requested(inputID, modifiers);\n\n        return execute({\n          count: modifiers.count ?? Generation.Image.Count.get(),\n          input,\n\n          onStarted: () => {\n            Generation.Image.Output.set(output);\n            onStarted(output);\n          },\n\n          onException: (exception) => {\n            showErrorSnackbar(exception);\n            onException(exception);\n            Generation.Image.Output.clear(output.id);\n          },\n\n          onSuccess: (images) => {\n            images.forEach(Generation.Image.add);\n            onSuccess(images);\n          },\n\n          onFinished: (result) => {\n            Generation.Image.Output.received(output.id, result);\n            onFinished(result);\n          },\n        });\n      },\n      [showErrorSnackbar]\n    );\n  };\n\n  export const useIsEnabled = () =>\n    Plugin.use(\n      ({ createStableDiffusionImages }) => !!createStableDiffusionImages\n    );\n\n  export type Latest = Date;\n  export namespace Latest {\n    export const get = () => State.get().latest;\n    export const set = (latest: Latest) => State.get().setLatest(latest);\n\n    export const use = () =>\n      State.use(({ latest }) => latest, GlobalState.shallow);\n\n    type State = {\n      latest?: Latest;\n      setLatest: (latest: Latest) => void;\n    };\n\n    namespace State {\n      const store = GlobalState.create<State>((set) => ({\n        setLatest: (latest: Latest) => set({ latest }),\n      }));\n\n      export const get = () => store.getState();\n      export const use = store;\n    }\n  }\n}\n\n// TODO: Move somewhere else\nfunction cropImage(\n  image: StableStudio.StableDiffusionImage,\n  input: Generation.Image.Input\n) {\n  return new Promise<Generation.Image | void>((resolve) => {\n    const id = image.id;\n    const blob = image.blob;\n    if (!blob || !id) return resolve();\n\n    // crop image to box size\n    const croppedCanvas = document.createElement(\"canvas\");\n    croppedCanvas.width = input.width;\n    croppedCanvas.height = input.height;\n\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    const croppedCtx = croppedCanvas.getContext(\"2d\")!;\n\n    const img = new window.Image();\n    img.src = URL.createObjectURL(blob);\n    img.onload = () => {\n      croppedCtx.drawImage(\n        img,\n        0,\n        0,\n        input.width,\n        input.height,\n        0,\n        0,\n        input.width,\n        input.height\n      );\n\n      croppedCanvas.toBlob((blob) => {\n        if (blob) {\n          const objectURL = URL.createObjectURL(blob);\n          resolve({\n            id,\n            inputID: input.id,\n            created: new Date(),\n            src: objectURL,\n            finishReason: 0,\n          });\n        }\n      });\n    };\n  });\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Download/Modal/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\nimport { Theme } from \"~/Theme\";\n\nexport function Modal() {\n  const { image, setImage, fileName, setFileName, upscale, setUpscale } =\n    Modal.State.use();\n\n  const doUpscale = Generation.Image.Session.useUpscale(image);\n  const [upscaling, setUpscaling] = useState(false);\n  const download = Generation.Image.Download.use(image);\n\n  const input = image && Generation.Image.Input.get(image.inputID);\n  const alreadyUpscaled = Generation.Image.Input.isUpscaling(\n    input || ({} as Generation.Image.Input)\n  );\n\n  useEffect(() => {\n    if (image) {\n      input && setFileName(Generation.Image.Download.fileName(input));\n      setUpscale(alreadyUpscaled);\n    }\n  }, [alreadyUpscaled, image, input, setFileName, setUpscale]);\n\n  const onUpscale = useCallback(async () => {\n    if (!image) return;\n\n    setUpscaling(true);\n    const result = await doUpscale();\n\n    setUpscaling(false);\n\n    if (Array.isArray(result)) {\n      return result[0];\n    }\n  }, [doUpscale, image]);\n\n  const goingToUpscale = upscale && !alreadyUpscaled;\n\n  return (\n    <Theme.Modal modalName=\"Download\" open={!!image} onClose={() => setImage()}>\n      {image && (\n        <Theme.Modal.Panel className=\"flex w-[25rem] grow\">\n          <Theme.Modal.TopBar onClose={() => setImage()}>\n            <Theme.Modal.Title className=\"text-lg\">Download</Theme.Modal.Title>\n          </Theme.Modal.TopBar>\n          <div className=\"flex flex-col gap-3 p-2\">\n            <div className=\"flex items-center justify-between\">\n              <div className=\"flex flex-col gap-1\">\n                <Theme.Label className=\"mb-0 ml-0\">File name</Theme.Label>\n                <Theme.Input\n                  fullWidth\n                  onFocus={(e) => {\n                    // select all but file extension\n                    const value = e.target.value;\n                    const extension = value.slice(value.lastIndexOf(\".\"));\n                    e.target.setSelectionRange(\n                      0,\n                      value.length - extension.length\n                    );\n                  }}\n                  placeholder=\"File name\"\n                  value={fileName}\n                  onChange={setFileName}\n                />\n              </div>\n              <div className=\"flex flex-col gap-1\">\n                <Theme.Label className=\"mb-0 ml-0\">Upscale</Theme.Label>\n                <Theme.Dropdown\n                  fullWidth\n                  className=\"mx-0\"\n                  options={[\n                    { label: \"1x\", value: \"1x\" },\n                    { label: \"2x\", value: \"2x\" },\n                  ]}\n                  value={upscale ? \"2x\" : \"1x\"}\n                  onChange={(value) => setUpscale(value.value === \"2x\")}\n                  disabled={alreadyUpscaled}\n                />\n              </div>\n            </div>\n            {/* {goingToUpscale && (\n              <div className=\"flex w-full flex-col gap-4\">\n                <Generation.Image.Upscale.Sidebar />\n              </div>\n            )} */}\n            <Theme.Button\n              fullWidth\n              size=\"lg\"\n              color=\"brand\"\n              icon={Theme.Icon.Download}\n              loading={upscaling}\n              badgeRight={\n                goingToUpscale && <Theme.Badge color=\"brand\">0.2</Theme.Badge>\n              }\n              onClick={() => {\n                if (!image || !input) return;\n\n                if (goingToUpscale) {\n                  onUpscale().then((image) => {\n                    image && download(image);\n\n                    setImage();\n                  });\n                } else {\n                  download();\n                  setImage();\n                }\n              }}\n            >\n              {upscaling\n                ? \"Upscaling...\"\n                : goingToUpscale\n                ? \"Upscale and download\"\n                : \"Download\"}\n            </Theme.Button>\n          </div>\n        </Theme.Modal.Panel>\n      )}\n    </Theme.Modal>\n  );\n}\n\nexport namespace Modal {\n  export type State = {\n    image?: Generation.Image;\n    fileName?: string;\n    upscale: boolean;\n    setImage: (image?: Generation.Image) => void;\n    setFileName: (fileName?: string) => void;\n    setUpscale: (upscale: boolean) => void;\n  };\n\n  export namespace State {\n    export const use = GlobalState.create<State>((set) => ({\n      setImage: (image) => set((state) => ({ ...state, image })),\n      setFileName: (fileName) => set((state) => ({ ...state, fileName })),\n      setUpscale: (upscale) => set((state) => ({ ...state, upscale })),\n      upscale: false,\n    }));\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Download/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\n\nimport { Modal } from \"./Modal\";\n\nexport declare namespace Download {\n  export { Modal };\n}\n\nexport namespace Download {\n  Download.Modal = Modal;\n\n  export const fileName = (input: Generation.Image.Input) => {\n    const promptText = input.prompts.map(({ text }) => text).join(\" \");\n    const promptTrimmed = (promptText ?? \"\").slice(0, 50);\n\n    const model = input.model\n      .replace(\"stable-diffusion-\", \"\")\n      .replace(\"stable-\", \"\");\n\n    const seed = input.seed;\n    return `${seed}_${promptTrimmed}_${model}.png`;\n  };\n\n  export const execute = async (\n    image: Generation.Image,\n    input: Generation.Image.Input,\n    name?: string\n  ) => {\n    const href = await Generation.Image.blobURL(image);\n    if (!href) return;\n\n    const a = document.createElement(\"a\");\n    a.href = href;\n    a.download = name ?? fileName(input);\n    a.click();\n  };\n\n  export const use = (image?: Generation.Image) => {\n    const { image: modalImage, fileName, setImage } = Modal.State.use();\n\n    return useCallback(\n      async (overrideImage?: Generation.Image) => {\n        if (overrideImage) {\n          const input = Generation.Image.Input.get(overrideImage.inputID);\n          if (input) return execute(overrideImage, input);\n        }\n\n        if (!image) return;\n\n        const input = Generation.Image.Input.get(image.inputID);\n        if (!input) return;\n\n        if (image === modalImage) {\n          await execute(image, input, fileName);\n        } else {\n          setImage(image);\n        }\n      },\n      [fileName, image, modalImage, setImage]\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Exception/Snackbar.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Snackbar {\n  export const use = () => {\n    const { enqueueSnackbar } = Theme.Snackbar.use();\n    return useCallback(\n      (exception: Generation.Image.Exception) =>\n        enqueueSnackbar(exception.description, {\n          variant: \"error\",\n        }),\n      [enqueueSnackbar]\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Exception/index.ts",
    "content": "import { RpcError } from \"@protobuf-ts/runtime-rpc\";\n\nimport { Snackbar } from \"./Snackbar\";\n\nexport type Exception = {\n  /** The underlying error */\n  readonly cause: Error | RpcError;\n\n  /** Human-readable description of the underlying error */\n  readonly description: string;\n\n  /** Either the gRPC status code or one of our custom statuses */\n  readonly status?: \"BANNED_TERM\" | \"OUT_OF_CREDITS\" | string;\n};\n\nexport declare namespace Exception {\n  export { Snackbar };\n}\n\nexport namespace Exception {\n  Exception.Snackbar = Snackbar;\n\n  const defaultMessage =\n    \"Something went wrong on our end, please try again later\";\n\n  export function is(value: unknown): value is Exception {\n    if (!value && typeof value !== \"object\") return false;\n    const exception = value as Exception;\n    return (\n      exception.cause instanceof Error &&\n      (exception.status === undefined ||\n        typeof exception.status === \"string\") &&\n      typeof exception.description === \"string\"\n    );\n  }\n\n  export function create(unknown: unknown = {}): Exception {\n    console.error(unknown);\n\n    if (\n      unknown instanceof RpcError ||\n      (unknown instanceof Error && unknown.name === \"RpcError\")\n    ) {\n      const rpcError = unknown as RpcError;\n      return {\n        cause: rpcError,\n        description: translateError(rpcError),\n        status: isBannedTermError(rpcError)\n          ? \"BANNED_TERM\"\n          : isOutOfCreditsError(rpcError)\n          ? \"OUT_OF_CREDITS\"\n          : rpcError.code,\n      };\n    }\n\n    const error =\n      unknown instanceof Error ? unknown : new Error(toJSON(unknown));\n\n    return {\n      cause: error,\n      description: error.message,\n    };\n  }\n\n  function translateError(error: RpcError): string {\n    switch (true) {\n      case error.message.includes(\"Completion canceled by user.\"):\n        return \"Canceled\";\n\n      case error.message.includes(\n        \"Unable to remove the only API key remaining.\"\n      ):\n        return \"Sorry, you can't delete your only API key\";\n\n      case error.message.includes(\"Unable to get organization for request.\"):\n        return \"We couldn't find the organization you're asking for\";\n\n      case isOutOfCreditsError(error):\n        return \"Not enough credits\";\n\n      case isBannedTermError(error):\n        return \"Something isn't quite right with your prompts\";\n\n      case error.message.includes(\"Unable to get user for request.\"):\n        return \"We couldn't find the user you're asking for\";\n\n      case error.message.includes(\"Unable to locate request organization.\"):\n        return \"We couldn't find the organization you're asking for \";\n\n      case error.message.includes(\"Error filtering prompts.\"):\n        return \"Something isn't quite right with your prompts\";\n\n      case error.message.includes(\"Invalid prompts detected\"):\n        return \"Something isn't quite right with your prompts\";\n\n      case error.message.includes(\"no prompts provided\"):\n        return \"You have to provide at least one prompt\";\n\n      case error.message.includes(\n        \"Unable to create a new billing ticket for this request.\"\n      ):\n        return \"We couldn't create a charge for some reason\";\n\n      case error.message.includes(\"cannot use empty Id for project file\"):\n        return \"You have to specify a project\";\n\n      case error.message.includes(\"Incorrect time range provided.\"):\n        return \"Something was wrong with the times you provided\";\n\n      case error.message.includes(\"must provide image parameters\"):\n        return \"Something isn't right with the image you provided\";\n\n      case error.message.includes(\"cannot create project with deleted status\"):\n        return \"That project was already deleted\";\n\n      case error.message.includes(\"Incorrect amount value.\"):\n        return \"You can't charge less than $0.00\";\n\n      case error.message.includes('API key with ID \"'):\n        return \"We couldn't find the API key you're asking for\";\n\n      case error.message.includes('Unable to find organization with ID \"'):\n        return \"We couldn't find the organization you're asking for\";\n\n      case error.message.includes(\"No auto-charge intent.\"):\n        return \"You aren't set up for auto-charging\";\n\n      case error.message.includes(\n        \"You do not have permission to access this resource.\"\n      ):\n        return \"You don't the right permissions\";\n\n      case error.message.includes(\"EmailNotVerifiedMessage\"):\n        return \"You still need to verify your email address\";\n\n      case error.message.includes(\n        \"user is not a member of the requested organization\"\n      ):\n        return \"You aren't a member of that organization\";\n\n      case error.message.includes(\n        \"You have insufficient privileges to access this resource.\"\n      ):\n        return \"You don't have the right permissions\";\n\n      case error.message.includes(\"You have too many API keys.\"):\n        return \"There are too many API keys\";\n\n      case error.message.includes(\"Unable to set default organization.\"):\n        return \"We couldn't set your default organization\";\n\n      case error.message.includes(\"Unable to update client settings.\"):\n        return \"We couldn't update your settings\";\n\n      case error.message.includes(\n        \"Unable to connect to the prompt filter requested\"\n      ):\n        return \"We couldn't properly filter your prompt\";\n\n      case error.message.includes(\n        \"Unable to generate cost env for this request.\"\n      ):\n        return \"We couldn't generate a cost estimate for your request\";\n\n      case error.message.includes(\"Unable to connect to the engine requested\"):\n        return \"Something's wrong with the model your're trying to use\";\n\n      case error.message.includes(\n        \"Unable to connect to the classifier requested\"\n      ):\n        return \"We couldn't use the classifier you're asking for\";\n\n      case error.message.includes(\"An unexpected server error occurred.\"):\n        return defaultMessage;\n\n      case error.message.includes(\"Unable to create a new API key.\"):\n        return \"We couldn't create an API key for some reason\";\n\n      case error.message.includes(\"Unable to delete the API key.\"):\n        return \"We couldn't delete the API key for some reason\";\n\n      case error.message.includes(\"Unable to create an auto-charge intent:\"):\n        return \"We couldn't set up auto-charge for some reason\";\n\n      case error.message.includes(\"Unable to get auto-charge intent.\"):\n        return \"We couldn't get your auto-charge settings\";\n\n      case error.message.includes(\n        \"Unable to create a checkout session for this charge.\"\n      ):\n        return \"We couldn't create a charge for some reason\";\n\n      case error.message.includes(\"Unable to get charges.\"):\n        return \"We couldn't get your charges\";\n\n      case error.message.includes(\"Unable to delete account, contact support\"):\n        return \"We couldn't delete your account, please contact support\";\n\n      case error.message.includes(\"image dimensions must be multiples of 64\"):\n        return \"We somehow sent an image with the wrong dimensions\";\n\n      default:\n        return defaultMessage;\n    }\n  }\n\n  export function isBannedTermError(error: RpcError): boolean {\n    return error.code === \"BANNED_TERM\";\n  }\n\n  export function isOutOfCreditsError(error: RpcError): boolean {\n    return error.message.includes(\"does not have enough balance\");\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/HTMLElement/Dragging/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\n\nexport type Dragging = { image?: Generation.Image };\n\nexport namespace Dragging {\n  export const useImage = () => State.use(({ image }) => image);\n\n  export const useStart = () => {\n    const setImage = State.use(({ setImage }) => setImage);\n    return useCallback(\n      (image?: Generation.Image) => setImage(image),\n      [setImage]\n    );\n  };\n\n  export const useStop = () => {\n    const setImage = State.use(({ setImage }) => setImage);\n    return useCallback(\n      (_image?: Generation.Image) => setImage(undefined),\n      [setImage]\n    );\n  };\n}\n\ntype State = {\n  image?: Generation.Image;\n  setImage: (image?: Generation.Image) => void;\n};\n\nnamespace State {\n  export const use = GlobalState.create<State>((set) => ({\n    image: undefined,\n    setImage: (image?: Generation.Image) => set({ image }),\n  }));\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/HTMLElement/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\n\nimport { Dragging } from \"./Dragging\";\n\nexport function HTMLElement({\n  image,\n  src,\n\n  onLoadingChange,\n  onClick,\n\n  className,\n}: Styleable & {\n  image?: Generation.Image;\n  src?: URLString;\n\n  onLoadingChange?: (loading: boolean) => void;\n  onClick?: () => void;\n}) {\n  const ref = useRef<HTMLImageElement | null>(null);\n\n  const startDragging = Dragging.useStart();\n  const stopDragging = Dragging.useStop();\n\n  const [loading, setLoading] = useState(true);\n  const actualSRC = src ?? image?.src;\n\n  useEffect(() => {\n    !ref.current?.complete && setLoading(true);\n  }, [actualSRC]);\n\n  useEffect(() => {\n    onLoadingChange?.(loading);\n  }, [loading, onLoadingChange]);\n\n  if (!actualSRC) return null;\n  return (\n    <img\n      src={actualSRC}\n      onDragStart={() => startDragging(image)}\n      onDragEnd={() => stopDragging(image)}\n      onClick={onClick}\n      ref={(img) => {\n        ref.current = img;\n\n        if (!img) return;\n        img.onload = () => setLoading(false);\n      }}\n      className={classes(\n        \"h-full w-full object-cover opacity-0 duration-500\",\n        !loading && \"opacity-100\",\n        className\n      )}\n    />\n  );\n}\n\nHTMLElement.Dragging = Dragging;\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/Delete/Button.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport function Button({\n  variant,\n  deleteTooltip,\n  className,\n  images,\n  outline,\n}: Styleable & {\n  // TODO: This sucks\n  variant?: \"group\";\n  deleteTooltip?: string;\n  images: IDs;\n  outline?: boolean;\n}) {\n  const [deleteConfirming, setDeleteConfirming] = useState(false);\n  const deleteImages = Generation.Images.Delete.use();\n  const isEnabled = Generation.Images.Delete.useIsEnabled();\n  return useMemo(\n    () =>\n      !isEnabled ? null : deleteConfirming ? (\n        <div className={classes(\"-py-1 rounded bg-black/75 px-1\", className)}>\n          <Generation.Image.Controls.Button\n            alwaysShow={variant === \"group\"}\n            name={deleteTooltip ?? \"Delete image\"}\n            icon={(props) => (\n              <Theme.Icon.Check\n                {...props}\n                className={classes(\n                  props.className,\n                  \"h-6 w-6 origin-center scale-[0.9] text-red-500/75 opacity-100 hover:text-red-500/100\"\n                )}\n              />\n            )}\n            onClick={() => {\n              deleteImages.mutate(images);\n              setDeleteConfirming(false);\n            }}\n            transparent\n            noBg\n          />\n          <Generation.Image.Controls.Button\n            name=\"Cancel\"\n            onClick={() => setDeleteConfirming(false)}\n            icon={(props) => (\n              <Theme.Icon.X\n                {...props}\n                className={classes(props.className, \"opacity-100\")}\n              />\n            )}\n            transparent\n            noBg\n          />\n        </div>\n      ) : (\n        <Generation.Image.Controls.Button\n          name={deleteTooltip ?? \"Delete image\"}\n          icon={Theme.Icon.Trash}\n          onClick={() => setDeleteConfirming(true)}\n          transparent={!outline}\n          outline={outline}\n          noBg={outline}\n        />\n      ),\n    [\n      deleteConfirming,\n      className,\n      variant,\n      deleteTooltip,\n      outline,\n      deleteImages,\n      images,\n    ]\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/Delete/index.tsx",
    "content": "import * as ReactQuery from \"@tanstack/react-query\";\n\nimport { Generation } from \"~/Generation\";\nimport { Plugin } from \"~/Plugin\";\n\nimport { Cursor } from \"../Query/Cursor\";\n\nimport { Button } from \"./Button\";\n\nexport declare namespace Delete {\n  export { Button };\n}\n\nexport namespace Delete {\n  Delete.Button = Button;\n\n  export const use = () => {\n    const deleteStableDiffusionImages = Plugin.use(\n      ({ deleteStableDiffusionImages }) => deleteStableDiffusionImages\n    );\n\n    const queryClient = ReactQuery.useQueryClient();\n    return ReactQuery.useMutation(async (ids: IDs) => {\n      if (!deleteStableDiffusionImages) return;\n\n      Generation.Image.Output.remove(ids);\n      queryClient.setQueryData(\n        [\"Generation.Images.use\", \"defaultProject\", \"descending\"],\n        (\n          data:\n            | ReactQuery.InfiniteData<Cursor & { data: Generation.Images }>\n            | undefined\n        ) => ({\n          pages:\n            data?.pages.map((page) => ({\n              ...page,\n              data: page.data.filter((image) => !ids.includes(image.id ?? \"\")),\n            })) ?? [],\n\n          pageParams: data?.pageParams ?? [],\n        })\n      );\n\n      return deleteStableDiffusionImages({ imageIDs: ids });\n    });\n  };\n\n  export const useIsEnabled = () =>\n    Plugin.use(\n      ({ deleteStableDiffusionImages }) => !!deleteStableDiffusionImages\n    );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/Download/Zip.tsx",
    "content": "import * as FileSaver from \"file-saver\";\nimport jszip from \"jszip\";\n\nimport { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Zip {\n  export function Button({\n    images = [],\n    ...props\n  }: Theme.Button.Props & { images: Generation.Images }) {\n    const [realLoading, setRealLoading] = useState(false);\n    const downloadZip = use();\n\n    if (!images[0]) return null;\n    return (\n      <Theme.Button\n        {...props}\n        icon={Theme.Icon.Download}\n        loading={realLoading}\n        onClick={() => {\n          setRealLoading(true);\n          downloadZip(images, () => setRealLoading(false));\n        }}\n      >\n        Download\n        <span className=\"opacity-muted\">({images.length})</span>\n      </Theme.Button>\n    );\n  }\n\n  export const use = () => {\n    const [inputs] = Generation.Image.Inputs.use();\n    return useCallback(\n      async (images: Generation.Images, onFinish?: () => void) => {\n        if (!images[0]) return;\n\n        const zip = new jszip();\n\n        let index = 0;\n        for (const image of images) {\n          const src = image?.src;\n          if (!src) return;\n\n          const response = await fetch(src);\n          const blob = await response.blob();\n\n          const input = inputs[image.inputID];\n          if (!input) continue;\n\n          const fileName = Generation.Image.Download.fileName(input).replace(\n            \".png\",\n            `_${index}.png`\n          );\n\n          zip.file(fileName, blob, { binary: true });\n          index++;\n        }\n\n        const currentDateTime = new Date().toISOString().slice(0, 10);\n        const zip_filename = `DreamStudio_${currentDateTime}.zip`;\n        const content = await zip.generateAsync({ type: \"blob\" });\n\n        FileSaver.saveAs(content, zip_filename);\n\n        onFinish?.();\n      },\n      []\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/Download/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\n\nimport { Zip } from \"./Zip\";\n\nexport declare namespace Download {\n  export { Zip };\n}\n\nexport namespace Download {\n  Download.Zip = Zip;\n\n  export const execute = async (images: Generation.Images) =>\n    images.forEach((image) => {\n      const input = Generation.Image.Input.get(image.inputID);\n      input && Generation.Image.Download.execute(image, input);\n    });\n\n  export const use = (images: Generation.Images) =>\n    useCallback(() => execute(images), [images]);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/Modal/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\nimport { Theme } from \"~/Theme\";\n\nexport function Modal() {\n  const closeModal = Modal.useClose();\n  const { image, open, setImage } = State.use(\n    ({ image, open, setImage }) => ({ image, open, setImage }),\n    GlobalState.shallow\n  );\n\n  return (\n    <Theme.Modal modalName=\"Images\" open={open} onClose={closeModal}>\n      <Theme.Modal.Panel className=\"flex h-full w-full grow overflow-hidden overflow-y-auto sm:max-h-[calc(100vh-5rem)] sm:max-w-[calc(100vw-5rem)]\">\n        <Theme.Modal.TopBar onClose={closeModal} />\n        <Generation.Image.Modal.Content\n          image={image}\n          setImage={setImage}\n          onClose={closeModal}\n        />\n      </Theme.Modal.Panel>\n    </Theme.Modal>\n  );\n}\n\nexport namespace Modal {\n  export const useClose = () => {\n    const { setOpen, setImage } = State.use(\n      ({ setOpen, setImage }) => ({\n        setOpen,\n        setImage,\n      }),\n      GlobalState.shallow\n    );\n\n    return useCallback(() => {\n      setOpen(false);\n      setImage();\n    }, [setOpen, setImage]);\n  };\n\n  export const useOpen = () => {\n    const { setOpen, setImage } = State.use(\n      ({ setOpen, setImage }) => ({ setOpen, setImage }),\n      GlobalState.shallow\n    );\n\n    return useCallback(\n      (image?: Generation.Image) => {\n        setImage(image);\n        setOpen(true);\n      },\n      [setOpen, setImage]\n    );\n  };\n}\n\ntype State = {\n  open: boolean;\n  setOpen: (open: boolean) => void;\n\n  image?: Generation.Image;\n  setImage: (image?: Generation.Image) => void;\n};\n\nexport namespace State {\n  export const use = GlobalState.create<State>((set) => ({\n    open: false,\n    setOpen: (open) => set({ open }),\n    setImage: (image) => set({ image }),\n  }));\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/Query/Cursor.tsx",
    "content": "export type Cursor = {\n  forward: boolean;\n  limit: number;\n  stopID?: ID;\n};\n\nexport namespace Cursor {\n  const limit = () => 50;\n\n  export const initial = (_stopDate = new Date()): Cursor => ({\n    forward: false,\n    limit: limit(),\n  });\n\n  export const next = (cursor: Cursor): Cursor => ({\n    ...cursor,\n    forward: true,\n  });\n\n  export const previous = (cursor: Cursor): Cursor => ({\n    ...cursor,\n    forward: false,\n  });\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/Query/Execute.ts",
    "content": "import { Generation } from \"~/Generation\";\nimport { Plugin } from \"~/Plugin\";\n\nimport { Cursor } from \"./Cursor\";\n\n// required to spy on the response\n(BigInt.prototype as any).toJSON = function () {\n  return this.toString();\n};\n\nexport type Execute = (args?: Execute.Args) => Promise<Execute.Result>;\nexport namespace Execute {\n  export type Args = { pageParam?: Cursor };\n  export type Result = Cursor & { data?: Generation.Images };\n\n  export const use = (_options?: Generation.Images.Options) => {\n    const initialCursor = useMemo(() => Cursor.next(Cursor.initial()), []);\n\n    const getStableDiffusionExistingImages = Plugin.use(\n      ({ getStableDiffusionExistingImages }) => getStableDiffusionExistingImages\n    );\n\n    return useMemo((): Execute | undefined => {\n      if (!getStableDiffusionExistingImages) return;\n\n      return async (_args) => {\n        const cursor = _args?.pageParam ?? initialCursor;\n\n        const newGroups = await getStableDiffusionExistingImages({\n          limit: cursor.limit,\n          exclusiveStartImageID: cursor.stopID,\n        });\n\n        if (!newGroups) return { forward: false, limit: 25, data: [] };\n\n        const newInputs: Generation.Image.Inputs = {};\n        const newImages: Generation.Images = [];\n        const newOutputs: Generation.Image.Outputs = [];\n\n        for (const group of newGroups) {\n          let inputID: ID = ID.create();\n          for (const image of group.images ?? []) {\n            const input: Generation.Image.Input = {\n              ...Generation.Image.Input.initial(ID.create()),\n              ...(image.input && {\n                prompts: image.input.prompts as Generation.Image.Prompts,\n                model: image.input.model,\n                height: image.input.height,\n                width: image.input.width,\n                seed: image.input.seed,\n                steps: image.input.steps,\n                strength: image.input.initialImage?.weight ?? 1,\n                cfgScale: image.input.cfgScale,\n                extras: {\n                  $IPC: {\n                    preset: image.input.style,\n                  },\n                },\n              }),\n            };\n            newInputs[input.id] = input;\n            inputID = input.id;\n\n            newImages.push({\n              id: image.id,\n              inputID: input.id,\n              created: image.createdAt,\n              finishReason: 0,\n              src: image.blob ? URL.createObjectURL(image.blob) : undefined,\n            });\n          }\n\n          newOutputs.push({\n            count: group.images?.length ?? 0,\n            id: group.id,\n            imageIDs: group.images?.map((image) => image.id) ?? [],\n            inputID: inputID,\n            completedAt: group.images?.find((image) => image.createdAt)\n              ?.createdAt,\n          });\n        }\n\n        Generation.Images.add(newImages);\n        Generation.Image.Inputs.set((previous) => ({\n          ...previous,\n          ...newInputs,\n        }));\n        Generation.Image.Outputs.set(newOutputs);\n\n        return {\n          ...cursor,\n          stopID: newGroups[0]?.exclusiveStartImageID,\n          data: newImages,\n        };\n      };\n    }, [getStableDiffusionExistingImages, initialCursor]);\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/Query/index.tsx",
    "content": "import * as ReactQuery from \"@tanstack/react-query\";\n\nimport { Cursor } from \"./Cursor\";\nimport { Execute } from \"./Execute\";\n\nexport namespace Query {\n  export const use = () => {\n    const queryFn = Execute.use();\n\n    return ReactQuery.useInfiniteQuery({\n      enabled: !!queryFn,\n\n      queryKey: [\"Generation.Images.Query.use\"],\n      queryFn,\n\n      staleTime: Infinity,\n      cacheTime: Infinity,\n\n      getNextPageParam: (cursor) =>\n        cursor.stopID ? Cursor.next(cursor) : undefined,\n\n      getPreviousPageParam: (cursor) =>\n        cursor.stopID ? Cursor.previous(cursor) : undefined,\n\n      select: useCallback(\n        (data: ReactQuery.InfiniteData<Cursor>) => ({\n          pages: [...data.pages].reverse(),\n          pageParams: [...data.pageParams].reverse(),\n        }),\n        []\n      ),\n    });\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/ResetModal.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\nexport function ResetModal({\n  open,\n  onConfirm,\n  onClose,\n}: {\n  open: boolean;\n  onConfirm: () => void;\n  onClose: () => void;\n}) {\n  return (\n    <Theme.Modal modalName=\"Reset\" open={open} onClose={onClose}>\n      <Theme.Modal.Panel className=\"w-[20rem] gap-5 p-4\">\n        <Theme.Modal.Title>Clear Session?</Theme.Modal.Title>\n        <Theme.Modal.Description>\n          All the images from this session will be saved to your history.\n        </Theme.Modal.Description>\n        <Theme.Modal.Actions\n          actions={[\n            {\n              label: \"Cancel\",\n              onClick: onClose,\n              size: \"lg\",\n            },\n            {\n              label: \"Clear\",\n              onClick: () => {\n                onConfirm?.();\n                onClose();\n              },\n              variant: \"red\",\n              size: \"lg\",\n            },\n          ]}\n        />\n      </Theme.Modal.Panel>\n    </Theme.Modal>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/Scroll/index.tsx",
    "content": "import { AnimatePresence, motion } from \"framer-motion\";\nimport { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport function Scroll({\n  onScrollToTop,\n  onScrollBack,\n  showTop,\n  showBottom,\n  outputs,\n}: {\n  onScrollToTop: () => void;\n  onScrollBack: () => void;\n  showTop: boolean;\n  showBottom: boolean;\n  outputs: Generation.Image.Outputs;\n}) {\n  const [earliestID, setEarliestID] = useState<ID | undefined>(outputs[0]?.id);\n\n  const newOutputs = useMemo(() => {\n    if (!earliestID) return [];\n\n    const index = outputs.findIndex((output) => output.id === earliestID);\n    return outputs.slice(0, index);\n  }, [earliestID, outputs]);\n\n  useEffect(() => {\n    showTop && setEarliestID(outputs[0]?.id);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [showTop]);\n\n  return (\n    <AnimatePresence>\n      {showTop && (\n        <div\n          key=\"top\"\n          className=\"absolute top-0 z-[999] my-3 flex w-full justify-center px-3\"\n        >\n          <motion.div\n            onClick={onScrollToTop}\n            className=\"bg-brand-500 hover:bg-brand-400 group pointer-events-auto flex h-[2.5rem] cursor-pointer select-none items-center justify-between gap-2 rounded-lg py-1.5 px-3 backdrop-blur-lg transition-colors duration-100\"\n            initial={{ y: -50 }}\n            animate={{ opacity: 1, y: 0 }}\n            exit={{ opacity: 0 }}\n          >\n            <Theme.Icon.ChevronUp size={18} className=\"-mr-1\" />\n            <h1>Scroll to top</h1>\n            {newOutputs.length > 0 && (\n              <div className=\"ml-1 flex items-center\">\n                {newOutputs\n                  .sort(\n                    (b, a) =>\n                      (a.requestedAt ?? a.completedAt ?? 0).valueOf() -\n                      (b.requestedAt ?? b.completedAt ?? 0).valueOf()\n                  )\n                  .slice(0, 3)\n                  .map((output, i) => (\n                    <Output key={output.id} output={output} index={i} />\n                  ))}\n                {newOutputs.length > 3 && (\n                  <div className=\"relative ml-1\">\n                    <h1 className=\"absolute left-0 top-[50%] ml-1 -translate-y-1/2\">\n                      +{newOutputs.length - 3}\n                    </h1>\n                    <h1 className=\"ml-1 font-mono opacity-0\">\n                      +{newOutputs.length - 3}\n                    </h1>\n                  </div>\n                )}\n              </div>\n            )}\n          </motion.div>\n        </div>\n      )}\n      {showBottom && (\n        <div\n          key=\"bottom\"\n          className=\"absolute bottom-0 z-[999] my-3 flex w-full justify-center px-3\"\n        >\n          <motion.div\n            onClick={onScrollBack}\n            className=\"group pointer-events-auto flex h-[2.5rem] cursor-pointer select-none items-center justify-between gap-2 rounded-lg bg-zinc-900/75 py-1.5 px-3 backdrop-blur-lg transition-colors duration-100 hover:bg-zinc-900\"\n            initial={{ y: 50 }}\n            animate={{ opacity: 1, y: 0 }}\n            exit={{ opacity: 0 }}\n          >\n            <Theme.Icon.ChevronDown size={18} className=\"-mr-1\" />\n            <h1>Scroll back</h1>\n          </motion.div>\n        </div>\n      )}\n    </AnimatePresence>\n  );\n}\n\nfunction Output({\n  output,\n  index,\n}: {\n  output: Generation.Image.Output;\n  index: number;\n}) {\n  const images = Generation.Images.useFromIDs(...output.imageIDs);\n  const firstImage = images[0];\n  return (\n    <div\n      className=\"ring-brand-500 group-hover:ring-brand-400 overflow-hidden rounded-md ring-[3px] duration-100\"\n      style={{\n        marginLeft: -4,\n        zIndex: 999 - index,\n      }}\n    >\n      <Generation.Image\n        className=\"pointer-events-none\"\n        hideControls\n        width={24}\n        height={24}\n        image={firstImage}\n      />\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/State.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\n\nexport type State = {\n  images: Record<ID, Generation.Image>;\n  addImages: (images: Generation.Images) => void;\n};\n\nexport namespace State {\n  const store = GlobalState.create<State>((set) => ({\n    images: {},\n    addImages: (images) =>\n      set((state) => ({\n        images: {\n          ...state.images,\n          ...images.reduce(\n            (images, image) => ({ ...images, [image.id]: image }),\n            {}\n          ),\n        },\n      })),\n  }));\n\n  export const get = store.getState;\n  export const use = store;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Images/index.tsx",
    "content": "import { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { motion } from \"framer-motion\";\n\nimport { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\n\nimport { Delete } from \"./Delete\";\nimport { Download } from \"./Download\";\nimport { Modal } from \"./Modal\";\nimport { Query } from \"./Query\";\nimport { Scroll } from \"./Scroll\";\nimport { State } from \"./State\";\n\nexport type Images = Generation.Image[];\n\nexport function Images({ className }: Images.Props) {\n  const latestGeneration = Generation.Image.Create.Latest.use();\n  const placeholderOffset = !latestGeneration ? 1 : 0;\n\n  const outputs = Generation.Image.Outputs.use();\n  const count = outputs.length + placeholderOffset;\n\n  const { isFetching, fetchPreviousPage, hasPreviousPage } = Query.use();\n\n  const parentRef = useRef<HTMLDivElement>(null);\n  const parentOffsetRef = useRef(0);\n  const scrollDownIndexRef = useRef(-1);\n  const scrollingDownRef = useRef(false);\n  const heightsRef = useRef<{ [index: number]: number }>({});\n\n  useLayoutEffect(() => {\n    parentOffsetRef.current = parentRef.current?.offsetTop ?? 0;\n  }, []);\n\n  const virtualizer = useVirtualizer({\n    getScrollElement: () => parentRef.current,\n    estimateSize: (index) => heightsRef.current[index] ?? 400,\n\n    count,\n    scrollMargin: parentOffsetRef.current,\n    paddingEnd: 40,\n    overscan: 4,\n  });\n\n  const virtualItems = virtualizer.getVirtualItems();\n\n  const showTop = useMemo(\n    () =>\n      (virtualItems[0]?.index ?? 0) > 3 && scrollDownIndexRef.current === -1,\n    [virtualItems]\n  );\n\n  const onScrollToTop = useCallback(() => {\n    scrollDownIndexRef.current = virtualizer.scrollOffset ?? 0;\n    virtualizer.scrollToOffset(0, { behavior: \"smooth\" });\n  }, [virtualizer]);\n\n  const onScrollBack = useCallback(() => {\n    scrollingDownRef.current = true;\n    virtualizer.scrollToOffset(scrollDownIndexRef.current, {\n      behavior: \"smooth\",\n      align: \"start\",\n    });\n  }, [virtualizer]);\n\n  useEffect(() => {\n    if (scrollDownIndexRef.current !== -1 && scrollingDownRef.current) {\n      virtualizer.scrollToOffset(scrollDownIndexRef.current);\n      if (scrollDownIndexRef.current === virtualizer.scrollOffset) {\n        scrollDownIndexRef.current = -1;\n        scrollingDownRef.current = false;\n      }\n    }\n  }, [virtualItems, virtualizer]);\n\n  useEffect(() => {\n    if (showTop) {\n      scrollDownIndexRef.current = -1;\n    }\n  }, [showTop]);\n\n  useEffect(() => {\n    const lastIndex = virtualItems[virtualItems.length - 1]?.index;\n    lastIndex &&\n      lastIndex >= outputs.length - 10 &&\n      !isFetching &&\n      hasPreviousPage &&\n      fetchPreviousPage();\n  }, [\n    virtualItems,\n    outputs.length,\n    hasPreviousPage,\n    isFetching,\n    fetchPreviousPage,\n  ]);\n\n  const rows = useMemo(\n    () =>\n      virtualItems.map((virtualRow) => {\n        const isPlaceholder = virtualRow.index === 0 && !!placeholderOffset;\n\n        const outputID = outputs[virtualRow.index - placeholderOffset]?.id;\n        if (!outputID && !isPlaceholder) return null;\n\n        const layoutID = isPlaceholder\n          ? Generation.Image.Outputs.nextID()\n          : outputID;\n\n        return (\n          <motion.div\n            key={layoutID}\n            data-index={virtualRow.index}\n            ref={(element) => {\n              virtualizer.measureElement(element);\n              if (element)\n                heightsRef.current[virtualRow.index] =\n                  element.getBoundingClientRect().height;\n            }}\n            layoutId={layoutID}\n            layout=\"preserve-aspect\"\n            className={classes(\n              \"relative flex flex-col gap-4\",\n              virtualRow.index === count - 1 && \"pb-12\"\n            )}\n            initial={{ opacity: 0, y: -300 }}\n            animate={{ opacity: 1, y: 0 }}\n            exit={{ opacity: 0 }}\n            transition={{\n              type: \"spring\",\n              stiffness: 500,\n              damping: 50,\n              mass: 2,\n            }}\n          >\n            <Generation.Image.Output\n              placeholder={isPlaceholder}\n              divider={virtualRow.index !== 0}\n              outputID={outputID}\n            />\n          </motion.div>\n        );\n      }),\n    [virtualizer, virtualItems, placeholderOffset, outputs]\n  );\n\n  return (\n    <>\n      <Generation.Images.Modal />\n      <Generation.Images.Scroll\n        onScrollToTop={onScrollToTop}\n        onScrollBack={onScrollBack}\n        showTop={showTop}\n        showBottom={scrollDownIndexRef.current !== -1}\n        outputs={outputs}\n      />\n      <div\n        ref={parentRef}\n        className={classes(\n          \"relative flex grow flex-col gap-4 overflow-y-auto p-6 dark:bg-zinc-800\",\n          className\n        )}\n      >\n        <div\n          className=\"relative w-full\"\n          style={{ height: virtualizer.getTotalSize() }}\n        >\n          <div\n            className=\"absolute top-0 left-0 w-full\"\n            style={{\n              transform: `translateY(${\n                (virtualItems[0]?.start ?? 0) - virtualizer.options.scrollMargin\n              }px)`,\n            }}\n          >\n            {rows}\n          </div>\n        </div>\n      </div>\n    </>\n  );\n}\n\nexport declare namespace Images {\n  export { Delete, Download, Modal, State, Scroll };\n}\n\nexport namespace Images {\n  Images.Delete = Delete;\n  Images.Download = Download;\n  Images.Modal = Modal;\n  Images.State = State;\n  Images.Scroll = Scroll;\n\n  export type Props = Styleable & { minimum?: number };\n  export type Options = {\n    input?: ID;\n    project?: ID;\n    sortOrder: \"descending\" | \"ascending\";\n  };\n\n  export const add = (images: Images) => State.get().addImages(images);\n\n  export const use = (): Images =>\n    State.use(({ images }) => Object.values(images), GlobalState.shallow);\n\n  export const useFromIDs = (...ids: IDs): Images =>\n    State.use(\n      ({ images }) =>\n        ids\n          .filter((id) => id !== undefined)\n          .map((id) => images[id as ID])\n          .filter((image): image is Generation.Image => image !== undefined),\n      GlobalState.shallow\n    );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Input/Image/Sidebar.tsx",
    "content": "import { App } from \"~/App\";\nimport { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Sidebar {\n  export function Section({ id }: { id: ID }) {\n    const { setInput, importInit, input } = Generation.Image.Input.use(id);\n    const [imageHovering, setImageHovering] = useState(false);\n    const draggingImage = Generation.Image.HTMLElement.Dragging.useImage();\n\n    const setLastStrength = Generation.Image.Session.useSetLastStrength();\n    const setInitialImage = Generation.Image.Session.useSetInitialImage();\n\n    const defaultExpanded = useMemo(\n      () => !!input?.init || !!draggingImage,\n      [input?.init, draggingImage]\n    );\n\n    const aspectRatio = useMemo(\n      () => (input?.width && input?.height ? input.width / input.height : 1),\n      [input]\n    );\n\n    const uploadProps = useMemo(\n      () => ({\n        onDragOver: (event: React.DragEvent<HTMLDivElement>) => {\n          event.preventDefault();\n          setImageHovering(true);\n        },\n\n        onDragLeave: (event: React.DragEvent<HTMLDivElement>) => {\n          event.preventDefault();\n          setImageHovering(false);\n        },\n\n        onDrop: (event: React.DragEvent<HTMLDivElement>) => {\n          event.preventDefault();\n          setImageHovering(false);\n\n          const file = event.dataTransfer?.files[0];\n          const objectURL = file && URL.createObjectURL(file);\n\n          setInitialImage(objectURL ?? draggingImage);\n        },\n      }),\n      [setInitialImage, draggingImage]\n    );\n\n    if (!input) return null;\n    return (\n      <App.Sidebar.Section\n        divider\n        collapsable\n        padding=\"sm\"\n        title={input.init ? \"Image\" : \"Upload image\"}\n        defaultExpanded={defaultExpanded}\n        button={(props) =>\n          input.init ? (\n            <Theme.Button\n              {...props}\n              icon={Theme.Icon.Trash}\n              onClick={() => {\n                setInput((input) => {\n                  input.init = null;\n                });\n              }}\n            />\n          ) : (\n            <Theme.Button\n              {...props}\n              icon={Theme.Icon.Upload}\n              onClick={importInit}\n            />\n          )\n        }\n      >\n        <div className=\"flex flex-col\">\n          <div className=\"flex flex-col overflow-hidden rounded border border-zinc-700 bg-zinc-800 p-2\">\n            {input.init && !imageHovering ? (\n              <>\n                <div\n                  onClick={importInit}\n                  {...uploadProps}\n                  className=\"hover:opacity-muted group relative flex aspect-square max-h-[140px] cursor-pointer items-center justify-center overflow-hidden rounded bg-black/20\"\n                >\n                  <div\n                    className=\"relative h-full max-h-[140px] overflow-hidden\"\n                    style={{\n                      aspectRatio,\n                      background: \"hsl(0, 0%, 50%)\",\n                      ...({\n                        \"--blur\": `${\n                          Math.pow(1 - input.strength, 8) * 50 +\n                          (1 - input.strength) * 3\n                        }px`,\n                      } as React.CSSProperties),\n                    }}\n                    css={css`\n                      &::after {\n                        content: \"\";\n                        position: absolute;\n                        top: 0;\n                        left: 0;\n                        width: 100%;\n                        height: 100%;\n                        backdrop-filter: blur(var(--blur));\n                      }\n                    `}\n                  >\n                    <img\n                      src={\n                        \"base64\" in input.init\n                          ? input.init.base64\n                          : input.init.src\n                      }\n                      id=\"init-img\"\n                      className=\"absolute h-full w-full object-cover\"\n                      style={{ aspectRatio }}\n                    />\n                  </div>\n                  <Theme.Icon.Upload\n                    className=\"absolute top-1/2 left-1/2 z-10 hidden -translate-x-1/2 -translate-y-1/2 transform text-white mix-blend-overlay group-hover:block\"\n                    size={24}\n                  />\n                </div>\n                <div className=\"mt-2\">\n                  <Theme.Slider\n                    value={input.strength * 100}\n                    min={0}\n                    max={100}\n                    step={1}\n                    percentage\n                    title=\"Image strength\"\n                    onChange={(weight) => {\n                      const strength = weight / 100;\n\n                      setLastStrength(strength);\n                      setInput((input) => {\n                        input.strength = weight / 100;\n                      });\n                    }}\n                  />\n                </div>\n              </>\n            ) : (\n              <div\n                className={classes(\n                  \"group flex cursor-pointer flex-col items-center justify-center gap-4 rounded bg-zinc-800 py-4 px-3 text-center\"\n                )}\n                {...uploadProps}\n                onClick={importInit}\n              >\n                {imageHovering ? (\n                  <>\n                    <Theme.Icon.Upload\n                      size={28}\n                      className=\"pointer-events-none\"\n                    />\n                    <h3 className=\"pointer-events-none\">\n                      Drop image here to create variations\n                    </h3>\n                  </>\n                ) : (\n                  <>\n                    <Theme.Icon.Upload\n                      size={28}\n                      className=\"opacity-75 duration-100 group-hover:opacity-100\"\n                    />\n                    <h3 className=\"opacity-75 duration-100 group-hover:opacity-100\">\n                      Upload an image to create variations\n                    </h3>\n                  </>\n                )}\n              </div>\n            )}\n          </div>\n        </div>\n      </App.Sidebar.Section>\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Input/Image/index.tsx",
    "content": "import { Sidebar } from \"./Sidebar\";\n\nexport declare namespace Image {\n  export { Sidebar };\n}\n\nexport namespace Image {\n  Image.Sidebar = Sidebar;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Input/Inputs.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\nimport { UndoRedo } from \"~/UndoRedo\";\n\nexport type Inputs = { [id: string]: Generation.Image.Input };\n\nexport namespace Inputs {\n  export const get = () => State.use.getState().inputs;\n  export const set = (...args: Parameters<State[\"setInputs\"]>) =>\n    State.use.getState().setInputs(...args);\n\n  export const copy = (oldID: ID, newID: ID) =>\n    set((inputs) => {\n      const previous = inputs[oldID];\n      return {\n        ...inputs,\n        ...(previous && { [newID]: { ...previous, id: newID } }),\n      };\n    });\n\n  export const use = () => {\n    const inputs = State.use(({ inputs }) => inputs, GlobalState.shallow);\n    return React.useMemo(() => [inputs, set] as const, [inputs]);\n  };\n\n  export const useFromIDs = (...ids: IDs) =>\n    State.use(({ inputs }) => ids.map((id) => inputs[id]), GlobalState.shallow);\n\n  export type State = {\n    inputs: Inputs;\n    setInputs: React.Dispatch<React.SetStateAction<Inputs>>;\n  };\n\n  export namespace State {\n    export const use = UndoRedo.create<State>((set) => ({\n      inputs: {} as Inputs,\n      setInputs: (setInputs) =>\n        set(({ inputs }) => ({\n          inputs:\n            typeof setInputs === \"function\" ? setInputs(inputs) : setInputs,\n        })),\n    }));\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Input/index.ts",
    "content": "import { StableDiffusionInput } from \"@stability/stablestudio-plugin\";\n\nimport { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\nimport { Plugin } from \"~/Plugin\";\n\nimport { Image } from \"./Image\";\nimport { Inputs } from \"./Inputs\";\n\nexport * from \"./Inputs\";\n\nexport type Input = Generation.Image.Model.StableDiffusionV1.Input;\n\nexport declare namespace Input {\n  export { Image };\n}\n\nexport namespace Input {\n  Input.Image = Image;\n\n  export const upscaleEngines = [\n    \"esrgan-v1-x2plus\",\n    \"stable-diffusion-x2-latent-upscaler\",\n    \"stable-diffusion-x4-latent-upscaler\",\n  ] as const;\n\n  export type Sampler = StableDiffusionInput[\"sampler\"];\n\n  export type Modifiers = Partial<Input & { count: number }>;\n\n  export const initial = (id: ID) =>\n    Generation.Image.Model.StableDiffusionV1.Input.initial(id);\n\n  export const promptText = (input: Input) =>\n    input.prompts.map((prompt) => prompt.text).join(\" \");\n\n  export const isUpscaling = (input: Input) =>\n    upscaleEngines.includes(input.model as any);\n\n  export const get = (id: ID): Input | undefined => Inputs.get()[id];\n  export const set = (\n    id: ID,\n    setInput: (input: Mutable<Input>) => Input | void\n  ) =>\n    Inputs.set((inputs) => ({\n      ...inputs,\n      [id]: copy(inputs[id] ?? initial(id), setInput),\n    }));\n\n  export function use(id?: ID) {\n    const input = Inputs.State.use(({ inputs }) => {\n      if (!id) return;\n\n      const input = inputs[id] ?? initial(id);\n      if (!inputs[id]) Inputs.set((inputs) => ({ ...inputs, [id]: input }));\n\n      return input;\n    }, GlobalState.shallow);\n\n    const setInput = useCallback(\n      (setInput: (input: Mutable<Input>) => Input | void) =>\n        Inputs.set((inputs) =>\n          id !== undefined && input !== undefined\n            ? { ...inputs, [id]: copy(input, setInput) }\n            : inputs\n        ),\n      [id, input]\n    );\n\n    const shuffle = useCallback(\n      (index = 0) =>\n        setInput((input) => {\n          const previous = input.prompts[index];\n          if (!previous) return;\n\n          input.prompts[index] = {\n            ...previous,\n            text: Generation.Image.Prompt.Random.get(),\n          };\n        }),\n      [setInput]\n    );\n\n    const addPrompt = useCallback(\n      () =>\n        setInput((input) => {\n          input.prompts.push({ weight: 1 });\n        }),\n      [setInput]\n    );\n\n    const swapPrompts = useCallback(\n      (indexA: number, indexB: number) =>\n        setInput((input) => {\n          const promptA = input.prompts[indexA];\n          const promptB = input.prompts[indexB];\n          if (promptA === undefined || promptB === undefined) return;\n\n          input.prompts[indexA] = promptB;\n          input.prompts[indexB] = promptA;\n        }),\n      [setInput]\n    );\n\n    const deletePrompt = useCallback(\n      (index = 0) =>\n        setInput((input) => {\n          input.prompts.splice(index, 1);\n        }),\n      [setInput]\n    );\n\n    const importInit = useCallback(() => {\n      const input = document.createElement(\"input\");\n      input.type = \"file\";\n      input.accept = \"image/*\";\n      input.onchange = async () => {\n        const file = input.files?.[0];\n        if (!file) return;\n\n        const objectURL = URL.createObjectURL(file);\n\n        setInput((input) => {\n          input.init = {\n            src: objectURL,\n            mask: false,\n            weight: 1,\n          };\n        });\n      };\n      input.click();\n    }, [setInput]);\n\n    return useMemo(\n      () => ({\n        input,\n        setInput,\n        shuffle,\n        addPrompt,\n        swapPrompts,\n        deletePrompt,\n        importInit,\n      }),\n      [\n        input,\n        setInput,\n        shuffle,\n        addPrompt,\n        swapPrompts,\n        deletePrompt,\n        importInit,\n      ]\n    );\n  }\n\n  export const resizeInit = async (\n    input: Input\n  ): Promise<string | undefined> => {\n    if (!input.init) return;\n\n    let data = \"\";\n    const isUpscaling = Generation.Image.Input.isUpscaling(input);\n\n    if (\"base64\" in input.init) {\n      data = input.init.base64;\n    } else if (input.init.src.startsWith(\"blob:\")) {\n      data = input.init.src;\n    } else {\n      const response = await fetch(input.init.src);\n      data = URL.createObjectURL(await response.blob());\n    }\n\n    const image = new window.Image();\n    image.src = data;\n\n    await new Promise((resolve) => {\n      image.onload = resolve;\n    });\n\n    const canvas = document.createElement(\"canvas\");\n    canvas.width = !isUpscaling\n      ? Math.ceil(input.width / 64) * 64\n      : image.width;\n    canvas.height = !isUpscaling\n      ? Math.ceil(input.height / 64) * 64\n      : image.height;\n\n    const context = canvas.getContext(\"2d\");\n    if (!context) return;\n\n    // draw grey background\n    context.fillStyle = \"#333\";\n    context.fillRect(0, 0, canvas.width, canvas.height);\n\n    if (isUpscaling) {\n      context.drawImage(image, 0, 0, canvas.width, canvas.height);\n      console.log({\n        width: canvas.width,\n        height: canvas.height,\n      });\n      return canvas.toDataURL(\"image/png\");\n    }\n\n    const scaleFactor = Math.max(\n      input.width / image.width,\n      input.height / image.height\n    );\n    const scaledWidth = image.width * scaleFactor;\n    const scaledHeight = image.height * scaleFactor;\n    const x = (input.width - scaledWidth) / 2;\n    const y = (input.height - scaledHeight) / 2;\n\n    context.drawImage(image, x, y, scaledWidth, scaledHeight);\n    return canvas.toDataURL(\"image/png\");\n  };\n\n  export async function toInput(input: Input): Promise<StableDiffusionInput> {\n    const pluginInput: StableDiffusionInput = {\n      sampler: input.sampler,\n      cfgScale: input.cfgScale,\n      height: input.height,\n      width: input.width,\n      model: input.model,\n      seed: input.seed,\n      steps: input.steps,\n      style: input.extras?.$IPC?.preset,\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    pluginInput.prompts = isUpscaling(input)\n      ? []\n      : (input.prompts.filter(\n          (i) => i.text && i.weight\n        ) as StableDiffusionInput[\"prompts\"]);\n\n    if (input.mask) {\n      pluginInput.maskImage = {\n        blob: await convertToBlob(\n          \"base64\" in input.mask ? input.mask.base64 : input.mask.src\n        ),\n        weight: 1,\n      };\n    }\n\n    if (input.init) {\n      pluginInput.initialImage = {\n        blob: await convertToBlob(\n          \"base64\" in input.init ? input.init.base64 : input.init.src\n        ),\n        weight: input.strength,\n      };\n    }\n\n    if (!isUpscaling(input)) {\n      pluginInput.height = input.height;\n    }\n\n    return pluginInput;\n  }\n\n  async function convertToBlob(dataURI: string): Promise<Blob> {\n    if (dataURI.startsWith(\"http\") || dataURI.startsWith(\"blob\")) {\n      const response = await fetch(dataURI);\n      return response.blob();\n    } else {\n      const raw = window.Buffer.from(\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        dataURI.split(\";base64,\").pop()!,\n        \"base64\"\n      );\n      return new Blob([raw]);\n    }\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Modal/Content.tsx",
    "content": "import { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\nimport { Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport function Content({\n  image,\n  setImage,\n  onClose,\n}: {\n  image?: Generation.Image;\n  setImage: (image?: Generation.Image) => void;\n  onClose?: () => void;\n}) {\n  const [loading, setLoading] = useState(true);\n\n  const images = Generation.Images.use();\n  const { input } = Generation.Image.Input.use(image?.inputID);\n\n  const areModelsEnabled = Generation.Image.Models.useAreEnabled();\n  const areStylesEnabled = Generation.Image.Styles.useAreEnabled();\n\n  const style = Generation.Image.Style.useFromID(input?.extras?.$IPC?.preset);\n  const createVariations = Generation.Image.Session.useCreateVariations(image);\n  const setInitImg = Generation.Image.Session.useSetInitialImage();\n  const sendToEditor = Editor.Import.use(image);\n  const download = Generation.Image.Download.use(image);\n\n  useEffect(() => {\n    if (image?.src) {\n      const img = new Image();\n      img.src = image.src;\n      img.onload = () => setLoading(false);\n      setLoading(true);\n    }\n  }, [image?.src]);\n\n  const index = useMemo(\n    () => images.findIndex((i) => i.src === image?.src),\n    [image?.src, images]\n  );\n\n  const goToPreviousImage = useCallback(() => {\n    if (index > -1) {\n      const nextIndex = index - 1;\n      if (images[nextIndex]) setImage(images[nextIndex]);\n    }\n  }, [index, images, setImage]);\n\n  const goToNextImage = useCallback(() => {\n    if (index > -1) {\n      const nextIndex = index + 1;\n      if (images[nextIndex]) setImage(images[nextIndex]);\n    }\n  }, [index, images, setImage]);\n\n  Shortcut.use(\n    useMemo(\n      () => ({\n        name: [\"Navigate\", \"Previous Image\"],\n        keys: [\"ArrowLeft\"],\n        action: goToPreviousImage,\n      }),\n      [goToPreviousImage]\n    )\n  );\n\n  Shortcut.use(\n    useMemo(\n      () => ({\n        name: [\"Navigate\", \"Next Image\"],\n        keys: [\"ArrowRight\"],\n        action: goToNextImage,\n      }),\n      [goToNextImage]\n    )\n  );\n\n  const ratioString = useMemo(() => {\n    if (input?.width && input?.height) {\n      const gcd = (a: number, b: number): number => {\n        if (!b) {\n          return a;\n        }\n\n        return gcd(b, a % b);\n      };\n\n      const simplified = gcd(input.width, input.height);\n      const simplifiedWidth = input.width / simplified;\n      const simplifiedHeight = input.height / simplified;\n\n      return `${simplifiedWidth} : ${simplifiedHeight}`;\n    }\n\n    return \"\";\n  }, [input?.width, input?.height]);\n\n  const onCreateVariations = useCallback(() => {\n    onClose?.();\n    createVariations();\n  }, [onClose, createVariations]);\n\n  if (!image || !input) return null;\n  return (\n    <div className=\"flex max-h-screen min-h-0 w-fit flex-col gap-4 overflow-y-auto p-4 sm:flex-row\">\n      <div className=\"group relative flex aspect-square shrink-0 grow flex-col justify-center overflow-hidden rounded bg-black/75 sm:min-h-0 sm:shrink sm:basis-0\">\n        <img\n          src={image.src}\n          className={classes(\n            \"h-full w-full grow basis-0 object-contain duration-100 sm:h-[999999px] sm:min-h-0 sm:w-[999999px]\",\n            loading ? \"opacity-0\" : \"opacity-100\"\n          )}\n        />\n        {loading && (\n          <div className=\"absolute inset-0 flex items-center justify-center\">\n            <Theme.Loading.Spinner className=\"h-10 w-10\" />\n          </div>\n        )}\n        {images.length > 0 && (\n          <div className=\"pointer-events-none absolute inset-0 flex items-center justify-between p-2 opacity-0 duration-100 group-hover:opacity-100\">\n            <Theme.Button\n              className=\"pointer-events-auto\"\n              icon={Theme.Icon.ChevronLeft}\n              disabled={loading || index <= 0}\n              onClick={goToPreviousImage}\n            />\n            <Theme.Button\n              className=\"pointer-events-auto\"\n              icon={Theme.Icon.ChevronRight}\n              disabled={loading || index === -1 || index === images.length - 1}\n              onClick={goToNextImage}\n            />\n          </div>\n        )}\n      </div>\n      <div className=\"flex min-h-0 shrink-0 flex-col gap-4 overflow-y-auto overflow-x-hidden sm:max-w-[22rem]\">\n        <div className=\"flex flex-col gap-4 border-b border-zinc-800 pb-4\">\n          {input.prompts\n            .filter((i) => i.text)\n            .map(\n              (prompt, index) =>\n                \"text\" in prompt &&\n                prompt.text &&\n                input && (\n                  <div className=\"flex flex-col gap-2\" key={index}>\n                    <h1 className=\"opacity-muted select-none\">\n                      {input.prompts.length > 1\n                        ? prompt.weight > 0\n                          ? `Prompt ${index + 1}`\n                          : \"Negative prompt\"\n                        : \"Prompt\"}\n                    </h1>\n                    <p>{prompt.text}</p>\n                  </div>\n                )\n            )}\n        </div>\n        <div className=\"flex items-center justify-between gap-4 border-b border-zinc-800 pb-4\">\n          <div className=\"flex flex-row items-center gap-1\">\n            <Generation.Image.Variations.Create.Button\n              outline\n              id={input.id}\n              onClick={onCreateVariations}\n              className=\"shrink-0\"\n              noTitle\n            />\n            <Theme.Button\n              outline\n              icon={Theme.Icon.Edit}\n              label=\"Edit image\"\n              onClick={sendToEditor}\n            />\n            <Theme.Button\n              outline\n              icon={Theme.Icon.Image}\n              disabled={loading}\n              label=\"Set as init image\"\n              onClick={() => {\n                setInitImg(image.src);\n                onClose?.();\n              }}\n            />\n            <Generation.Image.Prompt.Reuse.Button\n              inputID={input.id}\n              onClick={onClose}\n            />\n            <Theme.Button\n              outline\n              icon={Theme.Icon.Download}\n              disabled={loading}\n              label=\"Download\"\n              onClick={() => download()}\n            />\n          </div>\n        </div>\n        {((areModelsEnabled && input.model) || (areStylesEnabled && style)) && (\n          <div className=\"flex flex-wrap gap-1\">\n            {areModelsEnabled && input.model && <Tag>{input.model}</Tag>}\n            {areStylesEnabled && style && (\n              <Tag className=\"flex items-center gap-1\">\n                {style.image && (\n                  <img\n                    src={style.image}\n                    className=\"h-4 w-4 rounded\"\n                    alt={style.name}\n                  />\n                )}\n                <h1>{style.name}</h1>\n              </Tag>\n            )}\n          </div>\n        )}\n        <div className=\"grid grid-cols-2 gap-4\">\n          <Field name=\"Ratio\" value={ratioString} />\n          <Field name=\"Size\" value={`${input.width} × ${input.height}`} />\n          {!Generation.Image.Input.isUpscaling(input) && (\n            <>\n              {input.cfgScale && (\n                <Field\n                  name=\"Prompt strength\"\n                  value={input.cfgScale?.toString()}\n                />\n              )}\n              {input.seed && (\n                <Field name=\"Seed\" value={input.seed?.toString()} />\n              )}\n              <Field name=\"Steps\" value={input.steps.toString()} />\n            </>\n          )}\n        </div>\n      </div>\n    </div>\n  );\n}\n\nfunction Field({\n  name,\n  value,\n  className,\n}: Styleable & { name: React.ReactNode; value: string }) {\n  return (\n    <h1 className={classes(\"flex flex-row items-center gap-2\", className)}>\n      {typeof name === \"string\" ? (\n        <span className=\"opacity-muted select-none\">{name}</span>\n      ) : (\n        name\n      )}\n      <span className=\"text-white/90\">{value}</span>\n    </h1>\n  );\n}\n\nfunction Tag({ children, className }: StyleableWithChildren) {\n  return (\n    <span\n      className={classes(\n        \"w-fit rounded border border-zinc-800 px-1.5 py-0.5 text-sm\",\n        className\n      )}\n    >\n      {children}\n    </span>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Modal/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\nimport { Theme } from \"~/Theme\";\n\nimport { Content } from \"./Content\";\n\nexport function Modal() {\n  const [image, setImage] = Modal.useImage();\n  return (\n    <Theme.Modal modalName=\"Image\" open={!!image} onClose={() => setImage()}>\n      {image && (\n        <Theme.Modal.Panel className=\"flex h-full min-h-0 w-full overflow-y-auto sm:max-h-[calc(100vh-5rem)] sm:max-w-[calc(100vw-5rem)] sm:grow\">\n          <Theme.Modal.TopBar onClose={() => setImage()} />\n          <Content\n            image={image}\n            setImage={setImage}\n            onClose={() => setImage()}\n          />\n        </Theme.Modal.Panel>\n      )}\n    </Theme.Modal>\n  );\n}\n\nexport declare namespace Modal {\n  export { Content };\n}\n\nexport namespace Modal {\n  Modal.Content = Content;\n\n  export const useImage = () =>\n    State.use(\n      ({ image, setImage }) => [image, setImage] as const,\n      GlobalState.shallow\n    );\n\n  type State = {\n    image?: Generation.Image;\n    setImage: (image?: Generation.Image) => void;\n  };\n\n  namespace State {\n    export const use = GlobalState.create<State>((set) => ({\n      setImage: (image) => set((state) => ({ ...state, image })),\n    }));\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Model/Dropdown.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport function Dropdown({ id, className }: Styleable & { id: ID }) {\n  const { setInput, input } = Generation.Image.Input.use(id);\n  const { data: models, isLoading } = Generation.Image.Models.use();\n\n  const onClick = useCallback(\n    (value: string) => {\n      setInput((input) => {\n        console.log(\"model\", value);\n        input.model = value;\n      });\n    },\n    [setInput]\n  );\n\n  const options = useMemo(\n    () => [\n      ...(models ?? []).map(({ id, name }) => ({\n        value: id,\n        name:\n          id === \"stable-diffusion-xl-v2-2\" ? (\n            <>\n              SDXL&nbsp;\n              <Theme.New>Preview</Theme.New>\n            </>\n          ) : id === \"stable-diffusion-xl-beta-v2-2-2\" ? (\n            <>\n              SDXL Beta&nbsp;\n              <Theme.New>Preview</Theme.New>\n            </>\n          ) : id === \"stable-diffusion-xl-tiling-v2-2\" ? (\n            <>\n              SDXL Tiling&nbsp;\n              <Theme.New>Preview</Theme.New>\n            </>\n          ) : (\n            name\n          ),\n      })),\n    ],\n    [models]\n  );\n\n  if (!input) return null;\n  return (\n    <Theme.Popout\n      title=\"Model\"\n      label=\"Model\"\n      placeholder={isLoading ? \"Loading...\" : \"Select a Model\"}\n      value={input.model}\n      className={className}\n      onClick={onClick}\n      options={options}\n      anchor=\"bottom\"\n    >\n      {!models && (\n        <div className=\"flex flex-col items-center justify-center px-16 py-32\">\n          <div className=\"text-muted-white pb-3\">Loading models...</div>\n        </div>\n      )}\n    </Theme.Popout>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Model/Models.ts",
    "content": "import * as StableStudio from \"@stability/stablestudio-plugin\";\nimport * as ReactQuery from \"@tanstack/react-query\";\n\nimport { Plugin } from \"~/Plugin\";\n\nexport type Models = StableStudio.StableDiffusionModel[];\nexport namespace Models {\n  export const use = () => {\n    const getStableDiffusionModels = Plugin.use(\n      ({ getStableDiffusionModels }) => getStableDiffusionModels\n    );\n\n    return ReactQuery.useQuery({\n      enabled: !!getStableDiffusionModels,\n\n      queryKey: [\"Generation.Image.Models.use\"],\n      queryFn: async () => (await getStableDiffusionModels?.()) ?? [],\n    });\n  };\n\n  export const useAreEnabled = () =>\n    Plugin.use(({ getStableDiffusionModels }) => !!getStableDiffusionModels);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Model/StableDiffusionV1/index.ts",
    "content": "import { Generation } from \"~/Generation\";\nimport { Plugin } from \"~/Plugin\";\n\nexport namespace StableDiffusionV1 {\n  type Image = ({ base64: string } | { src: string }) & {\n    weight: number;\n    mask?: boolean;\n  };\n\n  export type Init = Image & { mask: false };\n  export type Mask = Image & { mask: true };\n\n  export type Input = {\n    id: ID;\n    prompts: Generation.Image.Prompts;\n    sampler: Generation.Image.Input.Sampler;\n    cfgScale?: number;\n    height: number;\n    width: number;\n    steps: number;\n    seed: number;\n    guidance: boolean;\n    model: string;\n    strength: number;\n    mask: Mask | null;\n    init: Init | null;\n    extras?: {\n      $IPC?: { preset?: string };\n      mode?: \"multistage\";\n    };\n  };\n\n  export namespace Input {\n    export const initialWithStyle = (id: ID): Input =>\n      Generation.Image.Style.apply({ input: initial(id) });\n\n    export const initial = (id: ID): Input => {\n      const pluginDefaultInput =\n        Plugin.get().getStableDiffusionDefaultInput?.();\n\n      const pluginDefaultInputDefaultPrompts = pluginDefaultInput?.prompts?.map(\n        ({ text, weight }) => ({\n          text: text ?? Generation.Image.Prompt.Random.get(),\n          weight: weight ?? 1,\n        })\n      );\n\n      return {\n        id,\n\n        prompts: pluginDefaultInputDefaultPrompts ?? [\n          { text: Generation.Image.Prompt.Random.get(), weight: 1 },\n          { text: \"\", weight: -0.75 },\n        ],\n\n        model: pluginDefaultInput?.model ?? \"stable-diffusion-xl-beta-v2-2-2\",\n        sampler: pluginDefaultInput?.sampler ?? { id: \"0\", name: \"DDIM\" },\n        height: pluginDefaultInput?.width ?? 512,\n        width: pluginDefaultInput?.height ?? 512,\n        steps: pluginDefaultInput?.steps ?? 50,\n        seed: pluginDefaultInput?.seed ?? 0,\n        guidance: false,\n        strength: 1,\n        mask: null,\n        init: null,\n        extras: {\n          $IPC: {\n            preset: \"enhance\",\n          },\n        },\n      };\n    };\n  }\n\n  export type Output = { objectURL: string };\n\n  export const price = (input: Input): number => {\n    if (Generation.Image.Input.isUpscaling(input)) return 0.2;\n\n    const { steps, width, height } = input;\n\n    if (input.model.includes(\"-xl-\")) {\n      // XL models are 2.5 times more expensive\n      return (((width * height - 169527) * steps) / 30) * 5.4e-8 * 100;\n    } else {\n      return (((width * height - 169527) * steps) / 30) * 2.16e-8 * 100;\n    }\n  };\n\n  export const baseResolution = (model: string) => {\n    if (model.includes(\"512\")) return 512;\n    if (model.includes(\"768\")) return 768;\n\n    switch (model) {\n      case \"stable-diffusion-v1-5\":\n        return 512;\n      case \"stable-diffusion-v1-4\":\n        return 512;\n    }\n\n    return 512;\n  };\n\n  export const validate = ({\n    height,\n    width,\n    steps,\n    mask,\n    init,\n    prompts,\n  }: Input): boolean =>\n    height > 0 &&\n    height <= 2048 &&\n    width > 0 &&\n    width <= 2048 &&\n    steps > 0 &&\n    steps <= 150 &&\n    (mask === null || mask.mask) &&\n    (init === null || !init.mask) &&\n    ((mask && init) || !mask) &&\n    prompts.filter(({ weight, text }) => weight > 0 && text && text !== \"\")\n      .length > 0 &&\n    (prompts.filter(({ text }) => text && text.length > 0).length > 0 ||\n      init !== null);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Model/index.ts",
    "content": "import { Dropdown } from \"./Dropdown\";\nimport { StableDiffusionV1 } from \"./StableDiffusionV1\";\n\nexport * from \"./Models\";\n\nexport declare namespace Model {\n  export { StableDiffusionV1, Dropdown };\n}\n\nexport namespace Model {\n  Model.StableDiffusionV1 = StableDiffusionV1;\n  Model.Dropdown = Dropdown;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Output/Divider.tsx",
    "content": "import { format, formatDistance, intervalToDuration } from \"date-fns\";\n\nimport { Theme } from \"~/Theme\";\n\nexport function Divider({ dateTime }: { dateTime?: Date }) {\n  const [now, setNow] = React.useState(() => new Date());\n\n  useEffect(() => {\n    const interval = setInterval(() => setNow(new Date()), 10 * 1000);\n    return () => clearInterval(interval);\n  });\n\n  return useMemo(() => {\n    const display = () => {\n      if (!dateTime) return;\n\n      const duration = intervalToDuration({\n        start: dateTime,\n        end: now,\n      });\n\n      const formatted =\n        duration.days ?? 0 > 0\n          ? format(dateTime, \"LLL d, p\")\n          : formatDistance(dateTime, new Date(), { addSuffix: true });\n\n      return formatted.replace(\"about \", \"\");\n    };\n\n    return <Theme.Divider className=\"mb-2 mt-4\">{display()}</Theme.Divider>;\n  }, [dateTime, now]);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Output/Outputs.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\n\nimport { State } from \"./State\";\n\nexport type Outputs = Generation.Image.Output[];\nexport namespace Outputs {\n  export const set = (outputs: Outputs) => State.get().setOutputs(outputs);\n  export const nextID = () => State.get().nextID;\n\n  export const use = (): Outputs =>\n    State.use(({ outputs }) =>\n      Object.values(outputs).sort((a, b) => {\n        if (a.requestedAt && b.requestedAt)\n          return b.requestedAt.valueOf() - a.requestedAt.valueOf();\n\n        if (a.requestedAt) return -1;\n        if (b.requestedAt) return 1;\n\n        if (a.completedAt && b.completedAt)\n          return b.completedAt.valueOf() - a.completedAt.valueOf();\n\n        if (a.completedAt) return -1;\n        if (b.completedAt) return 1;\n\n        return 0;\n      })\n    );\n\n  export const useIsGenerating = () =>\n    State.use(\n      ({ outputs }) =>\n        Object.values(outputs).some(Generation.Image.Output.isGenerating),\n      GlobalState.shallow\n    );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Output/State.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\n\nexport type State = {\n  outputs: Record<ID, Generation.Image.Output>;\n  setOutputs: (outputs: Generation.Image.Output[]) => void;\n\n  nextID: ID;\n\n  requested: (\n    inputID: ID,\n    modifiers?: Generation.Image.Input.Modifiers\n  ) => Generation.Image.Output;\n\n  received: (\n    id: ID,\n    result: Generation.Image.Exception | Generation.Images\n  ) => void;\n\n  remove: (ids: ID[]) => void;\n  clear: (id: ID) => void;\n};\n\nexport namespace State {\n  const store = GlobalState.create<State>((set, get) => ({\n    outputs: {},\n    setOutputs: (outputs) =>\n      set((state) => ({\n        outputs: {\n          ...state.outputs,\n          ...outputs.reduce(\n            (outputs, output) => ({ ...outputs, [output.id]: output }),\n            {}\n          ),\n        },\n      })),\n\n    nextID: ID.create(),\n\n    requested: (inputID, modifiers) => {\n      const id = get().nextID;\n      const output = {\n        id,\n        inputID,\n\n        requestedAt: new Date(),\n        completedAt: undefined,\n\n        count: modifiers?.count ?? Generation.Image.Count.get(),\n        imageIDs: [],\n      };\n\n      set((state) => ({\n        nextID: ID.create(),\n        outputs: { ...state.outputs, [id]: output },\n      }));\n\n      Generation.Image.Input.set(inputID, (input) => ({\n        ...input,\n        ...modifiers,\n      }));\n\n      return output;\n    },\n\n    remove: (ids: ID[]) => {\n      set((state) => {\n        const outputs = { ...state.outputs };\n        Object.values(outputs)\n          .filter((o) => o.imageIDs.length > 0)\n          .forEach((output) => {\n            output.imageIDs = output.imageIDs.filter((id) => !ids.includes(id));\n            output.count = output.imageIDs.length;\n\n            if (output.imageIDs.length === 0) delete outputs[output.id];\n            else outputs[output.id] = output;\n          });\n        return { ...state, outputs };\n      });\n    },\n\n    received: (id, result) =>\n      set((state) => {\n        const previous = state.outputs[id];\n        return {\n          outputs: {\n            ...state.outputs,\n            ...(previous && {\n              [id]: {\n                ...previous,\n\n                completedAt: new Date(),\n                imageIDs: [],\n\n                ...(Generation.Image.Exception.is(result)\n                  ? { exception: result }\n                  : { imageIDs: result.map((image) => image.id) }),\n              },\n            }),\n          },\n        };\n      }),\n\n    clear: (id) =>\n      set((state) => {\n        const outputs = { ...state.outputs };\n        delete outputs[id];\n        return { ...state, outputs };\n      }),\n  }));\n\n  export const use = store;\n  export const get = store.getState;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Output/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\nimport { Theme } from \"~/Theme\";\n\nimport { Divider } from \"./Divider\";\nimport { State } from \"./State\";\n\nexport * from \"./Outputs\";\n\nexport type Output = {\n  id: ID;\n  inputID: ID;\n\n  requestedAt?: Date;\n  completedAt?: Date;\n\n  count: number;\n  imageIDs: ID[];\n\n  exception?: Generation.Image.Exception;\n};\n\ntype Props = {\n  outputID?: ID;\n\n  animate?: boolean;\n  placeholder?: boolean;\n  divider?: boolean;\n};\n\nexport function Output({ outputID, placeholder, divider }: Props) {\n  const output = Generation.Image.Output.use(outputID);\n  const { input } = Generation.Image.Input.use(output?.inputID);\n\n  const isOutputGenerating = Generation.Image.Output.useIsGenerating(outputID);\n  const isGenerating = !placeholder && isOutputGenerating;\n\n  const images = Generation.Images.useFromIDs(...(output?.imageIDs ?? []));\n  const dateTime = output?.completedAt ?? output?.requestedAt;\n  const download = Generation.Images.Download.use(images);\n\n  const [imagesToGenerate] = Generation.Image.Count.use();\n  const count = (placeholder ? imagesToGenerate : output?.count) ?? 0;\n  const exampleStartIndex = useMemo(\n    () =>\n      Math.floor(\n        Math.random() * Generation.Image.Prompt.Examples.images.length\n      ),\n    []\n  );\n\n  const content = useMemo(() => {\n    const items: Generation.Images | Partial<Generation.Image>[] = Array.from(\n      { length: count },\n      (_, index) => images[index] ?? { inputID: input?.id }\n    );\n\n    const rendered = items.map((image, index, images) => (\n      <Generation.Image\n        preserveAspectRatio\n        key={keys(\"image\", images.length, images.length - index)}\n        placeholder={placeholder}\n        image={image}\n        scale={1}\n        example={\n          Generation.Image.Prompt.Examples.images[\n            (exampleStartIndex + index) %\n              Generation.Image.Prompt.Examples.images.length\n          ]\n        }\n      />\n    ));\n\n    return (\n      <div className=\"grid grid-cols-2 gap-4 sm:grid-cols-1 md:grid-cols-2 xl:grid-cols-3 2xl:grid-cols-4\">\n        {rendered}\n      </div>\n    );\n  }, [count, images, input?.id, placeholder, exampleStartIndex]);\n\n  const controls = useMemo(\n    () => (\n      <div className=\"grid grid-cols-3 place-items-end gap-2 overflow-hidden\">\n        {input?.id && (\n          <Generation.Image.Prompt\n            readOnly\n            allowUseAgain\n            id={input.id}\n            variant=\"display\"\n            className=\"col-span-2 w-full duration-150\"\n          />\n        )}\n        {!placeholder && !isGenerating && (\n          <div className=\"flex w-full flex-row items-center justify-end gap-2\">\n            <Theme.Tooltip content={`Download ${images.length} images`}>\n              <Theme.Button\n                outline\n                className=\"shrink-0\"\n                icon={Theme.Icon.Download}\n                onClick={download}\n              />\n            </Theme.Tooltip>\n            <Generation.Images.Delete.Button\n              deleteTooltip={`Delete ${images.length} images`}\n              className=\"shrink-0 bg-black/20\"\n              images={images.map(({ id }) => id)}\n              outline\n            />\n          </div>\n        )}\n      </div>\n    ),\n    [input?.id, placeholder, isGenerating, images, download]\n  );\n\n  return useMemo(\n    () => (\n      <div className=\"flex flex-col gap-4\">\n        {divider && <Divider dateTime={dateTime} />}\n        {controls}\n        {content}\n      </div>\n    ),\n    [divider, dateTime, controls, content]\n  );\n}\n\nexport namespace Output {\n  export const set = (output: Output) => State.get().setOutputs([output]);\n  export const get = (id: ID) => State.get().outputs[id];\n\n  export const requested = State.get().requested;\n  export const received = State.get().received;\n  export const remove = State.get().remove;\n  export const clear = State.get().clear;\n\n  export const isGenerating = ({\n    requestedAt,\n    completedAt,\n    exception,\n    imageIDs,\n    count,\n  }: Output) =>\n    requestedAt && !completedAt && !exception && imageIDs.length !== count;\n\n  export const use = (id?: ID): Output | undefined =>\n    State.use(\n      ({ outputs }) => (!!id ? outputs[id] : undefined),\n      GlobalState.shallow\n    );\n\n  export const useIsGenerating = (id?: ID) =>\n    State.use(({ outputs }) => {\n      if (!id) return false;\n      const output = outputs[id];\n      return !!output && isGenerating(output);\n    }, GlobalState.shallow);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Prompt/Examples.ts",
    "content": "export namespace Examples {\n  export type Example = {\n    src: string;\n    prompt: string;\n  };\n\n  export const images = [\n    {\n      src: \"/examples/king.png\",\n      prompt:\n        \"Bronze statue of a king, with regal attire, a crown, and a stern expression, highly detailed, dramatic lighting, commanding presence\",\n    },\n    {\n      src: \"/examples/aurora.png\",\n      prompt:\n        \"Aurora borealis, vibrant lights dancing in the night sky, ethereal, abstract, high detail, nature art\",\n    },\n    {\n      src: \"/examples/cake.png\",\n      prompt:\n        \"Chocolate cake with rich, fudgy frosting and perfectly layered cake, garnished with fresh berries and drizzled with melted chocolate, decadent, sweet, high detail, food photography\",\n    },\n    {\n      src: \"/examples/center.png\",\n      prompt:\n        \"Contemporary cultural center with a distinct form, featuring a vibrant public plaza and innovative exhibition spaces, futuristic, visually stunning, architectural drawings\",\n    },\n    {\n      src: \"/examples/chili.png\",\n      prompt:\n        \"Bowl of hearty chili with tender chunks of beef, rich tomato sauce, and a mix of spices, topped with grated cheddar cheese and green onions, high detail, focused on texture and heat, comfort food, food photography\",\n    },\n    {\n      src: \"/examples/dragon.png\",\n      prompt:\n        \"Majestic dragon, perched atop a cliff overlooking a fiery landscape, with smoke and ash rising into the air, intense, detailed, scales, dynamic, epic\",\n    },\n    {\n      src: \"/examples/flowers.png\",\n      prompt:\n        \"Vibrant flower field in full bloom, surrounded by rolling hills and a brilliant blue sky, colorful, serene, high detail, spring landscape\",\n    },\n    {\n      src: \"/examples/forest.png\",\n      prompt:\n        \"Oil painting of a enchanted forest, with glowing mushrooms, fireflies, and a unicorn, soft brushstrokes, pastel colors, dream-like atmosphere\",\n    },\n    {\n      src: \"/examples/moon.png\",\n      prompt:\n        \"Ethereal aurora borealis over a snowy mountain range, with a full moon shining in the background, mystical, peaceful, serene, winter landscape, high detail\",\n    },\n    {\n      src: \"/examples/motorcycle.png\",\n      prompt:\n        \"Vintage motorcycle with gleaming chrome and polished leather, captured in soft natural light with selective focus on the engine, classic, retro, detailed\",\n    },\n    {\n      src: \"/examples/racecar.png\",\n      prompt:\n        \"Race car with sleek design, captured in a high speed motion blur, dramatic lighting and shallow depth of field, motorsports, adrenaline, studio lighting\",\n    },\n    {\n      src: \"/examples/river.png\",\n      prompt:\n        \"Rushing rapids in a crystal clear river, surrounded by towering trees and lush vegetation, energetic, serene, high detail, river landscape\",\n    },\n    {\n      src: \"/examples/robot.png\",\n      prompt:\n        \"Towering robot statue in a desolate wasteland, with dust storms and abandoned vehicles in the distance, mechanical, dystopian, high detail, post-apocalyptic landscape\",\n    },\n    {\n      src: \"/examples/seascape.png\",\n      prompt:\n        \"Wooden sculpture of a seascape, with waves, boats, and sea creatures, intricate carving, textured surface, high-resolution, natural lighting\",\n    },\n    {\n      src: \"/examples/spaceship.png\",\n      prompt:\n        \"Crashed spaceship in a dense forest, surrounded by tall trees and exotic vegetation, futuristic, detailed, high detail, sci-fi landscape\",\n    },\n    {\n      src: \"/examples/sushi.png\",\n      prompt:\n        \"Platter of sushi rolls with colorful and flavorful ingredients, including avocado, tuna, salmon, and crab, arranged with precision and beauty, high resolution, Asian-style, focused on texture and color, food photography\",\n    },\n    {\n      src: \"/examples/train.png\",\n      prompt:\n        \"Steam locomotive in a snowy mountain range, surrounded by tall peaks and crisp clear air, nostalgic, detailed, high detail, winter landscape\",\n    },\n  ];\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Prompt/Prompts.tsx",
    "content": "import { Generation } from \"~/Generation\";\n\nexport type Prompts = Generation.Image.Prompt[];\nexport function Prompts({ id }: { id: ID }) {\n  const { input } = Generation.Image.Input.use(id);\n  if (!input) return null;\n  return (\n    <div className=\"flex w-full flex-col items-center gap-2\">\n      {input.prompts.map((_: unknown, index: number) => (\n        <Generation.Image.Prompt\n          id={id}\n          index={index}\n          key={keys(index, input.prompts.length)}\n          variant=\"advanced\"\n        />\n      ))}\n    </div>\n  );\n}\n\nexport namespace Prompts {\n  export const random = (\n    count: number,\n    exclude: string[] = [],\n    triesLeft = 10,\n    previous = []\n  ): string[] => {\n    const prompt = Generation.Image.Prompt.Random.get(exclude, triesLeft);\n    return [\n      prompt,\n      ...previous,\n      ...(count < previous.length\n        ? random(count - 1, [...exclude, ...previous], triesLeft - 1)\n        : []),\n    ];\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Prompt/Random.tsx",
    "content": "export namespace Random {\n  export const get = (exclude: string[] = [], triesLeft = 10): string => {\n    const prompt = list[Math.floor(Math.random() * list.length)] as string;\n    return triesLeft > 0 && exclude.find((excluded) => excluded === prompt)\n      ? get(exclude, triesLeft - 1)\n      : prompt;\n  };\n\n  export const is = (prompt?: string): boolean =>\n    !!prompt && list.includes(prompt);\n\n  const list = [\n    \"Stunning sunset over a futuristic city, with towering skyscrapers and flying vehicles, golden hour lighting and dramatic clouds, high detail, moody atmosphere\",\n    \"Mystical forest with glowing mushrooms and a babbling brook, surrounded by towering trees and shrouded in mist, ethereal, dreamlike, stylized\",\n    \"Majestic dragon, perched atop a cliff overlooking a fiery landscape, with smoke and ash rising into the air, intense, detailed, scales, dynamic, epic\",\n    \"Serene beach scene with crystal clear water and white sand, tropical palm trees swaying in the breeze, perfect paradise, seascape\",\n    \"Post-apocalyptic wasteland with rusted and abandoned vehicles, dust storms and towering dust clouds, gritty, dark, dramatic, apocalyptic, stylized\",\n    \"Mystical underwater world with vibrant coral and exotic sea creatures, sun beams shining through the water, mysterious, magical, otherworldly\",\n    \"Snowy winter wonderland with a lone cabin in the distance, surrounded by frosty trees and fresh snowfall, peaceful, serene, detailed, winter landscape\",\n    \"Mysterious and abandoned temple in the jungle, surrounded by lush vegetation and tall trees, atmospheric, ancient, moody\",\n    \"Vibrant and bustling city street with busy traffic, bright lights, and towering skyscrapers, chaotic, fast-paced, cityscape, high detail\",\n    \"Gothic cathedral in a stormy night, with lightning illuminating the sky and rain pouring down, dramatic, atmospheric, high detail, moody\",\n    \"Fantasy castle on a hilltop, surrounded by rolling hills and a beautiful sunset, magical, serene, high detail, romantic, stylized\",\n    \"Vast desert with sand dunes and a lone oasis in the distance, hot sun and clear blue sky, peaceful, serene, desertscape, high resolution\",\n    \"Ethereal aurora borealis over a snowy mountain range, with a full moon shining in the background, mystical, peaceful, serene, winter landscape, high detail\",\n    \"Giant robots fighting in a futuristic city, with buildings falling and explosions all around, intense, fast-paced, dramatic, stylized, futuristic\",\n    \"Medieval market square with vendors selling goods, colorful banners, and bustling crowds, lively, busy, historic, high detail, architectural\",\n    \"Abandoned prison on a cliff, with a stormy sea below, eerie, moody, atmospheric, architectural, stylized\",\n    \"Beautiful waterfall in a lush jungle, with sunlight shining through the trees, serene, peaceful, tropical, jungle landscape, high detail\",\n    \"Surreal carnival scene with bright lights, strange creatures, and a full moon, dreamlike, vibrant, stylized, surreal, high detail\",\n    \"Breathtaking mountain range with a clear river running through it, surrounded by tall trees and misty clouds, serene, peaceful, mountain landscape, high detail\",\n    \"Historic battlefield with armies clashing and smoke rising, intense, fast-paced, dramatic, historic, high detail\",\n    \"Enchanted forest with glowing fireflies and a babbling brook, surrounded by towering trees and shrouded in mist, magical, ethereal, dreamlike, stylized\",\n    \"Sunken ship in a vibrant coral reef, with schools of colorful fish swimming by, mysterious, magical, high detail\",\n    \"Futuristic city with towering skyscrapers and flying vehicles, set against a vibrant sunset, futuristic, serene, high detail\",\n    \"Volcanic island with a boiling crater and ash clouds rising into the air, intense, dramatic, natural disaster, high detail, volcanic landscape\",\n    \"Lonely lighthouse on a rocky coast during a storm, with waves crashing and lightning flashing, moody, atmospheric, seascape, high detail\",\n    \"Ruined castle on a cliff overlooking the sea, with a stormy sky and crashing waves, eerie, moody, atmospheric\",\n    \"Vibrant street fair with colorful stalls and bustling crowds, lively, busy, high detail\",\n    \"Mysterious underground cave with glowing crystals and an underground river, dark, mysterious, underground landscape, high detail\",\n    \"Glorious sunrise over a cityscape, with the city slowly coming to life and the sky turning orange and pink, serene, peaceful, cityscape, high detail\",\n    \"Breathtaking view of a snowy mountain range, with crisp clear air and a brilliant blue sky, serene, peaceful, majestic, high detail, winter landscape\",\n    \"Enchanting waterfall in a lush jungle, surrounded by exotic plants and wildlife, tranquil, serene, high detail, tropical landscape\",\n    \"Glowing aurora borealis over a frozen lake, with towering mountains in the distance, ethereal, magical, winter landscape, high detail\",\n    \"Rushing rapids in a crystal clear river, surrounded by towering trees and lush vegetation, energetic, serene, high detail, river landscape\",\n    \"Vibrant flower field in full bloom, surrounded by rolling hills and a brilliant blue sky, colorful, serene, high detail, spring landscape\",\n    \"Glimpses of a herd of wild elephants crossing a savanna, surrounded by tall grass and a brilliant orange sunset, majestic, peaceful, high detail, safari landscape\",\n    \"Tranquil pond surrounded by tall trees, with a beautiful lily pad garden and calm reflection of the sky, serene, peaceful, high detail, water landscape\",\n    \"Giant redwoods in a misty forest, with towering trees and lush vegetation, peaceful, serene, high detail, forest landscape\",\n    \"Breathtaking view of a desert landscape, with towering sand dunes and a brilliant blue sky, serene, vast, high detail, desert landscape\",\n    \"Stunning sunset over an ocean horizon, with orange and pink hues spreading across the sky, peaceful, serene, high detail, seascape\",\n    \"Massive airship floating above a sprawling metropolis, with towering skyscrapers and busy streets below, futuristic, detailed, high resolution, urban landscape\",\n    \"Steampunk submarine exploring a coral reef, surrounded by exotic sea creatures and vibrant coral, detailed, surreal, steampunk style\",\n    \"Medieval castle on a cliff, surrounded by a moat and rolling green hills, majestic, medieval, high detail\",\n    \"Towering robot statue in a desolate wasteland, with dust storms and abandoned vehicles in the distance, mechanical, dystopian, high detail, post-apocalyptic landscape\",\n    \"Massive statue of a dragon in a lush jungle, surrounded by exotic plants and tall trees, mysterious, ancient, high detail, tropical landscape\",\n    \"Ancient temple in a mountain range, surrounded by misty clouds and tall peaks, mysterious, ancient, high detail\",\n    \"Crashed spaceship in a dense forest, surrounded by tall trees and exotic vegetation, futuristic, detailed, high detail, sci-fi landscape\",\n    \"Lighthouse on a stormy beach, surrounded by crashing waves and dramatic clouds, intense, detailed, high detail, coastal landscape\",\n    \"Steam locomotive in a snowy mountain range, surrounded by tall peaks and crisp clear air, nostalgic, detailed, high detail, winter landscape\",\n    \"Old western town in the desert, surrounded by towering sand dunes and a brilliant blue sky, nostalgic, detailed, high detail, western landscape\",\n    \"Futuristic cyborg, sleek metal enhancements and glowing circuits, standing in high-tech laboratory, intense, detailed, high resolution, sci-fi portrait\",\n    \"Medieval knight, armor and shining sword, standing on battle-scarred battlefield, intense, detailed, high detail, portrait\",\n    \"Powerful sorceress, flowing robes and mystical staff, standing in dark and ominous forest, mysterious, detailed, high detail, fantasy portrait\",\n    \"Rogue adventurer, backpack and rugged appearance, standing in dense jungle, adventurous, detailed, high detail, portrait\",\n    \"Wise wizard, long beard and mysterious tome, standing in dimly lit library, wise, detailed, high detail, portrait\",\n    \"Daring astronaut, space suit and helmet, standing in front of futuristic spaceship, adventurous, detailed, high detail, portrait\",\n    \"Skilled archer, bow and quiver of arrows, standing in forest clearing, intense, detailed, high detail, portrait\",\n    \"Daring treasure hunter, map and compass, standing in desolate desert, adventurous, detailed, high detail, portrait\",\n    \"Cosmic swirl of stars and galaxies, swirling in endless black void, otherworldly, abstract, high detail, space\",\n    \"Psychedelic mandala of patterns and shapes, kaleidoscopic, trippy, detailed, abstract art\",\n    \"Fractal landscape of geometric shapes and patterns, complex, intricate, abstract, digital art\",\n    \"Glowing nebula of vibrant gas and dust, celestial, otherworldly, abstract, space art\",\n    \"Hypnotic vortex of swirling colors, intense, detailed, abstract, digital art\",\n    \"Aurora borealis, vibrant lights dancing in the night sky, ethereal, abstract, high detail, nature art\",\n    \"Phantasmagoric carnival, carnival attractions shifting and changing, dreamlike, abstract, high detail, surreal art\",\n    \"Radiant nebula, star clusters and gas clouds shining brightly, celestial, otherworldly, abstract, space art\",\n    \"Iconic Parisian street with quaint cafes and bistros, charming, romantic, high detail, cityscape\",\n    \"Golden hour New York City skyline, towering skyscrapers and bustling streets, iconic, dramatic\",\n    \"Beautiful Venice canals with gondolas and bridges, charming, romantic, high detail, cityscape\",\n    \"Majestic Machu Picchu, set against a backdrop of towering mountains, breathtaking, high detail, landscape\",\n    \"Breathtaking view of the Grand Canyon, vast and awe-inspiring, high detail, landscape\",\n    \"Charming Santorini island with pristine beaches and iconic white buildings, Mediterranean, high detail, seascape\",\n    \"The iconic Great Wall of China, stretching along the countryside, historical, high detail, landscape\",\n    \"Stunning view of the Sydney Opera House, with the harbor and cityscape in the background, iconic, high detail, cityscape\",\n    \"The stunning Taj Mahal, set against a backdrop of lush greenery, historic, high detail, landmark\",\n    \"Breathtaking view of the Serengeti with roaming wildlife, vast, high detail, nature landscape\",\n    \"Giant rubber duck floating in the ocean with a small island on its back, surrounded by tropical palm trees and crystal clear water, bright and sunny day, calm seas, vivid colors, cinematic lighting, high detail\",\n    \"Giant hamster wheel in the middle of a city, with skyscrapers and busy streets in the background, centralized, low details, stylized graphics, night time, lit up, neon lights, no shadows\",\n    \"Humongous teacup and saucer floating in the sky, surrounded by clouds and rainbows, abstract, surreal, dreamlike, stylized oil painting style, vivid colors, detailed, high resolution, wide angled, otherworldly, fantastic\",\n    \"Giant ice cream cone melting and creating a river through a city, with boats floating down it, dramatic, intense, chaotic, high detail, fast-paced, wide angled, aerial view, colorful, fun, stylized graphics\",\n    \"Giant snail racing a car, high speed, intense, dynamic, detailed, cartoon style, wide angled, overhead view, vibrant colors, whimsical, absurd, surreal, fun\",\n    \"A group of giant robots playing a game of soccer, intense, dynamic, high detail, 3D, stylized, futuristic, metallic, robots, absurd, fantastic, wide angled, overhead view, colorful, fun\",\n    \"A city built entirely out of food, colorful, detailed, stylized, fun, absurd, vivid, delicious, overhead view, centralized, wide angled, vibrant, fantastical\",\n    \"Giant fruit and vegetable parade, with various different fruits and vegetables marching down a city street, colorful, detailed, stylized, absurd, fun, vivid, delicious, overhead view, centralized, wide angled\",\n    \"Giant caterpillar riding a bicycle, surreal, absurd, whimsical, stylized, detailed, vivid, high resolution, centralized, overhead view, colorful, fun\",\n    \"A bustling city made entirely of candy, with gumdrop buildings and sugar-coated streets, bright colors, whimsical, playful, detailed\",\n    \"A floating city in the clouds, with airships docking at sky-high platforms and clouds serving as roads, futuristic, whimsical, high-altitude, detailed\",\n    \"An underground city, filled with steam-powered trains, strange creatures, and intricate tunnels and cave systems, dark, detailed, subterranean, steampunk\",\n    \"A jungle city, with vines and roots serving as roads and buildings made of leaves, colorful, detailed, natural, tropical\",\n    \"A city made of ice, with ice slides, frozen rivers, and snow-covered buildings, winter, magical, detailed, cold\",\n    \"A pirate port, with ships setting sail, blacksmiths crafting weapons, and treasure-filled caves, adventurous, detailed, historic, swashbuckling\",\n    \"A space station, with spaceships coming and going, astronauts on EVA missions, and maintenance robots hard at work, futuristic, high-tech, detailed, intergalactic\",\n    \"A dragon's lair, with dragons hoarding treasure, sleeping on piles of gold, and shooting fire from their nostrils, mythical, detailed, adventurous, fantastical\",\n    \"Bowl of steaming hot ramen with a perfect egg in the center, surrounded by thin slices of meat, green onions, and nori, with a flavorful broth and perfect noodles, high detail, focused on texture and steam\",\n    \"Delectable pizza with melted cheese, juicy tomato sauce, and an array of toppings including pepperoni, mushrooms, and black olives, served hot and fresh, high resolution, stylized, focused on ingredients and melted cheese\",\n    \"Sizzling hot sirloin steak with a perfect crust, seared to perfection and topped with herbs and spices, served with a side of roasted vegetables and mashed potatoes, juicy, delicious, high detail\",\n    \"Assorted fruit platter with ripe, juicy strawberries, sweet grapes, tangy citrus, and juicy watermelon, set on a bed of greens and accented with mint leaves, high resolution, vibrant, natural\",\n    \"Chocolate cake with rich, fudgy frosting and perfectly layered cake, garnished with fresh berries and drizzled with melted chocolate, decadent, sweet, high detail, food photography\",\n    \"Baked salmon fillet with a perfectly crispy skin and tender, flaky flesh, served with a side of steamed vegetables and quinoa, healthy, flavorful, high detail, food photography\",\n    \"Bowl of hearty chili with tender chunks of beef, rich tomato sauce, and a mix of spices, topped with grated cheddar cheese and green onions, high detail, focused on texture and heat, comfort food\",\n    \"Platter of sushi rolls with colorful and flavorful ingredients, including avocado, tuna, salmon, and crab, arranged with precision and beauty, high resolution, Asian-style, focused on texture and color\",\n    \"Stuffed bell peppers filled with tender ground beef, flavorful rice, and melted cheese, baked to perfection, juicy, flavorful, high detail, food photography\",\n    \"Tasty tacos filled with seasoned beef, fresh salsa, melted cheese, and crunchy lettuce, served on a warm corn tortilla, Mexican-style, high resolution, focused on texture and flavor, food photography\",\n    \"Contemporary living room with large windows overlooking a cityscape, neutral color palette, minimalistic design, sleek modern furniture, gallery wall of abstract art, warm lighting, high detail, open floor plan\",\n    \"Rustic kitchen with exposed brick wall, reclaimed wood cabinetry, large farmhouse sink, industrial lighting fixtures, antique baking tools on open shelving, cast iron cookware, vintage accents, warm and inviting, detailed textures\",\n    \"Luxurious bathroom with freestanding bathtub, rain shower, heated flooring, marble tiles, brass fixtures, floating vanity with double sink, elegant chandelier, high contrast lighting, spa-like atmosphere, high resolution\",\n    \"Elegant dining room with crystal chandelier, dark wood table, velvet upholstered chairs, large statement art piece, tall windows with lush garden view, sophisticated color scheme, detailed textures, candlelit ambiance\",\n    \"Industrial-style office with concrete floors, raw steel beams, large wooden desk, leather office chair, wall of bookshelves, minimalist design, warm lighting, high detail, organized and professional\",\n    \"Cozy bedroom with four-poster bed, plush bedding, soft lighting, large windows with natural light, statement wallpaper, decorative throw pillows, high resolution textures, intimate and relaxing\",\n    \"Glamorous dressing room with large mirror, Hollywood lights, plush velvet seating, glass shelves displaying designer shoes, hanging rods for clothes, detailed textures, high contrast lighting, organized and stylish\",\n    \"Modern nursery with minimalistic design, white crib, rocking chair, wall mounted bookshelves, abstract art, neutral color palette, warm lighting, high detail, cozy and inviting\",\n    \"Minimalistic home gym with rubber flooring, wall-mounted TV, weight bench, medicine ball, dumbbells, yoga mats, high-tech equipment, high detail, organized and efficient\",\n    \"Traditional library with floor-to-ceiling bookcases, rolling ladder, large wooden desk, leather armchair, antique rug, warm lighting, high resolution textures, intellectual and inviting atmosphere\",\n    \"Contemporary glass and steel building with sleek lines and an innovative facade, surrounded by an urban landscape, modern, high resolution\",\n    \"Sleek and modern shopping center with an emphasis on natural light, an open-air interior, and eco-friendly features, contemporary, high detail, architectural renderings\",\n    \"High-rise residential building with a unique form and facade, featuring terraces and stunning views, minimalist, high-end, architectural design\",\n    \"Contemporary office building with a focus on sustainability, including green roofs and walls, modern, cutting-edge, architectural illustration\",\n    \"Contemporary cultural center with a distinct form, featuring a vibrant public plaza and innovative exhibition spaces, futuristic, visually stunning, architectural drawings\",\n    \"Stylish and modern apartment building with a clean, minimalist design and a focus on natural light, contemporary, high-end, architectural rendering\",\n    \"Innovative mixed-use development featuring an interplay of form and function, with cutting-edge technology and sustainability features, contemporary, visually striking, architectural illustration\",\n    \"Stylish and contemporary hotel with a unique form and facade, featuring luxury amenities and stunning views, modern, visually stunning\",\n    \"Sleek and modern shopping mall with a focus on sustainable design, featuring natural light and innovative materials, contemporary, cutting-edge, architectural drawings\",\n    \"Innovative and contemporary transportation hub with a unique form, featuring cutting-edge technology and sustainable features, modern, visually stunning, architectural illustration\",\n    \"Race car with sleek design, captured in a high speed motion blur, dramatic lighting and shallow depth of field, motorsports, adrenaline, studio lighting\",\n    \"Vintage hot rod with custom flame paint job, captured in low key lighting with selective focus on the chrome details, classic car, retro, high resolution\",\n    \"Luxury sports car with aerodynamic curves, shot in a high contrast, high key lighting with shallow depth of field, exotic, detailed, sporty, studio lighting\",\n    \"Majestic yacht with sleek lines, captured in a serene sunset light, with a shallow depth of field, boating, lifestyle\",\n    \"Futuristic flying car with smooth lines, shot in a low light high contrast studio setting, science fiction, cutting edge, high detail, moody atmosphere\",\n    \"Sturdy pickup truck, captured in a dramatic golden hour light with deep shadows, off-roading, rugged, dramatic, high resolution\",\n    \"Vintage motorcycle with gleaming chrome and polished leather, captured in soft natural light with selective focus on the engine, classic, retro, detailed\",\n    \"Luxury sports car with aggressive lines, shot in a high contrast, high key lighting with shallow depth of field, detailed, sporty, sleek, studio lighting\",\n    \"Massive semi-truck with chrome details, captured in a high key lighting with shallow depth of field, transportation, commercial, detailed, high resolution\",\n    \"Vintage sports car with classic curves, captured in a moody, low key light with selective focus on the grille, classic, retro, moody, detailed\",\n    \"Oil painting of a bustling harbor town, with fishing boats, seagulls, and a lighthouse in the background, high contrast, dramatic lighting, heavily textured brushstrokes\",\n    \"Watercolor painting of a rolling countryside, with fields of flowers, a red barn, and a white picket fence, soft and delicate brushstrokes, pastel colors\",\n    \"Acrylic painting of a mountain landscape, with a stormy sky and a cabin nestled in the forest, high contrast, bold brushstrokes, high-resolution\",\n    \"Oil painting of a sunset over the ocean, with orange and pink hues, gently rolling waves, and palm trees, heavily textured brushstrokes, dramatic lighting\",\n    \"Pen and ink drawing of a cityscape, with tall skyscrapers and bustling city life, high-contrast, detailed linework, dramatic lighting\",\n    \"Oil painting of a enchanted forest, with glowing mushrooms, fireflies, and a unicorn, soft brushstrokes, pastel colors, dream-like atmosphere\",\n    \"Watercolor painting of a desert landscape, with sand dunes, mountains, and a blazing sun, soft and delicate brushstrokes, warm and vibrant colors\",\n    \"Acrylic painting of a futuristic city, with neon lights, advanced technology, and flying cars, bold brushstrokes, high-contrast, highly stylized\",\n    \"Oil painting of a tranquil lake surrounded by mountains, with a cabin on the shore, boats, and a sunset, heavily textured brushstrokes, warm and vibrant colors\",\n    \"Pen and ink drawing of a mystical underwater world, with schools of fish, coral reefs, and a mermaid, highly detailed linework, high-contrast, stylized\",\n    \"Watercolor painting of a rolling countryside, with fields of wheat, a red barn, and a white picket fence, soft and delicate brushstrokes, warm and vibrant colors\",\n    \"Bronze statue of a powerful warrior, with a sword in hand, chiseled muscles, and a determined expression, highly detailed, dramatic lighting, intense gaze\",\n    \"Marble statue of a serene goddess, with flowing robes, delicate features, and a tranquil expression, highly detailed, soft lighting, grace and beauty\",\n    \"Wooden sculpture of a majestic animal, with intricate carving, textured fur, and piercing eyes, highly detailed, natural lighting, raw and powerful\",\n    \"Stone statue of a mythological creature, with wings, horns, and a fierce expression, highly detailed, dramatic lighting, intense and otherworldly\",\n    \"Bronze statue of a philosopher, with a wise expression, long beard, and a tome, highly detailed, soft lighting, introspective gaze\",\n    \"Marble statue of a dancers, with fluid movements, intricate details, and grace, highly detailed, dramatic lighting, intense expression\",\n    \"Wooden sculpture of a seascape, with waves, boats, and sea creatures, intricate carving, textured surface, high-resolution, natural lighting\",\n    \"Bronze statue of a king, with regal attire, a crown, and a stern expression, highly detailed, dramatic lighting, commanding presence\",\n    \"Wooden sculpture of a tree, with intricate branches, textured bark, and a strong trunk, highly detailed, natural lighting, grounding presence\",\n  ];\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Prompt/Reuse/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Reuse {\n  export function Button({\n    inputID,\n    onClick: propsOnClick,\n    ...props\n  }: Theme.Button.Props & { inputID: ID }) {\n    const { input } = Generation.Image.Input.use(inputID);\n\n    const label = useMemo(\n      () => `Reuse prompt${input?.prompts.length ?? 0 > 1 ? \"s\" : \"\"}`,\n      [input?.prompts.length]\n    );\n\n    const onClick = useCallback(\n      (event: MouseEvent) => {\n        propsOnClick?.(event);\n        Generation.Image.Session.setCurrentInput((currentInput) => {\n          let prompts = Generation.Image.Input.get(inputID)?.prompts;\n          if (!prompts) return;\n\n          prompts = prompts.filter((prompt) => prompt.text !== \"\");\n          if (prompts.filter((prompt) => prompt.weight < 0).length <= 0)\n            prompts.push({ text: \"\", weight: -0.75 });\n\n          currentInput.prompts = prompts;\n        });\n      },\n      [inputID, propsOnClick]\n    );\n\n    return (\n      <Theme.Button\n        outline\n        icon={Theme.Icon.ArrowLeftCircle}\n        label={label}\n        onClick={onClick}\n        {...props}\n      />\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Prompt/Sidebar.tsx",
    "content": "import { App } from \"~/App\";\nimport { Generation } from \"~/Generation\";\nexport namespace Sidebar {\n  export function Section({ id }: { id: ID }) {\n    const { input } = Generation.Image.Input.use(id);\n    if (!input) return null;\n    return (\n      <App.Sidebar.Section\n        divider\n        defaultExpanded\n        padding=\"sm\"\n        // button={(props) => (\n        //   <Theme.Button\n        //     {...props}\n        //     iconRight={Theme.Icon.Plus}\n        //     onClick={() => addPrompt()}\n        //     disabled={input.prompts.length >= 10}\n        //     className={classes(props.className, \"mr-1 mt-1\")}\n        //     size=\"sm\"\n        //   >\n        //     Add prompt\n        //   </Theme.Button>\n        // )}\n      >\n        <Generation.Image.Prompts id={id} />\n      </App.Sidebar.Section>\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Prompt/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\nimport { Input } from \"~/Theme/Input\";\n\nimport { Examples } from \"./Examples\";\n\nimport { Random } from \"./Random\";\nimport { Reuse } from \"./Reuse\";\nimport { Sidebar } from \"./Sidebar\";\n\nexport * from \"./Prompts\";\n\nexport type Prompt = {\n  text?: string;\n  weight: number;\n};\n\ntype Props = StyleableWithChildren & {\n  id: ID;\n  index?: number;\n  advanced?: boolean;\n  readOnly?: boolean;\n  variant?: \"simple\" | \"advanced\" | \"display\";\n  allowUseAgain?: boolean;\n};\n\nexport function Prompt({\n  id,\n  index = 0,\n  variant = \"simple\",\n  allowUseAgain,\n  className,\n}: Props) {\n  const { deletePrompt, shuffle, setInput, input } =\n    Generation.Image.Input.use(id);\n\n  const promptText = input?.prompts[index]?.text;\n  const promptWeight = input?.prompts[index]?.weight ?? 1;\n  const isRandomPrompt = useMemo(\n    () => Generation.Image.Prompt.Random.is(promptText),\n    [promptText]\n  );\n  const [expanded, setExpanded] = useState(promptWeight >= 0);\n\n  const onChange = useCallback(\n    (prompt: string) =>\n      setInput((input) => {\n        (input.prompts[index] as Prompt).text = prompt;\n      }),\n    [setInput, index]\n  );\n\n  const onFocus = useCallback(\n    (event: React.FocusEvent<HTMLTextAreaElement | HTMLInputElement>) => {\n      const end = event.target.value.length;\n      event.target.setSelectionRange(isRandomPrompt ? 0 : end, end);\n    },\n    [isRandomPrompt]\n  );\n\n  const shufflePrompt = useMemo(\n    () => (\n      <Theme.Tooltip content=\"Shuffle prompt\" delay={500}>\n        <Theme.Button\n          transparent\n          icon={Theme.Icon.Dices}\n          onClick={() => shuffle(index)}\n          className={classes(input?.prompts.length === 1 && \"-mr-1\", \"p-0\")}\n        />\n      </Theme.Tooltip>\n    ),\n    [shuffle, index, input?.prompts.length]\n  );\n\n  const prompt =\n    variant === \"display\" ? (\n      <div className=\"flex flex-row items-center gap-3 truncate\">\n        <p className=\"w-full truncate text-base\">{promptText}</p>\n        {input?.id && allowUseAgain && <Reuse.Button inputID={input?.id} />}\n      </div>\n    ) : (\n      <div className=\"flex flex-row\">\n        <Input\n          key={keys(id, index)}\n          transparent\n          autoSize\n          className=\"w-full px-0 py-0\"\n          placeholder={\n            promptWeight > 0\n              ? \"What do you want to see?\"\n              : \"What do you want to avoid?\"\n          }\n          value={promptText}\n          onChange={onChange}\n          onFocus={onFocus}\n        />\n      </div>\n    );\n\n  const controls = useMemo(() => {\n    const removeIcon = (\n      <Theme.Button\n        transparent\n        icon={Theme.Icon.Trash}\n        onClick={() => deletePrompt(index)}\n        className=\"p-0 hover:text-red-500\"\n      />\n    );\n\n    return (\n      <div className=\"flex flex-row items-center\">\n        {input?.prompts.length === 1 ? (\n          <>{promptWeight >= 0 && shufflePrompt}</>\n        ) : (\n          <>\n            {promptWeight >= 0 && shufflePrompt}\n            {variant === \"advanced\" && index > 1 && removeIcon}\n          </>\n        )}\n      </div>\n    );\n  }, [\n    input?.prompts.length,\n    promptWeight,\n    shufflePrompt,\n    variant,\n    deletePrompt,\n    index,\n  ]);\n\n  if (!input) return null;\n  return variant === \"display\" ? (\n    <div\n      className={classes(\n        \"flex items-center justify-between gap-2 text-lg\",\n        className\n      )}\n    >\n      {prompt}\n    </div>\n  ) : (\n    <div\n      className={classes(\n        \"group flex w-full gap-1 rounded border border-zinc-700 px-3 py-2 dark:bg-zinc-800\",\n        className\n      )}\n    >\n      <div className=\"flex w-full flex-col gap-2\">\n        {input.prompts.length > 1 && (\n          <div className=\"flex select-none flex-row items-center\">\n            <Theme.Button\n              className=\"mr-auto p-0\"\n              transparent\n              onClick={() => setExpanded(!expanded)}\n              icon={(props) => (\n                <Theme.Icon.ChevronRight\n                  {...props}\n                  className={classes(\n                    props.className,\n                    promptWeight >= 0 ? \"text-green-500\" : \"text-red-500\",\n                    expanded && \"rotate-90\",\n                    \"p-0\"\n                  )}\n                />\n              )}\n            >\n              <h1 className=\"w-full font-light\">\n                {(input.prompts[index]?.weight ?? 0) > 0\n                  ? input.prompts.filter((p: Prompt) => p.weight > 0).length ===\n                    1\n                    ? \"Prompt\"\n                    : `Prompt ${index + 1}`\n                  : \"Negative prompt\"}\n              </h1>\n            </Theme.Button>\n            <div className=\"pointer-events-none opacity-0 group-hover:pointer-events-auto group-hover:opacity-100\">\n              {controls}\n            </div>\n          </div>\n        )}\n        {expanded && prompt}\n        {/* {variant === \"advanced\" && input.prompts.length > 1 && (\n          <Theme.Slider\n            key={index}\n            percentage\n            title=\"Weight\"\n            min={-100}\n            step={1}\n            max={100}\n            value={input.prompts[index].weight * 100}\n            onChange={(value) =>\n              setInput((input) => {\n                input.prompts[index].weight = value / 100;\n              })\n            }\n          />\n        )} */}\n      </div>\n    </div>\n  );\n}\n\nexport declare namespace Prompt {\n  export { Random, Reuse, Sidebar, Examples };\n}\n\nexport namespace Prompt {\n  Prompt.Random = Random;\n  Prompt.Reuse = Reuse;\n  Prompt.Sidebar = Sidebar;\n  Prompt.Examples = Examples;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Sampler/Dropdown.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport function Dropdown({ id, className }: Styleable & { id: ID }) {\n  const { setInput, input } = Generation.Image.Input.use(id);\n  const { data: samplers } = Generation.Image.Samplers.use();\n\n  const options = useMemo(\n    () => [\n      ...(samplers ?? []).map(({ id, name }) => ({\n        name: name,\n        value: id,\n      })),\n    ],\n    [samplers]\n  );\n\n  const onClick = useCallback(\n    (id: ID) => {\n      setInput((input) => {\n        input.sampler = samplers?.find((sampler) => sampler.id === id);\n      });\n    },\n    [setInput, samplers]\n  );\n\n  if (!input) return null;\n  return (\n    <Theme.Popout\n      title=\"Sampler\"\n      label=\"Sampler\"\n      placeholder={\"Select a sampler\"}\n      value={input.sampler?.id}\n      className={className}\n      onClick={onClick}\n      options={options}\n      anchor=\"bottom\"\n    >\n      {!samplers && (\n        <div className=\"flex flex-col items-center justify-center px-16 py-32\">\n          <div className=\"text-muted-white pb-3\">Loading samplers...</div>\n        </div>\n      )}\n    </Theme.Popout>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Sampler/Samplers.tsx",
    "content": "import * as StableStudio from \"@stability/stablestudio-plugin\";\nimport * as ReactQuery from \"@tanstack/react-query\";\n\nimport { Plugin } from \"~/Plugin\";\n\nexport type Samplers = StableStudio.StableDiffusionSampler[];\nexport namespace Samplers {\n  export const use = () => {\n    const getStableDiffusionSamplers = Plugin.use(\n      ({ getStableDiffusionSamplers }) => getStableDiffusionSamplers\n    );\n\n    return ReactQuery.useQuery({\n      enabled: !!getStableDiffusionSamplers,\n\n      queryKey: [\"Generation.Image.Samplers.use\"],\n      queryFn: async () => (await getStableDiffusionSamplers?.()) ?? [],\n    });\n  };\n\n  export const useAreEnabled = () =>\n    Plugin.use(({ getStableDiffusionModels }) => !!getStableDiffusionModels);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Sampler/index.tsx",
    "content": "import * as StableStudio from \"@stability/stablestudio-plugin\";\n\nimport { Dropdown } from \"./Dropdown\";\n\nexport * from \"./Samplers\";\n\nexport type Sampler = StableStudio.StableDiffusionSampler[];\n\nexport declare namespace Sampler {\n  export { Dropdown };\n}\n\nexport namespace Sampler {\n  Sampler.Dropdown = Dropdown;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Search/index.tsx",
    "content": "import MiniSearch from \"minisearch\";\nimport { useDebounce } from \"react-use\";\n\nimport { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\n\nexport namespace Search {\n  export const use = () => {\n    const { miniSearch, lastAdded } = State.use(\n      ({ miniSearch, lastAdded }) => ({\n        miniSearch,\n        lastAdded,\n      })\n    );\n\n    const [loading, setLoading] = useState(false);\n    const [matches, setMatches] = useState([] as ID[]);\n    const [text, setTextRaw] = useState(undefined as string | undefined);\n\n    useEffect(() => setLoading(!!text), [text]);\n\n    const setText = useCallback(\n      (value?: string) => {\n        const text = value === undefined || value === \"\" ? undefined : value;\n\n        setTextRaw(text);\n        setLoading(!!text);\n        setMatches([]);\n      },\n      [setTextRaw]\n    );\n\n    const clear = useCallback(() => setText(), [setText]);\n\n    useDebounce(\n      () => {\n        if (!text) return setMatches([]);\n\n        setMatches(miniSearch.search(text).map(({ id }) => id));\n        setLoading(false);\n      },\n      250,\n      [text, miniSearch, lastAdded]\n    );\n\n    return useMemo(\n      () => ({ loading, matches, text, setText, clear }),\n      [matches, loading, text, setText, clear]\n    );\n  };\n\n  export const useMakeSearchable = () => {\n    const [inputs] = Generation.Image.Inputs.use();\n\n    const { miniSearch, setLastAdded } = State.use(\n      ({ miniSearch, setLastAdded }) => ({\n        miniSearch,\n        setLastAdded,\n      })\n    );\n\n    return useCallback(\n      (...images: Generation.Images) => {\n        const imagesToAdd = images.reduce((images, image) => {\n          if (!image.id) return images;\n\n          const prompt = inputs[image.inputID]?.prompts\n            .map(({ text }) => text)\n            .join(\" \");\n\n          if (!prompt) return images;\n\n          return [...images, { id: image.id, prompt }];\n        }, [] as Data);\n\n        if (!imagesToAdd.length) return;\n\n        imagesToAdd.forEach(({ id, prompt }) => {\n          miniSearch.has(id) && miniSearch.remove({ id, prompt });\n          miniSearch.add({ id, prompt });\n        });\n\n        const lastAdded = imagesToAdd[imagesToAdd.length - 1]?.id;\n        lastAdded && setLastAdded(lastAdded);\n      },\n      [inputs, miniSearch, setLastAdded]\n    );\n  };\n}\n\ntype State = {\n  miniSearch: MiniSearch<Datum>;\n\n  lastAdded?: ID;\n  setLastAdded: (lastAdded: ID) => void;\n};\n\ntype Data = Datum[];\ntype Datum = { id: ID; prompt: string };\n\nnamespace State {\n  export const use = GlobalState.create<State>((set) => ({\n    miniSearch: new MiniSearch({\n      idField: \"id\",\n      fields: [\"prompt\"],\n      storeFields: [],\n    }),\n\n    lastAdded: undefined,\n    setLastAdded: (lastAdded: ID) => set({ lastAdded }),\n  }));\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Session/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\n\nexport namespace Session {\n  export const getCurrentInput = () =>\n    Generation.Image.Input.get(State.use.getState().currentInputID);\n\n  export const setCurrentInput = (\n    setCurrentInput: Parameters<typeof Generation.Image.Input.set>[1]\n  ) => {\n    const inputID = getCurrentInput()?.id;\n    inputID && Generation.Image.Input.set(inputID, setCurrentInput);\n  };\n\n  export const useCurrentInput = () => {\n    const id = State.use(\n      ({ currentInputID }) => currentInputID,\n      GlobalState.shallow\n    );\n\n    return Generation.Image.Input.use(id);\n  };\n\n  export const useLastInput = () => {\n    const id = State.use(({ previousInputIDs: [lastInputID] }) => lastInputID);\n    return Generation.Image.Input.use(id);\n  };\n\n  export const useInputIDs = () =>\n    State.use(\n      ({ currentInputID, previousInputIDs }) => [\n        currentInputID,\n        ...previousInputIDs,\n      ],\n      GlobalState.shallow\n    );\n\n  export const useReset = () => State.use(({ reset }) => reset);\n\n  export const useImageFilter = () => {\n    const ids = useInputIDs();\n    return useCallback(\n      (image: Generation.Image, invert = false) =>\n        ids.includes(image.inputID) !== invert,\n      [ids]\n    );\n  };\n\n  export const useSetLastStrength = () =>\n    State.use(({ setLastStrength }) => setLastStrength);\n\n  export const useSetInitialImage = () => {\n    const lastStrength = State.use(({ lastStrength }) => lastStrength);\n\n    return useCallback(\n      (image?: string | Generation.Image) => {\n        setCurrentInput((input) => {\n          const src = typeof image === \"string\" ? image : image?.src;\n          if (!src) return;\n\n          input.strength = lastStrength;\n          input.init = {\n            src,\n            mask: false,\n            weight: 1,\n          };\n        });\n      },\n      [lastStrength]\n    );\n  };\n\n  export const useCreateDream = () => {\n    const createGeneration = Generation.Image.Create.use();\n    return useCallback(\n      async (modifiers?: Generation.Image.Input.Modifiers) => {\n        const input = getCurrentInput();\n        if (!input) return;\n\n        State.get().newCurrentInput();\n\n        return createGeneration({ inputID: input.id, modifiers });\n      },\n      [createGeneration]\n    );\n  };\n\n  export const useCreateVariations = (image?: Generation.Image) => {\n    const createDream = useCreateDream();\n\n    return useCallback(async () => {\n      if (!image) return;\n\n      const { currentInputID, lastStrength, setVariationsSourceImage } =\n        State.get();\n\n      const sourceInput = Generation.Image.Input.get(image.inputID);\n      if (!sourceInput) return;\n\n      const prompts = sourceInput.prompts.filter(\n        (prompt) => prompt.text !== \"\"\n      );\n      if (prompts.filter((prompt) => prompt.weight < 0).length <= 0)\n        prompts.push({ text: \"\", weight: -0.75 });\n\n      setVariationsSourceImage(image);\n      Generation.Image.Input.set(currentInputID, () => ({\n        ...sourceInput,\n\n        id: currentInputID,\n        strength: lastStrength,\n\n        prompts,\n        seed: 0,\n\n        ...(image.src && {\n          init: {\n            src: image.src,\n            mask: false,\n            weight: 1,\n          },\n        }),\n      }));\n\n      return createDream();\n    }, [image, createDream]);\n  };\n\n  export const useUpscale = (image?: Generation.Image) => {\n    const createDream = useCreateDream();\n    const [upscaler] = Generation.Image.Upscale.use();\n\n    return useCallback(async () => {\n      if (!image) return;\n\n      const { setVariationsSourceImage } = State.get();\n\n      const sourceInput = Generation.Image.Input.get(image.inputID);\n      if (!sourceInput) return;\n\n      setVariationsSourceImage(image);\n      const upscaleScale = Generation.Image.Upscale.getScale(upscaler);\n\n      return createDream({\n        prompts: sourceInput.prompts.filter((prompt) => prompt.text !== \"\"),\n        strength: 1,\n        width: sourceInput.width * upscaleScale,\n        height: sourceInput.height * upscaleScale,\n        count: 1,\n        model: upscaler,\n        ...(image.src && {\n          init: {\n            src: image.src,\n            mask: false,\n            weight: 1,\n          },\n        }),\n      });\n    }, [image, createDream, upscaler]);\n  };\n}\n\ntype State = {\n  currentInputID: ID;\n  newCurrentInput: () => void;\n\n  previousInputIDs: IDs;\n\n  lastStrength: number;\n  setLastStrength: (lastStrength: number) => void;\n\n  variationsSourceImage?: Generation.Image;\n  setVariationsSourceImage: (image?: Generation.Image) => void;\n\n  reset: () => void;\n};\n\nnamespace State {\n  export const get = () => use.getState();\n\n  export const use = GlobalState.create<State>((set) => {\n    const initial = () => ({\n      currentInputID: ID.create(),\n      newCurrentInput: () => {\n        const newID = ID.create();\n\n        set((state) => {\n          Generation.Image.Inputs.copy(state.currentInputID, newID);\n          return {\n            currentInputID: newID,\n            previousInputIDs: [state.currentInputID, ...state.previousInputIDs],\n          };\n        });\n\n        return { newID };\n      },\n\n      generatingInputID: undefined,\n      previousInputIDs: [],\n\n      lastStrength: 0.35,\n      setLastStrength: (lastStrength: number) => set({ lastStrength }),\n\n      variationsSourceImage: undefined,\n      setVariationsSourceImage: (image?: Generation.Image) =>\n        set({ variationsSourceImage: image }),\n\n      reset: () => set(initial, true),\n    });\n\n    return initial();\n  });\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Sidebar/Advanced.tsx",
    "content": "import { App } from \"~/App\";\nimport { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport function Advanced({\n  id,\n  ...props\n}: App.Sidebar.Section.Props & { id: ID }) {\n  const { setInput, input } = Generation.Image.Input.use(id);\n  const areModelsEnabled = Generation.Image.Models.useAreEnabled();\n  const areSamplersEnabled = Generation.Image.Samplers.useAreEnabled();\n\n  const onPromptStrengthChange = useCallback(\n    (cfgScale: number) => {\n      setInput((input) => {\n        input.cfgScale = cfgScale;\n      });\n    },\n    [setInput]\n  );\n\n  const onStepsChange = useCallback(\n    (steps: number) => {\n      setInput((input) => {\n        input.steps = steps;\n      });\n    },\n    [setInput]\n  );\n\n  const onSeedNumberChange = useCallback(\n    (seed: number) =>\n      setInput((input) => {\n        input.seed = seed;\n      }),\n    [setInput]\n  );\n\n  const onSeedChange = useCallback(\n    (value: string) =>\n      setInput((input) => {\n        if (value === \"\") input.seed = 0;\n      }),\n    [setInput]\n  );\n\n  if (!input) return null;\n  return (\n    <App.Sidebar.Section\n      title=\"Advanced\"\n      divider={false}\n      collapsable\n      icon={(props) =>\n        props.expanded\n          ? (bp) => (\n              <Theme.Icon.EyeOff\n                {...bp}\n                className={classes(bp.className, \"ml-1\")}\n              />\n            )\n          : (bp) => (\n              <Theme.Icon.Eye\n                {...bp}\n                className={classes(bp.className, \"ml-1\")}\n              />\n            )\n      }\n      className={(props) => (!props.expanded ? \"mb-2\" : \"\")}\n      {...props}\n    >\n      <div className=\"flex flex-col gap-4\">\n        <div className=\"grid grid-cols-2 gap-8\">\n          <Theme.Tooltip\n            delay={750}\n            placement=\"right\"\n            content={\n              <h1>\n                Prompt strength determines how much the\n                <br /> final image will portray your prompts.\n              </h1>\n            }\n          >\n            <Theme.NumberInput\n              icon={Theme.Icon.Scale}\n              label=\"Prompt strength\"\n              placeholder=\"Auto\"\n              fullWidth\n              number\n              min={1}\n              step={0.1}\n              max={30}\n              value={input.cfgScale}\n              onNumberChange={onPromptStrengthChange}\n            />\n          </Theme.Tooltip>\n          <Theme.Tooltip\n            delay={750}\n            content={\n              <h1>\n                Generation steps is how many times the image <br /> is sampled.\n                More steps may be more accurate.\n              </h1>\n            }\n            placement=\"right\"\n          >\n            <Theme.NumberInput\n              icon={Theme.Icon.Steps}\n              label=\"Generation steps\"\n              fullWidth\n              number\n              min={10}\n              step={1}\n              max={150}\n              value={input.steps}\n              onNumberChange={onStepsChange}\n            />\n          </Theme.Tooltip>\n        </div>\n        <div className=\"flex flex-col gap-4\">\n          <div className=\"grid grid-cols-2 items-end gap-8\">\n            <Theme.Tooltip\n              delay={750}\n              content={\n                <h1>\n                  Seed determines the initial noise. Using the same seed with\n                  <br /> the same settings will create a very similar image.\n                </h1>\n              }\n              placement=\"right\"\n            >\n              <Theme.NumberInput\n                icon={Theme.Icon.Sprout}\n                placeholder=\"Auto\"\n                label=\"Seed\"\n                fullWidth\n                number\n                min={1}\n                step={1}\n                max={4294967295}\n                value={input.seed !== 0 ? input.seed : \"\"}\n                onChange={onSeedChange}\n                onNumberChange={onSeedNumberChange}\n                iconRight={(props) =>\n                  input.seed !== 0 ? (\n                    <Theme.Tooltip content=\"Clear Seed\">\n                      <Theme.Icon.X\n                        {...props}\n                        className={classes(\n                          props.className,\n                          \"cursor-pointer duration-100 hover:opacity-100\"\n                        )}\n                        onClick={() => onSeedNumberChange(0)}\n                      />\n                    </Theme.Tooltip>\n                  ) : null\n                }\n              />\n            </Theme.Tooltip>\n          </div>\n        </div>\n        {areModelsEnabled && (\n          <div className=\"-mx-2\">\n            <Generation.Image.Model.Dropdown id={id} />\n          </div>\n        )}\n        {areSamplersEnabled && (\n          <div className=\"-mx-2\">\n            <Generation.Image.Sampler.Dropdown id={id} />\n          </div>\n        )}\n      </div>\n    </App.Sidebar.Section>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Sidebar/index.tsx",
    "content": "import { useLocation } from \"react-router-dom\";\nimport { App } from \"~/App\";\nimport { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nimport { Advanced } from \"./Advanced\";\n\nexport function Sidebar() {\n  const { input } = Generation.Image.Session.useCurrentInput();\n  const createDream = Generation.Image.Session.useCreateDream();\n  const location = useLocation();\n\n  if (!input?.id) return null;\n  return (\n    <App.Sidebar.Tab.Set\n      defaultActive\n      name=\"Generate\"\n      route=\"/generate\"\n      position=\"left\"\n      index={0}\n      icon={Theme.Icon.Generate}\n      enabled={\n        location.pathname.startsWith(\"/generate\") ||\n        location.pathname.startsWith(\"/edit\")\n      }\n      bottom={\n        <App.Sidebar.Tab.Bottom>\n          <Generation.Image.Create.Button\n            id={input.id}\n            onIdleClick={() => createDream()}\n            fullWidth\n          />\n        </App.Sidebar.Tab.Bottom>\n      }\n    >\n      <Sidebar.Tab id={input.id} />\n    </App.Sidebar.Tab.Set>\n  );\n}\n\nexport namespace Sidebar {\n  export function Tab({\n    id,\n    variant = \"generate\",\n  }: {\n    id: ID;\n    variant?: \"generate\" | \"editor\";\n  }) {\n    const [settingsOpen, setSettingsOpen] = useState(true);\n    const areStylesEnabled = Generation.Image.Styles.useAreEnabled();\n    return (\n      <>\n        {areStylesEnabled && (\n          <App.Sidebar.Section divider defaultExpanded padding=\"sm\">\n            <div className=\"flex flex-col gap-2\">\n              <Generation.Image.Style.Dropdown id={id} />\n            </div>\n          </App.Sidebar.Section>\n        )}\n        <Generation.Image.Prompt.Sidebar.Section id={id} />\n        {variant === \"generate\" && (\n          <Generation.Image.Input.Image.Sidebar.Section id={id} />\n        )}\n        <App.Sidebar.Section\n          divider={false}\n          collapsable\n          defaultExpanded\n          title=\"Settings\"\n          onChange={setSettingsOpen}\n        >\n          <div className=\"flex flex-col gap-4\">\n            {variant === \"generate\" && <Generation.Image.Size id={id} />}\n            <Generation.Image.Count.Slider />\n          </div>\n        </App.Sidebar.Section>\n        {settingsOpen && <Advanced id={id} />}\n      </>\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Size/Display/index.tsx",
    "content": "import { Size } from \"~/Geometry\";\n\nexport namespace Display {\n  export type Options = Partial<Size> & {\n    scale?: number;\n    preserveAspectRatio?: boolean;\n  };\n\n  export const useStyle = ({\n    scale = 1,\n    height = 512,\n    width = height,\n    preserveAspectRatio,\n  }: Options) =>\n    useMemo(() => {\n      if (preserveAspectRatio) return { aspectRatio: `${width} / ${height}` };\n\n      const ratio = width / height;\n      const scaledHeight = scale * height;\n      const scaledWidth =\n        scale *\n        Math.max(Math.min(height * 2, height * ratio), height * (3 / 5));\n\n      return {\n        width: scaledWidth,\n        height: scaledHeight,\n        flexBasis: scaledWidth,\n        maxWidth: 1.5 * scaledWidth,\n      };\n    }, [scale, width, height, preserveAspectRatio]);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Size/Ratio/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Size } from \"~/Geometry\";\nimport { Theme } from \"~/Theme\";\n\nexport type Ratio = Size & { label?: string };\n\nexport function Ratio({\n  id,\n  fullControl,\n  toggleFullControl,\n}: {\n  id?: ID;\n  advanced?: boolean;\n  fullControl?: boolean;\n  toggleFullControl?: () => void;\n}) {\n  const { input } = Generation.Image.Input.use(id);\n  const { closest, ratios } = Ratios.use(id, fullControl);\n  const [timer, setTimer] = React.useState<NodeJS.Timeout | null>(null);\n  const [forceTooltipOpen, setForceTooltipOpen] = React.useState(false);\n\n  const onChange = useCallback(\n    (index: number) => {\n      if (timer) clearTimeout(timer);\n      if (id) {\n        Generation.Image.Input.set(id, (input) => {\n          const width = ratios[index]?.input.width;\n          const height = ratios[index]?.input.height;\n\n          if (width) input.width = width;\n          if (height) input.height = height;\n        });\n      }\n      setTimer(\n        setTimeout(() => {\n          setTimer(null);\n          setForceTooltipOpen(false);\n        }, 500)\n      );\n      setForceTooltipOpen(true);\n    },\n    [id, ratios, timer]\n  );\n\n  useEffect(() => {\n    onChange(closest?.index ?? 0);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [input?.model]);\n\n  if (!closest || ratios.length <= 1) return null;\n  return (\n    <>\n      <div\n        className=\"flex shrink flex-row items-center justify-between\"\n        onDoubleClick={toggleFullControl}\n      >\n        <div className=\"flex w-1/3 items-center justify-start\">\n          <Theme.Icon.Rectangle className=\"opacity-muted-extra w-[28px]\" />\n        </div>\n        <Theme.Tooltip\n          delay={500}\n          content={`${input?.width} × ${input?.height}`}\n          forceOpen={forceTooltipOpen}\n        >\n          <h1 className=\"select-none\">\n            {closest.width}\n            <span className=\"opacity-muted\"> : </span>\n            {closest.height}\n          </h1>\n        </Theme.Tooltip>\n        <div className=\"flex w-1/3 items-center justify-end\">\n          <Theme.Icon.Rectangle className=\"opacity-muted-extra w-[28px] rotate-90\" />\n        </div>\n      </div>\n      <Theme.Slider\n        noFill\n        max={Math.max(2, ratios.length - 1)}\n        value={ratios.length === 1 ? 1 : closest.index}\n        onChange={onChange}\n        disabled={ratios.length === 1}\n        className={classes(ratios.length === 1 && \"opacity-20\")}\n      />\n    </>\n  );\n}\n\nexport namespace Ratio {\n  export const toSize = ({\n    ratio,\n    bounds,\n    area,\n  }: {\n    ratio: Ratio;\n    bounds: Generation.Image.Size.Bounds;\n    area?: number;\n  }) => {\n    if (!area) {\n      const aspect = ratio.width / ratio.height;\n      const min = bounds.length.min;\n      const width = aspect >= 1 ? Math.max(min, Math.round(min * aspect)) : min;\n      const height = aspect < 1 ? Math.max(min, Math.round(min / aspect)) : min;\n      return { width, height };\n    }\n\n    const width = Math.sqrt(area);\n    const height = Math.sqrt(area);\n\n    const scaleAndRound = (scale: number) => ({\n      width: clamp(\n        bounds.length.min,\n        Math.round(width * scale),\n        bounds.length.max\n      ),\n\n      height: clamp(\n        bounds.length.min,\n        Math.round(height * scale),\n        bounds.length.max\n      ),\n\n      actual: (width * scale) / (height * scale),\n    });\n\n    if (width < bounds.length.min && height < bounds.length.min)\n      return scaleAndRound(\n        Math.min(bounds.length.min / width, bounds.length.min / height)\n      );\n\n    if (width < bounds.length.min)\n      return scaleAndRound(bounds.length.min / width);\n\n    if (height < bounds.length.min)\n      return scaleAndRound(bounds.length.min / height);\n\n    return scaleAndRound(1);\n  };\n}\n\nexport type Ratios = Ratio[];\nexport namespace Ratios {\n  const presets = [\n    { width: 1, height: 1 },\n    { width: 4, height: 3 },\n    { width: 3, height: 2 },\n    { width: 4, height: 5 },\n    { width: 16, height: 9 },\n    { width: 1.85, height: 1 },\n    { width: 7, height: 4 },\n    { width: 2, height: 1 },\n    { width: 3, height: 1 },\n    { width: 4, height: 1 },\n  ] as const;\n\n  export const use = (id?: ID, fullControl = false) => {\n    const { input } = Generation.Image.Input.use(id);\n    const bounds = Generation.Image.Size.Bounds.use(id);\n    const ratios = useMemo(() => {\n      if (!input?.width || !input?.height || !bounds) return [];\n\n      const sizing = (ratio: Ratio) => {\n        return {\n          ...ratio,\n          input: Ratio.toSize({\n            ratio,\n            bounds,\n            ...(fullControl && { area: input.width * input.height }),\n          }),\n        };\n      };\n\n      const ratios = (fullControl ? presets : presets.slice(0, -2))\n        .map(sizing)\n        .filter(({ input }) => input.width * input.height <= bounds.area.max);\n\n      const flipped = ratios.map(({ width, height, input }) => ({\n        width: height,\n        height: width,\n        input: {\n          width: input.height,\n          height: input.width,\n        },\n      }));\n\n      return [...ratios, ...flipped.slice(1)].sort(\n        (a, b) => b.width / b.height - a.width / a.height\n      );\n    }, [fullControl, bounds, input?.width, input?.height]);\n\n    type Closest = Ratio & {\n      index: number;\n      difference: number;\n    };\n\n    const closest = useMemo(() => {\n      if (!input?.width || !input?.height || !ratios[0]) return;\n\n      const actual = input.width / input.height;\n      return ratios.reduce<Closest>(\n        (closest, ratio, index) => {\n          const difference = Math.abs(actual - ratio.width / ratio.height);\n          return difference < closest.difference\n            ? { ...ratio, index, difference }\n            : closest;\n        },\n        { index: 0, difference: Infinity, ...ratios[0] }\n      );\n    }, [ratios, input?.width, input?.height]);\n\n    return { closest, ratios };\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Size/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nimport { Display } from \"./Display\";\nimport { Ratio, Ratios } from \"./Ratio\";\n\nexport function Size({ id }: { id?: ID }) {\n  const [fullControl, setFullControl] = useState(false);\n  const toggleFullControl = useCallback(\n    () => setFullControl((fullControl) => false ?? !fullControl),\n    []\n  );\n\n  const { setInput, input } = Generation.Image.Input.use(id);\n  const bounds = Size.Bounds.use(id);\n\n  const onWidthChange = useCallback(\n    (width: number) => {\n      setInput((input) => {\n        input.width = width;\n      });\n    },\n    [setInput]\n  );\n\n  const onHeightChange = useCallback(\n    (height: number) => {\n      setInput((input) => {\n        input.height = height;\n      });\n    },\n    [setInput]\n  );\n\n  if (!bounds || !input) return null;\n  return (\n    <>\n      <Generation.Image.Size.Ratio\n        id={id}\n        fullControl={fullControl}\n        toggleFullControl={toggleFullControl}\n      />\n\n      <div\n        className={classes(\n          \"hidden grid-cols-2 items-end gap-8\",\n          fullControl && \"grid\"\n        )}\n      >\n        <Theme.Slider\n          title=\"Width\"\n          disabled={bounds.width.max === 0}\n          min={bounds.width.min}\n          value={input.width}\n          max={bounds.width.max}\n          onChange={onWidthChange}\n        />\n        <Theme.Slider\n          title=\"Height\"\n          disabled={bounds.width.max === 0}\n          min={bounds.height.min}\n          value={input.height}\n          max={bounds.height.max}\n          onChange={onHeightChange}\n        />\n      </div>\n    </>\n  );\n}\n\nexport declare namespace Size {\n  export { Display, Ratio, Ratios };\n}\n\nexport namespace Size {\n  Size.Display = Display;\n  Size.Ratio = Ratio;\n  Size.Ratios = Ratios;\n\n  export type Bounds = {\n    length: { min: number; max: number };\n    area: { max: number };\n  };\n\n  export namespace Bounds {\n    export const get = (input: Generation.Image.Input) => {\n      if (!input?.model) return undefined;\n\n      if (input.model.includes(\"xl\")) {\n        return {\n          length: {\n            min: 512,\n            max: 896,\n          },\n\n          area: {\n            max: 512 * 896,\n          },\n\n          ratio: {\n            min: 0.57,\n            max: 1.75,\n          },\n\n          width: {\n            min: 512,\n            max: 896,\n          },\n\n          height: {\n            min: 512,\n            max: 896,\n          },\n        };\n      }\n\n      const maxArea = 1024 * 1024;\n      const maxLength = 2048;\n      const minLength = Generation.Image.Model.StableDiffusionV1.baseResolution(\n        input.model\n      );\n\n      return {\n        length: {\n          min: minLength,\n          max: maxLength,\n        },\n\n        width: {\n          min: minLength,\n          max: maxArea / input.height,\n        },\n\n        height: {\n          min: minLength,\n          max: maxArea / input.width,\n        },\n\n        area: {\n          min: minLength * minLength,\n          max: maxArea,\n        },\n\n        ratio: {\n          min: minLength / maxLength,\n          max: maxLength / minLength,\n        },\n      };\n    };\n\n    export const use = (id?: ID) => {\n      const { input } = Generation.Image.Input.use(id);\n\n      return useMemo(() => input && get(input), [input]);\n    };\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/SpecialEffects/Filter.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\nexport function Filter() {\n  return (\n    <div className=\"pointer-events-none absolute inset-0 flex flex-col items-center justify-center gap-1 bg-black/30\">\n      <Theme.Icon.AlertTriangle className=\"text-red-500\" size={48} />\n      <h1>Image was flagged as inappropriate</h1>\n      <h2 className=\"text-sm opacity-75\">You have not been charged</h2>\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/SpecialEffects/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nimport { Filter } from \"./Filter\";\n\nexport function SpecialEffects({\n  showing,\n  loading,\n  variant,\n  example,\n  onClick,\n  input,\n}: {\n  showing?: boolean;\n  loading?: boolean;\n  variant?: \"editor\" | \"small\";\n  example?: {\n    src: string;\n    prompt: string;\n  };\n  onClick?: () => void;\n  input?: ID;\n  border?: boolean;\n}) {\n  if (!showing) return null;\n  return (\n    <div\n      className={classes(\n        \"pointer-events-none absolute flex h-full w-full items-center justify-center rounded-md border border-zinc-700 opacity-0 duration-150\",\n        (variant !== \"editor\" || loading) && \"bg-zinc-900/50\",\n        (variant === \"editor\" || showing) && \"opacity-100\"\n      )}\n    >\n      {variant === \"editor\" && <Theme.Checkered className=\"-z-[1] bg-fixed\" />}\n      {example && (\n        <>\n          <img\n            className={classes(\n              \"absolute h-full w-full object-cover opacity-25 duration-150\",\n              loading && \"opacity-0\"\n            )}\n            src={example.src}\n          />\n          <div\n            className={classes(\n              \"absolute bottom-0 left-0 right-0 truncate whitespace-nowrap p-3 italic text-white opacity-75 duration-150\",\n              loading && \"opacity-0\"\n            )}\n          >\n            {example.prompt}\n          </div>\n        </>\n      )}\n      {variant !== \"editor\" && (\n        <div className=\"absolute flex h-full w-full items-center justify-center\">\n          {onClick && example && !loading && input ? (\n            <Generation.Image.Create.Button\n              id={input}\n              icon={Theme.Icon.Dream}\n              onIdleClick={onClick}\n              className=\"pointer-events-auto\"\n            >\n              Try template\n            </Generation.Image.Create.Button>\n          ) : (\n            <Theme.Logo\n              className={classes(\n                \"absolute h-12 w-12 opacity-50 duration-150\",\n                loading && \"opacity-0\",\n                variant === \"small\" && \"h-8 w-8\"\n              )}\n            />\n          )}\n        </div>\n      )}\n      <div className=\"absolute flex h-full w-full items-center justify-center\">\n        {loading && (\n          <Theme.Loading.Spinner\n            className={classes(\n              variant === \"small\" ? \"h-1/2 w-1/2\" : \"h-10 w-10\"\n            )}\n          />\n        )}\n      </div>\n    </div>\n  );\n}\n\nexport declare namespace SpecialEffects {\n  export { Filter };\n}\n\nexport namespace SpecialEffects {\n  SpecialEffects.Filter = Filter;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Style/Styles.tsx",
    "content": "import * as ReactQuery from \"@tanstack/react-query\";\n\nimport { Generation } from \"~/Generation\";\nimport { Plugin } from \"~/Plugin\";\n\nexport type Styles = Generation.Image.Style[];\nexport namespace Styles {\n  export const use = () => {\n    const getStableDiffusionStyles = Plugin.use(\n      ({ getStableDiffusionStyles }) => getStableDiffusionStyles\n    );\n\n    return ReactQuery.useQuery({\n      enabled: !!getStableDiffusionStyles,\n\n      queryKey: [\"Generation.Image.Styles.use\"],\n      queryFn: async () => (await getStableDiffusionStyles?.()) ?? [],\n    });\n  };\n\n  export const useAreEnabled = () =>\n    Plugin.use(({ getStableDiffusionStyles }) => !!getStableDiffusionStyles);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Style/index.tsx",
    "content": "import * as StableStudio from \"@stability/stablestudio-plugin\";\n\nimport { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport * from \"./Styles\";\n\nexport type Style = StableStudio.StableDiffusionStyle;\nexport namespace Style {\n  export const apply = ({\n    input,\n    styleID,\n  }: {\n    input: Generation.Image.Input;\n    styleID?: ID;\n  }): Generation.Image.Input => ({\n    ...input,\n    extras: {\n      ...input.extras,\n      $IPC: styleID ? { preset: styleID } : undefined,\n    },\n  });\n\n  export const isApplied = ({\n    input,\n    preset,\n  }: {\n    input: Generation.Image.Input;\n    preset: Style;\n  }) => (input.extras?.$IPC?.preset ?? \"none\") === preset.id;\n\n  export const useFromID = (id?: ID) => {\n    const { data: styles } = Generation.Image.Styles.use();\n    return id ? styles?.find((style) => style.id === id) : undefined;\n  };\n\n  export function Dropdown({ className, id }: Styleable & { id: ID }) {\n    const { data: styles } = Generation.Image.Styles.use();\n    const { input, setInput } = Generation.Image.Input.use(id);\n    const options = useMemo(\n      () => [\n        {\n          value: \"none\",\n          name: \"Choose style\",\n        },\n\n        ...(styles?.map((style: Style) => ({\n          value: style.id,\n          name: style.name,\n          image: style.image,\n        })) ?? []),\n      ],\n      [styles]\n    );\n\n    return (\n      <Theme.Popout\n        title=\"Styles\"\n        label=\"Style\"\n        options={options}\n        value={input?.extras?.$IPC?.preset}\n        placeholder={\"Choose style\"}\n        className={classes(className)}\n        onClick={(value) =>\n          setInput((input) => apply({ input, styleID: value }))\n        }\n      />\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/TopBar/index.tsx",
    "content": "export function TopBar() {\n  return null;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Upscale/Upscales/Create.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Create {\n  export function Button(props: Generation.Image.Create.Button.Props) {\n    return (\n      <Theme.Tooltip\n        placement=\"top\"\n        content={\n          <div className=\"-mr-1 flex flex-row items-center gap-2\">\n            <p>Upscale image</p>\n          </div>\n        }\n      >\n        <Generation.Image.Create.Button\n          {...props}\n          noBadge\n          size=\"md\"\n          icon={Theme.Icon.Upscale}\n          noTitle\n        />\n      </Theme.Tooltip>\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Upscale/Upscales/index.tsx",
    "content": "import { Create } from \"./Create\";\n\nexport declare namespace Upscales {\n  export { Create };\n}\n\nexport namespace Upscales {\n  Upscales.Create = Create;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Upscale/index.tsx",
    "content": "export * from \"./Upscales\";\n\nimport { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\n\nexport type Upscaler = (typeof Generation.Image.Input.upscaleEngines)[number];\n\nexport namespace Upscale {\n  export const preset = () => \"esrgan-v1-x2plus\" as Upscaler;\n\n  export const getScale = (upscaler: Upscaler) => {\n    if (upscaler.includes(\"x2\")) return 2;\n    if (upscaler.includes(\"x4\")) return 4;\n    if (upscaler.includes(\"x8\")) return 8;\n    return 1;\n  };\n\n  export const get = (): Upscaler => store.getState().upscaler;\n  export const set = (upscaler: Upscaler) =>\n    store.getState().setUpscaler(upscaler);\n\n  export const use = () =>\n    store(\n      ({ upscaler, setUpscaler }) => [upscaler, setUpscaler] as const,\n      GlobalState.shallow\n    );\n}\n\nconst store = GlobalState.create<{\n  upscaler: Upscaler;\n  setUpscaler: (upscaler: Upscaler) => void;\n}>((set) => ({\n  upscaler: Upscale.preset(),\n  setUpscaler: (upscaler) => set({ upscaler }),\n}));\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Variation/Variations/Create.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nexport namespace Create {\n  export function Button(props: Generation.Image.Create.Button.Props) {\n    return (\n      <div className=\"pointer-events-auto mr-auto flex flex-row items-center gap-1\">\n        <Theme.Tooltip\n          placement=\"top\"\n          content={\n            <div className=\"-mr-1 flex flex-row items-center gap-2\">\n              <p>Generate variations</p>\n            </div>\n          }\n        >\n          <Generation.Image.Create.Button\n            {...props}\n            noBadge\n            size=\"md\"\n            icon={Theme.Icon.Variation}\n          >\n            {!props.noTitle && <>Variations</>}\n          </Generation.Image.Create.Button>\n        </Theme.Tooltip>\n      </div>\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Variation/Variations/index.tsx",
    "content": "import { Create } from \"./Create\";\n\nexport declare namespace Variations {\n  export { Create };\n}\n\nexport namespace Variations {\n  Variations.Create = Create;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/Variation/index.tsx",
    "content": "export * from \"./Variations\";\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/Image/index.tsx",
    "content": "import { Generation } from \"~/Generation\";\nimport { Theme } from \"~/Theme\";\n\nimport { ClipBoard } from \"./ClipBoard\";\nimport { Controls } from \"./Controls\";\nimport { Count } from \"./Count\";\nimport { Create } from \"./Create\";\nimport { Download } from \"./Download\";\nimport { Exception } from \"./Exception\";\nimport { HTMLElement } from \"./HTMLElement\";\nimport { Images } from \"./Images\";\nimport { Input, Inputs } from \"./Input\";\nimport { Modal } from \"./Modal\";\nimport { Model, Models } from \"./Model\";\nimport { Output, Outputs } from \"./Output\";\nimport { Prompt, Prompts } from \"./Prompt\";\nimport { Sampler, Samplers } from \"./Sampler\";\nimport { Search } from \"./Search\";\nimport { Session } from \"./Session\";\nimport { Sidebar } from \"./Sidebar\";\nimport { Size } from \"./Size\";\nimport { SpecialEffects } from \"./SpecialEffects\";\nimport { Style, Styles } from \"./Style\";\nimport { TopBar } from \"./TopBar\";\nimport { Upscale, Upscales } from \"./Upscale\";\nimport { Variations } from \"./Variation\";\n\nexport * from \"./Images\";\n\nexport type Image = {\n  id: ID;\n  inputID: ID;\n  created?: Date;\n  src?: string;\n  finishReason?: number;\n};\n\ntype Props = Styleable &\n  Size.Display.Options & {\n    image?: Partial<Generation.Image>;\n    example?: Generation.Image.Prompt.Examples.Example;\n    hideControls?: boolean;\n    placeholder?: boolean;\n\n    onClick?: () => void;\n    onDelete?: () => void;\n  };\n\nexport function Image({\n  image,\n  // example,\n  hideControls,\n  placeholder,\n\n  scale,\n  preserveAspectRatio,\n\n  width,\n  height,\n\n  onClick: propsOnClick,\n\n  className,\n}: Props) {\n  const { input } = Input.use(image?.inputID);\n  // const { input: currentInput } = Generation.Image.Session.useCurrentInput();\n  // const create = Generation.Image.Create.use();\n\n  const style = Size.Display.useStyle({\n    scale,\n    preserveAspectRatio,\n\n    width: width ?? input?.width,\n    height: height ?? input?.height,\n  });\n\n  const src =\n    image?.src &&\n    (style.width && style.height\n      ? Image.cropped(image.src, style.width, style.height)\n      : image.src);\n\n  const [isElementRendering, setIsElementRendering] = useState(true);\n\n  const isGenerating = !src;\n  const shouldShowSpecialEffects = placeholder || isGenerating;\n\n  const isUpscaled = useMemo(\n    () => input && Generation.Image.Input.isUpscaling(input),\n    [input]\n  );\n\n  useEffect(() => setIsElementRendering(true), [image?.src]);\n\n  const openModal = Generation.Images.Modal.useOpen();\n  const onClick = useCallback(() => {\n    propsOnClick?.();\n    !isElementRendering && !!image?.id && openModal(image as Generation.Image);\n  }, [propsOnClick, image, isElementRendering, openModal]);\n\n  const element = useMemo(\n    () =>\n      image?.id && (\n        <div className=\"absolute h-full w-full\">\n          <HTMLElement\n            src={src}\n            image={image as Generation.Image}\n            onClick={onClick}\n            onLoadingChange={setIsElementRendering}\n          />\n          {isUpscaled && (\n            <div className=\"absolute bottom-3 left-3 flex items-end justify-end\">\n              <Theme.Badge className=\"bg-zinc-800/50 backdrop-blur-md\">\n                Upscaled {input?.width}x{input?.height}\n              </Theme.Badge>\n            </div>\n          )}\n        </div>\n      ),\n    [image, src, onClick, isUpscaled, input?.width, input?.height]\n  );\n\n  const controls = useMemo(\n    () =>\n      image?.id &&\n      !isElementRendering &&\n      !hideControls && <Controls image={image as Generation.Image} />,\n    [image, isElementRendering, hideControls]\n  );\n\n  // const onTryTemplate = useCallback(() => {\n  //   if (!currentInput || !example) return;\n\n  //   Generation.Image.Session.setCurrentInput((currentInput) => ({\n  //     ...currentInput,\n  //     prompts: [\n  //       {\n  //         text: example?.prompt,\n  //         weight: 1,\n  //       },\n  //       {\n  //         text: \"\",\n  //         weight: -0.75,\n  //       },\n  //     ],\n  //   }));\n\n  //   create({\n  //     inputID: currentInput.id,\n  //   });\n  // }, [currentInput, example, create]);\n\n  const specialEffects = useMemo(\n    () => (\n      <Image.SpecialEffects\n        showing={shouldShowSpecialEffects}\n        loading={!placeholder && shouldShowSpecialEffects}\n        variant={(style.height ?? 512) < 48 ? \"small\" : undefined}\n        // example={example}\n        // onClick={example ? onTryTemplate : undefined}\n        // input={currentInput?.id}\n      />\n    ),\n    [placeholder, shouldShowSpecialEffects, style.height]\n  );\n\n  return useMemo(\n    () => (\n      <div\n        style={style}\n        className={classes(\n          \"group relative shrink grow overflow-hidden rounded bg-zinc-900\",\n          className\n        )}\n      >\n        <div\n          className={classes(\n            \"group relative h-full w-full overflow-hidden rounded-md shadow-md\",\n            !isElementRendering && \"cursor-pointer\",\n            className\n          )}\n        >\n          {element}\n          {controls}\n          {specialEffects}\n        </div>\n      </div>\n    ),\n    [style, className, isElementRendering, element, controls, specialEffects]\n  );\n}\n\nexport declare namespace Image {\n  export {\n    ClipBoard,\n    Controls,\n    Count,\n    Create,\n    Download,\n    HTMLElement,\n    Input,\n    Inputs,\n    Modal,\n    Model,\n    Models,\n    Output,\n    Outputs,\n    Style,\n    Styles,\n    Prompt,\n    Prompts,\n    Sampler,\n    Samplers,\n    Search,\n    Session,\n    Sidebar,\n    Size,\n    SpecialEffects,\n    TopBar,\n    Variations,\n    Upscales,\n    Upscale,\n    Exception,\n  };\n}\n\nexport namespace Image {\n  Image.ClipBoard = ClipBoard;\n  Image.Controls = Controls;\n  Image.Count = Count;\n  Image.Create = Create;\n  Image.Download = Download;\n  Image.HTMLElement = HTMLElement;\n  Image.Input = Input;\n  Image.Inputs = Inputs;\n  Image.Modal = Modal;\n  Image.Model = Model;\n  Image.Models = Models;\n  Image.Output = Output;\n  Image.Outputs = Outputs;\n  Image.Style = Style;\n  Image.Styles = Styles;\n  Image.Prompt = Prompt;\n  Image.Prompts = Prompts;\n  Image.Sampler = Sampler;\n  Image.Samplers = Samplers;\n  Image.Search = Search;\n  Image.Session = Session;\n  Image.Sidebar = Sidebar;\n  Image.Size = Size;\n  Image.SpecialEffects = SpecialEffects;\n  Image.TopBar = TopBar;\n  Image.Variations = Variations;\n  Image.Upscales = Upscales;\n  Image.Upscale = Upscale;\n  Image.Exception = Exception;\n\n  export const get = (id: ID): Image | undefined =>\n    Images.State.use(({ images }) => images[id]);\n\n  export const add = (image: Image) => Images.add([image]);\n\n  export const cropped = (src: string, width: number, height: number): string =>\n    src.startsWith(\"blob:\")\n      ? src\n      : `${src}?resize&width=${width}&height=${height}&fit=cover`;\n\n  export const blob = async (image: Generation.Image) => {\n    const src = image?.src;\n    if (!src) return;\n\n    const response = await fetch(src);\n    return response.blob();\n  };\n\n  export const blobURL = async (image: Generation.Image) => {\n    const blob = await Image.blob(image);\n    return blob && URL.createObjectURL(blob);\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Generation/index.tsx",
    "content": "import { Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nimport { Image, Images } from \"./Image\";\n\nexport function Generation() {\n  const createDream = Generation.Image.Session.useCreateDream();\n\n  Shortcut.use(\n    useMemo(\n      () => ({\n        name: [\"Generate\"],\n        keys: [\"Meta\", \"Enter\"],\n        icon: Theme.Icon.Wand,\n        action: () => createDream(),\n        options: {\n          ignoredElementWhitelist: [\"INPUT\", \"TEXTAREA\"],\n        },\n      }),\n      [createDream]\n    )\n  );\n\n  return (\n    <>\n      <Generation.Image.TopBar />\n      <Generation.Image.Modal />\n      <Generation.Image.Download.Modal />\n      <div className=\"relative z-[1] flex h-full grow flex-col overflow-hidden bg-zinc-800\">\n        <Generation.Images />\n      </div>\n    </>\n  );\n}\n\nexport declare namespace Generation {\n  export { Image, Images };\n}\n\nexport namespace Generation {\n  Generation.Image = Image;\n  Generation.Images = Images;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Geometry/Box/index.tsx",
    "content": "import { Point, Size } from \"~/Geometry\";\n\nexport type Box = Point & Size;\nexport namespace Box {\n  export const center = (box: Box): Point => ({\n    x: box.x + box.width / 2,\n    y: box.y + box.height / 2,\n  });\n}\n\nexport type Boxes = Box[];\nexport namespace Boxes {\n  export const surroundingBox = (boxes: Box[]): Box | undefined =>\n    boxes.reduce<Box | undefined>((surroundingBox, box) => {\n      if (!surroundingBox) return box;\n\n      const { x, y } = Point.min(surroundingBox, box);\n\n      const width =\n        Math.max(box.x + box.width, surroundingBox.x + surroundingBox.width) -\n        x;\n\n      const height =\n        Math.max(box.y + box.height, surroundingBox.y + surroundingBox.height) -\n        y;\n\n      return { x, y, width, height };\n    }, undefined);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Geometry/Point/index.tsx",
    "content": "export type Point = { x: number; y: number };\nexport namespace Point {\n  export const min = (a: Point, b: Point): Point => ({\n    x: Math.min(a.x, b.x),\n    y: Math.min(a.y, b.y),\n  });\n\n  export const max = (a: Point, b: Point): Point => ({\n    x: Math.max(a.x, b.x),\n    y: Math.max(a.y, b.y),\n  });\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Geometry/Size/index.tsx",
    "content": "export type Size = { width: number; height: number };\nexport namespace Size {\n  export const min = (a: Size, b: Size): Size => ({\n    width: Math.min(a.width, b.width),\n    height: Math.min(a.height, b.height),\n  });\n\n  export const max = (a: Size, b: Size): Size => ({\n    width: Math.max(a.width, b.width),\n    height: Math.max(a.height, b.height),\n  });\n\n  export type Clamp = { min?: Size; max?: Size };\n  export namespace Clamp {\n    export const apply = (size: Size, clamp?: Clamp): Size =>\n      min(\n        max(size, clamp?.min ?? { width: 0, height: 0 }),\n        clamp?.max ?? { width: Infinity, height: Infinity }\n      );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Geometry/index.ts",
    "content": "export * from \"./Box\";\nexport * from \"./Point\";\nexport * from \"./Size\";\n"
  },
  {
    "path": "packages/stablestudio-ui/src/GlobalState/index.ts",
    "content": "import {\n  StoreApi,\n  UseBoundStore,\n  create as zustandDefault,\n  useStore as zustandUseStore,\n} from \"zustand\";\n\nimport { shallow as zustandShallow } from \"zustand/shallow\";\n\nexport type GlobalState<A> = UseBoundStore<StoreApi<A>>;\nexport namespace GlobalState {\n  export type Store<State> = StoreApi<State>;\n  export type Selector<State, Selection> = (\n    state: ExtractState<State>\n  ) => Selection;\n\n  type ExtractState<S> = S extends { getState: () => infer T } ? T : never;\n\n  export const create = zustandDefault;\n  export const shallow = zustandShallow;\n\n  export const useStore = zustandUseStore;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/GlobalVariables/index.ts",
    "content": "/* eslint-disable */\n\nimport { Buffer } from \"buffer\";\n\nimport { cx } from \"@emotion/css\";\nimport { css as cssImport } from \"@emotion/react\";\nimport immer, { Draft } from \"immer\";\nimport { default as throttle_ } from \"lodash.throttle\";\nimport ReactImport from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\ndeclare global {\n  type CSSValue = string;\n\n  type Styleable = { className?: string };\n  type StyleableWithChildren = Styleable & React.PropsWithChildren;\n\n  type URLString = string;\n  type Mutable<T> = Draft<T>;\n\n  type ID = string;\n  type IDs = ID[];\n\n  var ID: typeof IDNamespace;\n\n  var React: typeof ReactImport;\n  var useState: typeof ReactImport.useState;\n  var useMemo: typeof ReactImport.useMemo;\n  var useCallback: typeof ReactImport.useCallback;\n  var useEffect: typeof ReactImport.useEffect;\n  var useRef: typeof ReactImport.useRef;\n  var useReducer: typeof ReactImport.useReducer;\n  var useContext: typeof ReactImport.useContext;\n  var useLayoutEffect: typeof ReactImport.useLayoutEffect;\n  var useDebugValue: typeof ReactImport.useDebugValue;\n\n  var keys: (...keys: (string | number | undefined)[]) => string;\n  var css: typeof cssImport;\n  var classes: typeof cx;\n\n  var spy: <A>(a: A) => A;\n  var spyJSON: <A>(a: A) => A;\n  var doNothing: (...args: unknown[]) => void;\n  var clamp: (min: number, value: number, max: number) => number;\n  var copy: typeof immer;\n  var throttle: typeof throttle_;\n  var toJSON: (value: unknown) => string;\n}\n\nnamespace IDNamespace {\n  export const create = (): ID =>\n    \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n      const r = (Math.random() * 16) | 0,\n        v = c == \"x\" ? r : (r & 0x3) | 0x8;\n\n      return v.toString(16);\n    });\n}\n\nglobalThis.ID = IDNamespace;\n\nglobalThis.Buffer = Buffer;\n\nglobalThis.React = ReactImport;\nglobalThis.useState = ReactImport.useState;\nglobalThis.useMemo = ReactImport.useMemo;\nglobalThis.useCallback = ReactImport.useCallback;\nglobalThis.useEffect = ReactImport.useEffect;\nglobalThis.useRef = ReactImport.useRef;\nglobalThis.useReducer = ReactImport.useReducer;\nglobalThis.useContext = ReactImport.useContext;\nglobalThis.useLayoutEffect = ReactImport.useLayoutEffect;\nglobalThis.useDebugValue = ReactImport.useDebugValue;\n\nglobalThis.keys = function (...keys) {\n  return keys.map((key) => `${key}`).join(\".\");\n};\n\nglobalThis.css = cssImport;\nglobalThis.classes = function (...classes) {\n  return twMerge(cx(...classes));\n};\n\nglobalThis.spy = function (a) {\n  console.log(a);\n  return a;\n};\n\nglobalThis.spyJSON = function (a) {\n  console.log(JSON.stringify(a, null, 2));\n  return a;\n};\n\nglobalThis.doNothing = () => {};\nglobalThis.clamp = function (min, value, max) {\n  return Math.min(Math.max(min, value), max);\n};\n\nglobalThis.copy = immer;\nglobalThis.throttle = throttle_;\n\nglobalThis.toJSON = function (value) {\n  try {\n    return JSON.stringify(value, null, 2);\n  } catch (ignored) {\n    return `{ \"message\": \"Failed to parse JSON: \\`${value}\\`\" }`;\n  }\n};\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Markdown/index.tsx",
    "content": "/* eslint-disable react/no-children-prop */\nimport ReactMarkdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\n\nexport function Markdown({ text, className }: Styleable & { text: string }) {\n  return (\n    <span className={classes(\"prose dark:prose-invert\", className)}>\n      <ReactMarkdown children={text} remarkPlugins={[remarkGfm]} />\n    </span>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Plugin/index.tsx",
    "content": "import * as StableStudio from \"@stability/stablestudio-plugin\";\nimport * as StableStudioPluginExample from \"@stability/stablestudio-plugin-example\";\nimport * as StableStudioPluginStability from \"@stability/stablestudio-plugin-stability\";\nimport * as StableStudioPluginWebUI from \"@stability/stablestudio-plugin-webui\";\n\nimport { Environment } from \"~/Environment\";\nimport { Generation } from \"~/Generation\";\nimport { GlobalState } from \"~/GlobalState\";\n\nexport type Plugin = StableStudio.Plugin;\nexport namespace Plugin {\n  export const get = () => {\n    const { rootPlugin, activePluginID, plugins } = State.use.getState();\n    const activePlugin = !!activePluginID\n      ? plugins[activePluginID]?.plugin\n      : rootPlugin;\n\n    return activePlugin.getState();\n  };\n\n  export function use<Selection = State>(\n    selector: (state: Plugin) => Selection = (state) => state as Selection\n  ) {\n    const plugin = State.use(({ rootPlugin, activePluginID, plugins }) =>\n      activePluginID && plugins[activePluginID]?.plugin\n        ? plugins[activePluginID].plugin\n        : rootPlugin\n    );\n\n    return GlobalState.useStore(plugin, selector);\n  }\n\n  export const useUnload = () =>\n    useCallback((id: ID) => {\n      State.use.getState().setPlugins(({ [id]: _, ...plugins }) => plugins);\n      State.use.getState().setActivePluginID();\n    }, []);\n\n  export const useSetup = () => {\n    const [error, setError] = useState<Error | undefined>(undefined);\n    const [isLoading, setIsLoading] = useState(false);\n\n    const loadFromURL = useCallback(async (url: URLString) => {\n      try {\n        setIsLoading(true);\n\n        const pluginModule = await import(\n          /* @vite-ignore */\n          url\n        );\n\n        const plugin = pluginModule.createPlugin({\n          getGitHash: () => Environment.get(\"GIT_HASH\"),\n          getStableDiffusionRandomPrompt: () =>\n            Generation.Image.Prompt.Random.get(),\n        });\n\n        const id = ID.create();\n\n        State.use.getState().setPlugins((plugins) => ({\n          ...plugins,\n          [id]: {\n            enabled: true,\n            index: Object.keys(plugins).length,\n            plugin,\n          },\n        }));\n\n        State.use.getState().setActivePluginID(id);\n\n        setIsLoading(false);\n\n        return plugin;\n      } catch (error: unknown) {\n        setIsLoading(false);\n        setError(\n          error instanceof Error ? error : new Error(\"Failed to load plugin\")\n        );\n\n        return undefined;\n      }\n    }, []);\n\n    return {\n      error,\n      setError,\n      isLoading,\n\n      loadFromURL,\n      getFromURL: doNothing,\n    };\n  };\n}\n\ntype State = {\n  rootPlugin: GlobalState.Store<StableStudio.Plugin>;\n\n  activePluginID?: ID;\n  setActivePluginID: (id?: ID) => void;\n\n  plugins: State.Plugins;\n  setPlugins: (\n    setPlugins: State.Plugins | React.SetStateAction<State.Plugins>\n  ) => void;\n};\n\nnamespace State {\n  export type Plugins = { [id: ID]: Plugin };\n  export type Plugin = {\n    enabled: boolean;\n    index: number;\n    plugin: GlobalState.Store<StableStudio.Plugin>;\n  };\n\n  export const use = GlobalState.create<State>((set) => {\n    const { createPlugin: createRootPlugin } =\n      Environment.get(\"USE_EXAMPLE_PLUGIN\") === \"true\"\n        ? StableStudioPluginExample\n        : Environment.get(\"USE_WEBUI_PLUGIN\") === \"true\"\n        ? StableStudioPluginWebUI\n        : StableStudioPluginStability;\n\n    return {\n      rootPlugin: createRootPlugin({\n        getGitHash: () => Environment.get(\"GIT_HASH\"),\n        getStableDiffusionRandomPrompt: () =>\n          Generation.Image.Prompt.Random.get(),\n      }) as unknown as GlobalState.Store<StableStudio.Plugin>,\n\n      setActivePluginID: (activePluginID) => set({ activePluginID }),\n\n      plugins: {},\n      setPlugins: (setPlugins) =>\n        typeof setPlugins === \"function\"\n          ? set(({ plugins }) => ({ plugins: setPlugins(plugins) }))\n          : set({ plugins: setPlugins }),\n    };\n  });\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Remote/Client.ts",
    "content": "import * as ReactQuery from \"@tanstack/react-query\";\n\nlet client: Client;\n\nexport type Client = ReactQuery.QueryClient;\nexport namespace Client {\n  export const get = () => client;\n\n  export const create = () =>\n    (client ||= new ReactQuery.QueryClient({\n      defaultOptions: {\n        mutations: { cacheTime: 0 },\n        queries: {\n          cacheTime: 24 * 60 * 60 * 1000,\n          refetchOnWindowFocus: false,\n          retry: 1,\n        },\n      },\n    }));\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Remote/Provider.tsx",
    "content": "import * as ReactQuery from \"@tanstack/react-query\";\nimport { ReactQueryDevtools } from \"@tanstack/react-query-devtools\";\n\nimport { Remote } from \"~/Remote\";\n\nexport const Provider = ({ children }: React.PropsWithChildren) => (\n  <ReactQuery.QueryClientProvider\n    client={useMemo(() => Remote.Client.create(), [])}\n  >\n    {false && <ReactQueryDevtools />}\n    {children}\n  </ReactQuery.QueryClientProvider>\n);\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Remote/index.ts",
    "content": "import { Client } from \"./Client\";\nimport { Provider } from \"./Provider\";\n\nexport declare namespace Remote {\n  export { Client, Provider };\n}\n\nexport namespace Remote {\n  Remote.Client = Client;\n  Remote.Provider = Provider;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Router/index.tsx",
    "content": "import * as ReactRouter from \"react-router-dom\";\n\nimport { Editor } from \"~/Editor\";\nimport { Generation } from \"~/Generation\";\nimport { Plugin } from \"~/Plugin\";\nimport { Settings } from \"~/Settings\";\n\nexport function Router() {\n  const navigate = Router.useNavigate();\n  const settings = Plugin.use(({ settings }) => settings ?? {});\n\n  useEffect(() => {\n    const isMissingRequiredSetting = Object.entries(settings).find(\n      ([, setting]) => (setting as any).required && !(setting as any).value\n    );\n\n    isMissingRequiredSetting && navigate(\"/settings\");\n  }, [navigate, settings]);\n\n  return <Router.Routes />;\n}\n\nexport namespace Router {\n  export type Route = string;\n\n  export function Routes() {\n    return ReactRouter.useRoutes(\n      Routes.use() as Mutable<ReturnType<typeof Routes.use>>\n    );\n  }\n\n  export namespace Routes {\n    export function use() {\n      return useMemo(\n        () =>\n          [\n            {\n              path: \"/generate\",\n              element: <Generation />,\n            },\n            {\n              path: \"/edit\",\n              element: <Editor />,\n            },\n            {\n              path: \"/settings\",\n              element: <Settings />,\n            },\n            {\n              path: \"*\",\n              element: <ReactRouter.Navigate to={`/generate`} replace />,\n            },\n          ] as const,\n        []\n      );\n    }\n  }\n\n  export const useNavigate = ReactRouter.useNavigate;\n  export const useLocation = ReactRouter.useLocation;\n\n  export const Provider = ReactRouter.BrowserRouter;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Settings/Install.tsx",
    "content": "import { Plugin } from \"~/Plugin\";\nimport { Theme } from \"~/Theme\";\n\nimport { Panel } from \"./Panel\";\n\nexport function Install({\n  installPlugin,\n}: {\n  installPlugin: (url: string) => void;\n}) {\n  const pluginSetup = Plugin.useSetup();\n  const [url, setURL] = useState(\"\");\n  return (\n    <Panel className=\"flex flex-col gap-3\">\n      <h1 className=\"text-2xl\">Install untrusted plugin</h1>\n      <p className=\"-mt-2 flex items-center gap-2 text-red-500\">\n        <Theme.Icon.AlertTriangle className=\"h-5 w-5\" />\n        Do not install plugins from untrusted sources!\n      </p>\n      <div className=\"flex items-center gap-2\">\n        <Theme.Input\n          value={url}\n          onChange={setURL}\n          onKeyDown={(event) => event.key === \"Enter\" && installPlugin(url)}\n          loading={pluginSetup.isLoading}\n          placeholder=\"http://localhost:3000/CoolExamplePlugin.js\"\n        />\n        <Theme.Button\n          color=\"brand\"\n          className=\"h-[31px]\"\n          onClick={() => installPlugin(url)}\n          loading={pluginSetup.isLoading}\n          disabled={!url}\n        >\n          Load\n        </Theme.Button>\n      </div>\n      <p className=\"text-muted text-sm\">\n        Enter a URL which points to a valid&nbsp;\n        <a\n          className=\"text-brand-300 hover:underline\"\n          href=\"https://github.com/Stability-AI/StableStudio/blob/main/packages/stablestudio-plugin/README.md\"\n          target=\"_blank\"\n          rel=\"noreferrer\"\n        >\n          StableStudio plugin\n        </a>\n        .\n      </p>\n    </Panel>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Settings/Manifest.tsx",
    "content": "import {\n  PluginManifest,\n  PluginSettings,\n  PluginStatus,\n} from \"@stability/stablestudio-plugin\";\nimport { Markdown } from \"~/Markdown\";\n\nimport { Plugin } from \"~/Plugin\";\nimport { Theme } from \"~/Theme\";\n\nimport { Panel } from \"./Panel\";\nimport { Setting } from \"./Setting\";\n\nexport function Manifest({\n  id,\n  manifest,\n  pluginStatus,\n  settings,\n  setSetting,\n}: {\n  id?: ID;\n  manifest?: PluginManifest;\n  pluginStatus?: PluginStatus;\n  settings: PluginSettings;\n  setSetting: (key: string, value: any) => void;\n}) {\n  const unloadPlugin = Plugin.useUnload();\n  return (\n    <Panel className=\"flex flex-col gap-2\">\n      <div className=\"flex flex-col\">\n        <div className=\"mb-4\">\n          <div className=\"flex items-start justify-between\">\n            <div className=\"flex items-center gap-4\">\n              {manifest?.icon && (\n                <img\n                  src={manifest.icon}\n                  className=\"aspect-square h-7 w-7 shrink-0 rounded-lg object-cover\"\n                  alt=\"Plugin icon\"\n                />\n              )}\n              {manifest?.link ? (\n                <a\n                  href={manifest.link}\n                  className=\"text-2xl hover:underline\"\n                  target={\"_blank\"}\n                  rel=\"noreferrer\"\n                >\n                  {manifest.name ?? \"Unnamed\"}\n                </a>\n              ) : (\n                <h1 className=\"text-2xl\">{manifest?.name ?? \"Unnamed\"}</h1>\n              )}\n              {pluginStatus && (\n                <div className=\"flex items-center gap-1\">\n                  {pluginStatus.indicator === \"error\" && (\n                    <Theme.Icon.AlertCircle className=\"h-5 w-5 text-red-500\" />\n                  )}\n                  {pluginStatus.indicator === \"warning\" && (\n                    <Theme.Icon.AlertTriangle className=\"h-5 w-5 text-yellow-500\" />\n                  )}\n                  {pluginStatus.indicator === \"success\" && (\n                    <Theme.Icon.Check className=\"h-5 w-5 text-green-500\" />\n                  )}\n                  {pluginStatus.indicator === \"info\" && (\n                    <Theme.Icon.Info className=\"h-5 w-5 text-blue-500\" />\n                  )}\n                  {pluginStatus.indicator === \"loading\" && (\n                    <Theme.Icon.RefreshClockwise className=\"h-5 w-5 animate-spin text-blue-500\" />\n                  )}\n                  <span\n                    className={classes(\n                      \"text-sm\",\n                      pluginStatus.indicator === \"error\" && \"text-red-500\",\n                      pluginStatus.indicator === \"warning\" && \"text-yellow-500\",\n                      pluginStatus.indicator === \"success\" && \"text-green-500\",\n                      pluginStatus.indicator === \"info\" && \"text-blue-500\",\n                      pluginStatus.indicator === \"loading\" && \"text-blue-500\"\n                    )}\n                  >\n                    {pluginStatus.text}\n                  </span>\n                </div>\n              )}\n            </div>\n            {id && unloadPlugin && (\n              <Theme.Button\n                className=\"h-18\"\n                icon={Theme.Icon.Trash}\n                onClick={() => id && unloadPlugin(id)}\n              >\n                Uninstall\n              </Theme.Button>\n            )}\n          </div>\n          <div className=\"mt-2 flex gap-5\">\n            {manifest?.version && (\n              <MiniManifestField label=\"Version\" value={manifest.version} />\n            )}\n            <MiniManifestField\n              label=\"License\"\n              value={manifest?.license ?? \"No license\"}\n            />\n            <MiniManifestField\n              label=\"Author\"\n              value={manifest?.author ?? \"No author\"}\n            />\n          </div>\n        </div>\n        <ManifestField\n          label=\"About\"\n          value={manifest?.description ?? \"No description\"}\n          markdown\n        />\n      </div>\n\n      {Object.keys(settings).length > 0 && (\n        <div className=\"mt-2 flex flex-col gap-4\">\n          <Theme.Label className=\"ml-0\">Settings</Theme.Label>\n          {Object.entries(settings).map(([key, setting]) => (\n            <Setting\n              key={key}\n              settingKey={key}\n              settingValue={setting}\n              setSetting={setSetting}\n            />\n          ))}\n        </div>\n      )}\n    </Panel>\n  );\n}\n\nfunction ManifestField({\n  label,\n  value,\n  markdown,\n  className,\n}: {\n  label: string;\n  value: string | undefined;\n  markdown?: boolean;\n  className?: string;\n}) {\n  return (\n    <div className={classes(\"flex flex-col gap-2\", className)}>\n      <Theme.Label className=\"ml-0\">{label}</Theme.Label>\n      {markdown ? <Markdown text={value ?? \"\"} /> : <p>{value}</p>}\n    </div>\n  );\n}\n\nfunction MiniManifestField({\n  label,\n  value,\n  className,\n}: {\n  label: string;\n  value: string | undefined;\n  className?: string;\n}) {\n  return (\n    <p className={classes(\"opacity-muted text-sm\", className)}>\n      <span className=\"select-none opacity-50\">{label} </span>\n      {value}\n    </p>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Settings/Panel.tsx",
    "content": "export function Panel({ className, children }: StyleableWithChildren) {\n  return (\n    <div\n      className={classes(\n        \"rounded border border-zinc-700 bg-zinc-800 p-5\",\n        className\n      )}\n    >\n      {children}\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Settings/Preview.tsx",
    "content": "import { PluginManifest } from \"@stability/stablestudio-plugin\";\n\nimport { Theme } from \"~/Theme\";\n\nexport function Preview({\n  manifest,\n  onInstall,\n  loading,\n  error,\n}: {\n  manifest?: PluginManifest;\n  onInstall: () => void;\n  loading: boolean;\n  error?: Error;\n}) {\n  return (\n    <div className=\"flex items-center justify-between rounded bg-white/10 p-3\">\n      {error ? (\n        <div className=\"flex h-full w-full items-center justify-center text-red-500\">\n          {error.message}\n        </div>\n      ) : (\n        <>\n          {manifest ? (\n            <div className=\"flex gap-3\">\n              {manifest.icon && (\n                <img\n                  src={manifest.icon}\n                  className=\"aspect-square h-[45px] rounded-lg object-cover\"\n                />\n              )}\n              <div className=\"flex flex-col gap-1\">\n                <h1 className=\"text-xl\">{manifest.name}</h1>\n                <p className=\"opacity-muted text-sm\">{manifest.description}</p>\n              </div>\n            </div>\n          ) : (\n            <div className=\"flex flex-col gap-1\">\n              <h1 className=\"text-xl\">No manifest found</h1>\n              <p className=\"opacity-muted text-sm\">\n                Proceed with caution. This plugin may not be safe to install.\n              </p>\n            </div>\n          )}\n          <Theme.Button\n            color=\"brand\"\n            className=\"mr-3\"\n            loading={loading}\n            onClick={onInstall}\n          >\n            Install\n          </Theme.Button>\n        </>\n      )}\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Settings/Setting.tsx",
    "content": "import { PluginSetting } from \"@stability/stablestudio-plugin\";\nimport { Markdown } from \"~/Markdown\";\n\nimport { Theme } from \"~/Theme\";\n\nexport function Setting({\n  settingKey: key,\n  settingValue: setting,\n  setSetting,\n}: {\n  settingKey: string;\n  settingValue: PluginSetting<unknown>;\n\n  setSetting: (key: string, value: any) => void;\n}) {\n  const value = (setting as any).formatter\n    ? (setting as any).formatter(setting.value)\n    : setting.value;\n\n  const onSet = (value: any) =>\n    setSetting(\n      key,\n      (setting as any).setter ? (setting as any).setter(value) : value\n    );\n\n  return (\n    <div key={setting.title} className=\"flex flex-col gap-1.5\">\n      <div className=\"flex justify-between\">\n        <label>\n          {setting.title}{\" \"}\n          {setting.required && <span className=\"text-sm text-red-500\">*</span>}\n        </label>\n        {setting.type === \"boolean\" && (\n          <Theme.Checkbox size=\"xl\" value={value} onChange={onSet} />\n        )}\n      </div>\n      {setting.type === \"string\" && setting.options && (\n        <Theme.Dropdown\n          value={(setting as any).value ?? \"\"}\n          size=\"md\"\n          onChange={(e) => onSet(e.value)}\n          options={setting.options as never}\n          fullWidth\n          className=\"mx-0 -ml-0.5\"\n          innerClassName=\"pl-3.5\"\n        />\n      )}\n      {setting.type === \"string\" && !setting.options && (\n        <Theme.Input\n          placeholder={setting.placeholder}\n          // TODO: Fix this\n          value={value}\n          onChange={onSet}\n          type={setting.password ? \"password\" : \"text\"}\n        />\n      )}\n      {setting.type === \"number\" &&\n        (setting.variant === \"input\" || !setting.variant) && (\n          <Theme.NumberInput\n            number\n            placeholder={setting.placeholder?.toString()}\n            value={value}\n            onNumberChange={onSet}\n            max={setting.max}\n            min={setting.min}\n            step={setting.step ?? undefined}\n            inputClassName=\"bg-white/5 px-2 py-0.5 group-hover:outline-0 outline-0 focus:outline-transparent\"\n            containerClassName=\"mx-0\"\n            icon={Theme.Icon.ChevronsLeftRight}\n          />\n        )}\n\n      {setting.type === \"number\" && setting.variant === \"slider\" && (\n        <div className=\"flex flex-col\">\n          <div className=\"flex justify-between\">\n            <Theme.Label className=\"mx-0\">{setting.min ?? 0}</Theme.Label>\n            <Theme.Label className=\"mx-0\">{setting.max ?? 100}</Theme.Label>\n          </div>\n          <Theme.Slider\n            value={value}\n            displayValue={\n              ![setting.min ?? 0, setting.max ?? 100].includes(value)\n            }\n            onChange={onSet}\n            max={setting.max ?? 100}\n            min={setting.min}\n            step={setting.step ?? undefined}\n            className=\"mt-3.5\"\n          />\n        </div>\n      )}\n      <Markdown\n        text={setting.description ?? \"\"}\n        className=\"text-sm font-light opacity-75\"\n      />\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Settings/index.tsx",
    "content": "import { PluginStatus } from \"@stability/stablestudio-plugin\";\nimport { Link } from \"react-router-dom\";\n\nimport { GlobalState } from \"~/GlobalState\";\nimport { Plugin } from \"~/Plugin\";\nimport { Theme } from \"~/Theme\";\n\nimport { Install } from \"./Install\";\nimport { Manifest } from \"./Manifest\";\nimport { Setting } from \"./Setting\";\n\nexport function Settings() {\n  const [pluginStatus, setPluginStatus] = useState<PluginStatus | undefined>();\n  const pluginSetup = Plugin.useSetup();\n\n  const { manifest, settings, setSetting, getStatus } = Plugin.use(\n    ({ manifest, settings, setSetting, getStatus }) => ({\n      manifest,\n      settings,\n      setSetting: setSetting ?? doNothing,\n      getStatus,\n    })\n  );\n\n  const { developerMode, setDeveloperMode } = Settings.use();\n\n  useEffect(() => {\n    function fetchStatus() {\n      if (!getStatus) return;\n\n      const status = getStatus();\n      if (status) {\n        if (status instanceof Promise) {\n          setPluginStatus((previous) => ({\n            ...previous,\n            indicator: \"loading\",\n          }));\n          status.then(setPluginStatus);\n        } else {\n          setPluginStatus(status);\n          console.log(status);\n        }\n      }\n    }\n\n    fetchStatus();\n\n    const interval = setInterval(fetchStatus, 10000);\n    return () => clearInterval(interval);\n  }, [getStatus]);\n\n  const isMissingRequiredSetting = useMemo(\n    () =>\n      Object.entries(settings ?? {}).find(\n        ([, setting]) => (setting as any).required && !(setting as any).value\n      ),\n    [settings]\n  );\n\n  return (\n    <>\n      <div className=\"h-full justify-between overflow-y-auto bg-zinc-900 px-5 py-6\">\n        <div className=\"mx-auto flex max-w-[60rem] flex-col gap-5\">\n          {!isMissingRequiredSetting && (\n            <Link to=\"/generate\" className=\"w-fit\">\n              <div className=\"my-5 -ml-1 flex gap-1 text-lg opacity-50 hover:opacity-100\">\n                <Theme.Icon.ChevronLeft className=\"h-6 w-6\" />\n                Generate\n              </div>\n            </Link>\n          )}\n          <div>\n            <h1 className=\"text-3xl\">Settings</h1>\n          </div>\n          <Manifest\n            manifest={manifest}\n            pluginStatus={pluginStatus}\n            settings={settings ?? {}}\n            setSetting={setSetting as never}\n          />\n          <Setting\n            settingKey=\"developerMode\"\n            setSetting={() => setDeveloperMode(!developerMode)}\n            settingValue={{\n              type: \"boolean\",\n              title: \"Developer mode\",\n              description:\n                \"Enable experimental features such as installing untrusted plugins\",\n\n              required: false,\n              value: developerMode,\n            }}\n          />\n          {developerMode && (\n            <Install\n              installPlugin={(url) => url && pluginSetup.loadFromURL(url)}\n            />\n          )}\n        </div>\n      </div>\n    </>\n  );\n}\n\nexport namespace Settings {\n  type State = {\n    developerMode: boolean;\n    setDeveloperMode: (value: boolean) => void;\n  };\n\n  namespace State {\n    export const use = GlobalState.create<State>((set) => ({\n      developerMode:\n        localStorage.getItem(\"stablestudio-developerMode\") === \"true\",\n\n      setDeveloperMode: (value) =>\n        set((state) => {\n          localStorage.setItem(\"stablestudio-developerMode\", value.toString());\n          return { ...state, developerMode: value };\n        }),\n    }));\n  }\n\n  export const use = State.use;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Shortcut/Event/index.tsx",
    "content": "export namespace Event {\n  export type Options = {\n    preventDefault?: boolean;\n    stopPropagation?: boolean;\n  };\n\n  export namespace Options {\n    export const presets = (): Options => ({\n      preventDefault: true,\n      stopPropagation: true,\n    });\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Shortcut/Key/Keys.tsx",
    "content": "import useHotkeys from \"@reecelucas/react-use-hotkeys\";\n\nimport { Device } from \"~/Device\";\nimport { Shortcut } from \"~/Shortcut\";\n\nexport type Keys = Shortcut.Key | OneOrMore | (Shortcut.Key | OneOrMore)[];\ntype OneOrMore = [Shortcut.Key, ...Shortcut.Key[]];\n\nexport function Keys({ className, ...props }: Styleable & { keys: Keys }) {\n  const keys = useMemo(\n    () =>\n      Keys.normalize(props.keys).flatMap((keys) =>\n        keys.map((keyType) => <Shortcut.Key key={keyType} keyType={keyType} />)\n      ),\n    [props.keys]\n  );\n\n  return (\n    <div\n      className={classes(\"flex items-center justify-center gap-1\", className)}\n    >\n      {keys}\n    </div>\n  );\n}\n\nexport namespace Keys {\n  export type Options = {\n    keys?: Keys;\n    action?: Shortcut.Action;\n    options?: Parameters<typeof useHotkeys>[2];\n    event?: Shortcut.Event.Options;\n  };\n\n  export const normalize = (original: Keys): OneOrMore[] => {\n    const keys: OneOrMore[] =\n      typeof original === \"string\"\n        ? [[original as Shortcut.Key]]\n        : Array.isArray(original) && typeof original[0] === \"string\"\n        ? [original as OneOrMore]\n        : original.map((keys) => (typeof keys === \"string\" ? [keys] : keys));\n\n    return Device.getInfo().operatingSystem !== \"Windows\"\n      ? keys\n      : (keys.map((keys) =>\n          keys.map((key) => (key === \"Meta\" ? \"Control\" : key))\n        ) as OneOrMore[]);\n  };\n\n  export const use = (options?: Options) => {\n    const {\n      action: originalAction = doNothing,\n      keys: keysOrArray,\n      options: libraryOptions = {},\n      event: eventOptions = Shortcut.Event.Options.presets(),\n    } = useMemo(() => ({ keys: [], ...options }), [options]);\n\n    const keys = useMemo(\n      () =>\n        normalize(keysOrArray).map((keys) =>\n          keys\n            .map((key, index) => {\n              const shifted =\n                keys[0] === \"Shift\" &&\n                index === 1 &&\n                Shortcut.Key.getShifted(key);\n\n              return shifted || key;\n            })\n            .join(\"+\")\n        ),\n      [keysOrArray]\n    );\n\n    const action = useCallback(\n      (event: KeyboardEvent) => {\n        eventOptions.stopPropagation && event.stopPropagation();\n        eventOptions.preventDefault && event.preventDefault();\n        originalAction({ keyboardEvent: event });\n      },\n      [eventOptions, originalAction]\n    );\n\n    useHotkeys(keys, action, libraryOptions);\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Shortcut/Key/index.tsx",
    "content": "export { Keys } from \"./Keys\";\n\n// Note: This uses date tracking since MacOS doesn't fire keyup events for modifier keys while they are pressed.\n\nexport type Key = keyof typeof keys;\n\nconst modifiers = {\n  Meta: \"⌘\",\n  Control: \"^\",\n  Shift: \"⇧\",\n};\n\nconst numbers = {\n  \"0\": \"0\",\n  \"1\": \"1\",\n  \"2\": \"2\",\n  \"3\": \"3\",\n  \"4\": \"4\",\n  \"5\": \"5\",\n  \"6\": \"6\",\n  \"7\": \"7\",\n  \"8\": \"8\",\n  \"9\": \"9\",\n};\n\nconst alphabet = {\n  a: \"a\",\n  b: \"b\",\n  c: \"c\",\n  d: \"d\",\n  e: \"e\",\n  f: \"f\",\n  g: \"g\",\n  h: \"h\",\n  i: \"i\",\n  j: \"j\",\n  k: \"k\",\n  l: \"l\",\n  m: \"m\",\n  n: \"n\",\n  o: \"o\",\n  p: \"p\",\n  q: \"q\",\n  r: \"r\",\n  s: \"s\",\n  t: \"t\",\n  u: \"u\",\n  v: \"v\",\n  w: \"w\",\n  x: \"x\",\n  y: \"y\",\n  z: \"z\",\n};\n\nconst other = {\n  Escape: \"esc\",\n  Backspace: \"⌫\",\n  Delete: \"⌦\",\n  Enter: \"↵\",\n\n  \"\\\\\": \"\\\\\",\n\n  \"-\": \"-\",\n  \"=\": \"+\",\n\n  \"[\": { display: \"[\", shift: \"{\" },\n  \"]\": { display: \"]\", shift: \"}\" },\n\n  ArrowDown: \"↓\",\n  ArrowLeft: \"←\",\n  ArrowRight: \"→\",\n  ArrowUp: \"↑\",\n\n  F5: \"F5\",\n  F7: \"F7\",\n};\n\nconst keys = {\n  ...modifiers,\n  ...numbers,\n  ...alphabet,\n  ...other,\n};\n\nexport function Key({ keyType }: { keyType: Key }) {\n  const active = Key.useIsActive(keyType);\n  const display = useMemo(() => {\n    const key = keys[keyType];\n    return typeof key === \"string\" ? key : key.display;\n  }, [keyType]);\n\n  return (\n    <div\n      className={classes(\n        \"bg-muted-white-extra flex h-6 items-center justify-center rounded align-middle text-white\",\n        active && \"bg-white text-black\",\n        display.length === 1 ? \"w-6 uppercase\" : \"px-1.5 lowercase\"\n      )}\n    >\n      {display}\n    </div>\n  );\n}\n\nexport namespace Key {\n  export type Modifier = keyof typeof modifiers;\n\n  export const getShifted = (key: Key): string | undefined => {\n    const keyData = keys[key];\n    return typeof keyData === \"string\" ? keyData : keyData.shift;\n  };\n\n  export const useOnDown = (\n    key: Key,\n    onDown: (event: KeyboardEvent) => void\n  ) => {\n    useEffect(() => {\n      const onKeyDown = (event: KeyboardEvent) =>\n        event.key === key && onDown(event);\n\n      window.addEventListener(\"keydown\", onKeyDown);\n      return () => window.removeEventListener(\"keydown\", onKeyDown);\n    }, [key, onDown]);\n  };\n\n  export const useOnUp = (key: Key, onUp: (event: KeyboardEvent) => void) => {\n    useEffect(() => {\n      const onKeyDown = (event: KeyboardEvent) =>\n        event.key === key && onUp(event);\n\n      window.addEventListener(\"keyup\", onKeyDown);\n      return () => window.removeEventListener(\"keyup\", onKeyDown);\n    }, [key, onUp]);\n  };\n\n  export const useIsActive = (key: Key) => {\n    const [active, setActive] = useState(false);\n    const activeTimeout = useRef<NodeJS.Timeout>();\n\n    useOnDown(\n      key,\n      useCallback(\n        (event) => event.key.toLowerCase() === key && setActive(true),\n        [key]\n      )\n    );\n\n    useOnUp(\n      key,\n      useCallback(\n        (event) => event.key.toLowerCase() === key && setActive(false),\n        [key]\n      )\n    );\n\n    useEffect(() => () => clearTimeout(activeTimeout.current), []);\n    useEffect(() => {\n      if (!active) return;\n      if (activeTimeout.current) clearTimeout(activeTimeout.current);\n      activeTimeout.current = setTimeout(() => setActive(false), 1000);\n    }, [active, activeTimeout]);\n\n    return active;\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Shortcut/Name/index.tsx",
    "content": "import { Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport type Name = React.ReactNode | React.ReactNode[];\ntype Nameable = Pick<Shortcut, \"id\" | \"name\">;\n\nexport function Name({\n  id,\n  name,\n  group,\n}: Nameable & {\n  group?: string;\n}) {\n  return useMemo(() => {\n    const names = Name.toArray({ id, name });\n    const namesWithoutGroup =\n      group && names.length > 1 ? names.slice(1) : names;\n\n    return (\n      <>\n        {namesWithoutGroup\n          .flatMap((name, index) => [\n            <span key={index}>{name}</span>,\n            <Theme.Divider.Inline key={keys(index, \"divider\")} />,\n          ])\n          .slice(0, -1)}\n      </>\n    );\n  }, [id, name, group]);\n}\n\nexport namespace Name {\n  export const compare = (a: Nameable, b: Nameable): number =>\n    toString(a).localeCompare(toString(b));\n\n  export const toArray = (shortcut: Nameable): React.ReactNode[] =>\n    !shortcut.name\n      ? [shortcut.id]\n      : Array.isArray(shortcut.name)\n      ? shortcut.name\n      : [shortcut.name];\n\n  export const toStringArray = (shortcut: Nameable): string[] =>\n    toArray(shortcut).map((name) => `${name}`);\n\n  export const toString = (shortcut: Nameable): string =>\n    toStringArray(shortcut).join(\" \");\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Shortcut/Palette/index.tsx",
    "content": "import { GlobalState } from \"~/GlobalState\";\nimport { Shortcut, Shortcuts } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\nimport { Input } from \"~/Theme/Input\";\n\nexport function Palette() {\n  const { ref } = useEvents();\n\n  const search = Shortcut.Search.use();\n  const shortcuts = Shortcuts.useDisplayed();\n\n  const { isOpen, setIsOpen } = Palette.use();\n  const close = useCallback(() => setIsOpen(false), [setIsOpen]);\n  const toggle = useCallback(\n    () => \"toggle\" && setIsOpen(!isOpen),\n    [isOpen, setIsOpen]\n  );\n\n  const { clear } = search;\n  useEffect(() => {\n    !isOpen && clear();\n  }, [isOpen, clear]);\n\n  Shortcut.Key.useOnDown(\"Escape\", close);\n  Shortcut.Keys.use(\n    useMemo(\n      () => ({\n        keys: [\"Meta\", \"k\"],\n        action: toggle,\n        options: {\n          ignoredElementWhitelist: [\"INPUT\", \"TEXTAREA\"],\n        },\n      }),\n      [toggle]\n    )\n  );\n\n  return useMemo(\n    () =>\n      !isOpen ? null : (\n        <div\n          ref={ref}\n          className=\"absolute bottom-0 left-0 right-0 top-0 z-[9999] flex items-center justify-center\"\n        >\n          <div\n            onClick={close}\n            className=\"absolute bottom-0 left-0 right-0 top-0 z-0 bg-zinc-900/50 opacity-100 backdrop-blur-sm\"\n          />\n          <div className=\"relative\">\n            <div className=\"z-30 min-h-[500px] min-w-[400px] rounded bg-zinc-200 text-black shadow-lg dark:bg-zinc-800/90 dark:text-white\">\n              <div className=\"px-4 py-2\">\n                <Input\n                  autoFocus\n                  transparent\n                  size=\"lg\"\n                  placeholder=\"What are you looking for?\"\n                  loading={search.loading}\n                  value={search.text}\n                  onChange={search.setText}\n                  iconLeft={Theme.Icon.Search}\n                  iconRight={\n                    search.text !== \"\" &&\n                    ((props) => (\n                      <Theme.Icon.X\n                        {...props}\n                        onClick={() => search.setText(\"\")}\n                        className={classes(\n                          \"pointer-events-auto cursor-pointer\",\n                          props.className\n                        )}\n                      />\n                    ))\n                  }\n                />\n              </div>\n              {shortcuts[0] ? (\n                <Shortcuts className=\"p-2\" onAction={close} />\n              ) : (\n                search.text !== \"\" &&\n                !search.loading && (\n                  <div className=\"text-muted-white-extra flex items-center justify-center p-4 pt-2 text-xl\">\n                    Nothing found\n                  </div>\n                )\n              )}\n            </div>\n          </div>\n        </div>\n      ),\n    [ref, isOpen, close, search, shortcuts]\n  );\n}\n\nexport namespace Palette {\n  export type State = {\n    isOpen: boolean;\n    setIsOpen: (isOpen: boolean) => void;\n  };\n\n  export const use = GlobalState.create<State>((set) => ({\n    isOpen: false,\n    setIsOpen: (isOpen) => set({ isOpen }),\n  }));\n}\n\n// TODO: Make focus not a hack\nconst useEvents = () => {\n  const ref = useRef<HTMLDivElement>(null);\n\n  Shortcut.Key.useOnDown(\n    \"Enter\",\n    useCallback((event) => {\n      if (!ref.current) return;\n\n      const buttons = Array.from(\n        ref.current.querySelectorAll<HTMLButtonElement>(\"button\")\n      );\n\n      // No hotkeys - do nothing\n      if (!buttons.length) return;\n\n      // Short-circuit so we can let the onClick handler fire\n      if (buttons.some((button) => button === document.activeElement)) return;\n\n      // Otherwise default to the first button in the list\n      buttons[0]?.focus();\n      event.stopPropagation();\n      event.preventDefault();\n    }, [])\n  );\n\n  const shiftFocus = useCallback((direction: \"up\" | \"down\") => {\n    if (!ref.current) return;\n    const focusableElements = [\n      ...ref.current\n        .querySelectorAll<HTMLInputElement | HTMLButtonElement>(\"input,button\")\n        .values(),\n    ];\n\n    const focusedIndex = focusableElements.findIndex(\n      (element) => element === document.activeElement\n    );\n\n    if (focusedIndex === -1) return;\n\n    const nextFocusedIndex =\n      direction === \"up\" && focusedIndex > 0\n        ? focusedIndex - 1\n        : direction === \"down\" && focusedIndex < focusableElements.length - 1\n        ? focusedIndex + 1\n        : focusedIndex;\n\n    focusableElements[nextFocusedIndex]?.focus();\n  }, []);\n\n  Shortcut.Key.useOnDown(\n    \"ArrowDown\",\n    useCallback(() => shiftFocus(\"down\"), [shiftFocus])\n  );\n\n  Shortcut.Key.useOnDown(\n    \"ArrowUp\",\n    useCallback(() => shiftFocus(\"up\"), [shiftFocus])\n  );\n\n  return { ref };\n};\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Shortcut/Priority/Order.tsx",
    "content": "import { Shortcut, Shortcuts } from \"~/Shortcut\";\n\nexport namespace Order {\n  const compare = (\n    a: Pick<Shortcut.Priority, \"level\">,\n    b: Pick<Shortcut.Priority, \"level\">\n  ) => {\n    const levels = [\"low\", \"medium\", \"high\"];\n    return levels.indexOf(b.level ?? \"low\") - levels.indexOf(a.level ?? \"low\");\n  };\n\n  export const use = () => {\n    const shortcuts = Shortcuts.use();\n    const priorities = Shortcut.Priorities.use();\n    return useMemo(() => {\n      const highestPriorities = shortcuts.map((shortcut) => ({\n        shortcut,\n        priority: priorities\n          .filter((priority) => Shortcut.Priority.applies(priority, shortcut))\n          .sort(compare)[0],\n      }));\n\n      const ordered = highestPriorities.sort((a, b) => {\n        const prioritiesCompared = compare(\n          a.priority ?? { level: \"low\" },\n          b.priority ?? { level: \"low\" }\n        );\n\n        return prioritiesCompared !== 0\n          ? prioritiesCompared\n          : Shortcut.Name.compare(a.shortcut, b.shortcut);\n      });\n\n      return ordered.map(({ shortcut }) => shortcut);\n    }, [shortcuts, priorities]);\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Shortcut/Priority/Priorities.tsx",
    "content": "import { GlobalState } from \"~/GlobalState\";\nimport { Shortcut } from \"~/Shortcut\";\n\nexport type Priorities = Shortcut.Priority[];\n\nexport namespace Priorities {\n  export const use = () => {\n    const state = State.use(({ priorities }) => ({ priorities }));\n    return useMemo(() => [...state.priorities.values()], [state.priorities]);\n  };\n\n  export const useSet = () =>\n    State.use(({ setPriorities }) => ({ setPriorities })).setPriorities;\n}\n\ntype State = {\n  priorities: Map<ID, Shortcut.Priority>;\n  setPriorities: (\n    setPriorities: React.SetStateAction<Map<ID, Shortcut.Priority>>\n  ) => void;\n};\n\nnamespace State {\n  export const use = GlobalState.create<State>((set) => ({\n    priorities: new Map(),\n    setPriorities: (setPriorities) =>\n      set(({ priorities }) => ({\n        priorities: new Map(\n          typeof setPriorities === \"function\"\n            ? setPriorities(priorities)\n            : setPriorities\n        ),\n      })),\n  }));\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Shortcut/Priority/index.tsx",
    "content": "import { Shortcut } from \"~/Shortcut\";\n\nimport { Order } from \"./Order\";\n\nexport * from \"./Priorities\";\n\nexport type Priority = {\n  id: ID;\n  name: Shortcut.Name;\n  level?: \"high\" | \"medium\" | \"low\";\n  enabled?: boolean;\n};\n\nexport declare namespace Priority {\n  export { Order };\n}\n\nexport namespace Priority {\n  Priority.Order = Order;\n\n  export const applies = (priority: Priority, shortcut: Shortcut): boolean => {\n    const names = Shortcut.Name.toStringArray(priority);\n    const shortcutNames = Shortcut.Name.toStringArray(shortcut);\n    return (\n      names.filter((name, index) => shortcutNames[index] === name).length ===\n      names.length\n    );\n  };\n\n  export const use = (options: Omit<Priority, \"id\">) => {\n    const [id] = useState(ID.create);\n    const priority = useMemo(\n      () => ({\n        id,\n        enabled: true,\n        level: \"low\" as const,\n        ...options,\n      }),\n      [id, options]\n    );\n\n    const setPriorities = Shortcut.Priorities.useSet();\n\n    useEffect(() => {\n      const enable = () =>\n        setPriorities((priorities) => priorities.set(priority.id, priority));\n\n      const disable = () =>\n        setPriorities((priorities) => {\n          priorities.delete(priority.id);\n          return priorities;\n        });\n\n      priority.enabled ? enable() : disable();\n      return disable;\n    }, [priority, setPriorities]);\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Shortcut/Search/index.tsx",
    "content": "import MiniSearch from \"minisearch\";\nimport { useDebounce } from \"react-use\";\n\nimport { GlobalState } from \"~/GlobalState\";\nimport { Shortcut } from \"~/Shortcut\";\n\nexport namespace Search {\n  export const use = () => {\n    const {\n      text,\n      setText: setTextRaw,\n      miniSearch,\n      lastAdded,\n    } = State.use(({ text, setText, miniSearch, lastAdded }) => ({\n      text,\n      setText,\n      miniSearch,\n      lastAdded,\n    }));\n\n    const [loading, setLoading] = useState(false);\n    const [matches, setMatches] = useState([] as ID[]);\n\n    const setText = useCallback(\n      (text = \"\") => {\n        setTextRaw(text);\n        setLoading(text !== \"\");\n        setMatches([]);\n      },\n      [setTextRaw]\n    );\n\n    const clear = useCallback(() => setText(\"\"), [setText]);\n\n    useDebounce(() => setLoading(false), 500, [matches]);\n    useDebounce(\n      () => setMatches(miniSearch.search(text).map(({ id }) => id)),\n      10,\n      [text, miniSearch, lastAdded]\n    );\n\n    return useMemo(\n      () => ({ loading, matches, text, setText, clear }),\n      [matches, loading, text, setText, clear]\n    );\n  };\n\n  export type Data = Datum[];\n  export type Datum = { id: ID; text: string };\n  export namespace Datum {\n    export const use = (shortcut: Shortcut) => {\n      const { enabled, id } = shortcut;\n\n      const text = useMemo(() => Shortcut.Name.toString(shortcut), [shortcut]);\n\n      const { miniSearch, setLastAdded } = State.use(\n        ({ miniSearch, setLastAdded }) => ({\n          miniSearch,\n          setLastAdded,\n        })\n      );\n\n      useEffect(() => {\n        const remove = () => {\n          miniSearch.has(id) && miniSearch.remove({ id, text });\n        };\n\n        remove();\n        miniSearch.add({ id, text });\n        setLastAdded(id);\n\n        return remove;\n      }, [enabled, id, text, miniSearch, setLastAdded]);\n    };\n  }\n}\n\ntype State = {\n  text: string;\n  setText: (text: string) => void;\n\n  miniSearch: MiniSearch<Search.Datum>;\n\n  lastAdded?: ID;\n  setLastAdded: (lastAdded: ID) => void;\n};\n\nnamespace State {\n  export const use = GlobalState.create<State>((set) => ({\n    text: \"\",\n    setText: (text) => set({ text }),\n\n    miniSearch: new MiniSearch({\n      idField: \"id\",\n      fields: [\"text\"],\n      storeFields: [],\n      searchOptions: {\n        fuzzy: true,\n        prefix: true,\n      },\n    }),\n\n    lastAdded: undefined,\n    setLastAdded: (lastAdded: ID) => set({ lastAdded }),\n  }));\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Shortcut/Shortcuts/index.tsx",
    "content": "import { GlobalState } from \"~/GlobalState\";\nimport { Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\n\nexport type Shortcuts = Shortcut[];\n\nexport function Shortcuts({\n  onAction,\n  className,\n}: Styleable & { onAction?: () => void }) {\n  const shortcuts = Shortcuts.useDisplayed();\n  return useMemo(() => {\n    const groups = Shortcuts.toGroups(shortcuts);\n    const { grouped, ungrouped } = shortcuts.reduce(\n      ({ grouped, ungrouped }, shortcut) => {\n        const names = Shortcut.Name.toStringArray(shortcut);\n        const group = groups.find((name) => name === names[0]);\n        return {\n          ungrouped: group ? ungrouped : [...ungrouped, shortcut],\n          grouped: group\n            ? { ...grouped, [group]: [...(grouped[group] ?? []), shortcut] }\n            : grouped,\n        };\n      },\n      {\n        grouped: {} as Record<string, Shortcut[]>,\n        ungrouped: [] as Shortcut[],\n      }\n    );\n\n    const divided = Object.entries(grouped).flatMap(\n      ([group, items], groupIndex) => [\n        <Theme.Divider key={group}>{group}</Theme.Divider>,\n        ...items.map((shortcut, index) => (\n          <Shortcut\n            // TODO: Make focus not a hack\n            selected={false && groupIndex === 0 && index === 0}\n            key={shortcut.id}\n            group={group}\n            shortcut={{\n              ...shortcut,\n              action: () => {\n                onAction?.();\n                shortcut.action();\n              },\n            }}\n          />\n        )),\n      ]\n    );\n\n    const notDivided = ungrouped.map((shortcut) => (\n      <Shortcut\n        key={shortcut.id}\n        shortcut={{\n          ...shortcut,\n          action: () => {\n            onAction?.();\n            shortcut.action();\n          },\n        }}\n      />\n    ));\n\n    return (\n      <div className={classes(\"flex flex-col gap-2\", className)}>\n        {divided}\n        {notDivided.length > 0 && <Theme.Divider />}\n        {notDivided}\n      </div>\n    );\n  }, [shortcuts, onAction, className]);\n}\n\nexport namespace Shortcuts {\n  export const toGroups = (shortcuts: Shortcuts) =>\n    shortcuts.reduce<{\n      seen: Record<string, boolean>;\n      groups: string[];\n    }>(\n      ({ seen, groups }, shortcut) => {\n        const [name, secondName] = Shortcut.Name.toStringArray(shortcut);\n        return !name\n          ? { seen, groups }\n          : {\n              seen: { ...seen, [name]: true },\n              groups:\n                (seen[name] || secondName) && !groups.includes(name)\n                  ? [...groups, name]\n                  : groups,\n            };\n      },\n      { seen: {}, groups: [] }\n    ).groups;\n\n  export const get = () => State.use.getState().shortcuts;\n  export const set = (setShortcuts: React.SetStateAction<Map<ID, Shortcut>>) =>\n    State.use.getState().setShortcuts(setShortcuts);\n\n  export const use = () => {\n    const state = State.use(({ shortcuts }) => ({ shortcuts }));\n    return useMemo(() => [...state.shortcuts.values()], [state.shortcuts]);\n  };\n\n  export const useDisplayed = () => {\n    const shortcuts = Shortcut.Priority.Order.use();\n    const search = Shortcut.Search.use();\n    return useMemo(\n      () =>\n        shortcuts.filter(\n          ({ id, menu }) =>\n            menu && (search.text !== \"\" ? search.matches.includes(id) : true)\n        ),\n      [shortcuts, search.matches, search.text]\n    );\n  };\n}\n\ntype State = {\n  shortcuts: Map<ID, Shortcut>;\n  setShortcuts: (setShortcuts: React.SetStateAction<Map<ID, Shortcut>>) => void;\n};\n\nnamespace State {\n  export const use = GlobalState.create<State>((set) => ({\n    shortcuts: new Map(),\n    setShortcuts: (setShortcut) =>\n      set(({ shortcuts }) => ({\n        shortcuts: new Map(\n          typeof setShortcut === \"function\"\n            ? setShortcut(shortcuts)\n            : setShortcut\n        ),\n      })),\n  }));\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Shortcut/index.tsx",
    "content": "import useHotkeys from \"@reecelucas/react-use-hotkeys\";\nimport { Theme } from \"~/Theme\";\n\nimport { Event } from \"./Event\";\nimport { Key, Keys } from \"./Key\";\nimport { Name } from \"./Name\";\nimport { Palette } from \"./Palette\";\nimport { Priorities, Priority } from \"./Priority\";\nimport { Search } from \"./Search\";\nimport { Shortcuts } from \"./Shortcuts\";\n\nexport * from \"./Shortcuts\";\n\nexport type Shortcut = {\n  id: ID;\n\n  menu?: boolean;\n  name?: Name;\n  group?: string;\n  description?: React.ReactNode;\n  icon?: React.ComponentProps<typeof Theme.Button>[\"icon\"];\n\n  enabled?: boolean;\n  keys?: Keys | Omit<Keys.Options, \"action\">;\n  options?: Parameters<typeof useHotkeys>[2];\n\n  action: Shortcut.Action;\n};\n\nexport function Shortcut({\n  shortcut,\n  group,\n  selected,\n}: {\n  shortcut: Shortcut;\n  group?: string;\n  selected?: boolean;\n}) {\n  return useMemo(\n    () => (\n      <Theme.Button\n        transparent\n        className=\"w-full min-w-[200px]\"\n        selected={selected}\n        iconLeft={shortcut.icon ?? Theme.Icon.Invisible}\n        iconRight={\n          shortcut.keys && (\n            <Keys\n              keys={shortcut.keys as never}\n              className=\"ml-auto flex grow justify-end pl-6\"\n            />\n          )\n        }\n        onClick={() => shortcut.action()}\n      >\n        <Shortcut.Name id={shortcut.id} name={shortcut.name} group={group} />\n      </Theme.Button>\n    ),\n    [group, selected, shortcut]\n  );\n}\n\nexport declare namespace Shortcut {\n  export { Event, Key, Keys, Palette, Priority, Priorities, Search, Name };\n}\n\nexport namespace Shortcut {\n  Shortcut.Event = Event;\n  Shortcut.Key = Key;\n  Shortcut.Keys = Keys;\n  Shortcut.Palette = Palette;\n  Shortcut.Priority = Priority;\n  Shortcut.Priorities = Priorities;\n  Shortcut.Search = Search;\n  Shortcut.Name = Name;\n\n  export type Action = (args?: { keyboardEvent?: KeyboardEvent }) => void;\n\n  export function use(options: Omit<Shortcut, \"id\">): Shortcut {\n    const [id] = useState(ID.create);\n    const shortcut = useMemo(\n      () => ({\n        id,\n        enabled: true,\n        menu: true,\n        ...options,\n      }),\n      [id, options]\n    );\n\n    const { enabled, action } = shortcut;\n\n    const actionChecked: Shortcut.Action = useCallback(\n      (args) => {\n        if (!enabled) return;\n        action(args);\n      },\n      [enabled, action]\n    );\n\n    useEffect(() => {\n      const enable = () =>\n        Shortcuts.set((shortcuts) => shortcuts.set(id, shortcut));\n\n      const disable = () =>\n        Shortcuts.set((shortcuts) => {\n          shortcuts.delete(id);\n          return shortcuts;\n        });\n\n      enabled ? enable() : disable();\n      return disable;\n    }, [enabled, id, shortcut]);\n\n    Search.Datum.use(shortcut);\n\n    Keys.use(\n      useMemo(() => {\n        const keys = !shortcut.keys\n          ? undefined\n          : typeof shortcut.keys === \"string\"\n          ? shortcut.keys\n          : Array.isArray(shortcut.keys)\n          ? shortcut.keys\n          : shortcut.keys.keys;\n\n        return {\n          keys,\n          action: actionChecked,\n          options: shortcut.options,\n        };\n      }, [shortcut.keys, shortcut.options, actionChecked])\n    );\n\n    return useMemo(\n      () => ({ ...shortcut, action: actionChecked }),\n      [shortcut, actionChecked]\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Badge/index.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\nexport function Badge({\n  variant,\n  size = Theme.Common.Size.preset(),\n  color = Theme.Common.Color.preset(),\n  className,\n  children,\n}: Badge.Props) {\n  const colors = useMemo(\n    () =>\n      classes(\n        color === \"brand\" && \"bg-brand-800\",\n        color === \"zinc\" &&\n          (variant === \"outline\"\n            ? \"border border-zinc-700 bg-none\"\n            : \"bg-zinc-700\")\n      ),\n    [variant, color]\n  );\n\n  return (\n    <span\n      className={classes(\n        \"rounded\",\n        colors,\n        size === \"sm\" && \"py-0.25 rounded px-1.5 text-xs\",\n        size === \"md\" && \"px-2 py-0.5 text-sm\",\n        size === \"lg\" && \"px-2 py-0.5 text-sm\",\n        className\n      )}\n    >\n      {children}\n    </span>\n  );\n}\n\nexport namespace Badge {\n  export type Props = StyleableWithChildren & {\n    variant?: \"outline\";\n    size?: Theme.Common.Size;\n    color?: Theme.Common.Color;\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Button/index.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\nexport function Button(props: Button.Props) {\n  const ref = useRef<HTMLButtonElement>(null);\n\n  useEffect(() => {\n    props.autoFocus && ref.current?.focus();\n  }, [props.autoFocus]);\n\n  const states = Button.useStates(props);\n  const sizing = Button.useSizing(props);\n  const colors = Button.useColors(props);\n  const icons = Button.useIcons(props);\n  const badges = Button.useBadges(props);\n\n  const button = (\n    <button\n      ref={ref}\n      style={props.style}\n      onClick={\n        props.disabled || props.loading ? undefined : (props.onClick as never)\n      }\n      onDoubleClick={props.onDoubleClick as never}\n      className={classes(\n        \"group relative flex h-fit select-none flex-row items-center justify-center gap-1 whitespace-nowrap rounded align-middle font-light shadow-md duration-150\",\n        sizing,\n        colors,\n        states,\n        props.active && \"hover group-hover\",\n        props.className\n      )}\n    >\n      {icons.left}\n      {props.children}\n      {badges.right}\n      {icons.right}\n    </button>\n  );\n\n  if (props.label) {\n    return (\n      <Theme.Tooltip content={props.label} placement={props.labelPlacement}>\n        {button}\n      </Theme.Tooltip>\n    );\n  } else {\n    return button;\n  }\n}\n\nexport namespace Button {\n  export type Prop = React.ReactNode | React.FunctionComponent<Props>;\n  export type Props = StyleableWithChildren & {\n    size?: Theme.Common.Size;\n    fullWidth?: boolean;\n\n    color?: Theme.Common.Color | \"darkerZinc\";\n    outline?: boolean;\n    transparent?: boolean;\n    translucent?: boolean;\n\n    autoFocus?: boolean;\n    active?: boolean;\n    disabled?: boolean;\n    selected?: boolean;\n    itemsCenter?: boolean;\n    style?: React.CSSProperties;\n\n    icon?: Theme.Icon.Prop;\n    iconLeft?: Theme.Icon.Prop;\n    iconRight?: Theme.Icon.Prop;\n\n    badge?: React.ReactNode | React.FunctionComponent<Theme.Badge.Props>;\n    badgeRight?: React.ReactNode | React.FunctionComponent<Theme.Badge.Props>;\n\n    label?: React.ReactNode;\n    labelPlacement?: \"top\" | \"bottom\" | \"left\" | \"right\";\n\n    loading?: boolean;\n    onClick?: (event: MouseEvent) => void;\n    onDoubleClick?: (event: MouseEvent) => void;\n  };\n\n  export const useStates = ({ loading, disabled }: Props) =>\n    useMemo(\n      () =>\n        loading || disabled\n          ? \"cursor-not-allowed opacity-50\"\n          : \"cursor-pointer opacity-100\",\n      [loading, disabled]\n    );\n\n  export const useSizing = ({\n    size = Theme.Common.Size.preset(),\n    fullWidth,\n    children,\n  }: Props) => {\n    return useMemo(() => {\n      return classes(\n        \"w-fit\",\n        fullWidth && \"w-full\",\n\n        size === \"sm\" && classes(\"px-2.5 py-1 text-sm\", !children && \"px-1\"),\n        size === \"md\" && classes(\"px-3 py-1 text-base\", !children && \"px-1\"),\n\n        (size === \"lg\" || size === \"xl\") &&\n          classes(\"px-4 py-2 text-base\", !children && \"px-2\")\n      );\n    }, [fullWidth, size, children]);\n  };\n\n  export const useColors = ({\n    color = Theme.Common.Color.preset(),\n    outline,\n    transparent,\n    translucent,\n  }: Props) =>\n    useMemo(\n      () =>\n        classes(\n          {\n            brand:\n              \"bg-brand-500 shadow-brand-500-md dark:shadow-none dark:bg-brand-600 dark:hover:bg-brand-500 border-brand-500 dark:border-brand-600\",\n\n            indigo:\n              \"text-white bg-brand-500 shadow-brand-500-md dark:shadow-none dark:bg-brand-600\",\n\n            red: \"bg-red-600 hover:bg-red-700 active:bg-red-800\",\n\n            green: \"bg-green-600 hover:bg-green-700 active:bg-green-800\",\n\n            yellow: \"bg-yellow-600 hover:bg-yellow-700 active:bg-yellow-800\",\n\n            zinc: \"shadow-black/5 bg-zinc-200 dark:shadow-none dark:text-white/80 dark:hover:text-white dark:bg-zinc-800 dark:hover:bg-zinc-700 border-zinc-800 dark:border-zinc-700\",\n\n            darkerZinc:\n              \"bg-zinc-900 border border-zinc-700 hover:border-zinc-300 duration-100 transition text-white\",\n\n            outline:\n              \"shadow-none dark:text-white text-black border border-transparent hover:border-zinc-700 focus:border-brand-500 active:bg-brand-500 active:text-white active:border-brand-500\",\n          }[outline ? \"outline\" : color],\n\n          outline && \"dark:hover:bg-zinc-700\",\n\n          transparent &&\n            \"bg-transparent hover:bg-transparent dark:bg-transparent dark:hover:bg-transparent shadow-none\",\n\n          translucent && \"dark:bg-opacity-60 dark:hover:bg-opacity-80\"\n        ),\n      [color, outline, transparent, translucent]\n    );\n\n  export const useIcons = ({\n    icon,\n    iconLeft = icon,\n    iconRight,\n    size = Theme.Common.Size.preset(),\n    loading,\n    children,\n  }: Props) => {\n    return useMemo(() => {\n      const render = (icon: typeof iconRight, position: \"left\" | \"right\") => {\n        const className = classes(\n          \"opacity-75 duration-100 group-hover:opacity-100 shrink\",\n          size === \"sm\" && \"h-5 w-5\",\n          size === \"md\" && \"h-6 w-6 p-px origin-center\",\n          size === \"lg\" && \"h-6 w-6\",\n          position === \"left\" && \"mr-1 -ml-1\",\n          position === \"right\" && \"ml-1 -mr-1\",\n          !children ? \"mx-0\" : \"p-0.5\"\n        );\n\n        if (loading) return <Theme.Loading.Spinner className={className} />;\n        if (!icon) return null;\n\n        if (typeof icon === \"function\")\n          return icon({ className, strokeWidth: 2.2 });\n\n        if (typeof icon !== \"object\") return icon;\n        if (React.isValidElement(icon)) return icon;\n\n        return null;\n      };\n\n      return {\n        left: (loading || iconLeft) && render(iconLeft, \"left\"),\n        right: iconRight && render(iconRight, \"right\"),\n      };\n    }, [iconLeft, iconRight, size, loading, children]);\n  };\n\n  export const useBadges = ({ badgeRight, size, fullWidth }: Props) =>\n    useMemo(() => {\n      const render = (badge: typeof badgeRight, position: \"right\") => {\n        const className = classes(\n          position === \"right\" && !fullWidth && \"ml-1 -mr-1\"\n        );\n\n        if (!badge) return null;\n\n        if (typeof badge === \"function\") return badge({ size, className });\n        if (typeof badge !== \"object\") return badge;\n\n        if (React.isValidElement(badge)) return badge;\n\n        return null;\n      };\n\n      const right = render(badgeRight, \"right\");\n\n      return {\n        right:\n          right && !fullWidth ? (\n            right\n          ) : (\n            <div className=\"absolute right-2 top-0 bottom-0 flex items-center justify-center\">\n              {right}\n            </div>\n          ),\n      };\n    }, [badgeRight, size, fullWidth]);\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Checkbox/index.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\nexport function Checkbox(props: Checkbox.Props) {\n  const label = (\n    <>\n      {props.label && (\n        <div\n          className={classes(\n            \"text-muted-white select-none text-base\",\n            props.size === \"sm\" && \"text-sm\",\n            props.size === \"lg\" && \"text-lg\",\n            props.labelClassName\n          )}\n        >\n          {props.label}\n        </div>\n      )}\n    </>\n  );\n\n  return (\n    <div\n      onClick={() => props.onChange(!props.value)}\n      className={classes(\n        \"flex w-fit cursor-pointer items-center gap-2\",\n        props.left && \"flex-row\",\n        props.right && \"flex-row-reverse\",\n        props.disabled && \"cursor-not-allowed\",\n        !props.left && !props.right && \"flex-row\",\n        props.className\n      )}\n    >\n      {props.labelLeft && label}\n      <div\n        tabIndex={0}\n        onKeyUp={(e) => {\n          if (e.key === \" \" && e.target === e.currentTarget) {\n            props.onChange(!props.value);\n          }\n        }}\n        className={classes(\n          \"flex shrink-0 items-center justify-center rounded border-none border-black/5 dark:border\",\n\n          (!props.variant || props.variant === \"indigo\") &&\n            props.value &&\n            \"bg-brand-500 dark:bg-brand-600\",\n\n          props.variant === \"red\" && props.value && \"bg-red-600\",\n          props.variant === \"green\" && props.value && \"bg-green-600\",\n          props.variant === \"yellow\" && props.value && \"bg-yellow-600\",\n          props.variant === \"gray\" && props.value && \"bg-zinc-600\",\n          !props.value && \"bg-black/10 dark:bg-zinc-700\",\n\n          props.size === \"sm\"\n            ? \"h-4 w-4\"\n            : props.size === \"lg\"\n            ? \"h-6 w-6\"\n            : \"h-5 w-5\"\n        )}\n      >\n        {props.value && (\n          <Theme.Icon.Check\n            color=\"white\"\n            size={props.size === \"sm\" ? 12 : props.size === \"md\" ? 16 : 20}\n          />\n        )}\n      </div>\n      {!props.labelLeft && label}\n    </div>\n  );\n}\n\nexport namespace Checkbox {\n  export type Props = Styleable & {\n    label?: React.ReactNode;\n    labelLeft?: boolean;\n    labelClassName?: string;\n\n    size?: Theme.Common.Size;\n    variant?: \"indigo\" | \"red\" | \"green\" | \"yellow\" | \"gray\";\n    disabled?: boolean;\n    bold?: boolean;\n\n    left?: boolean;\n    right?: boolean;\n\n    onChange: (value: boolean) => void;\n    value: boolean;\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Checkered/index.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\nexport function Checkered({\n  size = Theme.Common.Size.preset(),\n  className,\n}: Styleable & {\n  size?: Theme.Common.Size;\n}) {\n  return (\n    <div\n      style={{\n        backgroundImage: \"url('./Checkers.png')\",\n        ...(size === \"sm\" && {\n          backgroundSize: \"6px 6px\",\n        }),\n      }}\n      className={classes(\n        \"absolute left-0 top-0 h-full w-full bg-black bg-local bg-center bg-repeat\",\n        className\n      )}\n    >\n      <div className=\"h-full w-full bg-zinc-800/90\" />\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Common/index.tsx",
    "content": "export namespace Common {\n  export type Size = \"sm\" | \"md\" | \"lg\" | \"xl\";\n  export namespace Size {\n    export const preset = (): Size => \"md\";\n  }\n\n  export type Color = \"brand\" | \"indigo\" | \"red\" | \"green\" | \"yellow\" | \"zinc\";\n  export namespace Color {\n    export const preset = (): Color => \"zinc\";\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Divider/index.tsx",
    "content": "export function Divider({\n  variant = \"horizontal\",\n  children,\n  className,\n  lineClassName,\n}: Divider.Props) {\n  const line = (\n    <div\n      className={classes(\n        \"bg-muted-white-extra grow\",\n        variant === \"horizontal\" && \"h-[1px]\",\n        variant === \"vertical\" && \"w-[1px]\",\n        lineClassName\n      )}\n    />\n  );\n\n  return (\n    <div\n      className={classes(\n        \"flex select-none items-center justify-center\",\n        variant === \"horizontal\" && \"w-full flex-row\",\n        variant === \"vertical\" && \"min-h-full flex-col\",\n        !!children && \"-mb-2\",\n        className\n      )}\n    >\n      {line}\n      {children && (\n        <div className=\"text-muted-white mx-2 flex items-center justify-center\">\n          {children}\n        </div>\n      )}\n      {children && line}\n    </div>\n  );\n}\n\nexport namespace Divider {\n  export type Props = StyleableWithChildren & {\n    variant?: \"horizontal\" | \"vertical\";\n    lineClassName?: string;\n  };\n\n  export function Inline() {\n    return <span className=\"text-muted-white\">/</span>;\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Dropdown/index.tsx",
    "content": "import { useClickAway } from \"react-use\";\n\nimport { Theme } from \"..\";\n\nexport type Dropdown<\n  Options extends Dropdown.Options,\n  Item extends Dropdown.Options[number] = Dropdown.Options[number],\n  Value extends Item[\"value\"] = Item[\"value\"]\n> = StyleableWithChildren & {\n  value?: Value;\n  options?: Options;\n  onChange?: (item: Item) => void;\n\n  title?: React.ReactNode;\n  placeholder?: string;\n  size?: Theme.Common.Size;\n  noPadding?: boolean;\n  transparent?: boolean;\n  disabled?: boolean;\n  fullWidth?: boolean;\n  fixed?: boolean;\n  innerClassName?: string;\n};\n\nexport function Dropdown<Options extends Dropdown.Options>({\n  value,\n  onChange,\n\n  title,\n  placeholder = \"Select Option...\",\n  size = Theme.Common.Size.preset(),\n  transparent,\n  fullWidth,\n\n  className,\n\n  ...props\n}: Dropdown<Options>) {\n  // TODO: Share with `Theme.Button`\n  const sizing = useMemo(\n    () =>\n      classes(\n        size === \"sm\" && \"px-2.5 py-1 text-sm\",\n        size === \"md\" && \"px-2 py-1.5 text-base\",\n        size === \"lg\" && \"px-4 py-1 text-lg\"\n      ),\n    [size]\n  );\n\n  const [open, setOpen] = useState(false);\n  const selectRef = useRef<HTMLSelectElement>(null);\n  const parentRef = useRef<HTMLDivElement>(null);\n\n  useLayoutEffect(() => {\n    // set the width to the side of the select + some room for the icon\n    if (parentRef.current && selectRef.current && !fullWidth) {\n      parentRef.current.style.width = `${\n        selectRef.current.getBoundingClientRect().width + 16\n      }px`;\n    }\n  }, [fullWidth]);\n\n  useClickAway(parentRef, () => setOpen(false));\n\n  return (\n    <div\n      ref={parentRef}\n      className={classes(\n        \"group relative cursor-pointer rounded duration-150\",\n        fullWidth && \"w-[calc(100% + 0.5rem)] -mx-2\",\n        className\n      )}\n    >\n      <div\n        className={classes(\n          \"pointer-events-none absolute inset-0 rounded border duration-150\",\n          transparent\n            ? \"border-transparent bg-transparent\"\n            : open\n            ? \"border-transparent bg-zinc-700/50\"\n            : \"border-zinc-800 group-hover:border-zinc-700\"\n        )}\n      />\n      <select\n        ref={selectRef}\n        className={classes(\n          \"inline-block w-full cursor-pointer appearance-none rounded bg-zinc-900 focus:outline-none\",\n          transparent && \"bg-transparent\",\n          sizing,\n          props.innerClassName\n        )}\n        value={value}\n        onChange={(event) => {\n          const selected = props.options?.find(\n            (item) => item.value === event.target.value\n          );\n          if (selected) onChange?.(selected);\n          setOpen(false);\n        }}\n        onMouseDown={() => setOpen(!open)}\n        disabled={props.disabled}\n        placeholder={placeholder}\n      >\n        {title && (\n          <option value=\"\" disabled>\n            {title}\n          </option>\n        )}\n        {props.options?.map((item) => (\n          <option key={item.value} value={item.value} disabled={item.disabled}>\n            {item.label}\n          </option>\n        ))}\n      </select>\n      <div className=\"pointer-events-none absolute top-0 right-1 inline-block h-full\">\n        <div className=\"flex h-full w-full items-center justify-center\">\n          {open ? (\n            <Theme.Icon.ChevronUp className=\"h-6 w-6\" />\n          ) : (\n            <Theme.Icon.ChevronDown className=\"h-6 w-6\" />\n          )}\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport namespace Dropdown {\n  export type Options = Item[];\n  export type Item = {\n    value: string;\n    label: React.ReactNode;\n    icon?: React.ReactNode;\n    description?: React.ReactNode;\n    disabled?: boolean;\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Icon/SVGs.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\ntype Props = Theme.Icon.Props;\n\nexport function Instagram(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 24 24\"\n      width={width}\n      height={height}\n      fill={color}\n      {...props}\n    >\n      <path d=\"M 8 3 C 5.239 3 3 5.239 3 8 L 3 16 C 3 18.761 5.239 21 8 21 L 16 21 C 18.761 21 21 18.761 21 16 L 21 8 C 21 5.239 18.761 3 16 3 L 8 3 z M 18 5 C 18.552 5 19 5.448 19 6 C 19 6.552 18.552 7 18 7 C 17.448 7 17 6.552 17 6 C 17 5.448 17.448 5 18 5 z M 12 7 C 14.761 7 17 9.239 17 12 C 17 14.761 14.761 17 12 17 C 9.239 17 7 14.761 7 12 C 7 9.239 9.239 7 12 7 z M 12 9 A 3 3 0 0 0 9 12 A 3 3 0 0 0 12 15 A 3 3 0 0 0 15 12 A 3 3 0 0 0 12 9 z\" />\n    </svg>\n  ));\n}\n\nexport function Twitter(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 24 24\"\n      width={width}\n      height={height}\n      fill={color}\n      {...props}\n    >\n      <path d=\"M22,3.999c-0.78,0.463-2.345,1.094-3.265,1.276c-0.027,0.007-0.049,0.016-0.075,0.023c-0.813-0.802-1.927-1.299-3.16-1.299 c-2.485,0-4.5,2.015-4.5,4.5c0,0.131-0.011,0.372,0,0.5c-3.353,0-5.905-1.756-7.735-4c-0.199,0.5-0.286,1.29-0.286,2.032 c0,1.401,1.095,2.777,2.8,3.63c-0.314,0.081-0.66,0.139-1.02,0.139c-0.581,0-1.196-0.153-1.759-0.617c0,0.017,0,0.033,0,0.051 c0,1.958,2.078,3.291,3.926,3.662c-0.375,0.221-1.131,0.243-1.5,0.243c-0.26,0-1.18-0.119-1.426-0.165 c0.514,1.605,2.368,2.507,4.135,2.539c-1.382,1.084-2.341,1.486-5.171,1.486H2C3.788,19.145,6.065,20,8.347,20 C15.777,20,20,14.337,20,8.999c0-0.086-0.002-0.266-0.005-0.447C19.995,8.534,20,8.517,20,8.499c0-0.027-0.008-0.053-0.008-0.08 c-0.003-0.136-0.006-0.263-0.009-0.329c0.79-0.57,1.475-1.281,2.017-2.091c-0.725,0.322-1.503,0.538-2.32,0.636 C20.514,6.135,21.699,4.943,22,3.999z\" />\n    </svg>\n  ));\n}\n\nexport function Discord(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 24 24\"\n      width={width}\n      height={height}\n      fill={color}\n      {...props}\n    >\n      <path d=\"M19.952,5.672c-1.904-1.531-4.916-1.79-5.044-1.801c-0.201-0.017-0.392,0.097-0.474,0.281 c-0.006,0.012-0.072,0.163-0.145,0.398c1.259,0.212,2.806,0.64,4.206,1.509c0.224,0.139,0.293,0.434,0.154,0.659 c-0.09,0.146-0.247,0.226-0.407,0.226c-0.086,0-0.173-0.023-0.252-0.072C15.584,5.38,12.578,5.305,12,5.305S8.415,5.38,6.011,6.872 c-0.225,0.14-0.519,0.07-0.659-0.154c-0.14-0.225-0.07-0.519,0.154-0.659c1.4-0.868,2.946-1.297,4.206-1.509 c-0.074-0.236-0.14-0.386-0.145-0.398C9.484,3.968,9.294,3.852,9.092,3.872c-0.127,0.01-3.139,0.269-5.069,1.822 C3.015,6.625,1,12.073,1,16.783c0,0.083,0.022,0.165,0.063,0.237c1.391,2.443,5.185,3.083,6.05,3.111c0.005,0,0.01,0,0.015,0 c0.153,0,0.297-0.073,0.387-0.197l0.875-1.202c-2.359-0.61-3.564-1.645-3.634-1.706c-0.198-0.175-0.217-0.477-0.042-0.675 c0.175-0.198,0.476-0.217,0.674-0.043c0.029,0.026,2.248,1.909,6.612,1.909c4.372,0,6.591-1.891,6.613-1.91 c0.198-0.172,0.5-0.154,0.674,0.045c0.174,0.198,0.155,0.499-0.042,0.673c-0.07,0.062-1.275,1.096-3.634,1.706l0.875,1.202 c0.09,0.124,0.234,0.197,0.387,0.197c0.005,0,0.01,0,0.015,0c0.865-0.027,4.659-0.667,6.05-3.111 C22.978,16.947,23,16.866,23,16.783C23,12.073,20.985,6.625,19.952,5.672z M8.891,14.87c-0.924,0-1.674-0.857-1.674-1.913 s0.749-1.913,1.674-1.913s1.674,0.857,1.674,1.913S9.816,14.87,8.891,14.87z M15.109,14.87c-0.924,0-1.674-0.857-1.674-1.913 s0.749-1.913,1.674-1.913c0.924,0,1.674,0.857,1.674,1.913S16.033,14.87,15.109,14.87z\" />\n    </svg>\n  ));\n}\n\nexport function CGSociety(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 225.000000 225.000000\"\n      width={width}\n      height={height}\n      {...props}\n    >\n      <g\n        transform=\"translate(0.000000,225.000000) scale(0.100000,-0.100000)\"\n        fill=\"none\"\n        stroke=\"none\"\n      >\n        <path\n          fill={color}\n          d=\"M0 1125 l0 -1125 1125 0 1125 0 0 1125 0 1125 -1125 0 -1125 0 0 -1125z m994 316 c61 -30 85 -78 86 -168 l0 -63 -105 0 -105 0 0 25 c0 15 -10 31 -26 42 -23 14 -53 17 -198 18 -196 0 -217 -6 -235 -72 -14 -51 -13 -209 2 -253 18 -53 57 -62 260 -58 163 3 169 4 188 27 10 13 19 36 19 52 l0 30 108 -3 107 -3 -2 -78 c-2 -97 -21 -133 -85 -165 -61 -31 -248 -43 -496 -32 -162 7 -188 11 -230 32 -28 14 -54 36 -66 56 -32 56 -42 308 -20 490 4 28 16 55 35 77 56 63 125 74 464 72 242 -2 252 -3 299 -26z m940 14 c121 -21 159 -60 172 -172 l7 -63 -102 0 c-55 0 -104 -1 -108 -2 -5 -2 -9 9 -11 25 -5 45 -30 51 -237 51 -214 1 -247 -6 -264 -56 -14 -41 -14 -236 0 -277 6 -17 19 -36 29 -41 11 -6 112 -10 231 -10 238 0 249 3 249 67 l0 33 -145 0 -145 0 0 70 0 70 250 0 250 0 -1 -92 c-2 -198 -18 -244 -101 -286 -41 -20 -69 -24 -215 -32 -92 -4 -239 -4 -326 0 -235 12 -276 38 -298 196 -13 93 -6 343 12 394 41 119 100 137 464 138 141 1 236 -3 289 -13z\"\n        />\n      </g>\n    </svg>\n  ));\n}\n\nexport function ArtStation(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 48 48\"\n      width={width}\n      height={height}\n      {...props}\n    >\n      <path\n        fill={color}\n        d=\"M2.141 34l3.771 6.519.001.001C6.656 41.991 8.18 43 9.94 43l.003 0 0 0h25.03l-5.194-9H2.141zM45.859 34.341c0-.872-.257-1.683-.697-2.364L30.977 7.319C30.245 5.94 28.794 5 27.124 5h-7.496l21.91 37.962 3.454-5.982C45.673 35.835 45.859 35.328 45.859 34.341zM25.838 28L16.045 11.038 6.252 28z\"\n      />\n    </svg>\n  ));\n}\n\nexport function InfoIcon({ width, height, color, ...props }: Props) {\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 16 16\"\n      width={width}\n      height={height}\n      fill={color}\n      {...props}\n    >\n      <path d=\"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z\" />\n      <path d=\"m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0z\" />\n    </svg>\n  );\n}\n\nexport function ShareIcon(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 16 16\"\n      width={width}\n      height={height}\n      fill={color}\n      {...props}\n    >\n      <path d=\"M13.5 1a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM11 2.5a2.5 2.5 0 1 1 .603 1.628l-6.718 3.12a2.499 2.499 0 0 1 0 1.504l6.718 3.12a2.5 2.5 0 1 1-.488.876l-6.718-3.12a2.5 2.5 0 1 1 0-3.256l6.718-3.12A2.5 2.5 0 0 1 11 2.5zm-8.5 4a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm11 5.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z\" />\n    </svg>\n  ));\n}\n\nexport function AspectRatio(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 16 16\"\n      width={width}\n      height={height}\n      fill={color}\n      {...props}\n    >\n      <path d=\"M0 3.5A1.5 1.5 0 0 1 1.5 2h13A1.5 1.5 0 0 1 16 3.5v9a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 0 12.5v-9zM1.5 3a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5h-13z\" />\n      <path d=\"M2 4.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1H3v2.5a.5.5 0 0 1-1 0v-3zm12 7a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1 0-1H13V8.5a.5.5 0 0 1 1 0v3z\" />\n    </svg>\n  ));\n}\n\nexport function ModelIcon(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 16 16\"\n      width={width}\n      height={height}\n      fill={color}\n      {...props}\n    >\n      <path d=\"M6 12.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5ZM3 8.062C3 6.76 4.235 5.765 5.53 5.886a26.58 26.58 0 0 0 4.94 0C11.765 5.765 13 6.76 13 8.062v1.157a.933.933 0 0 1-.765.935c-.845.147-2.34.346-4.235.346-1.895 0-3.39-.2-4.235-.346A.933.933 0 0 1 3 9.219V8.062Zm4.542-.827a.25.25 0 0 0-.217.068l-.92.9a24.767 24.767 0 0 1-1.871-.183.25.25 0 0 0-.068.495c.55.076 1.232.149 2.02.193a.25.25 0 0 0 .189-.071l.754-.736.847 1.71a.25.25 0 0 0 .404.062l.932-.97a25.286 25.286 0 0 0 1.922-.188.25.25 0 0 0-.068-.495c-.538.074-1.207.145-1.98.189a.25.25 0 0 0-.166.076l-.754.785-.842-1.7a.25.25 0 0 0-.182-.135Z\" />\n      <path d=\"M8.5 1.866a1 1 0 1 0-1 0V3h-2A4.5 4.5 0 0 0 1 7.5V8a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1v1a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-1a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1v-.5A4.5 4.5 0 0 0 10.5 3h-2V1.866ZM14 7.5V13a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.5A3.5 3.5 0 0 1 5.5 4h5A3.5 3.5 0 0 1 14 7.5Z\" />\n    </svg>\n  ));\n}\n\nexport function SlidersIcon(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 16 16\"\n      width={width}\n      height={height}\n      fill={color}\n      {...props}\n    >\n      <path\n        fillRule=\"evenodd\"\n        d=\"M10.5 1a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V4H1.5a.5.5 0 0 1 0-1H10V1.5a.5.5 0 0 1 .5-.5ZM12 3.5a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5Zm-6.5 2A.5.5 0 0 1 6 6v1.5h8.5a.5.5 0 0 1 0 1H6V10a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5ZM1 8a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2A.5.5 0 0 1 1 8Zm9.5 2a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V13H1.5a.5.5 0 0 1 0-1H10v-1.5a.5.5 0 0 1 .5-.5Zm1.5 2.5a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5Z\"\n      />\n    </svg>\n  ));\n}\n\nexport function SeedIcon(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 512 512\"\n      width={width}\n      height={height}\n      fill={color}\n      {...props}\n    >\n      <path d=\"M512 64c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 78.3 364 32 448 32h32c17.7 0 32 14.3 32 32zM0 128c0-17.7 14.3-32 32-32H64c123.7 0 224 100.3 224 224v32 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C100.3 352 0 251.7 0 128z\" />\n    </svg>\n  ));\n}\n\nexport function Scale(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"6 6 20 20\"\n      width={width}\n      height={height}\n      fill={color}\n      {...props}\n    >\n      <rect x=\"9\" y=\"9\" width=\"3\" height=\"3\" fill={color} />\n      <rect opacity=\"0.6\" x=\"20\" y=\"9\" width=\"3\" height=\"3\" fill={color} />\n      <rect opacity=\"0.8\" x=\"14.5\" y=\"9\" width=\"3\" height=\"3\" fill={color} />\n      <rect opacity=\"0.8\" x=\"9\" y=\"14.5\" width=\"3\" height=\"3\" fill={color} />\n      <rect opacity=\"0.4\" x=\"20\" y=\"14.5\" width=\"3\" height=\"3\" fill={color} />\n      <rect opacity=\"0.6\" x=\"14.5\" y=\"14.5\" width=\"3\" height=\"3\" fill={color} />\n      <rect opacity=\"0.6\" x=\"9\" y=\"20\" width=\"3\" height=\"3\" fill={color} />\n      <rect opacity=\"0.2\" x=\"20\" y=\"20\" width=\"3\" height=\"3\" fill={color} />\n      <rect opacity=\"0.4\" x=\"14.5\" y=\"20\" width=\"3\" height=\"3\" fill={color} />\n    </svg>\n  ));\n}\n\nexport function Steps(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"6 6 20 20\"\n      fill=\"none\"\n      width={width}\n      height={height}\n      {...props}\n    >\n      <g clipPath=\"url(#clip0_214_14526)\">\n        <path\n          d=\"M9 23.9999V18.9999H14V13.9999L19 13.9997V8.99988H24\"\n          stroke={color}\n          strokeLinejoin=\"round\"\n        />\n      </g>\n      <defs>\n        <clipPath id=\"clip0_214_14526\">\n          <rect\n            width=\"16\"\n            height=\"16\"\n            fill=\"white\"\n            transform=\"translate(8 8)\"\n          />\n        </clipPath>\n      </defs>\n    </svg>\n  ));\n}\n\nexport function Rectangle(props: Props) {\n  return defaults(props)(({ width, height, color = \"#3F3F46\", ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      width={width}\n      height={height}\n      {...props}\n    >\n      <path\n        d=\"M3.33333 19L20.6667 19C21.403 19 22 18.3036 22 17.4444L22 6.55556C22 5.69645 21.403 5 20.6667 5L3.33333 5C2.59695 5 2 5.69645 2 6.55556L2 17.4444C2 18.3036 2.59695 19 3.33333 19Z\"\n        stroke={color}\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <rect\n        x=\"19\"\n        y=\"16\"\n        width=\"14\"\n        height=\"8\"\n        transform=\"rotate(180 19 16)\"\n        stroke={color}\n        strokeLinejoin=\"round\"\n      />\n      <rect\n        x=\"16\"\n        y=\"16\"\n        width=\"8\"\n        height=\"8\"\n        transform=\"rotate(180 16 16)\"\n        fill={color}\n      />\n      <rect\n        x=\"17\"\n        y=\"17\"\n        width=\"10\"\n        height=\"10\"\n        transform=\"rotate(180 17 17)\"\n        fill=\"#18181B\"\n      />\n      <rect\n        x=\"20\"\n        y=\"14\"\n        width=\"16\"\n        height=\"4\"\n        transform=\"rotate(180 20 14)\"\n        fill=\"#18181B\"\n      />\n    </svg>\n  ));\n}\n\nexport function Generate(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 14 10\"\n      width={width}\n      height={height}\n      {...props}\n    >\n      <path\n        fillRule=\"evenodd\"\n        clipRule=\"evenodd\"\n        d=\"M0 0.5C0 0.223858 0.223858 0 0.5 0H3.5C3.77614 0 4 0.223858 4 0.5V3.5C4 3.77614 3.77614 4 3.5 4H0.5C0.223858 4 0 3.77614 0 3.5V0.5ZM1 1V3H3V1H1ZM5 0.5C5 0.223858 5.22386 0 5.5 0H8.5C8.77614 0 9 0.223858 9 0.5V3.5C9 3.77614 8.77614 4 8.5 4H5.5C5.22386 4 5 3.77614 5 3.5V0.5ZM6 1V3H8V1H6ZM10.5 0C10.2239 0 10 0.223858 10 0.5V3.5C10 3.77614 10.2239 4 10.5 4H13.5C13.7761 4 14 3.77614 14 3.5V0.5C14 0.223858 13.7761 0 13.5 0H10.5ZM11 3V1H13V3H11ZM0 6.5C0 6.22386 0.223858 6 0.5 6H3.5C3.77614 6 4 6.22386 4 6.5V9.5C4 9.77614 3.77614 10 3.5 10H0.5C0.223858 10 0 9.77614 0 9.5V6.5ZM1 7V9H3V7H1ZM5.5 6C5.22386 6 5 6.22386 5 6.5V9.5C5 9.77614 5.22386 10 5.5 10H8.5C8.77614 10 9 9.77614 9 9.5V6.5C9 6.22386 8.77614 6 8.5 6H5.5ZM6 9V7H8V9H6Z\"\n        fill={color}\n      />\n    </svg>\n  ));\n}\n\nexport function Variation(props: Props) {\n  return defaults(props)(({ width, height, ...props }) => (\n    <svg\n      width={width}\n      height={height}\n      viewBox=\"0 0 16 16\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      {...props}\n    >\n      <path\n        d=\"M3.67183 13.5269L3.67184 11.1072C3.67184 10.0026 4.56727 9.10722 5.67184 9.10722L9.86719 9.10722C10.9718 9.10722 11.8672 8.21179 11.8672 7.10722L11.8672 2.25825\"\n        stroke=\"#F9FAFB\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <path\n        d=\"M14.3262 3.94141L11.9116 1.52683L9.49701 3.94141\"\n        stroke=\"#F9FAFB\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <path\n        d=\"M3.67188 13.5269L3.67188 4.30708\"\n        stroke=\"#F9FAFB\"\n        strokeLinecap=\"round\"\n      />\n    </svg>\n  ));\n}\n\nexport function Dream(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      width={width}\n      height={height}\n      viewBox=\"0 0 21 20\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      {...props}\n    >\n      <path\n        d=\"M16.493 15.2672L17.0352 15.7854C17.2547 15.5558 17.3057 15.2127 17.1625 14.9292C17.0193 14.6456 16.713 14.483 16.3978 14.5233L16.493 15.2672ZM8.45711 10.5889L7.74713 10.8306L8.45711 10.5889ZM10.839 2.77376L11.3209 3.34843C11.5636 3.1449 11.6523 2.81085 11.5425 2.51375C11.4327 2.21665 11.1481 2.02056 10.8314 2.0238L10.839 2.77376ZM16.3978 14.5233C13.1713 14.9362 10.1445 13.2178 9.16709 10.3472L7.74713 10.8306C8.98441 14.4646 12.7513 16.5022 16.5882 16.0112L16.3978 14.5233ZM9.16709 10.3472C8.31741 7.85159 9.22305 5.10774 11.3209 3.34843L10.3571 2.19909C7.84641 4.30457 6.6731 7.67608 7.74713 10.8306L9.16709 10.3472ZM8.92273 3.78798C9.56847 3.61558 10.2143 3.53017 10.8467 3.52372L10.8314 2.0238C10.0741 2.03153 9.30342 2.13381 8.53581 2.33875L8.92273 3.78798ZM3.65923 12.1797C2.70919 8.62126 5.00941 4.83278 8.92273 3.78798L8.53581 2.33875C3.91162 3.57333 1.02312 8.12111 2.21 12.5666L3.65923 12.1797ZM12.405 16.8311C8.49171 17.8759 4.60927 15.7381 3.65923 12.1797L2.21 12.5666C3.39687 17.0121 8.16777 19.5149 12.792 18.2804L12.405 16.8311ZM15.9509 14.7491C15.0314 15.7111 13.8217 16.4529 12.405 16.8311L12.792 18.2804C14.4774 17.8304 15.9276 16.9444 17.0352 15.7854L15.9509 14.7491Z\"\n        fill={color}\n      />\n      <path\n        d=\"M15.0371 7.24414V9.65901\"\n        stroke={color}\n        strokeWidth=\"1.5\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <path\n        d=\"M16.2449 8.45166H13.8301\"\n        stroke={color}\n        strokeWidth=\"1.5\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <path\n        d=\"M18.6055 3V4.20744\"\n        stroke={color}\n        strokeWidth=\"1.5\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <path\n        d=\"M19.2074 3.60352H18\"\n        stroke={color}\n        strokeWidth=\"1.5\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  ));\n}\n\nexport function Upscale(props: Props) {\n  return defaults(props)(({ width, height, color, ...props }) => (\n    <svg\n      width={width}\n      height={height}\n      viewBox=\"0 0 16 16\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      strokeWidth=\"0.9\"\n      {...props}\n    >\n      <path\n        d=\"M14 2L6 10\"\n        stroke={color}\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <path\n        d=\"M8 2H2V14H14V8\"\n        stroke={color}\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <path\n        d=\"M10.667 2H14.0003V5.33333\"\n        stroke={color}\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <path\n        d=\"M9.33333 9.99996H6V6.66663\"\n        stroke={color}\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  ));\n}\n\nconst defaults =\n  (props: Props) =>\n  (render: (props: Props) => JSX.Element): JSX.Element =>\n    render({\n      ...props,\n      color: props.color ?? \"currentColor\",\n    });\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Icon/index.tsx",
    "content": "import {\n  AlertCircle,\n  AlertTriangle,\n  ArrowLeftCircle,\n  Brush,\n  Camera,\n  Check,\n  ChevronDown,\n  ChevronLeft,\n  ChevronRight,\n  ChevronsDownUp,\n  ChevronsLeftRight,\n  ChevronUp,\n  Clapperboard,\n  Coins,\n  Copy,\n  Dices,\n  Download,\n  Edit,\n  Eraser,\n  ExternalLink,\n  Eye,\n  EyeOff,\n  Focus,\n  Folders,\n  Hand,\n  History,\n  Image,\n  ImagePlus,\n  Import,\n  Info,\n  Keyboard,\n  Layers,\n  Locate,\n  LocateFixed,\n  Lock,\n  LucideProps,\n  Minus,\n  MoreHorizontal,\n  MoreVertical,\n  Palette,\n  Pencil,\n  Plus,\n  Redo,\n  RefreshCw as RefreshClockwise,\n  Search,\n  MousePointer2 as Select,\n  Settings,\n  Sidebar,\n  SidebarClose,\n  SidebarOpen,\n  Slash,\n  Sliders,\n  Sprout,\n  Star,\n  TimerReset,\n  Trash,\n  Undo,\n  Unlock,\n  Upload,\n  Users,\n  Wand2 as Wand,\n  Wrench,\n  X,\n  ZoomIn,\n  ZoomOut,\n} from \"lucide-react\";\n\nimport {\n  ArtStation,\n  AspectRatio,\n  CGSociety,\n  Discord,\n  Dream,\n  Generate,\n  InfoIcon,\n  Instagram,\n  ModelIcon,\n  Rectangle,\n  Scale,\n  ShareIcon,\n  SlidersIcon,\n  Steps,\n  Twitter,\n  Upscale,\n  Variation,\n} from \"./SVGs\";\n\nexport declare namespace Icon {\n  export {\n    AlertCircle,\n    AlertTriangle,\n    Brush,\n    Camera,\n    Image,\n    Check,\n    ChevronDown,\n    ChevronLeft,\n    ChevronRight,\n    ChevronUp,\n    Clapperboard,\n    Users,\n    ChevronsDownUp,\n    Copy,\n    Dices,\n    Download,\n    Eye,\n    Edit,\n    EyeOff,\n    ExternalLink,\n    Hand,\n    History,\n    Import,\n    Info,\n    Layers,\n    Locate,\n    Undo,\n    Redo,\n    LocateFixed,\n    Minus,\n    MoreVertical,\n    MoreHorizontal,\n    Slash,\n    Plus,\n    Select,\n    Sidebar,\n    SidebarOpen,\n    SidebarClose,\n    Search,\n    Settings,\n    Sliders,\n    Trash,\n    Wand,\n    Upload,\n    Wrench,\n    X,\n    RefreshClockwise,\n    ArtStation,\n    Instagram,\n    Twitter,\n    Discord,\n    CGSociety,\n    InfoIcon,\n    ShareIcon,\n    AspectRatio,\n    ModelIcon,\n    SlidersIcon,\n    Sprout,\n    Star,\n    TimerReset,\n    ZoomIn,\n    ZoomOut,\n    Focus,\n    Palette,\n    Steps,\n    Generate,\n    Scale,\n    Folders,\n    Coins,\n    Eraser,\n    Lock,\n    Unlock,\n    Rectangle,\n    ArrowLeftCircle,\n    ImagePlus,\n    Variation,\n    Pencil,\n    Dream,\n    Upscale,\n    Keyboard,\n    ChevronsLeftRight,\n  };\n}\n\nexport namespace Icon {\n  export type Prop = React.ReactNode | React.FunctionComponent<Props>;\n  export type Props = LucideProps;\n\n  function makeComponent(Icon: (props: Props) => JSX.Element) {\n    return (props: Props) => <Icon {...props} strokeWidth={1.5} />;\n  }\n\n  Icon.AlertCircle = makeComponent(AlertCircle);\n  Icon.AlertTriangle = makeComponent(AlertTriangle);\n  Icon.Brush = makeComponent(Brush);\n  Icon.Camera = makeComponent(Camera);\n  Icon.Check = makeComponent(Check);\n  Icon.ChevronDown = makeComponent(ChevronDown);\n  Icon.ChevronUp = makeComponent(ChevronUp);\n  Icon.ChevronsDownUp = makeComponent(ChevronsDownUp);\n  Icon.ChevronLeft = makeComponent(ChevronLeft);\n  Icon.Users = makeComponent(Users);\n  Icon.Clapperboard = makeComponent(Clapperboard);\n  Icon.ChevronRight = makeComponent(ChevronRight);\n  Icon.Copy = makeComponent(Copy);\n  Icon.Dices = makeComponent(Dices);\n  Icon.Download = makeComponent(Download);\n  Icon.Image = makeComponent(Image);\n  Icon.Eye = makeComponent(Eye);\n  Icon.Folders = makeComponent(Folders);\n  Icon.Download = makeComponent(Download);\n  Icon.EyeOff = makeComponent(EyeOff);\n  Icon.Edit = makeComponent(Edit);\n  Icon.ExternalLink = makeComponent(ExternalLink);\n  Icon.Slash = makeComponent(Slash);\n  Icon.Hand = makeComponent(Hand);\n  Icon.History = makeComponent(History);\n  Icon.Import = makeComponent(Import);\n  Icon.Info = makeComponent(Info);\n  Icon.Layers = makeComponent(Layers);\n  Icon.Palette = makeComponent(Palette);\n  Icon.Locate = makeComponent(Locate);\n  Icon.LocateFixed = makeComponent(LocateFixed);\n  Icon.Minus = makeComponent(Minus);\n  Icon.MoreVertical = makeComponent(MoreVertical);\n  Icon.MoreHorizontal = makeComponent(MoreHorizontal);\n  Icon.Plus = makeComponent(Plus);\n  Icon.Select = makeComponent(Select);\n  Icon.Settings = makeComponent(Settings);\n  Icon.Sliders = makeComponent(Sliders);\n  Icon.Trash = makeComponent(Trash);\n  Icon.Wand = makeComponent(Wand);\n  Icon.Undo = makeComponent(Undo);\n  Icon.Redo = makeComponent(Redo);\n  Icon.Upload = makeComponent(Upload);\n  Icon.Wrench = makeComponent(Wrench);\n  Icon.X = makeComponent(X);\n  Icon.ArtStation = makeComponent(ArtStation);\n  Icon.Instagram = makeComponent(Instagram);\n  Icon.Twitter = makeComponent(Twitter);\n  Icon.Discord = makeComponent(Discord);\n  Icon.Generate = makeComponent(Generate);\n  Icon.CGSociety = makeComponent(CGSociety);\n  Icon.RefreshClockwise = makeComponent(RefreshClockwise);\n  Icon.InfoIcon = makeComponent(InfoIcon);\n  Icon.ShareIcon = makeComponent(ShareIcon);\n  Icon.Search = makeComponent(Search);\n  Icon.AspectRatio = makeComponent(AspectRatio);\n  Icon.ModelIcon = makeComponent(ModelIcon);\n  Icon.SlidersIcon = makeComponent(SlidersIcon);\n  Icon.Sprout = makeComponent(Sprout);\n  Icon.Star = makeComponent(Star);\n  Icon.TimerReset = makeComponent(TimerReset);\n  Icon.ZoomIn = makeComponent(ZoomIn);\n  Icon.ZoomOut = makeComponent(ZoomOut);\n  Icon.Focus = makeComponent(Focus);\n  Icon.Sidebar = makeComponent(Sidebar);\n  Icon.SidebarOpen = makeComponent(SidebarOpen);\n  Icon.SidebarClose = makeComponent(SidebarClose);\n  Icon.Steps = makeComponent(Steps);\n  Icon.Scale = makeComponent(Scale);\n  Icon.Coins = makeComponent(Coins);\n  Icon.Eraser = makeComponent(Eraser);\n  Icon.Lock = makeComponent(Lock);\n  Icon.Unlock = makeComponent(Unlock);\n  Icon.Rectangle = makeComponent(Rectangle);\n  Icon.ArrowLeftCircle = makeComponent(ArrowLeftCircle);\n  Icon.ImagePlus = makeComponent(ImagePlus);\n  Icon.Variation = makeComponent(Variation);\n  Icon.Pencil = makeComponent(Pencil);\n  Icon.Dream = makeComponent(Dream);\n  Icon.Upscale = makeComponent(Upscale);\n  Icon.Keyboard = makeComponent(Keyboard);\n  Icon.ChevronsLeftRight = makeComponent(ChevronsLeftRight);\n\n  export function Invisible(props: Props) {\n    return (\n      <Icon.Check\n        {...props}\n        css={css`\n          & {\n            opacity: 0;\n          }\n        `}\n      />\n    );\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Input/index.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\nexport type Input = Styleable & {\n  loading?: boolean;\n  autoSize?: boolean;\n  value?: string;\n\n  icon?: React.ReactNode | React.FunctionComponent<Theme.Icon.Props>;\n  iconLeft?: React.ReactNode | React.FunctionComponent<Theme.Icon.Props>;\n  iconRight?: React.ReactNode | React.FunctionComponent<Theme.Icon.Props>;\n\n  onChange: (value: string) => void;\n\n  onFocus?: (\n    event:\n      | React.FocusEvent<HTMLTextAreaElement>\n      | React.FocusEvent<HTMLInputElement>\n  ) => void;\n\n  onBlur?: (\n    event:\n      | React.FocusEvent<HTMLTextAreaElement>\n      | React.FocusEvent<HTMLInputElement>\n  ) => void;\n\n  onKeyDown?: React.KeyboardEventHandler<\n    HTMLTextAreaElement | HTMLInputElement\n  >;\n\n  autoFocus?: boolean;\n  placeholder?: string;\n  disabled?: boolean;\n  fullWidth?: boolean;\n  size?: Theme.Common.Size;\n  transparent?: boolean;\n  type?: \"text\" | \"password\" | \"number\" | \"email\" | \"url\";\n};\n\nexport function Input(props: Input) {\n  if (props.autoSize) {\n    return <AutosizeTextArea {...props} />;\n  } else {\n    return <SingleInput {...props} />;\n  }\n}\n\nfunction AutosizeTextArea({\n  size = Theme.Common.Size.preset(),\n  autoFocus = false,\n\n  value,\n  onChange,\n\n  ...props\n}: Input) {\n  const textareaRef = useRef<HTMLTextAreaElement>(null);\n  const [, setForceUpdate] = useState(0);\n\n  useEffect(() => {\n    if (textareaRef.current) {\n      const styles = window.getComputedStyle(textareaRef.current);\n      textareaRef.current.style.height = \"auto\";\n\n      const newHeight =\n        textareaRef.current.scrollHeight +\n        parseInt(styles.paddingTop) +\n        parseInt(styles.paddingBottom);\n\n      if (newHeight === 0) {\n        setForceUpdate((n) => n + 1);\n        return;\n      }\n\n      textareaRef.current.style.height = newHeight + \"px\";\n    }\n  }, [value]);\n\n  useEffect(() => {\n    if (!textareaRef.current || !autoFocus) return;\n    textareaRef.current.blur();\n    textareaRef.current.focus();\n  }, [autoFocus]);\n\n  return (\n    <textarea\n      ref={textareaRef}\n      className={classes(\n        \"dark:placeholder:text-muted-white w-full resize-none overflow-y-clip rounded text-black shadow-sm focus:border-transparent focus:outline-none dark:border-transparent dark:text-white\",\n\n        size === \"sm\"\n          ? \"h-8 px-2 py-1 text-sm\"\n          : size === \"lg\"\n          ? \"h-12 px-3 py-1 text-lg\"\n          : \"h-10 px-2 py-1 text-base\",\n\n        props.disabled &&\n          `cursor-not-allowed ${!props.transparent && \"bg-black/10\"}`,\n\n        props.transparent ? \"bg-transparent\" : \"dark:bg-white/5\",\n        props.className\n      )}\n      onFocus={props.onFocus}\n      onBlur={props.onBlur}\n      placeholder={props.placeholder}\n      disabled={props.disabled}\n      value={value}\n      onChange={useCallback(\n        (event: React.ChangeEvent<HTMLTextAreaElement>) =>\n          onChange(event.target.value),\n        [onChange]\n      )}\n      onKeyDown={props.onKeyDown}\n    />\n  );\n}\n\nfunction SingleInput({\n  loading,\n\n  icon,\n  iconLeft = icon,\n  iconRight,\n\n  autoFocus = false,\n  transparent = false,\n  size = Theme.Common.Size.preset(),\n  fullWidth = true,\n\n  className,\n\n  value,\n  onChange,\n\n  ...props\n}: Input) {\n  const inputRef = useRef<HTMLInputElement>(null);\n\n  useEffect(() => {\n    if (!inputRef.current || !autoFocus) return;\n    inputRef.current.blur();\n    inputRef.current.focus();\n  }, [autoFocus]);\n\n  // TODO: Share with `Theme.Button`\n  const sizing = useMemo(\n    () =>\n      ({\n        sm: classes(\"px-2.5 py-2 text-sm\", transparent ? \"px-0\" : \"\"),\n        md: classes(\"px-3 py-2 text-base\", transparent ? \"px-0\" : \"\"),\n        lg: classes(\"px-4 py-2 text-lg\", transparent ? \"px-0\" : \"\"),\n      }[size === \"xl\" ? \"lg\" : size]),\n    [transparent, size]\n  );\n\n  const icons = useMemo(() => {\n    const render = (icon: typeof iconLeft, position: \"left\" | \"right\") => {\n      const className = classes(\n        \"opacity-60 h-5 w-5 text-black dark:text-white\",\n        position === \"left\" && \"mr-1 -ml-1\",\n        position === \"right\" && \"ml-1 -mr-1\"\n      );\n\n      if (loading && position === \"left\")\n        return <Theme.Loading.Spinner {...{ className }} />;\n\n      if (!icon) return null;\n      if (typeof icon === \"function\") return icon({ className });\n      if (typeof icon !== \"object\") return icon;\n\n      if (React.isValidElement(icon)) return icon;\n\n      return null;\n    };\n\n    return {\n      left: iconLeft && render(iconLeft, \"left\"),\n      right: iconRight && render(iconRight, \"right\"),\n    };\n  }, [loading, iconLeft, iconRight]);\n\n  return (\n    <div className={classes(\"relative\", fullWidth && \"w-full\", className)}>\n      {icons.left && (\n        <div className=\"pointer-events-none absolute bottom-0 left-0 top-0 flex items-center justify-center pl-3\">\n          {icons.left}\n        </div>\n      )}\n      <input\n        ref={inputRef}\n        className={classes(\n          \"dark:placeholder:text-muted-white h-full w-full rounded bg-zinc-100/75 text-black shadow-sm focus:border-transparent focus:outline-none dark:border-none dark:bg-white/5 dark:text-white\",\n          sizing,\n          props.disabled && \"cursor-not-allowed bg-black/10\",\n          transparent && \"bg-transparent dark:bg-transparent\",\n          !!iconLeft && \"pl-9\",\n          !!iconRight && \"pr-9\"\n        )}\n        placeholder={props.placeholder}\n        disabled={props.disabled}\n        onFocus={props.onFocus}\n        onBlur={props.onBlur}\n        value={value}\n        onChange={useCallback(\n          (event: React.ChangeEvent<HTMLInputElement>) =>\n            onChange(event.target.value),\n          [onChange]\n        )}\n        onKeyDown={props.onKeyDown}\n        type={props.type || \"text\"}\n      />\n      {icons.right && (\n        <div className=\"pointer-events-none absolute bottom-0 right-0 top-0 flex items-center justify-center pr-3\">\n          {icons.right}\n        </div>\n      )}\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Label.tsx",
    "content": "export function Label({ children, className }: StyleableWithChildren) {\n  return (\n    <h2\n      className={classes(\n        \"opacity-muted ml-2.5 -mb-1 select-none text-sm font-light\",\n        className\n      )}\n    >\n      {children}\n    </h2>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Loading/Rainbow.tsx",
    "content": "import { keyframes } from \"@emotion/react\";\n\nexport function Rainbow({\n  showing = true,\n  variant = \"spiral\",\n  className,\n}: Styleable & {\n  showing?: boolean;\n  variant?: \"linear\" | \"spiral\";\n}) {\n  const ref = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    if (!ref.current) return;\n    ref.current.style.animationName = \"none\";\n    ref.current.style.animationName = growShrink.name;\n  }, [ref, showing]);\n\n  const offset = useMemo(() => Math.random() * 10, []);\n  return (\n    <div\n      className={classes(\n        \"duration-1500 absolute top-0 left-0 right-0 bottom-0 overflow-hidden opacity-20 blur-2xl\",\n        !showing && \"opacity-0\",\n        className\n      )}\n    >\n      {variant === \"linear\" ? (\n        <div />\n      ) : (\n        <div\n          ref={ref}\n          className=\"h-full w-full\"\n          css={css`\n            animation-name: ${growShrink};\n            animation-duration: 7s;\n            animation-iteration-count: infinite;\n            animation-timing-function: ease-in-out;\n            animation-direction: alternate;\n          `}\n        >\n          <div\n            className=\"h-full w-full\"\n            css={css`\n              background-image: url(\"/RainbowSpiral.jpg\");\n              background-size: cover;\n              background-repeat: repeat;\n              background-position: center;\n\n              animation-name: ${spin};\n              animation-duration: 3s;\n              animation-iteration-count: infinite;\n              animation-timing-function: linear;\n            `}\n            style={{\n              animationDelay: `-${offset}s`,\n            }}\n          />\n        </div>\n      )}\n    </div>\n  );\n}\n\nconst spin = keyframes`\n  0% {\n    transform: scale(${Math.sqrt(2)}) rotate(0deg);\n  }\n\n  100% {\n    transform: scale(${Math.sqrt(2)}) rotate(360deg);\n  }\n`;\n\nconst growShrink = keyframes`\n  0% {\n    transform: scale(7);\n  }\n\n  100% {\n    transform: scale(3);\n  }\n`;\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Loading/Spinner.tsx",
    "content": "export function Spinner({ className }: Styleable) {\n  return (\n    <svg\n      width=\"38\"\n      height=\"38\"\n      viewBox=\"0 0 38 38\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      stroke=\"#fff\"\n      className={className}\n    >\n      <g fill=\"none\" fillRule=\"evenodd\">\n        <g transform=\"translate(1 1)\" strokeWidth=\"2\">\n          <circle strokeOpacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\" />\n          <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n            <animateTransform\n              attributeName=\"transform\"\n              type=\"rotate\"\n              from=\"0 18 18\"\n              to=\"360 18 18\"\n              dur=\"1s\"\n              repeatCount=\"indefinite\"\n            />\n          </path>\n        </g>\n      </g>\n    </svg>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Loading/index.tsx",
    "content": "import { Rainbow } from \"./Rainbow\";\nimport { Spinner } from \"./Spinner\";\n\nexport declare namespace Loading {\n  export { Spinner, Rainbow };\n}\n\nexport namespace Loading {\n  Loading.Spinner = Spinner;\n  Loading.Rainbow = Rainbow;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Logo/Next.tsx",
    "content": "import { Logo } from \".\";\n\nexport function Next() {\n  return (\n    <div className=\"flex items-center gap-1.5\">\n      <Logo />\n      <div className=\"flex flex-col\">\n        <span className=\"text-lg font-medium\">StableStudio</span>\n        <span className=\"-mt-1 text-xs font-light\">\n          <span className=\"text-white/75\">by </span>stability.ai\n        </span>\n      </div>\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Logo/index.tsx",
    "content": "import { Next } from \"./Next\";\n\nexport function Logo(props: JSX.IntrinsicElements[\"img\"]) {\n  return <img src=\"/logo.png\" alt=\"Logo\" {...props} />;\n}\n\nLogo.Next = Next;\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Modal/Actions.tsx",
    "content": "import { Theme } from \"..\";\n\nexport type Action = {\n  label: string;\n  onClick: () => void;\n  variant?: \"brand\" | \"red\" | \"zinc\";\n  size?: Theme.Common.Size;\n  disabled?: boolean;\n};\n\nexport type Actions = Action[];\n\nexport function Actions({ actions }: { actions: Actions }) {\n  return (\n    <div className=\"mt-4 flex flex-row items-center justify-end gap-2\">\n      {actions.map((action, index) => (\n        <Action {...action} key={index} />\n      ))}\n    </div>\n  );\n}\n\nfunction Action({\n  label,\n  onClick,\n  variant = \"zinc\",\n  size = Theme.Common.Size.preset(),\n  disabled = false,\n}: Action) {\n  return (\n    <Theme.Button\n      color={variant}\n      onClick={onClick}\n      size={size}\n      disabled={disabled}\n    >\n      {label}\n    </Theme.Button>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Modal/Description.tsx",
    "content": "export function Description({ className, children }: StyleableWithChildren) {\n  return (\n    <p className={classes(\"text-left opacity-90\", className)}>{children}</p>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Modal/Panel.tsx",
    "content": "export function Panel({ className, children }: StyleableWithChildren) {\n  return (\n    <div\n      className={classes(\n        \"flex flex-col rounded-lg border border-zinc-700 bg-zinc-900\",\n        className\n      )}\n    >\n      {children}\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Modal/Title.tsx",
    "content": "export function Title({ className, children }: StyleableWithChildren) {\n  return (\n    <h1 className={classes(\"text-left text-2xl font-medium\", className)}>\n      {children}\n    </h1>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Modal/TopBar.tsx",
    "content": "import { Theme } from \"..\";\n\nexport function TopBar({\n  className,\n  children,\n  onClose,\n}: StyleableWithChildren & {\n  onClose?: () => void;\n}) {\n  return (\n    <div\n      className={classes(\n        \"flex flex-row items-center justify-between rounded-t-lg border-b border-zinc-700 bg-zinc-900 p-2\",\n        className\n      )}\n    >\n      <div>{children}</div>\n      <Theme.Button icon={Theme.Icon.X} onClick={() => onClose?.()} />\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Modal/index.tsx",
    "content": "import { AnimatePresence, motion } from \"framer-motion\";\nimport { createPortal } from \"react-dom\";\nimport { Shortcut } from \"~/Shortcut\";\n\nimport { Actions } from \"./Actions\";\nimport { Description } from \"./Description\";\nimport { Panel } from \"./Panel\";\nimport { Title } from \"./Title\";\nimport { TopBar } from \"./TopBar\";\n\nconst outSideVariants = {\n  closed: {\n    opacity: 0,\n    transition: {\n      type: \"tween\",\n      duration: 0.1,\n    },\n  },\n  open: {\n    opacity: 1,\n    transition: {\n      type: \"tween\",\n      duration: 0.1,\n    },\n  },\n};\n\nconst insideVariants = {\n  closed: {\n    scale: 0.9,\n    opacity: 0,\n    transition: {\n      type: \"spring\",\n      damping: 30,\n      stiffness: 500,\n      restSpeed: 10,\n    },\n  },\n  open: {\n    scale: 1,\n    opacity: 1,\n    transition: {\n      type: \"spring\",\n      damping: 22,\n      stiffness: 500,\n      restSpeed: 0.1,\n    },\n  },\n};\n\nexport function Modal(\n  props: StyleableWithChildren & {\n    open: boolean;\n    onClose: () => void;\n    children: React.ReactNode;\n    modalName: string;\n  }\n) {\n  const root = useMemo(() => document.getElementById(\"modal-root\"), []);\n  if (!root) {\n    console.error(\"Could not find root element\");\n    return null;\n  }\n\n  const content = (\n    <AnimatePresence>{props.open && <Open {...props} />}</AnimatePresence>\n  );\n\n  return createPortal(content, root);\n}\n\nfunction Open({\n  open,\n  onClose,\n  children,\n  className,\n  modalName,\n}: StyleableWithChildren & {\n  open: boolean;\n  onClose: () => void;\n  children: React.ReactNode;\n  modalName: string;\n}) {\n  Shortcut.use(\n    useMemo(\n      () => ({\n        menu: false,\n        name: [`${modalName} Modal`, \"Close\"],\n        keys: \"Escape\",\n        action: () => {\n          onClose();\n        },\n      }),\n      [modalName, onClose]\n    )\n  );\n\n  return (\n    <motion.div\n      className={classes(\n        \"fixed top-0 left-0 z-[1000] flex h-full w-full bg-black/75 sm:h-screen sm:w-screen sm:items-center sm:justify-center\",\n        !open && \"pointer-events-none\"\n      )}\n      variants={outSideVariants}\n      initial=\"closed\"\n      animate={open ? \"open\" : \"closed\"}\n      exit=\"closed\"\n      onClick={onClose}\n    >\n      <motion.div\n        className={classes(!open && \"pointer-events-none\", className)}\n        variants={insideVariants}\n        initial=\"closed\"\n        animate={open ? \"open\" : \"closed\"}\n        exit=\"closed\"\n        onClick={(e) => e.stopPropagation()}\n      >\n        {open && children}\n      </motion.div>\n    </motion.div>\n  );\n}\n\nexport declare namespace Modal {\n  export { Modal, Panel, Title, Description, Actions, TopBar };\n}\n\nexport namespace Modal {\n  Modal.Panel = Panel;\n  Modal.Title = Title;\n  Modal.Description = Description;\n  Modal.Actions = Actions;\n  Modal.TopBar = TopBar;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Mode.ts",
    "content": "export type Mode = \"system\" | \"light\" | \"dark\";\nexport namespace Mode {\n  export const use = () =>\n    useMemo(\n      () => ({\n        dark: true,\n        systemPrefersDark: true,\n      }),\n      []\n    );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/New/index.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\nexport function New(props: Theme.Badge.Props) {\n  return (\n    <Theme.Badge {...props} variant=\"outline\" color=\"zinc\">\n      {props.children ?? <>New</>}\n    </Theme.Badge>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/NumberInput/index.tsx",
    "content": "import { Theme } from \"~/Theme\";\n\nexport function NumberInput(rawProps: Input.Props) {\n  const {\n    onChange: propsOnChange,\n    onNumberChange: propsOnNumberChange,\n    ...props\n  } = Input.Props.usePresets(rawProps);\n\n  const [focused, setFocused] = useState(false);\n  const [value, setValue] = useState(props.value);\n\n  useEffect(() => setValue(props.value), [props.value, setValue]);\n\n  const parseNumber = Input.useParseNumber({\n    ...props,\n    clamping: false,\n  });\n\n  const onFocus = useCallback(\n    (event: React.FocusEvent<HTMLInputElement>) => {\n      if (props.disabled) return;\n      setFocused(true);\n      props.autoSelect && event.target.select();\n    },\n    [props.disabled, props.autoSelect]\n  );\n\n  const onValueChange = useCallback(\n    (value: string) => {\n      setValue(value);\n      propsOnChange?.(value);\n\n      if (!props.number || !propsOnNumberChange) return;\n\n      const number = parseNumber(value);\n      number && propsOnNumberChange(number);\n    },\n    [props.number, parseNumber, propsOnChange, propsOnNumberChange]\n  );\n\n  const onBlur = useCallback(() => {\n    setFocused(false);\n    const parsed = parseNumber(value);\n    if (parsed) {\n      onValueChange(\n        `${clamp(props.min ?? -Infinity, parsed, props.max ?? Infinity)}`\n      );\n    } else {\n      onValueChange(props.value ? `${props.value}` : \"\");\n    }\n  }, [onValueChange, parseNumber, props.max, props.min, props.value, value]);\n\n  const onChange = useCallback(\n    (event: React.ChangeEvent<HTMLInputElement>) =>\n      onValueChange(event.target.value),\n    [onValueChange]\n  );\n\n  const { icon, iconRight, outsideIcon } = Input.useIcons({\n    ...props,\n    value,\n    onChange: onValueChange,\n  });\n\n  const onKeyDown = useCallback(\n    (event: React.KeyboardEvent<HTMLInputElement>) => {\n      if (event.key === \"Enter\") event.currentTarget.blur();\n    },\n    []\n  );\n\n  return (\n    <div\n      className={classes(\n        \"group flex flex-col gap-1\",\n        !props.fullWidth && \"w-fit\",\n        props.className\n      )}\n    >\n      {props.label && (\n        <label className=\"opacity-muted text-sm font-light\">\n          {props.label}\n        </label>\n      )}\n      <div\n        className={classes(\n          \"-ml-1 flex flex-row items-center\",\n          props.containerClassName\n        )}\n      >\n        {outsideIcon}\n        <div\n          className={classes(\n            \"flex flex-row items-center rounded pl-1 outline outline-1 outline-transparent duration-150\",\n            focused ? \"outline-brand-500\" : \"group-hover:outline-zinc-700\",\n            props.inputClassName\n          )}\n        >\n          {icon}\n          <input\n            className={classes(\n              \"rounded bg-transparent py-0.5 text-black outline-none placeholder:text-black/50 dark:text-white dark:placeholder:text-white/20\",\n              props.disabled && \"cursor-not-allowed\",\n              props.fullWidth ? \"w-full\" : \"w-20\",\n              props.percentage && \"w-12 text-right\"\n            )}\n            value={\n              !focused && props.round && !isNaN(Number(value))\n                ? Math.round(Number(value))\n                : value\n            }\n            onChange={onChange}\n            placeholder={props.placeholder}\n            disabled={props.disabled}\n            onFocus={onFocus}\n            onBlur={onBlur}\n            onKeyDown={onKeyDown}\n          />\n          {iconRight ??\n            (props.percentage && <div className=\"opacity-muted px-1\">%</div>)}\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport namespace Input {\n  export type Props = Styleable & {\n    value?: string | number;\n    percentage?: boolean;\n    number?: boolean;\n    min?: number;\n    max?: number;\n    step?: number;\n\n    icon?: React.ReactNode | React.FunctionComponent<Theme.Icon.Props> | string;\n    iconRight?: React.ReactNode | React.FunctionComponent<Theme.Icon.Props>;\n    outsideIcon?: React.ReactNode | React.FunctionComponent<Theme.Icon.Props>;\n    loading?: boolean;\n    disabled?: boolean;\n    placeholder?: string;\n    label?: string;\n    fullWidth?: boolean;\n    autoSelect?: boolean;\n    /** If true, the value will be clamped to the min/max range when the input changes */\n    clamping?: boolean;\n    round?: boolean;\n\n    inputClassName?: string;\n    containerClassName?: string;\n\n    onChange?: (value: string) => void;\n    onNumberChange?: (number: number) => void;\n    onFocus?: (\n      event:\n        | React.FocusEvent<HTMLTextAreaElement>\n        | React.FocusEvent<HTMLInputElement>\n    ) => void;\n  };\n\n  export namespace Props {\n    export const usePresets = (props: Props) =>\n      useMemo(\n        () => ({\n          value: props.value ?? \"\",\n\n          percentage: props.percentage ?? false,\n          number: props.number ?? false,\n\n          min: props.min ?? -Infinity,\n          max: props.max ?? Infinity,\n          step: props.step ?? 1,\n\n          autoSelect: props.autoSelect ?? true,\n\n          ...props,\n        }),\n        [props]\n      );\n  }\n\n  export const useParseNumber = ({ number, min, max, step, clamping }: Props) =>\n    useCallback(\n      (value: string | number) => {\n        if (!number) return;\n        if (value === \"\") return;\n\n        const float = typeof value === \"number\" ? value : parseFloat(value);\n        if (isNaN(float)) return;\n\n        const fraction = (step ?? 1) % 1;\n        const decimalPlaces = fraction.toString().split(\".\")[1]?.length ?? 0;\n        const rounded = step ? Math.round(float / step) * step : float;\n        const fixed = parseFloat(rounded.toFixed(decimalPlaces));\n\n        return clamping\n          ? clamp(min ?? -Infinity, fixed, max ?? Infinity)\n          : fixed;\n      },\n      [number, step, clamping, min, max]\n    );\n\n  export const useIcons = ({\n    value = \"\",\n    onChange,\n    disabled,\n    loading,\n    min,\n    max,\n    step,\n    number,\n    icon,\n    iconRight,\n  }: Props) => {\n    const parseNumber = Input.useParseNumber({\n      number,\n      min,\n      max,\n      step,\n      clamping: true,\n    });\n\n    const onMouseDown = useCallback(\n      (event: React.MouseEvent) => {\n        if (disabled) return;\n        if (number) {\n          const startX = event.clientX;\n\n          const mouseMove = throttle(\n            (event: MouseEvent) => {\n              const movement = event.clientX - startX;\n\n              const number = parseNumber(value);\n              if (!number) return;\n\n              const speed = max ? (50 * (step ?? 1)) / max : 1;\n              const updated = parseNumber(number + movement * speed);\n\n              if (!updated) return;\n              onChange?.(updated.toString());\n\n              window.getSelection()?.removeAllRanges();\n              document.body.style.cursor = \"ew-resize\";\n            },\n            25,\n            { trailing: true }\n          );\n\n          const mouseUp = () => {\n            window.removeEventListener(\"mousemove\", mouseMove);\n            window.removeEventListener(\"mouseup\", mouseUp);\n            document.body.style.cursor = \"default\";\n          };\n\n          window.addEventListener(\"mousemove\", mouseMove);\n          window.addEventListener(\"mouseup\", mouseUp);\n        }\n      },\n      [disabled, number, value, step, max, parseNumber, onChange]\n    );\n\n    return {\n      icon: useMemo(() => {\n        if (!icon) return null;\n\n        const className = classes(\n          \"opacity-60 h-7 w-7 p-1 select-none shrink-0\",\n          !disabled && number && value ? \"cursor-ew-resize\" : \"\"\n        );\n\n        if (loading) return <Theme.Loading.Spinner {...{ className }} />;\n\n        if (typeof icon === \"function\")\n          return icon({\n            className: `${className} -ml-1`,\n            onMouseDown,\n          });\n\n        if (typeof icon === \"string\") {\n          if (icon.length !== 1) return null;\n          return (\n            <h1\n              className=\"opacity-muted -ml-1 flex h-7 w-7 cursor-ew-resize select-none items-center justify-center\"\n              onMouseDown={onMouseDown}\n            >\n              {icon}\n            </h1>\n          );\n        }\n\n        if (typeof icon !== \"object\") return icon;\n        if (React.isValidElement(icon)) return icon;\n\n        return null;\n      }, [icon, disabled, number, value, loading, onMouseDown]),\n\n      iconRight: useMemo(() => {\n        if (!iconRight) return null;\n\n        const className = classes(\n          \"opacity-60 h-7 w-7 p-1 select-none shrink-0\"\n        );\n\n        if (typeof iconRight === \"function\")\n          return iconRight({\n            className,\n          });\n\n        if (typeof iconRight === \"string\") {\n          if (iconRight.length !== 1) return;\n          return (\n            <h1 className=\"opacity-muted flex h-7 w-7 select-none items-center justify-center\">\n              {iconRight}\n            </h1>\n          );\n        }\n\n        if (typeof iconRight !== \"object\") return iconRight;\n        if (React.isValidElement(iconRight)) return iconRight;\n\n        return null;\n      }, [iconRight]),\n\n      outsideIcon: useMemo(() => {\n        if (!icon) return null;\n        if (typeof icon === \"string\" && icon.length > 1)\n          return (\n            <h1\n              className=\"opacity-muted mr-1 flex h-full cursor-ew-resize select-none items-center justify-center p-1\"\n              onMouseDown={onMouseDown}\n            >\n              {icon}\n            </h1>\n          );\n        return null;\n      }, [icon, onMouseDown]),\n    };\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Page.tsx",
    "content": "type Props = StyleableWithChildren & {\n  fullWidth?: boolean;\n  fullHeight?: boolean;\n};\n\nexport function Page({\n  fullWidth = false,\n  fullHeight = false,\n  className,\n  children,\n}: Props) {\n  return (\n    <div\n      className={classes(\n        \"absolute top-0 left-0 right-0 bottom-0 flex grow flex-col items-center overflow-y-auto p-4 pb-20 sm:p-8 sm:pb-20 md:p-12 md:pb-20\",\n        fullWidth && \"pl-0 pr-0 sm:pl-0 sm:pr-0 md:pl-0 md:pr-0\",\n        fullHeight && \"pt-0 pb-0 sm:pt-0 sm:pb-0 md:pt-0 md:pb-0\",\n        className\n      )}\n      css={css`\n        overflow-anchor: none;\n      `}\n    >\n      <div\n        className={classes(\n          \"max-w-[1600px] grow\",\n          fullWidth && \"w-full max-w-none\"\n        )}\n      >\n        {children}\n      </div>\n    </div>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Popout/index.tsx",
    "content": "import useResizeObserver from \"@react-hook/resize-observer\";\nimport { useClickAway } from \"react-use\";\n\nimport { Box } from \"~/Geometry\";\nimport { Theme } from \"~/Theme\";\n\nexport type Option = {\n  name: React.ReactNode;\n  value: any;\n  image?: string;\n  disabled?: boolean;\n};\n\nexport function Popout({\n  onClick,\n  className,\n  options,\n  value,\n  title,\n  placeholder,\n  label,\n  children,\n  anchor = \"top\",\n}: StyleableWithChildren & {\n  onClick: (value: any) => void;\n  options: Option[];\n  value: any;\n  title?: React.ReactNode;\n  placeholder?: React.ReactNode;\n  label?: string;\n  anchor?: \"top\" | \"bottom\";\n}) {\n  const [open, setOpen] = useState(false);\n  const [positioningRef] = useBox([open]);\n  const containerRef = useRef<HTMLDivElement>(null);\n\n  useClickAway(containerRef, () => setOpen(false));\n\n  const valueOption = useMemo(\n    () => options.find((option) => option.value === value),\n    [options, value]\n  );\n\n  const isMobileDevice = Theme.useIsMobileDevice();\n\n  return (\n    <div ref={containerRef}>\n      {open && (\n        <div\n          ref={positioningRef}\n          className=\"fixed z-50 block\"\n          style={\n            !isMobileDevice\n              ? {\n                  ...(anchor === \"top\"\n                    ? {\n                        top: `${\n                          containerRef.current?.getBoundingClientRect().top\n                        }px`,\n                      }\n                    : {\n                        bottom: `${\n                          window.innerHeight -\n                          (containerRef.current?.getBoundingClientRect()\n                            .bottom ?? 0)\n                        }px`,\n                      }),\n                  left: `${\n                    (containerRef.current?.getBoundingClientRect().left ?? 0) +\n                    (containerRef.current?.getBoundingClientRect().width ?? 0)\n                  }px`,\n                }\n              : {\n                  bottom: \"0\",\n                  left: \"0\",\n                  width: \"100%\",\n                  right: \"0\",\n                }\n          }\n        >\n          <Floating\n            onClick={(value) => {\n              onClick(value);\n              setOpen(false);\n            }}\n            options={options}\n            value={value}\n            title={title}\n          >\n            {children}\n          </Floating>\n        </div>\n      )}\n      <div className=\"flex flex-col gap-1\">\n        {label && <Theme.Label>{label}</Theme.Label>}\n        <div\n          className={classes(\n            \"flex cursor-pointer flex-row items-center rounded border border-transparent py-1 pl-2 pr-1 duration-100\",\n            open ? \"bg-zinc-700/50\" : \"hover:border-zinc-700\",\n            className\n          )}\n          onClick={() => setOpen(!open)}\n        >\n          {valueOption?.image && (\n            <img\n              className=\"mr-2 h-5 w-5 rounded\"\n              src={valueOption.image}\n              alt=\"Preset Image\"\n            />\n          )}\n          <h1 className=\"w-full grow select-none\">\n            {valueOption?.name ?? placeholder ?? \"Select\"}\n          </h1>\n          <Theme.Icon.ChevronRight className=\"h-6 w-6\" strokeWidth={1.5} />\n        </div>\n      </div>\n    </div>\n  );\n}\n\nfunction Floating({\n  onClick,\n  title,\n  options,\n  value,\n  children,\n}: {\n  onClick: (preset: string) => void;\n  title?: React.ReactNode;\n  options: Option[];\n  value: any;\n  children: React.ReactNode;\n}) {\n  const hasImages = useMemo(\n    () => options.some((option) => option.image),\n    [options]\n  );\n\n  return (\n    <div className=\"flex max-h-[70vh] flex-col overflow-y-auto rounded border border-zinc-700 bg-zinc-900 shadow-lg drop-shadow-lg sm:ml-3 sm:max-h-[30rem] sm:w-[25rem]\">\n      <div className=\"sticky top-0 z-[1] flex flex-row items-center justify-between border-b border-zinc-700 bg-zinc-900 px-3 py-1.5\">\n        <h1 className=\"grow\">{title}</h1>\n        <Theme.Icon.X\n          className=\"opacity-muted h-5 w-5 cursor-pointer hover:opacity-100\"\n          strokeWidth={1.5}\n          onClick={() => onClick(value)}\n        />\n      </div>\n      <div\n        className={classes(\n          \"grid gap-y-6 p-3\",\n          hasImages ? \"grid-cols-3 gap-4\" : \"gap-3\"\n        )}\n      >\n        {!!children\n          ? children\n          : options.map((option, index) => (\n              <div\n                key={index}\n                onClick={\n                  option.disabled ? doNothing : () => onClick(option.value)\n                }\n                className={classes(\n                  \"group flex cursor-pointer flex-col rounded duration-100\",\n                  option.disabled && \"opacity-muted cursor-not-allowed\"\n                )}\n              >\n                {option.image ? (\n                  <img\n                    className=\"mb-2 aspect-square h-full w-full rounded-lg border border-transparent duration-100 group-hover:border-zinc-200\"\n                    src={option.image}\n                    alt=\"Preset Image\"\n                  />\n                ) : (\n                  hasImages && (\n                    <div className=\"mb-2 flex aspect-square w-full items-center justify-center rounded-lg border border-transparent bg-black/20 duration-100 group-hover:border-zinc-200\">\n                      <Theme.Icon.Slash className=\"opacity-muted h-12 w-12\" />\n                    </div>\n                  )\n                )}\n                <h1\n                  className={classes(\n                    \"w-full grow select-none text-zinc-400 group-hover:text-zinc-200\",\n                    option.value === value && \"font-medium text-white\"\n                  )}\n                >\n                  {option.name}\n                </h1>\n              </div>\n            ))}\n      </div>\n    </div>\n  );\n}\n\nconst useBox = (deps: unknown[]) => {\n  const ref = useRef<HTMLDivElement>(null);\n\n  const [box, setBox] = useState<Box>({\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0,\n  });\n\n  const safeSetBox = useCallback(\n    (updatedBox?: Box) =>\n      setBox(\n        (box) => updatedBox ?? ref.current?.getBoundingClientRect() ?? box\n      ),\n    [setBox]\n  );\n\n  useResizeObserver(ref, () => safeSetBox());\n  useLayoutEffect(safeSetBox, [...deps, safeSetBox]);\n\n  return [ref, box] as const;\n};\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Skeleton.tsx",
    "content": "export function Skeleton({ className }: Styleable) {\n  return (\n    <div\n      className={classes(\n        \"animate-pulse rounded-full bg-zinc-200 dark:bg-zinc-700\",\n        className\n      )}\n    />\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Slider.tsx",
    "content": "import ReactSlider from \"react-slider\";\nimport { useDebounce } from \"react-use\";\n\nexport const Slider = ({\n  min = 0,\n  step = 1,\n  max,\n  maxDecimals = 0,\n\n  title,\n  flipVertically = false,\n  noFill = false,\n  className,\n  displayValue = false,\n\n  ...props\n}: Styleable & {\n  min?: number;\n  step?: number;\n  max: number;\n  maxDecimals?: number;\n\n  value: number;\n  onChange: (value: number) => void;\n\n  title?: React.ReactNode;\n  disabled?: boolean;\n  flipVertically?: boolean;\n  noFill?: boolean;\n  className?: string;\n  percentage?: boolean;\n  displayValue?: boolean;\n}) => {\n  const canBeNegative = min < 0;\n  const disabled = props.disabled || max === min;\n\n  const clamp = useCallback(\n    (value: number) => Math.min(max, Math.max(min, value)),\n    [min, max]\n  );\n\n  const format = useCallback(\n    (value: number) =>\n      value.toLocaleString(undefined, { maximumFractionDigits: maxDecimals }),\n    [maxDecimals]\n  );\n\n  const [value, setValue] = useState(clamp(props.value ?? (max - min) / 2));\n\n  const [inputValue, setInputValue] = useState(format(value));\n\n  useEffect(() => {\n    if (props.value === undefined) return;\n    setValue(clamp(props.value));\n    setInputValue(format(clamp(props.value)));\n  }, [props.value, clamp, setValue, inputValue, format]);\n\n  useDebounce(\n    () => {\n      if (inputValue === undefined) return;\n      if (inputValue === \"\") return setValue(0);\n\n      const parsed = parseFloat(inputValue.replaceAll(\",\", \"\"));\n      if (isNaN(parsed)) return setInputValue(format(value));\n\n      setValue(clamp(parsed));\n    },\n    500,\n    [clamp, inputValue, setInputValue]\n  );\n\n  const { onChange: propsOnChange } = props;\n  const onChange = useCallback(\n    (value: number) => {\n      propsOnChange(value);\n      setValue(value);\n      setInputValue(format(value));\n    },\n    [propsOnChange, setValue, setInputValue, format]\n  );\n\n  const [moving, setMoving] = useState(false);\n  const inputRef = useRef<HTMLInputElement>(null);\n\n  type ReactSliderProps = React.ComponentProps<typeof ReactSlider>;\n  type OnBeforeChange = Exclude<ReactSliderProps[\"onBeforeChange\"], undefined>;\n  type OnAfterChange = Exclude<ReactSliderProps[\"onAfterChange\"], undefined>;\n  type RenderTrack = Exclude<ReactSliderProps[\"renderTrack\"], undefined>;\n  type RenderThumb = Exclude<ReactSliderProps[\"renderThumb\"], undefined>;\n  type RenderMark = Exclude<ReactSliderProps[\"renderMark\"], undefined>;\n\n  const onBeforeChange = useCallback<OnBeforeChange>(\n    () => setMoving(true),\n    [setMoving]\n  );\n\n  const onAfterChange = useCallback<OnAfterChange>(\n    () => setMoving(false),\n    [setMoving]\n  );\n\n  const renderTrack = useCallback<RenderTrack>(\n    (props, state) => {\n      const offset = Math.abs(min) / (max - min);\n      const position =\n        value >= 0\n          ? { left: `${offset * 100}%`, right: \"unset\" }\n          : { right: `${(1 - offset) * 100}%`, left: \"unset\" };\n\n      const width = `${(value / (value >= 0 ? max - min : min - max)) * 100}%`;\n\n      const style = {\n        ...props.style,\n\n        ...(canBeNegative && {\n          ...(state.index === 1\n            ? { zIndex: 1, left: 0, right: 0 }\n            : { zIndex: 2, display: width, ...position }),\n        }),\n\n        ...(noFill && { left: 0, right: 0 }),\n      };\n\n      return (\n        <div\n          {...props}\n          {...{ style }}\n          className={classes(\n            \"h-[2px] rounded-full\",\n\n            state.index !== 0 && \"opacity-muted-extra bg-white shadow-sm\",\n            state.index === 0 &&\n              classes(\n                \"shadow-md\",\n                noFill && \"opacity-0\",\n                value >= 0\n                  ? \"bg-brand-400 dark:bg-brand-700\"\n                  : \"bg-red-400 dark:bg-red-700\"\n              )\n          )}\n        />\n      );\n    },\n    [noFill, min, max, value, canBeNegative]\n  );\n\n  const renderThumb = useCallback<RenderThumb>(\n    (props) => (\n      <div\n        {...props}\n        style={{ ...props.style, zIndex: 3 }}\n        onMouseDown={() => setMoving(true)}\n        className={classes(\n          \"relative h-3.5 w-3.5 -translate-y-[5.25px] rounded-full border-[2px] outline-none transition duration-150\",\n          moving\n            ? \"scale-110 border-white shadow-lg\"\n            : \"scale-100 border-zinc-800 shadow-md\",\n          value === 0\n            ? \"bg-zinc-500 dark:bg-zinc-600\"\n            : value >= 0\n            ? \"bg-brand-500 dark:bg-brand-600\"\n            : \"bg-red-500 dark:bg-red-600\"\n        )}\n      >\n        {displayValue && (\n          <div\n            className={classes(\n              \"pointer-events-none absolute top-[-1.25rem] ml-1 flex w-[10rem] -translate-x-[5rem] items-center justify-center text-xs font-medium\",\n              value === 0\n                ? \"text-zinc-500 dark:text-zinc-300\"\n                : value >= 0\n                ? \"text-brand-500 dark:text-brand-300\"\n                : \"text-red-500 dark:text-red-300\"\n            )}\n          >\n            {format(value)}\n          </div>\n        )}\n      </div>\n    ),\n    [moving, value, displayValue, format]\n  );\n\n  const renderMark = useCallback<RenderMark>(\n    (props) => <span {...props} />,\n    []\n  );\n\n  const titleAndInput = title && (\n    <div className=\"flex select-none items-center justify-between\">\n      <div className=\"opacity-muted font-light\">{title}</div>\n      <input\n        {...{ min, max }}\n        type=\"text\"\n        ref={inputRef}\n        value={inputValue}\n        onChange={(e) => setInputValue(e.target.value)}\n        onFocus={() => inputRef.current?.select()}\n        className={classes(\n          \"m-0 ml-2 min-w-0 flex-1 border-none bg-transparent p-0 text-right outline-none\"\n        )}\n        css={css`\n          -moz-appearance: textfield;\n\n          &::-webkit-outer-spin-button {\n            -webkit-appearance: none;\n            margin: 0;\n          }\n\n          &::-webkit-inner-spin-button {\n            -webkit-appearance: none;\n            margin: 0;\n          }\n        `}\n      />\n      {props.percentage && <span>%</span>}\n    </div>\n  );\n\n  return (\n    <div\n      className={classes(\n        \"flex w-full flex-col opacity-100 duration-150\",\n        disabled && \"opacity-muted pointer-events-none cursor-not-allowed\",\n        flipVertically ? \"gap-2\" : \"gap-2\",\n        className\n      )}\n    >\n      {!flipVertically && titleAndInput}\n      <ReactSlider\n        className=\"-my-0.5 h-2.5 w-full cursor-pointer\"\n        disabled={disabled}\n        {...{\n          value,\n          min,\n          step,\n          max,\n          onChange,\n          onBeforeChange,\n          onAfterChange,\n          renderThumb,\n          renderTrack,\n          renderMark,\n        }}\n      />\n      {flipVertically && titleAndInput}\n    </div>\n  );\n};\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Snackbar.tsx",
    "content": "import { CustomContentProps, SnackbarProvider } from \"notistack\";\n\nimport { Theme } from \"~/Theme\";\n\nexport { useSnackbar as use, type CustomContentProps } from \"notistack\";\n\nexport function Provider({ children }: React.PropsWithChildren) {\n  return (\n    <SnackbarProvider\n      maxSnack={6}\n      anchorOrigin={{ horizontal: \"right\", vertical: \"bottom\" }}\n      Components={{\n        default: DefaultSnackbar,\n        info: InfoSnackbar,\n        error: ErrorSnackbar,\n        success: SuccessSnackbar,\n        warning: WarningSnackbar,\n      }}\n    >\n      {children}\n    </SnackbarProvider>\n  );\n}\n\ndeclare module \"notistack\" {\n  interface VariantOverrides {\n    outOfCredits: true;\n  }\n}\n\nconst Snackbar = React.forwardRef<\n  HTMLDivElement,\n  CustomContentProps & { Icon?: React.ReactElement }\n>(({ id, message, persist, Icon }, ref) => {\n  const { closeSnackbar } = Theme.Snackbar.use();\n\n  return (\n    <div\n      className=\"mb-4 flex items-center rounded-lg border border-zinc-700 bg-white p-3 text-zinc-500 shadow dark:bg-zinc-900 dark:text-zinc-400\"\n      role=\"alert\"\n      ref={ref}\n    >\n      {Icon}\n      <div className=\"ml-3\">{message}</div>\n      {persist && (\n        <button\n          type=\"button\"\n          className=\"-mx-1.5 -my-1.5 ml-3 inline-flex h-8 w-8 rounded-lg bg-white p-1.5 text-zinc-400 hover:bg-zinc-100 hover:text-zinc-900 focus:ring-2 focus:ring-zinc-300 dark:bg-zinc-800 dark:text-zinc-500 dark:hover:bg-zinc-700 dark:hover:text-white\"\n          onClick={() => closeSnackbar(id)}\n        >\n          <span className=\"sr-only\">Close</span>\n          <svg\n            aria-hidden=\"true\"\n            className=\"h-5 w-5\"\n            fill=\"currentColor\"\n            viewBox=\"0 0 20 20\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n          >\n            <path\n              fillRule=\"evenodd\"\n              d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n              clipRule=\"evenodd\"\n            ></path>\n          </svg>\n        </button>\n      )}\n    </div>\n  );\n});\n\n// TODO: Add a drop-down that lets the user see more raw error text & an error trace ID\nconst ErrorSnackbar = React.forwardRef<HTMLDivElement, CustomContentProps>(\n  (props, ref) => (\n    <Snackbar\n      {...props}\n      ref={ref}\n      Icon={\n        <Theme.Icon.AlertTriangle className=\"inline-flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg text-red-600 dark:text-red-500\" />\n      }\n    />\n  )\n);\n\nconst WarningSnackbar = React.forwardRef<HTMLDivElement, CustomContentProps>(\n  (props, ref) => (\n    <Snackbar\n      {...props}\n      ref={ref}\n      Icon={\n        <Theme.Icon.AlertCircle className=\"inline-flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg text-orange-600 dark:text-orange-500\" />\n      }\n    />\n  )\n);\n\nconst InfoSnackbar = React.forwardRef<HTMLDivElement, CustomContentProps>(\n  (props, ref) => (\n    <Snackbar\n      {...props}\n      ref={ref}\n      Icon={\n        <Theme.Icon.Info className=\"inline-flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg text-blue-600 dark:text-blue-500\" />\n      }\n    />\n  )\n);\n\nconst SuccessSnackbar = React.forwardRef<HTMLDivElement, CustomContentProps>(\n  (props, ref) => (\n    <Snackbar\n      {...props}\n      ref={ref}\n      Icon={\n        <Theme.Icon.Check className=\"inline-flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg text-emerald-600 dark:text-emerald-500\" />\n      }\n    />\n  )\n);\n\nconst DefaultSnackbar = React.forwardRef<HTMLDivElement, CustomContentProps>(\n  (props, ref) => <Snackbar {...props} ref={ref} />\n);\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Soon/index.tsx",
    "content": "export function Soon({ className, children }: StyleableWithChildren) {\n  return (\n    <span className={classes(\"opacity-muted text-sm\", className)}>\n      {children ?? <>soon™</>}\n    </span>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Stars/SVG.tsx",
    "content": "export function SVG(props: JSX.IntrinsicElements[\"svg\"]) {\n  return (\n    <svg\n      width=\"10\"\n      height=\"12\"\n      viewBox=\"0 0 10 12\"\n      fill=\"currentColor\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      {...props}\n    >\n      <path d=\"M4.48574 0.323291C4.66239 -0.107763 5.33761 -0.107764 5.51426 0.32329L6.68971 4.18178C6.74525 4.3173 6.86359 4.42416 7.01368 4.4743L9.64196 5.53566C10.1193 5.69516 10.1193 6.30484 9.64196 6.46434L7.01368 7.5257C6.86359 7.57584 6.74525 7.68269 6.68971 7.81822L5.51426 11.6767C5.33761 12.1078 4.66239 12.1078 4.48574 11.6767L3.31029 7.81822C3.25475 7.68269 3.13641 7.57584 2.98632 7.5257L0.358045 6.46434C-0.119348 6.30484 -0.119349 5.69516 0.358045 5.53566L2.98632 4.4743C3.13641 4.42416 3.25475 4.3173 3.31029 4.18178L4.48574 0.323291Z\" />\n    </svg>\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Stars/index.tsx",
    "content": "import { keyframes } from \"@emotion/react\";\n\nimport { SVG } from \"./SVG\";\n\nexport function Stars({\n  showing = true,\n  twinkling = false,\n  count = 20,\n  className,\n}: Stars.Props) {\n  const [offset] = useState(() => Math.random() * 1000);\n\n  const starsFast = useMemo(\n    () =>\n      Array.from({ length: count }, (_, index) => (\n        <Star key={index} index={index} offset={offset} count={count} fast />\n      )),\n    [offset, count]\n  );\n\n  const starsSlow = useMemo(\n    () =>\n      Array.from({ length: Math.ceil(count / 2) }, (_, index) => (\n        <Star key={index} index={index} offset={offset} count={count} />\n      )),\n    [offset, count]\n  );\n\n  return !showing ? null : (\n    <div\n      className={classes(\n        \"pointer-events-none absolute h-full w-full opacity-0 duration-150\",\n        showing && \"opacity-100\",\n        className\n      )}\n    >\n      <div\n        className={classes(\n          \"absolute h-full w-full opacity-0 duration-500\",\n          twinkling && \"opacity-100\"\n        )}\n      >\n        {starsFast}\n      </div>\n      <div\n        className={classes(\n          \"absolute h-full w-full opacity-100 duration-500\",\n          twinkling && \"opacity-0\"\n        )}\n      >\n        {starsSlow}\n      </div>\n    </div>\n  );\n}\n\nfunction Star({\n  index,\n  offset,\n  count,\n  fast,\n}: {\n  index: number;\n  offset: number;\n  count: number;\n  fast?: boolean;\n}) {\n  return useMemo(() => {\n    const top = clamp(10, (offset + (index / count) * 13543.34) % 100, 90);\n    const left = clamp(10, (offset + (index / count) * 16857.24) % 100, 90);\n\n    const scale = Math.max(1, (index / count) * 2);\n    const angle = (offset + (index / count) * 13543.34) % 360;\n\n    return (\n      <div\n        className=\"absolute h-0 w-0 text-white\"\n        css={css`\n          animation-name: ${spin};\n          animation-iteration-count: infinite;\n          animation-timing-function: linear;\n        `}\n        style={{\n          animationDelay: `${-offset + index * 3.4}s`,\n          animationDuration: fast ? \"7s\" : \"30s\",\n          top: `${top}%`,\n          left: `${left}%`,\n        }}\n      >\n        <SVG\n          css={css`\n            animation-name: ${twinkle};\n            animation-iteration-count: infinite;\n            animation-timing-function: ease-in-out;\n            animation-direction: alternate;\n          `}\n          style={{\n            animationDelay: `${-offset + index * 3.4}s`,\n            animationDuration: fast ? \"2s\" : \"30s\",\n            transform: `translate(-50%, -50%) scale(${scale}) rotate(${angle}deg)`,\n          }}\n        />\n      </div>\n    );\n  }, [index, offset, count, fast]);\n}\n\nexport namespace Stars {\n  export type Props = Styleable & {\n    showing?: boolean;\n    twinkling?: boolean;\n    count?: number;\n  };\n}\n\nconst twinkle = keyframes`\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n`;\n\nconst spin = keyframes`\n  from {\n    transform: translate(-50%, -50%) rotate(0deg);\n  }\n\n  to {\n    transform: translate(-50%, -50%) rotate(360deg);\n  }\n`;\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Tooltip/Dropdown.tsx",
    "content": "import { Link } from \"react-router-dom\";\n\nimport { Theme } from \"..\";\n\nexport type Choice<T> = {\n  label: string;\n  selected?: boolean;\n} & (\n  | {\n      value: Choice<T>[] | T;\n    }\n  | {\n      href: string;\n    }\n);\n\nexport function Dropdown({\n  children,\n  choices,\n  placement = \"bottom\",\n  showArrow = true,\n  onOpenChange,\n  onChange,\n  className,\n  openMechanism = \"hover\",\n}: StyleableWithChildren & {\n  choices: Choice<string>[];\n  placement?: \"top\" | \"bottom\" | \"left\" | \"right\";\n  showArrow?: boolean;\n  onOpenChange?: (open: boolean) => void;\n  onChange?: (value: string) => void;\n  openMechanism?: \"click\" | \"hover\";\n}) {\n  const [show, setShow] = useState(false);\n  const [direction, setDirection] = useState<\"left\" | \"right\">(\"right\");\n  const childrenRef = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    // check if we are close to the edge of the screen and set the direction accordingly\n    if (!show || !childrenRef.current) return;\n\n    const rect = childrenRef.current.getBoundingClientRect();\n\n    if (rect.left + rect.width / 2 > window.innerWidth / 2) {\n      setDirection(\"left\");\n    } else {\n      setDirection(\"right\");\n    }\n  }, [show]);\n\n  return (\n    <Theme.Tooltip\n      content={\n        <div className=\"flex flex-col gap-0.5\">\n          {choices.map((choice) =>\n            \"value\" in choice && choice.value instanceof Array ? (\n              <Dropdown\n                showArrow={false}\n                key={choice.label}\n                choices={choice.value}\n                placement={direction}\n                onOpenChange={(open) => setShow(open)}\n                onChange={onChange}\n                className={className}\n              >\n                <Choice choice={choice} />\n              </Dropdown>\n            ) : (\n              <Choice\n                key={choice.label}\n                choice={choice}\n                onClick={() =>\n                  \"value\" in choice && onChange?.(choice.value as string)\n                }\n                href={\"href\" in choice ? choice.href : undefined}\n              />\n            )\n          )}\n        </div>\n      }\n      placement={placement}\n      showArrow={showArrow}\n      forceOpen={show ? true : undefined}\n      onChange={onOpenChange}\n      enablePointerEvents\n      contentClasses={classes(\"p-1.5\", className)}\n      openMechanism={openMechanism}\n      className={classes(openMechanism === \"click\" && \"pointer-events-auto\")}\n    >\n      <div ref={childrenRef}>{children}</div>\n    </Theme.Tooltip>\n  );\n}\n\nfunction Choice({\n  choice,\n  onClick,\n  href,\n}: {\n  choice: Choice<string>;\n  onClick?: () => void;\n  href?: string;\n}) {\n  const props = {\n    className: classes(\n      \"flex w-[8.5rem] cursor-pointer flex-row items-center justify-between rounded-sm py-[5px] px-2 text-sm\",\n      choice.selected ? \"bg-brand-500/80\" : \"hover:bg-white/10\"\n    ),\n    onClick: (e: any) => {\n      e.stopPropagation();\n      onClick?.();\n    },\n    href,\n  };\n\n  const content = (\n    <>\n      {choice.label}\n      {\"value\" in choice && choice.value instanceof Array ? (\n        <Theme.Icon.ChevronRight className=\"-mr-1 text-white/50\" size={16} />\n      ) : (\n        <Theme.Icon.Invisible size={16} />\n      )}\n    </>\n  );\n\n  if (href) {\n    return (\n      <Link to={href} {...props}>\n        {content}\n      </Link>\n    );\n  } else {\n    return <div {...props}>{content}</div>;\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/Tooltip/index.tsx",
    "content": "import { AnimatePresence, motion } from \"framer-motion\";\nimport { createPortal } from \"react-dom\";\nimport { useClickAway } from \"react-use\";\n\nimport { Theme } from \"..\";\n\nimport { Dropdown } from \"./Dropdown\";\n\nexport function Tooltip({\n  children,\n  contentClasses,\n  content,\n  placement = \"top\",\n  delay = 0,\n  distance = 8,\n  allowOpen = true,\n  forceOpen = false,\n  showArrow = true,\n  enablePointerEvents = false,\n  className,\n  onChange,\n  openMechanism = \"hover\",\n}: StyleableWithChildren & {\n  content: React.ReactNode;\n  contentClasses?: string;\n  placement?: \"top\" | \"bottom\" | \"left\" | \"right\";\n  delay?: number;\n  distance?: number;\n  allowOpen?: boolean;\n  forceOpen?: boolean;\n  showArrow?: boolean;\n  enablePointerEvents?: boolean;\n  onChange?: (open: boolean) => void;\n  openMechanism?: \"click\" | \"hover\";\n}) {\n  const [show, setShow] = useState(false);\n  const [timer, setTimer] = useState<NodeJS.Timeout | null>(null);\n  const [leaveTimer, setLeaveTimer] = useState<NodeJS.Timeout | null>(null);\n  const [position, setPosition] = useState<{\n    top: number;\n    left: number;\n  }>({ top: 0, left: 0 });\n\n  const containerRef = useRef<HTMLDivElement>(null);\n  const tooltipRef = useRef<HTMLDivElement>(null);\n\n  useLayoutEffect(() => {\n    if (!containerRef.current || !(show || forceOpen)) return;\n\n    const rect = containerRef.current.getBoundingClientRect();\n\n    switch (placement) {\n      case \"top\":\n        setPosition({\n          top: rect.top - distance,\n          left: rect.left + rect.width / 2,\n        });\n        break;\n      case \"bottom\":\n        setPosition({\n          top: rect.top + rect.height + distance,\n          left: rect.left + rect.width / 2,\n        });\n        break;\n      case \"left\":\n        setPosition({\n          top: rect.top + rect.height / 2,\n          left: rect.left - distance,\n        });\n        break;\n      case \"right\":\n        setPosition({\n          top: rect.top + rect.height / 2,\n          left: rect.left + rect.width + distance,\n        });\n        break;\n    }\n  }, [placement, distance, show, content, forceOpen]);\n\n  const onMouseEnter = useCallback(() => {\n    if (openMechanism !== \"hover\") return;\n\n    if (timer) clearTimeout(timer);\n\n    if (delay)\n      setTimer(\n        setTimeout(() => {\n          setShow(true);\n        }, delay)\n      );\n    else setShow(true);\n  }, [openMechanism, timer, delay]);\n\n  const onMouseLeave = useCallback(() => {\n    if (openMechanism !== \"hover\") return;\n    if (timer) clearTimeout(timer);\n\n    if (enablePointerEvents) {\n      if (leaveTimer) clearTimeout(leaveTimer);\n\n      setLeaveTimer(\n        setTimeout(() => {\n          setShow(false);\n        }, 200)\n      );\n    } else {\n      setShow(false);\n    }\n  }, [enablePointerEvents, leaveTimer, openMechanism, timer]);\n\n  const onClick = useCallback(\n    (e: any) => {\n      if (openMechanism !== \"click\") return;\n\n      e.stopPropagation();\n      setShow(true);\n    },\n    [openMechanism]\n  );\n\n  useClickAway(tooltipRef, () => {\n    if (openMechanism !== \"click\") return;\n    setShow(false);\n  });\n\n  const portal = useMemo(() => document.getElementById(\"tooltip-root\"), []);\n\n  useEffect(() => {\n    if (onChange) onChange((show || forceOpen) && allowOpen);\n  }, [show, onChange, forceOpen, allowOpen]);\n\n  const isMobileDevice = Theme.useIsMobileDevice();\n\n  if (!portal || isMobileDevice) return (children ?? null) as any;\n\n  const tooltip = createPortal(\n    <AnimatePresence>\n      {(show || forceOpen) && allowOpen && (\n        <>\n          {showArrow && (\n            <motion.div\n              className={classes(\n                \"absolute z-[999999] h-2 w-2 -translate-x-1/2 -translate-y-1/2 rotate-45 border-zinc-700 bg-zinc-900\",\n                placement === \"top\" && \"border-b border-r\",\n                placement === \"bottom\" && \"border-t border-l\",\n                placement === \"left\" && \"border-t border-r\",\n                placement === \"right\" && \"border-b border-l\"\n              )}\n              style={{\n                top: `${position.top}px`,\n                left: `${position.left}px`,\n              }}\n              initial={{\n                opacity: 0,\n              }}\n              animate={{ opacity: 1 }}\n              exit={{ opacity: 0 }}\n              transition={{\n                type: \"tween\",\n                duration: 0.05,\n              }}\n            />\n          )}\n          <motion.div\n            ref={tooltipRef}\n            style={{\n              top: `${position.top}px`,\n              left: `${Math.min(\n                position.left,\n                window.innerWidth - (tooltipRef.current?.offsetWidth ?? 0) + 32\n              )}px`,\n            }}\n            className={classes(\n              \"absolute z-[999998] block shrink-0 whitespace-nowrap rounded-md bg-zinc-900 px-3 py-1.5 text-sm text-white ring-[1px] ring-inset ring-zinc-700\",\n              placement === \"top\" &&\n                \"-translate-x-1/2 -translate-y-full transform\",\n              placement === \"bottom\" && \"-translate-x-1/2 transform\",\n              placement === \"left\" &&\n                \"-translate-x-full -translate-y-1/2 transform\",\n              placement === \"right\" && \"-translate-y-1/2 transform\",\n              enablePointerEvents\n                ? \"pointer-events-auto\"\n                : \"pointer-events-none\",\n              contentClasses\n            )}\n            initial={{\n              opacity: 0,\n            }}\n            animate={{ opacity: 1 }}\n            exit={{ opacity: 0 }}\n            transition={{\n              type: \"tween\",\n              duration: 0.05,\n            }}\n            css={css`\n              filter: drop-shadow(0 0 0.5rem rgba(0, 0, 0, 0.5));\n            `}\n            onMouseEnter={() => {\n              if (timer) clearTimeout(timer);\n              if (leaveTimer) clearTimeout(leaveTimer);\n            }}\n          >\n            {content}\n          </motion.div>\n        </>\n      )}\n    </AnimatePresence>,\n    portal\n  );\n\n  return (\n    <div\n      ref={containerRef}\n      className={classes(\"relative inline-block\", className)}\n      onMouseEnter={onMouseEnter}\n      onMouseLeave={onMouseLeave}\n      onMouseDown={onClick}\n    >\n      {children}\n      {tooltip}\n    </div>\n  );\n}\n\nexport declare namespace Tooltip {\n  export { Dropdown };\n}\n\nexport namespace Tooltip {\n  Tooltip.Dropdown = Dropdown;\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/index.css",
    "content": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n  @font-face {\n    font-family: \"Inter\";\n    src: url(\"/Inter.ttf\") format(\"truetype\");\n  }\n\n  html,\n  body {\n    margin: 0;\n    height: 100%;\n    overflow: hidden;\n\n    background: black;\n    font-family: \"Inter\", sans-serif;\n    font-size: 14px;\n    display: flex;\n  }\n}\n\n@layer utilities {\n  ::-webkit-scrollbar {\n    width: 5px;\n    height: 5px;\n  }\n\n  ::-webkit-scrollbar-track {\n    @apply dark:bg-transparent;\n  }\n\n  ::-webkit-scrollbar-thumb {\n    @apply rounded-full bg-zinc-300 dark:bg-zinc-700;\n  }\n\n  ::-moz-selection {\n    @apply bg-brand-500;\n  }\n\n  ::selection {\n    @apply bg-brand-500;\n  }\n}\n\nbody {\n  padding-top: env(safe-area-inset-top);\n  padding-right: env(safe-area-inset-right);\n  padding-bottom: env(safe-area-inset-bottom);\n  padding-left: env(safe-area-inset-left);\n}"
  },
  {
    "path": "packages/stablestudio-ui/src/Theme/index.ts",
    "content": "import { Global as GlobalCSS } from \"@emotion/react\";\nimport { useWindowSize } from \"react-use\";\n\nimport { Badge } from \"./Badge\";\nimport { Button } from \"./Button\";\nimport { Checkbox } from \"./Checkbox\";\nimport { Checkered } from \"./Checkered\";\nimport { Common } from \"./Common\";\nimport { Divider } from \"./Divider\";\nimport { Dropdown } from \"./Dropdown\";\nimport { Icon } from \"./Icon\";\nimport { Input } from \"./Input\";\nimport { Label } from \"./Label\";\nimport { Loading } from \"./Loading\";\nimport { Logo } from \"./Logo\";\nimport { Modal } from \"./Modal\";\nimport { Mode } from \"./Mode\";\nimport { New } from \"./New\";\nimport { NumberInput } from \"./NumberInput\";\nimport { Page } from \"./Page\";\nimport { Popout } from \"./Popout\";\nimport { Skeleton } from \"./Skeleton\";\nimport { Slider } from \"./Slider\";\nimport * as Snackbar from \"./Snackbar\";\nimport { Soon } from \"./Soon\";\nimport { Stars } from \"./Stars\";\nimport { Tooltip } from \"./Tooltip\";\n\nexport declare namespace Theme {\n  /** Utilities */\n  export { Common, GlobalCSS, Mode };\n\n  /** Components */\n  export {\n    Badge,\n    Divider,\n    Icon,\n    Loading,\n    Logo,\n    Page,\n    Checkered,\n    Slider,\n    Skeleton,\n    Button,\n    Checkbox,\n    Dropdown,\n    New,\n    Input,\n    NumberInput,\n    Popout,\n    Modal,\n    Tooltip,\n    Soon,\n    Stars,\n    Snackbar,\n    Label,\n  };\n}\n\nexport namespace Theme {\n  Theme.Common = Common;\n  Theme.GlobalCSS = GlobalCSS;\n  Theme.Mode = Mode;\n\n  Theme.Badge = Badge;\n  Theme.Divider = Divider;\n  Theme.Icon = Icon;\n  Theme.Loading = Loading;\n  Theme.Logo = Logo;\n  Theme.Checkered = Checkered;\n  Theme.New = New;\n  Theme.Page = Page;\n  Theme.Slider = Slider;\n  Theme.Skeleton = Skeleton;\n  Theme.Button = Button;\n  Theme.Checkbox = Checkbox;\n  Theme.Dropdown = Dropdown;\n  Theme.Input = Input;\n  Theme.NumberInput = NumberInput;\n  Theme.Stars = Stars;\n  Theme.Popout = Popout;\n  Theme.Modal = Modal;\n  Theme.Soon = Soon;\n  Theme.Tooltip = Tooltip;\n  Theme.Snackbar = Snackbar;\n  Theme.Label = Label;\n\n  export const useDark = () => Mode.use().dark;\n  export const useIsMobileDevice = () => {\n    const size = useWindowSize();\n\n    return size.width < 768;\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/UndoRedo/Shortcut.tsx",
    "content": "import { Shortcut } from \"~/Shortcut\";\nimport { Theme } from \"~/Theme\";\nimport { UndoRedo } from \"~/UndoRedo\";\n\nexport namespace Shortcuts {\n  export const use = () => {\n    const { undo, redo } = UndoRedo.use();\n\n    Shortcut.use(\n      useMemo(\n        () => ({\n          name: [\"History\", \"Undo\"],\n          keys: [\"Meta\", \"z\"],\n          icon: Theme.Icon.Undo,\n          action: () => undo(),\n        }),\n        [undo]\n      )\n    );\n\n    Shortcut.use(\n      useMemo(\n        () => ({\n          name: [\"History\", \"Redo\"],\n          keys: [\"Meta\", \"Shift\", \"z\"],\n          icon: Theme.Icon.Redo,\n          action: () => redo(),\n        }),\n        [redo]\n      )\n    );\n  };\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/UndoRedo/index.tsx",
    "content": "import { temporal } from \"zundo\";\nimport { StoreApi, UseBoundStore, create as zustand_default } from \"zustand\";\n\nimport { Shortcuts } from \"./Shortcut\";\n\nexport declare namespace UndoRedo {\n  export { Shortcuts };\n}\n\nexport namespace UndoRedo {\n  UndoRedo.Shortcuts = Shortcuts;\n\n  type Initializer<State> = (set: Store<State>[\"setState\"]) => State;\n  type Store<State> = Omit<StoreApi<State>, \"destroy\">;\n  type StoreHook<State> = UseBoundStore<StoreApi<State>>;\n\n  export const use = () => {\n    const { undo, redo } = State.use.temporal.getState();\n    return useMemo(() => ({ undo, redo }), [undo, redo]);\n  };\n\n  export function create<S extends TrackedState>(\n    initializer: Initializer<S>\n  ): StoreHook<S> {\n    const key = ID.create();\n\n    type Set = Store<S>[\"setState\"];\n    type Get = Store<S>[\"getState\"];\n    type Subscribe = Store<S>[\"subscribe\"];\n\n    const get: Get = () => State.use.getState().trackedStates[key] as S;\n    const set: Set = (setState: S) =>\n      State.use.getState().setTrackedState(key, setState);\n\n    const subscribe: Subscribe = (listener) =>\n      State.use.subscribe(({ trackedStates }, previous) =>\n        listener(trackedStates[key] as S, previous.trackedStates[key] as S)\n      );\n\n    const clear = () => State.use.temporal.getState().clear();\n    const initialize = () =>\n      State.use.getState().setTrackedState(key, initializer(set));\n\n    const store: Store<S> = {\n      setState: set,\n      getState: get,\n      subscribe,\n    };\n\n    initialize();\n    clear();\n\n    return zustand_default(store as never);\n  }\n}\n\ntype State = {\n  trackedStates: TrackedStates;\n  setTrackedState: SetTrackedState;\n};\n\ntype TrackedStates = Record<ID, TrackedState>;\ntype TrackedState = Record<string, unknown>;\ntype SetTrackedState = (\n  id: ID,\n  setState: React.SetStateAction<TrackedState | undefined>\n) => void;\n\nnamespace State {\n  export const use = zustand_default(\n    temporal<State>(\n      (set) => ({\n        trackedStates: {},\n        setTrackedState: (key, setState) =>\n          set(({ trackedStates }) => {\n            const state = trackedStates[key];\n            const previous = typeof state === \"object\" ? state : {};\n            const updated =\n              typeof setState === \"function\" ? setState(state) : setState;\n\n            return {\n              trackedStates: {\n                ...trackedStates,\n                [key]: { ...previous, ...updated },\n              },\n            };\n          }),\n      }),\n      {\n        limit: 1000,\n        handleSet: (handleSet) => throttle(handleSet, 1000),\n      }\n    )\n  );\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/src/declaration.d.ts",
    "content": "declare module \"*?raw\";\ndeclare module \"*.css\";\ndeclare module \"*.png\";\n"
  },
  {
    "path": "packages/stablestudio-ui/src/index.tsx",
    "content": "import ReactDOM from \"react-dom/client\";\n\nimport \"~/GlobalVariables\";\n\nimport { App } from \"~/App\";\n\nconst main = async () => {\n  const root = document.getElementById(\"app\");\n  root &&\n    ReactDOM.createRoot(root).render(\n      <React.StrictMode>\n        <App />\n      </React.StrictMode>\n    );\n};\n\nmain();\n"
  },
  {
    "path": "packages/stablestudio-ui/tailwind.config.cjs",
    "content": "// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst plugin = require(\"tailwindcss/plugin\");\n\n/** @type {import('tailwindcss').Config} */\nmodule.exports = {\n  darkMode: \"class\",\n\n  mode: \"jit\",\n  content: [\"./index.html\", \"./src/**/*.{ts,tsx}\"],\n  plugins: [\n    require(\"@tailwindcss/typography\"),\n    plugin(({ addVariant }) => {\n      addVariant(\"group-hover\", [\".group:hover &\", \".group.hover &\"]);\n      addVariant(\"hover\", [\"&:hover\", \"&.hover\"]);\n      addVariant(\"active\", [\"&:active\", \"&.active\"]);\n    }),\n  ],\n\n  theme: {\n    extend: {\n      opacity: {\n        muted: 0.75,\n        \"muted-extra\": 0.15,\n      },\n\n      colors: {\n        \"muted-white\": \"hsla(0, 0%, 100%, 0.4)\",\n        \"muted-white-extra\": \"hsla(0, 0%, 100%, 0.15)\",\n\n        brand: {\n          50: \"#efe8ff\",\n          100: \"#d4c6fe\",\n          200: \"#b794f6\",\n          300: \"#9776FF\",\n          400: \"#8866F0\",\n          500: \"#7855E1\",\n          600: \"#6844D2\",\n          700: \"#5833C3\",\n          800: \"#4822B4\",\n          900: \"#3812A5\",\n        },\n\n        vue: {\n          50: \"#ebfef8\",\n          100: \"#cefdeb\",\n          200: \"#a1f9dc\",\n          300: \"#65f0cc\",\n          400: \"#28dfb5\",\n          500: \"#03d0a8\",\n          600: \"#00a183\",\n          700: \"#00816d\",\n          800: \"#006657\",\n          900: \"#005449\",\n        },\n\n        discord: {\n          50: \"#eef3ff\",\n          100: \"#e0e9ff\",\n          200: \"#c6d6ff\",\n          300: \"#a4b9fd\",\n          400: \"#8093f9\",\n          500: \"#5866f2\",\n          600: \"#4446e7\",\n          700: \"#3736cc\",\n          800: \"#2f30a4\",\n          900: \"#2d3082\",\n        },\n      },\n\n      typography: {\n        DEFAULT: {\n          css: {\n            img: {\n              marginTop: 0,\n              marginBottom: 0,\n            },\n          },\n        },\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "packages/stablestudio-ui/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"jsx\": \"preserve\",\n    \"jsxImportSource\": \"@emotion/react\",\n    \"noEmit\": true,\n    \"baseUrl\": \"./\",\n\n    \"plugins\": [{ \"name\": \"typescript-styled-plugin\" }]\n  }\n}\n"
  },
  {
    "path": "packages/stablestudio-ui/vite.config.ts",
    "content": "import * as ChildProcess from \"child_process\";\n\nimport react from \"@vitejs/plugin-react\";\nimport { defineConfig, loadEnv } from \"vite\";\nimport tsconfigPaths from \"vite-tsconfig-paths\";\n\n// https://vitejs.dev/config/\nexport default defineConfig(({ mode }) => {\n  const gitHash = ChildProcess.execSync(\"git rev-parse HEAD\").toString().trim();\n\n  process.env = {\n    ...process.env,\n    ...loadEnv(mode, process.cwd()),\n\n    VITE_GIT_HASH: gitHash,\n  };\n\n  return {\n    build: { target: \"es2020\" },\n\n    server: {\n      port: 3000,\n      fs: { strict: false },\n    },\n\n    optimizeDeps: {\n      esbuildOptions: {\n        target: \"es2020\",\n      },\n    },\n\n    plugins: [tsconfigPaths(), react({ jsxImportSource: \"@emotion/react\" })],\n  };\n});\n"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"lib\": [\"DOM\", \"DOM.Iterable\", \"ESNext\"],\n\n    \"esModuleInterop\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"allowSyntheticDefaultImports\": true,\n    \"useDefineForClassFields\": true,\n    // \"noUncheckedIndexedAccess\": true,\n\n    \"strict\": true,\n    \"allowJs\": false,\n    \"skipLibCheck\": true,\n\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"Node\",\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n\n    \"paths\": {\n      \"~/*\": [\"./src/*\"]\n    }\n  }\n}\n"
  }
]