@oracle-agent/oracle 0.24.8 → 0.24.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +57 -49
  2. package/SECURITY.md +1 -1
  3. package/SETUP.md +16 -13
  4. package/dist/assets/profiles/_template/SOUL.md +2 -2
  5. package/dist/assets/profiles/oracle/SOUL.md +11 -13
  6. package/dist/assets/profiles/profile.schema.json +1 -1
  7. package/dist/assets/profiles/robinhood-agent/SOUL.md +5 -5
  8. package/dist/assets/skills/multi-venue-prepare-only-ranking/SKILL.md +1 -1
  9. package/dist/assets/skills/oracle-action-semantics/SKILL.md +5 -5
  10. package/dist/assets/skills/oracle-chat/SKILL.md +8 -8
  11. package/dist/assets/skills/oracle-desk-product/SKILL.md +3 -3
  12. package/dist/assets/skills/oracle-receipts/SKILL.md +2 -2
  13. package/dist/bin/desk-server.mjs +78 -34
  14. package/dist/bin/oracle-data-mcp.mjs +51 -7
  15. package/dist/bin/oracle-gateway.mjs +13 -15
  16. package/dist/bin/oracle-init.mjs +9 -9
  17. package/dist/bin/oracle-public-server.mjs +48 -4
  18. package/dist/bin/oracle-route.mjs +66 -22
  19. package/dist/bin/oracle-scan.mjs +58 -14
  20. package/dist/bin/oracle-upgrade.mjs +9 -9
  21. package/dist/bin/oracle.mjs +6 -6
  22. package/dist/cli/commands/chat.mjs +140 -96
  23. package/dist/cli/commands/doctor.mjs +5 -5
  24. package/dist/cli/commands/eval.mjs +17 -17
  25. package/dist/cli/commands/farm.mjs +72 -28
  26. package/dist/cli/commands/follow.mjs +61 -17
  27. package/dist/cli/commands/model.mjs +147 -103
  28. package/dist/cli/commands/receipt.mjs +3 -3
  29. package/dist/cli/commands/resolve.mjs +55 -11
  30. package/dist/cli/commands/setup.mjs +27 -27
  31. package/dist/cli/commands/sign.mjs +14 -13
  32. package/dist/cli/commands/signer.mjs +14 -17
  33. package/dist/cli/commands/strategy.mjs +50 -6
  34. package/dist/cli/commands/swap.mjs +72 -29
  35. package/dist/cli/commands/venues.mjs +3 -3
  36. package/dist/data/desk-data.mjs +78 -34
  37. package/dist/data/names.mjs +46 -2
  38. package/dist/data/providers/farming.mjs +46 -2
  39. package/dist/index.mjs +80 -36
  40. package/dist/local-signer/index.mjs +3 -1
  41. package/dist/router/index.mjs +46 -2
  42. package/dist/router/prepare-bridge.mjs +46 -2
  43. package/dist/scanner/index.mjs +48 -4
  44. package/dist/strategy/index.mjs +47 -3
  45. package/package.json +6 -3
  46. package/public/install.ps1 +1 -1
  47. package/public/install.sh +5 -4
  48. package/public/oracle-splash/_variants/ice.html +3 -3
  49. package/public/oracle-splash/_variants/ivory.html +3 -3
  50. package/public/oracle-splash/downloads/index.html +5 -5
  51. package/public/oracle-splash/index.html +7 -7
  52. package/public/oracle-splash/install.ps1 +1 -1
  53. package/public/oracle-splash/install.sh +5 -4
@@ -1,4 +1,48 @@
1
- var C=Object.freeze(["blockNumber","nativeBalance","tokenBalance","resolveToken","resolvePools","scanBlocks","scoreRisk","quote","sellSimulation","prepareUnsignedTx"]),b=Object.freeze({LIVE:"LIVE",CACHED:"CACHED",STALE:"STALE",UNKNOWN:"UNKNOWN",UNAVAILABLE:"UNAVAILABLE"}),f=Object.freeze({PASS:"PASS",CAUTION:"CAUTION",FAIL:"FAIL",UNKNOWN:"UNKNOWN"}),ie=/^0x[0-9a-fA-F]{40}$/;function oe(e={}){let t=[],i=[];if(!e||typeof e!="object")return{ok:!1,errors:["definition must be an object"],warnings:i};if((!Number.isInteger(e.chainId)||e.chainId<=0)&&t.push("chainId must be a positive integer"),(typeof e.key!="string"||!/^[a-z][a-z0-9-]*$/.test(e.key||""))&&t.push('key must be a lowercase slug (e.g. "base")'),(typeof e.name!="string"||!e.name.trim())&&t.push("name is required"),!Array.isArray(e.rpcEnv)||e.rpcEnv.length===0)t.push("rpcEnv must list at least one environment variable name");else for(let n of e.rpcEnv)(typeof n!="string"||!/^[A-Z][A-Z0-9_]*$/.test(n))&&t.push(`rpcEnv entry "${n}" should be an UPPER_SNAKE env var name`);if(e.nativeCurrency){let n=e.nativeCurrency;(typeof n.symbol!="string"||!n.symbol)&&t.push("nativeCurrency.symbol is required when nativeCurrency is set"),Number.isInteger(n.decimals)||t.push("nativeCurrency.decimals must be an integer")}for(let[n,r]of(e.venues||[]).entries()){let o=`venues[${n}]`;if(!r||typeof r!="object"){t.push(`${o} must be an object`);continue}ie.test(r.address||"")||t.push(`${o}.address is not a valid 20-byte address`),/^0x0{40}$/.test(r.address||"")&&t.push(`${o}.address is the zero address -- placeholder left in place?`),r.kind||t.push(`${o}.kind is required (router|quoter|factory|...)`),r.verified?(r.verified.method||t.push(`${o}.verified.method is required`),r.verified.source||t.push(`${o}.verified.source is required`),r.verified.date||i.push(`${o}.verified.date missing -- add one so staleness is visible`)):t.push(`${o} must record verification: { verified: { method, source, date } }. An unverified venue stays blocked.`)}let a=e.capabilities||{};for(let n of Object.keys(a))C.includes(n)?typeof a[n]!="function"&&t.push(`capability "${n}" must be a function`):t.push(`unknown capability "${n}"`);return Object.keys(a).length===0&&i.push("scanner implements no capabilities -- it can only be registered, not used"),a.prepareUnsignedTx&&!a.quote&&i.push("prepareUnsignedTx without quote: no priced expectation to validate the built tx against"),a.prepareUnsignedTx&&!a.sellSimulation&&i.push("prepareUnsignedTx without sellSimulation: cannot prove an asset is exitable before buying"),{ok:t.length===0,errors:t,warnings:i}}function se(e){let{ok:t,errors:i,warnings:a}=oe(e);if(!t)throw new Error(`invalid scanner for ${e?.key??"<unknown>"}:
2
- - ${i.join(`
3
- - `)}`);let n=e.capabilities||{},r=C.filter(s=>typeof n[s]=="function"),o={key:e.key,chainId:e.chainId,name:e.name,rpcEnv:[...e.rpcEnv],nativeCurrency:e.nativeCurrency?{...e.nativeCurrency}:null,explorer:e.explorer||null,venues:(e.venues||[]).map(s=>({...s})),warnings:a,capabilities(){return{chainId:e.chainId,key:e.key,supported:[...r],unsupported:C.filter(s=>!r.includes(s))}},supports(s){return r.includes(s)}};for(let s of C)r.includes(s)?o[s]=async(...c)=>n[s](...c,{scanner:o}):o[s]=async()=>{throw new Error(`${e.key} (chain ${e.chainId}) does not implement "${s}". Supported: ${r.join(", ")||"none"}. An unimplemented capability is absent, not assumed -- implement it or treat this chain as fail-closed for that operation.`)};return Object.freeze(o)}var S=new Map;function R(e){let t=se(e);return S.set(t.chainId,t),t}function Pe(e){return S.get(Number(e))||null}function De(){return[...S.values()]}function Fe(){S.clear()}function $e(){let e={};for(let t of S.values())e[t.chainId]={key:t.key,name:t.name,...t.capabilities(),venueCount:t.venues.length,failClosed:t.venues.length===0};return{generatedAt:new Date().toISOString(),chainCount:S.size,capabilities:[...C],chains:e}}import{createHash as ce}from"node:crypto";var ue=new Set([408,425,429,500,502,503,504]),F=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),de=2,$=4e3,H=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],le=new Set([301,302,303,307,308]),V=3;function pe(e){let t=String(e||"").toLowerCase();return H.includes(t)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(t)}function he(e){let t={};for(let[i,a]of Object.entries(e||{}))pe(i)||(t[i]=a);return t}function me(e,t){if(!e)throw new Error(`HTTP redirect from ${t} missing Location`);let i=new URL(String(e),String(t));if(i.protocol!=="http:"&&i.protocol!=="https:")throw new Error(`HTTP redirect from ${t} used unsupported protocol ${i.protocol}`);return i.toString()}function fe(e,t){return new URL(String(e)).origin===new URL(String(t)).origin}var T=new Map;function be(e,t,i){let a={};for(let[c,u]of Object.entries(i||{}))a[c.toLowerCase()]=u;let n=Object.keys(a).filter(c=>/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(c)),o=[...new Set([...H,...n])].sort().map(c=>`${c}=${a[c]??""}`).join(`
4
- `),s=ce("sha256").update(o).digest("hex").slice(0,32);return`${e} ${t} ${s}`}function ve(e,t){let i=Number(t);return Number.isFinite(i)&&i>0?Math.min(i*1e3,$):Math.min(250*2**e,$)+Math.floor(Math.random()*100)}var ye=e=>new Promise(t=>setTimeout(t,e));async function ge(e,{fetchImpl:t,method:i,headers:a,body:n,timeoutMs:r}){let o=new AbortController,s=setTimeout(()=>o.abort(),r);try{let c=String(e),u={...a||{}};for(let l=0;l<=V;l+=1){let d=await t(c,{method:i,headers:u,body:n,signal:o.signal,redirect:"manual"}),m=await d.text(),h=null;if(m)try{h=JSON.parse(m)}catch{h=null}if(le.has(d.status)){if(i!=="GET"&&i!=="HEAD"){let v=new Error(`HTTP ${d.status} ${i} ${c} redirected non-idempotent request`);throw v.status=d.status,v.body=h??m.slice(0,300),v}if(l===V)throw new Error(`HTTP redirect loop for ${e}`);let p=me(d.headers?.get?.("location"),c);fe(p,c)||(u=he(u)),c=p;continue}if(!d.ok){let p=new Error(`HTTP ${d.status} ${i} ${c}`);throw p.status=d.status,p.retryAfter=d.headers?.get?.("retry-after")??null,p.body=h??m.slice(0,300),p}return h??m}throw new Error(`HTTP redirect loop for ${e}`)}finally{clearTimeout(s)}}async function U(e,t={}){let i=t.fetchImpl||globalThis.fetch;if(typeof i!="function")throw new Error("fetch unavailable \u2014 pass opts.fetchImpl");let a=t.timeoutMs??12e3,n=(t.method||"GET").toUpperCase(),r={Accept:"application/json",...t.headers||{}},o=t.body;o!=null&&typeof o!="string"&&(r["Content-Type"]=r["Content-Type"]||"application/json",o=JSON.stringify(o));let s=Number.isInteger(t.retries)?Math.max(t.retries,0):de,c=async()=>{let h;for(let p=0;p<=s;p++)try{return await ge(e,{fetchImpl:i,method:n,headers:r,body:o,timeoutMs:a})}catch(v){h=v;let y=v?.status,I=v?.name==="AbortError",x=new Set([408,425,429]),k=y!=null?x.has(y)||ue.has(y)&&F.has(n):!I&&F.has(n);if(p===s||!k)throw v;await ye(ve(p,v?.retryAfter))}throw h};if(!(t.dedupe!==!1&&n==="GET"&&o==null))return c();let l=be(n,e,r),d=T.get(l);if(d)return d;let m=c().finally(()=>T.delete(l));return T.set(l,m),m}var M={robinhood:{chainId:4663,name:"Robinhood Chain",rpcEnv:["RH_CHAIN_RPC"],evm:!0},ethereum:{chainId:1,name:"Ethereum",rpcEnv:["ETH_RPC_URL","ETHEREUM_RPC_URL","MAINNET_RPC_URL"],evm:!0},polygon:{chainId:137,name:"Polygon",rpcEnv:["POLYGON_RPC_URL","POLYGON_RPC"],evm:!0},arbitrum:{chainId:42161,name:"Arbitrum One",rpcEnv:["ARBITRUM_RPC_URL","ARB_RPC_URL"],evm:!0},base:{chainId:8453,name:"Base",rpcEnv:["BASE_RPC_URL"],evm:!0},hyperevm:{chainId:999,name:"HyperEVM",rpcEnv:["HYPEREVM_RPC_URL","HYPER_EVM_RPC"],evm:!0},bsc:{chainId:56,name:"BNB Smart Chain",rpcEnv:["BSC_RPC_URL","BNB_RPC_URL"],evm:!0},avalanche:{chainId:43114,name:"Avalanche C-Chain",rpcEnv:["AVALANCHE_RPC_URL","AVAX_RPC_URL"],evm:!0},optimism:{chainId:10,name:"OP Mainnet",rpcEnv:["OPTIMISM_RPC_URL","OP_RPC_URL"],evm:!0},abstract:{chainId:2741,name:"Abstract",rpcEnv:["ABSTRACT_RPC_URL","ABS_RPC_URL"],evm:!0},stable:{chainId:988,name:"Stable Mainnet",rpcEnv:["STABLE_RPC_URL","STABLE_RPC"],evm:!0}},we=new Map(Object.values(M).map(e=>[e.chainId,e]));function j(e){return we.get(Number(e))||null}function K(e,t=process.env){let i=j(e);if(!i)return null;for(let a of i.rpcEnv){let n=(t[a]||"").trim();if(n)return n}return null}import{Interface as Ee,getAddress as Se}from"ethers";var W=new Ee(["function allowance(address owner,address spender) view returns (uint256)","function balanceOf(address account) view returns (uint256)"]);function z(e,t){try{return Se(e).toLowerCase()}catch{throw new Error(`${t} must be a valid EVM address`)}}var Ie={1:"https://ethereum.publicnode.com",137:"https://polygon-bor-rpc.publicnode.com",42161:"https://arbitrum-one-rpc.publicnode.com",8453:"https://base-rpc.publicnode.com",10:"https://optimism-rpc.publicnode.com",988:"https://rpc.stable.xyz",56:"https://bsc-rpc.publicnode.com",43114:"https://avalanche-c-chain-rpc.publicnode.com",999:"https://rpc.hyperliquid.xyz/evm",2741:"https://api.mainnet.abs.xyz",4663:"https://rpc.mainnet.chain.robinhood.com"};function xe(e,{rpcUrl:t,env:i=process.env}={}){if(t)return t;let a=K(e,i);return a||Ie[Number(e)]||null}var Ce=/^(?:eth_(?:call|blocknumber|chainid|get[a-z0-9]+|feehistory|gasprice|maxpriorityfeepergas|syncing|protocolversion|estimategas|createaccesslist)|net_(?:version|listening|peercount)|web3_(?:clientversion|sha3))$/;function Ae(e){let t=String(e||""),i=t.toLowerCase();if(t!==t.trim()||!/^[a-zA-Z0-9_]+$/.test(t)||!Ce.test(i))throw new Error(`evm-rpc: ${t} refused \u2014 @oracle-agent/oracle is prepare-only (read RPC only; no broadcast/sign)`);return i}async function w(e,t,i=[],a={}){let n=String(t||"");Ae(n);let r=xe(e,a);if(!r)throw new Error(`No RPC URL for chainId ${e} (set env from chain registry rpcEnv or pass rpcUrl)`);let s=await U(r,{method:"POST",body:{jsonrpc:"2.0",id:1,method:t,params:i},fetchImpl:a.fetchImpl,timeoutMs:a.timeoutMs??12e3});if(s?.error){let c=new Error(s.error.message||JSON.stringify(s.error));throw c.code=s.error.code,c}return s.result}async function G(e,t={}){let i=await w(e,"eth_blockNumber",[],t);return parseInt(i,16)}async function Y(e,t,i={}){if(!t)throw new Error("rpcGetBalance requires address");let a=await w(e,"eth_getBalance",[t,"latest"],i);return{chainId:Number(e),address:t,balanceWei:BigInt(a).toString(),balanceHex:a}}async function Q(e={},t={}){let i=Number(e.chainId??t.chainId??1),a=z(e.token||e.tokenAddress,"token"),n=z(e.account||e.owner||e.address,"account"),r=W.encodeFunctionData("balanceOf",[n]),o=await w(i,"eth_call",[{to:a,data:r},e.blockTag||"latest"],t),s=W.decodeFunctionResult("balanceOf",o),c=BigInt(s[0]);return{chainId:i,token:a,account:n,balance:c.toString(),balanceHex:`0x${c.toString(16)}`,blockTag:e.blockTag||"latest"}}var Ne="https://api.dexscreener.com",Xe=Object.freeze({1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avalanche",999:"hyperevm",4663:"robinhood"});function Ue(e={}){return(e.baseUrl||process.env.DEXSCREENER_API_URL||Ne).replace(/\/$/,"")}async function X(e,t={}){if(!e)throw new Error("tokenAddress required");return U(`${Ue(t)}/latest/dex/tokens/${e}`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??12e3})}var L={getAmountsOut:"d06ca61f",swapExactTokensForTokens:"38ed1739",swapExactETHForTokens:"7ff36ab5"},g=e=>BigInt(e).toString(16).padStart(64,"0"),A=e=>e.slice(2).toLowerCase().padStart(64,"0");function _e(e,t){return`0x${L.getAmountsOut}`+g(e)+g(64)+g(t.length)+t.map(A).join("")}function ke(e){if(!e||e==="0x")return null;let t=e.slice(2);if(t.length<128)return null;let i=Number(BigInt(`0x${t.slice(64,128)}`));if(!Number.isFinite(i)||i<1||i>16)return null;let a=[];for(let n=0;n<i;n++){let r=128+n*64;if(t.length<r+64)return null;a.push(BigInt(`0x${t.slice(r,r+64)}`))}return a}function q(e,t="router"){return(e?.venues||[]).find(a=>a.kind===t)?.address??null}var B=100;function Re(e,t){let i=Number(t);if(!Number.isFinite(i)||i<0)throw new Error("slippageBps must be a non-negative number");if(i>B)throw new Error(`slippageBps ${i} exceeds the ${B} bps ceiling. Block and requote or split the order -- do not widen the guard to force a fill.`);return BigInt(e)*BigInt(1e4-Math.floor(i))/10000n}function J(e){let{chainId:t,wrappedNative:i}=e;async function a(n,r,o,s){let c=await w(t,"eth_call",[{to:n,data:_e(r,o)},"latest"],s);return ke(c?.result??c)}return{async quote({tokenIn:n,tokenOut:r,amountIn:o,path:s},c={}){let u=q(c.scanner);if(!u)return{chainId:t,evidence:b.UNAVAILABLE,reason:"no verified router configured for this chain; quoting stays fail-closed rather than guessing a venue address"};let l=s||[n,r];if(l.some(m=>!/^0x[0-9a-fA-F]{40}$/.test(m||"")))throw new Error("quote requires valid 20-byte addresses");let d=await a(u,o,l,c);return d?{chainId:t,router:u,path:l,amountIn:String(o),amountOut:d[d.length-1].toString(),hops:l.length-1,evidence:b.LIVE,note:"exact-input quote at current reserves; not a guaranteed fill"}:{chainId:t,router:u,path:l,evidence:b.UNKNOWN,reason:"router returned no amounts -- no pool for this path, or the call reverted"}},async sellSimulation({token:n,amountIn:r,base:o},s={}){let c=q(s.scanner),u=o||i;if(u&&String(n).toLowerCase()===String(u).toLowerCase())return{chainId:t,token:n,verdict:f.UNKNOWN,evidence:b.UNAVAILABLE,reason:"token is the base asset for this chain, so there is nothing to round-trip against. Sellability must be judged against a different quote asset."};if(!c||!u)return{chainId:t,token:n,verdict:f.UNKNOWN,evidence:b.UNAVAILABLE,reason:c?"no wrappedNative configured for this chain, so no base asset to round-trip against":"no verified router configured for this chain"};let l=await a(c,r,[u,n],s);if(!l)return{chainId:t,token:n,verdict:f.FAIL,evidence:b.LIVE,leg:"buy",reason:"buy leg returned no amounts -- no route in"};let d=l[l.length-1];if(d===0n)return{chainId:t,token:n,verdict:f.FAIL,evidence:b.LIVE,leg:"buy",reason:"buy leg quotes zero output"};let m=await a(c,d,[n,u],s);if(!m)return{chainId:t,token:n,verdict:f.FAIL,evidence:b.LIVE,leg:"sell",bought:d.toString(),reason:"SELL LEG FAILED while the buy leg quoted fine. This is the honeypot signature: do not trade."};let h=m[m.length-1],p=Number(h*10000n/BigInt(r)),v=f.PASS,y="round trip completes with expected fee/impact loss";return p<5e3?(v=f.FAIL,y=`round trip returns only ${(p/100).toFixed(2)}% -- punitive tax or no real liquidity`):p<9e3&&(v=f.CAUTION,y=`round trip returns ${(p/100).toFixed(2)}% -- transfer tax or thin liquidity at this size`),{chainId:t,token:n,base:u,router:c,verdict:v,reason:y,amountIn:String(r),bought:d.toString(),returned:h.toString(),retentionBps:p,evidence:b.LIVE,note:"Quote-level round trip. It does not prove transfer hooks absent at execution time."}},async prepareUnsignedTx({tokenIn:n,tokenOut:r,amountIn:o,recipient:s,slippageBps:c=50,deadlineSeconds:u=900,path:l},d={}){let m=d.scanner,h=q(m);if(!h)throw new Error(`chain ${t} has no verified router; preparing a swap stays fail-closed. Add a venue with recorded provenance first (see docs/adding-a-chain.md).`);if(!/^0x[0-9a-fA-F]{40}$/.test(s||""))throw new Error("prepareUnsignedTx requires a valid recipient address");let p=l||[n,r],v=await this.quote({tokenIn:n,tokenOut:r,amountIn:o,path:p},d);if(v.evidence!==b.LIVE)throw new Error(`cannot prepare without a live quote (${v.evidence}: ${v.reason??"no reason given"})`);let y=Re(v.amountOut,c);if(y<=0n)throw new Error("computed minOut is zero -- refusing to prepare");let I=BigInt(Math.floor(Date.now()/1e3)+Number(u)),x=i&&p[0].toLowerCase()===i.toLowerCase()&&d.useNative,k=x?`0x${L.swapExactETHForTokens}`+g(y)+g(128)+A(s)+g(I)+g(p.length)+p.map(A).join(""):`0x${L.swapExactTokensForTokens}`+g(o)+g(y)+g(160)+A(s)+g(I)+g(p.length)+p.map(A).join("");return{unsigned:!0,signedBy:"user-wallet",chainId:t,tx:{to:h,data:k,value:x?`0x${BigInt(o).toString(16)}`:"0x0"},guard:{quotedOut:v.amountOut,minOut:y.toString(),slippageBps:c,maxSlippageBps:B,deadline:I.toString()},requires:x?[]:[{step:"approve",token:p[0],spender:h,amount:String(o)}],note:"UNSIGNED. Re-verify the guard against a fresh quote immediately before signing -- a quote-time minimum is not a minimum at broadcast time."}}}}var Te=[100,500,3e3,1e4],Z={quoteExactInputSingle:"c6a5026a",exactInputSingle:"04e45aaf"},E=e=>BigInt(e).toString(16).padStart(64,"0"),N=e=>e.slice(2).toLowerCase().padStart(64,"0"),ee=/^0x[0-9a-fA-F]{40}$/,P=100;function qe(e,t){let i=Number(t);if(!Number.isFinite(i)||i<0)throw new Error("slippageBps must be a non-negative number");if(i>P)throw new Error(`slippageBps ${i} exceeds the ${P} bps ceiling. Block and requote or split the order -- do not widen the guard to force a fill.`);return BigInt(e)*BigInt(1e4-Math.floor(i))/10000n}function O(e,t){return(e?.venues||[]).find(i=>i.kind===t)?.address??null}function te(e){let{chainId:t,wrappedNative:i}=e;async function a({quoter:r,tokenIn:o,tokenOut:s,amountIn:c,fee:u},l){let d=`0x${Z.quoteExactInputSingle}`+N(o)+N(s)+E(c)+E(u)+E(0),m=await w(t,"eth_call",[{to:r,data:d},"latest"],l).catch(()=>null),h=m?.result??m;if(!h||h==="0x"||h.length<66)return null;let p=BigInt(`0x${h.slice(2,66)}`);return p>0n?p:null}async function n({quoter:r,tokenIn:o,tokenOut:s,amountIn:c},u){let l=[],d=null;for(let m of Te){let h=await a({quoter:r,tokenIn:o,tokenOut:s,amountIn:c,fee:m},u);l.push({fee:m,amountOut:h?h.toString():null}),h&&(!d||h>d.amountOut)&&(d={fee:m,amountOut:h})}return{best:d,tried:l}}return{async quote({tokenIn:r,tokenOut:o,amountIn:s},c={}){let u=O(c.scanner,"quoter");if(!u)return{chainId:t,evidence:b.UNAVAILABLE,reason:"no verified quoter configured for this chain; quoting stays fail-closed rather than guessing a venue address"};for(let m of[r,o])if(!ee.test(m||""))throw new Error("quote requires valid 20-byte addresses");let{best:l,tried:d}=await n({quoter:u,tokenIn:r,tokenOut:o,amountIn:s},c);return l?{chainId:t,venue:"uniswap-v3",quoter:u,tokenIn:r,tokenOut:o,amountIn:String(s),amountOut:l.amountOut.toString(),fee:l.fee,triedFeeTiers:d,evidence:b.LIVE,note:"exact-input single-hop quote at current tick; not a guaranteed fill"}:{chainId:t,quoter:u,tokenIn:r,tokenOut:o,triedFeeTiers:d,evidence:b.UNKNOWN,reason:"no fee tier returned a quote -- no V3 pool for this pair, or no liquidity"}},async sellSimulation({token:r,amountIn:o,base:s},c={}){let u=O(c.scanner,"quoter"),l=s||i;if(l&&String(r).toLowerCase()===String(l).toLowerCase())return{chainId:t,token:r,verdict:f.UNKNOWN,evidence:b.UNAVAILABLE,reason:"token is the base asset for this chain, so there is nothing to round-trip against. Sellability must be judged against a different quote asset."};if(!u||!l)return{chainId:t,token:r,verdict:f.UNKNOWN,evidence:b.UNAVAILABLE,reason:u?"no wrappedNative configured, so there is no base asset to round-trip against":"no verified quoter configured for this chain"};let d=await n({quoter:u,tokenIn:l,tokenOut:r,amountIn:o},c);if(!d.best)return{chainId:t,token:r,verdict:f.FAIL,evidence:b.LIVE,leg:"buy",reason:"no V3 pool priced the buy leg on any fee tier"};let m=await n({quoter:u,tokenIn:r,tokenOut:l,amountIn:d.best.amountOut},c);if(!m.best)return{chainId:t,token:r,verdict:f.FAIL,evidence:b.LIVE,leg:"sell",bought:d.best.amountOut.toString(),reason:"SELL LEG FAILED while the buy leg quoted fine. This is the honeypot signature: do not trade."};let h=m.best.amountOut,p=Number(h*10000n/BigInt(o)),v=f.PASS,y="round trip completes with expected fee/impact loss";return p<5e3?(v=f.FAIL,y=`round trip returns only ${(p/100).toFixed(2)}% -- punitive tax or no real liquidity`):p<9e3&&(v=f.CAUTION,y=`round trip returns ${(p/100).toFixed(2)}% -- transfer tax or thin liquidity at this size`),{chainId:t,venue:"uniswap-v3",token:r,base:l,verdict:v,reason:y,amountIn:String(o),bought:d.best.amountOut.toString(),returned:h.toString(),retentionBps:p,buyFee:d.best.fee,sellFee:m.best.fee,evidence:b.LIVE,note:"Quote-level round trip. It does not prove transfer hooks absent at execution time."}},async prepareUnsignedTx({tokenIn:r,tokenOut:o,amountIn:s,recipient:c,slippageBps:u=50,fee:l},d={}){let m=O(d.scanner,"router");if(!m)throw new Error(`chain ${t} has no verified V3 router; preparing a swap stays fail-closed. Add a venue with recorded provenance first (see docs/adding-a-chain.md).`);if(!ee.test(c||""))throw new Error("prepareUnsignedTx requires a valid recipient address");let h=await this.quote({tokenIn:r,tokenOut:o,amountIn:s},d);if(h.evidence!==b.LIVE)throw new Error(`cannot prepare without a live quote (${h.evidence}: ${h.reason??"no reason given"})`);let p=l??h.fee,v=qe(h.amountOut,u);if(v<=0n)throw new Error("computed minOut is zero -- refusing to prepare");let y=`0x${Z.exactInputSingle}`+N(r)+N(o)+E(p)+N(c)+E(s)+E(v)+E(0);return{unsigned:!0,signedBy:"user-wallet",chainId:t,venue:"uniswap-v3",tx:{to:m,data:y,value:"0x0"},guard:{quotedOut:h.amountOut,minOut:v.toString(),slippageBps:u,maxSlippageBps:P,fee:p},requires:[{step:"approve",token:r,spender:m,amount:String(s)}],note:"UNSIGNED. Re-verify the guard against a fresh quote immediately before signing -- a quote-time minimum is not a minimum at broadcast time."}}}}var _={decimals:"0x313ce567",symbol:"0x95d89b41",name:"0x06fdde03",totalSupply:"0x18160ddd",owner:"0x8da5cb5b"};function re(e){if(!e||e==="0x")return null;try{return BigInt(e)}catch{return null}}function ne(e){if(!e||e==="0x")return null;let t=e.slice(2);if(t.length>=128){let a=Number(BigInt(`0x${t.slice(64,128)}`));if(a>0&&a<=256&&t.length>=128+a*2){let n=t.slice(128,128+a*2),r=Buffer.from(n,"hex").toString("utf8").replace(/\0+$/,"");if(r)return r}}return Buffer.from(t.slice(0,64),"hex").toString("utf8").replace(/\0+$/,"")||null}function Le(e){let{chainId:t}=e;async function i(a,n,r){return w(t,"eth_call",[{to:a,data:n},"latest"],r)}return{async blockNumber(a={}){let n=await G(t,a);return{chainId:t,blockNumber:n?.blockNumber??n,evidence:b.LIVE}},async nativeBalance(a,n={}){let r=await Y(t,a,n);return{chainId:t,address:a,wei:r?.wei??r?.balance??null,symbol:e.nativeCurrency?.symbol??null,decimals:e.nativeCurrency?.decimals??18,evidence:b.LIVE}},async tokenBalance({token:a,owner:n},r={}){let o=await Q({chainId:t,token:a,owner:n},r);return{chainId:t,token:a,owner:n,raw:o?.balance??o,evidence:b.LIVE}},async resolveToken(a,n={}){if(!/^0x[0-9a-fA-F]{40}$/.test(a||""))return{chainId:t,token:a,evidence:b.UNKNOWN,error:"resolveToken needs a 20-byte address; symbol lookup is a market-data concern"};let[r,o,s,c]=await Promise.all([i(a,_.decimals,n).catch(()=>null),i(a,_.symbol,n).catch(()=>null),i(a,_.name,n).catch(()=>null),i(a,_.totalSupply,n).catch(()=>null)]),u=re(r?.result??r),l=u!==null||o?.result||s?.result;return{chainId:t,address:a,decimals:u===null?null:Number(u),symbol:ne(o?.result??o),name:ne(s?.result??s),totalSupply:(re(c?.result??c)??null)?.toString()??null,evidence:l?b.LIVE:b.UNKNOWN,warning:l?void 0:"no ERC-20 metadata returned -- may not be a token contract"}},async resolvePools(a,n={}){let r=e.dexscreenerSlug;if(!r)return{chainId:t,token:a,pools:[],evidence:b.UNAVAILABLE,reason:"no dexscreenerSlug configured for this chain; pool discovery is unavailable rather than guessed"};let o=await X(a,n).catch(()=>null),c=(o?.pairs||o?.data?.pairs||[]).filter(u=>String(u.chainId).toLowerCase()===String(r).toLowerCase()).map(u=>({pair:u.pairAddress,dex:u.dexId,base:u.baseToken?.address,quote:u.quoteToken?.address,liquidityUsd:u.liquidity?.usd??null,priceUsd:u.priceUsd??null,volume24hUsd:u.volume?.h24??null,createdAt:u.pairCreatedAt??null})).sort((u,l)=>(l.liquidityUsd??0)-(u.liquidityUsd??0));return{chainId:t,token:a,pools:c,evidence:c.length?b.LIVE:b.UNKNOWN}},async scanBlocks({fromBlock:a,toBlock:n,address:r,topics:o,chunkSize:s=2e3}={},c={}){if(!Number.isInteger(a)||!Number.isInteger(n))throw new Error("scanBlocks requires integer fromBlock and toBlock");if(n<a)throw new Error("toBlock must be >= fromBlock");let u=[],l=[];for(let d=a;d<=n;d+=s){let m=Math.min(d+s-1,n);l.push([d,m])}for(let[d,m]of l){let h={fromBlock:`0x${d.toString(16)}`,toBlock:`0x${m.toString(16)}`};r&&(h.address=r),o&&(h.topics=o);let p=await w(t,"eth_getLogs",[h],c).catch(v=>({error:String(v?.message||v)}));if(p?.error)return{chainId:t,fromBlock:a,toBlock:n,logs:u,complete:!1,failedAt:[d,m],error:p.error,evidence:b.UNKNOWN};for(let v of p?.result??p??[])u.push(v)}return{chainId:t,fromBlock:a,toBlock:n,logs:u,complete:!0,chunks:l.length,evidence:b.LIVE}},async scoreRisk(a,n={}){let r=[],o=f.PASS,s=l=>{let d={[f.PASS]:0,[f.CAUTION]:1,[f.UNKNOWN]:2,[f.FAIL]:3};d[l]>d[o]&&(o=l)},c=await this.resolveToken(a,n);c.evidence!==b.LIVE?(r.push({check:"erc20-metadata",result:f.UNKNOWN,detail:c.warning}),s(f.UNKNOWN)):r.push({check:"erc20-metadata",result:f.PASS,detail:`${c.symbol} / ${c.decimals}d`});let u=await this.resolvePools(a,n);if(u.evidence===b.UNAVAILABLE)r.push({check:"liquidity",result:f.UNKNOWN,detail:u.reason}),s(f.UNKNOWN);else if(!u.pools.length)r.push({check:"liquidity",result:f.FAIL,detail:"no pool with liquidity found"}),s(f.FAIL);else{let l=u.pools[0],d=l.liquidityUsd??0;d<5e3?(r.push({check:"liquidity",result:f.CAUTION,detail:`top pool only $${d}`}),s(f.CAUTION)):r.push({check:"liquidity",result:f.PASS,detail:`$${d} on ${l.dex}`}),l.createdAt&&Date.now()-l.createdAt<24*3600*1e3&&(r.push({check:"age",result:f.CAUTION,detail:"pool under 24h old"}),s(f.CAUTION))}if(typeof this.sellSimulation=="function"){let l=await this.sellSimulation({token:a,amountIn:(10n**16n).toString()},n).catch(d=>({verdict:f.UNKNOWN,reason:String(d?.message||d)}));r.push({check:"sellability",result:l.verdict,detail:l.retentionBps!=null?`round trip returns ${(l.retentionBps/100).toFixed(2)}% -- ${l.reason}`:l.reason}),s(l.verdict)}else r.push({check:"sellability",result:f.UNKNOWN,detail:"no verified router on this chain, so a round-trip sell simulation cannot run. Treat as unproven -- a buy path is not an exit path."}),s(f.UNKNOWN);return{chainId:t,token:a,verdict:o,checks:r,note:"Structural checks only. UNKNOWN is not PASS. A token is not tradeable until a sell simulation succeeds."}}}}function D(e){let i={...Le(e)},a=new Set((e.venues||[]).map(r=>r.kind));e.venueKind==="uniswap-v3"&&a.has("quoter")&&a.has("router")?Object.assign(i,te({chainId:e.chainId,wrappedNative:e.wrappedNative})):e.venueKind==="uniswap-v2"&&a.has("router")&&Object.assign(i,J({chainId:e.chainId,wrappedNative:e.wrappedNative}));let n={};for(let[r,o]of Object.entries(i))n[r]=o.bind(i);return{key:e.key,chainId:e.chainId,name:e.name,rpcEnv:e.rpcEnv,nativeCurrency:e.nativeCurrency,explorer:e.explorer,venues:e.venues||[],capabilities:n}}var ae=Object.freeze([{key:"ethereum",chainId:1,name:"Ethereum",rpcEnv:["ETH_RPC_URL","ETHEREUM_RPC_URL","MAINNET_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},explorer:"https://etherscan.io",dexscreenerSlug:"ethereum",venueKind:"uniswap-v3",wrappedNative:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",venues:[{kind:"quoter",address:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WETH->USDC fee 500 quoted 1908.71 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:1}},{kind:"router",address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:1}}]},{key:"optimism",chainId:10,name:"OP Mainnet",rpcEnv:["OPTIMISM_RPC_URL","OP_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},explorer:"https://optimistic.etherscan.io",dexscreenerSlug:"optimism",venueKind:"uniswap-v3",wrappedNative:"0x4200000000000000000000000000000000000006",venues:[{kind:"quoter",address:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WETH->USDC fee 500 quoted 1905.23 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:10}},{kind:"router",address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:10}}]},{key:"bsc",chainId:56,name:"BNB Smart Chain",rpcEnv:["BSC_RPC_URL","BNB_RPC_URL"],nativeCurrency:{symbol:"BNB",decimals:18},explorer:"https://bscscan.com",dexscreenerSlug:"bsc",venueKind:"uniswap-v3",wrappedNative:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",venues:[{kind:"quoter",address:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WBNB->USDC fee 500 quoted 413.86 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:56}},{kind:"router",address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:56}}]},{key:"polygon",chainId:137,name:"Polygon",rpcEnv:["POLYGON_RPC_URL","POLYGON_RPC"],nativeCurrency:{symbol:"POL",decimals:18},explorer:"https://polygonscan.com",dexscreenerSlug:"polygon",venueKind:"uniswap-v3",wrappedNative:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",venues:[{kind:"quoter",address:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WMATIC->USDC fee 500 quoted 0.0720 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:137}},{kind:"router",address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:137}}]},{key:"stable",chainId:988,name:"Stable Mainnet",rpcEnv:["STABLE_RPC_URL","STABLE_RPC"],nativeCurrency:{symbol:"USDT0",decimals:18},venueKind:"uniswap-v3",wrappedNative:"0x5d442b349590a6048Eb2dC0eC346cAA5F47A9ab5",venues:[{kind:"quoter",address:"0xb070179E7032CdA868b53e6C1742F80c9e940d1A",label:"Uniswap V3 QuoterV2 (canonical)",verified:{method:"Stable is on the OFFICIAL Uniswap v3 Deployments List (governance-recognised 2026-05-12, UAC process completed 2026-04, deployed by Protofire), so this is a canonical deployment rather than a fork. eth_getCode returned 8273 bytes, the same size as the canonical quoter on the seven already-verified chains. Functional probe on a live pool (TOAST -> USDT0, fee 10000): 100 in -> 0.000003, 1000 -> 0.000031, 10000 -> 0.000319 USDT0. Output scales monotonically with input, which is a working quoter answering, not a revert. Two of three sampled pools carry non-zero liquidity. NOTE: the pools discovered so far are thin, so real routing size is limited -- the venue is proved, deep liquidity is not.",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-08-05",chainId:988}},{kind:"router",address:"0x32eaf9B5d5F2CD7361c5012890C943D7de84C22a",label:"Uniswap SwapRouter02 (canonical)",verified:{method:"eth_getCode returned 24497 bytes. Cross-checked on-chain rather than trusted from docs: router.factory() returns 0x88f0a512ef09175d456bc9547f914f48c013e4aa, the same v3 core factory that created the pools quoted above, and router.WETH9() returns the wrappedNative recorded on this chain entry. Address published in the Stable docs DEX reference and the Uniswap deployments list.",source:"docs.stable.xyz/en/reference/dexes + on-chain factory()/WETH9() round-trip",date:"2026-08-05",chainId:988}}]},{key:"hyperevm",chainId:999,name:"HyperEVM",rpcEnv:["HYPEREVM_RPC_URL","HYPER_EVM_RPC"],nativeCurrency:{symbol:"HYPE",decimals:18},dexscreenerSlug:"hyperevm",venueKind:"uniswap-v3",wrappedNative:"0x5555555555555555555555555555555555555555",venues:[{kind:"quoter",address:"0x03A918028f22D9E1473B7959C927AD7425A45C7C",label:"HyperSwap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle(1 WHYPE -> USDT0) returned live output on all four fee tiers (100: 57.3385, 500: 57.4187, 3000: 57.3237, 10000: 56.1963 USDT0). Decimals read on-chain: WHYPE 18, USDT0 6. Best tier checked against an INDEPENDENT control the same minute -- Hyperliquid allMids put HYPE at 57.3205, so the pool is 0.171% from the perp mid, which is the right shape for fee plus impact rather than a wrong contract or a decimals bug.",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-08-05",chainId:999}},{kind:"router",address:"0x4E2960a8cd19B467b82d26D83fAcb0fAE26b094D",label:"HyperSwap V3 SwapRouter",verified:{method:"eth_getCode returned 12070 bytes, and it is the router paired with the quoter proved above -- the same pair already shipped in UNI_V3_VENUES[999].hyperswap, which is the map the quote/prepare path actually routes through.",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-08-05",chainId:999}}]},{key:"abstract",chainId:2741,name:"Abstract",rpcEnv:["ABSTRACT_RPC_URL","ABS_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},venueKind:"uniswap-v3",wrappedNative:"0x3439153EB7AF838Ad19d56E1571FBD09333C2809",venues:[{kind:"quoter",address:"0x728BD3eC25D5EDBafebB84F3d67367Cd9EBC7693",label:"Uniswap V3 QuoterV2 (Abstract deployment)",verified:{method:"Abstract is a ZK-stack chain, so CREATE2 addresses differ and the canonical Uniswap addresses are NOT valid here -- probing them returns codesize 0, which is what previously made this chain look like it had no V3 at all. Found the real deployment from live traffic instead: scanned recent Swap(...) logs, took the busiest pool, read pool.factory() = 0xa1160e73b63f322ae88cc2d8e700833e71d0b2a1, then enumerated that factory's deployer (0xf3d63166F0Ca56C3c1A3508FcE03Ff0Cf3Fb691e) and probed each of its 56 contracts with a real quoteExactInputSingle call. Exactly one answered: 1 WETH -> 1846.475731 USDC.e at fee 500. Independent sanity check: the pool's own slot0() spot price is 1873.11 USDC.e per WETH, so the quoter sits ~1.4% below spot, the right shape for fee plus price impact on this size.",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-08-05",chainId:2741}},{kind:"router",address:"0x7712FA47387542819d4E35A23f8116C90C18767C",label:"Uniswap SwapRouter02 (Abstract deployment)",verified:{method:"eth_getCode returned 167392 bytes and the runtime contains the exactInputSingle selector. router.factory() matches the factory proved above and router.WETH9() matches the wrappedNative on this entry. Chosen over its byte-identical twin (0xfD6257F4...) because this is the address real users actually route through: it appeared as tx.to on live swaps against the WETH/USDC.e pool.",source:"on-chain factory()/WETH9() round-trip + live swap tx.to sampling",date:"2026-08-05",chainId:2741}}]},{key:"robinhood",chainId:4663,name:"Robinhood Chain",rpcEnv:["RH_CHAIN_RPC","ROBINHOOD_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},dexscreenerSlug:"robinhood",venueKind:"uniswap-v3",wrappedNative:"0x0bd7d308f8e1639fab988df18a8011f41eacad73",venues:[{kind:"quoter",address:"0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WETH->USDG fee 100 quoted 1866.58 USDG, and USDG->CASHCAT fee 10000 quoted a live amount). A contract that correctly prices known pairs IS a working V3 quoter",source:"live eth_call against rpc.mainnet.chain.robinhood.com",date:"2026-07-31",chainId:4663}},{kind:"router",address:"0xcaf681a66d020601342297493863e78c959e5cb2",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode (24497 bytes) on this chain and the paired quoter at the same deployment passed a live functional quote",source:"live eth_getCode against rpc.mainnet.chain.robinhood.com",date:"2026-07-31",chainId:4663}},{kind:"factory",address:"0x1f7d7550b1b028f7571e69a784071f0205fd2efa",label:"Uniswap V3 Factory",verified:{method:"eth_getCode returned real bytecode (24535 bytes) and a PoolCreated log scan over this factory returned 76 pools in ~9000 recent blocks",source:"live eth_getLogs against rpc.mainnet.chain.robinhood.com",date:"2026-07-31",chainId:4663}}]},{key:"base",chainId:8453,name:"Base",rpcEnv:["BASE_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},explorer:"https://basescan.org",dexscreenerSlug:"base",venueKind:"uniswap-v3",wrappedNative:"0x4200000000000000000000000000000000000006",venues:[{kind:"quoter",address:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",label:"Uniswap V3 QuoterV2 (Base)",verified:{method:"functional probe: quoteExactInputSingle returned WETH->USDC at fee 500 = 1908.44 USDC, a live sane price. The canonical mainnet quoter address also has bytecode on Base but does NOT price this pair, which is exactly the false positive a codesize-only check accepts",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:8453}},{kind:"router",address:"0x2626664c2603336E57B271c5C0b26F421741e481",label:"Uniswap V3 SwapRouter02 (Base)",verified:{method:"eth_getCode returned real bytecode and the paired Base quoter passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:8453}},{kind:"router-v2",address:"0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24",label:"Uniswap V2 Router02 (Base)",verified:{method:"eth_getCode returned 17891 bytes; live getAmountsOut on WETH->USDC round-tripped to 98.75% (2x0.30% fee + impact)",source:"https://docs.uniswap.org/contracts/v2/reference/smart-contracts/v2-deployments",date:"2026-07-30",chainId:8453}}]},{key:"arbitrum",chainId:42161,name:"Arbitrum One",rpcEnv:["ARBITRUM_RPC_URL","ARB_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},explorer:"https://arbiscan.io",dexscreenerSlug:"arbitrum",venueKind:"uniswap-v3",wrappedNative:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",venues:[{kind:"quoter",address:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WETH->USDC fee 500 quoted 1908.72 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:42161}},{kind:"router",address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:42161}}]},{key:"avalanche",chainId:43114,name:"Avalanche C-Chain",rpcEnv:["AVALANCHE_RPC_URL","AVAX_RPC_URL"],nativeCurrency:{symbol:"AVAX",decimals:18},explorer:"https://snowtrace.io",dexscreenerSlug:"avalanche",venueKind:"uniswap-v3",wrappedNative:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",venues:[{kind:"quoter",address:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WAVAX->USDC fee 500 quoted 6.48 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:43114}},{kind:"router",address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:43114}}]}]);function Be(){return ae.map(e=>R(D(e)))}function Oe(e){return R(D(e))}export{ae as CHAIN_CONFIGS,b as EVIDENCE,f as RISK,C as SCANNER_CAPABILITIES,Fe as __clearScanners,se as createScanner,Pe as getScanner,De as listScanners,Be as registerBuiltinScanners,Oe as registerCustomChain,R as registerScanner,$e as scannerCoverage,oe as validateScanner};
1
+ var Kh=Object.create;var jc=Object.defineProperty;var zh=Object.getOwnPropertyDescriptor;var Xh=Object.getOwnPropertyNames;var _h=Object.getPrototypeOf,jh=Object.prototype.hasOwnProperty;var d=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(A,t)=>(typeof require<"u"?require:A)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var f=(e,A)=>()=>{try{return A||e((A={exports:{}}).exports,A),A.exports}catch(t){throw A=0,t}};var $h=(e,A,t,r)=>{if(A&&typeof A=="object"||typeof A=="function")for(let n of Xh(A))!jh.call(e,n)&&n!==t&&jc(e,n,{get:()=>A[n],enumerable:!(r=zh(A,n))||r.enumerable});return e};var Ad=(e,A,t)=>(t=e!=null?Kh(_h(e)):{},$h(A||!e||!e.__esModule?jc(t,"default",{value:e,enumerable:!0}):t,e));var X=f((zS,$c)=>{$c.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var v=f((XS,Dg)=>{"use strict";var Ag=Symbol.for("undici.error.UND_ERR"),_=class extends Error{constructor(A){super(A),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](A){return A&&A[Ag]===!0}[Ag]=!0},eg=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),hi=class extends _{constructor(A){super(A),this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[eg]===!0}[eg]=!0},tg=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),di=class extends _{constructor(A){super(A),this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[tg]===!0}[tg]=!0},rg=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),fi=class extends _{constructor(A){super(A),this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](A){return A&&A[rg]===!0}[rg]=!0},ng=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),wi=class extends _{constructor(A){super(A),this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[ng]===!0}[ng]=!0},sg=Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE"),yi=class extends _{constructor(A,t,r,n){super(A),this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=n,this.status=t,this.statusCode=t,this.headers=r}static[Symbol.hasInstance](A){return A&&A[sg]===!0}[sg]=!0},ig=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),pi=class extends _{constructor(A){super(A),this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](A){return A&&A[ig]===!0}[ig]=!0},og=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),Di=class extends _{constructor(A){super(A),this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](A){return A&&A[og]===!0}[og]=!0},ag=Symbol.for("undici.error.UND_ERR_ABORT"),dn=class extends _{constructor(A){super(A),this.name="AbortError",this.message=A||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](A){return A&&A[ag]===!0}[ag]=!0},cg=Symbol.for("undici.error.UND_ERR_ABORTED"),mi=class extends dn{constructor(A){super(A),this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](A){return A&&A[cg]===!0}[cg]=!0},gg=Symbol.for("undici.error.UND_ERR_INFO"),ki=class extends _{constructor(A){super(A),this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](A){return A&&A[gg]===!0}[gg]=!0},Qg=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),Fi=class extends _{constructor(A){super(A),this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[Qg]===!0}[Qg]=!0},Eg=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),Ri=class extends _{constructor(A){super(A),this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[Eg]===!0}[Eg]=!0},Bg=Symbol.for("undici.error.UND_ERR_DESTROYED"),bi=class extends _{constructor(A){super(A),this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](A){return A&&A[Bg]===!0}[Bg]=!0},Ig=Symbol.for("undici.error.UND_ERR_CLOSED"),Ni=class extends _{constructor(A){super(A),this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](A){return A&&A[Ig]===!0}[Ig]=!0},Cg=Symbol.for("undici.error.UND_ERR_SOCKET"),Si=class extends _{constructor(A,t){super(A),this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}static[Symbol.hasInstance](A){return A&&A[Cg]===!0}[Cg]=!0},lg=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),Ui=class extends _{constructor(A){super(A),this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](A){return A&&A[lg]===!0}[lg]=!0},ug=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),Mi=class extends _{constructor(A){super(A),this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](A){return A&&A[ug]===!0}[ug]=!0},hg=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),Li=class extends Error{constructor(A,t,r){super(A),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=r?r.toString():void 0}static[Symbol.hasInstance](A){return A&&A[hg]===!0}[hg]=!0},dg=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),Ti=class extends _{constructor(A){super(A),this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](A){return A&&A[dg]===!0}[dg]=!0},fg=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),Yi=class extends _{constructor(A,t,{headers:r,data:n}){super(A),this.name="RequestRetryError",this.message=A||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=t,this.data=n,this.headers=r}static[Symbol.hasInstance](A){return A&&A[fg]===!0}[fg]=!0},wg=Symbol.for("undici.error.UND_ERR_RESPONSE"),xi=class extends _{constructor(A,t,{headers:r,data:n}){super(A),this.name="ResponseError",this.message=A||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=t,this.data=n,this.headers=r}static[Symbol.hasInstance](A){return A&&A[wg]===!0}[wg]=!0},yg=Symbol.for("undici.error.UND_ERR_PRX_TLS"),Gi=class extends _{constructor(A,t,r){super(t,{cause:A,...r??{}}),this.name="SecureProxyConnectionError",this.message=t||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=A}static[Symbol.hasInstance](A){return A&&A[yg]===!0}[yg]=!0},pg=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),Ji=class extends _{constructor(A){super(A),this.name="MessageSizeExceededError",this.message=A||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](A){return A&&A[pg]===!0}get[pg](){return!0}};Dg.exports={AbortError:dn,HTTPParserError:Li,UndiciError:_,HeadersTimeoutError:di,HeadersOverflowError:fi,BodyTimeoutError:wi,RequestContentLengthMismatchError:Fi,ConnectTimeoutError:hi,ResponseStatusCodeError:yi,InvalidArgumentError:pi,InvalidReturnValueError:Di,RequestAbortedError:mi,ClientDestroyedError:bi,ClientClosedError:Ni,InformationalError:ki,SocketError:Si,NotSupportedError:Ui,ResponseContentLengthMismatchError:Ri,BalancedPoolMissingUpstreamError:Mi,ResponseExceededMaxSizeError:Ti,RequestRetryError:Yi,ResponseError:xi,SecureProxyConnectionError:Gi,MessageSizeExceededError:Ji}});var wn=f((_S,mg)=>{"use strict";var fn={},vi=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e<vi.length;++e){let A=vi[e],t=A.toLowerCase();fn[A]=fn[t]=t}Object.setPrototypeOf(fn,null);mg.exports={wellknownHeaderNames:vi,headerNameLowerCasedRecord:fn}});var bg=f((jS,Rg)=>{"use strict";var{wellknownHeaderNames:kg,headerNameLowerCasedRecord:nd}=wn(),Hi=class e{value=null;left=null;middle=null;right=null;code;constructor(A,t,r){if(r===void 0||r>=A.length)throw new TypeError("Unreachable");if((this.code=A.charCodeAt(r))>127)throw new TypeError("key must be ascii string");A.length!==++r?this.middle=new e(A,t,r):this.value=t}add(A,t){let r=A.length;if(r===0)throw new TypeError("Unreachable");let n=0,s=this;for(;;){let i=A.charCodeAt(n);if(i>127)throw new TypeError("key must be ascii string");if(s.code===i)if(r===++n){s.value=t;break}else if(s.middle!==null)s=s.middle;else{s.middle=new e(A,t,n);break}else if(s.code<i)if(s.left!==null)s=s.left;else{s.left=new e(A,t,n);break}else if(s.right!==null)s=s.right;else{s.right=new e(A,t,n);break}}}search(A){let t=A.length,r=0,n=this;for(;n!==null&&r<t;){let s=A[r];for(s<=90&&s>=65&&(s|=32);n!==null;){if(s===n.code){if(t===++r)return n;n=n.middle;break}n=n.code<s?n.left:n.right}}return null}},yn=class{node=null;insert(A,t){this.node===null?this.node=new Hi(A,t,0):this.node.add(A,t)}lookup(A){return this.node?.search(A)?.value??null}},Fg=new yn;for(let e=0;e<kg.length;++e){let A=nd[kg[e]];Fg.insert(A,A)}Rg.exports={TernarySearchTree:yn,tree:Fg}});var T=f(($S,Og)=>{"use strict";var Cr=d("node:assert"),{kDestroyed:Sg,kBodyUsed:ut,kListeners:Vi,kBody:Ng}=X(),{IncomingMessage:sd}=d("node:http"),mn=d("node:stream"),id=d("node:net"),{Blob:od}=d("node:buffer"),ad=d("node:util"),{stringify:cd}=d("node:querystring"),{EventEmitter:gd}=d("node:events"),{InvalidArgumentError:oA}=v(),{headerNameLowerCasedRecord:Qd}=wn(),{tree:Ug}=bg(),[Ed,Bd]=process.versions.node.split(".").map(e=>Number(e)),Dn=class{constructor(A){this[Ng]=A,this[ut]=!1}async*[Symbol.asyncIterator](){Cr(!this[ut],"disturbed"),this[ut]=!0,yield*this[Ng]}};function Id(e){return kn(e)?(xg(e)===0&&e.on("data",function(){Cr(!1)}),typeof e.readableDidRead!="boolean"&&(e[ut]=!1,gd.prototype.on.call(e,"data",function(){this[ut]=!0})),e):e&&typeof e.pipeTo=="function"?new Dn(e):e&&typeof e!="string"&&!ArrayBuffer.isView(e)&&Yg(e)?new Dn(e):e}function Cd(){}function kn(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function Mg(e){if(e===null)return!1;if(e instanceof od)return!0;if(typeof e!="object")return!1;{let A=e[Symbol.toStringTag];return(A==="Blob"||A==="File")&&("stream"in e&&typeof e.stream=="function"||"arrayBuffer"in e&&typeof e.arrayBuffer=="function")}}function ld(e,A){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=cd(A);return t&&(e+="?"+t),e}function Lg(e){let A=parseInt(e,10);return A===Number(e)&&A>=0&&A<=65535}function pn(e){return e!=null&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&(e[4]===":"||e[4]==="s"&&e[5]===":")}function Tg(e){if(typeof e=="string"){if(e=new URL(e),!pn(e.origin||e.protocol))throw new oA("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new oA("Invalid URL: The URL argument must be a non-null object.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&Lg(e.port)===!1)throw new oA("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new oA("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new oA("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new oA("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new oA("Invalid URL origin: the origin must be a string or null/undefined.");if(!pn(e.origin||e.protocol))throw new oA("Invalid URL protocol: the URL must start with `http:` or `https:`.");let A=e.port!=null?e.port:e.protocol==="https:"?443:80,t=e.origin!=null?e.origin:`${e.protocol||""}//${e.hostname||""}:${A}`,r=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;return t[t.length-1]==="/"&&(t=t.slice(0,t.length-1)),r&&r[0]!=="/"&&(r=`/${r}`),new URL(`${t}${r}`)}if(!pn(e.origin||e.protocol))throw new oA("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function ud(e){if(e=Tg(e),e.pathname!=="/"||e.search||e.hash)throw new oA("invalid url");return e}function hd(e){if(e[0]==="["){let t=e.indexOf("]");return Cr(t!==-1),e.substring(1,t)}let A=e.indexOf(":");return A===-1?e:e.substring(0,A)}function dd(e){if(!e)return null;Cr(typeof e=="string");let A=hd(e);return id.isIP(A)?"":A}function fd(e){return JSON.parse(JSON.stringify(e))}function wd(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function Yg(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function xg(e){if(e==null)return 0;if(kn(e)){let A=e._readableState;return A&&A.objectMode===!1&&A.ended===!0&&Number.isFinite(A.length)?A.length:null}else{if(Mg(e))return e.size!=null?e.size:null;if(vg(e))return e.byteLength}return null}function Gg(e){return e&&!!(e.destroyed||e[Sg]||mn.isDestroyed?.(e))}function yd(e,A){e==null||!kn(e)||Gg(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===sd&&(e.socket=null),e.destroy(A)):A&&queueMicrotask(()=>{e.emit("error",A)}),e.destroyed!==!0&&(e[Sg]=!0))}var pd=/timeout=(\d+)/;function Dd(e){let A=e.toString().match(pd);return A?parseInt(A[1],10)*1e3:null}function Jg(e){return typeof e=="string"?Qd[e]??e.toLowerCase():Ug.lookup(e)??e.toString("latin1").toLowerCase()}function md(e){return Ug.lookup(e)??e.toString("latin1").toLowerCase()}function kd(e,A){A===void 0&&(A={});for(let t=0;t<e.length;t+=2){let r=Jg(e[t]),n=A[r];if(n)typeof n=="string"&&(n=[n],A[r]=n),n.push(e[t+1].toString("utf8"));else{let s=e[t+1];typeof s=="string"?A[r]=s:A[r]=Array.isArray(s)?s.map(i=>i.toString("utf8")):s.toString("utf8")}}return"content-length"in A&&"content-disposition"in A&&(A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")),A}function Fd(e){let A=e.length,t=new Array(A),r=!1,n=-1,s,i,o=0;for(let a=0;a<e.length;a+=2)s=e[a],i=e[a+1],typeof s!="string"&&(s=s.toString()),typeof i!="string"&&(i=i.toString("utf8")),o=s.length,o===14&&s[7]==="-"&&(s==="content-length"||s.toLowerCase()==="content-length")?r=!0:o===19&&s[7]==="-"&&(s==="content-disposition"||s.toLowerCase()==="content-disposition")&&(n=a+1),t[a]=s,t[a+1]=i;return r&&n!==-1&&(t[n]=Buffer.from(t[n]).toString("latin1")),t}function vg(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function Rd(e,A,t){if(!e||typeof e!="object")throw new oA("handler must be an object");if(typeof e.onConnect!="function")throw new oA("invalid onConnect method");if(typeof e.onError!="function")throw new oA("invalid onError method");if(typeof e.onBodySent!="function"&&e.onBodySent!==void 0)throw new oA("invalid onBodySent method");if(t||A==="CONNECT"){if(typeof e.onUpgrade!="function")throw new oA("invalid onUpgrade method")}else{if(typeof e.onHeaders!="function")throw new oA("invalid onHeaders method");if(typeof e.onData!="function")throw new oA("invalid onData method");if(typeof e.onComplete!="function")throw new oA("invalid onComplete method")}}function bd(e){return!!(e&&(mn.isDisturbed(e)||e[ut]))}function Nd(e){return!!(e&&mn.isErrored(e))}function Sd(e){return!!(e&&mn.isReadable(e))}function Ud(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}function Md(e){let A;return new ReadableStream({async start(){A=e[Symbol.asyncIterator]()},async pull(t){let{done:r,value:n}=await A.next();if(r)queueMicrotask(()=>{t.close(),t.byobRequest?.respond(0)});else{let s=Buffer.isBuffer(n)?n:Buffer.from(n);s.byteLength&&t.enqueue(new Uint8Array(s))}return t.desiredSize>0},async cancel(t){await A.return()},type:"bytes"})}function Ld(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function Td(e,A){return"addEventListener"in e?(e.addEventListener("abort",A,{once:!0}),()=>e.removeEventListener("abort",A)):(e.addListener("abort",A),()=>e.removeListener("abort",A))}var Yd=typeof String.prototype.toWellFormed=="function",xd=typeof String.prototype.isWellFormed=="function";function Hg(e){return Yd?`${e}`.toWellFormed():ad.toUSVString(e)}function Gd(e){return xd?`${e}`.isWellFormed():Hg(e)===`${e}`}function Vg(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function Jd(e){if(e.length===0)return!1;for(let A=0;A<e.length;++A)if(!Vg(e.charCodeAt(A)))return!1;return!0}var vd=/[^\t\x20-\x7e\x80-\xff]/;function Hd(e){return!vd.test(e)}function Vd(e){if(e==null||e==="")return{start:0,end:null,size:null};let A=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return A?{start:parseInt(A[1]),end:A[2]?parseInt(A[2]):null,size:A[3]?parseInt(A[3]):null}:null}function qd(e,A,t){return(e[Vi]??=[]).push([A,t]),e.on(A,t),e}function Wd(e){for(let[A,t]of e[Vi]??[])e.removeListener(A,t);e[Vi]=null}function Od(e,A,t){try{A.onError(t),Cr(A.aborted)}catch(r){e.emit("error",r)}}var qg=Object.create(null);qg.enumerable=!0;var qi={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"},Wg={...qi,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(qi,null);Object.setPrototypeOf(Wg,null);Og.exports={kEnumerableProperty:qg,nop:Cd,isDisturbed:bd,isErrored:Nd,isReadable:Sd,toUSVString:Hg,isUSVString:Gd,isBlobLike:Mg,parseOrigin:ud,parseURL:Tg,getServerName:dd,isStream:kn,isIterable:Yg,isAsyncIterable:wd,isDestroyed:Gg,headerNameToString:Jg,bufferToLowerCasedHeaderName:md,addListener:qd,removeAllListeners:Wd,errorRequest:Od,parseRawHeaders:Fd,parseHeaders:kd,parseKeepAliveTimeout:Dd,destroy:yd,bodyLength:xg,deepClone:fd,ReadableStreamFrom:Md,isBuffer:vg,validateHandler:Rd,getSocketInfo:Ud,isFormDataLike:Ld,buildURL:ld,addAbortListener:Td,isValidHTTPToken:Jd,isValidHeaderValue:Hd,isTokenCharCode:Vg,parseRangeHeader:Vd,normalizedMethodRecordsBase:qi,normalizedMethodRecords:Wg,isValidPort:Lg,isHttpOrHttpsPrefixed:pn,nodeMajor:Ed,nodeMinor:Bd,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"],wrapRequestBody:Id}});var ht=f((AU,Zg)=>{"use strict";var q=d("node:diagnostics_channel"),Oi=d("node:util"),Fn=Oi.debuglog("undici"),Wi=Oi.debuglog("fetch"),ve=Oi.debuglog("websocket"),Pg=!1,Pd={beforeConnect:q.channel("undici:client:beforeConnect"),connected:q.channel("undici:client:connected"),connectError:q.channel("undici:client:connectError"),sendHeaders:q.channel("undici:client:sendHeaders"),create:q.channel("undici:request:create"),bodySent:q.channel("undici:request:bodySent"),headers:q.channel("undici:request:headers"),trailers:q.channel("undici:request:trailers"),error:q.channel("undici:request:error"),open:q.channel("undici:websocket:open"),close:q.channel("undici:websocket:close"),socketError:q.channel("undici:websocket:socket_error"),ping:q.channel("undici:websocket:ping"),pong:q.channel("undici:websocket:pong")};if(Fn.enabled||Wi.enabled){let e=Wi.enabled?Wi:Fn;q.channel("undici:client:beforeConnect").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connecting to %s using %s%s",`${s}${n?`:${n}`:""}`,r,t)}),q.channel("undici:client:connected").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connected to %s using %s%s",`${s}${n?`:${n}`:""}`,r,t)}),q.channel("undici:client:connectError").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s},error:i}=A;e("connection to %s using %s%s errored - %s",`${s}${n?`:${n}`:""}`,r,t,i.message)}),q.channel("undici:client:sendHeaders").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("sending request to %s %s/%s",t,n,r)}),q.channel("undici:request:headers").subscribe(A=>{let{request:{method:t,path:r,origin:n},response:{statusCode:s}}=A;e("received response to %s %s/%s - HTTP %d",t,n,r,s)}),q.channel("undici:request:trailers").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("trailers received from %s %s/%s",t,n,r)}),q.channel("undici:request:error").subscribe(A=>{let{request:{method:t,path:r,origin:n},error:s}=A;e("request to %s %s/%s errored - %s",t,n,r,s.message)}),Pg=!0}if(ve.enabled){if(!Pg){let e=Fn.enabled?Fn:ve;q.channel("undici:client:beforeConnect").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connecting to %s%s using %s%s",s,n?`:${n}`:"",r,t)}),q.channel("undici:client:connected").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connected to %s%s using %s%s",s,n?`:${n}`:"",r,t)}),q.channel("undici:client:connectError").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s},error:i}=A;e("connection to %s%s using %s%s errored - %s",s,n?`:${n}`:"",r,t,i.message)}),q.channel("undici:client:sendHeaders").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("sending request to %s %s/%s",t,n,r)})}q.channel("undici:websocket:open").subscribe(e=>{let{address:{address:A,port:t}}=e;ve("connection opened %s%s",A,t?`:${t}`:"")}),q.channel("undici:websocket:close").subscribe(e=>{let{websocket:A,code:t,reason:r}=e;ve("closed connection to %s - %s %s",A.url,t,r)}),q.channel("undici:websocket:socket_error").subscribe(e=>{ve("connection errored - %s",e.message)}),q.channel("undici:websocket:ping").subscribe(e=>{ve("ping received")}),q.channel("undici:websocket:pong").subscribe(e=>{ve("pong received")})}Zg.exports={channels:Pd}});var _g=f((eU,Xg)=>{"use strict";var{InvalidArgumentError:O,NotSupportedError:Zd}=v(),ae=d("node:assert"),{isValidHTTPToken:zg,isValidHeaderValue:lr,isStream:Kd,destroy:zd,isBuffer:Xd,isFormDataLike:_d,isIterable:jd,isBlobLike:$d,buildURL:Af,validateHandler:ef,getServerName:tf,normalizedMethodRecords:rf}=T(),{channels:XA}=ht(),{headerNameLowerCasedRecord:Kg}=wn(),nf=/[^\u0021-\u00ff]/,UA=Symbol("handler"),Pi=class{constructor(A,{path:t,method:r,body:n,headers:s,query:i,idempotent:o,blocking:a,upgrade:c,headersTimeout:g,bodyTimeout:Q,reset:E,throwOnError:B,expectContinue:I,servername:l},u){if(typeof t!="string")throw new O("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&r!=="CONNECT")throw new O("path must be an absolute URL or start with a slash");if(nf.test(t))throw new O("invalid request path");if(typeof r!="string")throw new O("method must be a string");if(rf[r]===void 0&&!zg(r))throw new O("invalid request method");if(c&&typeof c!="string")throw new O("upgrade must be a string");if(c&&!lr(c))throw new O("invalid upgrade header");if(g!=null&&(!Number.isFinite(g)||g<0))throw new O("invalid headersTimeout");if(Q!=null&&(!Number.isFinite(Q)||Q<0))throw new O("invalid bodyTimeout");if(E!=null&&typeof E!="boolean")throw new O("invalid reset");if(I!=null&&typeof I!="boolean")throw new O("invalid expectContinue");if(this.headersTimeout=g,this.bodyTimeout=Q,this.throwOnError=B===!0,this.method=r,this.abort=null,n==null)this.body=null;else if(Kd(n)){this.body=n;let C=this.body._readableState;(!C||!C.autoDestroy)&&(this.endHandler=function(){zd(this)},this.body.on("end",this.endHandler)),this.errorHandler=h=>{this.abort?this.abort(h):this.error=h},this.body.on("error",this.errorHandler)}else if(Xd(n))this.body=n.byteLength?n:null;else if(ArrayBuffer.isView(n))this.body=n.buffer.byteLength?Buffer.from(n.buffer,n.byteOffset,n.byteLength):null;else if(n instanceof ArrayBuffer)this.body=n.byteLength?Buffer.from(n):null;else if(typeof n=="string")this.body=n.length?Buffer.from(n):null;else if(_d(n)||jd(n)||$d(n))this.body=n;else throw new O("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=c||null,this.path=i?Af(t,i):t,this.origin=A,this.idempotent=o??(r==="HEAD"||r==="GET"),this.blocking=a??!1,this.reset=E??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=I??!1,Array.isArray(s)){if(s.length%2!==0)throw new O("headers array must be even");for(let C=0;C<s.length;C+=2)Rn(this,s[C],s[C+1])}else if(s&&typeof s=="object")if(s[Symbol.iterator])for(let C of s){if(!Array.isArray(C)||C.length!==2)throw new O("headers must be in key-value pair format");Rn(this,C[0],C[1])}else{let C=Object.keys(s);for(let h=0;h<C.length;++h)Rn(this,C[h],s[C[h]])}else if(s!=null)throw new O("headers must be an object or an array");ef(u,r,c),this.servername=l||tf(this.host),this[UA]=u,XA.create.hasSubscribers&&XA.create.publish({request:this})}onBodySent(A){if(this[UA].onBodySent)try{return this[UA].onBodySent(A)}catch(t){this.abort(t)}}onRequestSent(){if(XA.bodySent.hasSubscribers&&XA.bodySent.publish({request:this}),this[UA].onRequestSent)try{return this[UA].onRequestSent()}catch(A){this.abort(A)}}onConnect(A){if(ae(!this.aborted),ae(!this.completed),this.error)A(this.error);else return this.abort=A,this[UA].onConnect(A)}onResponseStarted(){return this[UA].onResponseStarted?.()}onHeaders(A,t,r,n){ae(!this.aborted),ae(!this.completed),XA.headers.hasSubscribers&&XA.headers.publish({request:this,response:{statusCode:A,headers:t,statusText:n}});try{return this[UA].onHeaders(A,t,r,n)}catch(s){this.abort(s)}}onData(A){ae(!this.aborted),ae(!this.completed);try{return this[UA].onData(A)}catch(t){return this.abort(t),!1}}onUpgrade(A,t,r){return ae(!this.aborted),ae(!this.completed),this[UA].onUpgrade(A,t,r)}onComplete(A){this.onFinally(),ae(!this.aborted),this.completed=!0,XA.trailers.hasSubscribers&&XA.trailers.publish({request:this,trailers:A});try{return this[UA].onComplete(A)}catch(t){this.onError(t)}}onError(A){if(this.onFinally(),XA.error.hasSubscribers&&XA.error.publish({request:this,error:A}),!this.aborted)return this.aborted=!0,this[UA].onError(A)}onFinally(){this.errorHandler&&(this.body.off("error",this.errorHandler),this.errorHandler=null),this.endHandler&&(this.body.off("end",this.endHandler),this.endHandler=null)}addHeader(A,t){return Rn(this,A,t),this}};function Rn(e,A,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new O(`invalid ${A} header`);if(t===void 0)return;let r=Kg[A];if(r===void 0&&(r=A.toLowerCase(),Kg[r]===void 0&&!zg(r)))throw new O("invalid header key");if(Array.isArray(t)){let n=[];for(let s=0;s<t.length;s++)if(typeof t[s]=="string"){if(!lr(t[s]))throw new O(`invalid ${A} header`);n.push(t[s])}else if(t[s]===null)n.push("");else{if(typeof t[s]=="object")throw new O(`invalid ${A} header`);{let i=`${t[s]}`;if(!lr(i))throw new O(`invalid ${A} header`);n.push(i)}}t=n}else if(typeof t=="string"){if(!lr(t))throw new O(`invalid ${A} header`)}else if(t===null)t="";else if(t=`${t}`,!lr(t))throw new O(`invalid ${A} header`);if(r==="host"){if(e.host!==null)throw new O("duplicate host header");if(typeof t!="string")throw new O("invalid host header");e.host=t}else if(r==="content-length"){if(e.contentLength!==null)throw new O("duplicate content-length header");if(e.contentLength=parseInt(t,10),!Number.isFinite(e.contentLength))throw new O("invalid content-length header")}else if(e.contentType===null&&r==="content-type")e.contentType=t,e.headers.push(A,t);else{if(r==="transfer-encoding"||r==="keep-alive"||r==="upgrade")throw new O(`invalid ${r} header`);if(r==="connection"){let n=typeof t=="string"?t.toLowerCase():null;if(n!=="close"&&n!=="keep-alive")throw new O("invalid connection header");n==="close"&&(e.reset=!0)}else{if(r==="expect")throw new Zd("expect header not supported");e.headers.push(A,t)}}}Xg.exports=Pi});var ur=f((tU,jg)=>{"use strict";var sf=d("node:events"),bn=class extends sf{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...A){let t=Array.isArray(A[0])?A[0]:A,r=this.dispatch.bind(this);for(let n of t)if(n!=null){if(typeof n!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof n}`);if(r=n(r),r==null||typeof r!="function"||r.length!==2)throw new TypeError("invalid interceptor")}return new Zi(this,r)}},Zi=class extends bn{#A=null;#e=null;constructor(A,t){super(),this.#A=A,this.#e=t}dispatch(...A){this.#e(...A)}close(...A){return this.#A.close(...A)}destroy(...A){return this.#A.destroy(...A)}};jg.exports=bn});var yt=f((rU,$g)=>{"use strict";var of=ur(),{ClientDestroyedError:Ki,ClientClosedError:af,InvalidArgumentError:dt}=v(),{kDestroy:cf,kClose:gf,kClosed:hr,kDestroyed:ft,kDispatch:zi,kInterceptors:He}=X(),ce=Symbol("onDestroyed"),wt=Symbol("onClosed"),Nn=Symbol("Intercepted Dispatch"),Xi=Symbol("webSocketOptions"),_i=class extends of{constructor(A){super(),this[ft]=!1,this[ce]=null,this[hr]=!1,this[wt]=[],this[Xi]=A?.webSocket??{}}get webSocketOptions(){return{maxFragments:this[Xi].maxFragments??131072,maxPayloadSize:this[Xi].maxPayloadSize??128*1024*1024}}get destroyed(){return this[ft]}get closed(){return this[hr]}get interceptors(){return this[He]}set interceptors(A){if(A){for(let t=A.length-1;t>=0;t--)if(typeof this[He][t]!="function")throw new dt("interceptor must be an function")}this[He]=A}close(A){if(A===void 0)return new Promise((r,n)=>{this.close((s,i)=>s?n(s):r(i))});if(typeof A!="function")throw new dt("invalid callback");if(this[ft]){queueMicrotask(()=>A(new Ki,null));return}if(this[hr]){this[wt]?this[wt].push(A):queueMicrotask(()=>A(null,null));return}this[hr]=!0,this[wt].push(A);let t=()=>{let r=this[wt];this[wt]=null;for(let n=0;n<r.length;n++)r[n](null,null)};this[gf]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(A,t){if(typeof A=="function"&&(t=A,A=null),t===void 0)return new Promise((n,s)=>{this.destroy(A,(i,o)=>i?s(i):n(o))});if(typeof t!="function")throw new dt("invalid callback");if(this[ft]){this[ce]?this[ce].push(t):queueMicrotask(()=>t(null,null));return}A||(A=new Ki),this[ft]=!0,this[ce]=this[ce]||[],this[ce].push(t);let r=()=>{let n=this[ce];this[ce]=null;for(let s=0;s<n.length;s++)n[s](null,null)};this[cf](A).then(()=>{queueMicrotask(r)})}[Nn](A,t){if(!this[He]||this[He].length===0)return this[Nn]=this[zi],this[zi](A,t);let r=this[zi].bind(this);for(let n=this[He].length-1;n>=0;n--)r=this[He][n](r);return this[Nn]=r,r(A,t)}dispatch(A,t){if(!t||typeof t!="object")throw new dt("handler must be an object");try{if(!A||typeof A!="object")throw new dt("opts must be an object.");if(this[ft]||this[ce])throw new Ki;if(this[hr])throw new af;return this[Nn](A,t)}catch(r){if(typeof t.onError!="function")throw new dt("invalid onError method");return t.onError(r),!1}}};$g.exports=_i});var no=f((nU,rQ)=>{"use strict";var pt=0,ji=1e3,$i=(ji>>1)-1,ge,Ao=Symbol("kFastTimer"),Qe=[],eo=-2,to=-1,eQ=0,AQ=1;function ro(){pt+=$i;let e=0,A=Qe.length;for(;e<A;){let t=Qe[e];t._state===eQ?(t._idleStart=pt-$i,t._state=AQ):t._state===AQ&&pt>=t._idleStart+t._idleTimeout&&(t._state=to,t._idleStart=-1,t._onTimeout(t._timerArg)),t._state===to?(t._state=eo,--A!==0&&(Qe[e]=Qe[A])):++e}Qe.length=A,Qe.length!==0&&tQ()}function tQ(){ge?ge.refresh():(clearTimeout(ge),ge=setTimeout(ro,$i),ge.unref&&ge.unref())}var Sn=class{[Ao]=!0;_state=eo;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(A,t,r){this._onTimeout=A,this._idleTimeout=t,this._timerArg=r,this.refresh()}refresh(){this._state===eo&&Qe.push(this),(!ge||Qe.length===1)&&tQ(),this._state=eQ}clear(){this._state=to,this._idleStart=-1}};rQ.exports={setTimeout(e,A,t){return A<=ji?setTimeout(e,A,t):new Sn(e,A,t)},clearTimeout(e){e[Ao]?e.clear():clearTimeout(e)},setFastTimeout(e,A,t){return new Sn(e,A,t)},clearFastTimeout(e){e.clear()},now(){return pt},tick(e=0){pt+=e-ji+1,ro(),ro()},reset(){pt=0,Qe.length=0,clearTimeout(ge),ge=null},kFastTimer:Ao}});var dr=f((oU,aQ)=>{"use strict";var Qf=d("node:net"),nQ=d("node:assert"),oQ=T(),{InvalidArgumentError:Ef,ConnectTimeoutError:Bf}=v(),Un=no();function sQ(){}var so,io;global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)?io=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let r=this._sessionCache.get(t);r!==void 0&&r.deref()===void 0&&this._sessionCache.delete(t)})}get(A){let t=this._sessionCache.get(A);return t?t.deref():null}set(A,t){this._maxCachedSessions!==0&&(this._sessionCache.set(A,new WeakRef(t)),this._sessionRegistry.register(t,A))}}:io=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map}get(A){return this._sessionCache.get(A)}set(A,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:r}=this._sessionCache.keys().next();this._sessionCache.delete(r)}this._sessionCache.set(A,t)}}};function If({allowH2:e,maxCachedSessions:A,socketPath:t,timeout:r,session:n,...s}){if(A!=null&&(!Number.isInteger(A)||A<0))throw new Ef("maxCachedSessions must be a positive integer or zero");let i={path:t,...s},o=new io(A??100);return r=r??1e4,e=e??!1,function({hostname:c,host:g,protocol:Q,port:E,servername:B,localAddress:I,httpSocket:l},u){let C;if(Q==="https:"){so||(so=d("node:tls")),B=B||i.servername||oQ.getServerName(g)||null;let D=B||c;nQ(D);let p=n||o.get(D)||null;E=E||443,C=so.connect({highWaterMark:16384,...i,servername:B,session:p,localAddress:I,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:l,port:E,host:c}),C.on("session",function(H){o.set(D,H)})}else nQ(!l,"httpSocket can only be sent on TLS update"),E=E||80,C=Qf.connect({highWaterMark:64*1024,...i,localAddress:I,port:E,host:c});if(i.keepAlive==null||i.keepAlive){let D=i.keepAliveInitialDelay===void 0?6e4:i.keepAliveInitialDelay;C.setKeepAlive(!0,D)}let h=Cf(new WeakRef(C),{timeout:r,hostname:c,port:E});return C.setNoDelay(!0).once(Q==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(h),u){let D=u;u=null,D(null,this)}}).on("error",function(D){if(queueMicrotask(h),u){let p=u;u=null,p(D)}}),C}}var Cf=process.platform==="win32"?(e,A)=>{if(!A.timeout)return sQ;let t=null,r=null,n=Un.setFastTimeout(()=>{t=setImmediate(()=>{r=setImmediate(()=>iQ(e.deref(),A))})},A.timeout);return()=>{Un.clearFastTimeout(n),clearImmediate(t),clearImmediate(r)}}:(e,A)=>{if(!A.timeout)return sQ;let t=null,r=Un.setFastTimeout(()=>{t=setImmediate(()=>{iQ(e.deref(),A)})},A.timeout);return()=>{Un.clearFastTimeout(r),clearImmediate(t)}};function iQ(e,A){if(e==null)return;let t="Connect Timeout Error";Array.isArray(e.autoSelectFamilyAttemptedAddresses)?t+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(", ")},`:t+=` (attempted address: ${A.hostname}:${A.port},`,t+=` timeout: ${A.timeout}ms)`,oQ.destroy(e,new Bf(t))}aQ.exports=If});var cQ=f(Mn=>{"use strict";Object.defineProperty(Mn,"__esModule",{value:!0});Mn.enumToMap=void 0;function lf(e){let A={};return Object.keys(e).forEach(t=>{let r=e[t];typeof r=="number"&&(A[t]=r)}),A}Mn.enumToMap=lf});var gQ=f(y=>{"use strict";Object.defineProperty(y,"__esModule",{value:!0});y.SPECIAL_HEADERS=y.HEADER_STATE=y.MINOR=y.MAJOR=y.CONNECTION_TOKEN_CHARS=y.HEADER_CHARS=y.TOKEN=y.STRICT_TOKEN=y.HEX=y.URL_CHAR=y.STRICT_URL_CHAR=y.USERINFO_CHARS=y.MARK=y.ALPHANUM=y.NUM=y.HEX_MAP=y.NUM_MAP=y.ALPHA=y.FINISH=y.H_METHOD_MAP=y.METHOD_MAP=y.METHODS_RTSP=y.METHODS_ICE=y.METHODS_HTTP=y.METHODS=y.LENIENT_FLAGS=y.FLAGS=y.TYPE=y.ERROR=void 0;var uf=cQ(),hf;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(hf=y.ERROR||(y.ERROR={}));var df;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(df=y.TYPE||(y.TYPE={}));var ff;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(ff=y.FLAGS||(y.FLAGS={}));var wf;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(wf=y.LENIENT_FLAGS||(y.LENIENT_FLAGS={}));var R;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(R=y.METHODS||(y.METHODS={}));y.METHODS_HTTP=[R.DELETE,R.GET,R.HEAD,R.POST,R.PUT,R.CONNECT,R.OPTIONS,R.TRACE,R.COPY,R.LOCK,R.MKCOL,R.MOVE,R.PROPFIND,R.PROPPATCH,R.SEARCH,R.UNLOCK,R.BIND,R.REBIND,R.UNBIND,R.ACL,R.REPORT,R.MKACTIVITY,R.CHECKOUT,R.MERGE,R["M-SEARCH"],R.NOTIFY,R.SUBSCRIBE,R.UNSUBSCRIBE,R.PATCH,R.PURGE,R.MKCALENDAR,R.LINK,R.UNLINK,R.PRI,R.SOURCE];y.METHODS_ICE=[R.SOURCE];y.METHODS_RTSP=[R.OPTIONS,R.DESCRIBE,R.ANNOUNCE,R.SETUP,R.PLAY,R.PAUSE,R.TEARDOWN,R.GET_PARAMETER,R.SET_PARAMETER,R.REDIRECT,R.RECORD,R.FLUSH,R.GET,R.POST];y.METHOD_MAP=uf.enumToMap(R);y.H_METHOD_MAP={};Object.keys(y.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(y.H_METHOD_MAP[e]=y.METHOD_MAP[e])});var yf;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(yf=y.FINISH||(y.FINISH={}));y.ALPHA=[];for(let e=65;e<=90;e++)y.ALPHA.push(String.fromCharCode(e)),y.ALPHA.push(String.fromCharCode(e+32));y.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};y.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};y.NUM=["0","1","2","3","4","5","6","7","8","9"];y.ALPHANUM=y.ALPHA.concat(y.NUM);y.MARK=["-","_",".","!","~","*","'","(",")"];y.USERINFO_CHARS=y.ALPHANUM.concat(y.MARK).concat(["%",";",":","&","=","+","$",","]);y.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(y.ALPHANUM);y.URL_CHAR=y.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)y.URL_CHAR.push(e);y.HEX=y.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);y.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(y.ALPHANUM);y.TOKEN=y.STRICT_TOKEN.concat([" "]);y.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&y.HEADER_CHARS.push(e);y.CONNECTION_TOKEN_CHARS=y.HEADER_CHARS.filter(e=>e!==44);y.MAJOR=y.NUM_MAP;y.MINOR=y.MAJOR;var Dt;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(Dt=y.HEADER_STATE||(y.HEADER_STATE={}));y.SPECIAL_HEADERS={connection:Dt.CONNECTION,"content-length":Dt.CONTENT_LENGTH,"proxy-connection":Dt.CONNECTION,"transfer-encoding":Dt.TRANSFER_ENCODING,upgrade:Dt.UPGRADE}});var oo=f((gU,QQ)=>{"use strict";var{Buffer:pf}=d("node:buffer");QQ.exports=pf.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIdbGxodHRwX3NldF9sZW5pZW50X2tlZXBfYWxpdmUAIyRsbGh0dHBfc2V0X2xlbmllbnRfdHJhbnNmZXJfZW5jb2RpbmcAJBhsbGh0dHBfbWVzc2FnZV9uZWVkc19lb2YALgkXAQBBAQsRAQIDBAUKBgcrLSwqKSglJyYK07MCLBYAQYjQACgCAARAAAtBiNAAQQE2AgALFAAgABAwIAAgAjYCOCAAIAE6ACgLFAAgACAALwEyIAAtAC4gABAvEAALHgEBf0HAABAyIgEQMCABQYAINgI4IAEgADoAKCABC48MAQd/AkAgAEUNACAAQQhrIgEgAEEEaygCACIAQXhxIgRqIQUCQCAAQQFxDQAgAEEDcUUNASABIAEoAgAiAGsiAUGc0AAoAgBJDQEgACAEaiEEAkACQEGg0AAoAgAgAUcEQCAAQf8BTQRAIABBA3YhAyABKAIIIgAgASgCDCICRgRAQYzQAEGM0AAoAgBBfiADd3E2AgAMBQsgAiAANgIIIAAgAjYCDAwECyABKAIYIQYgASABKAIMIgBHBEAgACABKAIIIgI2AgggAiAANgIMDAMLIAFBFGoiAygCACICRQRAIAEoAhAiAkUNAiABQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFKAIEIgBBA3FBA0cNAiAFIABBfnE2AgRBlNAAIAQ2AgAgBSAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCABKAIcIgJBAnRBvNIAaiIDKAIAIAFGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgAUYbaiAANgIAIABFDQELIAAgBjYCGCABKAIQIgIEQCAAIAI2AhAgAiAANgIYCyABQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAFTw0AIAUoAgQiAEEBcUUNAAJAAkACQAJAIABBAnFFBEBBpNAAKAIAIAVGBEBBpNAAIAE2AgBBmNAAQZjQACgCACAEaiIANgIAIAEgAEEBcjYCBCABQaDQACgCAEcNBkGU0ABBADYCAEGg0ABBADYCAAwGC0Gg0AAoAgAgBUYEQEGg0AAgATYCAEGU0ABBlNAAKAIAIARqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAAwGCyAAQXhxIARqIQQgAEH/AU0EQCAAQQN2IQMgBSgCCCIAIAUoAgwiAkYEQEGM0ABBjNAAKAIAQX4gA3dxNgIADAULIAIgADYCCCAAIAI2AgwMBAsgBSgCGCEGIAUgBSgCDCIARwRAQZzQACgCABogACAFKAIIIgI2AgggAiAANgIMDAMLIAVBFGoiAygCACICRQRAIAUoAhAiAkUNAiAFQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFIABBfnE2AgQgASAEaiAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCAFKAIcIgJBAnRBvNIAaiIDKAIAIAVGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgBUYbaiAANgIAIABFDQELIAAgBjYCGCAFKAIQIgIEQCAAIAI2AhAgAiAANgIYCyAFQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAEaiAENgIAIAEgBEEBcjYCBCABQaDQACgCAEcNAEGU0AAgBDYCAAwBCyAEQf8BTQRAIARBeHFBtNAAaiEAAn9BjNAAKAIAIgJBASAEQQN2dCIDcUUEQEGM0AAgAiADcjYCACAADAELIAAoAggLIgIgATYCDCAAIAE2AgggASAANgIMIAEgAjYCCAwBC0EfIQIgBEH///8HTQRAIARBJiAEQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAgsgASACNgIcIAFCADcCECACQQJ0QbzSAGohAAJAQZDQACgCACIDQQEgAnQiB3FFBEAgACABNgIAQZDQACADIAdyNgIAIAEgADYCGCABIAE2AgggASABNgIMDAELIARBGSACQQF2a0EAIAJBH0cbdCECIAAoAgAhAAJAA0AgACIDKAIEQXhxIARGDQEgAkEddiEAIAJBAXQhAiADIABBBHFqQRBqIgcoAgAiAA0ACyAHIAE2AgAgASADNgIYIAEgATYCDCABIAE2AggMAQsgAygCCCIAIAE2AgwgAyABNgIIIAFBADYCGCABIAM2AgwgASAANgIIC0Gs0ABBrNAAKAIAQQFrIgBBfyAAGzYCAAsLBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LQAEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABAwIAAgBDYCOCAAIAM6ACggACACOgAtIAAgATYCGAu74gECB38DfiABIAJqIQQCQCAAIgIoAgwiAA0AIAIoAgQEQCACIAE2AgQLIwBBEGsiCCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAhwiA0EBaw7dAdoBAdkBAgMEBQYHCAkKCwwNDtgBDxDXARES1gETFBUWFxgZGhvgAd8BHB0e1QEfICEiIyQl1AEmJygpKiss0wHSAS0u0QHQAS8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRtsBR0hJSs8BzgFLzQFMzAFNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBywHKAbgByQG5AcgBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgEA3AELQQAMxgELQQ4MxQELQQ0MxAELQQ8MwwELQRAMwgELQRMMwQELQRQMwAELQRUMvwELQRYMvgELQRgMvQELQRkMvAELQRoMuwELQRsMugELQRwMuQELQR0MuAELQQgMtwELQR4MtgELQSAMtQELQR8MtAELQQcMswELQSEMsgELQSIMsQELQSMMsAELQSQMrwELQRIMrgELQREMrQELQSUMrAELQSYMqwELQScMqgELQSgMqQELQcMBDKgBC0EqDKcBC0ErDKYBC0EsDKUBC0EtDKQBC0EuDKMBC0EvDKIBC0HEAQyhAQtBMAygAQtBNAyfAQtBDAyeAQtBMQydAQtBMgycAQtBMwybAQtBOQyaAQtBNQyZAQtBxQEMmAELQQsMlwELQToMlgELQTYMlQELQQoMlAELQTcMkwELQTgMkgELQTwMkQELQTsMkAELQT0MjwELQQkMjgELQSkMjQELQT4MjAELQT8MiwELQcAADIoBC0HBAAyJAQtBwgAMiAELQcMADIcBC0HEAAyGAQtBxQAMhQELQcYADIQBC0EXDIMBC0HHAAyCAQtByAAMgQELQckADIABC0HKAAx/C0HLAAx+C0HNAAx9C0HMAAx8C0HOAAx7C0HPAAx6C0HQAAx5C0HRAAx4C0HSAAx3C0HTAAx2C0HUAAx1C0HWAAx0C0HVAAxzC0EGDHILQdcADHELQQUMcAtB2AAMbwtBBAxuC0HZAAxtC0HaAAxsC0HbAAxrC0HcAAxqC0EDDGkLQd0ADGgLQd4ADGcLQd8ADGYLQeEADGULQeAADGQLQeIADGMLQeMADGILQQIMYQtB5AAMYAtB5QAMXwtB5gAMXgtB5wAMXQtB6AAMXAtB6QAMWwtB6gAMWgtB6wAMWQtB7AAMWAtB7QAMVwtB7gAMVgtB7wAMVQtB8AAMVAtB8QAMUwtB8gAMUgtB8wAMUQtB9AAMUAtB9QAMTwtB9gAMTgtB9wAMTQtB+AAMTAtB+QAMSwtB+gAMSgtB+wAMSQtB/AAMSAtB/QAMRwtB/gAMRgtB/wAMRQtBgAEMRAtBgQEMQwtBggEMQgtBgwEMQQtBhAEMQAtBhQEMPwtBhgEMPgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var BQ=f((QU,EQ)=>{"use strict";var{Buffer:Df}=d("node:buffer");EQ.exports=Df.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxBACEDDKIBCyACQeQANgIcIAIgATYCFCACQeMXNgIQIAJBFTYCDEEAIQMMoQELIAJBADYCACAGQQFqIQEgAi0AKSIAQSNrQQtJDQQCQCAAQQZLDQBBASAAdEHKAHFFDQAMBQtBACEDIAJBADYCHCACIAE2AhQgAkH3CTYCECACQQg2AgwMoAELIAJBADYCACAGQQFqIQEgAi0AKUEhRg0DIAJBADYCHCACIAE2AhQgAkGbCjYCECACQQg2AgxBACEDDJ8BCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJBkDM2AhAgAkEINgIMDJ0BCyACQQA2AgAgBkEBaiEBIAItAClBI0kNACACQQA2AhwgAiABNgIUIAJB0wk2AhAgAkEINgIMQQAhAwycAQtB0QAhAwyCAQsgAS0AAEEwayIAQf8BcUEKSQRAIAIgADoAKiABQQFqIQFBzwAhAwyCAQsgAigCBCEAIAJBADYCBCACIAAgARAoIgBFDYYBIAJB3gA2AhwgAiABNgIUIAIgADYCDEEAIQMMmgELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ2GASACQdwANgIcIAIgATYCFCACIAA2AgxBACEDDJkBCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMhwELIAJB2gA2AhwgAiAFNgIUIAIgADYCDAyYAQtBACEBQQEhAwsgAiADOgArIAVBAWohAwJAAkACQCACLQAtQRBxDQACQAJAAkAgAi0AKg4DAQACBAsgBkUNAwwCCyAADQEMAgsgAUUNAQsgAigCBCEAIAJBADYCBCACIAAgAxAoIgBFBEAgAyEBDAILIAJB2AA2AhwgAiADNgIUIAIgADYCDEEAIQMMmAELIAIoAgQhACACQQA2AgQgAiAAIAMQKCIARQRAIAMhAQyHAQsgAkHZADYCHCACIAM2AhQgAiAANgIMQQAhAwyXAQtBzAAhAwx9CyAAQRVHBEAgAkEANgIcIAIgATYCFCACQZQNNgIQIAJBITYCDEEAIQMMlgELIAJB1wA2AhwgAiABNgIUIAJByRc2AhAgAkEVNgIMQQAhAwyVAQtBACEDIAJBADYCHCACIAE2AhQgAkGAETYCECACQQk2AgwMlAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0AIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMkwELQckAIQMMeQsgAkEANgIcIAIgATYCFCACQcEoNgIQIAJBBzYCDCACQQA2AgBBACEDDJEBCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAlIgBFDQAgAkHSADYCHCACIAE2AhQgAiAANgIMDJABC0HIACEDDHYLIAJBADYCACAFIQELIAJBgBI7ASogAUEBaiEBQQAhAAJAIAIoAjgiA0UNACADKAIwIgNFDQAgAiADEQAAIQALIAANAQtBxwAhAwxzCyAAQRVGBEAgAkHRADYCHCACIAE2AhQgAkHjFzYCECACQRU2AgxBACEDDIwBC0EAIQMgAkEANgIcIAIgATYCFCACQbkNNgIQIAJBGjYCDAyLAQtBACEDIAJBADYCHCACIAE2AhQgAkGgGTYCECACQR42AgwMigELIAEtAABBOkYEQCACKAIEIQBBACEDIAJBADYCBCACIAAgARApIgBFDQEgAkHDADYCHCACIAA2AgwgAiABQQFqNgIUDIoBC0EAIQMgAkEANgIcIAIgATYCFCACQbERNgIQIAJBCjYCDAyJAQsgAUEBaiEBQTshAwxvCyACQcMANgIcIAIgADYCDCACIAFBAWo2AhQMhwELQQAhAyACQQA2AhwgAiABNgIUIAJB8A42AhAgAkEcNgIMDIYBCyACIAIvATBBEHI7ATAMZgsCQCACLwEwIgBBCHFFDQAgAi0AKEEBRw0AIAItAC1BCHFFDQMLIAIgAEH3+wNxQYAEcjsBMAwECyABIARHBEACQANAIAEtAABBMGsiAEH/AXFBCk8EQEE1IQMMbgsgAikDICIKQpmz5syZs+bMGVYNASACIApCCn4iCjcDICAKIACtQv8BgyILQn+FVg0BIAIgCiALfDcDICAEIAFBAWoiAUcNAAtBOSEDDIUBCyACKAIEIQBBACEDIAJBADYCBCACIAAgAUEBaiIBECoiAA0MDHcLQTkhAwyDAQsgAi0AMEEgcQ0GQcUBIQMMaQtBACEDIAJBADYCBCACIAEgARAqIgBFDQQgAkE6NgIcIAIgADYCDCACIAFBAWo2AhQMgQELIAItAChBAUcNACACLQAtQQhxRQ0BC0E3IQMMZgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIABEAgAkE7NgIcIAIgADYCDCACIAFBAWo2AhQMfwsgAUEBaiEBDG4LIAJBCDoALAwECyABQQFqIQEMbQtBACEDIAJBADYCHCACIAE2AhQgAkHkEjYCECACQQQ2AgwMewsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ1sIAJBNzYCHCACIAE2AhQgAiAANgIMDHoLIAIgAi8BMEEgcjsBMAtBMCEDDF8LIAJBNjYCHCACIAE2AhQgAiAANgIMDHcLIABBLEcNASABQQFqIQBBASEBAkACQAJAAkACQCACLQAsQQVrDgQDAQIEAAsgACEBDAQLQQIhAQwBC0EEIQELIAJBAToALCACIAIvATAgAXI7ATAgACEBDAELIAIgAi8BMEEIcjsBMCAAIQELQTkhAwxcCyACQQA6ACwLQTQhAwxaCyABIARGBEBBLSEDDHMLAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0EtIQMMdAsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ0CIAJBLDYCHCACIAE2AhQgAiAANgIMDHMLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAS0AAEENRgRAIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAi0ALUEBcQRAQcQBIQMMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIADQEMZQtBLyEDDFcLIAJBLjYCHCACIAE2AhQgAiAANgIMDG8LQQAhAyACQQA2AhwgAiABNgIUIAJB8BQ2AhAgAkEDNgIMDG4LQQEhAwJAAkACQAJAIAItACxBBWsOBAMBAgAECyACIAIvATBBCHI7ATAMAwtBAiEDDAELQQQhAwsgAkEBOgAsIAIgAi8BMCADcjsBMAtBKiEDDFMLQQAhAyACQQA2AhwgAiABNgIUIAJB4Q82AhAgAkEKNgIMDGsLQQEhAwJAAkACQAJAAkACQCACLQAsQQJrDgcFBAQDAQIABAsgAiACLwEwQQhyOwEwDAMLQQIhAwwBC0EEIQMLIAJBAToALCACIAIvATAgA3I7ATALQSshAwxSC0EAIQMgAkEANgIcIAIgATYCFCACQasSNgIQIAJBCzYCDAxqC0EAIQMgAkEANgIcIAIgATYCFCACQf0NNgIQIAJBHTYCDAxpCyABIARHBEADQCABLQAAQSBHDUggBCABQQFqIgFHDQALQSUhAwxpC0ElIQMMaAsgAi0ALUEBcQRAQcMBIQMMTwsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKSIABEAgAkEmNgIcIAIgADYCDCACIAFBAWo2AhQMaAsgAUEBaiEBDFwLIAFBAWohASACLwEwIgBBgAFxBEBBACEAAkAgAigCOCIDRQ0AIAMoAlQiA0UNACACIAMRAAAhAAsgAEUNBiAAQRVHDR8gAkEFNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMZwsCQCAAQaAEcUGgBEcNACACLQAtQQJxDQBBACEDIAJBADYCHCACIAE2AhQgAkGWEzYCECACQQQ2AgwMZwsgAgJ/IAIvATBBFHFBFEYEQEEBIAItAChBAUYNARogAi8BMkHlAEYMAQsgAi0AKUEFRgs6AC5BACEAAkAgAigCOCIDRQ0AIAMoAiQiA0UNACACIAMRAAAhAAsCQAJAAkACQAJAIAAOFgIBAAQEBAQEBAQEBAQEBAQEBAQEBAMECyACQQE6AC4LIAIgAi8BMEHAAHI7ATALQSchAwxPCyACQSM2AhwgAiABNgIUIAJBpRY2AhAgAkEVNgIMQQAhAwxnC0EAIQMgAkEANgIcIAIgATYCFCACQdULNgIQIAJBETYCDAxmC0EAIQACQCACKAI4IgNFDQAgAygCLCIDRQ0AIAIgAxEAACEACyAADQELQQ4hAwxLCyAAQRVGBEAgAkECNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMZAtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMYwtBACEDIAJBADYCHCACIAE2AhQgAkGqHDYCECACQQ82AgwMYgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEgCqdqIgEQKyIARQ0AIAJBBTYCHCACIAE2AhQgAiAANgIMDGELQQ8hAwxHC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxfC0IBIQoLIAFBAWohAQJAIAIpAyAiC0L//////////w9YBEAgAiALQgSGIAqENwMgDAELQQAhAyACQQA2AhwgAiABNgIUIAJBrQk2AhAgAkEMNgIMDF4LQSQhAwxEC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxcCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAsIgBFBEAgAUEBaiEBDFILIAJBFzYCHCACIAA2AgwgAiABQQFqNgIUDFsLIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQRY2AhwgAiAANgIMIAIgAUEBajYCFAxbC0EfIQMMQQtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQLSIARQRAIAFBAWohAQxQCyACQRQ2AhwgAiAANgIMIAIgAUEBajYCFAxYCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABEC0iAEUEQCABQQFqIQEMAQsgAkETNgIcIAIgADYCDCACIAFBAWo2AhQMWAtBHiEDDD4LQQAhAyACQQA2AhwgAiABNgIUIAJBxgw2AhAgAkEjNgIMDFYLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABEC0iAEUEQCABQQFqIQEMTgsgAkERNgIcIAIgADYCDCACIAFBAWo2AhQMVQsgAkEQNgIcIAIgATYCFCACIAA2AgwMVAtBACEDIAJBADYCHCACIAE2AhQgAkHGDDYCECACQSM2AgwMUwtBACEDIAJBADYCHCACIAE2AhQgAkHAFTYCECACQQI2AgwMUgsgAigCBCEAQQAhAyACQQA2AgQCQCACIAAgARAtIgBFBEAgAUEBaiEBDAELIAJBDjYCHCACIAA2AgwgAiABQQFqNgIUDFILQRshAww4C0EAIQMgAkEANgIcIAIgATYCFCACQcYMNgIQIAJBIzYCDAxQCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABECwiAEUEQCABQQFqIQEMAQsgAkENNgIcIAIgADYCDCACIAFBAWo2AhQMUAtBGiEDDDYLQQAhAyACQQA2AhwgAiABNgIUIAJBmg82AhAgAkEiNgIMDE4LIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQQw2AhwgAiAANgIMIAIgAUEBajYCFAxOC0EZIQMMNAtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMTAsgAEEVRwRAQQAhAyACQQA2AhwgAiABNgIUIAJBgww2AhAgAkETNgIMDEwLIAJBCjYCHCACIAE2AhQgAkHkFjYCECACQRU2AgxBACEDDEsLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABIAqnaiIBECsiAARAIAJBBzYCHCACIAE2AhQgAiAANgIMDEsLQRMhAwwxCyAAQRVHBEBBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMSgsgAkEeNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMSQtBACEAAkAgAigCOCIDRQ0AIAMoAiwiA0UNACACIAMRAAAhAAsgAEUNQSAAQRVGBEAgAkEDNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMSQtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMSAtBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMRwtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMRgsgAkEAOgAvIAItAC1BBHFFDT8LIAJBADoALyACQQE6ADRBACEDDCsLQQAhAyACQQA2AhwgAkHkETYCECACQQc2AgwgAiABQQFqNgIUDEMLAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB3QEhAwxDCwJAAkAgAi0ANEEBRw0AQQAhAAJAIAIoAjgiA0UNACADKAJYIgNFDQAgAiADEQAAIQALIABFDQAgAEEVRw0BIAJB3AE2AhwgAiABNgIUIAJB1RY2AhAgAkEVNgIMQQAhAwxEC0HBASEDDCoLIAJBADYCHCACIAE2AhQgAkHpCzYCECACQR82AgxBACEDDEILAkACQCACLQAoQQFrDgIEAQALQcABIQMMKQtBuQEhAwwoCyACQQI6AC9BACEAAkAgAigCOCIDRQ0AIAMoAgAiA0UNACACIAMRAAAhAAsgAEUEQEHCASEDDCgLIABBFUcEQCACQQA2AhwgAiABNgIUIAJBpAw2AhAgAkEQNgIMQQAhAwxBCyACQdsBNgIcIAIgATYCFCACQfoWNgIQIAJBFTYCDEEAIQMMQAsgASAERgRAQdoBIQMMQAsgAS0AAEHIAEYNASACQQE6ACgLQawBIQMMJQtBvwEhAwwkCyABIARHBEAgAkEQNgIIIAIgATYCBEG+ASEDDCQLQdkBIQMMPAsgASAERgRAQdgBIQMMPAsgAS0AAEHIAEcNBCABQQFqIQFBvQEhAwwiCyABIARGBEBB1wEhAww7CwJAAkAgAS0AAEHFAGsOEAAFBQUFBQUFBQUFBQUFBQEFCyABQQFqIQFBuwEhAwwiCyABQQFqIQFBvAEhAwwhC0HWASEDIAEgBEYNOSACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGD0ABqLQAARw0DIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw6CyACKAIEIQAgAkIANwMAIAIgACAGQQFqIgEQJyIARQRAQcYBIQMMIQsgAkHVATYCHCACIAE2AhQgAiAANgIMQQAhAww5C0HUASEDIAEgBEYNOCACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGB0ABqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw5CyACQYEEOwEoIAIoAgQhACACQgA3AwAgAiAAIAZBAWoiARAnIgANAwwCCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJB2Bs2AhAgAkEINgIMDDYLQboBIQMMHAsgAkHTATYCHCACIAE2AhQgAiAANgIMQQAhAww0C0EAIQACQCACKAI4IgNFDQAgAygCOCIDRQ0AIAIgAxEAACEACyAARQ0AIABBFUYNASACQQA2AhwgAiABNgIUIAJBzA42AhAgAkEgNgIMQQAhAwwzC0HkACEDDBkLIAJB+AA2AhwgAiABNgIUIAJByhg2AhAgAkEVNgIMQQAhAwwxC0HSASEDIAQgASIARg0wIAQgAWsgAigCACIBaiEFIAAgAWtBBGohBgJAA0AgAC0AACABQfzPAGotAABHDQEgAUEERg0DIAFBAWohASAEIABBAWoiAEcNAAsgAiAFNgIADDELIAJBADYCHCACIAA2AhQgAkGQMzYCECACQQg2AgwgAkEANgIAQQAhAwwwCyABIARHBEAgAkEONgIIIAIgATYCBEG3ASEDDBcLQdEBIQMMLwsgAkEANgIAIAZBAWohAQtBuAEhAwwUCyABIARGBEBB0AEhAwwtCyABLQAAQTBrIgBB/wFxQQpJBEAgAiAAOgAqIAFBAWohAUG2ASEDDBQLIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0UIAJBzwE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAsgASAERgRAQc4BIQMMLAsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0VIAJBzQE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAtBtQEhAwwSCyAEIAEiBUYEQEHMASEDDCsLQQAhAEEBIQFBASEGQQAhAwJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAUtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyEDQQAhAUEAIQYMAgtBCSEDQQEhAEEAIQFBACEGDAELQQAhAUEBIQMLIAIgAzoAKyAFQQFqIQMCQAJAIAItAC1BEHENAAJAAkACQCACLQAqDgMBAAIECyAGRQ0DDAILIAANAQwCCyABRQ0BCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMAwsgAkHJATYCHCACIAM2AhQgAiAANgIMQQAhAwwtCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMGAsgAkHKATYCHCACIAM2AhQgAiAANgIMQQAhAwwsCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMFgsgAkHLATYCHCACIAU2AhQgAiAANgIMDCsLQbQBIQMMEQtBACEAAkAgAigCOCIDRQ0AIAMoAjwiA0UNACACIAMRAAAhAAsCQCAABEAgAEEVRg0BIAJBADYCHCACIAE2AhQgAkGUDTYCECACQSE2AgxBACEDDCsLQbIBIQMMEQsgAkHIATYCHCACIAE2AhQgAkHJFzYCECACQRU2AgxBACEDDCkLIAJBADYCACAGQQFqIQFB9QAhAwwPCyACLQApQQVGBEBB4wAhAwwPC0HiACEDDA4LIAAhASACQQA2AgALIAJBADoALEEJIQMMDAsgAkEANgIAIAdBAWohAUHAACEDDAsLQQELOgAsIAJBADYCACAGQQFqIQELQSkhAwwIC0E4IQMMBwsCQCABIARHBEADQCABLQAAQYA+ai0AACIAQQFHBEAgAEECRw0DIAFBAWohAQwFCyAEIAFBAWoiAUcNAAtBPiEDDCELQT4hAwwgCwsgAkEAOgAsDAELQQshAwwEC0E6IQMMAwsgAUEBaiEBQS0hAwwCCyACIAE6ACwgAkEANgIAIAZBAWohAUEMIQMMAQsgAkEANgIAIAZBAWohAUEKIQMMAAsAC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwXC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwWC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwVC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwUC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwTC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwSC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwRC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwQC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwPC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwOC0EAIQMgAkEANgIcIAIgATYCFCACQcASNgIQIAJBCzYCDAwNC0EAIQMgAkEANgIcIAIgATYCFCACQZUJNgIQIAJBCzYCDAwMC0EAIQMgAkEANgIcIAIgATYCFCACQeEPNgIQIAJBCjYCDAwLC0EAIQMgAkEANgIcIAIgATYCFCACQfsPNgIQIAJBCjYCDAwKC0EAIQMgAkEANgIcIAIgATYCFCACQfEZNgIQIAJBAjYCDAwJC0EAIQMgAkEANgIcIAIgATYCFCACQcQUNgIQIAJBAjYCDAwIC0EAIQMgAkEANgIcIAIgATYCFCACQfIVNgIQIAJBAjYCDAwHCyACQQI2AhwgAiABNgIUIAJBnBo2AhAgAkEWNgIMQQAhAwwGC0EBIQMMBQtB1AAhAyABIARGDQQgCEEIaiEJIAIoAgAhBQJAAkAgASAERwRAIAVB2MIAaiEHIAQgBWogAWshACAFQX9zQQpqIgUgAWohBgNAIAEtAAAgBy0AAEcEQEECIQcMAwsgBUUEQEEAIQcgBiEBDAMLIAVBAWshBSAHQQFqIQcgBCABQQFqIgFHDQALIAAhBSAEIQELIAlBATYCACACIAU2AgAMAQsgAkEANgIAIAkgBzYCAAsgCSABNgIEIAgoAgwhACAIKAIIDgMBBAIACwALIAJBADYCHCACQbUaNgIQIAJBFzYCDCACIABBAWo2AhRBACEDDAILIAJBADYCHCACIAA2AhQgAkHKGjYCECACQQk2AgxBACEDDAELIAEgBEYEQEEiIQMMAQsgAkEJNgIIIAIgATYCBEEhIQMLIAhBEGokACADRQRAIAIoAgwhAAwBCyACIAM2AhxBACEAIAIoAgQiAUUNACACIAEgBCACKAIIEQEAIgFFDQAgAiAENgIUIAIgATYCDCABIQALIAALvgIBAn8gAEEAOgAAIABB3ABqIgFBAWtBADoAACAAQQA6AAIgAEEAOgABIAFBA2tBADoAACABQQJrQQA6AAAgAEEAOgADIAFBBGtBADoAAEEAIABrQQNxIgEgAGoiAEEANgIAQdwAIAFrQXxxIgIgAGoiAUEEa0EANgIAAkAgAkEJSQ0AIABBADYCCCAAQQA2AgQgAUEIa0EANgIAIAFBDGtBADYCACACQRlJDQAgAEEANgIYIABBADYCFCAAQQA2AhAgAEEANgIMIAFBEGtBADYCACABQRRrQQA2AgAgAUEYa0EANgIAIAFBHGtBADYCACACIABBBHFBGHIiAmsiAUEgSQ0AIAAgAmohAANAIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDACAAQSBqIQAgAUEgayIBQR9LDQALCwtWAQF/AkAgACgCDA0AAkACQAJAAkAgAC0ALw4DAQADAgsgACgCOCIBRQ0AIAEoAiwiAUUNACAAIAERAAAiAQ0DC0EADwsACyAAQcMWNgIQQQ4hAQsgAQsaACAAKAIMRQRAIABB0Rs2AhAgAEEVNgIMCwsUACAAKAIMQRVGBEAgAEEANgIMCwsUACAAKAIMQRZGBEAgAEEANgIMCwsHACAAKAIMCwcAIAAoAhALCQAgACABNgIQCwcAIAAoAhQLFwAgAEEkTwRAAAsgAEECdEGgM2ooAgALFwAgAEEuTwRAAAsgAEECdEGwNGooAgALvwkBAX9B6yghAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var fr=f((EU,wQ)=>{"use strict";var IQ=["GET","HEAD","POST"],mf=new Set(IQ),kf=[101,204,205,304],CQ=[301,302,303,307,308],Ff=new Set(CQ),lQ=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],Rf=new Set(lQ),uQ=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],bf=new Set(uQ),Nf=["follow","manual","error"],hQ=["GET","HEAD","OPTIONS","TRACE"],Sf=new Set(hQ),Uf=["navigate","same-origin","no-cors","cors"],Mf=["omit","same-origin","include"],Lf=["default","no-store","reload","no-cache","force-cache","only-if-cached"],Tf=["content-encoding","content-language","content-location","content-type","content-length"],Yf=["half"],dQ=["CONNECT","TRACE","TRACK"],xf=new Set(dQ),fQ=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Gf=new Set(fQ);wQ.exports={subresource:fQ,forbiddenMethods:dQ,requestBodyHeader:Tf,referrerPolicy:uQ,requestRedirect:Nf,requestMode:Uf,requestCredentials:Mf,requestCache:Lf,redirectStatus:CQ,corsSafeListedMethods:IQ,nullBodyStatus:kf,safeMethods:hQ,badPorts:lQ,requestDuplex:Yf,subresourceSet:Gf,badPortsSet:Rf,redirectStatusSet:Ff,corsSafeListedMethodsSet:mf,safeMethodsSet:Sf,forbiddenMethodsSet:xf,referrerPolicySet:bf}});var co=f((BU,yQ)=>{"use strict";var ao=Symbol.for("undici.globalOrigin.1");function Jf(){return globalThis[ao]}function vf(e){if(e===void 0){Object.defineProperty(globalThis,ao,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let A=new URL(e);if(A.protocol!=="http:"&&A.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${A.protocol}`);Object.defineProperty(globalThis,ao,{value:A,writable:!0,enumerable:!1,configurable:!1})}yQ.exports={getGlobalOrigin:Jf,setGlobalOrigin:vf}});var lA=f((IU,bQ)=>{"use strict";var Tn=d("node:assert"),Hf=new TextEncoder,wr=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,Vf=/[\u000A\u000D\u0009\u0020]/,qf=/[\u0009\u000A\u000C\u000D\u0020]/g,Wf=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function Of(e){Tn(e.protocol==="data:");let A=mQ(e,!0);A=A.slice(5);let t={position:0},r=mt(",",A,t),n=r.length;if(r=_f(r,!0,!0),t.position>=A.length)return"failure";t.position++;let s=A.slice(n+1),i=kQ(s);if(/;(\u0020){0,}base64$/i.test(r)){let a=RQ(i);if(i=Zf(a),i==="failure")return"failure";r=r.slice(0,-6),r=r.replace(/(\u0020)+$/,""),r=r.slice(0,-1)}r.startsWith(";")&&(r="text/plain"+r);let o=go(r);return o==="failure"&&(o=go("text/plain;charset=US-ASCII")),{mimeType:o,body:i}}function mQ(e,A=!1){if(!A)return e.href;let t=e.href,r=e.hash.length,n=r===0?t:t.substring(0,t.length-r);return!r&&t.endsWith("#")?n.slice(0,-1):n}function Yn(e,A,t){let r="";for(;t.position<A.length&&e(A[t.position]);)r+=A[t.position],t.position++;return r}function mt(e,A,t){let r=A.indexOf(e,t.position),n=t.position;return r===-1?(t.position=A.length,A.slice(n)):(t.position=r,A.slice(n,t.position))}function kQ(e){let A=Hf.encode(e);return Pf(A)}function pQ(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function DQ(e){return e>=48&&e<=57?e-48:(e&223)-55}function Pf(e){let A=e.length,t=new Uint8Array(A),r=0;for(let n=0;n<A;++n){let s=e[n];s!==37?t[r++]=s:s===37&&!(pQ(e[n+1])&&pQ(e[n+2]))?t[r++]=37:(t[r++]=DQ(e[n+1])<<4|DQ(e[n+2]),n+=2)}return A===r?t:t.subarray(0,r)}function go(e){e=Ln(e,!0,!0);let A={position:0},t=mt("/",e,A);if(t.length===0||!wr.test(t)||A.position>e.length)return"failure";A.position++;let r=mt(";",e,A);if(r=Ln(r,!1,!0),r.length===0||!wr.test(r))return"failure";let n=t.toLowerCase(),s=r.toLowerCase(),i={type:n,subtype:s,parameters:new Map,essence:`${n}/${s}`};for(;A.position<e.length;){A.position++,Yn(c=>Vf.test(c),e,A);let o=Yn(c=>c!==";"&&c!=="=",e,A);if(o=o.toLowerCase(),A.position<e.length){if(e[A.position]===";")continue;A.position++}if(A.position>e.length)break;let a=null;if(e[A.position]==='"')a=FQ(e,A,!0),mt(";",e,A);else if(a=mt(";",e,A),a=Ln(a,!1,!0),a.length===0)continue;o.length!==0&&wr.test(o)&&(a.length===0||Wf.test(a))&&!i.parameters.has(o)&&i.parameters.set(o,a)}return i}function Zf(e){e=e.replace(qf,"");let A=e.length;if(A%4===0&&e.charCodeAt(A-1)===61&&(--A,e.charCodeAt(A-1)===61&&--A),A%4===1||/[^+/0-9A-Za-z]/.test(e.length===A?e:e.substring(0,A)))return"failure";let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function FQ(e,A,t){let r=A.position,n="";for(Tn(e[A.position]==='"'),A.position++;n+=Yn(i=>i!=='"'&&i!=="\\",e,A),!(A.position>=e.length);){let s=e[A.position];if(A.position++,s==="\\"){if(A.position>=e.length){n+="\\";break}n+=e[A.position],A.position++}else{Tn(s==='"');break}}return t?n:e.slice(r,A.position)}function Kf(e){Tn(e!=="failure");let{parameters:A,essence:t}=e,r=t;for(let[n,s]of A.entries())r+=";",r+=n,r+="=",wr.test(s)||(s=s.replace(/(\\|")/g,"\\$1"),s='"'+s,s+='"'),r+=s;return r}function zf(e){return e===13||e===10||e===9||e===32}function Ln(e,A=!0,t=!0){return Qo(e,A,t,zf)}function Xf(e){return e===13||e===10||e===9||e===12||e===32}function _f(e,A=!0,t=!0){return Qo(e,A,t,Xf)}function Qo(e,A,t,r){let n=0,s=e.length-1;if(A)for(;n<e.length&&r(e.charCodeAt(n));)n++;if(t)for(;s>0&&r(e.charCodeAt(s));)s--;return n===0&&s===e.length-1?e:e.slice(n,s+1)}function RQ(e){let A=e.length;if(65535>A)return String.fromCharCode.apply(null,e);let t="",r=0,n=65535;for(;r<A;)r+n>A&&(n=A-r),t+=String.fromCharCode.apply(null,e.subarray(r,r+=n));return t}function jf(e){switch(e.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return e.subtype.endsWith("+json")?"application/json":e.subtype.endsWith("+xml")?"application/xml":""}bQ.exports={dataURLProcessor:Of,URLSerializer:mQ,collectASequenceOfCodePoints:Yn,collectASequenceOfCodePointsFast:mt,stringPercentDecode:kQ,parseMIMEType:go,collectAnHTTPQuotedString:FQ,serializeAMimeType:Kf,removeChars:Qo,removeHTTPWhitespace:Ln,minimizeSupportedMimeType:jf,HTTP_TOKEN_CODEPOINTS:wr,isomorphicDecode:RQ}});var cA=f((CU,NQ)=>{"use strict";var{types:_A,inspect:$f}=d("node:util"),{markAsUncloneable:Aw}=d("node:worker_threads"),{toUSVString:ew}=T(),w={};w.converters={};w.util={};w.errors={};w.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};w.errors.conversionFailed=function(e){let A=e.types.length===1?"":" one of",t=`${e.argument} could not be converted to${A}: ${e.types.join(", ")}.`;return w.errors.exception({header:e.prefix,message:t})};w.errors.invalidArgument=function(e){return w.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};w.brandCheck=function(e,A,t){if(t?.strict!==!1){if(!(e instanceof A)){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}}else if(e?.[Symbol.toStringTag]!==A.prototype[Symbol.toStringTag]){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}};w.argumentLengthCheck=function({length:e},A,t){if(e<A)throw w.errors.exception({message:`${A} argument${A!==1?"s":""} required, but${e?" only":""} ${e} found.`,header:t})};w.illegalConstructor=function(){throw w.errors.exception({header:"TypeError",message:"Illegal constructor"})};w.util.Type=function(e){switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return e===null?"Null":"Object"}};w.util.markAsUncloneable=Aw||(()=>{});w.util.ConvertToInt=function(e,A,t,r){let n,s;A===64?(n=Math.pow(2,53)-1,t==="unsigned"?s=0:s=Math.pow(-2,53)+1):t==="unsigned"?(s=0,n=Math.pow(2,A)-1):(s=Math.pow(-2,A)-1,n=Math.pow(2,A-1)-1);let i=Number(e);if(i===0&&(i=0),r?.enforceRange===!0){if(Number.isNaN(i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY)throw w.errors.exception({header:"Integer conversion",message:`Could not convert ${w.util.Stringify(e)} to an integer.`});if(i=w.util.IntegerPart(i),i<s||i>n)throw w.errors.exception({header:"Integer conversion",message:`Value must be between ${s}-${n}, got ${i}.`});return i}return!Number.isNaN(i)&&r?.clamp===!0?(i=Math.min(Math.max(i,s),n),Math.floor(i)%2===0?i=Math.floor(i):i=Math.ceil(i),i):Number.isNaN(i)||i===0&&Object.is(0,i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY?0:(i=w.util.IntegerPart(i),i=i%Math.pow(2,A),t==="signed"&&i>=Math.pow(2,A)-1?i-Math.pow(2,A):i)};w.util.IntegerPart=function(e){let A=Math.floor(Math.abs(e));return e<0?-1*A:A};w.util.Stringify=function(e){switch(w.util.Type(e)){case"Symbol":return`Symbol(${e.description})`;case"Object":return $f(e);case"String":return`"${e}"`;default:return`${e}`}};w.sequenceConverter=function(e){return(A,t,r,n)=>{if(w.util.Type(A)!=="Object")throw w.errors.exception({header:t,message:`${r} (${w.util.Stringify(A)}) is not iterable.`});let s=typeof n=="function"?n():A?.[Symbol.iterator]?.(),i=[],o=0;if(s===void 0||typeof s.next!="function")throw w.errors.exception({header:t,message:`${r} is not iterable.`});for(;;){let{done:a,value:c}=s.next();if(a)break;i.push(e(c,t,`${r}[${o++}]`))}return i}};w.recordConverter=function(e,A){return(t,r,n)=>{if(w.util.Type(t)!=="Object")throw w.errors.exception({header:r,message:`${n} ("${w.util.Type(t)}") is not an Object.`});let s={};if(!_A.isProxy(t)){let o=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(let a of o){let c=e(a,r,n),g=A(t[a],r,n);s[c]=g}return s}let i=Reflect.ownKeys(t);for(let o of i)if(Reflect.getOwnPropertyDescriptor(t,o)?.enumerable){let c=e(o,r,n),g=A(t[o],r,n);s[c]=g}return s}};w.interfaceConverter=function(e){return(A,t,r,n)=>{if(n?.strict!==!1&&!(A instanceof e))throw w.errors.exception({header:t,message:`Expected ${r} ("${w.util.Stringify(A)}") to be an instance of ${e.name}.`});return A}};w.dictionaryConverter=function(e){return(A,t,r)=>{let n=w.util.Type(A),s={};if(n==="Null"||n==="Undefined")return s;if(n!=="Object")throw w.errors.exception({header:t,message:`Expected ${A} to be one of: Null, Undefined, Object.`});for(let i of e){let{key:o,defaultValue:a,required:c,converter:g}=i;if(c===!0&&!Object.hasOwn(A,o))throw w.errors.exception({header:t,message:`Missing required key "${o}".`});let Q=A[o],E=Object.hasOwn(i,"defaultValue");if(E&&Q!==null&&(Q??=a()),c||E||Q!==void 0){if(Q=g(Q,t,`${r}.${o}`),i.allowedValues&&!i.allowedValues.includes(Q))throw w.errors.exception({header:t,message:`${Q} is not an accepted type. Expected one of ${i.allowedValues.join(", ")}.`});s[o]=Q}}return s}};w.nullableConverter=function(e){return(A,t,r)=>A===null?A:e(A,t,r)};w.converters.DOMString=function(e,A,t,r){if(e===null&&r?.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw w.errors.exception({header:A,message:`${t} is a symbol, which cannot be converted to a DOMString.`});return String(e)};w.converters.ByteString=function(e,A,t){let r=w.converters.DOMString(e,A,t);for(let n=0;n<r.length;n++)if(r.charCodeAt(n)>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${n} has a value of ${r.charCodeAt(n)} which is greater than 255.`);return r};w.converters.USVString=ew;w.converters.boolean=function(e){return!!e};w.converters.any=function(e){return e};w.converters["long long"]=function(e,A,t){return w.util.ConvertToInt(e,64,"signed",void 0,A,t)};w.converters["unsigned long long"]=function(e,A,t){return w.util.ConvertToInt(e,64,"unsigned",void 0,A,t)};w.converters["unsigned long"]=function(e,A,t){return w.util.ConvertToInt(e,32,"unsigned",void 0,A,t)};w.converters["unsigned short"]=function(e,A,t,r){return w.util.ConvertToInt(e,16,"unsigned",r,A,t)};w.converters.ArrayBuffer=function(e,A,t,r){if(w.util.Type(e)!=="Object"||!_A.isAnyArrayBuffer(e))throw w.errors.conversionFailed({prefix:A,argument:`${t} ("${w.util.Stringify(e)}")`,types:["ArrayBuffer"]});if(r?.allowShared===!1&&_A.isSharedArrayBuffer(e))throw w.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.resizable||e.growable)throw w.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};w.converters.TypedArray=function(e,A,t,r,n){if(w.util.Type(e)!=="Object"||!_A.isTypedArray(e)||e.constructor.name!==A.name)throw w.errors.conversionFailed({prefix:t,argument:`${r} ("${w.util.Stringify(e)}")`,types:[A.name]});if(n?.allowShared===!1&&_A.isSharedArrayBuffer(e.buffer))throw w.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw w.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};w.converters.DataView=function(e,A,t,r){if(w.util.Type(e)!=="Object"||!_A.isDataView(e))throw w.errors.exception({header:A,message:`${t} is not a DataView.`});if(r?.allowShared===!1&&_A.isSharedArrayBuffer(e.buffer))throw w.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw w.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};w.converters.BufferSource=function(e,A,t,r){if(_A.isAnyArrayBuffer(e))return w.converters.ArrayBuffer(e,A,t,{...r,allowShared:!1});if(_A.isTypedArray(e))return w.converters.TypedArray(e,e.constructor,A,t,{...r,allowShared:!1});if(_A.isDataView(e))return w.converters.DataView(e,A,t,{...r,allowShared:!1});throw w.errors.conversionFailed({prefix:A,argument:`${t} ("${w.util.Stringify(e)}")`,types:["BufferSource"]})};w.converters["sequence<ByteString>"]=w.sequenceConverter(w.converters.ByteString);w.converters["sequence<sequence<ByteString>>"]=w.sequenceConverter(w.converters["sequence<ByteString>"]);w.converters["record<ByteString, ByteString>"]=w.recordConverter(w.converters.ByteString,w.converters.ByteString);NQ.exports={webidl:w}});var yA=f((lU,WQ)=>{"use strict";var{Transform:tw}=d("node:stream"),SQ=d("node:zlib"),{redirectStatusSet:rw,referrerPolicySet:nw,badPortsSet:sw}=fr(),{getGlobalOrigin:UQ}=co(),{collectASequenceOfCodePoints:Ve,collectAnHTTPQuotedString:iw,removeChars:ow,parseMIMEType:aw}=lA(),{performance:cw}=d("node:perf_hooks"),{isBlobLike:gw,ReadableStreamFrom:Qw,isValidHTTPToken:MQ,normalizedMethodRecordsBase:Ew}=T(),qe=d("node:assert"),{isUint8Array:Bw}=d("node:util/types"),{webidl:yr}=cA(),LQ=[],Gn;try{Gn=d("node:crypto");let e=["sha256","sha384","sha512"];LQ=Gn.getHashes().filter(A=>e.includes(A))}catch{}function TQ(e){let A=e.urlList,t=A.length;return t===0?null:A[t-1].toString()}function Iw(e,A){if(!rw.has(e.status))return null;let t=e.headersList.get("location",!0);return t!==null&&xQ(t)&&(YQ(t)||(t=Cw(t)),t=new URL(t,TQ(e))),t&&!t.hash&&(t.hash=A),t}function YQ(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>126||t<32)return!1}return!0}function Cw(e){return Buffer.from(e,"binary").toString("utf8")}function Dr(e){return e.urlList[e.urlList.length-1]}function lw(e){let A=Dr(e);return VQ(A)&&sw.has(A.port)?"blocked":"allowed"}function uw(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function hw(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}var dw=MQ;function xQ(e){return(e[0]===" "||e[0]===" "||e[e.length-1]===" "||e[e.length-1]===" "||e.includes(`
2
+ `)||e.includes("\r")||e.includes("\0"))===!1}function fw(e,A){let{headersList:t}=A,r=(t.get("referrer-policy",!0)??"").split(","),n="";if(r.length>0)for(let s=r.length;s!==0;s--){let i=r[s-1].trim();if(nw.has(i)){n=i;break}}n!==""&&(e.referrerPolicy=n)}function ww(){return"allowed"}function yw(){return"success"}function pw(){return"success"}function Dw(e){let A=null;A=e.mode,e.headersList.set("sec-fetch-mode",A,!0)}function mw(e){let A=e.origin;if(!(A==="client"||A===void 0)){if(e.responseTainting==="cors"||e.mode==="websocket")e.headersList.append("origin",A,!0);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&Bo(e.origin)&&!Bo(Dr(e))&&(A=null);break;case"same-origin":Jn(e,Dr(e))||(A=null);break;default:}e.headersList.append("origin",A,!0)}}}function kt(e,A){return e}function kw(e,A,t){return!e?.startTime||e.startTime<A?{domainLookupStartTime:A,domainLookupEndTime:A,connectionStartTime:A,connectionEndTime:A,secureConnectionStartTime:A,ALPNNegotiatedProtocol:e?.ALPNNegotiatedProtocol}:{domainLookupStartTime:kt(e.domainLookupStartTime,t),domainLookupEndTime:kt(e.domainLookupEndTime,t),connectionStartTime:kt(e.connectionStartTime,t),connectionEndTime:kt(e.connectionEndTime,t),secureConnectionStartTime:kt(e.secureConnectionStartTime,t),ALPNNegotiatedProtocol:e.ALPNNegotiatedProtocol}}function Fw(e){return kt(cw.now(),e)}function Rw(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function GQ(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function bw(e){return{referrerPolicy:e.referrerPolicy}}function Nw(e){let A=e.referrerPolicy;qe(A);let t=null;if(e.referrer==="client"){let o=UQ();if(!o||o.origin==="null")return"no-referrer";t=new URL(o)}else e.referrer instanceof URL&&(t=e.referrer);let r=Eo(t),n=Eo(t,!0);r.toString().length>4096&&(r=n);let s=Jn(e,r),i=pr(r)&&!pr(e.url);switch(A){case"origin":return n??Eo(t,!0);case"unsafe-url":return r;case"same-origin":return s?n:"no-referrer";case"origin-when-cross-origin":return s?r:n;case"strict-origin-when-cross-origin":{let o=Dr(e);return Jn(r,o)?r:pr(r)&&!pr(o)?"no-referrer":n}default:return i?"no-referrer":n}}function Eo(e,A){return qe(e instanceof URL),e=new URL(e),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",A&&(e.pathname="",e.search=""),e)}function pr(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return A(e.origin);function A(t){if(t==null||t==="null")return!1;let r=new URL(t);return!!(r.protocol==="https:"||r.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(r.hostname)||r.hostname==="localhost"||r.hostname.includes("localhost.")||r.hostname.endsWith(".localhost"))}}function Sw(e,A){if(Gn===void 0)return!0;let t=JQ(A);if(t==="no metadata"||t.length===0)return!0;let r=Mw(t),n=Lw(t,r);for(let s of n){let i=s.algo,o=s.hash,a=Gn.createHash(i).update(e).digest("base64");if(a[a.length-1]==="="&&(a[a.length-2]==="="?a=a.slice(0,-2):a=a.slice(0,-1)),Tw(a,o))return!0}return!1}var Uw=/(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function JQ(e){let A=[],t=!0;for(let r of e.split(" ")){t=!1;let n=Uw.exec(r);if(n===null||n.groups===void 0||n.groups.algo===void 0)continue;let s=n.groups.algo.toLowerCase();LQ.includes(s)&&A.push(n.groups)}return t===!0?"no metadata":A}function Mw(e){let A=e[0].algo;if(A[3]==="5")return A;for(let t=1;t<e.length;++t){let r=e[t];if(r.algo[3]==="5"){A="sha512";break}else{if(A[3]==="3")continue;r.algo[3]==="3"&&(A="sha384")}}return A}function Lw(e,A){if(e.length===1)return e;let t=0;for(let r=0;r<e.length;++r)e[r].algo===A&&(e[t++]=e[r]);return e.length=t,e}function Tw(e,A){if(e.length!==A.length)return!1;for(let t=0;t<e.length;++t)if(e[t]!==A[t]){if(e[t]==="+"&&A[t]==="-"||e[t]==="/"&&A[t]==="_")continue;return!1}return!0}function Yw(e){}function Jn(e,A){return e.origin===A.origin&&e.origin==="null"||e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port}function xw(){let e,A;return{promise:new Promise((r,n)=>{e=r,A=n}),resolve:e,reject:A}}function Gw(e){return e.controller.state==="aborted"}function Jw(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function vw(e){return Ew[e.toLowerCase()]??e}function Hw(e){let A=JSON.stringify(e);if(A===void 0)throw new TypeError("Value is not JSON serializable");return qe(typeof A=="string"),A}var Vw=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function vQ(e,A,t=0,r=1){class n{#A;#e;#t;constructor(i,o){this.#A=i,this.#e=o,this.#t=0}next(){if(typeof this!="object"||this===null||!(#A in this))throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let i=this.#t,o=this.#A[A],a=o.length;if(i>=a)return{value:void 0,done:!0};let{[t]:c,[r]:g}=o[i];this.#t=i+1;let Q;switch(this.#e){case"key":Q=c;break;case"value":Q=g;break;case"key+value":Q=[c,g];break}return{value:Q,done:!1}}}return delete n.prototype.constructor,Object.setPrototypeOf(n.prototype,Vw),Object.defineProperties(n.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(s,i){return new n(s,i)}}function qw(e,A,t,r=0,n=1){let s=vQ(e,t,r,n),i={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return yr.brandCheck(this,A),s(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return yr.brandCheck(this,A),s(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return yr.brandCheck(this,A),s(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(a,c=globalThis){if(yr.brandCheck(this,A),yr.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof a!="function")throw new TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:g,1:Q}of s(this,"key+value"))a.call(c,Q,g,this)}}};return Object.defineProperties(A.prototype,{...i,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:i.entries.value}})}async function Ww(e,A,t){let r=A,n=t,s;try{s=e.stream.getReader()}catch(i){n(i);return}try{r(await HQ(s))}catch(i){n(i)}}function Ow(e){return e instanceof ReadableStream||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}function Pw(e){try{e.close(),e.byobRequest?.respond(0)}catch(A){if(!A.message.includes("Controller is already closed")&&!A.message.includes("ReadableStream is already closed"))throw A}}var Zw=/[^\x00-\xFF]/;function xn(e){return qe(!Zw.test(e)),e}async function HQ(e){let A=[],t=0;for(;;){let{done:r,value:n}=await e.read();if(r)return Buffer.concat(A,t);if(!Bw(n))throw new TypeError("Received non-Uint8Array chunk");A.push(n),t+=n.length}}function Kw(e){qe("protocol"in e);let A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function Bo(e){return typeof e=="string"&&e[5]===":"&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&e[4]==="s"||e.protocol==="https:"}function VQ(e){qe("protocol"in e);let A=e.protocol;return A==="http:"||A==="https:"}function zw(e,A){let t=e;if(!t.startsWith("bytes"))return"failure";let r={position:5};if(A&&Ve(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==61)return"failure";r.position++,A&&Ve(a=>a===" "||a===" ",t,r);let n=Ve(a=>{let c=a.charCodeAt(0);return c>=48&&c<=57},t,r),s=n.length?Number(n):null;if(A&&Ve(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==45)return"failure";r.position++,A&&Ve(a=>a===" "||a===" ",t,r);let i=Ve(a=>{let c=a.charCodeAt(0);return c>=48&&c<=57},t,r),o=i.length?Number(i):null;return r.position<t.length||o===null&&s===null||s>o?"failure":{rangeStartValue:s,rangeEndValue:o}}function Xw(e,A,t){let r="bytes ";return r+=xn(`${e}`),r+="-",r+=xn(`${A}`),r+="/",r+=xn(`${t}`),r}var Io=class extends tw{#A;constructor(A){super(),this.#A=A}_transform(A,t,r){if(!this._inflateStream){if(A.length===0){r();return}this._inflateStream=(A[0]&15)===8?SQ.createInflate(this.#A):SQ.createInflateRaw(this.#A),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",n=>this.destroy(n))}this._inflateStream.write(A,t,r)}_final(A){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),A()}};function _w(e){return new Io(e)}function jw(e){let A=null,t=null,r=null,n=qQ("content-type",e);if(n===null)return"failure";for(let s of n){let i=aw(s);i==="failure"||i.essence==="*/*"||(r=i,r.essence!==t?(A=null,r.parameters.has("charset")&&(A=r.parameters.get("charset")),t=r.essence):!r.parameters.has("charset")&&A!==null&&r.parameters.set("charset",A))}return r??"failure"}function $w(e){let A=e,t={position:0},r=[],n="";for(;t.position<A.length;){if(n+=Ve(s=>s!=='"'&&s!==",",A,t),t.position<A.length)if(A.charCodeAt(t.position)===34){if(n+=iw(A,t),t.position<A.length)continue}else qe(A.charCodeAt(t.position)===44),t.position++;n=ow(n,!0,!0,s=>s===9||s===32),r.push(n),n=""}return r}function qQ(e,A){let t=A.get(e,!0);return t===null?null:$w(t)}var Ay=new TextDecoder;function ey(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),Ay.decode(e))}var Co=class{get baseUrl(){return UQ()}get origin(){return this.baseUrl?.origin}policyContainer=GQ()},lo=class{settingsObject=new Co},ty=new lo;WQ.exports={isAborted:Gw,isCancelled:Jw,isValidEncodedURL:YQ,createDeferredPromise:xw,ReadableStreamFrom:Qw,tryUpgradeRequestToAPotentiallyTrustworthyURL:Yw,clampAndCoarsenConnectionTimingInfo:kw,coarsenedSharedCurrentTime:Fw,determineRequestsReferrer:Nw,makePolicyContainer:GQ,clonePolicyContainer:bw,appendFetchMetadata:Dw,appendRequestOriginHeader:mw,TAOCheck:pw,corsCheck:yw,crossOriginResourcePolicyCheck:ww,createOpaqueTimingInfo:Rw,setRequestReferrerPolicyOnRedirect:fw,isValidHTTPToken:MQ,requestBadPort:lw,requestCurrentURL:Dr,responseURL:TQ,responseLocationURL:Iw,isBlobLike:gw,isURLPotentiallyTrustworthy:pr,isValidReasonPhrase:hw,sameOrigin:Jn,normalizeMethod:vw,serializeJavascriptValueToJSONString:Hw,iteratorMixin:qw,createIterator:vQ,isValidHeaderName:dw,isValidHeaderValue:xQ,isErrorLike:uw,fullyReadBody:Ww,bytesMatch:Sw,isReadableStreamLike:Ow,readableStreamClose:Pw,isomorphicEncode:xn,urlIsLocal:Kw,urlHasHttpsScheme:Bo,urlIsHttpHttpsScheme:VQ,readAllBytes:HQ,simpleRangeHeaderValue:zw,buildContentRange:Xw,parseMetadata:JQ,createInflate:_w,extractMimeType:jw,getDecodeSplit:qQ,utf8DecodeBytes:ey,environmentSettingsObject:ty}});var pe=f((uU,OQ)=>{"use strict";OQ.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var ho=f((hU,PQ)=>{"use strict";var{Blob:ry,File:ny}=d("node:buffer"),{kState:Ee}=pe(),{webidl:jA}=cA(),uo=class e{constructor(A,t,r={}){let n=t,s=r.type,i=r.lastModified??Date.now();this[Ee]={blobLike:A,name:n,type:s,lastModified:i}}stream(...A){return jA.brandCheck(this,e),this[Ee].blobLike.stream(...A)}arrayBuffer(...A){return jA.brandCheck(this,e),this[Ee].blobLike.arrayBuffer(...A)}slice(...A){return jA.brandCheck(this,e),this[Ee].blobLike.slice(...A)}text(...A){return jA.brandCheck(this,e),this[Ee].blobLike.text(...A)}get size(){return jA.brandCheck(this,e),this[Ee].blobLike.size}get type(){return jA.brandCheck(this,e),this[Ee].blobLike.type}get name(){return jA.brandCheck(this,e),this[Ee].name}get lastModified(){return jA.brandCheck(this,e),this[Ee].lastModified}get[Symbol.toStringTag](){return"File"}};jA.converters.Blob=jA.interfaceConverter(ry);function sy(e){return e instanceof ny||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}PQ.exports={FileLike:uo,isFileLike:sy}});var kr=f((dU,_Q)=>{"use strict";var{isBlobLike:vn,iteratorMixin:iy}=yA(),{kState:EA}=pe(),{kEnumerableProperty:Ft}=T(),{FileLike:ZQ,isFileLike:oy}=ho(),{webidl:Z}=cA(),{File:XQ}=d("node:buffer"),KQ=d("node:util"),zQ=globalThis.File??XQ,mr=class e{constructor(A){if(Z.util.markAsUncloneable(this),A!==void 0)throw Z.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[EA]=[]}append(A,t,r=void 0){Z.brandCheck(this,e);let n="FormData.append";if(Z.argumentLengthCheck(arguments,2,n),arguments.length===3&&!vn(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=Z.converters.USVString(A,n,"name"),t=vn(t)?Z.converters.Blob(t,n,"value",{strict:!1}):Z.converters.USVString(t,n,"value"),r=arguments.length===3?Z.converters.USVString(r,n,"filename"):void 0;let s=fo(A,t,r);this[EA].push(s)}delete(A){Z.brandCheck(this,e);let t="FormData.delete";Z.argumentLengthCheck(arguments,1,t),A=Z.converters.USVString(A,t,"name"),this[EA]=this[EA].filter(r=>r.name!==A)}get(A){Z.brandCheck(this,e);let t="FormData.get";Z.argumentLengthCheck(arguments,1,t),A=Z.converters.USVString(A,t,"name");let r=this[EA].findIndex(n=>n.name===A);return r===-1?null:this[EA][r].value}getAll(A){Z.brandCheck(this,e);let t="FormData.getAll";return Z.argumentLengthCheck(arguments,1,t),A=Z.converters.USVString(A,t,"name"),this[EA].filter(r=>r.name===A).map(r=>r.value)}has(A){Z.brandCheck(this,e);let t="FormData.has";return Z.argumentLengthCheck(arguments,1,t),A=Z.converters.USVString(A,t,"name"),this[EA].findIndex(r=>r.name===A)!==-1}set(A,t,r=void 0){Z.brandCheck(this,e);let n="FormData.set";if(Z.argumentLengthCheck(arguments,2,n),arguments.length===3&&!vn(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=Z.converters.USVString(A,n,"name"),t=vn(t)?Z.converters.Blob(t,n,"name",{strict:!1}):Z.converters.USVString(t,n,"name"),r=arguments.length===3?Z.converters.USVString(r,n,"name"):void 0;let s=fo(A,t,r),i=this[EA].findIndex(o=>o.name===A);i!==-1?this[EA]=[...this[EA].slice(0,i),s,...this[EA].slice(i+1).filter(o=>o.name!==A)]:this[EA].push(s)}[KQ.inspect.custom](A,t){let r=this[EA].reduce((s,i)=>(s[i.name]?Array.isArray(s[i.name])?s[i.name].push(i.value):s[i.name]=[s[i.name],i.value]:s[i.name]=i.value,s),{__proto__:null});t.depth??=A,t.colors??=!0;let n=KQ.formatWithOptions(t,r);return`FormData ${n.slice(n.indexOf("]")+2)}`}};iy("FormData",mr,EA,"name","value");Object.defineProperties(mr.prototype,{append:Ft,delete:Ft,get:Ft,getAll:Ft,has:Ft,set:Ft,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function fo(e,A,t){if(typeof A!="string"){if(oy(A)||(A=A instanceof Blob?new zQ([A],"blob",{type:A.type}):new ZQ(A,"blob",{type:A.type})),t!==void 0){let r={type:A.type,lastModified:A.lastModified};A=A instanceof XQ?new zQ([A],t,r):new ZQ(A,t,r)}}return{name:e,value:A}}_Q.exports={FormData:mr,makeEntry:fo}});var rE=f((fU,tE)=>{"use strict";var{isUSVString:jQ,bufferToLowerCasedHeaderName:ay}=T(),{utf8DecodeBytes:cy}=yA(),{HTTP_TOKEN_CODEPOINTS:gy,isomorphicDecode:$Q}=lA(),{isFileLike:Qy}=ho(),{makeEntry:Ey}=kr(),Hn=d("node:assert"),{File:By}=d("node:buffer"),Iy=globalThis.File??By,Cy=Buffer.from('form-data; name="'),AE=Buffer.from("; filename"),ly=Buffer.from("--"),uy=Buffer.from(`--\r
3
+ `);function hy(e){for(let A=0;A<e.length;++A)if((e.charCodeAt(A)&-128)!==0)return!1;return!0}function dy(e){let A=e.length;if(A<27||A>70)return!1;for(let t=0;t<A;++t){let r=e.charCodeAt(t);if(!(r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r===39||r===45||r===95))return!1}return!0}function fy(e,A){Hn(A!=="failure"&&A.essence==="multipart/form-data");let t=A.parameters.get("boundary");if(t===void 0)return"failure";let r=Buffer.from(`--${t}`,"utf8"),n=[],s={position:0};for(;e[s.position]===13&&e[s.position+1]===10;)s.position+=2;let i=e.length;for(;e[i-1]===10&&e[i-2]===13;)i-=2;for(i!==e.length&&(e=e.subarray(0,i));;){if(e.subarray(s.position,s.position+r.length).equals(r))s.position+=r.length;else return"failure";if(s.position===e.length-2&&Vn(e,ly,s)||s.position===e.length-4&&Vn(e,uy,s))return n;if(e[s.position]!==13||e[s.position+1]!==10)return"failure";s.position+=2;let o=wy(e,s);if(o==="failure")return"failure";let{name:a,filename:c,contentType:g,encoding:Q}=o;s.position+=2;let E;{let I=e.indexOf(r.subarray(2),s.position);if(I===-1)return"failure";E=e.subarray(s.position,I-4),s.position+=E.length,Q==="base64"&&(E=Buffer.from(E.toString(),"base64"))}if(e[s.position]!==13||e[s.position+1]!==10)return"failure";s.position+=2;let B;c!==null?(g??="text/plain",hy(g)||(g=""),B=new Iy([E],c,{type:g})):B=cy(Buffer.from(E)),Hn(jQ(a)),Hn(typeof B=="string"&&jQ(B)||Qy(B)),n.push(Ey(a,B,c))}}function wy(e,A){let t=null,r=null,n=null,s=null;for(;;){if(e[A.position]===13&&e[A.position+1]===10)return t===null?"failure":{name:t,filename:r,contentType:n,encoding:s};let i=Rt(o=>o!==10&&o!==13&&o!==58,e,A);if(i=wo(i,!0,!0,o=>o===9||o===32),!gy.test(i.toString())||e[A.position]!==58)return"failure";switch(A.position++,Rt(o=>o===32||o===9,e,A),ay(i)){case"content-disposition":{if(t=r=null,!Vn(e,Cy,A)||(A.position+=17,t=eE(e,A),t===null))return"failure";if(Vn(e,AE,A)){let o=A.position+AE.length;if(e[o]===42&&(A.position+=1,o+=1),e[o]!==61||e[o+1]!==34||(A.position+=12,r=eE(e,A),r===null))return"failure"}break}case"content-type":{let o=Rt(a=>a!==10&&a!==13,e,A);o=wo(o,!1,!0,a=>a===9||a===32),n=$Q(o);break}case"content-transfer-encoding":{let o=Rt(a=>a!==10&&a!==13,e,A);o=wo(o,!1,!0,a=>a===9||a===32),s=$Q(o);break}default:Rt(o=>o!==10&&o!==13,e,A)}if(e[A.position]!==13&&e[A.position+1]!==10)return"failure";A.position+=2}}function eE(e,A){Hn(e[A.position-1]===34);let t=Rt(r=>r!==10&&r!==13&&r!==34,e,A);return e[A.position]!==34?null:(A.position++,t=new TextDecoder().decode(t).replace(/%0A/ig,`
4
+ `).replace(/%0D/ig,"\r").replace(/%22/g,'"'),t)}function Rt(e,A,t){let r=t.position;for(;r<A.length&&e(A[r]);)++r;return A.subarray(t.position,t.position=r)}function wo(e,A,t,r){let n=0,s=e.length-1;if(A)for(;n<e.length&&r(e[n]);)n++;if(t)for(;s>0&&r(e[s]);)s--;return n===0&&s===e.length-1?e:e.subarray(n,s+1)}function Vn(e,A,t){if(e.length<A.length)return!1;for(let r=0;r<A.length;r++)if(A[r]!==e[t.position+r])return!1;return!0}tE.exports={multipartFormDataParser:fy,validateBoundary:dy}});var St=f((wU,BE)=>{"use strict";var Fr=T(),{ReadableStreamFrom:yy,isBlobLike:nE,isReadableStreamLike:py,readableStreamClose:Dy,createDeferredPromise:my,fullyReadBody:ky,extractMimeType:Fy,utf8DecodeBytes:oE}=yA(),{FormData:sE}=kr(),{kState:Nt}=pe(),{webidl:Ry}=cA(),{Blob:by}=d("node:buffer"),yo=d("node:assert"),{isErrored:aE,isDisturbed:Ny}=d("node:stream"),{isArrayBuffer:Sy}=d("node:util/types"),{serializeAMimeType:Uy}=lA(),{multipartFormDataParser:My}=rE(),po;try{let e=d("node:crypto");po=A=>e.randomInt(0,A)}catch{po=e=>Math.floor(Math.random(e))}var qn=new TextEncoder;function Ly(){}var cE=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,gE;cE&&(gE=new FinalizationRegistry(e=>{let A=e.deref();A&&!A.locked&&!Ny(A)&&!aE(A)&&A.cancel("Response object has been garbage collected").catch(Ly)}));function QE(e,A=!1){let t=null;e instanceof ReadableStream?t=e:nE(e)?t=e.stream():t=new ReadableStream({async pull(a){let c=typeof n=="string"?qn.encode(n):n;c.byteLength&&a.enqueue(c),queueMicrotask(()=>Dy(a))},start(){},type:"bytes"}),yo(py(t));let r=null,n=null,s=null,i=null;if(typeof e=="string")n=e,i="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)n=e.toString(),i="application/x-www-form-urlencoded;charset=UTF-8";else if(Sy(e))n=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))n=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(Fr.isFormDataLike(e)){let a=`----formdata-undici-0${`${po(1e11)}`.padStart(11,"0")}`,c=`--${a}\r
5
+ Content-Disposition: form-data`;let g=u=>u.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),Q=u=>u.replace(/\r?\n|\r/g,`\r
6
+ `),E=[],B=new Uint8Array([13,10]);s=0;let I=!1;for(let[u,C]of e)if(typeof C=="string"){let h=qn.encode(c+`; name="${g(Q(u))}"\r
7
+ \r
8
+ ${Q(C)}\r
9
+ `);E.push(h),s+=h.byteLength}else{let h=qn.encode(`${c}; name="${g(Q(u))}"`+(C.name?`; filename="${g(C.name)}"`:"")+`\r
10
+ Content-Type: ${C.type||"application/octet-stream"}\r
11
+ \r
12
+ `);E.push(h,C,B),typeof C.size=="number"?s+=h.byteLength+C.size+B.byteLength:I=!0}let l=qn.encode(`--${a}--\r
13
+ `);E.push(l),s+=l.byteLength,I&&(s=null),n=e,r=async function*(){for(let u of E)u.stream?yield*u.stream():yield u},i=`multipart/form-data; boundary=${a}`}else if(nE(e))n=e,s=e.size,e.type&&(i=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(A)throw new TypeError("keepalive");if(Fr.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");t=e instanceof ReadableStream?e:yy(e)}if((typeof n=="string"||Fr.isBuffer(n))&&(s=Buffer.byteLength(n)),r!=null){let a;t=new ReadableStream({async start(){a=r(e)[Symbol.asyncIterator]()},async pull(c){let{value:g,done:Q}=await a.next();if(Q)queueMicrotask(()=>{c.close(),c.byobRequest?.respond(0)});else if(!aE(t)){let E=new Uint8Array(g);E.byteLength&&c.enqueue(E)}return c.desiredSize>0},async cancel(c){await a.return()},type:"bytes"})}return[{stream:t,source:n,length:s},i]}function Ty(e,A=!1){return e instanceof ReadableStream&&(yo(!Fr.isDisturbed(e),"The body has already been consumed."),yo(!e.locked,"The stream is locked.")),QE(e,A)}function Yy(e,A){let[t,r]=A.stream.tee();return A.stream=t,{stream:r,length:A.length,source:A.source}}function xy(e){if(e.aborted)throw new DOMException("The operation was aborted.","AbortError")}function Gy(e){return{blob(){return bt(this,t=>{let r=iE(this);return r===null?r="":r&&(r=Uy(r)),new by([t],{type:r})},e)},arrayBuffer(){return bt(this,t=>new Uint8Array(t).buffer,e)},text(){return bt(this,oE,e)},json(){return bt(this,vy,e)},formData(){return bt(this,t=>{let r=iE(this);if(r!==null)switch(r.essence){case"multipart/form-data":{let n=My(t,r);if(n==="failure")throw new TypeError("Failed to parse body as FormData.");let s=new sE;return s[Nt]=n,s}case"application/x-www-form-urlencoded":{let n=new URLSearchParams(t.toString()),s=new sE;for(let[i,o]of n)s.append(i,o);return s}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},e)},bytes(){return bt(this,t=>new Uint8Array(t),e)}}}function Jy(e){Object.assign(e.prototype,Gy(e))}async function bt(e,A,t){if(Ry.brandCheck(e,t),EE(e))throw new TypeError("Body is unusable: Body has already been read");xy(e[Nt]);let r=my(),n=i=>r.reject(i),s=i=>{try{r.resolve(A(i))}catch(o){n(o)}};return e[Nt].body==null?(s(Buffer.allocUnsafe(0)),r.promise):(await ky(e[Nt].body,s,n),r.promise)}function EE(e){let A=e[Nt].body;return A!=null&&(A.stream.locked||Fr.isDisturbed(A.stream))}function vy(e){return JSON.parse(oE(e))}function iE(e){let A=e[Nt].headersList,t=Fy(A);return t==="failure"?null:t}BE.exports={extractBody:QE,safelyExtractBody:Ty,cloneBody:Yy,mixinBody:Jy,streamRegistry:gE,hasFinalizationRegistry:cE,bodyUnusable:EE}});var bE=f((yU,RE)=>{"use strict";var F=d("node:assert"),b=T(),{channels:IE}=ht(),Do=no(),{RequestContentLengthMismatchError:We,ResponseContentLengthMismatchError:CE,RequestAbortedError:pE,InvalidArgumentError:Hy,HeadersTimeoutError:Vy,HeadersOverflowError:qy,SocketError:Ut,InformationalError:Mt,BodyTimeoutError:Wy,HTTPParserError:Oy,ResponseExceededMaxSizeError:Py}=v(),{kUrl:DE,kReset:uA,kClient:Zn,kParser:K,kBlocking:Nr,kRunning:nA,kPending:mE,kSize:lE,kWriting:De,kQueue:JA,kNoRef:Rr,kKeepAliveDefaultTimeout:Zy,kHostHeader:Ky,kPendingIdx:zy,kRunningIdx:MA,kError:BA,kPipelining:Kn,kSocket:Pe,kKeepAliveTimeoutValue:Xn,kMaxHeadersSize:mo,kKeepAliveMaxTimeout:Xy,kKeepAliveTimeoutThreshold:_y,kHeadersTimeout:jy,kBodyTimeout:$y,kStrictContentLength:Ro,kMaxRequests:uE,kCounter:A0,kMaxResponseSize:e0,kOnError:hE,kResume:Be,kHTTPContext:kE}=X(),pA=gQ(),dE=Buffer.alloc(0),Wn=Buffer[Symbol.species],On=b.addListener,t0=b.removeAllListeners,Ze=Symbol("kIdleSocketValidation"),Oe=Symbol("kIdleSocketValidationTimeout"),Uo=Symbol("kSocketUsed"),ko;async function r0(){let e=process.env.JEST_WORKER_ID?oo():void 0,A;try{A=await WebAssembly.compile(BQ())}catch{A=await WebAssembly.compile(e||oo())}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(t,r,n)=>0,wasm_on_status:(t,r,n)=>{F(AA.ptr===t);let s=r-Ae+$A.byteOffset;return AA.onStatus(new Wn($A.buffer,s,n))||0},wasm_on_message_begin:t=>(F(AA.ptr===t),AA.onMessageBegin()||0),wasm_on_header_field:(t,r,n)=>{F(AA.ptr===t);let s=r-Ae+$A.byteOffset;return AA.onHeaderField(new Wn($A.buffer,s,n))||0},wasm_on_header_value:(t,r,n)=>{F(AA.ptr===t);let s=r-Ae+$A.byteOffset;return AA.onHeaderValue(new Wn($A.buffer,s,n))||0},wasm_on_headers_complete:(t,r,n,s)=>(F(AA.ptr===t),AA.onHeadersComplete(r,!!n,!!s)||0),wasm_on_body:(t,r,n)=>{F(AA.ptr===t);let s=r-Ae+$A.byteOffset;return AA.onBody(new Wn($A.buffer,s,n))||0},wasm_on_message_complete:t=>(F(AA.ptr===t),AA.onMessageComplete()||0)}})}var Fo=null,bo=r0();bo.catch();var AA=null,$A=null,Pn=0,Ae=null,n0=0,br=1,Lt=2|br,zn=4|br,No=8|n0,So=class{constructor(A,t,{exports:r}){F(Number.isFinite(A[mo])&&A[mo]>0),this.llhttp=r,this.ptr=this.llhttp.llhttp_alloc(pA.TYPE.RESPONSE),this.client=A,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[mo],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[e0]}setTimeout(A,t){A!==this.timeoutValue||t&br^this.timeoutType&br?(this.timeout&&(Do.clearTimeout(this.timeout),this.timeout=null),A&&(t&br?this.timeout=Do.setFastTimeout(fE,A,new WeakRef(this)):(this.timeout=setTimeout(fE,A,new WeakRef(this)),this.timeout.unref())),this.timeoutValue=A):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=t}resume(){this.socket.destroyed||!this.paused||(F(this.ptr!=null),F(AA==null),this.llhttp.llhttp_resume(this.ptr),F(this.timeoutType===zn),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||dE),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){F(this.ptr!=null),F(AA==null),F(!this.paused);let{socket:t,llhttp:r}=this;A.length>Pn&&(Ae&&r.free(Ae),Pn=Math.ceil(A.length/4096)*4096,Ae=r.malloc(Pn)),new Uint8Array(r.memory.buffer,Ae,Pn).set(A);try{let n;try{$A=A,AA=this,n=r.llhttp_execute(this.ptr,Ae,A.length)}catch(i){throw i}finally{AA=null,$A=null}let s=r.llhttp_get_error_pos(this.ptr)-Ae;if(n!==pA.ERROR.OK){let i=A.subarray(s);if(n===pA.ERROR.PAUSED_UPGRADE)this.onUpgrade(i);else if(n===pA.ERROR.PAUSED)this.paused=!0,t.unshift(i);else throw this.createError(n,i)}}catch(n){b.destroy(t,n)}}finish(){F(AA===null),F(this.ptr!=null),F(!this.paused);let{llhttp:A}=this,t;try{AA=this,t=A.llhttp_finish(this.ptr)}finally{AA=null}return t===pA.ERROR.OK?null:t===pA.ERROR.PAUSED||t===pA.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(t,dE)}createError(A,t){let{llhttp:r,contentLength:n,bytesRead:s}=this;if(n&&s!==parseInt(n,10))return new CE;let i=r.llhttp_get_error_reason(this.ptr),o="";if(i){let a=new Uint8Array(r.memory.buffer,i).indexOf(0);o="Response does not match the HTTP/1.1 protocol ("+Buffer.from(r.memory.buffer,i,a).toString()+")"}return new Oy(o,pA.ERROR[A],t)}destroy(){F(this.ptr!=null),F(AA==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&Do.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:t}=this;if(A.destroyed)return-1;if(t[nA]===0)return b.destroy(A,new Ut("bad response",b.getSocketInfo(A))),-1;let r=t[JA][t[MA]];if(!r)return-1;r.onResponseStarted()}onHeaderField(A){let t=this.headers.length;(t&1)===0?this.headers.push(A):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]),this.trackHeader(A.length)}onHeaderValue(A){let t=this.headers.length;(t&1)===1?(this.headers.push(A),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]);let r=this.headers[t-2];if(r.length===10){let n=b.bufferToLowerCasedHeaderName(r);n==="keep-alive"?this.keepAlive+=A.toString():n==="connection"&&(this.connection+=A.toString())}else r.length===14&&b.bufferToLowerCasedHeaderName(r)==="content-length"&&(this.contentLength+=A.toString());this.trackHeader(A.length)}trackHeader(A){this.headersSize+=A,this.headersSize>=this.headersMaxSize&&b.destroy(this.socket,new qy)}onUpgrade(A){let{upgrade:t,client:r,socket:n,headers:s,statusCode:i}=this;F(t),F(r[Pe]===n),F(!n.destroyed),F(!this.paused),F((s.length&1)===0);let o=r[JA][r[MA]];F(o),F(o.upgrade||o.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,n.unshift(A),n[K].destroy(),n[K]=null,n[Zn]=null,n[BA]=null,t0(n),r[Pe]=null,r[kE]=null,r[JA][r[MA]++]=null,r.emit("disconnect",r[DE],[r],new Mt("upgrade"));try{o.onUpgrade(i,s,n)}catch(a){b.destroy(n,a)}r[Be]()}onHeadersComplete(A,t,r){let{client:n,socket:s,headers:i,statusText:o}=this;if(s.destroyed)return-1;if(n[nA]===0)return b.destroy(s,new Ut("bad response",b.getSocketInfo(s))),-1;let a=n[JA][n[MA]];if(!a)return-1;if(F(!this.upgrade),F(this.statusCode<200),A===100)return b.destroy(s,new Ut("bad response",b.getSocketInfo(s))),-1;if(t&&!a.upgrade)return b.destroy(s,new Ut("bad upgrade",b.getSocketInfo(s))),-1;if(F(this.timeoutType===Lt),this.statusCode=A,this.shouldKeepAlive=r||a.method==="HEAD"&&!s[uA]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let g=a.bodyTimeout!=null?a.bodyTimeout:n[$y];this.setTimeout(g,zn)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(a.method==="CONNECT")return F(n[nA]===1),this.upgrade=!0,2;if(t)return F(n[nA]===1),this.upgrade=!0,2;if(F((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&n[Kn]){let g=this.keepAlive?b.parseKeepAliveTimeout(this.keepAlive):null;if(g!=null){let Q=Math.min(g-n[_y],n[Xy]);Q<=0?s[uA]=!0:n[Xn]=Q}else n[Xn]=n[Zy]}else s[uA]=!0;let c=a.onHeaders(A,i,this.resume,o)===!1;return a.aborted?-1:a.method==="HEAD"||A<200?1:(s[Nr]&&(s[Nr]=!1,n[Be]()),c?pA.ERROR.PAUSED:0)}onBody(A){let{client:t,socket:r,statusCode:n,maxResponseSize:s}=this;if(r.destroyed)return-1;let i=t[JA][t[MA]];if(F(i),F(this.timeoutType===zn),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),F(n>=200),s>-1&&this.bytesRead+A.length>s)return b.destroy(r,new Py),-1;if(this.bytesRead+=A.length,i.onData(A)===!1)return pA.ERROR.PAUSED}onMessageComplete(){let{client:A,socket:t,statusCode:r,upgrade:n,headers:s,contentLength:i,bytesRead:o,shouldKeepAlive:a}=this;if(t.destroyed&&(!r||a))return-1;if(n)return;F(r>=100),F((this.headers.length&1)===0);let c=A[JA][A[MA]];if(F(c),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,!(r<200)){if(c.method!=="HEAD"&&i&&o!==parseInt(i,10))return b.destroy(t,new CE),-1;if(c.onComplete(s),A[JA][A[MA]++]=null,t[Uo]=!0,t[De])return F(A[nA]===0),b.destroy(t,new Mt("reset")),pA.ERROR.PAUSED;if(a){if(t[uA]&&A[nA]===0)return b.destroy(t,new Mt("reset")),pA.ERROR.PAUSED;A[Kn]==null||A[Kn]===1?setImmediate(()=>A[Be]()):A[Be]()}else return b.destroy(t,new Mt("reset")),pA.ERROR.PAUSED}}};function fE(e){let{socket:A,timeoutType:t,client:r,paused:n}=e.deref();t===Lt?(!A[De]||A.writableNeedDrain||r[nA]>1)&&(F(!n,"cannot be paused while waiting for headers"),b.destroy(A,new Vy)):t===zn?n||b.destroy(A,new Wy):t===No&&(F(r[nA]===0&&r[Xn]),b.destroy(A,new Mt("socket idle timeout")))}async function s0(e,A){e[Pe]=A,Fo||(Fo=await bo,bo=null),A[Rr]=!1,A[De]=!1,A[uA]=!1,A[Nr]=!1,A[Ze]=0,A[Oe]=null,A[Uo]=!1,A[K]=new So(e,A,Fo),On(A,"error",function(r){F(r.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let n=this[K];if(r.code==="ECONNRESET"&&n.statusCode&&!n.shouldKeepAlive){let s=n.finish();s&&(this[BA]=s,this[Zn][hE](s));return}this[BA]=r,this[Zn][hE](r)}),On(A,"readable",function(){let r=this[K];r&&r.readMore()}),On(A,"end",function(){let r=this[K];if(r.statusCode&&!r.shouldKeepAlive){let n=r.finish();n&&b.destroy(this,n);return}b.destroy(this,new Ut("other side closed",b.getSocketInfo(this)))}),On(A,"close",function(){let r=this[Zn],n=this[K];FE(this),n&&(!this[BA]&&n.statusCode&&!n.shouldKeepAlive&&(this[BA]=n.finish()||this[BA]),this[K].destroy(),this[K]=null);let s=this[BA]||new Ut("closed",b.getSocketInfo(this));if(r[Pe]=null,r[kE]=null,r.destroyed){F(r[mE]===0);let i=r[JA].splice(r[MA]);for(let o=0;o<i.length;o++){let a=i[o];b.errorRequest(r,a,s)}}else if(r[nA]>0&&s.code!=="UND_ERR_INFO"){let i=r[JA][r[MA]];r[JA][r[MA]++]=null,b.errorRequest(r,i,s)}r[zy]=r[MA],F(r[nA]===0),r.emit("disconnect",r[DE],[r],s),r[Be]()});let t=!1;return A.on("close",()=>{t=!0}),{version:"h1",defaultPipelining:1,write(...r){return c0(e,...r)},resume(){o0(e)},destroy(r,n){t?queueMicrotask(n):A.destroy(r).on("close",n)},get destroyed(){return A.destroyed},busy(r){return!!(A[De]||A[uA]||A[Nr]||A[Ze]===1||r&&(e[nA]>0&&!r.idempotent||e[nA]>0&&(r.upgrade||r.method==="CONNECT")||e[nA]>0&&b.bodyLength(r.body)!==0&&(b.isStream(r.body)||b.isAsyncIterable(r.body)||b.isFormDataLike(r.body))))}}}function FE(e){e[Oe]&&(clearTimeout(e[Oe]),e[Oe]=null),e[Ze]=0}function i0(e,A){A[Ze]=1,A[Oe]=setTimeout(()=>{A[Oe]=null,A[Ze]=2,e[Pe]===A&&!A.destroyed&&e[Be]()},0),A[Oe].unref?.()}function o0(e){let A=e[Pe];if(A&&!A.destroyed){if(e[lE]===0?!A[Rr]&&A.unref&&(A.unref(),A[Rr]=!0):A[Rr]&&A.ref&&(A.ref(),A[Rr]=!1),e[nA]===0&&e[mE]>0&&A[Uo]){if(A[Ze]===0)return i0(e,A),A[K].readMore(),A.destroyed,void 0;if(A[Ze]===1)return A[K].readMore(),A.destroyed,void 0}if(e[nA]===0&&(A[K].readMore(),A.destroyed))return;if(e[lE]===0)A[K].timeoutType!==No&&A[K].setTimeout(e[Xn],No);else if(e[nA]>0&&A[K].statusCode<200&&A[K].timeoutType!==Lt){let t=e[JA][e[MA]],r=t.headersTimeout!=null?t.headersTimeout:e[jy];A[K].setTimeout(r,Lt)}}}function a0(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function c0(e,A){let{method:t,path:r,host:n,upgrade:s,blocking:i,reset:o}=A,{body:a,headers:c,contentLength:g}=A,Q=t==="PUT"||t==="POST"||t==="PATCH"||t==="QUERY"||t==="PROPFIND"||t==="PROPPATCH";if(b.isFormDataLike(a)){ko||(ko=St().extractBody);let[u,C]=ko(a);A.contentType==null&&c.push("content-type",C),a=u.stream,g=u.length}else if(b.isBlobLike(a)&&A.contentType==null){let u=a.type;if(u){let C=`${u}`;if(!b.isValidHeaderValue(C))return b.errorRequest(e,A,new Hy("invalid content-type header")),!1;c.push("content-type",C)}}a&&typeof a.read=="function"&&a.read(0);let E=b.bodyLength(a);if(g=E??g,g===null&&(g=A.contentLength),g===0&&!Q&&(g=null),a0(t)&&g>0&&A.contentLength!==null&&A.contentLength!==g){if(e[Ro])return b.errorRequest(e,A,new We),!1;process.emitWarning(new We)}let B=e[Pe];FE(B);let I=u=>{A.aborted||A.completed||(b.errorRequest(e,A,u||new pE),b.destroy(a),b.destroy(B,new Mt("aborted")))};try{A.onConnect(I)}catch(u){b.errorRequest(e,A,u)}if(A.aborted)return!1;t==="HEAD"&&(B[uA]=!0),(s||t==="CONNECT")&&(B[uA]=!0),o!=null&&(B[uA]=o),e[uE]&&B[A0]++>=e[uE]&&(B[uA]=!0),i&&(B[Nr]=!0);let l=`${t} ${r} HTTP/1.1\r
14
+ `;if(typeof n=="string"?l+=`host: ${n}\r
15
+ `:l+=e[Ky],s?l+=`connection: upgrade\r
16
+ upgrade: ${s}\r
17
+ `:e[Kn]&&!B[uA]?l+=`connection: keep-alive\r
18
+ `:l+=`connection: close\r
19
+ `,Array.isArray(c))for(let u=0;u<c.length;u+=2){let C=c[u+0],h=c[u+1];if(Array.isArray(h))for(let D=0;D<h.length;D++)l+=`${C}: ${h[D]}\r
20
+ `;else l+=`${C}: ${h}\r
21
+ `}return IE.sendHeaders.hasSubscribers&&IE.sendHeaders.publish({request:A,headers:l,socket:B}),!a||E===0?wE(I,null,e,A,B,g,l,Q):b.isBuffer(a)?wE(I,a,e,A,B,g,l,Q):b.isBlobLike(a)?typeof a.stream=="function"?yE(I,a.stream(),e,A,B,g,l,Q):Q0(I,a,e,A,B,g,l,Q):b.isStream(a)?g0(I,a,e,A,B,g,l,Q):b.isIterable(a)?yE(I,a,e,A,B,g,l,Q):F(!1),!0}function g0(e,A,t,r,n,s,i,o){F(s!==0||t[nA]===0,"stream body cannot be pipelined");let a=!1,c=new _n({abort:e,socket:n,request:r,contentLength:s,client:t,expectsPayload:o,header:i}),g=function(I){if(!a)try{!c.write(I)&&this.pause&&this.pause()}catch(l){b.destroy(this,l)}},Q=function(){a||A.resume&&A.resume()},E=function(){if(queueMicrotask(()=>{A.removeListener("error",B)}),!a){let I=new pE;queueMicrotask(()=>B(I))}},B=function(I){if(!a){if(a=!0,F(n.destroyed||n[De]&&t[nA]<=1),n.off("drain",Q).off("error",B),A.removeListener("data",g).removeListener("end",B).removeListener("close",E),!I)try{c.end()}catch(l){I=l}c.destroy(I),I&&(I.code!=="UND_ERR_INFO"||I.message!=="reset")?b.destroy(A,I):b.destroy(A)}};A.on("data",g).on("end",B).on("error",B).on("close",E),A.resume&&A.resume(),n.on("drain",Q).on("error",B),A.errorEmitted??A.errored?setImmediate(()=>B(A.errored)):(A.endEmitted??A.readableEnded)&&setImmediate(()=>B(null)),(A.closeEmitted??A.closed)&&setImmediate(E)}function wE(e,A,t,r,n,s,i,o){try{A?b.isBuffer(A)&&(F(s===A.byteLength,"buffer body must have content length"),n.cork(),n.write(`${i}content-length: ${s}\r
22
+ \r
23
+ `,"latin1"),n.write(A),n.uncork(),r.onBodySent(A),!o&&r.reset!==!1&&(n[uA]=!0)):s===0?n.write(`${i}content-length: 0\r
24
+ \r
25
+ `,"latin1"):(F(s===null,"no body must not have content length"),n.write(`${i}\r
26
+ `,"latin1")),r.onRequestSent(),t[Be]()}catch(a){e(a)}}async function Q0(e,A,t,r,n,s,i,o){F(s===A.size,"blob body must have content length");try{if(s!=null&&s!==A.size)throw new We;let a=Buffer.from(await A.arrayBuffer());n.cork(),n.write(`${i}content-length: ${s}\r
27
+ \r
28
+ `,"latin1"),n.write(a),n.uncork(),r.onBodySent(a),r.onRequestSent(),!o&&r.reset!==!1&&(n[uA]=!0),t[Be]()}catch(a){e(a)}}async function yE(e,A,t,r,n,s,i,o){F(s!==0||t[nA]===0,"iterator body cannot be pipelined");let a=null;function c(){if(a){let E=a;a=null,E()}}let g=()=>new Promise((E,B)=>{F(a===null),n[BA]?B(n[BA]):a=E});n.on("close",c).on("drain",c);let Q=new _n({abort:e,socket:n,request:r,contentLength:s,client:t,expectsPayload:o,header:i});try{for await(let E of A){if(n[BA])throw n[BA];Q.write(E)||await g()}Q.end()}catch(E){Q.destroy(E)}finally{n.off("close",c).off("drain",c)}}var _n=class{constructor({abort:A,socket:t,request:r,contentLength:n,client:s,expectsPayload:i,header:o}){this.socket=t,this.request=r,this.contentLength=n,this.client=s,this.bytesWritten=0,this.expectsPayload=i,this.header=o,this.abort=A,t[De]=!0}write(A){let{socket:t,request:r,contentLength:n,client:s,bytesWritten:i,expectsPayload:o,header:a}=this;if(t[BA])throw t[BA];if(t.destroyed)return!1;let c=Buffer.byteLength(A);if(!c)return!0;if(n!==null&&i+c>n){if(s[Ro])throw new We;process.emitWarning(new We)}t.cork(),i===0&&(!o&&r.reset!==!1&&(t[uA]=!0),n===null?t.write(`${a}transfer-encoding: chunked\r
29
+ `,"latin1"):t.write(`${a}content-length: ${n}\r
30
+ \r
31
+ `,"latin1")),n===null&&t.write(`\r
32
+ ${c.toString(16)}\r
33
+ `,"latin1"),this.bytesWritten+=c;let g=t.write(A);return t.uncork(),r.onBodySent(A),g||t[K].timeout&&t[K].timeoutType===Lt&&t[K].timeout.refresh&&t[K].timeout.refresh(),g}end(){let{socket:A,contentLength:t,client:r,bytesWritten:n,expectsPayload:s,header:i,request:o}=this;if(o.onRequestSent(),A[De]=!1,A[BA])throw A[BA];if(!A.destroyed){if(n===0?s?A.write(`${i}content-length: 0\r
34
+ \r
35
+ `,"latin1"):A.write(`${i}\r
36
+ `,"latin1"):t===null&&A.write(`\r
37
+ 0\r
38
+ \r
39
+ `,"latin1"),t!==null&&n!==t){if(r[Ro])throw new We;process.emitWarning(new We)}A[K].timeout&&A[K].timeoutType===Lt&&A[K].timeout.refresh&&A[K].timeout.refresh(),r[Be]()}}destroy(A){let{socket:t,client:r,abort:n}=this;t[De]=!1,A&&(F(r[nA]<=1,"pipeline should only contain this request"),n(A))}};RE.exports=s0});var xE=f((pU,YE)=>{"use strict";var LA=d("node:assert"),{pipeline:E0}=d("node:stream"),Y=T(),{RequestContentLengthMismatchError:Mo,RequestAbortedError:NE,SocketError:Sr,InformationalError:Lo}=v(),{kUrl:jn,kReset:As,kClient:Tt,kRunning:es,kPending:B0,kQueue:me,kPendingIdx:To,kRunningIdx:vA,kError:VA,kSocket:aA,kStrictContentLength:I0,kOnError:Yo,kMaxConcurrentStreams:TE,kHTTP2Session:HA,kResume:ke,kSize:C0,kHTTPContext:l0}=X(),Ie=Symbol("open streams"),SE,UE=!1,$n;try{$n=d("node:http2")}catch{$n={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:u0,HTTP2_HEADER_METHOD:h0,HTTP2_HEADER_PATH:d0,HTTP2_HEADER_SCHEME:f0,HTTP2_HEADER_CONTENT_LENGTH:w0,HTTP2_HEADER_EXPECT:y0,HTTP2_HEADER_STATUS:p0}}=$n;function D0(e){let A=[];for(let[t,r]of Object.entries(e))if(Array.isArray(r))for(let n of r)A.push(Buffer.from(t),Buffer.from(n));else A.push(Buffer.from(t),Buffer.from(r));return A}async function m0(e,A){e[aA]=A,UE||(UE=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let t=$n.connect(e[jn],{createConnection:()=>A,peerMaxConcurrentStreams:e[TE]});t[Ie]=0,t[Tt]=e,t[aA]=A,Y.addListener(t,"error",F0),Y.addListener(t,"frameError",R0),Y.addListener(t,"end",b0),Y.addListener(t,"goaway",N0),Y.addListener(t,"close",function(){let{[Tt]:n}=this,{[aA]:s}=n,i=this[aA][VA]||this[VA]||new Sr("closed",Y.getSocketInfo(s));if(n[HA]=null,n.destroyed){LA(n[B0]===0);let o=n[me].splice(n[vA]);for(let a=0;a<o.length;a++){let c=o[a];Y.errorRequest(n,c,i)}}}),t.unref(),e[HA]=t,A[HA]=t,Y.addListener(A,"error",function(n){LA(n.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[VA]=n,this[Tt][Yo](n)}),Y.addListener(A,"end",function(){Y.destroy(this,new Sr("other side closed",Y.getSocketInfo(this)))}),Y.addListener(A,"close",function(){let n=this[VA]||new Sr("closed",Y.getSocketInfo(this));e[aA]=null,this[HA]!=null&&this[HA].destroy(n),e[To]=e[vA],LA(e[es]===0),e.emit("disconnect",e[jn],[e],n),e[ke]()});let r=!1;return A.on("close",()=>{r=!0}),{version:"h2",defaultPipelining:1/0,write(...n){return U0(e,...n)},resume(){k0(e)},destroy(n,s){r?queueMicrotask(s):A.destroy(n).on("close",s)},get destroyed(){return A.destroyed},busy(){return!1}}}function k0(e){let A=e[aA];A?.destroyed===!1&&(e[C0]===0&&e[TE]===0?(A.unref(),e[HA].unref()):(A.ref(),e[HA].ref()))}function F0(e){LA(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[aA][VA]=e,this[Tt][Yo](e)}function R0(e,A,t){if(t===0){let r=new Lo(`HTTP/2: "frameError" received - type ${e}, code ${A}`);this[aA][VA]=r,this[Tt][Yo](r)}}function b0(){let e=new Sr("other side closed",Y.getSocketInfo(this[aA]));this.destroy(e),Y.destroy(this[aA],e)}function N0(e){let A=this[VA]||new Sr(`HTTP/2: "GOAWAY" frame received with code ${e}`,Y.getSocketInfo(this)),t=this[Tt];if(t[aA]=null,t[l0]=null,this[HA]!=null&&(this[HA].destroy(A),this[HA]=null),Y.destroy(this[aA],A),t[vA]<t[me].length){let r=t[me][t[vA]];t[me][t[vA]++]=null,Y.errorRequest(t,r,A),t[To]=t[vA]}LA(t[es]===0),t.emit("disconnect",t[jn],[t],A),t[ke]()}function S0(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function U0(e,A){let t=e[HA],{method:r,path:n,host:s,upgrade:i,expectContinue:o,signal:a,headers:c}=A,{body:g}=A;if(i)return Y.errorRequest(e,A,new Error("Upgrade not supported for H2")),!1;let Q={};for(let p=0;p<c.length;p+=2){let H=c[p+0],eA=c[p+1];if(Array.isArray(eA))for(let $=0;$<eA.length;$++)Q[H]?Q[H]+=`,${eA[$]}`:Q[H]=eA[$];else Q[H]=eA}let E,{hostname:B,port:I}=e[jn];Q[u0]=s||`${B}${I?`:${I}`:""}`,Q[h0]=r;let l=p=>{A.aborted||A.completed||(p=p||new NE,Y.errorRequest(e,A,p),E!=null&&Y.destroy(E,p),Y.destroy(g,p),e[me][e[vA]++]=null,e[ke]())};try{A.onConnect(l)}catch(p){Y.errorRequest(e,A,p)}if(A.aborted)return!1;if(r==="CONNECT")return t.ref(),E=t.request(Q,{endStream:!1,signal:a}),E.id&&!E.pending?(A.onUpgrade(null,null,E),++t[Ie],e[me][e[vA]++]=null):E.once("ready",()=>{A.onUpgrade(null,null,E),++t[Ie],e[me][e[vA]++]=null}),E.once("close",()=>{t[Ie]-=1,t[Ie]===0&&t.unref()}),!0;Q[d0]=n,Q[f0]="https";let u=r==="PUT"||r==="POST"||r==="PATCH";g&&typeof g.read=="function"&&g.read(0);let C=Y.bodyLength(g);if(Y.isFormDataLike(g)){SE??=St().extractBody;let[p,H]=SE(g);Q["content-type"]=H,g=p.stream,C=p.length}if(C==null&&(C=A.contentLength),(C===0||!u)&&(C=null),S0(r)&&C>0&&A.contentLength!=null&&A.contentLength!==C){if(e[I0])return Y.errorRequest(e,A,new Mo),!1;process.emitWarning(new Mo)}C!=null&&(LA(g,"no body must not have content length"),Q[w0]=`${C}`),t.ref();let h=r==="GET"||r==="HEAD"||g===null;return o?(Q[y0]="100-continue",E=t.request(Q,{endStream:h,signal:a}),E.once("continue",D)):(E=t.request(Q,{endStream:h,signal:a}),D()),++t[Ie],E.once("response",p=>{let{[p0]:H,...eA}=p;if(A.onResponseStarted(),A.aborted){let $=new NE;Y.errorRequest(e,A,$),Y.destroy(E,$);return}A.onHeaders(Number(H),D0(eA),E.resume.bind(E),"")===!1&&E.pause(),E.on("data",$=>{A.onData($)===!1&&E.pause()})}),E.once("end",()=>{(E.state?.state==null||E.state.state<6)&&A.onComplete([]),t[Ie]===0&&t.unref(),l(new Lo("HTTP/2: stream half-closed (remote)")),e[me][e[vA]++]=null,e[To]=e[vA],e[ke]()}),E.once("close",()=>{t[Ie]-=1,t[Ie]===0&&t.unref()}),E.once("error",function(p){l(p)}),E.once("frameError",(p,H)=>{l(new Lo(`HTTP/2: "frameError" received - type ${p}, code ${H}`))}),!0;function D(){!g||C===0?ME(l,E,null,e,A,e[aA],C,u):Y.isBuffer(g)?ME(l,E,g,e,A,e[aA],C,u):Y.isBlobLike(g)?typeof g.stream=="function"?LE(l,E,g.stream(),e,A,e[aA],C,u):L0(l,E,g,e,A,e[aA],C,u):Y.isStream(g)?M0(l,e[aA],u,E,g,e,A,C):Y.isIterable(g)?LE(l,E,g,e,A,e[aA],C,u):LA(!1)}}function ME(e,A,t,r,n,s,i,o){try{t!=null&&Y.isBuffer(t)&&(LA(i===t.byteLength,"buffer body must have content length"),A.cork(),A.write(t),A.uncork(),A.end(),n.onBodySent(t)),o||(s[As]=!0),n.onRequestSent(),r[ke]()}catch(a){e(a)}}function M0(e,A,t,r,n,s,i,o){LA(o!==0||s[es]===0,"stream body cannot be pipelined");let a=E0(n,r,g=>{g?(Y.destroy(a,g),e(g)):(Y.removeAllListeners(a),i.onRequestSent(),t||(A[As]=!0),s[ke]())});Y.addListener(a,"data",c);function c(g){i.onBodySent(g)}}async function L0(e,A,t,r,n,s,i,o){LA(i===t.size,"blob body must have content length");try{if(i!=null&&i!==t.size)throw new Mo;let a=Buffer.from(await t.arrayBuffer());A.cork(),A.write(a),A.uncork(),A.end(),n.onBodySent(a),n.onRequestSent(),o||(s[As]=!0),r[ke]()}catch(a){e(a)}}async function LE(e,A,t,r,n,s,i,o){LA(i!==0||r[es]===0,"iterator body cannot be pipelined");let a=null;function c(){if(a){let Q=a;a=null,Q()}}let g=()=>new Promise((Q,E)=>{LA(a===null),s[VA]?E(s[VA]):a=Q});A.on("close",c).on("drain",c);try{for await(let Q of t){if(s[VA])throw s[VA];let E=A.write(Q);n.onBodySent(Q),E||await g()}A.end(),n.onRequestSent(),o||(s[As]=!0),r[ke]()}catch(Q){e(Q)}finally{A.off("close",c).off("drain",c)}}YE.exports=m0});var rs=f((DU,vE)=>{"use strict";var ee=T(),{kBodyUsed:Ur}=X(),Go=d("node:assert"),{InvalidArgumentError:T0}=v(),Y0=d("node:events"),x0=[300,301,302,303,307,308],GE=Symbol("body"),ts=class{constructor(A){this[GE]=A,this[Ur]=!1}async*[Symbol.asyncIterator](){Go(!this[Ur],"disturbed"),this[Ur]=!0,yield*this[GE]}},xo=class{constructor(A,t,r,n){if(t!=null&&(!Number.isInteger(t)||t<0))throw new T0("maxRedirections must be a positive number");ee.validateHandler(n,r.method,r.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...r,maxRedirections:0},this.maxRedirections=t,this.handler=n,this.history=[],this.redirectionLimitReached=!1,ee.isStream(this.opts.body)?(ee.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Go(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[Ur]=!1,Y0.prototype.on.call(this.opts.body,"data",function(){this[Ur]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new ts(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&ee.isIterable(this.opts.body)&&(this.opts.body=new ts(this.opts.body))}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,t,r){this.handler.onUpgrade(A,t,r)}onError(A){this.handler.onError(A)}onHeaders(A,t,r,n){if(this.location=this.history.length>=this.maxRedirections||ee.isDisturbed(this.opts.body)?null:G0(A,t),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){this.request&&this.request.abort(new Error("max redirects")),this.redirectionLimitReached=!0,this.abort(new Error("max redirects"));return}if(this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(A,t,r,n);let{origin:s,pathname:i,search:o}=ee.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),a=o?`${i}${o}`:i;this.opts.headers=J0(this.opts.headers,A===303,this.opts.origin!==s),this.opts.path=a,this.opts.origin=s,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(A){if(!this.location)return this.handler.onData(A)}onComplete(A){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(A)}onBodySent(A){this.handler.onBodySent&&this.handler.onBodySent(A)}};function G0(e,A){if(x0.indexOf(e)===-1)return null;for(let t=0;t<A.length;t+=2)if(A[t].length===8&&ee.headerNameToString(A[t])==="location")return A[t+1]}function JE(e,A,t){if(e.length===4)return ee.headerNameToString(e)==="host";if(A&&ee.headerNameToString(e).startsWith("content-"))return!0;if(t&&(e.length===13||e.length===6||e.length===19)){let r=ee.headerNameToString(e);return r==="authorization"||r==="cookie"||r==="proxy-authorization"}return!1}function J0(e,A,t){let r=[];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)JE(e[n],A,t)||r.push(e[n],e[n+1]);else if(e&&typeof e=="object")for(let n of Object.keys(e))JE(n,A,t)||r.push(n,e[n]);else Go(e==null,"headers must be an object or an array");return r}vE.exports=xo});var ns=f((mU,HE)=>{"use strict";var v0=rs();function H0({maxRedirections:e}){return A=>function(r,n){let{maxRedirections:s=e}=r;if(!s)return A(r,n);let i=new v0(A,s,r,n);return r={...r,maxRedirections:0},A(r,i)}}HE.exports=H0});var Gt=f((kU,_E)=>{"use strict";var Ce=d("node:assert"),ZE=d("node:net"),V0=d("node:http"),Ke=T(),{channels:Yt}=ht(),q0=_g(),W0=yt(),{InvalidArgumentError:tA,InformationalError:O0,ClientDestroyedError:P0}=v(),Z0=dr(),{kUrl:te,kServerName:Fe,kClient:K0,kBusy:Jo,kConnect:z0,kResuming:ze,kRunning:xr,kPending:Gr,kSize:Yr,kQueue:qA,kConnected:X0,kConnecting:xt,kNeedDrain:be,kKeepAliveDefaultTimeout:VE,kHostHeader:_0,kPendingIdx:WA,kRunningIdx:le,kError:j0,kPipelining:ss,kKeepAliveTimeoutValue:$0,kMaxHeadersSize:Ap,kKeepAliveMaxTimeout:ep,kKeepAliveTimeoutThreshold:tp,kHeadersTimeout:rp,kBodyTimeout:np,kStrictContentLength:sp,kConnector:Mr,kMaxRedirections:ip,kMaxRequests:vo,kCounter:op,kClose:ap,kDestroy:cp,kDispatch:gp,kInterceptors:qE,kLocalAddress:Lr,kMaxResponseSize:Qp,kOnError:Ep,kHTTPContext:rA,kMaxConcurrentStreams:Bp,kResume:Tr}=X(),Ip=bE(),Cp=xE(),WE=!1,Re=Symbol("kClosedResolve"),OE=()=>{};function KE(e){return e[ss]??e[rA]?.defaultPipelining??1}var Ho=class extends W0{constructor(A,{interceptors:t,maxHeaderSize:r,headersTimeout:n,socketTimeout:s,requestTimeout:i,connectTimeout:o,bodyTimeout:a,idleTimeout:c,keepAlive:g,keepAliveTimeout:Q,maxKeepAliveTimeout:E,keepAliveMaxTimeout:B,keepAliveTimeoutThreshold:I,socketPath:l,pipelining:u,tls:C,strictContentLength:h,maxCachedSessions:D,maxRedirections:p,connect:H,maxRequestsPerClient:eA,localAddress:$,maxResponseSize:zA,autoSelectFamily:oe,autoSelectFamilyAttemptTimeout:Bt,maxConcurrentStreams:ye,allowH2:CA,webSocket:It}={}){if(super({webSocket:It}),g!==void 0)throw new tA("unsupported keepAlive, use pipelining=0 instead");if(s!==void 0)throw new tA("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(i!==void 0)throw new tA("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(c!==void 0)throw new tA("unsupported idleTimeout, use keepAliveTimeout instead");if(E!==void 0)throw new tA("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(r!=null&&!Number.isFinite(r))throw new tA("invalid maxHeaderSize");if(l!=null&&typeof l!="string")throw new tA("invalid socketPath");if(o!=null&&(!Number.isFinite(o)||o<0))throw new tA("invalid connectTimeout");if(Q!=null&&(!Number.isFinite(Q)||Q<=0))throw new tA("invalid keepAliveTimeout");if(B!=null&&(!Number.isFinite(B)||B<=0))throw new tA("invalid keepAliveMaxTimeout");if(I!=null&&!Number.isFinite(I))throw new tA("invalid keepAliveTimeoutThreshold");if(n!=null&&(!Number.isInteger(n)||n<0))throw new tA("headersTimeout must be a positive integer or zero");if(a!=null&&(!Number.isInteger(a)||a<0))throw new tA("bodyTimeout must be a positive integer or zero");if(H!=null&&typeof H!="function"&&typeof H!="object")throw new tA("connect must be a function or an object");if(p!=null&&(!Number.isInteger(p)||p<0))throw new tA("maxRedirections must be a positive number");if(eA!=null&&(!Number.isInteger(eA)||eA<0))throw new tA("maxRequestsPerClient must be a positive number");if($!=null&&(typeof $!="string"||ZE.isIP($)===0))throw new tA("localAddress must be valid string IP address");if(zA!=null&&(!Number.isInteger(zA)||zA<-1))throw new tA("maxResponseSize must be a positive number");if(Bt!=null&&(!Number.isInteger(Bt)||Bt<-1))throw new tA("autoSelectFamilyAttemptTimeout must be a positive number");if(CA!=null&&typeof CA!="boolean")throw new tA("allowH2 must be a valid boolean value");if(ye!=null&&(typeof ye!="number"||ye<1))throw new tA("maxConcurrentStreams must be a positive integer, greater than 0");typeof H!="function"&&(H=Z0({...C,maxCachedSessions:D,allowH2:CA,socketPath:l,timeout:o,...oe?{autoSelectFamily:oe,autoSelectFamilyAttemptTimeout:Bt}:void 0,...H})),t?.Client&&Array.isArray(t.Client)?(this[qE]=t.Client,WE||(WE=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"}))):this[qE]=[lp({maxRedirections:p})],this[te]=Ke.parseOrigin(A),this[Mr]=H,this[ss]=u??1,this[Ap]=r||V0.maxHeaderSize,this[VE]=Q??4e3,this[ep]=B??6e5,this[tp]=I??2e3,this[$0]=this[VE],this[Fe]=null,this[Lr]=$??null,this[ze]=0,this[be]=0,this[_0]=`host: ${this[te].hostname}${this[te].port?`:${this[te].port}`:""}\r
40
+ `,this[np]=a??3e5,this[rp]=n??3e5,this[sp]=h??!0,this[ip]=p,this[vo]=eA,this[Re]=null,this[Qp]=zA>-1?zA:-1,this[Bp]=ye??100,this[rA]=null,this[qA]=[],this[le]=0,this[WA]=0,this[Tr]=Ct=>Vo(this,Ct),this[Ep]=Ct=>zE(this,Ct)}get pipelining(){return this[ss]}set pipelining(A){this[ss]=A,this[Tr](!0)}get[Gr](){return this[qA].length-this[WA]}get[xr](){return this[WA]-this[le]}get[Yr](){return this[qA].length-this[le]}get[X0](){return!!this[rA]&&!this[xt]&&!this[rA].destroyed}get[Jo](){return!!(this[rA]?.busy(null)||this[Yr]>=(KE(this)||1)||this[Gr]>0)}[z0](A){XE(this),this.once("connect",A)}[gp](A,t){let r=A.origin||this[te].origin,n=new q0(r,A,t);return this[qA].push(n),this[ze]||(Ke.bodyLength(n.body)==null&&Ke.isIterable(n.body)?(this[ze]=1,queueMicrotask(()=>Vo(this))):this[Tr](!0)),this[ze]&&this[be]!==2&&this[Jo]&&(this[be]=2),this[be]<2}async[ap](){return new Promise(A=>{this[Yr]?this[Re]=A:A(null)})}async[cp](A){return new Promise(t=>{let r=this[qA].splice(this[WA]);for(let s=0;s<r.length;s++){let i=r[s];Ke.errorRequest(this,i,A)}let n=()=>{this[Re]&&(this[Re](),this[Re]=null),t(null)};this[rA]?(this[rA].destroy(A,n),this[rA]=null):queueMicrotask(n),this[Tr]()})}},lp=ns();function zE(e,A){if(e[xr]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){Ce(e[WA]===e[le]);let t=e[qA].splice(e[le]);for(let r=0;r<t.length;r++){let n=t[r];Ke.errorRequest(e,n,A)}Ce(e[Yr]===0)}}async function XE(e){Ce(!e[xt]),Ce(!e[rA]);let{host:A,hostname:t,protocol:r,port:n}=e[te];if(t[0]==="["){let s=t.indexOf("]");Ce(s!==-1);let i=t.substring(1,s);Ce(ZE.isIP(i)),t=i}e[xt]=!0,Yt.beforeConnect.hasSubscribers&&Yt.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[rA]?.version,servername:e[Fe],localAddress:e[Lr]},connector:e[Mr]});try{let s=await new Promise((i,o)=>{e[Mr]({host:A,hostname:t,protocol:r,port:n,servername:e[Fe],localAddress:e[Lr]},(a,c)=>{a?o(a):i(c)})});if(e.destroyed){Ke.destroy(s.on("error",OE),new P0);return}Ce(s);try{e[rA]=s.alpnProtocol==="h2"?await Cp(e,s):await Ip(e,s)}catch(i){throw s.destroy().on("error",OE),i}e[xt]=!1,s[op]=0,s[vo]=e[vo],s[K0]=e,s[j0]=null,Yt.connected.hasSubscribers&&Yt.connected.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[rA]?.version,servername:e[Fe],localAddress:e[Lr]},connector:e[Mr],socket:s}),e.emit("connect",e[te],[e])}catch(s){if(e.destroyed)return;if(e[xt]=!1,Yt.connectError.hasSubscribers&&Yt.connectError.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[rA]?.version,servername:e[Fe],localAddress:e[Lr]},connector:e[Mr],error:s}),s.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(Ce(e[xr]===0);e[Gr]>0&&e[qA][e[WA]].servername===e[Fe];){let i=e[qA][e[WA]++];Ke.errorRequest(e,i,s)}else zE(e,s);e.emit("connectionError",e[te],[e],s)}e[Tr]()}function PE(e){e[be]=0,e.emit("drain",e[te],[e])}function Vo(e,A){e[ze]!==2&&(e[ze]=2,up(e,A),e[ze]=0,e[le]>256&&(e[qA].splice(0,e[le]),e[WA]-=e[le],e[le]=0))}function up(e,A){for(;;){if(e.destroyed){Ce(e[Gr]===0);return}if(e[Re]&&!e[Yr]){e[Re](),e[Re]=null;return}if(e[rA]&&e[rA].resume(),e[Jo])e[be]=2;else if(e[be]===2){A?(e[be]=1,queueMicrotask(()=>PE(e))):PE(e);continue}if(e[Gr]===0||e[xr]>=(KE(e)||1))return;let t=e[qA][e[WA]];if(e[te].protocol==="https:"&&e[Fe]!==t.servername){if(e[xr]>0)return;e[Fe]=t.servername,e[rA]?.destroy(new O0("servername changed"),()=>{e[rA]=null,Vo(e)})}if(e[xt])return;if(!e[rA]){XE(e);return}if(e[rA].destroyed||e[rA].busy(t))return;!t.aborted&&e[rA].write(t)?e[WA]++:e[qA].splice(e[WA],1)}}_E.exports=Ho});var qo=f((RU,jE)=>{"use strict";var is=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];return A===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A)}};jE.exports=class{constructor(){this.head=this.tail=new is}isEmpty(){return this.head.isEmpty()}push(A){this.head.isFull()&&(this.head=this.head.next=new is),this.head.push(A)}shift(){let A=this.tail,t=A.shift();return A.isEmpty()&&A.next!==null&&(this.tail=A.next),t}}});var AB=f((bU,$E)=>{var{kFree:hp,kConnected:dp,kPending:fp,kQueued:wp,kRunning:yp,kSize:pp}=X(),Xe=Symbol("pool"),Wo=class{constructor(A){this[Xe]=A}get connected(){return this[Xe][dp]}get free(){return this[Xe][hp]}get pending(){return this[Xe][fp]}get queued(){return this[Xe][wp]}get running(){return this[Xe][yp]}get size(){return this[Xe][pp]}};$E.exports=Wo});var Xo=f((NU,gB)=>{"use strict";var Dp=yt(),mp=qo(),{kConnected:Oo,kSize:eB,kRunning:tB,kPending:rB,kQueued:Jr,kBusy:kp,kFree:Fp,kUrl:Rp,kClose:bp,kDestroy:Np,kDispatch:Sp}=X(),Up=AB(),hA=Symbol("clients"),IA=Symbol("needDrain"),vr=Symbol("queue"),Po=Symbol("closed resolve"),Zo=Symbol("onDrain"),nB=Symbol("onConnect"),sB=Symbol("onDisconnect"),iB=Symbol("onConnectionError"),Ko=Symbol("get dispatcher"),aB=Symbol("add client"),cB=Symbol("remove client"),oB=Symbol("stats"),zo=class extends Dp{constructor(A){super(A),this[vr]=new mp,this[hA]=[],this[Jr]=0;let t=this;this[Zo]=function(n,s){let i=t[vr],o=!1;for(;!o;){let a=i.shift();if(!a)break;t[Jr]--,o=!this.dispatch(a.opts,a.handler)}this[IA]=o,!this[IA]&&t[IA]&&(t[IA]=!1,t.emit("drain",n,[t,...s])),t[Po]&&i.isEmpty()&&Promise.all(t[hA].map(a=>a.close())).then(t[Po])},this[nB]=(r,n)=>{t.emit("connect",r,[t,...n])},this[sB]=(r,n,s)=>{t.emit("disconnect",r,[t,...n],s)},this[iB]=(r,n,s)=>{t.emit("connectionError",r,[t,...n],s)},this[oB]=new Up(this)}get[kp](){return this[IA]}get[Oo](){return this[hA].filter(A=>A[Oo]).length}get[Fp](){return this[hA].filter(A=>A[Oo]&&!A[IA]).length}get[rB](){let A=this[Jr];for(let{[rB]:t}of this[hA])A+=t;return A}get[tB](){let A=0;for(let{[tB]:t}of this[hA])A+=t;return A}get[eB](){let A=this[Jr];for(let{[eB]:t}of this[hA])A+=t;return A}get stats(){return this[oB]}async[bp](){this[vr].isEmpty()?await Promise.all(this[hA].map(A=>A.close())):await new Promise(A=>{this[Po]=A})}async[Np](A){for(;;){let t=this[vr].shift();if(!t)break;t.handler.onError(A)}await Promise.all(this[hA].map(t=>t.destroy(A)))}[Sp](A,t){let r=this[Ko]();return r?r.dispatch(A,t)||(r[IA]=!0,this[IA]=!this[Ko]()):(this[IA]=!0,this[vr].push({opts:A,handler:t}),this[Jr]++),!this[IA]}[aB](A){return A.on("drain",this[Zo]).on("connect",this[nB]).on("disconnect",this[sB]).on("connectionError",this[iB]),this[hA].push(A),this[IA]&&queueMicrotask(()=>{this[IA]&&this[Zo](A[Rp],[this,A])}),this}[cB](A){A.close(()=>{let t=this[hA].indexOf(A);t!==-1&&this[hA].splice(t,1)}),this[IA]=this[hA].some(t=>!t[IA]&&t.closed!==!0&&t.destroyed!==!0)}};gB.exports={PoolBase:zo,kClients:hA,kNeedDrain:IA,kAddClient:aB,kRemoveClient:cB,kGetDispatcher:Ko}});var Jt=f((SU,IB)=>{"use strict";var{PoolBase:Mp,kClients:os,kNeedDrain:Lp,kAddClient:Tp,kGetDispatcher:Yp}=Xo(),xp=Gt(),{InvalidArgumentError:_o}=v(),QB=T(),{kUrl:EB,kInterceptors:Gp}=X(),Jp=dr(),jo=Symbol("options"),$o=Symbol("connections"),BB=Symbol("factory");function vp(e,A){return new xp(e,A)}var Aa=class extends Mp{constructor(A,{connections:t,factory:r=vp,connect:n,connectTimeout:s,tls:i,maxCachedSessions:o,socketPath:a,autoSelectFamily:c,autoSelectFamilyAttemptTimeout:g,allowH2:Q,...E}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new _o("invalid connections");if(typeof r!="function")throw new _o("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new _o("connect must be a function or an object");typeof n!="function"&&(n=Jp({...i,maxCachedSessions:o,allowH2:Q,socketPath:a,timeout:s,...c?{autoSelectFamily:c,autoSelectFamilyAttemptTimeout:g}:void 0,...n})),super(E),this[Gp]=E.interceptors?.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[$o]=t||null,this[EB]=QB.parseOrigin(A),this[jo]={...QB.deepClone(E),connect:n,allowH2:Q},this[jo].interceptors=E.interceptors?{...E.interceptors}:void 0,this[BB]=r,this.on("connectionError",(B,I,l)=>{for(let u of I){let C=this[os].indexOf(u);C!==-1&&this[os].splice(C,1)}})}[Yp](){for(let A of this[os])if(!A[Lp])return A;if(!this[$o]||this[os].length<this[$o]){let A=this[BB](this[EB],this[jo]);return this[Tp](A),A}}};IB.exports=Aa});var dB=f((UU,hB)=>{"use strict";var{BalancedPoolMissingUpstreamError:Hp,InvalidArgumentError:Vp}=v(),{PoolBase:qp,kClients:gA,kNeedDrain:Hr,kAddClient:Wp,kRemoveClient:Op,kGetDispatcher:Pp}=Xo(),Zp=Jt(),{kUrl:ea,kInterceptors:Kp}=X(),{parseOrigin:CB}=T(),lB=Symbol("factory"),as=Symbol("options"),uB=Symbol("kGreatestCommonDivisor"),_e=Symbol("kCurrentWeight"),je=Symbol("kIndex"),TA=Symbol("kWeight"),cs=Symbol("kMaxWeightPerServer"),gs=Symbol("kErrorPenalty");function zp(e,A){if(e===0)return A;for(;A!==0;){let t=A;A=e%A,e=t}return e}function Xp(e,A){return new Zp(e,A)}var ta=class extends qp{constructor(A=[],{factory:t=Xp,...r}={}){if(super(),this[as]=r,this[je]=-1,this[_e]=0,this[cs]=this[as].maxWeightPerServer||100,this[gs]=this[as].errorPenalty||15,Array.isArray(A)||(A=[A]),typeof t!="function")throw new Vp("factory must be a function.");this[Kp]=r.interceptors?.BalancedPool&&Array.isArray(r.interceptors.BalancedPool)?r.interceptors.BalancedPool:[],this[lB]=t;for(let n of A)this.addUpstream(n);this._updateBalancedPoolStats()}addUpstream(A){let t=CB(A).origin;if(this[gA].find(n=>n[ea].origin===t&&n.closed!==!0&&n.destroyed!==!0))return this;let r=this[lB](t,Object.assign({},this[as]));this[Wp](r),r.on("connect",()=>{r[TA]=Math.min(this[cs],r[TA]+this[gs])}),r.on("connectionError",()=>{r[TA]=Math.max(1,r[TA]-this[gs]),this._updateBalancedPoolStats()}),r.on("disconnect",(...n)=>{let s=n[2];s&&s.code==="UND_ERR_SOCKET"&&(r[TA]=Math.max(1,r[TA]-this[gs]),this._updateBalancedPoolStats())});for(let n of this[gA])n[TA]=this[cs];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let A=0;for(let t=0;t<this[gA].length;t++)A=zp(this[gA][t][TA],A);this[uB]=A}removeUpstream(A){let t=CB(A).origin,r=this[gA].find(n=>n[ea].origin===t&&n.closed!==!0&&n.destroyed!==!0);return r&&this[Op](r),this}get upstreams(){return this[gA].filter(A=>A.closed!==!0&&A.destroyed!==!0).map(A=>A[ea].origin)}[Pp](){if(this[gA].length===0)throw new Hp;if(!this[gA].find(s=>!s[Hr]&&s.closed!==!0&&s.destroyed!==!0)||this[gA].map(s=>s[Hr]).reduce((s,i)=>s&&i,!0))return;let r=0,n=this[gA].findIndex(s=>!s[Hr]);for(;r++<this[gA].length;){this[je]=(this[je]+1)%this[gA].length;let s=this[gA][this[je]];if(s[TA]>this[gA][n][TA]&&!s[Hr]&&(n=this[je]),this[je]===0&&(this[_e]=this[_e]-this[uB],this[_e]<=0&&(this[_e]=this[cs])),s[TA]>=this[_e]&&!s[Hr])return s}return this[_e]=this[gA][n][TA],this[je]=n,this[gA][n]}};hB.exports=ta});var vt=f((MU,kB)=>{"use strict";var{InvalidArgumentError:Qs}=v(),{kClients:Ne,kRunning:fB,kClose:_p,kDestroy:jp,kDispatch:$p,kInterceptors:AD}=X(),eD=yt(),tD=Jt(),rD=Gt(),nD=T(),sD=ns(),wB=Symbol("onConnect"),yB=Symbol("onDisconnect"),pB=Symbol("onConnectionError"),iD=Symbol("maxRedirections"),DB=Symbol("onDrain"),mB=Symbol("factory"),ra=Symbol("options");function oD(e,A){return A&&A.connections===1?new rD(e,A):new tD(e,A)}var na=class extends eD{constructor({factory:A=oD,maxRedirections:t=0,connect:r,...n}={}){if(typeof A!="function")throw new Qs("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new Qs("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new Qs("maxRedirections must be a positive number");super(n),r&&typeof r!="function"&&(r={...r}),this[AD]=n.interceptors?.Agent&&Array.isArray(n.interceptors.Agent)?n.interceptors.Agent:[sD({maxRedirections:t})],this[ra]={...nD.deepClone(n),connect:r},this[ra].interceptors=n.interceptors?{...n.interceptors}:void 0,this[iD]=t,this[mB]=A,this[Ne]=new Map,this[DB]=(s,i)=>{this.emit("drain",s,[this,...i])},this[wB]=(s,i)=>{this.emit("connect",s,[this,...i])},this[yB]=(s,i,o)=>{this.emit("disconnect",s,[this,...i],o)},this[pB]=(s,i,o)=>{this.emit("connectionError",s,[this,...i],o)}}get[fB](){let A=0;for(let t of this[Ne].values())A+=t[fB];return A}[$p](A,t){let r;if(A.origin&&(typeof A.origin=="string"||A.origin instanceof URL))r=String(A.origin);else throw new Qs("opts.origin must be a non-empty string or URL.");let n=this[Ne].get(r);return n||(n=this[mB](A.origin,this[ra]).on("drain",this[DB]).on("connect",this[wB]).on("disconnect",this[yB]).on("connectionError",this[pB]),this[Ne].set(r,n)),n.dispatch(A,t)}async[_p](){let A=[];for(let t of this[Ne].values())A.push(t.close());this[Ne].clear(),await Promise.all(A)}async[jp](A){let t=[];for(let r of this[Ne].values())t.push(r.destroy(A));this[Ne].clear(),await Promise.all(t)}};kB.exports=na});var ca=f((LU,xB)=>{"use strict";var{kProxy:sa,kClose:UB,kDestroy:MB,kDispatch:FB,kInterceptors:aD}=X(),{URL:$e}=d("node:url"),cD=vt(),LB=Jt(),TB=yt(),{InvalidArgumentError:Ht,RequestAbortedError:gD,SecureProxyConnectionError:QD}=v(),RB=dr(),YB=Gt(),Es=Symbol("proxy agent"),Bs=Symbol("proxy client"),Se=Symbol("proxy headers"),ia=Symbol("request tls settings"),bB=Symbol("proxy tls settings"),NB=Symbol("connect endpoint function"),SB=Symbol("tunnel proxy");function ED(e){return e==="https:"?443:80}function BD(e,A){return new LB(e,A)}var ID=()=>{};function CD(e,A){return A.connections===1?new YB(e,A):new LB(e,A)}var oa=class extends TB{#A;constructor(A,{headers:t={},connect:r,factory:n}){if(super(),!A)throw new Ht("Proxy URL is mandatory");this[Se]=t,n?this.#A=n(A,{connect:r}):this.#A=new YB(A,{connect:r})}[FB](A,t){let r=t.onHeaders;t.onHeaders=function(o,a,c){if(o===407){typeof t.onError=="function"&&t.onError(new Ht("Proxy Authentication Required (407)"));return}r&&r.call(this,o,a,c)};let{origin:n,path:s="/",headers:i={}}=A;if(A.path=n+s,!("host"in i)&&!("Host"in i)){let{host:o}=new $e(n);i.host=o}return A.headers={...this[Se],...i},this.#A[FB](A,t)}async[UB](){return this.#A.close()}async[MB](A){return this.#A.destroy(A)}},aa=class extends TB{constructor(A){if(super(),!A||typeof A=="object"&&!(A instanceof $e)&&!A.uri)throw new Ht("Proxy uri is mandatory");let{clientFactory:t=BD}=A;if(typeof t!="function")throw new Ht("Proxy opts.clientFactory must be a function.");let{proxyTunnel:r=!0}=A,n=this.#A(A),{href:s,origin:i,port:o,protocol:a,username:c,password:g,hostname:Q}=n;if(this[sa]={uri:s,protocol:a},this[aD]=A.interceptors?.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],this[ia]=A.requestTls,this[bB]=A.proxyTls,this[Se]=A.headers||{},this[SB]=r,A.auth&&A.token)throw new Ht("opts.auth cannot be used in combination with opts.token");A.auth?this[Se]["proxy-authorization"]=`Basic ${A.auth}`:A.token?this[Se]["proxy-authorization"]=A.token:c&&g&&(this[Se]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(c)}:${decodeURIComponent(g)}`).toString("base64")}`);let E=RB({...A.proxyTls});this[NB]=RB({...A.requestTls});let B=A.factory||CD,I=(l,u)=>{let{protocol:C}=new $e(l);return!this[SB]&&C==="http:"&&this[sa].protocol==="http:"?new oa(this[sa].uri,{headers:this[Se],connect:E,factory:B}):B(l,u)};this[Bs]=t(n,{connect:E}),this[Es]=new cD({...A,factory:I,connect:async(l,u)=>{let C=l.host;l.port||(C+=`:${ED(l.protocol)}`);try{let{socket:h,statusCode:D}=await this[Bs].connect({origin:i,port:o,path:C,signal:l.signal,headers:{...this[Se],host:l.host},servername:this[bB]?.servername||Q});if(D!==200&&(h.on("error",ID).destroy(),u(new gD(`Proxy response (${D}) !== 200 when HTTP Tunneling`))),l.protocol!=="https:"){u(null,h);return}let p;this[ia]?p=this[ia].servername:p=l.servername,this[NB]({...l,servername:p,httpSocket:h},u)}catch(h){h.code==="ERR_TLS_CERT_ALTNAME_INVALID"?u(new QD(h)):u(h)}}})}dispatch(A,t){let r=lD(A.headers);if(uD(r),r&&!("host"in r)&&!("Host"in r)){let{host:n}=new $e(A.origin);r.host=n}return this[Es].dispatch({...A,headers:r},t)}#A(A){return typeof A=="string"?new $e(A):A instanceof $e?A:new $e(A.uri)}async[UB](){await this[Es].close(),await this[Bs].close()}async[MB](){await this[Es].destroy(),await this[Bs].destroy()}};function lD(e){if(Array.isArray(e)){let A={};for(let t=0;t<e.length;t+=2)A[e[t]]=e[t+1];return A}return e}function uD(e){if(e&&Object.keys(e).find(t=>t.toLowerCase()==="proxy-authorization"))throw new Ht("Proxy-Authorization should be sent in ProxyAgent constructor")}xB.exports=aa});var qB=f((TU,VB)=>{"use strict";var hD=yt(),{kClose:dD,kDestroy:fD,kClosed:GB,kDestroyed:JB,kDispatch:wD,kNoProxyAgent:Vr,kHttpProxyAgent:Ue,kHttpsProxyAgent:At}=X(),vB=ca(),yD=vt(),pD={"http:":80,"https:":443},HB=!1,ga=class extends hD{#A=null;#e=null;#t=null;constructor(A={}){super(),this.#t=A,HB||(HB=!0,process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"}));let{httpProxy:t,httpsProxy:r,noProxy:n,...s}=A;this[Vr]=new yD(s);let i=t??process.env.http_proxy??process.env.HTTP_PROXY;i?this[Ue]=new vB({...s,uri:i}):this[Ue]=this[Vr];let o=r??process.env.https_proxy??process.env.HTTPS_PROXY;o?this[At]=new vB({...s,uri:o}):this[At]=this[Ue],this.#r()}[wD](A,t){let r=new URL(A.origin);return this.#s(r).dispatch(A,t)}async[dD](){await this[Vr].close(),this[Ue][GB]||await this[Ue].close(),this[At][GB]||await this[At].close()}async[fD](A){await this[Vr].destroy(A),this[Ue][JB]||await this[Ue].destroy(A),this[At][JB]||await this[At].destroy(A)}#s(A){let{protocol:t,host:r,port:n}=A;return r=r.replace(/:\d*$/,"").toLowerCase(),n=Number.parseInt(n,10)||pD[t]||0,this.#n(r,n)?t==="https:"?this[At]:this[Ue]:this[Vr]}#n(A,t){if(this.#i&&this.#r(),this.#e.length===0)return!0;if(this.#A==="*")return!1;for(let r=0;r<this.#e.length;r++){let n=this.#e[r];if(!(n.port&&n.port!==t)){if(/^[.*]/.test(n.hostname)){if(A.endsWith(n.hostname.replace(/^\*/,"")))return!1}else if(A===n.hostname)return!1}}return!0}#r(){let A=this.#t.noProxy??this.#o,t=A.split(/[,\s]/),r=[];for(let n=0;n<t.length;n++){let s=t[n];if(!s)continue;let i=s.match(/^(.+):(\d+)$/);r.push({hostname:(i?i[1]:s).toLowerCase(),port:i?Number.parseInt(i[2],10):0})}this.#A=A,this.#e=r}get#i(){return this.#t.noProxy!==void 0?!1:this.#A!==this.#o}get#o(){return process.env.no_proxy??process.env.NO_PROXY??""}};VB.exports=ga});var Is=f((YU,KB)=>{"use strict";var Vt=d("node:assert"),{kRetryHandlerDefaultRetry:WB}=X(),{RequestRetryError:qt}=v(),{isDisturbed:OB,parseHeaders:DD,parseRangeHeader:PB,wrapRequestBody:mD}=T();function kD(e){let A=Date.now();return new Date(e).getTime()-A}function ZB(e,A,t,r){let n=e["content-length"];if(n==null||!Number.isFinite(A.start)||!Number.isFinite(A.end))return null;let s=Number(n),i=A.end-A.start+1;return!Number.isFinite(s)||s!==i?new qt("Content-Length mismatch",t,{headers:e,data:{count:r}}):null}var Qa=class e{constructor(A,t){let{retryOptions:r,...n}=A,{retry:s,maxRetries:i,maxTimeout:o,minTimeout:a,timeoutFactor:c,methods:g,errorCodes:Q,retryAfter:E,statusCodes:B}=r??{};this.dispatch=t.dispatch,this.handler=t.handler,this.opts={...n,body:mD(A.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:s??e[WB],retryAfter:E??!0,maxTimeout:o??30*1e3,minTimeout:a??500,timeoutFactor:c??2,maxRetries:i??5,methods:g??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:B??[500,502,503,504,429],errorCodes:Q??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(I=>{this.aborted=!0,this.abort?this.abort(I):this.reason=I})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(A,t,r){this.handler.onUpgrade&&this.handler.onUpgrade(A,t,r)}onConnect(A){this.aborted?A(this.reason):this.abort=A}onBodySent(A){if(this.handler.onBodySent)return this.handler.onBodySent(A)}static[WB](A,{state:t,opts:r},n){let{statusCode:s,code:i,headers:o}=A,{method:a,retryOptions:c}=r,{maxRetries:g,minTimeout:Q,maxTimeout:E,timeoutFactor:B,statusCodes:I,errorCodes:l,methods:u}=c,{counter:C}=t;if(i&&i!=="UND_ERR_REQ_RETRY"&&!l.includes(i)){n(A);return}if(Array.isArray(u)&&!u.includes(a)){n(A);return}if(s!=null&&Array.isArray(I)&&!I.includes(s)){n(A);return}if(C>g){n(A);return}let h=o?.["retry-after"];h&&(h=Number(h),h=Number.isNaN(h)?kD(h):h*1e3);let D=h>0?Math.min(h,E):Math.min(Q*B**(C-1),E);setTimeout(()=>n(null),D)}onHeaders(A,t,r,n){let s=DD(t);if(this.retryCount+=1,A>=300)return this.retryOpts.statusCodes.includes(A)===!1?this.handler.onHeaders(A,t,r,n):(this.abort(new qt("Request failed",A,{headers:s,data:{count:this.retryCount}})),!1);if(this.resume!=null){if(this.resume=null,A!==206&&(this.start>0||A!==200))return this.abort(new qt("server does not support the range header and the payload was partially consumed",A,{headers:s,data:{count:this.retryCount}})),!1;let o=PB(s["content-range"]);if(!o)return this.abort(new qt("Content-Range mismatch",A,{headers:s,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==s.etag)return this.abort(new qt("ETag mismatch",A,{headers:s,data:{count:this.retryCount}})),!1;let a=ZB(s,o,A,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:c,size:g,end:Q=g-1}=o;return Vt(this.start===c,"content-range mismatch"),Vt(this.end==null||this.end===Q,"content-range mismatch"),this.resume=r,!0}if(this.end==null){if(A===206){let o=PB(s["content-range"]);if(o==null)return this.handler.onHeaders(A,t,r,n);let a=ZB(s,o,A,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:c,size:g,end:Q=g-1}=o;Vt(c!=null&&Number.isFinite(c),"content-range mismatch"),Vt(Q!=null&&Number.isFinite(Q),"invalid content-length"),this.start=c,this.end=Q}if(this.end==null){let o=s["content-length"];this.end=o!=null?Number(o)-1:null}return Vt(Number.isFinite(this.start)),Vt(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=r,this.etag=s.etag!=null?s.etag:null,this.etag!=null&&this.etag.startsWith("W/")&&(this.etag=null),this.handler.onHeaders(A,t,r,n)}let i=new qt("Request failed",A,{headers:s,data:{count:this.retryCount}});return this.abort(i),!1}onData(A){return this.start+=A.length,this.handler.onData(A)}onComplete(A){return this.retryCount=0,this.handler.onComplete(A)}onError(A){if(this.aborted||OB(this.opts.body))return this.handler.onError(A);this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(A,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},t.bind(this));function t(r){if(r!=null||this.aborted||OB(this.opts.body))return this.handler.onError(r);if(this.start!==0){let n={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(n["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...n}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(n){this.handler.onError(n)}}}};KB.exports=Qa});var XB=f((xU,zB)=>{"use strict";var FD=ur(),RD=Is(),Ea=class extends FD{#A=null;#e=null;constructor(A,t={}){super(t),this.#A=A,this.#e=t}dispatch(A,t){let r=new RD({...A,retryOptions:this.#e},{dispatch:this.#A.dispatch.bind(this.#A),handler:t});return this.#A.dispatch(A,r)}close(){return this.#A.close()}destroy(){return this.#A.destroy()}};zB.exports=Ea});var ha=f((GU,sI)=>{"use strict";var eI=d("node:assert"),{Readable:bD}=d("node:stream"),{RequestAbortedError:tI,NotSupportedError:ND,InvalidArgumentError:SD,AbortError:Ba}=v(),rI=T(),{ReadableStreamFrom:UD}=T(),DA=Symbol("kConsume"),qr=Symbol("kReading"),Me=Symbol("kBody"),_B=Symbol("kAbort"),nI=Symbol("kContentType"),jB=Symbol("kContentLength"),MD=()=>{},Ia=class extends bD{constructor({resume:A,abort:t,contentType:r="",contentLength:n,highWaterMark:s=64*1024}){super({autoDestroy:!0,read:A,highWaterMark:s}),this._readableState.dataEmitted=!1,this[_B]=t,this[DA]=null,this[Me]=null,this[nI]=r,this[jB]=n,this[qr]=!1}destroy(A){return!A&&!this._readableState.endEmitted&&(A=new tI),A&&this[_B](),super.destroy(A)}_destroy(A,t){this[qr]?t(A):setImmediate(()=>{t(A)})}on(A,...t){return(A==="data"||A==="readable")&&(this[qr]=!0),super.on(A,...t)}addListener(A,...t){return this.on(A,...t)}off(A,...t){let r=super.off(A,...t);return(A==="data"||A==="readable")&&(this[qr]=this.listenerCount("data")>0||this.listenerCount("readable")>0),r}removeListener(A,...t){return this.off(A,...t)}push(A){return this[DA]&&A!==null?(la(this[DA],A),this[qr]?super.push(A):!0):super.push(A)}async text(){return Wr(this,"text")}async json(){return Wr(this,"json")}async blob(){return Wr(this,"blob")}async bytes(){return Wr(this,"bytes")}async arrayBuffer(){return Wr(this,"arrayBuffer")}async formData(){throw new ND}get bodyUsed(){return rI.isDisturbed(this)}get body(){return this[Me]||(this[Me]=UD(this),this[DA]&&(this[Me].getReader(),eI(this[Me].locked))),this[Me]}async dump(A){let t=Number.isFinite(A?.limit)?A.limit:131072,r=A?.signal;if(r!=null&&(typeof r!="object"||!("aborted"in r)))throw new SD("signal must be an AbortSignal");return r?.throwIfAborted(),this._readableState.closeEmitted?null:await new Promise((n,s)=>{this[jB]>t&&this.destroy(new Ba);let i=()=>{this.destroy(r.reason??new Ba)};r?.addEventListener("abort",i),this.on("close",function(){r?.removeEventListener("abort",i),r?.aborted?s(r.reason??new Ba):n(null)}).on("error",MD).on("data",function(o){t-=o.length,t<=0&&this.destroy()}).resume()})}};function LD(e){return e[Me]&&e[Me].locked===!0||e[DA]}function TD(e){return rI.isDisturbed(e)||LD(e)}async function Wr(e,A){return eI(!e[DA]),new Promise((t,r)=>{if(TD(e)){let n=e._readableState;n.destroyed&&n.closeEmitted===!1?e.on("error",s=>{r(s)}).on("close",()=>{r(new TypeError("unusable"))}):r(n.errored??new TypeError("unusable"))}else queueMicrotask(()=>{e[DA]={type:A,stream:e,resolve:t,reject:r,length:0,body:[]},e.on("error",function(n){ua(this[DA],n)}).on("close",function(){this[DA].body!==null&&ua(this[DA],new tI)}),YD(e[DA])})})}function YD(e){if(e.body===null)return;let{_readableState:A}=e.stream;if(A.bufferIndex){let t=A.bufferIndex,r=A.buffer.length;for(let n=t;n<r;n++)la(e,A.buffer[n])}else for(let t of A.buffer)la(e,t);for(A.endEmitted?AI(this[DA]):e.stream.on("end",function(){AI(this[DA])}),e.stream.resume();e.stream.read()!=null;);}function Ca(e,A){if(e.length===0||A===0)return"";let t=e.length===1?e[0]:Buffer.concat(e,A),r=t.length,n=r>2&&t[0]===239&&t[1]===187&&t[2]===191?3:0;return t.utf8Slice(n,r)}function $B(e,A){if(e.length===0||A===0)return new Uint8Array(0);if(e.length===1)return new Uint8Array(e[0]);let t=new Uint8Array(Buffer.allocUnsafeSlow(A).buffer),r=0;for(let n=0;n<e.length;++n){let s=e[n];t.set(s,r),r+=s.length}return t}function AI(e){let{type:A,body:t,resolve:r,stream:n,length:s}=e;try{A==="text"?r(Ca(t,s)):A==="json"?r(JSON.parse(Ca(t,s))):A==="arrayBuffer"?r($B(t,s).buffer):A==="blob"?r(new Blob(t,{type:n[nI]})):A==="bytes"&&r($B(t,s)),ua(e)}catch(i){n.destroy(i)}}function la(e,A){e.length+=A.length,e.body.push(A)}function ua(e,A){e.body!==null&&(A?e.reject(A):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}sI.exports={Readable:Ia,chunksDecode:Ca}});var da=f((JU,gI)=>{var xD=d("node:assert"),{ResponseStatusCodeError:iI}=v(),{chunksDecode:oI}=ha(),GD=128*1024;async function JD({callback:e,body:A,contentType:t,statusCode:r,statusMessage:n,headers:s}){xD(A);let i=[],o=0;try{for await(let Q of A)if(i.push(Q),o+=Q.length,o>GD){i=[],o=0;break}}catch{i=[],o=0}let a=`Response status code ${r}${n?`: ${n}`:""}`;if(r===204||!t||!o){queueMicrotask(()=>e(new iI(a,r,s)));return}let c=Error.stackTraceLimit;Error.stackTraceLimit=0;let g;try{aI(t)?g=JSON.parse(oI(i,o)):cI(t)&&(g=oI(i,o))}catch{}finally{Error.stackTraceLimit=c}queueMicrotask(()=>e(new iI(a,r,s,g)))}var aI=e=>e.length>15&&e[11]==="/"&&e[0]==="a"&&e[1]==="p"&&e[2]==="p"&&e[3]==="l"&&e[4]==="i"&&e[5]==="c"&&e[6]==="a"&&e[7]==="t"&&e[8]==="i"&&e[9]==="o"&&e[10]==="n"&&e[12]==="j"&&e[13]==="s"&&e[14]==="o"&&e[15]==="n",cI=e=>e.length>4&&e[4]==="/"&&e[0]==="t"&&e[1]==="e"&&e[2]==="x"&&e[3]==="t";gI.exports={getResolveErrorBodyCallback:JD,isContentTypeApplicationJson:aI,isContentTypeText:cI}});var BI=f((vU,fa)=>{"use strict";var vD=d("node:assert"),{Readable:HD}=ha(),{InvalidArgumentError:Wt,RequestAbortedError:QI}=v(),mA=T(),{getResolveErrorBodyCallback:VD}=da(),{AsyncResource:qD}=d("node:async_hooks"),Cs=class extends qD{constructor(A,t){if(!A||typeof A!="object")throw new Wt("invalid opts");let{signal:r,method:n,opaque:s,body:i,onInfo:o,responseHeaders:a,throwOnError:c,highWaterMark:g}=A;try{if(typeof t!="function")throw new Wt("invalid callback");if(g&&(typeof g!="number"||g<0))throw new Wt("invalid highWaterMark");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Wt("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new Wt("invalid method");if(o&&typeof o!="function")throw new Wt("invalid onInfo callback");super("UNDICI_REQUEST")}catch(Q){throw mA.isStream(i)&&mA.destroy(i.on("error",mA.nop),Q),Q}this.method=n,this.responseHeaders=a||null,this.opaque=s||null,this.callback=t,this.res=null,this.abort=null,this.body=i,this.trailers={},this.context=null,this.onInfo=o||null,this.throwOnError=c,this.highWaterMark=g,this.signal=r,this.reason=null,this.removeAbortListener=null,mA.isStream(i)&&i.on("error",Q=>{this.onError(Q)}),this.signal&&(this.signal.aborted?this.reason=this.signal.reason??new QI:this.removeAbortListener=mA.addAbortListener(this.signal,()=>{this.reason=this.signal.reason??new QI,this.res?mA.destroy(this.res.on("error",mA.nop),this.reason):this.abort&&this.abort(this.reason),this.removeAbortListener&&(this.res?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}))}onConnect(A,t){if(this.reason){A(this.reason);return}vD(this.callback),this.abort=A,this.context=t}onHeaders(A,t,r,n){let{callback:s,opaque:i,abort:o,context:a,responseHeaders:c,highWaterMark:g}=this,Q=c==="raw"?mA.parseRawHeaders(t):mA.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:Q});return}let E=c==="raw"?mA.parseHeaders(t):Q,B=E["content-type"],I=E["content-length"],l=new HD({resume:r,abort:o,contentType:B,contentLength:this.method!=="HEAD"&&I?Number(I):null,highWaterMark:g});this.removeAbortListener&&l.on("close",this.removeAbortListener),this.callback=null,this.res=l,s!==null&&(this.throwOnError&&A>=400?this.runInAsyncScope(VD,null,{callback:s,body:l,contentType:B,statusCode:A,statusMessage:n,headers:Q}):this.runInAsyncScope(s,null,null,{statusCode:A,headers:Q,trailers:this.trailers,opaque:i,body:l,context:a}))}onData(A){return this.res.push(A)}onComplete(A){mA.parseHeaders(A,this.trailers),this.res.push(null)}onError(A){let{res:t,callback:r,body:n,opaque:s}=this;r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,A,{opaque:s})})),t&&(this.res=null,queueMicrotask(()=>{mA.destroy(t,A)})),n&&(this.body=null,mA.destroy(n,A)),this.removeAbortListener&&(t?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}};function EI(e,A){if(A===void 0)return new Promise((t,r)=>{EI.call(this,e,(n,s)=>n?r(n):t(s))});try{this.dispatch(e,new Cs(e,A))}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}fa.exports=EI;fa.exports.RequestHandler=Cs});var Or=f((HU,lI)=>{var{addAbortListener:WD}=T(),{RequestAbortedError:OD}=v(),Ot=Symbol("kListener"),re=Symbol("kSignal");function II(e){e.abort?e.abort(e[re]?.reason):e.reason=e[re]?.reason??new OD,CI(e)}function PD(e,A){if(e.reason=null,e[re]=null,e[Ot]=null,!!A){if(A.aborted){II(e);return}e[re]=A,e[Ot]=()=>{II(e)},WD(e[re],e[Ot])}}function CI(e){e[re]&&("removeEventListener"in e[re]?e[re].removeEventListener("abort",e[Ot]):e[re].removeListener("abort",e[Ot]),e[re]=null,e[Ot]=null)}lI.exports={addSignal:PD,removeSignal:CI}});var fI=f((VU,dI)=>{"use strict";var ZD=d("node:assert"),{finished:KD,PassThrough:zD}=d("node:stream"),{InvalidArgumentError:Pt,InvalidReturnValueError:XD}=v(),OA=T(),{getResolveErrorBodyCallback:_D}=da(),{AsyncResource:jD}=d("node:async_hooks"),{addSignal:$D,removeSignal:uI}=Or(),wa=class extends jD{constructor(A,t,r){if(!A||typeof A!="object")throw new Pt("invalid opts");let{signal:n,method:s,opaque:i,body:o,onInfo:a,responseHeaders:c,throwOnError:g}=A;try{if(typeof r!="function")throw new Pt("invalid callback");if(typeof t!="function")throw new Pt("invalid factory");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Pt("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new Pt("invalid method");if(a&&typeof a!="function")throw new Pt("invalid onInfo callback");super("UNDICI_STREAM")}catch(Q){throw OA.isStream(o)&&OA.destroy(o.on("error",OA.nop),Q),Q}this.responseHeaders=c||null,this.opaque=i||null,this.factory=t,this.callback=r,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=o,this.onInfo=a||null,this.throwOnError=g||!1,OA.isStream(o)&&o.on("error",Q=>{this.onError(Q)}),$D(this,n)}onConnect(A,t){if(this.reason){A(this.reason);return}ZD(this.callback),this.abort=A,this.context=t}onHeaders(A,t,r,n){let{factory:s,opaque:i,context:o,callback:a,responseHeaders:c}=this,g=c==="raw"?OA.parseRawHeaders(t):OA.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:g});return}this.factory=null;let Q;if(this.throwOnError&&A>=400){let I=(c==="raw"?OA.parseHeaders(t):g)["content-type"];Q=new zD,this.callback=null,this.runInAsyncScope(_D,null,{callback:a,body:Q,contentType:I,statusCode:A,statusMessage:n,headers:g})}else{if(s===null)return;if(Q=this.runInAsyncScope(s,null,{statusCode:A,headers:g,opaque:i,context:o}),!Q||typeof Q.write!="function"||typeof Q.end!="function"||typeof Q.on!="function")throw new XD("expected Writable");KD(Q,{readable:!1},B=>{let{callback:I,res:l,opaque:u,trailers:C,abort:h}=this;this.res=null,(B||!l.readable)&&OA.destroy(l,B),this.callback=null,this.runInAsyncScope(I,null,B||null,{opaque:u,trailers:C}),B&&h()})}return Q.on("drain",r),this.res=Q,(Q.writableNeedDrain!==void 0?Q.writableNeedDrain:Q._writableState?.needDrain)!==!0}onData(A){let{res:t}=this;return t?t.write(A):!0}onComplete(A){let{res:t}=this;uI(this),t&&(this.trailers=OA.parseHeaders(A),t.end())}onError(A){let{res:t,callback:r,opaque:n,body:s}=this;uI(this),this.factory=null,t?(this.res=null,OA.destroy(t,A)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,A,{opaque:n})})),s&&(this.body=null,OA.destroy(s,A))}};function hI(e,A,t){if(t===void 0)return new Promise((r,n)=>{hI.call(this,e,A,(s,i)=>s?n(s):r(i))});try{this.dispatch(e,new wa(e,A,t))}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}dI.exports=hI});var DI=f((qU,pI)=>{"use strict";var{Readable:yI,Duplex:Am,PassThrough:em}=d("node:stream"),{InvalidArgumentError:Pr,InvalidReturnValueError:tm,RequestAbortedError:ya}=v(),YA=T(),{AsyncResource:rm}=d("node:async_hooks"),{addSignal:nm,removeSignal:sm}=Or(),wI=d("node:assert"),Zt=Symbol("resume"),pa=class extends yI{constructor(){super({autoDestroy:!0}),this[Zt]=null}_read(){let{[Zt]:A}=this;A&&(this[Zt]=null,A())}_destroy(A,t){this._read(),t(A)}},Da=class extends yI{constructor(A){super({autoDestroy:!0}),this[Zt]=A}_read(){this[Zt]()}_destroy(A,t){!A&&!this._readableState.endEmitted&&(A=new ya),t(A)}},ma=class extends rm{constructor(A,t){if(!A||typeof A!="object")throw new Pr("invalid opts");if(typeof t!="function")throw new Pr("invalid handler");let{signal:r,method:n,opaque:s,onInfo:i,responseHeaders:o}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Pr("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new Pr("invalid method");if(i&&typeof i!="function")throw new Pr("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=s||null,this.responseHeaders=o||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=i||null,this.req=new pa().on("error",YA.nop),this.ret=new Am({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:a}=this;a?.resume&&a.resume()},write:(a,c,g)=>{let{req:Q}=this;Q.push(a,c)||Q._readableState.destroyed?g():Q[Zt]=g},destroy:(a,c)=>{let{body:g,req:Q,res:E,ret:B,abort:I}=this;!a&&!B._readableState.endEmitted&&(a=new ya),I&&a&&I(),YA.destroy(g,a),YA.destroy(Q,a),YA.destroy(E,a),sm(this),c(a)}}).on("prefinish",()=>{let{req:a}=this;a.push(null)}),this.res=null,nm(this,r)}onConnect(A,t){let{ret:r,res:n}=this;if(this.reason){A(this.reason);return}wI(!n,"pipeline cannot be retried"),wI(!r.destroyed),this.abort=A,this.context=t}onHeaders(A,t,r){let{opaque:n,handler:s,context:i}=this;if(A<200){if(this.onInfo){let a=this.responseHeaders==="raw"?YA.parseRawHeaders(t):YA.parseHeaders(t);this.onInfo({statusCode:A,headers:a})}return}this.res=new Da(r);let o;try{this.handler=null;let a=this.responseHeaders==="raw"?YA.parseRawHeaders(t):YA.parseHeaders(t);o=this.runInAsyncScope(s,null,{statusCode:A,headers:a,opaque:n,body:this.res,context:i})}catch(a){throw this.res.on("error",YA.nop),a}if(!o||typeof o.on!="function")throw new tm("expected Readable");o.on("data",a=>{let{ret:c,body:g}=this;!c.push(a)&&g.pause&&g.pause()}).on("error",a=>{let{ret:c}=this;YA.destroy(c,a)}).on("end",()=>{let{ret:a}=this;a.push(null)}).on("close",()=>{let{ret:a}=this;a._readableState.ended||YA.destroy(a,new ya)}),this.body=o}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;t.push(null)}onError(A){let{ret:t}=this;this.handler=null,YA.destroy(t,A)}};function im(e,A){try{let t=new ma(e,A);return this.dispatch({...e,body:t.req},t),t.ret}catch(t){return new em().destroy(t)}}pI.exports=im});var NI=f((WU,bI)=>{"use strict";var{InvalidArgumentError:ka,SocketError:om}=v(),{AsyncResource:am}=d("node:async_hooks"),mI=T(),{addSignal:cm,removeSignal:kI}=Or(),FI=d("node:assert"),Fa=class extends am{constructor(A,t){if(!A||typeof A!="object")throw new ka("invalid opts");if(typeof t!="function")throw new ka("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new ka("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=s||null,this.opaque=n||null,this.callback=t,this.abort=null,this.context=null,cm(this,r)}onConnect(A,t){if(this.reason){A(this.reason);return}FI(this.callback),this.abort=A,this.context=null}onHeaders(){throw new om("bad upgrade",null)}onUpgrade(A,t,r){FI(A===101);let{callback:n,opaque:s,context:i}=this;kI(this),this.callback=null;let o=this.responseHeaders==="raw"?mI.parseRawHeaders(t):mI.parseHeaders(t);this.runInAsyncScope(n,null,null,{headers:o,socket:r,opaque:s,context:i})}onError(A){let{callback:t,opaque:r}=this;kI(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:r})}))}};function RI(e,A){if(A===void 0)return new Promise((t,r)=>{RI.call(this,e,(n,s)=>n?r(n):t(s))});try{let t=new Fa(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}bI.exports=RI});var TI=f((OU,LI)=>{"use strict";var gm=d("node:assert"),{AsyncResource:Qm}=d("node:async_hooks"),{InvalidArgumentError:Ra,SocketError:Em}=v(),SI=T(),{addSignal:Bm,removeSignal:UI}=Or(),ba=class extends Qm{constructor(A,t){if(!A||typeof A!="object")throw new Ra("invalid opts");if(typeof t!="function")throw new Ra("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Ra("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=n||null,this.responseHeaders=s||null,this.callback=t,this.abort=null,Bm(this,r)}onConnect(A,t){if(this.reason){A(this.reason);return}gm(this.callback),this.abort=A,this.context=t}onHeaders(){throw new Em("bad connect",null)}onUpgrade(A,t,r){let{callback:n,opaque:s,context:i}=this;UI(this),this.callback=null;let o=t;o!=null&&(o=this.responseHeaders==="raw"?SI.parseRawHeaders(t):SI.parseHeaders(t)),this.runInAsyncScope(n,null,null,{statusCode:A,headers:o,socket:r,opaque:s,context:i})}onError(A){let{callback:t,opaque:r}=this;UI(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:r})}))}};function MI(e,A){if(A===void 0)return new Promise((t,r)=>{MI.call(this,e,(n,s)=>n?r(n):t(s))});try{let t=new ba(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}LI.exports=MI});var YI=f((PU,Kt)=>{"use strict";Kt.exports.request=BI();Kt.exports.stream=fI();Kt.exports.pipeline=DI();Kt.exports.upgrade=NI();Kt.exports.connect=TI()});var Sa=f((ZU,GI)=>{"use strict";var{UndiciError:Im}=v(),xI=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"),Na=class e extends Im{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}static[Symbol.hasInstance](A){return A&&A[xI]===!0}[xI]=!0};GI.exports={MockNotMatchedError:Na}});var zt=f((KU,JI)=>{"use strict";JI.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var Zr=f((zU,XI)=>{"use strict";var{MockNotMatchedError:et}=Sa(),{kDispatches:ls,kMockAgent:Cm,kOriginalDispatch:lm,kOrigin:um,kGetNetConnect:hm}=zt(),{buildURL:dm}=T(),{STATUS_CODES:fm}=d("node:http"),{types:{isPromise:wm}}=d("node:util");function ue(e,A){return typeof e=="string"?e===A:e instanceof RegExp?e.test(A):typeof e=="function"?e(A)===!0:!1}function HI(e){return Object.fromEntries(Object.entries(e).map(([A,t])=>[A.toLocaleLowerCase(),t]))}function VI(e,A){if(Array.isArray(e)){for(let t=0;t<e.length;t+=2)if(e[t].toLocaleLowerCase()===A.toLocaleLowerCase())return e[t+1];return}else return typeof e.get=="function"?e.get(A):HI(e)[A.toLocaleLowerCase()]}function La(e){let A=e.slice(),t=[];for(let r=0;r<A.length;r+=2)t.push([A[r],A[r+1]]);return Object.fromEntries(t)}function qI(e,A){if(typeof e.headers=="function")return Array.isArray(A)&&(A=La(A)),e.headers(A?HI(A):{});if(typeof e.headers>"u")return!0;if(typeof A!="object"||typeof e.headers!="object")return!1;for(let[t,r]of Object.entries(e.headers)){let n=VI(A,t);if(!ue(r,n))return!1}return!0}function vI(e){if(typeof e!="string")return e;let A=e.split("?");if(A.length!==2)return e;let t=new URLSearchParams(A.pop());return t.sort(),[...A,t.toString()].join("?")}function ym(e,{path:A,method:t,body:r,headers:n}){let s=ue(e.path,A),i=ue(e.method,t),o=typeof e.body<"u"?ue(e.body,r):!0,a=qI(e,n);return s&&i&&o&&a}function WI(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:typeof e=="object"?JSON.stringify(e):e.toString()}function OI(e,A){let t=A.query?dm(A.path,A.query):A.path,r=typeof t=="string"?vI(t):t,n=e.filter(({consumed:s})=>!s).filter(({path:s})=>ue(vI(s),r));if(n.length===0)throw new et(`Mock dispatch not matched for path '${r}'`);if(n=n.filter(({method:s})=>ue(s,A.method)),n.length===0)throw new et(`Mock dispatch not matched for method '${A.method}' on path '${r}'`);if(n=n.filter(({body:s})=>typeof s<"u"?ue(s,A.body):!0),n.length===0)throw new et(`Mock dispatch not matched for body '${A.body}' on path '${r}'`);if(n=n.filter(s=>qI(s,A.headers)),n.length===0){let s=typeof A.headers=="object"?JSON.stringify(A.headers):A.headers;throw new et(`Mock dispatch not matched for headers '${s}' on path '${r}'`)}return n[0]}function pm(e,A,t){let r={timesInvoked:0,times:1,persist:!1,consumed:!1},n=typeof t=="function"?{callback:t}:{...t},s={...r,...A,pending:!0,data:{error:null,...n}};return e.push(s),s}function Ua(e,A){let t=e.findIndex(r=>r.consumed?ym(r,A):!1);t!==-1&&e.splice(t,1)}function PI(e){let{path:A,method:t,body:r,headers:n,query:s}=e;return{path:A,method:t,body:r,headers:n,query:s}}function Ma(e){let A=Object.keys(e),t=[];for(let r=0;r<A.length;++r){let n=A[r],s=e[n],i=Buffer.from(`${n}`);if(Array.isArray(s))for(let o=0;o<s.length;++o)t.push(i,Buffer.from(`${s[o]}`));else t.push(i,Buffer.from(`${s}`))}return t}function ZI(e){return fm[e]||"unknown"}async function Dm(e){let A=[];for await(let t of e)A.push(t);return Buffer.concat(A).toString("utf8")}function KI(e,A){let t=PI(e),r=OI(this[ls],t);r.timesInvoked++,r.data.callback&&(r.data={...r.data,...r.data.callback(e)});let{data:{statusCode:n,data:s,headers:i,trailers:o,error:a},delay:c,persist:g}=r,{timesInvoked:Q,times:E}=r;if(r.consumed=!g&&Q>=E,r.pending=Q<E,a!==null)return Ua(this[ls],t),A.onError(a),!0;typeof c=="number"&&c>0?setTimeout(()=>{B(this[ls])},c):B(this[ls]);function B(l,u=s){let C=Array.isArray(e.headers)?La(e.headers):e.headers,h=typeof u=="function"?u({...e,headers:C}):u;if(wm(h)){h.then(eA=>B(l,eA));return}let D=WI(h),p=Ma(i),H=Ma(o);A.onConnect?.(eA=>A.onError(eA),null),A.onHeaders?.(n,p,I,ZI(n)),A.onData?.(Buffer.from(D)),A.onComplete?.(H),Ua(l,t)}function I(){}return!0}function mm(){let e=this[Cm],A=this[um],t=this[lm];return function(n,s){if(e.isMockActive)try{KI.call(this,n,s)}catch(i){if(i instanceof et){let o=e[hm]();if(o===!1)throw new et(`${i.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`);if(zI(o,A))t.call(this,n,s);else throw new et(`${i.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}else throw i}else t.call(this,n,s)}}function zI(e,A){let t=new URL(A);return e===!0?!0:!!(Array.isArray(e)&&e.some(r=>ue(r,t.host)))}function km(e){if(e){let{agent:A,...t}=e;return t}}XI.exports={getResponseData:WI,getMockDispatch:OI,addMockDispatch:pm,deleteMockDispatch:Ua,buildKey:PI,generateKeyValues:Ma,matchValue:ue,getResponse:Dm,getStatusText:ZI,mockDispatch:KI,buildMockDispatch:mm,checkNetConnect:zI,buildMockOptions:km,getHeaderByName:VI,buildHeadersFromArray:La}});var Ha=f((XU,va)=>{"use strict";var{getResponseData:Fm,buildKey:Rm,addMockDispatch:Ta}=Zr(),{kDispatches:us,kDispatchKey:hs,kDefaultHeaders:Ya,kDefaultTrailers:xa,kContentLength:Ga,kMockDispatch:ds}=zt(),{InvalidArgumentError:ne}=v(),{buildURL:bm}=T(),Xt=class{constructor(A){this[ds]=A}delay(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new ne("waitInMs must be a valid integer > 0");return this[ds].delay=A,this}persist(){return this[ds].persist=!0,this}times(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new ne("repeatTimes must be a valid integer > 0");return this[ds].times=A,this}},Ja=class{constructor(A,t){if(typeof A!="object")throw new ne("opts must be an object");if(typeof A.path>"u")throw new ne("opts.path must be defined");if(typeof A.method>"u"&&(A.method="GET"),typeof A.path=="string")if(A.query)A.path=bm(A.path,A.query);else{let r=new URL(A.path,"data://");A.path=r.pathname+r.search}typeof A.method=="string"&&(A.method=A.method.toUpperCase()),this[hs]=Rm(A),this[us]=t,this[Ya]={},this[xa]={},this[Ga]=!1}createMockScopeDispatchData({statusCode:A,data:t,responseOptions:r}){let n=Fm(t),s=this[Ga]?{"content-length":n.length}:{},i={...this[Ya],...s,...r.headers},o={...this[xa],...r.trailers};return{statusCode:A,data:t,headers:i,trailers:o}}validateReplyParameters(A){if(typeof A.statusCode>"u")throw new ne("statusCode must be defined");if(typeof A.responseOptions!="object"||A.responseOptions===null)throw new ne("responseOptions must be an object")}reply(A){if(typeof A=="function"){let s=o=>{let a=A(o);if(typeof a!="object"||a===null)throw new ne("reply options callback must return an object");let c={data:"",responseOptions:{},...a};return this.validateReplyParameters(c),{...this.createMockScopeDispatchData(c)}},i=Ta(this[us],this[hs],s);return new Xt(i)}let t={statusCode:A,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(t);let r=this.createMockScopeDispatchData(t),n=Ta(this[us],this[hs],r);return new Xt(n)}replyWithError(A){if(typeof A>"u")throw new ne("error must be defined");let t=Ta(this[us],this[hs],{error:A});return new Xt(t)}defaultReplyHeaders(A){if(typeof A>"u")throw new ne("headers must be defined");return this[Ya]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new ne("trailers must be defined");return this[xa]=A,this}replyContentLength(){return this[Ga]=!0,this}};va.exports.MockInterceptor=Ja;va.exports.MockScope=Xt});var Wa=f((_U,rC)=>{"use strict";var{promisify:Nm}=d("node:util"),Sm=Gt(),{buildMockDispatch:Um}=Zr(),{kDispatches:_I,kMockAgent:jI,kClose:$I,kOriginalClose:AC,kOrigin:eC,kOriginalDispatch:Mm,kConnected:Va}=zt(),{MockInterceptor:Lm}=Ha(),tC=X(),{InvalidArgumentError:Tm}=v(),qa=class extends Sm{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new Tm("Argument opts.agent must implement Agent");this[jI]=t.agent,this[eC]=A,this[_I]=[],this[Va]=1,this[Mm]=this.dispatch,this[AC]=this.close.bind(this),this.dispatch=Um.call(this),this.close=this[$I]}get[tC.kConnected](){return this[Va]}intercept(A){return new Lm(A,this[_I])}async[$I](){await Nm(this[AC])(),this[Va]=0,this[jI][tC.kClients].delete(this[eC])}};rC.exports=qa});var Za=f((jU,gC)=>{"use strict";var{promisify:Ym}=d("node:util"),xm=Jt(),{buildMockDispatch:Gm}=Zr(),{kDispatches:nC,kMockAgent:sC,kClose:iC,kOriginalClose:oC,kOrigin:aC,kOriginalDispatch:Jm,kConnected:Oa}=zt(),{MockInterceptor:vm}=Ha(),cC=X(),{InvalidArgumentError:Hm}=v(),Pa=class extends xm{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new Hm("Argument opts.agent must implement Agent");this[sC]=t.agent,this[aC]=A,this[nC]=[],this[Oa]=1,this[Jm]=this.dispatch,this[oC]=this.close.bind(this),this.dispatch=Gm.call(this),this.close=this[iC]}get[cC.kConnected](){return this[Oa]}intercept(A){return new vm(A,this[nC])}async[iC](){await Ym(this[oC])(),this[Oa]=0,this[sC][cC.kClients].delete(this[aC])}};gC.exports=Pa});var EC=f((AM,QC)=>{"use strict";var Vm={pronoun:"it",is:"is",was:"was",this:"this"},qm={pronoun:"they",is:"are",was:"were",this:"these"};QC.exports=class{constructor(A,t){this.singular=A,this.plural=t}pluralize(A){let t=A===1,r=t?Vm:qm,n=t?this.singular:this.plural;return{...r,count:A,noun:n}}}});var IC=f((tM,BC)=>{"use strict";var{Transform:Wm}=d("node:stream"),{Console:Om}=d("node:console"),Pm=process.versions.icu?"\u2705":"Y ",Zm=process.versions.icu?"\u274C":"N ";BC.exports=class{constructor({disableColors:A}={}){this.transform=new Wm({transform(t,r,n){n(null,t)}}),this.logger=new Om({stdout:this.transform,inspectOptions:{colors:!A&&!process.env.CI}})}format(A){let t=A.map(({method:r,path:n,data:{statusCode:s},persist:i,times:o,timesInvoked:a,origin:c})=>({Method:r,Origin:c,Path:n,"Status code":s,Persistent:i?Pm:Zm,Invocations:a,Remaining:i?1/0:o-a}));return this.logger.table(t),this.transform.read().toString()}}});var hC=f((rM,uC)=>{"use strict";var{kClients:tt}=X(),Km=vt(),{kAgent:Ka,kMockAgentSet:fs,kMockAgentGet:CC,kDispatches:za,kIsMockActive:ws,kNetConnect:rt,kGetNetConnect:zm,kOptions:ys,kFactory:ps}=zt(),Xm=Wa(),_m=Za(),{matchValue:jm,buildMockOptions:$m}=Zr(),{InvalidArgumentError:lC,UndiciError:Ak}=v(),ek=ur(),tk=EC(),rk=IC(),Xa=class extends ek{constructor(A){if(super(A),this[rt]=!0,this[ws]=!0,A?.agent&&typeof A.agent.dispatch!="function")throw new lC("Argument opts.agent must implement Agent");let t=A?.agent?A.agent:new Km(A);this[Ka]=t,this[tt]=t[tt],this[ys]=$m(A)}get(A){let t=this[CC](A);return t||(t=this[ps](A),this[fs](A,t)),t}dispatch(A,t){return this.get(A.origin),this[Ka].dispatch(A,t)}async close(){await this[Ka].close(),this[tt].clear()}deactivate(){this[ws]=!1}activate(){this[ws]=!0}enableNetConnect(A){if(typeof A=="string"||typeof A=="function"||A instanceof RegExp)Array.isArray(this[rt])?this[rt].push(A):this[rt]=[A];else if(typeof A>"u")this[rt]=!0;else throw new lC("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[rt]=!1}get isMockActive(){return this[ws]}[fs](A,t){this[tt].set(A,t)}[ps](A){let t=Object.assign({agent:this},this[ys]);return this[ys]&&this[ys].connections===1?new Xm(A,t):new _m(A,t)}[CC](A){let t=this[tt].get(A);if(t)return t;if(typeof A!="string"){let r=this[ps]("http://localhost:9999");return this[fs](A,r),r}for(let[r,n]of Array.from(this[tt]))if(n&&typeof r!="string"&&jm(r,A)){let s=this[ps](A);return this[fs](A,s),s[za]=n[za],s}}[zm](){return this[rt]}pendingInterceptors(){let A=this[tt];return Array.from(A.entries()).flatMap(([t,r])=>r[za].map(n=>({...n,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new rk}={}){let t=this.pendingInterceptors();if(t.length===0)return;let r=new tk("interceptor","interceptors").pluralize(t.length);throw new Ak(`
41
+ ${r.count} ${r.noun} ${r.is} pending:
42
+
43
+ ${A.format(t)}
44
+ `.trim())}};uC.exports=Xa});var Ds=f((nM,yC)=>{"use strict";var dC=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:nk}=v(),sk=vt();wC()===void 0&&fC(new sk);function fC(e){if(!e||typeof e.dispatch!="function")throw new nk("Argument agent must implement Agent");Object.defineProperty(globalThis,dC,{value:e,writable:!0,enumerable:!1,configurable:!1})}function wC(){return globalThis[dC]}yC.exports={setGlobalDispatcher:fC,getGlobalDispatcher:wC}});var ms=f((iM,pC)=>{"use strict";pC.exports=class{#A;constructor(A){if(typeof A!="object"||A===null)throw new TypeError("handler must be an object");this.#A=A}onConnect(...A){return this.#A.onConnect?.(...A)}onError(...A){return this.#A.onError?.(...A)}onUpgrade(...A){return this.#A.onUpgrade?.(...A)}onResponseStarted(...A){return this.#A.onResponseStarted?.(...A)}onHeaders(...A){return this.#A.onHeaders?.(...A)}onData(...A){return this.#A.onData?.(...A)}onComplete(...A){return this.#A.onComplete?.(...A)}onBodySent(...A){return this.#A.onBodySent?.(...A)}}});var mC=f((oM,DC)=>{"use strict";var ik=rs();DC.exports=e=>{let A=e?.maxRedirections;return t=>function(n,s){let{maxRedirections:i=A,...o}=n;if(!i)return t(n,s);let a=new ik(t,i,n,s);return t(o,a)}}});var FC=f((aM,kC)=>{"use strict";var ok=Is();kC.exports=e=>A=>function(r,n){return A(r,new ok({...r,retryOptions:{...e,...r.retryOptions}},{handler:n,dispatch:A}))}});var bC=f((cM,RC)=>{"use strict";var ak=T(),{InvalidArgumentError:ck,RequestAbortedError:gk}=v(),Qk=ms(),_a=class extends Qk{#A=1024*1024;#e=null;#t=!1;#s=!1;#n=0;#r=null;#i=null;constructor({maxSize:A},t){if(super(t),A!=null&&(!Number.isFinite(A)||A<1))throw new ck("maxSize must be a number greater than 0");this.#A=A??this.#A,this.#i=t}onConnect(A){this.#e=A,this.#i.onConnect(this.#o.bind(this))}#o(A){this.#s=!0,this.#r=A}onHeaders(A,t,r,n){let i=ak.parseHeaders(t)["content-length"];if(i!=null&&i>this.#A)throw new gk(`Response size (${i}) larger than maxSize (${this.#A})`);return this.#s?!0:this.#i.onHeaders(A,t,r,n)}onError(A){this.#t||(A=this.#r??A,this.#i.onError(A))}onData(A){return this.#n=this.#n+A.length,this.#n>=this.#A&&(this.#t=!0,this.#s?this.#i.onError(this.#r):this.#i.onComplete([])),!0}onComplete(A){if(!this.#t){if(this.#s){this.#i.onError(this.reason);return}this.#i.onComplete(A)}}};function Ek({maxSize:e}={maxSize:1024*1024}){return A=>function(r,n){let{dumpMaxSize:s=e}=r,i=new _a({maxSize:s},n);return A(r,i)}}RC.exports=Ek});var UC=f((gM,SC)=>{"use strict";var{isIP:Bk}=d("node:net"),{lookup:Ik}=d("node:dns"),Ck=ms(),{InvalidArgumentError:_t,InformationalError:lk}=v(),NC=Math.pow(2,31)-1,ja=class{#A=0;#e=0;#t=new Map;dualStack=!0;affinity=null;lookup=null;pick=null;constructor(A){this.#A=A.maxTTL,this.#e=A.maxItems,this.dualStack=A.dualStack,this.affinity=A.affinity,this.lookup=A.lookup??this.#s,this.pick=A.pick??this.#n}get full(){return this.#t.size===this.#e}runLookup(A,t,r){let n=this.#t.get(A.hostname);if(n==null&&this.full){r(null,A.origin);return}let s={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...t.dns,maxTTL:this.#A,maxItems:this.#e};if(n==null)this.lookup(A,s,(i,o)=>{if(i||o==null||o.length===0){r(i??new lk("No DNS entries found"));return}this.setRecords(A,o);let a=this.#t.get(A.hostname),c=this.pick(A,a,s.affinity),g;typeof c.port=="number"?g=`:${c.port}`:A.port!==""?g=`:${A.port}`:g="",r(null,`${A.protocol}//${c.family===6?`[${c.address}]`:c.address}${g}`)});else{let i=this.pick(A,n,s.affinity);if(i==null){this.#t.delete(A.hostname),this.runLookup(A,t,r);return}let o;typeof i.port=="number"?o=`:${i.port}`:A.port!==""?o=`:${A.port}`:o="",r(null,`${A.protocol}//${i.family===6?`[${i.address}]`:i.address}${o}`)}}#s(A,t,r){Ik(A.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(n,s)=>{if(n)return r(n);let i=new Map;for(let o of s)i.set(`${o.address}:${o.family}`,o);r(null,i.values())})}#n(A,t,r){let n=null,{records:s,offset:i}=t,o;if(this.dualStack?(r==null&&(i==null||i===NC?(t.offset=0,r=4):(t.offset++,r=(t.offset&1)===1?6:4)),s[r]!=null&&s[r].ips.length>0?o=s[r]:o=s[r===4?6:4]):o=s[r],o==null||o.ips.length===0)return n;o.offset==null||o.offset===NC?o.offset=0:o.offset++;let a=o.offset%o.ips.length;return n=o.ips[a]??null,n==null?n:Date.now()-n.timestamp>n.ttl?(o.ips.splice(a,1),this.pick(A,t,r)):n}setRecords(A,t){let r=Date.now(),n={records:{4:null,6:null}};for(let s of t){s.timestamp=r,typeof s.ttl=="number"?s.ttl=Math.min(s.ttl,this.#A):s.ttl=this.#A;let i=n.records[s.family]??{ips:[]};i.ips.push(s),n.records[s.family]=i}this.#t.set(A.hostname,n)}getHandler(A,t){return new $a(this,A,t)}},$a=class extends Ck{#A=null;#e=null;#t=null;#s=null;#n=null;constructor(A,{origin:t,handler:r,dispatch:n},s){super(r),this.#n=t,this.#s=r,this.#e={...s},this.#A=A,this.#t=n}onError(A){switch(A.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#A.dualStack){this.#A.runLookup(this.#n,this.#e,(t,r)=>{if(t)return this.#s.onError(t);let n={...this.#e,origin:r};this.#t(n,this)});return}this.#s.onError(A);return}case"ENOTFOUND":this.#A.deleteRecord(this.#n);default:this.#s.onError(A);break}}};SC.exports=e=>{if(e?.maxTTL!=null&&(typeof e?.maxTTL!="number"||e?.maxTTL<0))throw new _t("Invalid maxTTL. Must be a positive number");if(e?.maxItems!=null&&(typeof e?.maxItems!="number"||e?.maxItems<1))throw new _t("Invalid maxItems. Must be a positive number and greater than zero");if(e?.affinity!=null&&e?.affinity!==4&&e?.affinity!==6)throw new _t("Invalid affinity. Must be either 4 or 6");if(e?.dualStack!=null&&typeof e?.dualStack!="boolean")throw new _t("Invalid dualStack. Must be a boolean");if(e?.lookup!=null&&typeof e?.lookup!="function")throw new _t("Invalid lookup. Must be a function");if(e?.pick!=null&&typeof e?.pick!="function")throw new _t("Invalid pick. Must be a function");let A=e?.dualStack??!0,t;A?t=e?.affinity??null:t=e?.affinity??4;let r={maxTTL:e?.maxTTL??1e4,lookup:e?.lookup??null,pick:e?.pick??null,dualStack:A,affinity:t,maxItems:e?.maxItems??1/0},n=new ja(r);return s=>function(o,a){let c=o.origin.constructor===URL?o.origin:new URL(o.origin);return Bk(c.hostname)!==0?s(o,a):(n.runLookup(c,o,(g,Q)=>{if(g)return a.onError(g);let E=null;E={...o,servername:c.hostname,origin:Q,headers:{host:c.hostname,...o.headers}},s(E,n.getHandler({origin:c,dispatch:s,handler:a},o))}),!0)}}});var nt=f((QM,JC)=>{"use strict";var{kConstruct:uk}=X(),{kEnumerableProperty:jt}=T(),{iteratorMixin:hk,isValidHeaderName:Kr,isValidHeaderValue:LC}=yA(),{webidl:J}=cA(),Ac=d("node:assert"),ks=d("node:util"),sA=Symbol("headers map"),kA=Symbol("headers map sorted");function MC(e){return e===10||e===13||e===9||e===32}function TC(e){let A=0,t=e.length;for(;t>A&&MC(e.charCodeAt(t-1));)--t;for(;t>A&&MC(e.charCodeAt(A));)++A;return A===0&&t===e.length?e:e.substring(A,t)}function YC(e,A){if(Array.isArray(A))for(let t=0;t<A.length;++t){let r=A[t];if(r.length!==2)throw J.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${r.length}.`});ec(e,r[0],r[1])}else if(typeof A=="object"&&A!==null){let t=Object.keys(A);for(let r=0;r<t.length;++r)ec(e,t[r],A[t[r]])}else throw J.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}function ec(e,A,t){if(t=TC(t),Kr(A)){if(!LC(t))throw J.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw J.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"});if(GC(e)==="immutable")throw new TypeError("immutable");return tc(e).append(A,t,!1)}function xC(e,A){return e[0]<A[0]?-1:1}var Fs=class e{cookies=null;constructor(A){A instanceof e?(this[sA]=new Map(A[sA]),this[kA]=A[kA],this.cookies=A.cookies===null?null:[...A.cookies]):(this[sA]=new Map(A),this[kA]=null)}contains(A,t){return this[sA].has(t?A:A.toLowerCase())}clear(){this[sA].clear(),this[kA]=null,this.cookies=null}append(A,t,r){this[kA]=null;let n=r?A:A.toLowerCase(),s=this[sA].get(n);if(s){let i=n==="cookie"?"; ":", ";this[sA].set(n,{name:s.name,value:`${s.value}${i}${t}`})}else this[sA].set(n,{name:A,value:t});n==="set-cookie"&&(this.cookies??=[]).push(t)}set(A,t,r){this[kA]=null;let n=r?A:A.toLowerCase();n==="set-cookie"&&(this.cookies=[t]),this[sA].set(n,{name:A,value:t})}delete(A,t){this[kA]=null,t||(A=A.toLowerCase()),A==="set-cookie"&&(this.cookies=null),this[sA].delete(A)}get(A,t){return this[sA].get(t?A:A.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:A,1:{value:t}}of this[sA])yield[A,t]}get entries(){let A={};if(this[sA].size!==0)for(let{name:t,value:r}of this[sA].values())A[t]=r;return A}rawValues(){return this[sA].values()}get entriesList(){let A=[];if(this[sA].size!==0)for(let{0:t,1:{name:r,value:n}}of this[sA])if(t==="set-cookie")for(let s of this.cookies)A.push([r,s]);else A.push([r,n]);return A}toSortedArray(){let A=this[sA].size,t=new Array(A);if(A<=32){if(A===0)return t;let r=this[sA][Symbol.iterator](),n=r.next().value;t[0]=[n[0],n[1].value],Ac(n[1].value!==null);for(let s=1,i=0,o=0,a=0,c=0,g,Q;s<A;++s){for(Q=r.next().value,g=t[s]=[Q[0],Q[1].value],Ac(g[1]!==null),a=0,o=s;a<o;)c=a+(o-a>>1),t[c][0]<=g[0]?a=c+1:o=c;if(s!==c){for(i=s;i>a;)t[i]=t[--i];t[a]=g}}if(!r.next().done)throw new TypeError("Unreachable");return t}else{let r=0;for(let{0:n,1:{value:s}}of this[sA])t[r++]=[n,s],Ac(s!==null);return t.sort(xC)}}},PA=class e{#A;#e;constructor(A=void 0){J.util.markAsUncloneable(this),A!==uk&&(this.#e=new Fs,this.#A="none",A!==void 0&&(A=J.converters.HeadersInit(A,"Headers contructor","init"),YC(this,A)))}append(A,t){J.brandCheck(this,e),J.argumentLengthCheck(arguments,2,"Headers.append");let r="Headers.append";return A=J.converters.ByteString(A,r,"name"),t=J.converters.ByteString(t,r,"value"),ec(this,A,t)}delete(A){if(J.brandCheck(this,e),J.argumentLengthCheck(arguments,1,"Headers.delete"),A=J.converters.ByteString(A,"Headers.delete","name"),!Kr(A))throw J.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this.#A==="immutable")throw new TypeError("immutable");this.#e.contains(A,!1)&&this.#e.delete(A,!1)}get(A){J.brandCheck(this,e),J.argumentLengthCheck(arguments,1,"Headers.get");let t="Headers.get";if(A=J.converters.ByteString(A,t,"name"),!Kr(A))throw J.errors.invalidArgument({prefix:t,value:A,type:"header name"});return this.#e.get(A,!1)}has(A){J.brandCheck(this,e),J.argumentLengthCheck(arguments,1,"Headers.has");let t="Headers.has";if(A=J.converters.ByteString(A,t,"name"),!Kr(A))throw J.errors.invalidArgument({prefix:t,value:A,type:"header name"});return this.#e.contains(A,!1)}set(A,t){J.brandCheck(this,e),J.argumentLengthCheck(arguments,2,"Headers.set");let r="Headers.set";if(A=J.converters.ByteString(A,r,"name"),t=J.converters.ByteString(t,r,"value"),t=TC(t),Kr(A)){if(!LC(t))throw J.errors.invalidArgument({prefix:r,value:t,type:"header value"})}else throw J.errors.invalidArgument({prefix:r,value:A,type:"header name"});if(this.#A==="immutable")throw new TypeError("immutable");this.#e.set(A,t,!1)}getSetCookie(){J.brandCheck(this,e);let A=this.#e.cookies;return A?[...A]:[]}get[kA](){if(this.#e[kA])return this.#e[kA];let A=[],t=this.#e.toSortedArray(),r=this.#e.cookies;if(r===null||r.length===1)return this.#e[kA]=t;for(let n=0;n<t.length;++n){let{0:s,1:i}=t[n];if(s==="set-cookie")for(let o=0;o<r.length;++o)A.push([s,r[o]]);else A.push([s,i])}return this.#e[kA]=A}[ks.inspect.custom](A,t){return t.depth??=A,`Headers ${ks.formatWithOptions(t,this.#e.entries)}`}static getHeadersGuard(A){return A.#A}static setHeadersGuard(A,t){A.#A=t}static getHeadersList(A){return A.#e}static setHeadersList(A,t){A.#e=t}},{getHeadersGuard:GC,setHeadersGuard:dk,getHeadersList:tc,setHeadersList:fk}=PA;Reflect.deleteProperty(PA,"getHeadersGuard");Reflect.deleteProperty(PA,"setHeadersGuard");Reflect.deleteProperty(PA,"getHeadersList");Reflect.deleteProperty(PA,"setHeadersList");hk("Headers",PA,kA,0,1);Object.defineProperties(PA.prototype,{append:jt,delete:jt,get:jt,has:jt,set:jt,getSetCookie:jt,[Symbol.toStringTag]:{value:"Headers",configurable:!0},[ks.inspect.custom]:{enumerable:!1}});J.converters.HeadersInit=function(e,A,t){if(J.util.Type(e)==="Object"){let r=Reflect.get(e,Symbol.iterator);if(!ks.types.isProxy(e)&&r===PA.prototype.entries)try{return tc(e).entriesList}catch{}return typeof r=="function"?J.converters["sequence<sequence<ByteString>>"](e,A,t,r.bind(e)):J.converters["record<ByteString, ByteString>"](e,A,t)}throw J.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};JC.exports={fill:YC,compareHeaderName:xC,Headers:PA,HeadersList:Fs,getHeadersGuard:GC,setHeadersGuard:dk,setHeadersList:fk,getHeadersList:tc}});var Xr=f((EM,_C)=>{"use strict";var{Headers:OC,HeadersList:vC,fill:wk,getHeadersGuard:yk,setHeadersGuard:PC,setHeadersList:ZC}=nt(),{extractBody:HC,cloneBody:pk,mixinBody:Dk,hasFinalizationRegistry:KC,streamRegistry:zC,bodyUnusable:mk}=St(),rc=T(),VC=d("node:util"),{kEnumerableProperty:FA}=rc,{isValidReasonPhrase:kk,isCancelled:Fk,isAborted:Rk,isBlobLike:bk,serializeJavascriptValueToJSONString:Nk,isErrorLike:Sk,isomorphicEncode:Uk,environmentSettingsObject:Mk}=yA(),{redirectStatusSet:Lk,nullBodyStatus:Tk}=fr(),{kState:j,kHeaders:he}=pe(),{webidl:M}=cA(),{FormData:Yk}=kr(),{URLSerializer:qC}=lA(),{kConstruct:bs}=X(),nc=d("node:assert"),{types:xk}=d("node:util"),Gk=new TextEncoder("utf-8"),st=class e{static error(){return zr(Ns(),"immutable")}static json(A,t={}){M.argumentLengthCheck(arguments,1,"Response.json"),t!==null&&(t=M.converters.ResponseInit(t));let r=Gk.encode(Nk(A)),n=HC(r),s=zr($t({}),"response");return WC(s,t,{body:n[0],type:"application/json"}),s}static redirect(A,t=302){M.argumentLengthCheck(arguments,1,"Response.redirect"),A=M.converters.USVString(A),t=M.converters["unsigned short"](t);let r;try{r=new URL(A,Mk.settingsObject.baseUrl)}catch(i){throw new TypeError(`Failed to parse URL from ${A}`,{cause:i})}if(!Lk.has(t))throw new RangeError(`Invalid status code ${t}`);let n=zr($t({}),"immutable");n[j].status=t;let s=Uk(qC(r));return n[j].headersList.append("location",s,!0),n}constructor(A=null,t={}){if(M.util.markAsUncloneable(this),A===bs)return;A!==null&&(A=M.converters.BodyInit(A)),t=M.converters.ResponseInit(t),this[j]=$t({}),this[he]=new OC(bs),PC(this[he],"response"),ZC(this[he],this[j].headersList);let r=null;if(A!=null){let[n,s]=HC(A);r={body:n,type:s}}WC(this,t,r)}get type(){return M.brandCheck(this,e),this[j].type}get url(){M.brandCheck(this,e);let A=this[j].urlList,t=A[A.length-1]??null;return t===null?"":qC(t,!0)}get redirected(){return M.brandCheck(this,e),this[j].urlList.length>1}get status(){return M.brandCheck(this,e),this[j].status}get ok(){return M.brandCheck(this,e),this[j].status>=200&&this[j].status<=299}get statusText(){return M.brandCheck(this,e),this[j].statusText}get headers(){return M.brandCheck(this,e),this[he]}get body(){return M.brandCheck(this,e),this[j].body?this[j].body.stream:null}get bodyUsed(){return M.brandCheck(this,e),!!this[j].body&&rc.isDisturbed(this[j].body.stream)}clone(){if(M.brandCheck(this,e),mk(this))throw M.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=sc(this[j]);return KC&&this[j].body?.stream&&zC.register(this,new WeakRef(this[j].body.stream)),zr(A,yk(this[he]))}[VC.inspect.custom](A,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${VC.formatWithOptions(t,r)}`}};Dk(st);Object.defineProperties(st.prototype,{type:FA,url:FA,status:FA,ok:FA,redirected:FA,statusText:FA,headers:FA,clone:FA,body:FA,bodyUsed:FA,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(st,{json:FA,redirect:FA,error:FA});function sc(e){if(e.internalResponse)return XC(sc(e.internalResponse),e.type);let A=$t({...e,body:null});return e.body!=null&&(A.body=pk(A,e.body)),A}function $t(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e?.headersList?new vC(e?.headersList):new vC,urlList:e?.urlList?[...e.urlList]:[]}}function Ns(e){let A=Sk(e);return $t({type:"error",status:0,error:A?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function Jk(e){return e.type==="error"&&e.status===0}function Rs(e,A){return A={internalResponse:e,...A},new Proxy(e,{get(t,r){return r in A?A[r]:t[r]},set(t,r,n){return nc(!(r in A)),t[r]=n,!0}})}function XC(e,A){if(A==="basic")return Rs(e,{type:"basic",headersList:e.headersList});if(A==="cors")return Rs(e,{type:"cors",headersList:e.headersList});if(A==="opaque")return Rs(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(A==="opaqueredirect")return Rs(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});nc(!1)}function vk(e,A=null){return nc(Fk(e)),Rk(e)?Ns(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:A})):Ns(Object.assign(new DOMException("Request was cancelled."),{cause:A}))}function WC(e,A,t){if(A.status!==null&&(A.status<200||A.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in A&&A.statusText!=null&&!kk(String(A.statusText)))throw new TypeError("Invalid statusText");if("status"in A&&A.status!=null&&(e[j].status=A.status),"statusText"in A&&A.statusText!=null&&(e[j].statusText=A.statusText),"headers"in A&&A.headers!=null&&wk(e[he],A.headers),t){if(Tk.includes(e.status))throw M.errors.exception({header:"Response constructor",message:`Invalid response status code ${e.status}`});e[j].body=t.body,t.type!=null&&!e[j].headersList.contains("content-type",!0)&&e[j].headersList.append("content-type",t.type,!0)}}function zr(e,A){let t=new st(bs);return t[j]=e,t[he]=new OC(bs),ZC(t[he],e.headersList),PC(t[he],A),KC&&e.body?.stream&&zC.register(t,new WeakRef(e.body.stream)),t}M.converters.ReadableStream=M.interfaceConverter(ReadableStream);M.converters.FormData=M.interfaceConverter(Yk);M.converters.URLSearchParams=M.interfaceConverter(URLSearchParams);M.converters.XMLHttpRequestBodyInit=function(e,A,t){return typeof e=="string"?M.converters.USVString(e,A,t):bk(e)?M.converters.Blob(e,A,t,{strict:!1}):ArrayBuffer.isView(e)||xk.isArrayBuffer(e)?M.converters.BufferSource(e,A,t):rc.isFormDataLike(e)?M.converters.FormData(e,A,t,{strict:!1}):e instanceof URLSearchParams?M.converters.URLSearchParams(e,A,t):M.converters.DOMString(e,A,t)};M.converters.BodyInit=function(e,A,t){return e instanceof ReadableStream?M.converters.ReadableStream(e,A,t):e?.[Symbol.asyncIterator]?e:M.converters.XMLHttpRequestBodyInit(e,A,t)};M.converters.ResponseInit=M.dictionaryConverter([{key:"status",converter:M.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:M.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:M.converters.HeadersInit}]);_C.exports={isNetworkError:Jk,makeNetworkError:Ns,makeResponse:$t,makeAppropriateNetworkError:vk,filterResponse:XC,Response:st,cloneResponse:sc,fromInnerResponse:zr}});var el=f((BM,Al)=>{"use strict";var{kConnected:jC,kSize:$C}=X(),ic=class{constructor(A){this.value=A}deref(){return this.value[jC]===0&&this.value[$C]===0?void 0:this.value}},oc=class{constructor(A){this.finalizer=A}register(A,t){A.on&&A.on("disconnect",()=>{A[jC]===0&&A[$C]===0&&this.finalizer(t)})}unregister(A){}};Al.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")?(process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:ic,FinalizationRegistry:oc}):{WeakRef,FinalizationRegistry}}});var Ar=f((IM,ll)=>{"use strict";var{extractBody:Hk,mixinBody:Vk,cloneBody:qk,bodyUnusable:tl}=St(),{Headers:Ql,fill:Wk,HeadersList:Ls,setHeadersGuard:cc,getHeadersGuard:Ok,setHeadersList:El,getHeadersList:rl}=nt(),{FinalizationRegistry:Pk}=el()(),Us=T(),nl=d("node:util"),{isValidHTTPToken:Zk,sameOrigin:sl,environmentSettingsObject:Ss}=yA(),{forbiddenMethodsSet:Kk,corsSafeListedMethodsSet:zk,referrerPolicy:Xk,requestRedirect:_k,requestMode:jk,requestCredentials:$k,requestCache:AF,requestDuplex:eF}=fr(),{kEnumerableProperty:iA,normalizedMethodRecordsBase:tF,normalizedMethodRecords:rF}=Us,{kHeaders:RA,kSignal:Ms,kState:z,kDispatcher:ac}=pe(),{webidl:N}=cA(),{URLSerializer:nF}=lA(),{kConstruct:Ts}=X(),sF=d("node:assert"),{getMaxListeners:il,setMaxListeners:ol,getEventListeners:iF,defaultMaxListeners:al}=d("node:events"),oF=Symbol("abortController"),Bl=new Pk(({signal:e,abort:A})=>{e.removeEventListener("abort",A)}),Ys=new WeakMap;function cl(e){return A;function A(){let t=e.deref();if(t!==void 0){Bl.unregister(A),this.removeEventListener("abort",A),t.abort(this.reason);let r=Ys.get(t.signal);if(r!==void 0){if(r.size!==0){for(let n of r){let s=n.deref();s!==void 0&&s.abort(this.reason)}r.clear()}Ys.delete(t.signal)}}}}var gl=!1,Le=class e{constructor(A,t={}){if(N.util.markAsUncloneable(this),A===Ts)return;let r="Request constructor";N.argumentLengthCheck(arguments,1,r),A=N.converters.RequestInfo(A,r,"input"),t=N.converters.RequestInit(t,r,"init");let n=null,s=null,i=Ss.settingsObject.baseUrl,o=null;if(typeof A=="string"){this[ac]=t.dispatcher;let C;try{C=new URL(A,i)}catch(h){throw new TypeError("Failed to parse URL from "+A,{cause:h})}if(C.username||C.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A);n=xs({urlList:[C]}),s="cors"}else this[ac]=t.dispatcher||A[ac],sF(A instanceof e),n=A[z],o=A[Ms];let a=Ss.settingsObject.origin,c="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&sl(n.window,a)&&(c=n.window),t.window!=null)throw new TypeError(`'window' option '${c}' must be null`);"window"in t&&(c="no-window"),n=xs({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:Ss.settingsObject,window:c,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});let g=Object.keys(t).length!==0;if(g&&(n.mode==="navigate"&&(n.mode="same-origin"),n.reloadNavigation=!1,n.historyNavigation=!1,n.origin="client",n.referrer="client",n.referrerPolicy="",n.url=n.urlList[n.urlList.length-1],n.urlList=[n.url]),t.referrer!==void 0){let C=t.referrer;if(C==="")n.referrer="no-referrer";else{let h;try{h=new URL(C,i)}catch(D){throw new TypeError(`Referrer "${C}" is not a valid URL.`,{cause:D})}h.protocol==="about:"&&h.hostname==="client"||a&&!sl(h,Ss.settingsObject.baseUrl)?n.referrer="client":n.referrer=h}}t.referrerPolicy!==void 0&&(n.referrerPolicy=t.referrerPolicy);let Q;if(t.mode!==void 0?Q=t.mode:Q=s,Q==="navigate")throw N.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(Q!=null&&(n.mode=Q),t.credentials!==void 0&&(n.credentials=t.credentials),t.cache!==void 0&&(n.cache=t.cache),n.cache==="only-if-cached"&&n.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(n.redirect=t.redirect),t.integrity!=null&&(n.integrity=String(t.integrity)),t.keepalive!==void 0&&(n.keepalive=!!t.keepalive),t.method!==void 0){let C=t.method,h=rF[C];if(h!==void 0)n.method=h;else{if(!Zk(C))throw new TypeError(`'${C}' is not a valid HTTP method.`);let D=C.toUpperCase();if(Kk.has(D))throw new TypeError(`'${C}' HTTP method is unsupported.`);C=tF[D]??C,n.method=C}!gl&&n.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),gl=!0)}t.signal!==void 0&&(o=t.signal),this[z]=n;let E=new AbortController;if(this[Ms]=E.signal,o!=null){if(!o||typeof o.aborted!="boolean"||typeof o.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(o.aborted)E.abort(o.reason);else{this[oF]=E;let C=new WeakRef(E),h=cl(C);try{(typeof il=="function"&&il(o)===al||iF(o,"abort").length>=al)&&ol(1500,o)}catch{}Us.addAbortListener(o,h),Bl.register(E,{signal:o,abort:h},h)}}if(this[RA]=new Ql(Ts),El(this[RA],n.headersList),cc(this[RA],"request"),Q==="no-cors"){if(!zk.has(n.method))throw new TypeError(`'${n.method} is unsupported in no-cors mode.`);cc(this[RA],"request-no-cors")}if(g){let C=rl(this[RA]),h=t.headers!==void 0?t.headers:new Ls(C);if(C.clear(),h instanceof Ls){for(let{name:D,value:p}of h.rawValues())C.append(D,p,!1);C.cookies=h.cookies}else Wk(this[RA],h)}let B=A instanceof e?A[z].body:null;if((t.body!=null||B!=null)&&(n.method==="GET"||n.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let I=null;if(t.body!=null){let[C,h]=Hk(t.body,n.keepalive);I=C,h&&!rl(this[RA]).contains("content-type",!0)&&this[RA].append("content-type",h)}let l=I??B;if(l!=null&&l.source==null){if(I!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(n.mode!=="same-origin"&&n.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');n.useCORSPreflightFlag=!0}let u=l;if(I==null&&B!=null){if(tl(A))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let C=new TransformStream;B.stream.pipeThrough(C),u={source:B.source,length:B.length,stream:C.readable}}this[z].body=u}get method(){return N.brandCheck(this,e),this[z].method}get url(){return N.brandCheck(this,e),nF(this[z].url)}get headers(){return N.brandCheck(this,e),this[RA]}get destination(){return N.brandCheck(this,e),this[z].destination}get referrer(){return N.brandCheck(this,e),this[z].referrer==="no-referrer"?"":this[z].referrer==="client"?"about:client":this[z].referrer.toString()}get referrerPolicy(){return N.brandCheck(this,e),this[z].referrerPolicy}get mode(){return N.brandCheck(this,e),this[z].mode}get credentials(){return this[z].credentials}get cache(){return N.brandCheck(this,e),this[z].cache}get redirect(){return N.brandCheck(this,e),this[z].redirect}get integrity(){return N.brandCheck(this,e),this[z].integrity}get keepalive(){return N.brandCheck(this,e),this[z].keepalive}get isReloadNavigation(){return N.brandCheck(this,e),this[z].reloadNavigation}get isHistoryNavigation(){return N.brandCheck(this,e),this[z].historyNavigation}get signal(){return N.brandCheck(this,e),this[Ms]}get body(){return N.brandCheck(this,e),this[z].body?this[z].body.stream:null}get bodyUsed(){return N.brandCheck(this,e),!!this[z].body&&Us.isDisturbed(this[z].body.stream)}get duplex(){return N.brandCheck(this,e),"half"}clone(){if(N.brandCheck(this,e),tl(this))throw new TypeError("unusable");let A=Il(this[z]),t=new AbortController;if(this.signal.aborted)t.abort(this.signal.reason);else{let r=Ys.get(this.signal);r===void 0&&(r=new Set,Ys.set(this.signal,r));let n=new WeakRef(t);r.add(n),Us.addAbortListener(t.signal,cl(n))}return Cl(A,t.signal,Ok(this[RA]))}[nl.inspect.custom](A,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${nl.formatWithOptions(t,r)}`}};Vk(Le);function xs(e){return{method:e.method??"GET",localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??"",window:e.window??"client",keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??"all",initiator:e.initiator??"",destination:e.destination??"",priority:e.priority??null,origin:e.origin??"client",policyContainer:e.policyContainer??"client",referrer:e.referrer??"client",referrerPolicy:e.referrerPolicy??"",mode:e.mode??"no-cors",useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??"same-origin",useCredentials:e.useCredentials??!1,cache:e.cache??"default",redirect:e.redirect??"follow",integrity:e.integrity??"",cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??"",parserMetadata:e.parserMetadata??"",reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new Ls(e.headersList):new Ls}}function Il(e){let A=xs({...e,body:null});return e.body!=null&&(A.body=qk(A,e.body)),A}function Cl(e,A,t){let r=new Le(Ts);return r[z]=e,r[Ms]=A,r[RA]=new Ql(Ts),El(r[RA],e.headersList),cc(r[RA],t),r}Object.defineProperties(Le.prototype,{method:iA,url:iA,headers:iA,redirect:iA,clone:iA,signal:iA,duplex:iA,destination:iA,body:iA,bodyUsed:iA,isHistoryNavigation:iA,isReloadNavigation:iA,keepalive:iA,integrity:iA,cache:iA,credentials:iA,attribute:iA,referrerPolicy:iA,referrer:iA,mode:iA,[Symbol.toStringTag]:{value:"Request",configurable:!0}});N.converters.Request=N.interfaceConverter(Le);N.converters.RequestInfo=function(e,A,t){return typeof e=="string"?N.converters.USVString(e,A,t):e instanceof Le?N.converters.Request(e,A,t):N.converters.USVString(e,A,t)};N.converters.AbortSignal=N.interfaceConverter(AbortSignal);N.converters.RequestInit=N.dictionaryConverter([{key:"method",converter:N.converters.ByteString},{key:"headers",converter:N.converters.HeadersInit},{key:"body",converter:N.nullableConverter(N.converters.BodyInit)},{key:"referrer",converter:N.converters.USVString},{key:"referrerPolicy",converter:N.converters.DOMString,allowedValues:Xk},{key:"mode",converter:N.converters.DOMString,allowedValues:jk},{key:"credentials",converter:N.converters.DOMString,allowedValues:$k},{key:"cache",converter:N.converters.DOMString,allowedValues:AF},{key:"redirect",converter:N.converters.DOMString,allowedValues:_k},{key:"integrity",converter:N.converters.DOMString},{key:"keepalive",converter:N.converters.boolean},{key:"signal",converter:N.nullableConverter(e=>N.converters.AbortSignal(e,"RequestInit","signal",{strict:!1}))},{key:"window",converter:N.converters.any},{key:"duplex",converter:N.converters.DOMString,allowedValues:eF},{key:"dispatcher",converter:N.converters.any}]);ll.exports={Request:Le,makeRequest:xs,fromInnerRequest:Cl,cloneRequest:Il}});var jr=f((CM,Sl)=>{"use strict";var{makeNetworkError:W,makeAppropriateNetworkError:Gs,filterResponse:gc,makeResponse:Js,fromInnerResponse:aF}=Xr(),{HeadersList:ul}=nt(),{Request:cF,cloneRequest:gF}=Ar(),Te=d("node:zlib"),{bytesMatch:QF,makePolicyContainer:EF,clonePolicyContainer:BF,requestBadPort:IF,TAOCheck:CF,appendRequestOriginHeader:lF,responseLocationURL:uF,requestCurrentURL:se,setRequestReferrerPolicyOnRedirect:hF,tryUpgradeRequestToAPotentiallyTrustworthyURL:dF,createOpaqueTimingInfo:Cc,appendFetchMetadata:fF,corsCheck:wF,crossOriginResourcePolicyCheck:yF,determineRequestsReferrer:pF,coarsenedSharedCurrentTime:_r,createDeferredPromise:DF,isBlobLike:mF,sameOrigin:Ic,isCancelled:it,isAborted:hl,isErrorLike:kF,fullyReadBody:FF,readableStreamClose:RF,isomorphicEncode:vs,urlIsLocal:bF,urlIsHttpHttpsScheme:lc,urlHasHttpsScheme:NF,clampAndCoarsenConnectionTimingInfo:SF,simpleRangeHeaderValue:UF,buildContentRange:MF,createInflate:LF,extractMimeType:TF}=yA(),{kState:yl,kDispatcher:YF}=pe(),ot=d("node:assert"),{safelyExtractBody:uc,extractBody:dl}=St(),{redirectStatusSet:pl,nullBodyStatus:Dl,safeMethodsSet:xF,requestBodyHeader:GF,subresourceSet:JF}=fr(),vF=d("node:events"),{Readable:HF,pipeline:VF,finished:qF}=d("node:stream"),{addAbortListener:WF,isErrored:OF,isReadable:Hs,bufferToLowerCasedHeaderName:fl}=T(),{dataURLProcessor:PF,serializeAMimeType:ZF,minimizeSupportedMimeType:KF}=lA(),{getGlobalDispatcher:zF}=Ds(),{webidl:XF}=cA(),{STATUS_CODES:_F}=d("node:http"),jF=["GET","HEAD"],$F=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",Qc,Vs=class extends vF{constructor(A){super(),this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(A){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A))}abort(A){this.state==="ongoing"&&(this.state="aborted",A||(A=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A))}};function AR(e){ml(e,"fetch")}function eR(e,A=void 0){XF.argumentLengthCheck(arguments,1,"globalThis.fetch");let t=DF(),r;try{r=new cF(e,A)}catch(g){return t.reject(g),t.promise}let n=r[yl];if(r.signal.aborted)return Ec(t,n,null,r.signal.reason),t.promise;n.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(n.serviceWorkers="none");let i=null,o=!1,a=null;return WF(r.signal,()=>{o=!0,ot(a!=null),a.abort(r.signal.reason);let g=i?.deref();Ec(t,n,g,r.signal.reason)}),a=Fl({request:n,processResponseEndOfBody:AR,processResponse:g=>{if(!o){if(g.aborted){Ec(t,n,i,a.serializedAbortReason);return}if(g.type==="error"){t.reject(new TypeError("fetch failed",{cause:g.error}));return}i=new WeakRef(aF(g,"immutable")),t.resolve(i.deref()),t=null}},dispatcher:r[YF]}),t.promise}function ml(e,A="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let t=e.urlList[0],r=e.timingInfo,n=e.cacheState;lc(t)&&r!==null&&(e.timingAllowPassed||(r=Cc({startTime:r.startTime}),n=""),r.endTime=_r(),e.timingInfo=r,kl(r,t.href,A,globalThis,n))}var kl=performance.markResourceTiming;function Ec(e,A,t,r){if(e&&e.reject(r),A.body!=null&&Hs(A.body?.stream)&&A.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s}),t==null)return;let n=t[yl];n.body!=null&&Hs(n.body?.stream)&&n.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s})}function Fl({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:n,processResponseConsumeBody:s,useParallelQueue:i=!1,dispatcher:o=zF()}){ot(o);let a=null,c=!1;e.client!=null&&(a=e.client.globalObject,c=e.client.crossOriginIsolatedCapability);let g=_r(c),Q=Cc({startTime:g}),E={controller:new Vs(o),request:e,timingInfo:Q,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:s,processResponseEndOfBody:n,taskDestination:a,crossOriginIsolatedCapability:c};return ot(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=BF(e.client.policyContainer):e.policyContainer=EF()),e.headersList.contains("accept",!0)||e.headersList.append("accept","*/*",!0),e.headersList.contains("accept-language",!0)||e.headersList.append("accept-language","*",!0),e.priority,JF.has(e.destination),Rl(E).catch(B=>{E.controller.terminate(B)}),E.controller}async function Rl(e,A=!1){let t=e.request,r=null;if(t.localURLsOnly&&!bF(se(t))&&(r=W("local URLs only")),dF(t),IF(t)==="blocked"&&(r=W("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=pF(t)),r===null&&(r=await(async()=>{let s=se(t);return Ic(s,t.url)&&t.responseTainting==="basic"||s.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await wl(e)):t.mode==="same-origin"?W('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?W('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await wl(e)):lc(se(t))?(t.responseTainting="cors",await bl(e)):W("URL scheme must be a HTTP(S) scheme")})()),A)return r;r.status!==0&&!r.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?r=gc(r,"basic"):t.responseTainting==="cors"?r=gc(r,"cors"):t.responseTainting==="opaque"?r=gc(r,"opaque"):ot(!1));let n=r.status===0?r:r.internalResponse;if(n.urlList.length===0&&n.urlList.push(...t.urlList),t.timingAllowFailed||(r.timingAllowPassed=!0),r.type==="opaque"&&n.status===206&&n.rangeRequested&&!t.headers.contains("range",!0)&&(r=n=W()),r.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||Dl.includes(n.status))&&(n.body=null,e.controller.dump=!0),t.integrity){let s=o=>Bc(e,W(o));if(t.responseTainting==="opaque"||r.body==null){s(r.error);return}let i=o=>{if(!QF(o,t.integrity)){s("integrity mismatch");return}r.body=uc(o)[0],Bc(e,r)};await FF(r.body,i,s)}else Bc(e,r)}function wl(e){if(it(e)&&e.request.redirectCount===0)return Promise.resolve(Gs(e));let{request:A}=e,{protocol:t}=se(A);switch(t){case"about:":return Promise.resolve(W("about scheme is not supported"));case"blob:":{Qc||(Qc=d("node:buffer").resolveObjectURL);let r=se(A);if(r.search.length!==0)return Promise.resolve(W("NetworkError when attempting to fetch resource."));let n=Qc(r.toString());if(A.method!=="GET"||!mF(n))return Promise.resolve(W("invalid method"));let s=Js(),i=n.size,o=vs(`${i}`),a=n.type;if(A.headersList.contains("range",!0)){s.rangeRequested=!0;let c=A.headersList.get("range",!0),g=UF(c,!0);if(g==="failure")return Promise.resolve(W("failed to fetch the data URL"));let{rangeStartValue:Q,rangeEndValue:E}=g;if(Q===null)Q=i-E,E=Q+E-1;else{if(Q>=i)return Promise.resolve(W("Range start is greater than the blob's size."));(E===null||E>=i)&&(E=i-1)}let B=n.slice(Q,E,a),I=dl(B);s.body=I[0];let l=vs(`${B.size}`),u=MF(Q,E,i);s.status=206,s.statusText="Partial Content",s.headersList.set("content-length",l,!0),s.headersList.set("content-type",a,!0),s.headersList.set("content-range",u,!0)}else{let c=dl(n);s.statusText="OK",s.body=c[0],s.headersList.set("content-length",o,!0),s.headersList.set("content-type",a,!0)}return Promise.resolve(s)}case"data:":{let r=se(A),n=PF(r);if(n==="failure")return Promise.resolve(W("failed to fetch the data URL"));let s=ZF(n.mimeType);return Promise.resolve(Js({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:s}]],body:uc(n.body)[0]}))}case"file:":return Promise.resolve(W("not implemented... yet..."));case"http:":case"https:":return bl(e).catch(r=>W(r));default:return Promise.resolve(W("unknown scheme"))}}function tR(e,A){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(A))}function Bc(e,A){let t=e.timingInfo,r=()=>{let s=Date.now();e.request.destination==="document"&&(e.controller.fullTimingInfo=t),e.controller.reportTimingSteps=()=>{if(e.request.url.protocol!=="https:")return;t.endTime=s;let o=A.cacheState,a=A.bodyInfo;A.timingAllowPassed||(t=Cc(t),o="");let c=0;if(e.request.mode!=="navigator"||!A.hasCrossOriginRedirects){c=A.status;let g=TF(A.headersList);g!=="failure"&&(a.contentType=KF(g))}e.request.initiatorType!=null&&kl(t,e.request.url.href,e.request.initiatorType,globalThis,o,a,c)};let i=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(A)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>i())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(A),e.processResponse=null});let n=A.type==="error"?A:A.internalResponse??A;n.body==null?r():qF(n.body.stream,()=>{r()})}async function bl(e){let A=e.request,t=null,r=null,n=e.timingInfo;if(A.serviceWorkers,t===null){if(A.redirect==="follow"&&(A.serviceWorkers="none"),r=t=await Nl(e),A.responseTainting==="cors"&&wF(A,t)==="failure")return W("cors failure");CF(A,t)==="failure"&&(A.timingAllowFailed=!0)}return(A.responseTainting==="opaque"||t.type==="opaque")&&yF(A.origin,A.client,A.destination,r)==="blocked"?W("blocked"):(pl.has(r.status)&&(A.redirect!=="manual"&&e.controller.connection.destroy(void 0,!1),A.redirect==="error"?t=W("unexpected redirect"):A.redirect==="manual"?t=r:A.redirect==="follow"?t=await rR(e,t):ot(!1)),t.timingInfo=n,t)}function rR(e,A){let t=e.request,r=A.internalResponse?A.internalResponse:A,n;try{if(n=uF(r,se(t).hash),n==null)return A}catch(i){return Promise.resolve(W(i))}if(!lc(n))return Promise.resolve(W("URL scheme must be a HTTP(S) scheme"));if(t.redirectCount===20)return Promise.resolve(W("redirect count exceeded"));if(t.redirectCount+=1,t.mode==="cors"&&(n.username||n.password)&&!Ic(t,n))return Promise.resolve(W('cross origin not allowed for request mode "cors"'));if(t.responseTainting==="cors"&&(n.username||n.password))return Promise.resolve(W('URL cannot contain credentials for request mode "cors"'));if(r.status!==303&&t.body!=null&&t.body.source==null)return Promise.resolve(W());if([301,302].includes(r.status)&&t.method==="POST"||r.status===303&&!jF.includes(t.method)){t.method="GET",t.body=null;for(let i of GF)t.headersList.delete(i)}Ic(se(t),n)||(t.headersList.delete("authorization",!0),t.headersList.delete("proxy-authorization",!0),t.headersList.delete("cookie",!0),t.headersList.delete("host",!0)),t.body!=null&&(ot(t.body.source!=null),t.body=uc(t.body.source)[0]);let s=e.timingInfo;return s.redirectEndTime=s.postRedirectStartTime=_r(e.crossOriginIsolatedCapability),s.redirectStartTime===0&&(s.redirectStartTime=s.startTime),t.urlList.push(n),hF(t,r),Rl(e,!0)}async function Nl(e,A=!1,t=!1){let r=e.request,n=null,s=null,i=null,o=null,a=!1;r.window==="no-window"&&r.redirect==="error"?(n=e,s=r):(s=gF(r),n={...e},n.request=s);let c=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic",g=s.body?s.body.length:null,Q=null;if(s.body==null&&["POST","PUT"].includes(s.method)&&(Q="0"),g!=null&&(Q=vs(`${g}`)),Q!=null&&s.headersList.append("content-length",Q,!0),g!=null&&s.keepalive,s.referrer instanceof URL&&s.headersList.append("referer",vs(s.referrer.href),!0),lF(s),fF(s),s.headersList.contains("user-agent",!0)||s.headersList.append("user-agent",$F),s.cache==="default"&&(s.headersList.contains("if-modified-since",!0)||s.headersList.contains("if-none-match",!0)||s.headersList.contains("if-unmodified-since",!0)||s.headersList.contains("if-match",!0)||s.headersList.contains("if-range",!0))&&(s.cache="no-store"),s.cache==="no-cache"&&!s.preventNoCacheCacheControlHeaderModification&&!s.headersList.contains("cache-control",!0)&&s.headersList.append("cache-control","max-age=0",!0),(s.cache==="no-store"||s.cache==="reload")&&(s.headersList.contains("pragma",!0)||s.headersList.append("pragma","no-cache",!0),s.headersList.contains("cache-control",!0)||s.headersList.append("cache-control","no-cache",!0)),s.headersList.contains("range",!0)&&s.headersList.append("accept-encoding","identity",!0),s.headersList.contains("accept-encoding",!0)||(NF(se(s))?s.headersList.append("accept-encoding","br, gzip, deflate",!0):s.headersList.append("accept-encoding","gzip, deflate",!0)),s.headersList.delete("host",!0),o==null&&(s.cache="no-store"),s.cache!=="no-store"&&s.cache,i==null){if(s.cache==="only-if-cached")return W("only if cached");let E=await nR(n,c,t);!xF.has(s.method)&&E.status>=200&&E.status<=399,a&&E.status,i==null&&(i=E)}if(i.urlList=[...s.urlList],s.headersList.contains("range",!0)&&(i.rangeRequested=!0),i.requestIncludesCredentials=c,i.status===407)return r.window==="no-window"?W():it(e)?Gs(e):W("proxy authentication required");if(i.status===421&&!t&&(r.body==null||r.body.source!=null)){if(it(e))return Gs(e);e.controller.connection.destroy(),i=await Nl(e,A,!0)}return i}async function nR(e,A=!1,t=!1){ot(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(I,l=!0){this.destroyed||(this.destroyed=!0,l&&this.abort?.(I??new DOMException("The operation was aborted.","AbortError")))}};let r=e.request,n=null,s=e.timingInfo;null==null&&(r.cache="no-store");let o=t?"yes":"no";r.mode;let a=null;if(r.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(r.body!=null){let I=async function*(C){it(e)||(yield C,e.processRequestBodyChunkLength?.(C.byteLength))},l=()=>{it(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},u=C=>{it(e)||(C.name==="AbortError"?e.controller.abort():e.controller.terminate(C))};a=(async function*(){try{for await(let C of r.body.stream)yield*I(C);l()}catch(C){u(C)}})()}try{let{body:I,status:l,statusText:u,headersList:C,socket:h}=await B({body:a});if(h)n=Js({status:l,statusText:u,headersList:C,socket:h});else{let D=I[Symbol.asyncIterator]();e.controller.next=()=>D.next(),n=Js({status:l,statusText:u,headersList:C})}}catch(I){return I.name==="AbortError"?(e.controller.connection.destroy(),Gs(e,I)):W(I)}let c=async()=>{await e.controller.resume()},g=I=>{it(e)||e.controller.abort(I)},Q=new ReadableStream({async start(I){e.controller.controller=I},async pull(I){await c(I)},async cancel(I){await g(I)},type:"bytes"});n.body={stream:Q,source:null,length:null},e.controller.onAborted=E,e.controller.on("terminated",E),e.controller.resume=async()=>{for(;;){let I,l;try{let{done:C,value:h}=await e.controller.next();if(hl(e))break;I=C?void 0:h}catch(C){e.controller.ended&&!s.encodedBodySize?I=void 0:(I=C,l=!0)}if(I===void 0){RF(e.controller.controller),tR(e,n);return}if(s.decodedBodySize+=I?.byteLength??0,l){e.controller.terminate(I);return}let u=new Uint8Array(I);if(u.byteLength&&e.controller.controller.enqueue(u),OF(Q)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function E(I){hl(e)?(n.aborted=!0,Hs(Q)&&e.controller.controller.error(e.controller.serializedAbortReason)):Hs(Q)&&e.controller.controller.error(new TypeError("terminated",{cause:kF(I)?I:void 0})),e.controller.connection.destroy()}return n;function B({body:I}){let l=se(r),u=e.controller.dispatcher;return new Promise((C,h)=>u.dispatch({path:l.pathname+l.search,origin:l.origin,method:r.method,body:u.isMockActive?r.body&&(r.body.source||r.body.stream):I,headers:r.headersList.entries,maxRedirections:0,upgrade:r.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(D){let{connection:p}=e.controller;s.finalConnectionTimingInfo=SF(void 0,s.postRedirectStartTime,e.crossOriginIsolatedCapability),p.destroyed?D(new DOMException("The operation was aborted.","AbortError")):(e.controller.on("terminated",D),this.abort=p.abort=D),s.finalNetworkRequestStartTime=_r(e.crossOriginIsolatedCapability)},onResponseStarted(){s.finalNetworkResponseStartTime=_r(e.crossOriginIsolatedCapability)},onHeaders(D,p,H,eA){if(D<200)return;let $="",zA=new ul;for(let CA=0;CA<p.length;CA+=2)zA.append(fl(p[CA]),p[CA+1].toString("latin1"),!0);$=zA.get("location",!0),this.body=new HF({read:H});let oe=[],Bt=$&&r.redirect==="follow"&&pl.has(D);if(r.method!=="HEAD"&&r.method!=="CONNECT"&&!Dl.includes(D)&&!Bt){let CA=zA.get("content-encoding",!0),It=CA?CA.toLowerCase().split(","):[],Ct=5;if(It.length>Ct)return h(new Error(`too many content-encodings in response: ${It.length}, maximum allowed is ${Ct}`)),!0;for(let li=It.length-1;li>=0;--li){let hn=It[li].trim();if(hn==="x-gzip"||hn==="gzip")oe.push(Te.createGunzip({flush:Te.constants.Z_SYNC_FLUSH,finishFlush:Te.constants.Z_SYNC_FLUSH}));else if(hn==="deflate")oe.push(LF({flush:Te.constants.Z_SYNC_FLUSH,finishFlush:Te.constants.Z_SYNC_FLUSH}));else if(hn==="br")oe.push(Te.createBrotliDecompress({flush:Te.constants.BROTLI_OPERATION_FLUSH,finishFlush:Te.constants.BROTLI_OPERATION_FLUSH}));else{oe.length=0;break}}}let ye=this.onError.bind(this);return C({status:D,statusText:eA,headersList:zA,body:oe.length?VF(this.body,...oe,CA=>{CA&&this.onError(CA)}).on("error",ye):this.body.on("error",ye)}),!0},onData(D){if(e.controller.dump)return;let p=D;return s.encodedBodySize+=p.byteLength,this.body.push(p)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.onAborted&&e.controller.off("terminated",e.controller.onAborted),e.controller.ended=!0,this.body.push(null)},onError(D){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(D),e.controller.terminate(D),h(D)},onUpgrade(D,p,H){if(D!==101)return;let eA=new ul;for(let $=0;$<p.length;$+=2)eA.append(fl(p[$]),p[$+1].toString("latin1"),!0);return C({status:D,statusText:_F[D],headersList:eA,socket:H}),!0}}))}}Sl.exports={fetch:eR,Fetch:Vs,fetching:Fl,finalizeAndReportTiming:ml}});var hc=f((lM,Ul)=>{"use strict";Ul.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var Ll=f((uM,Ml)=>{"use strict";var{webidl:bA}=cA(),qs=Symbol("ProgressEvent state"),dc=class e extends Event{constructor(A,t={}){A=bA.converters.DOMString(A,"ProgressEvent constructor","type"),t=bA.converters.ProgressEventInit(t??{}),super(A,t),this[qs]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return bA.brandCheck(this,e),this[qs].lengthComputable}get loaded(){return bA.brandCheck(this,e),this[qs].loaded}get total(){return bA.brandCheck(this,e),this[qs].total}};bA.converters.ProgressEventInit=bA.dictionaryConverter([{key:"lengthComputable",converter:bA.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:bA.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:bA.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:bA.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:bA.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:bA.converters.boolean,defaultValue:()=>!1}]);Ml.exports={ProgressEvent:dc}});var Yl=f((hM,Tl)=>{"use strict";function sR(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}Tl.exports={getEncoding:sR}});var Wl=f((dM,ql)=>{"use strict";var{kState:er,kError:fc,kResult:xl,kAborted:$r,kLastProgressEventFired:wc}=hc(),{ProgressEvent:iR}=Ll(),{getEncoding:Gl}=Yl(),{serializeAMimeType:oR,parseMIMEType:Jl}=lA(),{types:aR}=d("node:util"),{StringDecoder:vl}=d("string_decoder"),{btoa:Hl}=d("node:buffer"),cR={enumerable:!0,writable:!1,configurable:!1};function gR(e,A,t,r){if(e[er]==="loading")throw new DOMException("Invalid state","InvalidStateError");e[er]="loading",e[xl]=null,e[fc]=null;let s=A.stream().getReader(),i=[],o=s.read(),a=!0;(async()=>{for(;!e[$r];)try{let{done:c,value:g}=await o;if(a&&!e[$r]&&queueMicrotask(()=>{Ye("loadstart",e)}),a=!1,!c&&aR.isUint8Array(g))i.push(g),(e[wc]===void 0||Date.now()-e[wc]>=50)&&!e[$r]&&(e[wc]=Date.now(),queueMicrotask(()=>{Ye("progress",e)})),o=s.read();else if(c){queueMicrotask(()=>{e[er]="done";try{let Q=QR(i,t,A.type,r);if(e[$r])return;e[xl]=Q,Ye("load",e)}catch(Q){e[fc]=Q,Ye("error",e)}e[er]!=="loading"&&Ye("loadend",e)});break}}catch(c){if(e[$r])return;queueMicrotask(()=>{e[er]="done",e[fc]=c,Ye("error",e),e[er]!=="loading"&&Ye("loadend",e)});break}})()}function Ye(e,A){let t=new iR(e,{bubbles:!1,cancelable:!1});A.dispatchEvent(t)}function QR(e,A,t,r){switch(A){case"DataURL":{let n="data:",s=Jl(t||"application/octet-stream");s!=="failure"&&(n+=oR(s)),n+=";base64,";let i=new vl("latin1");for(let o of e)n+=Hl(i.write(o));return n+=Hl(i.end()),n}case"Text":{let n="failure";if(r&&(n=Gl(r)),n==="failure"&&t){let s=Jl(t);s!=="failure"&&(n=Gl(s.parameters.get("charset")))}return n==="failure"&&(n="UTF-8"),ER(e,n)}case"ArrayBuffer":return Vl(e).buffer;case"BinaryString":{let n="",s=new vl("latin1");for(let i of e)n+=s.write(i);return n+=s.end(),n}}}function ER(e,A){let t=Vl(e),r=BR(t),n=0;r!==null&&(A=r,n=r==="UTF-8"?3:2);let s=t.slice(n);return new TextDecoder(A).decode(s)}function BR(e){let[A,t,r]=e;return A===239&&t===187&&r===191?"UTF-8":A===254&&t===255?"UTF-16BE":A===255&&t===254?"UTF-16LE":null}function Vl(e){let A=e.reduce((r,n)=>r+n.byteLength,0),t=0;return e.reduce((r,n)=>(r.set(n,t),t+=n.byteLength,r),new Uint8Array(A))}ql.exports={staticPropertyDescriptors:cR,readOperation:gR,fireAProgressEvent:Ye}});var Kl=f((fM,Zl)=>{"use strict";var{staticPropertyDescriptors:tr,readOperation:Ws,fireAProgressEvent:Ol}=Wl(),{kState:at,kError:Pl,kResult:Os,kEvents:V,kAborted:IR}=hc(),{webidl:P}=cA(),{kEnumerableProperty:dA}=T(),ZA=class e extends EventTarget{constructor(){super(),this[at]="empty",this[Os]=null,this[Pl]=null,this[V]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),A=P.converters.Blob(A,{strict:!1}),Ws(this,A,"ArrayBuffer")}readAsBinaryString(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),A=P.converters.Blob(A,{strict:!1}),Ws(this,A,"BinaryString")}readAsText(A,t=void 0){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,"FileReader.readAsText"),A=P.converters.Blob(A,{strict:!1}),t!==void 0&&(t=P.converters.DOMString(t,"FileReader.readAsText","encoding")),Ws(this,A,"Text",t)}readAsDataURL(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),A=P.converters.Blob(A,{strict:!1}),Ws(this,A,"DataURL")}abort(){if(this[at]==="empty"||this[at]==="done"){this[Os]=null;return}this[at]==="loading"&&(this[at]="done",this[Os]=null),this[IR]=!0,Ol("abort",this),this[at]!=="loading"&&Ol("loadend",this)}get readyState(){switch(P.brandCheck(this,e),this[at]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return P.brandCheck(this,e),this[Os]}get error(){return P.brandCheck(this,e),this[Pl]}get onloadend(){return P.brandCheck(this,e),this[V].loadend}set onloadend(A){P.brandCheck(this,e),this[V].loadend&&this.removeEventListener("loadend",this[V].loadend),typeof A=="function"?(this[V].loadend=A,this.addEventListener("loadend",A)):this[V].loadend=null}get onerror(){return P.brandCheck(this,e),this[V].error}set onerror(A){P.brandCheck(this,e),this[V].error&&this.removeEventListener("error",this[V].error),typeof A=="function"?(this[V].error=A,this.addEventListener("error",A)):this[V].error=null}get onloadstart(){return P.brandCheck(this,e),this[V].loadstart}set onloadstart(A){P.brandCheck(this,e),this[V].loadstart&&this.removeEventListener("loadstart",this[V].loadstart),typeof A=="function"?(this[V].loadstart=A,this.addEventListener("loadstart",A)):this[V].loadstart=null}get onprogress(){return P.brandCheck(this,e),this[V].progress}set onprogress(A){P.brandCheck(this,e),this[V].progress&&this.removeEventListener("progress",this[V].progress),typeof A=="function"?(this[V].progress=A,this.addEventListener("progress",A)):this[V].progress=null}get onload(){return P.brandCheck(this,e),this[V].load}set onload(A){P.brandCheck(this,e),this[V].load&&this.removeEventListener("load",this[V].load),typeof A=="function"?(this[V].load=A,this.addEventListener("load",A)):this[V].load=null}get onabort(){return P.brandCheck(this,e),this[V].abort}set onabort(A){P.brandCheck(this,e),this[V].abort&&this.removeEventListener("abort",this[V].abort),typeof A=="function"?(this[V].abort=A,this.addEventListener("abort",A)):this[V].abort=null}};ZA.EMPTY=ZA.prototype.EMPTY=0;ZA.LOADING=ZA.prototype.LOADING=1;ZA.DONE=ZA.prototype.DONE=2;Object.defineProperties(ZA.prototype,{EMPTY:tr,LOADING:tr,DONE:tr,readAsArrayBuffer:dA,readAsBinaryString:dA,readAsText:dA,readAsDataURL:dA,abort:dA,readyState:dA,result:dA,error:dA,onloadstart:dA,onprogress:dA,onload:dA,onabort:dA,onerror:dA,onloadend:dA,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(ZA,{EMPTY:tr,LOADING:tr,DONE:tr});Zl.exports={FileReader:ZA}});var Ps=f((wM,zl)=>{"use strict";zl.exports={kConstruct:X().kConstruct}});var jl=f((yM,_l)=>{"use strict";var CR=d("node:assert"),{URLSerializer:Xl}=lA(),{isValidHeaderName:lR}=yA();function uR(e,A,t=!1){let r=Xl(e,t),n=Xl(A,t);return r===n}function hR(e){CR(e!==null);let A=[];for(let t of e.split(","))t=t.trim(),lR(t)&&A.push(t);return A}_l.exports={urlEquals:uR,getFieldValues:hR}});var eu=f((pM,Au)=>{"use strict";var{kConstruct:dR}=Ps(),{urlEquals:fR,getFieldValues:yc}=jl(),{kEnumerableProperty:ct,isDisturbed:wR}=T(),{webidl:k}=cA(),{Response:yR,cloneResponse:pR,fromInnerResponse:DR}=Xr(),{Request:de,fromInnerRequest:mR}=Ar(),{kState:KA}=pe(),{fetching:kR}=jr(),{urlIsHttpHttpsScheme:Zs,createDeferredPromise:rr,readAllBytes:FR}=yA(),pc=d("node:assert"),Ks=class e{#A;constructor(){arguments[0]!==dR&&k.illegalConstructor(),k.util.markAsUncloneable(this),this.#A=arguments[1]}async match(A,t={}){k.brandCheck(this,e);let r="Cache.match";k.argumentLengthCheck(arguments,1,r),A=k.converters.RequestInfo(A,r,"request"),t=k.converters.CacheQueryOptions(t,r,"options");let n=this.#n(A,t,1);if(n.length!==0)return n[0]}async matchAll(A=void 0,t={}){k.brandCheck(this,e);let r="Cache.matchAll";return A!==void 0&&(A=k.converters.RequestInfo(A,r,"request")),t=k.converters.CacheQueryOptions(t,r,"options"),this.#n(A,t)}async add(A){k.brandCheck(this,e);let t="Cache.add";k.argumentLengthCheck(arguments,1,t),A=k.converters.RequestInfo(A,t,"request");let r=[A];return await this.addAll(r)}async addAll(A){k.brandCheck(this,e);let t="Cache.addAll";k.argumentLengthCheck(arguments,1,t);let r=[],n=[];for(let E of A){if(E===void 0)throw k.errors.conversionFailed({prefix:t,argument:"Argument 1",types:["undefined is not allowed"]});if(E=k.converters.RequestInfo(E),typeof E=="string")continue;let B=E[KA];if(!Zs(B.url)||B.method!=="GET")throw k.errors.exception({header:t,message:"Expected http/s scheme when method is not GET."})}let s=[];for(let E of A){let B=new de(E)[KA];if(!Zs(B.url))throw k.errors.exception({header:t,message:"Expected http/s scheme."});B.initiator="fetch",B.destination="subresource",n.push(B);let I=rr();s.push(kR({request:B,processResponse(l){if(l.type==="error"||l.status===206||l.status<200||l.status>299)I.reject(k.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(l.headersList.contains("vary")){let u=yc(l.headersList.get("vary"));for(let C of u)if(C==="*"){I.reject(k.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let h of s)h.abort();return}}},processResponseEndOfBody(l){if(l.aborted){I.reject(new DOMException("aborted","AbortError"));return}I.resolve(l)}})),r.push(I.promise)}let o=await Promise.all(r),a=[],c=0;for(let E of o){let B={type:"put",request:n[c],response:E};a.push(B),c++}let g=rr(),Q=null;try{this.#e(a)}catch(E){Q=E}return queueMicrotask(()=>{Q===null?g.resolve(void 0):g.reject(Q)}),g.promise}async put(A,t){k.brandCheck(this,e);let r="Cache.put";k.argumentLengthCheck(arguments,2,r),A=k.converters.RequestInfo(A,r,"request"),t=k.converters.Response(t,r,"response");let n=null;if(A instanceof de?n=A[KA]:n=new de(A)[KA],!Zs(n.url)||n.method!=="GET")throw k.errors.exception({header:r,message:"Expected an http/s scheme when method is not GET"});let s=t[KA];if(s.status===206)throw k.errors.exception({header:r,message:"Got 206 status"});if(s.headersList.contains("vary")){let B=yc(s.headersList.get("vary"));for(let I of B)if(I==="*")throw k.errors.exception({header:r,message:"Got * vary field value"})}if(s.body&&(wR(s.body.stream)||s.body.stream.locked))throw k.errors.exception({header:r,message:"Response body is locked or disturbed"});let i=pR(s),o=rr();if(s.body!=null){let I=s.body.stream.getReader();FR(I).then(o.resolve,o.reject)}else o.resolve(void 0);let a=[],c={type:"put",request:n,response:i};a.push(c);let g=await o.promise;i.body!=null&&(i.body.source=g);let Q=rr(),E=null;try{this.#e(a)}catch(B){E=B}return queueMicrotask(()=>{E===null?Q.resolve():Q.reject(E)}),Q.promise}async delete(A,t={}){k.brandCheck(this,e);let r="Cache.delete";k.argumentLengthCheck(arguments,1,r),A=k.converters.RequestInfo(A,r,"request"),t=k.converters.CacheQueryOptions(t,r,"options");let n=null;if(A instanceof de){if(n=A[KA],n.method!=="GET"&&!t.ignoreMethod)return!1}else pc(typeof A=="string"),n=new de(A)[KA];let s=[],i={type:"delete",request:n,options:t};s.push(i);let o=rr(),a=null,c;try{c=this.#e(s)}catch(g){a=g}return queueMicrotask(()=>{a===null?o.resolve(!!c?.length):o.reject(a)}),o.promise}async keys(A=void 0,t={}){k.brandCheck(this,e);let r="Cache.keys";A!==void 0&&(A=k.converters.RequestInfo(A,r,"request")),t=k.converters.CacheQueryOptions(t,r,"options");let n=null;if(A!==void 0)if(A instanceof de){if(n=A[KA],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(n=new de(A)[KA]);let s=rr(),i=[];if(A===void 0)for(let o of this.#A)i.push(o[0]);else{let o=this.#t(n,t);for(let a of o)i.push(a[0])}return queueMicrotask(()=>{let o=[];for(let a of i){let c=mR(a,new AbortController().signal,"immutable");o.push(c)}s.resolve(Object.freeze(o))}),s.promise}#e(A){let t=this.#A,r=[...t],n=[],s=[];try{for(let i of A){if(i.type!=="delete"&&i.type!=="put")throw k.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(i.type==="delete"&&i.response!=null)throw k.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#t(i.request,i.options,n).length)throw new DOMException("???","InvalidStateError");let o;if(i.type==="delete"){if(o=this.#t(i.request,i.options),o.length===0)return[];for(let a of o){let c=t.indexOf(a);pc(c!==-1),t.splice(c,1)}}else if(i.type==="put"){if(i.response==null)throw k.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let a=i.request;if(!Zs(a.url))throw k.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(a.method!=="GET")throw k.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(i.options!=null)throw k.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});o=this.#t(i.request);for(let c of o){let g=t.indexOf(c);pc(g!==-1),t.splice(g,1)}t.push([i.request,i.response]),n.push([i.request,i.response])}s.push([i.request,i.response])}return s}catch(i){throw this.#A.length=0,this.#A=r,i}}#t(A,t,r){let n=[],s=r??this.#A;for(let i of s){let[o,a]=i;this.#s(A,o,a,t)&&n.push(i)}return n}#s(A,t,r=null,n){let s=new URL(A.url),i=new URL(t.url);if(n?.ignoreSearch&&(i.search="",s.search=""),!fR(s,i,!0))return!1;if(r==null||n?.ignoreVary||!r.headersList.contains("vary"))return!0;let o=yc(r.headersList.get("vary"));for(let a of o){if(a==="*")return!1;let c=t.headersList.get(a),g=A.headersList.get(a);if(c!==g)return!1}return!0}#n(A,t,r=1/0){let n=null;if(A!==void 0)if(A instanceof de){if(n=A[KA],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(n=new de(A)[KA]);let s=[];if(A===void 0)for(let o of this.#A)s.push(o[1]);else{let o=this.#t(n,t);for(let a of o)s.push(a[1])}let i=[];for(let o of s){let a=DR(o,"immutable");if(i.push(a.clone()),i.length>=r)break}return Object.freeze(i)}};Object.defineProperties(Ks.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:ct,matchAll:ct,add:ct,addAll:ct,put:ct,delete:ct,keys:ct});var $l=[{key:"ignoreSearch",converter:k.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:k.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:k.converters.boolean,defaultValue:()=>!1}];k.converters.CacheQueryOptions=k.dictionaryConverter($l);k.converters.MultiCacheQueryOptions=k.dictionaryConverter([...$l,{key:"cacheName",converter:k.converters.DOMString}]);k.converters.Response=k.interfaceConverter(yR);k.converters["sequence<RequestInfo>"]=k.sequenceConverter(k.converters.RequestInfo);Au.exports={Cache:Ks}});var ru=f((DM,tu)=>{"use strict";var{kConstruct:An}=Ps(),{Cache:zs}=eu(),{webidl:QA}=cA(),{kEnumerableProperty:en}=T(),Xs=class e{#A=new Map;constructor(){arguments[0]!==An&&QA.illegalConstructor(),QA.util.markAsUncloneable(this)}async match(A,t={}){if(QA.brandCheck(this,e),QA.argumentLengthCheck(arguments,1,"CacheStorage.match"),A=QA.converters.RequestInfo(A),t=QA.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#A.has(t.cacheName)){let r=this.#A.get(t.cacheName);return await new zs(An,r).match(A,t)}}else for(let r of this.#A.values()){let s=await new zs(An,r).match(A,t);if(s!==void 0)return s}}async has(A){QA.brandCheck(this,e);let t="CacheStorage.has";return QA.argumentLengthCheck(arguments,1,t),A=QA.converters.DOMString(A,t,"cacheName"),this.#A.has(A)}async open(A){QA.brandCheck(this,e);let t="CacheStorage.open";if(QA.argumentLengthCheck(arguments,1,t),A=QA.converters.DOMString(A,t,"cacheName"),this.#A.has(A)){let n=this.#A.get(A);return new zs(An,n)}let r=[];return this.#A.set(A,r),new zs(An,r)}async delete(A){QA.brandCheck(this,e);let t="CacheStorage.delete";return QA.argumentLengthCheck(arguments,1,t),A=QA.converters.DOMString(A,t,"cacheName"),this.#A.delete(A)}async keys(){return QA.brandCheck(this,e),[...this.#A.keys()]}};Object.defineProperties(Xs.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:en,has:en,open:en,delete:en,keys:en});tu.exports={CacheStorage:Xs}});var su=f((mM,nu)=>{"use strict";nu.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var kc=f((kM,cu)=>{"use strict";function RR(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>=0&&t<=8||t>=10&&t<=31||t===127)return!0}return!1}function Dc(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<33||t>126||t===34||t===40||t===41||t===60||t===62||t===64||t===44||t===59||t===58||t===92||t===47||t===91||t===93||t===63||t===61||t===123||t===125)throw new Error("Invalid cookie name")}}function mc(e){let A=e.length,t=0;if(e[0]==='"'){if(A===1||e[A-1]!=='"')throw new Error("Invalid cookie value");--A,++t}for(;t<A;){let r=e.charCodeAt(t++);if(r<33||r>126||r===34||r===44||r===59||r===92)throw new Error("Invalid cookie value")}}function ou(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<32||t>126||t===59)throw new Error("Invalid cookie path")}}function iu(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function bR(e){if(e===" ")return;if(e.length>255)throw new Error("Invalid cookie domain");let A=0;for(let t=0;t<e.length;++t){let r=e.charCodeAt(t);if(r===46){if(A===0)throw new Error("Invalid cookie domain");if(e.charCodeAt(t-1)===45)throw new Error("Invalid cookie domain");A=0;continue}if(A===0&&!iu(r))throw new Error("Invalid cookie domain");if(!iu(r)&&r!==45)throw new Error("Invalid cookie domain");if(++A>63)throw new Error("Invalid cookie domain")}if(A===0||e.charCodeAt(e.length-1)===45)throw new Error("Invalid cookie domain")}var NR=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SR=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],_s=Array(61).fill(0).map((e,A)=>A.toString().padStart(2,"0"));function au(e){return typeof e=="number"&&(e=new Date(e)),`${NR[e.getUTCDay()]}, ${_s[e.getUTCDate()]} ${SR[e.getUTCMonth()]} ${e.getUTCFullYear()} ${_s[e.getUTCHours()]}:${_s[e.getUTCMinutes()]}:${_s[e.getUTCSeconds()]} GMT`}function UR(e){if(e<0)throw new Error("Invalid cookie max-age")}function MR(e){if(e.name.length===0)return null;Dc(e.name),mc(e.value);let A=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&A.push("Secure"),e.httpOnly&&A.push("HttpOnly"),typeof e.maxAge=="number"&&(UR(e.maxAge),A.push(`Max-Age=${e.maxAge}`)),e.domain&&(bR(e.domain),A.push(`Domain=${e.domain}`)),e.path&&(ou(e.path),A.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&A.push(`Expires=${au(e.expires)}`),e.sameSite&&A.push(`SameSite=${e.sameSite}`);for(let t of e.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[r,...n]=t.split("="),s=r.trim(),i=n.join("=");Dc(s),mc(i),A.push(`${s}=${i}`)}return A.join("; ")}cu.exports={isCTLExcludingHtab:RR,validateCookieName:Dc,validateCookiePath:ou,validateCookieValue:mc,toIMFDate:au,stringify:MR}});var Qu=f((FM,gu)=>{"use strict";var{maxNameValuePairSize:LR,maxAttributeValueSize:TR}=su(),{isCTLExcludingHtab:YR}=kc(),{collectASequenceOfCodePointsFast:js}=lA(),xR=d("node:assert");function GR(e){if(YR(e))return null;let A="",t="",r="",n="";if(e.includes(";")){let s={position:0};A=js(";",e,s),t=e.slice(s.position)}else A=e;if(!A.includes("="))n=A;else{let s={position:0};r=js("=",A,s),n=A.slice(s.position+1)}return r=r.trim(),n=n.trim(),r.length+n.length>LR?null:{name:r,value:n,...nr(t)}}function nr(e,A={}){if(e.length===0)return A;xR(e[0]===";"),e=e.slice(1);let t="";e.includes(";")?(t=js(";",e,{position:0}),e=e.slice(t.length)):(t=e,e="");let r="",n="";if(t.includes("=")){let i={position:0};r=js("=",t,i),n=t.slice(i.position+1)}else r=t;if(r=r.trim(),n=n.trim(),n.length>TR)return nr(e,A);let s=r.toLowerCase();if(s==="expires"){let i=new Date(n);A.expires=i}else if(s==="max-age"){let i=n.charCodeAt(0);if((i<48||i>57)&&n[0]!=="-"||!/^\d+$/.test(n))return nr(e,A);let o=Number(n);A.maxAge=o}else if(s==="domain"){let i=n;i[0]==="."&&(i=i.slice(1)),i=i.toLowerCase(),A.domain=i}else if(s==="path"){let i="";n.length===0||n[0]!=="/"?i="/":i=n,A.path=i}else if(s==="secure")A.secure=!0;else if(s==="httponly")A.httpOnly=!0;else if(s==="samesite"){let i=n.toLowerCase();i==="none"?A.sameSite="None":i==="strict"?A.sameSite="Strict":i==="lax"&&(A.sameSite="Lax")}else A.unparsed??=[],A.unparsed.push(`${r}=${n}`);return nr(e,A)}gu.exports={parseSetCookie:GR,parseUnparsedAttributes:nr}});var Iu=f((RM,Bu)=>{"use strict";var{parseSetCookie:JR}=Qu(),{stringify:vR}=kc(),{webidl:x}=cA(),{Headers:$s}=nt();function HR(e){x.argumentLengthCheck(arguments,1,"getCookies"),x.brandCheck(e,$s,{strict:!1});let A=e.get("cookie"),t={};if(!A)return t;for(let r of A.split(";")){let[n,...s]=r.split("=");t[n.trim()]=s.join("=")}return t}function VR(e,A,t){x.brandCheck(e,$s,{strict:!1});let r="deleteCookie";x.argumentLengthCheck(arguments,2,r),A=x.converters.DOMString(A,r,"name"),t=x.converters.DeleteCookieAttributes(t),Eu(e,{name:A,value:"",expires:new Date(0),...t})}function qR(e){x.argumentLengthCheck(arguments,1,"getSetCookies"),x.brandCheck(e,$s,{strict:!1});let A=e.getSetCookie();return A?A.map(t=>JR(t)):[]}function Eu(e,A){x.argumentLengthCheck(arguments,2,"setCookie"),x.brandCheck(e,$s,{strict:!1}),A=x.converters.Cookie(A);let t=vR(A);t&&e.append("Set-Cookie",t)}x.converters.DeleteCookieAttributes=x.dictionaryConverter([{converter:x.nullableConverter(x.converters.DOMString),key:"path",defaultValue:()=>null},{converter:x.nullableConverter(x.converters.DOMString),key:"domain",defaultValue:()=>null}]);x.converters.Cookie=x.dictionaryConverter([{converter:x.converters.DOMString,key:"name"},{converter:x.converters.DOMString,key:"value"},{converter:x.nullableConverter(e=>typeof e=="number"?x.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:()=>null},{converter:x.nullableConverter(x.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:x.nullableConverter(x.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:x.nullableConverter(x.converters.DOMString),key:"path",defaultValue:()=>null},{converter:x.nullableConverter(x.converters.boolean),key:"secure",defaultValue:()=>null},{converter:x.nullableConverter(x.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:x.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:x.sequenceConverter(x.converters.DOMString),key:"unparsed",defaultValue:()=>new Array(0)}]);Bu.exports={getCookies:HR,deleteCookie:VR,getSetCookies:qR,setCookie:Eu}});var ir=f((bM,lu)=>{"use strict";var{webidl:m}=cA(),{kEnumerableProperty:fA}=T(),{kConstruct:Cu}=X(),{MessagePort:WR}=d("node:worker_threads"),sr=class e extends Event{#A;constructor(A,t={}){if(A===Cu){super(arguments[1],arguments[2]),m.util.markAsUncloneable(this);return}let r="MessageEvent constructor";m.argumentLengthCheck(arguments,1,r),A=m.converters.DOMString(A,r,"type"),t=m.converters.MessageEventInit(t,r,"eventInitDict"),super(A,t),this.#A=t,m.util.markAsUncloneable(this)}get data(){return m.brandCheck(this,e),this.#A.data}get origin(){return m.brandCheck(this,e),this.#A.origin}get lastEventId(){return m.brandCheck(this,e),this.#A.lastEventId}get source(){return m.brandCheck(this,e),this.#A.source}get ports(){return m.brandCheck(this,e),Object.isFrozen(this.#A.ports)||Object.freeze(this.#A.ports),this.#A.ports}initMessageEvent(A,t=!1,r=!1,n=null,s="",i="",o=null,a=[]){return m.brandCheck(this,e),m.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new e(A,{bubbles:t,cancelable:r,data:n,origin:s,lastEventId:i,source:o,ports:a})}static createFastMessageEvent(A,t){let r=new e(Cu,A,t);return r.#A=t,r.#A.data??=null,r.#A.origin??="",r.#A.lastEventId??="",r.#A.source??=null,r.#A.ports??=[],r}},{createFastMessageEvent:OR}=sr;delete sr.createFastMessageEvent;var Ai=class e extends Event{#A;constructor(A,t={}){let r="CloseEvent constructor";m.argumentLengthCheck(arguments,1,r),A=m.converters.DOMString(A,r,"type"),t=m.converters.CloseEventInit(t),super(A,t),this.#A=t,m.util.markAsUncloneable(this)}get wasClean(){return m.brandCheck(this,e),this.#A.wasClean}get code(){return m.brandCheck(this,e),this.#A.code}get reason(){return m.brandCheck(this,e),this.#A.reason}},ei=class e extends Event{#A;constructor(A,t){let r="ErrorEvent constructor";m.argumentLengthCheck(arguments,1,r),super(A,t),m.util.markAsUncloneable(this),A=m.converters.DOMString(A,r,"type"),t=m.converters.ErrorEventInit(t??{}),this.#A=t}get message(){return m.brandCheck(this,e),this.#A.message}get filename(){return m.brandCheck(this,e),this.#A.filename}get lineno(){return m.brandCheck(this,e),this.#A.lineno}get colno(){return m.brandCheck(this,e),this.#A.colno}get error(){return m.brandCheck(this,e),this.#A.error}};Object.defineProperties(sr.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:fA,origin:fA,lastEventId:fA,source:fA,ports:fA,initMessageEvent:fA});Object.defineProperties(Ai.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:fA,code:fA,wasClean:fA});Object.defineProperties(ei.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:fA,filename:fA,lineno:fA,colno:fA,error:fA});m.converters.MessagePort=m.interfaceConverter(WR);m.converters["sequence<MessagePort>"]=m.sequenceConverter(m.converters.MessagePort);var Fc=[{key:"bubbles",converter:m.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:m.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:m.converters.boolean,defaultValue:()=>!1}];m.converters.MessageEventInit=m.dictionaryConverter([...Fc,{key:"data",converter:m.converters.any,defaultValue:()=>null},{key:"origin",converter:m.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:m.converters.DOMString,defaultValue:()=>""},{key:"source",converter:m.nullableConverter(m.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:m.converters["sequence<MessagePort>"],defaultValue:()=>new Array(0)}]);m.converters.CloseEventInit=m.dictionaryConverter([...Fc,{key:"wasClean",converter:m.converters.boolean,defaultValue:()=>!1},{key:"code",converter:m.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:m.converters.USVString,defaultValue:()=>""}]);m.converters.ErrorEventInit=m.dictionaryConverter([...Fc,{key:"message",converter:m.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:m.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:m.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:m.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:m.converters.any}]);lu.exports={MessageEvent:sr,CloseEvent:Ai,ErrorEvent:ei,createFastMessageEvent:OR}});var gt=f((NM,uu)=>{"use strict";var PR="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",ZR={enumerable:!0,writable:!1,configurable:!1},KR={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},zR={NOT_SENT:0,PROCESSING:1,SENT:2},XR={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},_R=2**16-1,jR={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},$R=Buffer.allocUnsafe(0),Ab={string:1,typedArray:2,arrayBuffer:3,blob:4};uu.exports={uid:PR,sentCloseFrameState:zR,staticPropertyDescriptors:ZR,states:KR,opcodes:XR,maxUnsigned16Bit:_R,parserStates:jR,emptyBuffer:$R,sendHints:Ab}});var tn=f((SM,hu)=>{"use strict";hu.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var sn=f((UM,Fu)=>{"use strict";var{kReadyState:rn,kController:eb,kResponse:tb,kBinaryType:rb,kWebSocketURL:nb}=tn(),{states:nn,opcodes:xe}=gt(),{ErrorEvent:sb,createFastMessageEvent:ib}=ir(),{isUtf8:ob}=d("node:buffer"),{collectASequenceOfCodePointsFast:ab,removeHTTPWhitespace:du}=lA();function cb(e){return e[rn]===nn.CONNECTING}function gb(e){return e[rn]===nn.OPEN}function Qb(e){return e[rn]===nn.CLOSING}function Eb(e){return e[rn]===nn.CLOSED}function Rc(e,A,t=(n,s)=>new Event(n,s),r={}){let n=t(e,r);A.dispatchEvent(n)}function Bb(e,A,t){if(e[rn]!==nn.OPEN)return;let r;if(A===xe.TEXT)try{r=ku(t)}catch{wu(e,"Received invalid UTF-8 in text frame.");return}else A===xe.BINARY&&(e[rb]==="blob"?r=new Blob([t]):r=Ib(t));Rc("message",e,ib,{origin:e[nb].origin,data:r})}function Ib(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function Cb(e){if(e.length===0)return!1;for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<33||t>126||t===34||t===40||t===41||t===44||t===47||t===58||t===59||t===60||t===61||t===62||t===63||t===64||t===91||t===92||t===93||t===123||t===125)return!1}return!0}function lb(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function wu(e,A){let{[eb]:t,[tb]:r}=e;t.abort(),r?.socket&&!r.socket.destroyed&&r.socket.destroy(),A&&Rc("error",e,(n,s)=>new sb(n,s),{error:new Error(A),message:A})}function yu(e){return e===xe.CLOSE||e===xe.PING||e===xe.PONG}function pu(e){return e===xe.CONTINUATION}function Du(e){return e===xe.TEXT||e===xe.BINARY}function ub(e){return Du(e)||pu(e)||yu(e)}function hb(e){let A={position:0},t=new Map;for(;A.position<e.length;){let r=ab(";",e,A),[n,s=""]=r.split("=");t.set(du(n,!0,!1),du(s,!1,!0)),A.position++}return t}function db(e){if(e.length===0)return!1;for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);if(r<48||r>57)return!1}let A=Number.parseInt(e,10);return A>=8&&A<=15}var mu=typeof process.versions.icu=="string",fu=mu?new TextDecoder("utf-8",{fatal:!0}):void 0,ku=mu?fu.decode.bind(fu):function(e){if(ob(e))return e.toString("utf-8");throw new TypeError("Invalid utf-8 received.")};Fu.exports={isConnecting:cb,isEstablished:gb,isClosing:Qb,isClosed:Eb,fireEvent:Rc,isValidSubprotocol:Cb,isValidStatusCode:lb,failWebsocketConnection:wu,websocketMessageReceived:Bb,utf8Decode:ku,isControlFrame:yu,isContinuationFrame:pu,isTextBinaryFrame:Du,isValidOpcode:ub,parseExtensions:hb,isValidClientWindowBits:db}});var ri=f((MM,Ru)=>{"use strict";var{maxUnsigned16Bit:fb}=gt(),ti=16386,bc,on=null,or=ti;try{bc=d("node:crypto")}catch{bc={randomFillSync:function(A,t,r){for(let n=0;n<A.length;++n)A[n]=Math.random()*255|0;return A}}}function wb(){return or===ti&&(or=0,bc.randomFillSync(on??=Buffer.allocUnsafe(ti),0,ti)),[on[or++],on[or++],on[or++],on[or++]]}var Nc=class{constructor(A){this.frameData=A}createFrame(A){let t=this.frameData,r=wb(),n=t?.byteLength??0,s=n,i=6;n>fb?(i+=8,s=127):n>125&&(i+=2,s=126);let o=Buffer.allocUnsafe(n+i);o[0]=o[1]=0,o[0]|=128,o[0]=(o[0]&240)+A;o[i-4]=r[0],o[i-3]=r[1],o[i-2]=r[2],o[i-1]=r[3],o[1]=s,s===126?o.writeUInt16BE(n,2):s===127&&(o[2]=o[3]=0,o.writeUIntBE(n,4,6)),o[1]|=128;for(let a=0;a<n;++a)o[i+a]=t[a]^r[a&3];return o}};Ru.exports={WebsocketFrameSend:Nc}});var Uc=f((LM,Tu)=>{"use strict";var{uid:yb,states:an,sentCloseFrameState:ni,emptyBuffer:pb,opcodes:Db}=gt(),{kReadyState:cn,kSentClose:si,kByteParser:Nu,kReceivedClose:bu,kResponse:Su}=tn(),{fireEvent:mb,failWebsocketConnection:Ge,isClosing:kb,isClosed:Fb,isEstablished:Rb,parseExtensions:bb}=sn(),{channels:ar}=ht(),{CloseEvent:Nb}=ir(),{makeRequest:Sb}=Ar(),{fetching:Ub}=jr(),{Headers:Mb,getHeadersList:Lb}=nt(),{getDecodeSplit:Tb}=yA(),{WebsocketFrameSend:Yb}=ri(),Sc;try{Sc=d("node:crypto")}catch{}function xb(e,A,t,r,n,s){let i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";let o=Sb({urlList:[i],client:t,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(s.headers){let Q=Lb(new Mb(s.headers));o.headersList=Q}let a=Sc.randomBytes(16).toString("base64");o.headersList.append("sec-websocket-key",a),o.headersList.append("sec-websocket-version","13");for(let Q of A)o.headersList.append("sec-websocket-protocol",Q);return o.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits"),Ub({request:o,useParallelQueue:!0,dispatcher:s.dispatcher,processResponse(Q){if(Q.type==="error"||Q.status!==101){Ge(r,"Received network error or non-101 status code.");return}if(A.length!==0&&!Q.headersList.get("Sec-WebSocket-Protocol")){Ge(r,"Server did not respond with sent protocols.");return}if(Q.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){Ge(r,'Server did not set Upgrade header to "websocket".');return}if(Q.headersList.get("Connection")?.toLowerCase()!=="upgrade"){Ge(r,'Server did not set Connection header to "upgrade".');return}let E=Q.headersList.get("Sec-WebSocket-Accept"),B=Sc.createHash("sha1").update(a+yb).digest("base64");if(E!==B){Ge(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let I=Q.headersList.get("Sec-WebSocket-Extensions"),l;if(I!==null&&(l=bb(I),!l.has("permessage-deflate"))){Ge(r,"Sec-WebSocket-Extensions header does not match.");return}let u=Q.headersList.get("Sec-WebSocket-Protocol");if(u!==null&&!Tb("sec-websocket-protocol",o.headersList).includes(u)){Ge(r,"Protocol was not set in the opening handshake.");return}Q.socket.on("data",Uu),Q.socket.on("close",Mu),Q.socket.on("error",Lu),ar.open.hasSubscribers&&ar.open.publish({address:Q.socket.address(),protocol:u,extensions:I}),n(Q,l)}})}function Gb(e,A,t,r){if(!(kb(e)||Fb(e)))if(!Rb(e))Ge(e,"Connection was closed before it was established."),e[cn]=an.CLOSING;else if(e[si]===ni.NOT_SENT){e[si]=ni.PROCESSING;let n=new Yb;A!==void 0&&t===void 0?(n.frameData=Buffer.allocUnsafe(2),n.frameData.writeUInt16BE(A,0)):A!==void 0&&t!==void 0?(n.frameData=Buffer.allocUnsafe(2+r),n.frameData.writeUInt16BE(A,0),n.frameData.write(t,2,"utf-8")):n.frameData=pb,e[Su].socket.write(n.createFrame(Db.CLOSE)),e[si]=ni.SENT,e[cn]=an.CLOSING}else e[cn]=an.CLOSING}function Uu(e){this.ws[Nu].write(e)||this.pause()}function Mu(){let{ws:e}=this,{[Su]:A}=e;A.socket.off("data",Uu),A.socket.off("close",Mu),A.socket.off("error",Lu);let t=e[si]===ni.SENT&&e[bu],r=1005,n="",s=e[Nu].closingInfo;s&&!s.error?(r=s.code??1005,n=s.reason):e[bu]||(r=1006),e[cn]=an.CLOSED,mb("close",e,(i,o)=>new Nb(i,o),{wasClean:t,code:r,reason:n}),ar.close.hasSubscribers&&ar.close.publish({websocket:e,code:r,reason:n})}function Lu(e){let{ws:A}=this;A[cn]=an.CLOSING,ar.socketError.hasSubscribers&&ar.socketError.publish(e),this.destroy()}Tu.exports={establishWebSocketConnection:xb,closeWebSocketConnection:Gb}});var xu=f((TM,Yu)=>{"use strict";var{createInflateRaw:Jb,Z_DEFAULT_WINDOWBITS:vb}=d("node:zlib"),{isValidClientWindowBits:Hb}=sn(),{MessageSizeExceededError:Vb}=v(),qb=Buffer.from([0,0,255,255]),ii=Symbol("kBuffer"),gn=Symbol("kLength"),Mc=class{#A;#e={};#t=0;constructor(A,t){this.#e.serverNoContextTakeover=A.has("server_no_context_takeover"),this.#e.serverMaxWindowBits=A.get("server_max_window_bits"),this.#t=t.maxPayloadSize}decompress(A,t,r){if(!this.#A){let n=vb;if(this.#e.serverMaxWindowBits){if(!Hb(this.#e.serverMaxWindowBits)){r(new Error("Invalid server_max_window_bits"));return}n=Number.parseInt(this.#e.serverMaxWindowBits)}try{this.#A=Jb({windowBits:n})}catch(s){r(s);return}this.#A[ii]=[],this.#A[gn]=0,this.#A.on("data",s=>{if(this.#A[gn]+=s.length,this.#t>0&&this.#A[gn]>this.#t){r(new Vb),this.#A.removeAllListeners(),this.#A=null;return}this.#A[ii].push(s)}),this.#A.on("error",s=>{this.#A=null,r(s)})}this.#A.write(A),t&&this.#A.write(qb),this.#A.flush(()=>{if(!this.#A)return;let n=Buffer.concat(this.#A[ii],this.#A[gn]);this.#A[ii].length=0,this.#A[gn]=0,r(null,n)})}};Yu.exports={PerMessageDeflate:Mc}});var Zu=f((YM,Pu)=>{"use strict";var{Writable:Wb}=d("node:stream"),Ob=d("node:assert"),{parserStates:wA,opcodes:cr,states:Pb,emptyBuffer:Gu,sentCloseFrameState:Ju}=gt(),{kReadyState:Zb,kSentClose:vu,kResponse:Hu,kReceivedClose:Vu}=tn(),{channels:oi}=ht(),{isValidStatusCode:Kb,isValidOpcode:zb,failWebsocketConnection:NA,websocketMessageReceived:qu,utf8Decode:Xb,isControlFrame:Lc,isTextBinaryFrame:Tc,isContinuationFrame:_b}=sn(),{WebsocketFrameSend:Wu}=ri(),{closeWebSocketConnection:Ou}=Uc(),{PerMessageDeflate:jb}=xu(),{MessageSizeExceededError:Yc}=v();function Qn(e,A,t){Ou(e,A,t,Buffer.byteLength(t)),NA(e,t)}var xc=class extends Wb{#A=[];#e=0;#t=0;#s=!1;#n=wA.INFO;#r={};#i=[];#o;#c;#a;constructor(A,t,r={}){super(),this.ws=A,this.#o=t??new Map,this.#c=r.maxFragments??0,this.#a=r.maxPayloadSize??0,this.#o.has("permessage-deflate")&&this.#o.set("permessage-deflate",new jb(t,r))}_write(A,t,r){this.#A.push(A),this.#t+=A.length,this.#s=!0,this.run(r)}#g(){return this.#a>0&&!Lc(this.#r.opcode)&&this.#r.payloadLength+this.#e>this.#a?(Qn(this.ws,1009,"Payload size exceeds maximum allowed size"),!1):!0}run(A){for(;this.#s;)if(this.#n===wA.INFO){if(this.#t<2)return A();let t=this.consume(2),r=(t[0]&128)!==0,n=t[0]&15,s=(t[1]&128)===128,i=!r&&n!==cr.CONTINUATION,o=t[1]&127,a=t[0]&64,c=t[0]&32,g=t[0]&16;if(!zb(n))return NA(this.ws,"Invalid opcode received"),A();if(s)return NA(this.ws,"Frame cannot be masked"),A();if(a!==0&&!this.#o.has("permessage-deflate")){NA(this.ws,"Expected RSV1 to be clear.");return}if(c!==0||g!==0){NA(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(i&&!Tc(n)){NA(this.ws,"Invalid frame type was fragmented.");return}if(Tc(n)&&this.#i.length>0){NA(this.ws,"Expected continuation frame");return}if(this.#r.fragmented&&i){NA(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((o>125||i)&&Lc(n)){NA(this.ws,"Control frame either too large or fragmented");return}if(_b(n)&&this.#i.length===0&&!this.#r.compressed){NA(this.ws,"Unexpected continuation frame");return}if(o<=125){if(this.#r.payloadLength=o,this.#n=wA.READ_DATA,!this.#g())return}else o===126?this.#n=wA.PAYLOADLENGTH_16:o===127&&(this.#n=wA.PAYLOADLENGTH_64);Tc(n)&&(this.#r.binaryType=n,this.#r.compressed=a!==0),this.#r.opcode=n,this.#r.masked=s,this.#r.fin=r,this.#r.fragmented=i}else if(this.#n===wA.PAYLOADLENGTH_16){if(this.#t<2)return A();let t=this.consume(2);if(this.#r.payloadLength=t.readUInt16BE(0),this.#n=wA.READ_DATA,!this.#g())return}else if(this.#n===wA.PAYLOADLENGTH_64){if(this.#t<8)return A();let t=this.consume(8),r=t.readUInt32BE(0),n=t.readUInt32BE(4);if(r!==0||n>2**31-1){NA(this.ws,"Received payload length > 2^31 bytes.");return}if(this.#r.payloadLength=n,this.#n=wA.READ_DATA,!this.#g())return}else if(this.#n===wA.READ_DATA){if(this.#t<this.#r.payloadLength)return A();let t=this.consume(this.#r.payloadLength);if(Lc(this.#r.opcode))this.#s=this.parseControlFrame(t),this.#n=wA.INFO;else if(this.#r.compressed){this.#o.get("permessage-deflate").decompress(t,this.#r.fin,(r,n)=>{if(r){let s=r instanceof Yc?1009:1007;Qn(this.ws,s,r.message);return}if(this.writeFragments(n)){if(this.#a>0&&this.#e>this.#a){Qn(this.ws,1009,new Yc().message);return}if(!this.#r.fin){this.#n=wA.INFO,this.#s=!0,this.run(A);return}qu(this.ws,this.#r.binaryType,this.consumeFragments()),this.#s=!0,this.#n=wA.INFO,this.run(A)}}),this.#s=!1;break}else{if(!this.writeFragments(t))return;if(this.#a>0&&this.#e>this.#a){Qn(this.ws,1009,new Yc().message);return}!this.#r.fragmented&&this.#r.fin&&qu(this.ws,this.#r.binaryType,this.consumeFragments()),this.#n=wA.INFO}}}consume(A){if(A>this.#t)throw new Error("Called consume() before buffers satiated.");if(A===0)return Gu;if(this.#A[0].length===A)return this.#t-=this.#A[0].length,this.#A.shift();let t=Buffer.allocUnsafe(A),r=0;for(;r!==A;){let n=this.#A[0],{length:s}=n;if(s+r===A){t.set(this.#A.shift(),r);break}else if(s+r>A){t.set(n.subarray(0,A-r),r),this.#A[0]=n.subarray(A-r);break}else t.set(this.#A.shift(),r),r+=n.length}return this.#t-=A,t}writeFragments(A){return this.#c>0&&this.#i.length===this.#c?(Qn(this.ws,1008,"Too many message fragments"),!1):(this.#e+=A.length,this.#i.push(A),!0)}consumeFragments(){let A=this.#i;if(A.length===1)return this.#e=0,A.shift();let t=Buffer.concat(A,this.#e);return this.#i=[],this.#e=0,t}parseCloseBody(A){Ob(A.length!==1);let t;if(A.length>=2&&(t=A.readUInt16BE(0)),t!==void 0&&!Kb(t))return{code:1002,reason:"Invalid status code",error:!0};let r=A.subarray(2);r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3));try{r=Xb(r)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:t,reason:r,error:!1}}parseControlFrame(A){let{opcode:t,payloadLength:r}=this.#r;if(t===cr.CLOSE){if(r===1)return NA(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#r.closeInfo=this.parseCloseBody(A),this.#r.closeInfo.error){let{code:n,reason:s}=this.#r.closeInfo;return Ou(this.ws,n,s,s.length),NA(this.ws,s),!1}if(this.ws[vu]!==Ju.SENT){let n=Gu;this.#r.closeInfo.code&&(n=Buffer.allocUnsafe(2),n.writeUInt16BE(this.#r.closeInfo.code,0));let s=new Wu(n);this.ws[Hu].socket.write(s.createFrame(cr.CLOSE),i=>{i||(this.ws[vu]=Ju.SENT)})}return this.ws[Zb]=Pb.CLOSING,this.ws[Vu]=!0,!1}else if(t===cr.PING){if(!this.ws[Vu]){let n=new Wu(A);this.ws[Hu].socket.write(n.createFrame(cr.PONG)),oi.ping.hasSubscribers&&oi.ping.publish({payload:A})}}else t===cr.PONG&&oi.pong.hasSubscribers&&oi.pong.publish({payload:A});return!0}get closingInfo(){return this.#r.closeInfo}};Pu.exports={ByteParser:xc}});var ju=f((xM,_u)=>{"use strict";var{WebsocketFrameSend:$b}=ri(),{opcodes:Ku,sendHints:gr}=gt(),AN=qo(),zu=Buffer[Symbol.species],Gc=class{#A=new AN;#e=!1;#t;constructor(A){this.#t=A}add(A,t,r){if(r!==gr.blob){let s=Xu(A,r);if(!this.#e)this.#t.write(s,t);else{let i={promise:null,callback:t,frame:s};this.#A.push(i)}return}let n={promise:A.arrayBuffer().then(s=>{n.promise=null,n.frame=Xu(s,r)}),callback:t,frame:null};this.#A.push(n),this.#e||this.#s()}async#s(){this.#e=!0;let A=this.#A;for(;!A.isEmpty();){let t=A.shift();t.promise!==null&&await t.promise,this.#t.write(t.frame,t.callback),t.callback=t.frame=null}this.#e=!1}};function Xu(e,A){return new $b(eN(e,A)).createFrame(A===gr.string?Ku.TEXT:Ku.BINARY)}function eN(e,A){switch(A){case gr.string:return Buffer.from(e);case gr.arrayBuffer:case gr.blob:return new zu(e);case gr.typedArray:return new zu(e.buffer,e.byteOffset,e.byteLength)}}_u.exports={SendQueue:Gc}});var ah=f((GM,oh)=>{"use strict";var{webidl:U}=cA(),{URLSerializer:tN}=lA(),{environmentSettingsObject:$u}=yA(),{staticPropertyDescriptors:Je,states:En,sentCloseFrameState:rN,sendHints:ai}=gt(),{kWebSocketURL:Ah,kReadyState:Jc,kController:eh,kBinaryType:ci,kResponse:th,kSentClose:nN,kByteParser:sN}=tn(),{isConnecting:iN,isEstablished:oN,isClosing:aN,isValidSubprotocol:cN,fireEvent:rh}=sn(),{establishWebSocketConnection:gN,closeWebSocketConnection:nh}=Uc(),{ByteParser:QN}=Zu(),{kEnumerableProperty:xA,isBlobLike:sh}=T(),{getGlobalDispatcher:EN}=Ds(),{types:ih}=d("node:util"),{ErrorEvent:BN,CloseEvent:IN}=ir(),{SendQueue:CN}=ju(),SA=class e extends EventTarget{#A={open:null,error:null,close:null,message:null};#e=0;#t="";#s="";#n;constructor(A,t=[]){super(),U.util.markAsUncloneable(this);let r="WebSocket constructor";U.argumentLengthCheck(arguments,1,r);let n=U.converters["DOMString or sequence<DOMString> or WebSocketInit"](t,r,"options");A=U.converters.USVString(A,r,"url"),t=n.protocols;let s=$u.settingsObject.baseUrl,i;try{i=new URL(A,s)}catch(a){throw new DOMException(a,"SyntaxError")}if(i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),i.protocol!=="ws:"&&i.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${i.protocol}`,"SyntaxError");if(i.hash||i.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(a=>a.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(a=>cN(a)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[Ah]=new URL(i.href);let o=$u.settingsObject;this[eh]=gN(i,t,o,this,(a,c)=>this.#r(a,c),n),this[Jc]=e.CONNECTING,this[nN]=rN.NOT_SENT,this[ci]="blob"}close(A=void 0,t=void 0){U.brandCheck(this,e);let r="WebSocket.close";if(A!==void 0&&(A=U.converters["unsigned short"](A,r,"code",{clamp:!0})),t!==void 0&&(t=U.converters.USVString(t,r,"reason")),A!==void 0&&A!==1e3&&(A<3e3||A>4999))throw new DOMException("invalid code","InvalidAccessError");let n=0;if(t!==void 0&&(n=Buffer.byteLength(t),n>123))throw new DOMException(`Reason must be less than 123 bytes; received ${n}`,"SyntaxError");nh(this,A,t,n)}send(A){U.brandCheck(this,e);let t="WebSocket.send";if(U.argumentLengthCheck(arguments,1,t),A=U.converters.WebSocketSendData(A,t,"data"),iN(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!oN(this)||aN(this)))if(typeof A=="string"){let r=Buffer.byteLength(A);this.#e+=r,this.#n.add(A,()=>{this.#e-=r},ai.string)}else ih.isArrayBuffer(A)?(this.#e+=A.byteLength,this.#n.add(A,()=>{this.#e-=A.byteLength},ai.arrayBuffer)):ArrayBuffer.isView(A)?(this.#e+=A.byteLength,this.#n.add(A,()=>{this.#e-=A.byteLength},ai.typedArray)):sh(A)&&(this.#e+=A.size,this.#n.add(A,()=>{this.#e-=A.size},ai.blob))}get readyState(){return U.brandCheck(this,e),this[Jc]}get bufferedAmount(){return U.brandCheck(this,e),this.#e}get url(){return U.brandCheck(this,e),tN(this[Ah])}get extensions(){return U.brandCheck(this,e),this.#s}get protocol(){return U.brandCheck(this,e),this.#t}get onopen(){return U.brandCheck(this,e),this.#A.open}set onopen(A){U.brandCheck(this,e),this.#A.open&&this.removeEventListener("open",this.#A.open),typeof A=="function"?(this.#A.open=A,this.addEventListener("open",A)):this.#A.open=null}get onerror(){return U.brandCheck(this,e),this.#A.error}set onerror(A){U.brandCheck(this,e),this.#A.error&&this.removeEventListener("error",this.#A.error),typeof A=="function"?(this.#A.error=A,this.addEventListener("error",A)):this.#A.error=null}get onclose(){return U.brandCheck(this,e),this.#A.close}set onclose(A){U.brandCheck(this,e),this.#A.close&&this.removeEventListener("close",this.#A.close),typeof A=="function"?(this.#A.close=A,this.addEventListener("close",A)):this.#A.close=null}get onmessage(){return U.brandCheck(this,e),this.#A.message}set onmessage(A){U.brandCheck(this,e),this.#A.message&&this.removeEventListener("message",this.#A.message),typeof A=="function"?(this.#A.message=A,this.addEventListener("message",A)):this.#A.message=null}get binaryType(){return U.brandCheck(this,e),this[ci]}set binaryType(A){U.brandCheck(this,e),A!=="blob"&&A!=="arraybuffer"?this[ci]="blob":this[ci]=A}#r(A,t){this[th]=A;let r=this[eh]?.dispatcher?.webSocketOptions,n=r?.maxFragments,s=r?.maxPayloadSize,i=new QN(this,t,{maxFragments:n,maxPayloadSize:s});i.on("drain",lN),i.on("error",uN.bind(this)),A.socket.ws=this,this[sN]=i,this.#n=new CN(A.socket),this[Jc]=En.OPEN;let o=A.headersList.get("sec-websocket-extensions");o!==null&&(this.#s=o);let a=A.headersList.get("sec-websocket-protocol");a!==null&&(this.#t=a),rh("open",this)}};SA.CONNECTING=SA.prototype.CONNECTING=En.CONNECTING;SA.OPEN=SA.prototype.OPEN=En.OPEN;SA.CLOSING=SA.prototype.CLOSING=En.CLOSING;SA.CLOSED=SA.prototype.CLOSED=En.CLOSED;Object.defineProperties(SA.prototype,{CONNECTING:Je,OPEN:Je,CLOSING:Je,CLOSED:Je,url:xA,readyState:xA,bufferedAmount:xA,onopen:xA,onerror:xA,onclose:xA,close:xA,onmessage:xA,binaryType:xA,send:xA,extensions:xA,protocol:xA,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(SA,{CONNECTING:Je,OPEN:Je,CLOSING:Je,CLOSED:Je});U.converters["sequence<DOMString>"]=U.sequenceConverter(U.converters.DOMString);U.converters["DOMString or sequence<DOMString>"]=function(e,A,t){return U.util.Type(e)==="Object"&&Symbol.iterator in e?U.converters["sequence<DOMString>"](e):U.converters.DOMString(e,A,t)};U.converters.WebSocketInit=U.dictionaryConverter([{key:"protocols",converter:U.converters["DOMString or sequence<DOMString>"],defaultValue:()=>new Array(0)},{key:"dispatcher",converter:U.converters.any,defaultValue:()=>EN()},{key:"headers",converter:U.nullableConverter(U.converters.HeadersInit)}]);U.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(e){return U.util.Type(e)==="Object"&&!(Symbol.iterator in e)?U.converters.WebSocketInit(e):{protocols:U.converters["DOMString or sequence<DOMString>"](e)}};U.converters.WebSocketSendData=function(e){if(U.util.Type(e)==="Object"){if(sh(e))return U.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||ih.isArrayBuffer(e))return U.converters.BufferSource(e)}return U.converters.USVString(e)};function lN(){this.ws[th].socket.resume()}function uN(e){let A,t;e instanceof IN?(A=e.reason,t=e.code):A=e.message,rh("error",this,()=>new BN("error",{error:e,message:A})),nh(this,t)}oh.exports={WebSocket:SA}});var vc=f((JM,ch)=>{"use strict";function hN(e){return e.indexOf("\0")===-1}function dN(e){if(e.length===0)return!1;for(let A=0;A<e.length;A++)if(e.charCodeAt(A)<48||e.charCodeAt(A)>57)return!1;return!0}function fN(e){return new Promise(A=>{setTimeout(A,e).unref()})}ch.exports={isValidLastEventId:hN,isASCIINumber:dN,delay:fN}});var Bh=f((vM,Eh)=>{"use strict";var{Transform:wN}=d("node:stream"),{isASCIINumber:gh,isValidLastEventId:Qh}=vc(),fe=[239,187,191],Hc=10,gi=13,yN=58,pN=32,Vc=class extends wN{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(A={}){A.readableObjectMode=!0,super(A),this.state=A.eventSourceSettings||{},A.push&&(this.push=A.push)}_transform(A,t,r){if(A.length===0){r();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,A]):this.buffer=A,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===fe[0]){r();return}this.checkBOM=!1,r();return;case 2:if(this.buffer[0]===fe[0]&&this.buffer[1]===fe[1]){r();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===fe[0]&&this.buffer[1]===fe[1]&&this.buffer[2]===fe[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,r();return}this.checkBOM=!1;break;default:this.buffer[0]===fe[0]&&this.buffer[1]===fe[1]&&this.buffer[2]===fe[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos<this.buffer.length;){if(this.eventEndCheck){if(this.crlfCheck){if(this.buffer[this.pos]===Hc){this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.crlfCheck=!1;continue}this.crlfCheck=!1}if(this.buffer[this.pos]===Hc||this.buffer[this.pos]===gi){this.buffer[this.pos]===gi&&(this.crlfCheck=!0),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,(this.event.data!==void 0||this.event.event||this.event.id||this.event.retry)&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(this.buffer[this.pos]===Hc||this.buffer[this.pos]===gi){this.buffer[this.pos]===gi&&(this.crlfCheck=!0),this.parseLine(this.buffer.subarray(0,this.pos),this.event),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.eventEndCheck=!0;continue}this.pos++}r()}parseLine(A,t){if(A.length===0)return;let r=A.indexOf(yN);if(r===0)return;let n="",s="";if(r!==-1){n=A.subarray(0,r).toString("utf8");let i=r+1;A[i]===pN&&++i,s=A.subarray(i).toString("utf8")}else n=A.toString("utf8"),s="";switch(n){case"data":t[n]===void 0?t[n]=s:t[n]+=`
45
+ ${s}`;break;case"retry":gh(s)&&(t[n]=s);break;case"id":Qh(s)&&(t[n]=s);break;case"event":s.length>0&&(t[n]=s);break}}processEvent(A){A.retry&&gh(A.retry)&&(this.state.reconnectionTime=parseInt(A.retry,10)),A.id&&Qh(A.id)&&(this.state.lastEventId=A.id),A.data!==void 0&&this.push({type:A.event||"message",options:{data:A.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};Eh.exports={EventSourceStream:Vc}});var wh=f((HM,fh)=>{"use strict";var{pipeline:DN}=d("node:stream"),{fetching:mN}=jr(),{makeRequest:kN}=Ar(),{webidl:we}=cA(),{EventSourceStream:FN}=Bh(),{parseMIMEType:RN}=lA(),{createFastMessageEvent:bN}=ir(),{isNetworkError:Ih}=Xr(),{delay:NN}=vc(),{kEnumerableProperty:Qt}=T(),{environmentSettingsObject:Ch}=yA(),lh=!1,uh=3e3,Bn=0,hh=1,In=2,SN="anonymous",UN="use-credentials",Qr=class e extends EventTarget{#A={open:null,error:null,message:null};#e=null;#t=!1;#s=Bn;#n=null;#r=null;#i;#o;constructor(A,t={}){super(),we.util.markAsUncloneable(this);let r="EventSource constructor";we.argumentLengthCheck(arguments,1,r),lh||(lh=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),A=we.converters.USVString(A,r,"url"),t=we.converters.EventSourceInitDict(t,r,"eventSourceInitDict"),this.#i=t.dispatcher,this.#o={lastEventId:"",reconnectionTime:uh};let n=Ch,s;try{s=new URL(A,n.settingsObject.baseUrl),this.#o.origin=s.origin}catch(a){throw new DOMException(a,"SyntaxError")}this.#e=s.href;let i=SN;t.withCredentials&&(i=UN,this.#t=!0);let o={redirect:"follow",keepalive:!0,mode:"cors",credentials:i==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};o.client=Ch.settingsObject,o.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],o.cache="no-store",o.initiator="other",o.urlList=[new URL(this.#e)],this.#n=kN(o),this.#c()}get readyState(){return this.#s}get url(){return this.#e}get withCredentials(){return this.#t}#c(){if(this.#s===In)return;this.#s=Bn;let A={request:this.#n,dispatcher:this.#i},t=r=>{Ih(r)&&(this.dispatchEvent(new Event("error")),this.close()),this.#a()};A.processResponseEndOfBody=t,A.processResponse=r=>{if(Ih(r))if(r.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#a();return}let n=r.headersList.get("content-type",!0),s=n!==null?RN(n):"failure",i=s!=="failure"&&s.essence==="text/event-stream";if(r.status!==200||i===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#s=hh,this.dispatchEvent(new Event("open")),this.#o.origin=r.urlList[r.urlList.length-1].origin;let o=new FN({eventSourceSettings:this.#o,push:a=>{this.dispatchEvent(bN(a.type,a.options))}});DN(r.body.stream,o,a=>{a?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#r=mN(A)}async#a(){this.#s!==In&&(this.#s=Bn,this.dispatchEvent(new Event("error")),await NN(this.#o.reconnectionTime),this.#s===Bn&&(this.#o.lastEventId.length&&this.#n.headersList.set("last-event-id",this.#o.lastEventId,!0),this.#c()))}close(){we.brandCheck(this,e),this.#s!==In&&(this.#s=In,this.#r.abort(),this.#n=null)}get onopen(){return this.#A.open}set onopen(A){this.#A.open&&this.removeEventListener("open",this.#A.open),typeof A=="function"?(this.#A.open=A,this.addEventListener("open",A)):this.#A.open=null}get onmessage(){return this.#A.message}set onmessage(A){this.#A.message&&this.removeEventListener("message",this.#A.message),typeof A=="function"?(this.#A.message=A,this.addEventListener("message",A)):this.#A.message=null}get onerror(){return this.#A.error}set onerror(A){this.#A.error&&this.removeEventListener("error",this.#A.error),typeof A=="function"?(this.#A.error=A,this.addEventListener("error",A)):this.#A.error=null}},dh={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:Bn,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:hh,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:In,writable:!1}};Object.defineProperties(Qr,dh);Object.defineProperties(Qr.prototype,dh);Object.defineProperties(Qr.prototype,{close:Qt,onerror:Qt,onmessage:Qt,onopen:Qt,readyState:Qt,url:Qt,withCredentials:Qt});we.converters.EventSourceInitDict=we.dictionaryConverter([{key:"withCredentials",converter:we.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:we.converters.any}]);fh.exports={EventSource:Qr,defaultReconnectionTime:uh}});var mh=f((VM,S)=>{"use strict";var MN=Gt(),yh=ur(),LN=Jt(),TN=dB(),YN=vt(),xN=ca(),GN=qB(),JN=XB(),ph=v(),Ei=T(),{InvalidArgumentError:Qi}=ph,Er=YI(),vN=dr(),HN=Wa(),VN=hC(),qN=Za(),WN=Sa(),ON=Is(),{getGlobalDispatcher:Dh,setGlobalDispatcher:PN}=Ds(),ZN=ms(),KN=rs(),zN=ns();Object.assign(yh.prototype,Er);S.exports.Dispatcher=yh;S.exports.Client=MN;S.exports.Pool=LN;S.exports.BalancedPool=TN;S.exports.Agent=YN;S.exports.ProxyAgent=xN;S.exports.EnvHttpProxyAgent=GN;S.exports.RetryAgent=JN;S.exports.RetryHandler=ON;S.exports.DecoratorHandler=ZN;S.exports.RedirectHandler=KN;S.exports.createRedirectInterceptor=zN;S.exports.interceptors={redirect:mC(),retry:FC(),dump:bC(),dns:UC()};S.exports.buildConnector=vN;S.exports.errors=ph;S.exports.util={parseHeaders:Ei.parseHeaders,headerNameToString:Ei.headerNameToString};function Cn(e){return(A,t,r)=>{if(typeof t=="function"&&(r=t,t=null),!A||typeof A!="string"&&typeof A!="object"&&!(A instanceof URL))throw new Qi("invalid url");if(t!=null&&typeof t!="object")throw new Qi("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new Qi("invalid opts.path");let i=t.path;t.path.startsWith("/")||(i=`/${i}`),A=new URL(Ei.parseOrigin(A).origin+i)}else t||(t=typeof A=="object"?A:{}),A=Ei.parseURL(A);let{agent:n,dispatcher:s=Dh()}=t;if(n)throw new Qi("unsupported opts.agent. Did you mean opts.client?");return e.call(s,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}S.exports.setGlobalDispatcher=PN;S.exports.getGlobalDispatcher=Dh;var XN=jr().fetch;S.exports.fetch=async function(A,t=void 0){try{return await XN(A,t)}catch(r){throw r&&typeof r=="object"&&Error.captureStackTrace(r),r}};S.exports.Headers=nt().Headers;S.exports.Response=Xr().Response;S.exports.Request=Ar().Request;S.exports.FormData=kr().FormData;S.exports.File=globalThis.File??d("node:buffer").File;S.exports.FileReader=Kl().FileReader;var{setGlobalOrigin:_N,getGlobalOrigin:jN}=co();S.exports.setGlobalOrigin=_N;S.exports.getGlobalOrigin=jN;var{CacheStorage:$N}=ru(),{kConstruct:AS}=Ps();S.exports.caches=new $N(AS);var{deleteCookie:eS,getCookies:tS,getSetCookies:rS,setCookie:nS}=Iu();S.exports.deleteCookie=eS;S.exports.getCookies=tS;S.exports.getSetCookies=rS;S.exports.setCookie=nS;var{parseMIMEType:sS,serializeAMimeType:iS}=lA();S.exports.parseMIMEType=sS;S.exports.serializeAMimeType=iS;var{CloseEvent:oS,ErrorEvent:aS,MessageEvent:cS}=ir();S.exports.WebSocket=ah().WebSocket;S.exports.CloseEvent=oS;S.exports.ErrorEvent=aS;S.exports.MessageEvent=cS;S.exports.request=Cn(Er.request);S.exports.stream=Cn(Er.stream);S.exports.pipeline=Cn(Er.pipeline);S.exports.connect=Cn(Er.connect);S.exports.upgrade=Cn(Er.upgrade);S.exports.MockClient=HN;S.exports.MockPool=qN;S.exports.MockAgent=VN;S.exports.mockErrors=WN;var{EventSource:gS}=wh();S.exports.EventSource=gS});var Ir=Object.freeze(["blockNumber","nativeBalance","tokenBalance","resolveToken","resolvePools","scanBlocks","scoreRisk","quote","sellSimulation","prepareUnsignedTx"]),G=Object.freeze({LIVE:"LIVE",CACHED:"CACHED",STALE:"STALE",UNKNOWN:"UNKNOWN",UNAVAILABLE:"UNAVAILABLE"}),L=Object.freeze({PASS:"PASS",CAUTION:"CAUTION",FAIL:"FAIL",UNKNOWN:"UNKNOWN"}),ed=/^0x[0-9a-fA-F]{40}$/;function td(e={}){let A=[],t=[];if(!e||typeof e!="object")return{ok:!1,errors:["definition must be an object"],warnings:t};if((!Number.isInteger(e.chainId)||e.chainId<=0)&&A.push("chainId must be a positive integer"),(typeof e.key!="string"||!/^[a-z][a-z0-9-]*$/.test(e.key||""))&&A.push('key must be a lowercase slug (e.g. "base")'),(typeof e.name!="string"||!e.name.trim())&&A.push("name is required"),!Array.isArray(e.rpcEnv)||e.rpcEnv.length===0)A.push("rpcEnv must list at least one environment variable name");else for(let n of e.rpcEnv)(typeof n!="string"||!/^[A-Z][A-Z0-9_]*$/.test(n))&&A.push(`rpcEnv entry "${n}" should be an UPPER_SNAKE env var name`);if(e.nativeCurrency){let n=e.nativeCurrency;(typeof n.symbol!="string"||!n.symbol)&&A.push("nativeCurrency.symbol is required when nativeCurrency is set"),Number.isInteger(n.decimals)||A.push("nativeCurrency.decimals must be an integer")}for(let[n,s]of(e.venues||[]).entries()){let i=`venues[${n}]`;if(!s||typeof s!="object"){A.push(`${i} must be an object`);continue}ed.test(s.address||"")||A.push(`${i}.address is not a valid 20-byte address`),/^0x0{40}$/.test(s.address||"")&&A.push(`${i}.address is the zero address -- placeholder left in place?`),s.kind||A.push(`${i}.kind is required (router|quoter|factory|...)`),s.verified?(s.verified.method||A.push(`${i}.verified.method is required`),s.verified.source||A.push(`${i}.verified.source is required`),s.verified.date||t.push(`${i}.verified.date missing -- add one so staleness is visible`)):A.push(`${i} must record verification: { verified: { method, source, date } }. An unverified venue stays blocked.`)}let r=e.capabilities||{};for(let n of Object.keys(r))Ir.includes(n)?typeof r[n]!="function"&&A.push(`capability "${n}" must be a function`):A.push(`unknown capability "${n}"`);return Object.keys(r).length===0&&t.push("scanner implements no capabilities -- it can only be registered, not used"),r.prepareUnsignedTx&&!r.quote&&t.push("prepareUnsignedTx without quote: no priced expectation to validate the built tx against"),r.prepareUnsignedTx&&!r.sellSimulation&&t.push("prepareUnsignedTx without sellSimulation: cannot prove an asset is exitable before buying"),{ok:A.length===0,errors:A,warnings:t}}function rd(e){let{ok:A,errors:t,warnings:r}=td(e);if(!A)throw new Error(`invalid scanner for ${e?.key??"<unknown>"}:
46
+ - ${t.join(`
47
+ - `)}`);let n=e.capabilities||{},s=Ir.filter(o=>typeof n[o]=="function"),i={key:e.key,chainId:e.chainId,name:e.name,rpcEnv:[...e.rpcEnv],nativeCurrency:e.nativeCurrency?{...e.nativeCurrency}:null,wrappedNative:e.wrappedNative||null,explorer:e.explorer||null,venues:(e.venues||[]).map(o=>({...o})),warnings:r,capabilities(){return{chainId:e.chainId,key:e.key,supported:[...s],unsupported:Ir.filter(o=>!s.includes(o))}},supports(o){return s.includes(o)}};for(let o of Ir)s.includes(o)?i[o]=async(...a)=>n[o](...a,{scanner:i}):i[o]=async()=>{throw new Error(`${e.key} (chain ${e.chainId}) does not implement "${o}". Supported: ${s.join(", ")||"none"}. An unimplemented capability is absent, not assumed -- implement it or treat this chain as fail-closed for that operation.`)};return Object.freeze(i)}var lt=new Map;function ui(e){let A=rd(e);return lt.set(A.chainId,A),A}function WS(e){return lt.get(Number(e))||null}function OS(){return[...lt.values()]}function PS(){lt.clear()}function ZS(){let e={};for(let A of lt.values())e[A.chainId]={key:A.key,name:A.name,...A.capabilities(),venueCount:A.venues.length,failClosed:A.venues.length===0};return{generatedAt:new Date().toISOString(),chainCount:lt.size,capabilities:[...Ir],chains:e}}import{createHash as IS}from"node:crypto";import Br from"node:net";import QS from"node:dns";var ES=new Set(["localhost","metadata.google.internal","metadata.goog"]);function Bi(e){let A=String(e).toLowerCase().split("%")[0];if((A.match(/::/g)||[]).length>1)return null;let t=g=>{if(!g)return[];let Q=g.split(":"),E=Q.at(-1);if(E?.includes(".")){let B=E.split(".").map(Number);if(B.length!==4||B.some(I=>!Number.isInteger(I)||I<0||I>255))return null;Q.splice(Q.length-1,1,(B[0]<<8|B[1]).toString(16),(B[2]<<8|B[3]).toString(16))}return Q.some(B=>!/^[0-9a-f]{1,4}$/.test(B))?null:Q.map(B=>Number.parseInt(B,16))},[r,n]=A.split("::"),s=t(r),i=t(n);if(!s||!i)return null;let o=A.includes("::"),a=8-s.length-i.length;if(!o&&a!==0||o&&a<1)return null;let c=[...s,...Array(Math.max(0,a)).fill(0),...i];return c.length!==8?null:Uint8Array.from(c.flatMap(g=>[g>>8,g&255]))}function qc(e,A,t){let r=Math.floor(t/8),n=t%8;for(let i=0;i<r;i+=1)if(e[i]!==A[i])return!1;if(!n)return!0;let s=255<<8-n;return(e[r]&s)===(A[r]&s)}function Wc(e){if(Br.isIPv4(e)){let A=e.split(".").map(Number);return!(A[0]===0||A[0]===10||A[0]===127||A[0]>=224||A[0]===100&&A[1]>=64&&A[1]<=127||A[0]===169&&A[1]===254||A[0]===172&&A[1]>=16&&A[1]<=31||A[0]===192&&(A[1]===0||A[1]===2||A[1]===168)||A[0]===192&&A[1]===88&&A[2]===99||A[0]===198&&(A[1]===18||A[1]===19||A[1]===51)||A[0]===203&&A[1]===0&&A[2]===113)}if(Br.isIPv6(e)){let A=Bi(e);if(!A)return!1;let t=Bi("::ffff:0:0");return qc(A,t,96)?Wc([...A.slice(12)].join(".")):qc(A,Bi("2000::"),3)?![["2001::",23],["2001:db8::",32],["2001:10::",28],["2001:2::",48],["2002::",16],["3fff::",20]].some(([n,s])=>qc(A,Bi(n),s)):!1}return!1}function BS(e){let A;try{A=new URL(String(e))}catch{return{ok:!1,error:`not a valid URL: ${String(e).slice(0,120)}`}}if(A.protocol!=="http:"&&A.protocol!=="https:")return{ok:!1,error:`refused protocol ${A.protocol} (only http/https)`};let t=A.hostname.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,"");if(ES.has(t)||t.endsWith(".localhost")||t.endsWith(".internal"))return{ok:!1,error:`refused internal host ${t}`};let r=Br.isIP(t);return r!==0&&!Wc(t)?{ok:!1,error:`refused private address ${t}`}:{ok:!0,url:A,host:t,isLiteralIp:r!==0}}async function kh(e,{lookupFn:A=QS.promises.lookup}={}){let t=BS(e);if(!t.ok)return t;if(t.isLiteralIp)return{ok:!0,url:t.url};let r;try{r=await A(t.host,{all:!0,verbatim:!0})}catch{return{ok:!1,error:`refused: ${t.host} did not resolve`}}return!Array.isArray(r)||r.length===0||r.some(n=>!Wc(n.address))?{ok:!1,error:`refused: ${t.host} resolves to a non-public address`}:{ok:!0,url:t.url,addresses:r}}async function Fh(){let e,A;try{let o=await Promise.resolve().then(()=>Ad(mh(),1));e=o.Agent,A=o.fetch}catch{return null}if(typeof e!="function"||typeof A!="function")return null;let t=o=>String(o).toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,""),r=new Map,n=o=>(Array.isArray(o)?o:[o]).map(a=>typeof a=="string"?{address:a}:a).filter(a=>a&&a.address).map(a=>({address:a.address,family:a.family||(Br.isIPv6(a.address)?6:4)})),s=o=>{let a=t(o);if(Br.isIP(a))return[{address:a,family:Br.isIPv6(a)?6:4}];let c=r.get(a);if(!c||!c.length)throw new Error(`refused: unpinned host ${o} during pinned fetch`);return c},i=new e({connect:{lookup(o,a,c){let g;try{g=s(o)}catch(Q){return c(Q)}return a?.all?c(null,g):c(null,g[0].address,g[0].family)}}});return{dispatcher:i,fetch:(o,a={})=>A(o,{...a,dispatcher:i}),pin(o,a,c){r.set(t(o),n(typeof a=="string"?[{address:a,family:c}]:a))},resolve:s,async close(){try{await i.destroy()}catch{}}}}var CS=new Set([408,425,429,500,502,503,504]),Rh=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),lS=2,bh=4e3,Sh=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],uS=new Set([301,302,303,307,308]),Nh=3;function hS(e){let A=String(e||"").toLowerCase();return Sh.includes(A)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(A)}function dS(e){let A={};for(let[t,r]of Object.entries(e||{}))hS(t)||(A[t]=r);return A}function fS(e,A){if(!e)throw new Error(`HTTP redirect from ${A} missing Location`);let t=new URL(String(e),String(A));if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error(`HTTP redirect from ${A} used unsupported protocol ${t.protocol}`);return t.toString()}function wS(e,A){return new URL(String(e)).origin===new URL(String(A)).origin}var Oc=new Map;function yS(e,A,t){let r={};for(let[a,c]of Object.entries(t||{}))r[a.toLowerCase()]=c;let n=Object.keys(r).filter(a=>/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(a)),i=[...new Set([...Sh,...n])].sort().map(a=>`${a}=${r[a]??""}`).join(`
48
+ `),o=IS("sha256").update(i).digest("hex").slice(0,32);return`${e} ${A} ${o}`}function pS(e,A){let t=Number(A);return Number.isFinite(t)&&t>0?Math.min(t*1e3,bh):Math.min(250*2**e,bh)+Math.floor(Math.random()*100)}var DS=e=>new Promise(A=>setTimeout(A,e));async function mS(e,{fetchImpl:A,method:t,headers:r,body:n,timeoutMs:s,lookupFn:i,realFetch:o}){let a=new AbortController,c=setTimeout(()=>a.abort(),s),g=null,Q=A;try{let E=String(e),B={...r||{}};for(let I=0;I<=Nh;I+=1){let l=await Q(E,{method:t,headers:B,body:n,signal:a.signal,redirect:"manual"}),u=await l.text(),C=null;if(u)try{C=JSON.parse(u)}catch{C=null}if(uS.has(l.status)){if(t!=="GET"&&t!=="HEAD"){let p=new Error(`HTTP ${l.status} ${t} ${E} redirected non-idempotent request`);throw p.status=l.status,p.body=C??u.slice(0,300),p}if(I===Nh)throw new Error(`HTTP redirect loop for ${e}`);let h=fS(l.headers?.get?.("location"),E);if(!wS(h,E)){let p=await kh(h,i?{lookupFn:i}:{});if(!p.ok){let H=new Error(`HTTP redirect from ${E} ${p.error}`);throw H.status=l.status,H}B=dS(B),o&&p.addresses?.length&&(g||(g=await Fh()),g&&(g.pin(new URL(h).hostname,p.addresses[0].address,p.addresses[0].family),Q=g.fetch))}E=h;continue}if(!l.ok){let h=new Error(`HTTP ${l.status} ${t} ${E}`);throw h.status=l.status,h.retryAfter=l.headers?.get?.("retry-after")??null,h.body=C??u.slice(0,300),h}return C??u}throw new Error(`HTTP redirect loop for ${e}`)}finally{clearTimeout(c),g&&await g.close()}}async function Ii(e,A={}){let t=A.fetchImpl||globalThis.fetch;if(typeof t!="function")throw new Error("fetch unavailable \u2014 pass opts.fetchImpl");let r=A.timeoutMs??12e3,n=(A.method||"GET").toUpperCase(),s={Accept:"application/json",...A.headers||{}},i=A.body;i!=null&&typeof i!="string"&&(s["Content-Type"]=s["Content-Type"]||"application/json",i=JSON.stringify(i));let o=Number.isInteger(A.retries)?Math.max(A.retries,0):lS,a=A.lookupFn,c=!A.fetchImpl,g=async()=>{let l;for(let u=0;u<=o;u++)try{return await mS(e,{fetchImpl:t,method:n,headers:s,body:i,timeoutMs:r,lookupFn:a,realFetch:c})}catch(C){l=C;let h=C?.status,D=C?.name==="AbortError",p=new Set([408,425,429]),H=h!=null?p.has(h)||CS.has(h)&&Rh.has(n):!D&&Rh.has(n);if(u===o||!H)throw C;await DS(pS(u,C?.retryAfter))}throw l};if(!(A.dedupe!==!1&&n==="GET"&&i==null))return g();let E=yS(n,e,s),B=Oc.get(E);if(B)return B;let I=g().finally(()=>Oc.delete(E));return Oc.set(E,I),I}var Uh={robinhood:{chainId:4663,name:"Robinhood Chain",rpcEnv:["RH_CHAIN_RPC"],evm:!0},ethereum:{chainId:1,name:"Ethereum",rpcEnv:["ETH_RPC_URL","ETHEREUM_RPC_URL","MAINNET_RPC_URL"],evm:!0},polygon:{chainId:137,name:"Polygon",rpcEnv:["POLYGON_RPC_URL","POLYGON_RPC"],evm:!0},arbitrum:{chainId:42161,name:"Arbitrum One",rpcEnv:["ARBITRUM_RPC_URL","ARB_RPC_URL"],evm:!0},base:{chainId:8453,name:"Base",rpcEnv:["BASE_RPC_URL"],evm:!0},hyperevm:{chainId:999,name:"HyperEVM",rpcEnv:["HYPEREVM_RPC_URL","HYPER_EVM_RPC"],evm:!0},bsc:{chainId:56,name:"BNB Smart Chain",rpcEnv:["BSC_RPC_URL","BNB_RPC_URL"],evm:!0},avalanche:{chainId:43114,name:"Avalanche C-Chain",rpcEnv:["AVALANCHE_RPC_URL","AVAX_RPC_URL"],evm:!0},optimism:{chainId:10,name:"OP Mainnet",rpcEnv:["OPTIMISM_RPC_URL","OP_RPC_URL"],evm:!0},abstract:{chainId:2741,name:"Abstract",rpcEnv:["ABSTRACT_RPC_URL","ABS_RPC_URL"],evm:!0},stable:{chainId:988,name:"Stable Mainnet",rpcEnv:["STABLE_RPC_URL","STABLE_RPC"],evm:!0}},kS=new Map(Object.values(Uh).map(e=>[e.chainId,e]));function Mh(e){return kS.get(Number(e))||null}function Lh(e,A=process.env){let t=Mh(e);if(!t)return null;for(let r of t.rpcEnv){let n=(A[r]||"").trim();if(n)return n}return null}import{Interface as FS,getAddress as RS}from"ethers";var Th=new FS(["function allowance(address owner,address spender) view returns (uint256)","function balanceOf(address account) view returns (uint256)"]);function Yh(e,A){try{return RS(e).toLowerCase()}catch{throw new Error(`${A} must be a valid EVM address`)}}var bS={1:"https://ethereum.publicnode.com",137:"https://polygon-bor-rpc.publicnode.com",42161:"https://arbitrum-one-rpc.publicnode.com",8453:"https://base-rpc.publicnode.com",10:"https://optimism-rpc.publicnode.com",988:"https://rpc.stable.xyz",56:"https://bsc-rpc.publicnode.com",43114:"https://avalanche-c-chain-rpc.publicnode.com",999:"https://rpc.hyperliquid.xyz/evm",2741:"https://api.mainnet.abs.xyz",4663:"https://rpc.mainnet.chain.robinhood.com"};function NS(e,{rpcUrl:A,env:t=process.env}={}){if(A)return A;let r=Lh(e,t);return r||bS[Number(e)]||null}var SS=/^(?:eth_(?:call|blocknumber|chainid|get[a-z0-9]+|feehistory|gasprice|maxpriorityfeepergas|syncing|protocolversion|estimategas|createaccesslist)|net_(?:version|listening|peercount)|web3_(?:clientversion|sha3))$/;function US(e){let A=String(e||""),t=A.toLowerCase();if(A!==A.trim()||!/^[a-zA-Z0-9_]+$/.test(A)||!SS.test(t))throw new Error(`evm-rpc: ${A} refused \u2014 @oracle-agent/oracle is prepare-only (read RPC only; no broadcast/sign)`);return t}async function ie(e,A,t=[],r={}){let n=String(A||"");US(n);let s=NS(e,r);if(!s)throw new Error(`No RPC URL for chainId ${e} (set env from chain registry rpcEnv or pass rpcUrl)`);let o=await Ii(s,{method:"POST",body:{jsonrpc:"2.0",id:1,method:A,params:t},fetchImpl:r.fetchImpl,timeoutMs:r.timeoutMs??12e3});if(o?.error){let a=new Error(o.error.message||JSON.stringify(o.error));throw a.code=o.error.code,a}return o.result}async function xh(e,A={}){let t=await ie(e,"eth_blockNumber",[],A);return parseInt(t,16)}async function Gh(e,A,t={}){if(!A)throw new Error("rpcGetBalance requires address");let r=await ie(e,"eth_getBalance",[A,"latest"],t);return{chainId:Number(e),address:A,balanceWei:BigInt(r).toString(),balanceHex:r}}async function Jh(e={},A={}){let t=Number(e.chainId??A.chainId??1),r=Yh(e.token||e.tokenAddress,"token"),n=Yh(e.account||e.owner||e.address,"account"),s=Th.encodeFunctionData("balanceOf",[n]),i=await ie(t,"eth_call",[{to:r,data:s},e.blockTag||"latest"],A),o=Th.decodeFunctionResult("balanceOf",i),a=BigInt(o[0]);return{chainId:t,token:r,account:n,balance:a.toString(),balanceHex:`0x${a.toString(16)}`,blockTag:e.blockTag||"latest"}}var MS="https://api.dexscreener.com",tL=Object.freeze({1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avalanche",999:"hyperevm",4663:"robinhood"});function LS(e={}){return(e.baseUrl||process.env.DEXSCREENER_API_URL||MS).replace(/\/$/,"")}async function vh(e,A={}){if(!e)throw new Error("tokenAddress required");return Ii(`${LS(A)}/latest/dex/tokens/${e}`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??12e3})}var Zc={getAmountsOut:"d06ca61f",swapExactTokensForTokens:"38ed1739",swapExactETHForTokens:"7ff36ab5"},GA=e=>BigInt(e).toString(16).padStart(64,"0"),ln=e=>e.slice(2).toLowerCase().padStart(64,"0");function TS(e,A){return`0x${Zc.getAmountsOut}`+GA(e)+GA(64)+GA(A.length)+A.map(ln).join("")}function YS(e){if(!e||e==="0x")return null;let A=e.slice(2);if(A.length<128)return null;let t=Number(BigInt(`0x${A.slice(64,128)}`));if(!Number.isFinite(t)||t<1||t>16)return null;let r=[];for(let n=0;n<t;n++){let s=128+n*64;if(A.length<s+64)return null;r.push(BigInt(`0x${A.slice(s,s+64)}`))}return r}function Pc(e,A="router"){return(e?.venues||[]).find(r=>r.kind===A)?.address??null}var Kc=100;function xS(e,A){let t=Number(A);if(!Number.isFinite(t)||t<0)throw new Error("slippageBps must be a non-negative number");if(t>Kc)throw new Error(`slippageBps ${t} exceeds the ${Kc} bps ceiling. Block and requote or split the order -- do not widen the guard to force a fill.`);return BigInt(e)*BigInt(1e4-Math.floor(t))/10000n}function Hh(e){let{chainId:A,wrappedNative:t}=e;async function r(n,s,i,o){let a=await ie(A,"eth_call",[{to:n,data:TS(s,i)},"latest"],o);return YS(a?.result??a)}return{async quote({tokenIn:n,tokenOut:s,amountIn:i,path:o},a={}){let c=Pc(a.scanner);if(!c)return{chainId:A,evidence:G.UNAVAILABLE,reason:"no verified router configured for this chain; quoting stays fail-closed rather than guessing a venue address"};let g=o||[n,s];if(g.some(E=>!/^0x[0-9a-fA-F]{40}$/.test(E||"")))throw new Error("quote requires valid 20-byte addresses");let Q=await r(c,i,g,a);return Q?{chainId:A,router:c,path:g,amountIn:String(i),amountOut:Q[Q.length-1].toString(),hops:g.length-1,evidence:G.LIVE,note:"exact-input quote at current reserves; not a guaranteed fill"}:{chainId:A,router:c,path:g,evidence:G.UNKNOWN,reason:"router returned no amounts -- no pool for this path, or the call reverted"}},async sellSimulation({token:n,amountIn:s,base:i},o={}){let a=Pc(o.scanner),c=i||t;if(c&&String(n).toLowerCase()===String(c).toLowerCase())return{chainId:A,token:n,verdict:L.UNKNOWN,evidence:G.UNAVAILABLE,reason:"token is the base asset for this chain, so there is nothing to round-trip against. Sellability must be judged against a different quote asset."};if(!a||!c)return{chainId:A,token:n,verdict:L.UNKNOWN,evidence:G.UNAVAILABLE,reason:a?"no wrappedNative configured for this chain, so no base asset to round-trip against":"no verified router configured for this chain"};let g=await r(a,s,[c,n],o);if(!g)return{chainId:A,token:n,verdict:L.FAIL,evidence:G.LIVE,leg:"buy",reason:"buy leg returned no amounts -- no route in"};let Q=g[g.length-1];if(Q===0n)return{chainId:A,token:n,verdict:L.FAIL,evidence:G.LIVE,leg:"buy",reason:"buy leg quotes zero output"};let E=await r(a,Q,[n,c],o);if(!E)return{chainId:A,token:n,verdict:L.FAIL,evidence:G.LIVE,leg:"sell",bought:Q.toString(),reason:"SELL LEG FAILED while the buy leg quoted fine. This is the honeypot signature: do not trade."};let B=E[E.length-1],I=Number(B*10000n/BigInt(s)),l=L.PASS,u="round trip completes with expected fee/impact loss";return I<5e3?(l=L.FAIL,u=`round trip returns only ${(I/100).toFixed(2)}% -- punitive tax or no real liquidity`):I<9e3&&(l=L.CAUTION,u=`round trip returns ${(I/100).toFixed(2)}% -- transfer tax or thin liquidity at this size`),{chainId:A,token:n,base:c,router:a,verdict:l,reason:u,amountIn:String(s),bought:Q.toString(),returned:B.toString(),retentionBps:I,evidence:G.LIVE,note:"Quote-level round trip. It does not prove transfer hooks absent at execution time."}},async prepareUnsignedTx({tokenIn:n,tokenOut:s,amountIn:i,recipient:o,slippageBps:a=50,deadlineSeconds:c=900,path:g},Q={}){let E=Q.scanner,B=Pc(E);if(!B)throw new Error(`chain ${A} has no verified router; preparing a swap stays fail-closed. Add a venue with recorded provenance first (see docs/adding-a-chain.md).`);if(!/^0x[0-9a-fA-F]{40}$/.test(o||""))throw new Error("prepareUnsignedTx requires a valid recipient address");let I=g||[n,s],l=await this.quote({tokenIn:n,tokenOut:s,amountIn:i,path:I},Q);if(l.evidence!==G.LIVE)throw new Error(`cannot prepare without a live quote (${l.evidence}: ${l.reason??"no reason given"})`);let u=xS(l.amountOut,a);if(u<=0n)throw new Error("computed minOut is zero -- refusing to prepare");let C=BigInt(Math.floor(Date.now()/1e3)+Number(c)),h=t&&I[0].toLowerCase()===t.toLowerCase()&&Q.useNative,D=h?`0x${Zc.swapExactETHForTokens}`+GA(u)+GA(128)+ln(o)+GA(C)+GA(I.length)+I.map(ln).join(""):`0x${Zc.swapExactTokensForTokens}`+GA(i)+GA(u)+GA(160)+ln(o)+GA(C)+GA(I.length)+I.map(ln).join("");return{unsigned:!0,signedBy:"user-wallet",chainId:A,tx:{to:B,data:D,value:h?`0x${BigInt(i).toString(16)}`:"0x0"},guard:{quotedOut:l.amountOut,minOut:u.toString(),slippageBps:a,maxSlippageBps:Kc,deadline:C.toString()},requires:h?[]:[{step:"approve",token:I[0],spender:B,amount:String(i)}],note:"UNSIGNED. Re-verify the guard against a fresh quote immediately before signing -- a quote-time minimum is not a minimum at broadcast time."}}}}var GS=[100,500,3e3,1e4],Vh={quoteExactInputSingle:"c6a5026a",exactInputSingle:"04e45aaf"},Et=e=>BigInt(e).toString(16).padStart(64,"0"),un=e=>e.slice(2).toLowerCase().padStart(64,"0"),qh=/^0x[0-9a-fA-F]{40}$/,Xc=100;function JS(e,A){let t=Number(A);if(!Number.isFinite(t)||t<0)throw new Error("slippageBps must be a non-negative number");if(t>Xc)throw new Error(`slippageBps ${t} exceeds the ${Xc} bps ceiling. Block and requote or split the order -- do not widen the guard to force a fill.`);return BigInt(e)*BigInt(1e4-Math.floor(t))/10000n}function zc(e,A){return(e?.venues||[]).find(t=>t.kind===A)?.address??null}function Wh(e){let{chainId:A,wrappedNative:t}=e;async function r({quoter:s,tokenIn:i,tokenOut:o,amountIn:a,fee:c},g){let Q=`0x${Vh.quoteExactInputSingle}`+un(i)+un(o)+Et(a)+Et(c)+Et(0),E=await ie(A,"eth_call",[{to:s,data:Q},"latest"],g).catch(()=>null),B=E?.result??E;if(!B||B==="0x"||B.length<66)return null;let I=BigInt(`0x${B.slice(2,66)}`);return I>0n?I:null}async function n({quoter:s,tokenIn:i,tokenOut:o,amountIn:a},c){let g=[],Q=null;for(let E of GS){let B=await r({quoter:s,tokenIn:i,tokenOut:o,amountIn:a,fee:E},c);g.push({fee:E,amountOut:B?B.toString():null}),B&&(!Q||B>Q.amountOut)&&(Q={fee:E,amountOut:B})}return{best:Q,tried:g}}return{async quote({tokenIn:s,tokenOut:i,amountIn:o},a={}){let c=zc(a.scanner,"quoter");if(!c)return{chainId:A,evidence:G.UNAVAILABLE,reason:"no verified quoter configured for this chain; quoting stays fail-closed rather than guessing a venue address"};for(let E of[s,i])if(!qh.test(E||""))throw new Error("quote requires valid 20-byte addresses");let{best:g,tried:Q}=await n({quoter:c,tokenIn:s,tokenOut:i,amountIn:o},a);return g?{chainId:A,venue:"uniswap-v3",quoter:c,tokenIn:s,tokenOut:i,amountIn:String(o),amountOut:g.amountOut.toString(),fee:g.fee,useNative:!!t&&String(s).toLowerCase()===String(t).toLowerCase(),triedFeeTiers:Q,evidence:G.LIVE,note:"exact-input single-hop quote at current tick; not a guaranteed fill"}:{chainId:A,quoter:c,tokenIn:s,tokenOut:i,triedFeeTiers:Q,evidence:G.UNKNOWN,reason:"no fee tier returned a quote -- no V3 pool for this pair, or no liquidity"}},async sellSimulation({token:s,amountIn:i,base:o},a={}){let c=zc(a.scanner,"quoter"),g=o||t;if(g&&String(s).toLowerCase()===String(g).toLowerCase())return{chainId:A,token:s,verdict:L.UNKNOWN,evidence:G.UNAVAILABLE,reason:"token is the base asset for this chain, so there is nothing to round-trip against. Sellability must be judged against a different quote asset."};if(!c||!g)return{chainId:A,token:s,verdict:L.UNKNOWN,evidence:G.UNAVAILABLE,reason:c?"no wrappedNative configured, so there is no base asset to round-trip against":"no verified quoter configured for this chain"};let Q=await n({quoter:c,tokenIn:g,tokenOut:s,amountIn:i},a);if(!Q.best)return{chainId:A,token:s,verdict:L.FAIL,evidence:G.LIVE,leg:"buy",reason:"no V3 pool priced the buy leg on any fee tier"};let E=await n({quoter:c,tokenIn:s,tokenOut:g,amountIn:Q.best.amountOut},a);if(!E.best)return{chainId:A,token:s,verdict:L.FAIL,evidence:G.LIVE,leg:"sell",bought:Q.best.amountOut.toString(),reason:"SELL LEG FAILED while the buy leg quoted fine. This is the honeypot signature: do not trade."};let B=E.best.amountOut,I=Number(B*10000n/BigInt(i)),l=L.PASS,u="round trip completes with expected fee/impact loss";return I<5e3?(l=L.FAIL,u=`round trip returns only ${(I/100).toFixed(2)}% -- punitive tax or no real liquidity`):I<9e3&&(l=L.CAUTION,u=`round trip returns ${(I/100).toFixed(2)}% -- transfer tax or thin liquidity at this size`),{chainId:A,venue:"uniswap-v3",token:s,base:g,verdict:l,reason:u,amountIn:String(i),bought:Q.best.amountOut.toString(),returned:B.toString(),retentionBps:I,buyFee:Q.best.fee,sellFee:E.best.fee,evidence:G.LIVE,note:"Quote-level round trip. It does not prove transfer hooks absent at execution time."}},async prepareUnsignedTx({tokenIn:s,tokenOut:i,amountIn:o,recipient:a,slippageBps:c=50,fee:g},Q={}){let E=zc(Q.scanner,"router");if(!E)throw new Error(`chain ${A} has no verified V3 router; preparing a swap stays fail-closed. Add a venue with recorded provenance first (see docs/adding-a-chain.md).`);if(!qh.test(a||""))throw new Error("prepareUnsignedTx requires a valid recipient address");let B=await this.quote({tokenIn:s,tokenOut:i,amountIn:o},Q);if(B.evidence!==G.LIVE)throw new Error(`cannot prepare without a live quote (${B.evidence}: ${B.reason??"no reason given"})`);let I=g??B.fee,l=JS(B.amountOut,c);if(l<=0n)throw new Error("computed minOut is zero -- refusing to prepare");let u=!!(Q.useNative||B.useNative)&&t&&String(s).toLowerCase()===String(t).toLowerCase(),C=`0x${Vh.exactInputSingle}`+un(s)+un(i)+Et(I)+un(a)+Et(o)+Et(l)+Et(0);return{unsigned:!0,signedBy:"user-wallet",chainId:A,venue:"uniswap-v3",tx:{to:E,data:C,value:u?String(o):"0x0"},guard:{quotedOut:B.amountOut,minOut:l.toString(),slippageBps:c,maxSlippageBps:Xc,fee:I},requires:u?[]:[{step:"approve",token:s,spender:E,amount:String(o)}],note:"UNSIGNED. Re-verify the guard against a fresh quote immediately before signing -- a quote-time minimum is not a minimum at broadcast time."}}}}var Ci={decimals:"0x313ce567",symbol:"0x95d89b41",name:"0x06fdde03",totalSupply:"0x18160ddd",owner:"0x8da5cb5b"};function Oh(e){if(!e||e==="0x")return null;try{return BigInt(e)}catch{return null}}function Ph(e){if(!e||e==="0x")return null;let A=e.slice(2);if(A.length>=128){let r=Number(BigInt(`0x${A.slice(64,128)}`));if(r>0&&r<=256&&A.length>=128+r*2){let n=A.slice(128,128+r*2),s=Buffer.from(n,"hex").toString("utf8").replace(/\0+$/,"");if(s)return s}}return Buffer.from(A.slice(0,64),"hex").toString("utf8").replace(/\0+$/,"")||null}function vS(e){let{chainId:A}=e;async function t(r,n,s){return ie(A,"eth_call",[{to:r,data:n},"latest"],s)}return{async blockNumber(r={}){let n=await xh(A,r);return{chainId:A,blockNumber:n?.blockNumber??n,evidence:G.LIVE}},async nativeBalance(r,n={}){let s=await Gh(A,r,n);return{chainId:A,address:r,wei:s?.wei??s?.balance??null,symbol:e.nativeCurrency?.symbol??null,decimals:e.nativeCurrency?.decimals??18,evidence:G.LIVE}},async tokenBalance({token:r,owner:n},s={}){let i=await Jh({chainId:A,token:r,owner:n},s);return{chainId:A,token:r,owner:n,raw:i?.balance??i,evidence:G.LIVE}},async resolveToken(r,n={}){if(!/^0x[0-9a-fA-F]{40}$/.test(r||""))return{chainId:A,token:r,evidence:G.UNKNOWN,error:"resolveToken needs a 20-byte address; symbol lookup is a market-data concern"};let[s,i,o,a]=await Promise.all([t(r,Ci.decimals,n).catch(()=>null),t(r,Ci.symbol,n).catch(()=>null),t(r,Ci.name,n).catch(()=>null),t(r,Ci.totalSupply,n).catch(()=>null)]),c=Oh(s?.result??s),g=c!==null||i?.result||o?.result;return{chainId:A,address:r,decimals:c===null?null:Number(c),symbol:Ph(i?.result??i),name:Ph(o?.result??o),totalSupply:(Oh(a?.result??a)??null)?.toString()??null,evidence:g?G.LIVE:G.UNKNOWN,warning:g?void 0:"no ERC-20 metadata returned -- may not be a token contract"}},async resolvePools(r,n={}){let s=e.dexscreenerSlug;if(!s)return{chainId:A,token:r,pools:[],evidence:G.UNAVAILABLE,reason:"no dexscreenerSlug configured for this chain; pool discovery is unavailable rather than guessed"};let i=await vh(r,n).catch(()=>null),a=(i?.pairs||i?.data?.pairs||[]).filter(c=>String(c.chainId).toLowerCase()===String(s).toLowerCase()).map(c=>({pair:c.pairAddress,dex:c.dexId,base:c.baseToken?.address,quote:c.quoteToken?.address,liquidityUsd:c.liquidity?.usd??null,priceUsd:c.priceUsd??null,volume24hUsd:c.volume?.h24??null,createdAt:c.pairCreatedAt??null})).sort((c,g)=>(g.liquidityUsd??0)-(c.liquidityUsd??0));return{chainId:A,token:r,pools:a,evidence:a.length?G.LIVE:G.UNKNOWN}},async scanBlocks({fromBlock:r,toBlock:n,address:s,topics:i,chunkSize:o=2e3}={},a={}){if(!Number.isInteger(r)||!Number.isInteger(n))throw new Error("scanBlocks requires integer fromBlock and toBlock");if(n<r)throw new Error("toBlock must be >= fromBlock");let c=[],g=[];for(let Q=r;Q<=n;Q+=o){let E=Math.min(Q+o-1,n);g.push([Q,E])}for(let[Q,E]of g){let B={fromBlock:`0x${Q.toString(16)}`,toBlock:`0x${E.toString(16)}`};s&&(B.address=s),i&&(B.topics=i);let I=await ie(A,"eth_getLogs",[B],a).catch(l=>({error:String(l?.message||l)}));if(I?.error)return{chainId:A,fromBlock:r,toBlock:n,logs:c,complete:!1,failedAt:[Q,E],error:I.error,evidence:G.UNKNOWN};for(let l of I?.result??I??[])c.push(l)}return{chainId:A,fromBlock:r,toBlock:n,logs:c,complete:!0,chunks:g.length,evidence:G.LIVE}},async scoreRisk(r,n={}){let s=[],i=L.PASS,o=g=>{let Q={[L.PASS]:0,[L.CAUTION]:1,[L.UNKNOWN]:2,[L.FAIL]:3};Q[g]>Q[i]&&(i=g)},a=await this.resolveToken(r,n);a.evidence!==G.LIVE?(s.push({check:"erc20-metadata",result:L.UNKNOWN,detail:a.warning}),o(L.UNKNOWN)):s.push({check:"erc20-metadata",result:L.PASS,detail:`${a.symbol} / ${a.decimals}d`});let c=await this.resolvePools(r,n);if(c.evidence===G.UNAVAILABLE)s.push({check:"liquidity",result:L.UNKNOWN,detail:c.reason}),o(L.UNKNOWN);else if(!c.pools.length)s.push({check:"liquidity",result:L.FAIL,detail:"no pool with liquidity found"}),o(L.FAIL);else{let g=c.pools[0],Q=g.liquidityUsd??0;Q<5e3?(s.push({check:"liquidity",result:L.CAUTION,detail:`top pool only $${Q}`}),o(L.CAUTION)):s.push({check:"liquidity",result:L.PASS,detail:`$${Q} on ${g.dex}`}),g.createdAt&&Date.now()-g.createdAt<24*3600*1e3&&(s.push({check:"age",result:L.CAUTION,detail:"pool under 24h old"}),o(L.CAUTION))}if(typeof this.sellSimulation=="function"){let g=await this.sellSimulation({token:r,amountIn:(10n**16n).toString()},n).catch(Q=>({verdict:L.UNKNOWN,reason:String(Q?.message||Q)}));s.push({check:"sellability",result:g.verdict,detail:g.retentionBps!=null?`round trip returns ${(g.retentionBps/100).toFixed(2)}% -- ${g.reason}`:g.reason}),o(g.verdict)}else s.push({check:"sellability",result:L.UNKNOWN,detail:"no verified router on this chain, so a round-trip sell simulation cannot run. Treat as unproven -- a buy path is not an exit path."}),o(L.UNKNOWN);return{chainId:A,token:r,verdict:i,checks:s,note:"Structural checks only. UNKNOWN is not PASS. A token is not tradeable until a sell simulation succeeds."}}}}function _c(e){let t={...vS(e)},r=new Set((e.venues||[]).map(s=>s.kind));e.venueKind==="uniswap-v3"&&r.has("quoter")&&r.has("router")?Object.assign(t,Wh({chainId:e.chainId,wrappedNative:e.wrappedNative})):e.venueKind==="uniswap-v2"&&r.has("router")&&Object.assign(t,Hh({chainId:e.chainId,wrappedNative:e.wrappedNative}));let n={};for(let[s,i]of Object.entries(t))n[s]=i.bind(t);return{key:e.key,chainId:e.chainId,name:e.name,rpcEnv:e.rpcEnv,nativeCurrency:e.nativeCurrency,explorer:e.explorer,venues:e.venues||[],capabilities:n}}var Zh=Object.freeze([{key:"ethereum",chainId:1,name:"Ethereum",rpcEnv:["ETH_RPC_URL","ETHEREUM_RPC_URL","MAINNET_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},explorer:"https://etherscan.io",dexscreenerSlug:"ethereum",venueKind:"uniswap-v3",wrappedNative:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",venues:[{kind:"quoter",address:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WETH->USDC fee 500 quoted 1908.71 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:1}},{kind:"router",address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:1}}]},{key:"optimism",chainId:10,name:"OP Mainnet",rpcEnv:["OPTIMISM_RPC_URL","OP_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},explorer:"https://optimistic.etherscan.io",dexscreenerSlug:"optimism",venueKind:"uniswap-v3",wrappedNative:"0x4200000000000000000000000000000000000006",venues:[{kind:"quoter",address:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WETH->USDC fee 500 quoted 1905.23 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:10}},{kind:"router",address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:10}}]},{key:"bsc",chainId:56,name:"BNB Smart Chain",rpcEnv:["BSC_RPC_URL","BNB_RPC_URL"],nativeCurrency:{symbol:"BNB",decimals:18},explorer:"https://bscscan.com",dexscreenerSlug:"bsc",venueKind:"uniswap-v3",wrappedNative:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",venues:[{kind:"quoter",address:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WBNB->USDC fee 500 quoted 413.86 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:56}},{kind:"router",address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:56}}]},{key:"polygon",chainId:137,name:"Polygon",rpcEnv:["POLYGON_RPC_URL","POLYGON_RPC"],nativeCurrency:{symbol:"POL",decimals:18},explorer:"https://polygonscan.com",dexscreenerSlug:"polygon",venueKind:"uniswap-v3",wrappedNative:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",venues:[{kind:"quoter",address:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WMATIC->USDC fee 500 quoted 0.0720 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:137}},{kind:"router",address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:137}}]},{key:"stable",chainId:988,name:"Stable Mainnet",rpcEnv:["STABLE_RPC_URL","STABLE_RPC"],nativeCurrency:{symbol:"USDT0",decimals:18},venueKind:"uniswap-v3",wrappedNative:"0x5d442b349590a6048Eb2dC0eC346cAA5F47A9ab5",venues:[{kind:"quoter",address:"0xb070179E7032CdA868b53e6C1742F80c9e940d1A",label:"Uniswap V3 QuoterV2 (canonical)",verified:{method:"Stable is on the OFFICIAL Uniswap v3 Deployments List (governance-recognised 2026-05-12, UAC process completed 2026-04, deployed by Protofire), so this is a canonical deployment rather than a fork. eth_getCode returned 8273 bytes, the same size as the canonical quoter on the seven already-verified chains. Functional probe on a live pool (TOAST -> USDT0, fee 10000): 100 in -> 0.000003, 1000 -> 0.000031, 10000 -> 0.000319 USDT0. Output scales monotonically with input, which is a working quoter answering, not a revert. Two of three sampled pools carry non-zero liquidity. NOTE: the pools discovered so far are thin, so real routing size is limited -- the venue is proved, deep liquidity is not.",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-08-05",chainId:988}},{kind:"router",address:"0x32eaf9B5d5F2CD7361c5012890C943D7de84C22a",label:"Uniswap SwapRouter02 (canonical)",verified:{method:"eth_getCode returned 24497 bytes. Cross-checked on-chain rather than trusted from docs: router.factory() returns 0x88f0a512ef09175d456bc9547f914f48c013e4aa, the same v3 core factory that created the pools quoted above, and router.WETH9() returns the wrappedNative recorded on this chain entry. Address published in the Stable docs DEX reference and the Uniswap deployments list.",source:"docs.stable.xyz/en/reference/dexes + on-chain factory()/WETH9() round-trip",date:"2026-08-05",chainId:988}}]},{key:"hyperevm",chainId:999,name:"HyperEVM",rpcEnv:["HYPEREVM_RPC_URL","HYPER_EVM_RPC"],nativeCurrency:{symbol:"HYPE",decimals:18},dexscreenerSlug:"hyperevm",venueKind:"uniswap-v3",wrappedNative:"0x5555555555555555555555555555555555555555",venues:[{kind:"quoter",address:"0x03A918028f22D9E1473B7959C927AD7425A45C7C",label:"HyperSwap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle(1 WHYPE -> USDT0) returned live output on all four fee tiers (100: 57.3385, 500: 57.4187, 3000: 57.3237, 10000: 56.1963 USDT0). Decimals read on-chain: WHYPE 18, USDT0 6. Best tier checked against an INDEPENDENT control the same minute -- Hyperliquid allMids put HYPE at 57.3205, so the pool is 0.171% from the perp mid, which is the right shape for fee plus impact rather than a wrong contract or a decimals bug.",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-08-05",chainId:999}},{kind:"router",address:"0x4E2960a8cd19B467b82d26D83fAcb0fAE26b094D",label:"HyperSwap V3 SwapRouter",verified:{method:"eth_getCode returned 12070 bytes, and it is the router paired with the quoter proved above -- the same pair already shipped in UNI_V3_VENUES[999].hyperswap, which is the map the quote/prepare path actually routes through.",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-08-05",chainId:999}}]},{key:"abstract",chainId:2741,name:"Abstract",rpcEnv:["ABSTRACT_RPC_URL","ABS_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},venueKind:"uniswap-v3",wrappedNative:"0x3439153EB7AF838Ad19d56E1571FBD09333C2809",venues:[{kind:"quoter",address:"0x728BD3eC25D5EDBafebB84F3d67367Cd9EBC7693",label:"Uniswap V3 QuoterV2 (Abstract deployment)",verified:{method:"Abstract is a ZK-stack chain, so CREATE2 addresses differ and the canonical Uniswap addresses are NOT valid here -- probing them returns codesize 0, which is what previously made this chain look like it had no V3 at all. Found the real deployment from live traffic instead: scanned recent Swap(...) logs, took the busiest pool, read pool.factory() = 0xa1160e73b63f322ae88cc2d8e700833e71d0b2a1, then enumerated that factory's deployer (0xf3d63166F0Ca56C3c1A3508FcE03Ff0Cf3Fb691e) and probed each of its 56 contracts with a real quoteExactInputSingle call. Exactly one answered: 1 WETH -> 1846.475731 USDC.e at fee 500. Independent sanity check: the pool's own slot0() spot price is 1873.11 USDC.e per WETH, so the quoter sits ~1.4% below spot, the right shape for fee plus price impact on this size.",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-08-05",chainId:2741}},{kind:"router",address:"0x7712FA47387542819d4E35A23f8116C90C18767C",label:"Uniswap SwapRouter02 (Abstract deployment)",verified:{method:"eth_getCode returned 167392 bytes and the runtime contains the exactInputSingle selector. router.factory() matches the factory proved above and router.WETH9() matches the wrappedNative on this entry. Chosen over its byte-identical twin (0xfD6257F4...) because this is the address real users actually route through: it appeared as tx.to on live swaps against the WETH/USDC.e pool.",source:"on-chain factory()/WETH9() round-trip + live swap tx.to sampling",date:"2026-08-05",chainId:2741}}]},{key:"robinhood",chainId:4663,name:"Robinhood Chain",rpcEnv:["RH_CHAIN_RPC","ROBINHOOD_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},dexscreenerSlug:"robinhood",venueKind:"uniswap-v3",wrappedNative:"0x0bd7d308f8e1639fab988df18a8011f41eacad73",venues:[{kind:"quoter",address:"0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WETH->USDG fee 100 quoted 1866.58 USDG, and USDG->CASHCAT fee 10000 quoted a live amount). A contract that correctly prices known pairs IS a working V3 quoter",source:"live eth_call against rpc.mainnet.chain.robinhood.com",date:"2026-07-31",chainId:4663}},{kind:"router",address:"0xcaf681a66d020601342297493863e78c959e5cb2",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode (24497 bytes) on this chain and the paired quoter at the same deployment passed a live functional quote",source:"live eth_getCode against rpc.mainnet.chain.robinhood.com",date:"2026-07-31",chainId:4663}},{kind:"factory",address:"0x1f7d7550b1b028f7571e69a784071f0205fd2efa",label:"Uniswap V3 Factory",verified:{method:"eth_getCode returned real bytecode (24535 bytes) and a PoolCreated log scan over this factory returned 76 pools in ~9000 recent blocks",source:"live eth_getLogs against rpc.mainnet.chain.robinhood.com",date:"2026-07-31",chainId:4663}}]},{key:"base",chainId:8453,name:"Base",rpcEnv:["BASE_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},explorer:"https://basescan.org",dexscreenerSlug:"base",venueKind:"uniswap-v3",wrappedNative:"0x4200000000000000000000000000000000000006",venues:[{kind:"quoter",address:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",label:"Uniswap V3 QuoterV2 (Base)",verified:{method:"functional probe: quoteExactInputSingle returned WETH->USDC at fee 500 = 1908.44 USDC, a live sane price. The canonical mainnet quoter address also has bytecode on Base but does NOT price this pair, which is exactly the false positive a codesize-only check accepts",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:8453}},{kind:"router",address:"0x2626664c2603336E57B271c5C0b26F421741e481",label:"Uniswap V3 SwapRouter02 (Base)",verified:{method:"eth_getCode returned real bytecode and the paired Base quoter passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:8453}},{kind:"router-v2",address:"0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24",label:"Uniswap V2 Router02 (Base)",verified:{method:"eth_getCode returned 17891 bytes; live getAmountsOut on WETH->USDC round-tripped to 98.75% (2x0.30% fee + impact)",source:"https://docs.uniswap.org/contracts/v2/reference/smart-contracts/v2-deployments",date:"2026-07-30",chainId:8453}}]},{key:"arbitrum",chainId:42161,name:"Arbitrum One",rpcEnv:["ARBITRUM_RPC_URL","ARB_RPC_URL"],nativeCurrency:{symbol:"ETH",decimals:18},explorer:"https://arbiscan.io",dexscreenerSlug:"arbitrum",venueKind:"uniswap-v3",wrappedNative:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",venues:[{kind:"quoter",address:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WETH->USDC fee 500 quoted 1908.72 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:42161}},{kind:"router",address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:42161}}]},{key:"avalanche",chainId:43114,name:"Avalanche C-Chain",rpcEnv:["AVALANCHE_RPC_URL","AVAX_RPC_URL"],nativeCurrency:{symbol:"AVAX",decimals:18},explorer:"https://snowtrace.io",dexscreenerSlug:"avalanche",venueKind:"uniswap-v3",wrappedNative:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",venues:[{kind:"quoter",address:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",label:"Uniswap V3 QuoterV2",verified:{method:"functional probe, not a codesize check: quoteExactInputSingle returned a live sane price (WAVAX->USDC fee 500 quoted 6.48 USDC). A contract that correctly prices a known pair IS a working V3 quoter",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:43114}},{kind:"router",address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE",label:"Uniswap V3 SwapRouter02",verified:{method:"eth_getCode returned real bytecode on this chain and the paired quoter at the same deployment passed a live functional quote",source:"scripts/verify-v3-venues.mjs (re-runnable)",date:"2026-07-30",chainId:43114}}]}]);function HS(){return Zh.map(e=>ui(_c(e)))}function VS(e){return ui(_c(e))}export{Zh as CHAIN_CONFIGS,G as EVIDENCE,L as RISK,Ir as SCANNER_CAPABILITIES,PS as __clearScanners,rd as createScanner,WS as getScanner,OS as listScanners,HS as registerBuiltinScanners,VS as registerCustomChain,ui as registerScanner,ZS as scannerCoverage,td as validateScanner};