@oracle-agent/oracle 0.26.0 → 0.28.0

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 (44) hide show
  1. package/README.md +2 -2
  2. package/SETUP.md +27 -1
  3. package/dist/assets/skills/oracle-desk-product/SKILL.md +1 -1
  4. package/dist/bin/desk-server.mjs +35 -79
  5. package/dist/bin/oracle-data-mcp.mjs +13 -57
  6. package/dist/bin/oracle-gateway.mjs +1 -1
  7. package/dist/bin/oracle-public-server.mjs +4 -48
  8. package/dist/bin/oracle-route.mjs +22 -66
  9. package/dist/bin/oracle-scan.mjs +15 -59
  10. package/dist/cli/commands/auth.mjs +3 -3
  11. package/dist/cli/commands/chat.mjs +154 -145
  12. package/dist/cli/commands/doctor.mjs +4 -4
  13. package/dist/cli/commands/eval.mjs +147 -190
  14. package/dist/cli/commands/farm.mjs +34 -78
  15. package/dist/cli/commands/follow.mjs +17 -61
  16. package/dist/cli/commands/harness.mjs +3 -3
  17. package/dist/cli/commands/init.mjs +2 -2
  18. package/dist/cli/commands/model.mjs +158 -150
  19. package/dist/cli/commands/receipt.mjs +3 -3
  20. package/dist/cli/commands/resolve.mjs +13 -57
  21. package/dist/cli/commands/setup.mjs +43 -39
  22. package/dist/cli/commands/sign.mjs +14 -14
  23. package/dist/cli/commands/signer.mjs +14 -14
  24. package/dist/cli/commands/strategy.mjs +5 -49
  25. package/dist/cli/commands/swap.mjs +27 -71
  26. package/dist/cli/commands/venues.mjs +3 -3
  27. package/dist/data/desk-data.mjs +33 -77
  28. package/dist/data/names.mjs +2 -46
  29. package/dist/data/providers/farming.mjs +2 -46
  30. package/dist/index.mjs +37 -81
  31. package/dist/local-signer/anvil-attestation-worker.mjs +2 -0
  32. package/dist/local-signer/index.mjs +3 -3
  33. package/dist/local-signer/runtime.mjs +13 -0
  34. package/dist/nft/universal-mint-router.mjs +3 -47
  35. package/dist/router/index.mjs +2 -46
  36. package/dist/router/prepare-bridge.mjs +2 -46
  37. package/dist/scanner/index.mjs +4 -48
  38. package/dist/strategy/index.mjs +3 -47
  39. package/package.json +2 -1
  40. package/public/install.sh +20 -0
  41. package/public/oracle-splash/_variants/ice.html +1 -1
  42. package/public/oracle-splash/_variants/ivory.html +1 -1
  43. package/public/oracle-splash/index.html +1 -1
  44. package/public/oracle-splash/install.sh +20 -0
@@ -1,62 +1,18 @@
1
1
  #!/usr/bin/env node
2
- var nd=Object.create;var rg=Object.defineProperty;var sd=Object.getOwnPropertyDescriptor;var id=Object.getOwnPropertyNames;var od=Object.getPrototypeOf,ad=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 cd=(e,A,t,r)=>{if(A&&typeof A=="object"||typeof A=="function")for(let n of id(A))!ad.call(e,n)&&n!==t&&rg(e,n,{get:()=>A[n],enumerable:!(r=sd(A,n))||r.enumerable});return e};var gd=(e,A,t)=>(t=e!=null?nd(od(e)):{},cd(A||!e||!e.__esModule?rg(t,"default",{value:e,enumerable:!0}):t,e));var X=f((AU,ng)=>{ng.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 J=f((eU,bg)=>{"use strict";var sg=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[sg]===!0}[sg]=!0},ig=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),pi=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[ig]===!0}[ig]=!0},og=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[og]===!0}[og]=!0},ag=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),ki=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[ag]===!0}[ag]=!0},cg=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),mi=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[cg]===!0}[cg]=!0},gg=Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE"),Fi=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[gg]===!0}[gg]=!0},Qg=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),Ri=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[Qg]===!0}[Qg]=!0},Eg=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),bi=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[Eg]===!0}[Eg]=!0},Bg=Symbol.for("undici.error.UND_ERR_ABORT"),pn=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[Bg]===!0}[Bg]=!0},Ig=Symbol.for("undici.error.UND_ERR_ABORTED"),Ni=class extends pn{constructor(A){super(A),this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](A){return A&&A[Ig]===!0}[Ig]=!0},lg=Symbol.for("undici.error.UND_ERR_INFO"),Si=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[lg]===!0}[lg]=!0},Cg=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),Ui=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[Cg]===!0}[Cg]=!0},ug=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),Mi=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[ug]===!0}[ug]=!0},hg=Symbol.for("undici.error.UND_ERR_DESTROYED"),Li=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[hg]===!0}[hg]=!0},dg=Symbol.for("undici.error.UND_ERR_CLOSED"),Ti=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[dg]===!0}[dg]=!0},fg=Symbol.for("undici.error.UND_ERR_SOCKET"),Yi=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[fg]===!0}[fg]=!0},wg=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),xi=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[wg]===!0}[wg]=!0},yg=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),Gi=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[yg]===!0}[yg]=!0},pg=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),vi=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[pg]===!0}[pg]=!0},Dg=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),Ji=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},kg=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),Hi=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[kg]===!0}[kg]=!0},mg=Symbol.for("undici.error.UND_ERR_RESPONSE"),Vi=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[mg]===!0}[mg]=!0},Fg=Symbol.for("undici.error.UND_ERR_PRX_TLS"),qi=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[Fg]===!0}[Fg]=!0},Rg=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),Wi=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[Rg]===!0}get[Rg](){return!0}};bg.exports={AbortError:pn,HTTPParserError:vi,UndiciError:_,HeadersTimeoutError:Di,HeadersOverflowError:ki,BodyTimeoutError:mi,RequestContentLengthMismatchError:Ui,ConnectTimeoutError:pi,ResponseStatusCodeError:Fi,InvalidArgumentError:Ri,InvalidReturnValueError:bi,RequestAbortedError:Ni,ClientDestroyedError:Li,ClientClosedError:Ti,InformationalError:Si,SocketError:Yi,NotSupportedError:xi,ResponseContentLengthMismatchError:Mi,BalancedPoolMissingUpstreamError:Gi,ResponseExceededMaxSizeError:Ji,RequestRetryError:Hi,ResponseError:Vi,SecureProxyConnectionError:qi,MessageSizeExceededError:Wi}});var kn=f((tU,Ng)=>{"use strict";var Dn={},Oi=["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<Oi.length;++e){let A=Oi[e],t=A.toLowerCase();Dn[A]=Dn[t]=t}Object.setPrototypeOf(Dn,null);Ng.exports={wellknownHeaderNames:Oi,headerNameLowerCasedRecord:Dn}});var Lg=f((rU,Mg)=>{"use strict";var{wellknownHeaderNames:Sg,headerNameLowerCasedRecord:Qd}=kn(),Pi=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}},mn=class{node=null;insert(A,t){this.node===null?this.node=new Pi(A,t,0):this.node.add(A,t)}lookup(A){return this.node?.search(A)?.value??null}},Ug=new mn;for(let e=0;e<Sg.length;++e){let A=Qd[Sg[e]];Ug.insert(A,A)}Mg.exports={TernarySearchTree:mn,tree:Ug}});var L=f((nU,Xg)=>{"use strict";var ur=d("node:assert"),{kDestroyed:Yg,kBodyUsed:dt,kListeners:Zi,kBody:Tg}=X(),{IncomingMessage:Ed}=d("node:http"),bn=d("node:stream"),Bd=d("node:net"),{Blob:Id}=d("node:buffer"),ld=d("node:util"),{stringify:Cd}=d("node:querystring"),{EventEmitter:ud}=d("node:events"),{InvalidArgumentError:aA}=J(),{headerNameLowerCasedRecord:hd}=kn(),{tree:xg}=Lg(),[dd,fd]=process.versions.node.split(".").map(e=>Number(e)),Rn=class{constructor(A){this[Tg]=A,this[dt]=!1}async*[Symbol.asyncIterator](){ur(!this[dt],"disturbed"),this[dt]=!0,yield*this[Tg]}};function wd(e){return Nn(e)?(Vg(e)===0&&e.on("data",function(){ur(!1)}),typeof e.readableDidRead!="boolean"&&(e[dt]=!1,ud.prototype.on.call(e,"data",function(){this[dt]=!0})),e):e&&typeof e.pipeTo=="function"?new Rn(e):e&&typeof e!="string"&&!ArrayBuffer.isView(e)&&Hg(e)?new Rn(e):e}function yd(){}function Nn(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function Gg(e){if(e===null)return!1;if(e instanceof Id)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 pd(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 vg(e){let A=parseInt(e,10);return A===Number(e)&&A>=0&&A<=65535}function Fn(e){return e!=null&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&(e[4]===":"||e[4]==="s"&&e[5]===":")}function Jg(e){if(typeof e=="string"){if(e=new URL(e),!Fn(e.origin||e.protocol))throw new aA("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new aA("Invalid URL: The URL argument must be a non-null object.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&vg(e.port)===!1)throw new aA("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 aA("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new aA("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new aA("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new aA("Invalid URL origin: the origin must be a string or null/undefined.");if(!Fn(e.origin||e.protocol))throw new aA("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(!Fn(e.origin||e.protocol))throw new aA("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function Dd(e){if(e=Jg(e),e.pathname!=="/"||e.search||e.hash)throw new aA("invalid url");return e}function kd(e){if(e[0]==="["){let t=e.indexOf("]");return ur(t!==-1),e.substring(1,t)}let A=e.indexOf(":");return A===-1?e:e.substring(0,A)}function md(e){if(!e)return null;ur(typeof e=="string");let A=kd(e);return Bd.isIP(A)?"":A}function Fd(e){return JSON.parse(JSON.stringify(e))}function Rd(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function Hg(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function Vg(e){if(e==null)return 0;if(Nn(e)){let A=e._readableState;return A&&A.objectMode===!1&&A.ended===!0&&Number.isFinite(A.length)?A.length:null}else{if(Gg(e))return e.size!=null?e.size:null;if(Og(e))return e.byteLength}return null}function qg(e){return e&&!!(e.destroyed||e[Yg]||bn.isDestroyed?.(e))}function bd(e,A){e==null||!Nn(e)||qg(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===Ed&&(e.socket=null),e.destroy(A)):A&&queueMicrotask(()=>{e.emit("error",A)}),e.destroyed!==!0&&(e[Yg]=!0))}var Nd=/timeout=(\d+)/;function Sd(e){let A=e.toString().match(Nd);return A?parseInt(A[1],10)*1e3:null}function Wg(e){return typeof e=="string"?hd[e]??e.toLowerCase():xg.lookup(e)??e.toString("latin1").toLowerCase()}function Ud(e){return xg.lookup(e)??e.toString("latin1").toLowerCase()}function Md(e,A){A===void 0&&(A={});for(let t=0;t<e.length;t+=2){let r=Wg(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 Ld(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 Og(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function Td(e,A,t){if(!e||typeof e!="object")throw new aA("handler must be an object");if(typeof e.onConnect!="function")throw new aA("invalid onConnect method");if(typeof e.onError!="function")throw new aA("invalid onError method");if(typeof e.onBodySent!="function"&&e.onBodySent!==void 0)throw new aA("invalid onBodySent method");if(t||A==="CONNECT"){if(typeof e.onUpgrade!="function")throw new aA("invalid onUpgrade method")}else{if(typeof e.onHeaders!="function")throw new aA("invalid onHeaders method");if(typeof e.onData!="function")throw new aA("invalid onData method");if(typeof e.onComplete!="function")throw new aA("invalid onComplete method")}}function Yd(e){return!!(e&&(bn.isDisturbed(e)||e[dt]))}function xd(e){return!!(e&&bn.isErrored(e))}function Gd(e){return!!(e&&bn.isReadable(e))}function vd(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 Jd(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 Hd(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 Vd(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 qd=typeof String.prototype.toWellFormed=="function",Wd=typeof String.prototype.isWellFormed=="function";function Pg(e){return qd?`${e}`.toWellFormed():ld.toUSVString(e)}function Od(e){return Wd?`${e}`.isWellFormed():Pg(e)===`${e}`}function Zg(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 Pd(e){if(e.length===0)return!1;for(let A=0;A<e.length;++A)if(!Zg(e.charCodeAt(A)))return!1;return!0}var Zd=/[^\t\x20-\x7e\x80-\xff]/;function Kd(e){return!Zd.test(e)}function zd(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 Xd(e,A,t){return(e[Zi]??=[]).push([A,t]),e.on(A,t),e}function _d(e){for(let[A,t]of e[Zi]??[])e.removeListener(A,t);e[Zi]=null}function jd(e,A,t){try{A.onError(t),ur(A.aborted)}catch(r){e.emit("error",r)}}var Kg=Object.create(null);Kg.enumerable=!0;var Ki={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"},zg={...Ki,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(Ki,null);Object.setPrototypeOf(zg,null);Xg.exports={kEnumerableProperty:Kg,nop:yd,isDisturbed:Yd,isErrored:xd,isReadable:Gd,toUSVString:Pg,isUSVString:Od,isBlobLike:Gg,parseOrigin:Dd,parseURL:Jg,getServerName:md,isStream:Nn,isIterable:Hg,isAsyncIterable:Rd,isDestroyed:qg,headerNameToString:Wg,bufferToLowerCasedHeaderName:Ud,addListener:Xd,removeAllListeners:_d,errorRequest:jd,parseRawHeaders:Ld,parseHeaders:Md,parseKeepAliveTimeout:Sd,destroy:bd,bodyLength:Vg,deepClone:Fd,ReadableStreamFrom:Jd,isBuffer:Og,validateHandler:Td,getSocketInfo:vd,isFormDataLike:Hd,buildURL:pd,addAbortListener:Vd,isValidHTTPToken:Pd,isValidHeaderValue:Kd,isTokenCharCode:Zg,parseRangeHeader:zd,normalizedMethodRecordsBase:Ki,normalizedMethodRecords:zg,isValidPort:vg,isHttpOrHttpsPrefixed:Fn,nodeMajor:dd,nodeMinor:fd,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"],wrapRequestBody:wd}});var ft=f((sU,jg)=>{"use strict";var q=d("node:diagnostics_channel"),Xi=d("node:util"),Sn=Xi.debuglog("undici"),zi=Xi.debuglog("fetch"),Ve=Xi.debuglog("websocket"),_g=!1,$d={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(Sn.enabled||zi.enabled){let e=zi.enabled?zi:Sn;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)}),_g=!0}if(Ve.enabled){if(!_g){let e=Sn.enabled?Sn: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")})}jg.exports={channels:$d}});var tQ=f((iU,eQ)=>{"use strict";var{InvalidArgumentError:O,NotSupportedError:Af}=J(),ge=d("node:assert"),{isValidHTTPToken:AQ,isValidHeaderValue:hr,isStream:ef,destroy:tf,isBuffer:rf,isFormDataLike:nf,isIterable:sf,isBlobLike:of,buildURL:af,validateHandler:cf,getServerName:gf,normalizedMethodRecords:Qf}=L(),{channels:_A}=ft(),{headerNameLowerCasedRecord:$g}=kn(),Ef=/[^\u0021-\u00ff]/,MA=Symbol("handler"),_i=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:C},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(Ef.test(t))throw new O("invalid request path");if(typeof r!="string")throw new O("method must be a string");if(Qf[r]===void 0&&!AQ(r))throw new O("invalid request method");if(c&&typeof c!="string")throw new O("upgrade must be a string");if(c&&!hr(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(ef(n)){this.body=n;let l=this.body._readableState;(!l||!l.autoDestroy)&&(this.endHandler=function(){tf(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(rf(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(nf(n)||sf(n)||of(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 l=0;l<s.length;l+=2)Un(this,s[l],s[l+1])}else if(s&&typeof s=="object")if(s[Symbol.iterator])for(let l of s){if(!Array.isArray(l)||l.length!==2)throw new O("headers must be in key-value pair format");Un(this,l[0],l[1])}else{let l=Object.keys(s);for(let h=0;h<l.length;++h)Un(this,l[h],s[l[h]])}else if(s!=null)throw new O("headers must be an object or an array");cf(u,r,c),this.servername=C||gf(this.host),this[MA]=u,_A.create.hasSubscribers&&_A.create.publish({request:this})}onBodySent(A){if(this[MA].onBodySent)try{return this[MA].onBodySent(A)}catch(t){this.abort(t)}}onRequestSent(){if(_A.bodySent.hasSubscribers&&_A.bodySent.publish({request:this}),this[MA].onRequestSent)try{return this[MA].onRequestSent()}catch(A){this.abort(A)}}onConnect(A){if(ge(!this.aborted),ge(!this.completed),this.error)A(this.error);else return this.abort=A,this[MA].onConnect(A)}onResponseStarted(){return this[MA].onResponseStarted?.()}onHeaders(A,t,r,n){ge(!this.aborted),ge(!this.completed),_A.headers.hasSubscribers&&_A.headers.publish({request:this,response:{statusCode:A,headers:t,statusText:n}});try{return this[MA].onHeaders(A,t,r,n)}catch(s){this.abort(s)}}onData(A){ge(!this.aborted),ge(!this.completed);try{return this[MA].onData(A)}catch(t){return this.abort(t),!1}}onUpgrade(A,t,r){return ge(!this.aborted),ge(!this.completed),this[MA].onUpgrade(A,t,r)}onComplete(A){this.onFinally(),ge(!this.aborted),this.completed=!0,_A.trailers.hasSubscribers&&_A.trailers.publish({request:this,trailers:A});try{return this[MA].onComplete(A)}catch(t){this.onError(t)}}onError(A){if(this.onFinally(),_A.error.hasSubscribers&&_A.error.publish({request:this,error:A}),!this.aborted)return this.aborted=!0,this[MA].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 Un(this,A,t),this}};function Un(e,A,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new O(`invalid ${A} header`);if(t===void 0)return;let r=$g[A];if(r===void 0&&(r=A.toLowerCase(),$g[r]===void 0&&!AQ(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(!hr(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(!hr(i))throw new O(`invalid ${A} header`);n.push(i)}}t=n}else if(typeof t=="string"){if(!hr(t))throw new O(`invalid ${A} header`)}else if(t===null)t="";else if(t=`${t}`,!hr(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 Af("expect header not supported");e.headers.push(A,t)}}}eQ.exports=_i});var dr=f((oU,rQ)=>{"use strict";var Bf=d("node:events"),Mn=class extends Bf{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 ji(this,r)}},ji=class extends Mn{#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)}};rQ.exports=Mn});var Dt=f((aU,nQ)=>{"use strict";var If=dr(),{ClientDestroyedError:$i,ClientClosedError:lf,InvalidArgumentError:wt}=J(),{kDestroy:Cf,kClose:uf,kClosed:fr,kDestroyed:yt,kDispatch:Ao,kInterceptors:qe}=X(),Qe=Symbol("onDestroyed"),pt=Symbol("onClosed"),Ln=Symbol("Intercepted Dispatch"),eo=Symbol("webSocketOptions"),to=class extends If{constructor(A){super(),this[yt]=!1,this[Qe]=null,this[fr]=!1,this[pt]=[],this[eo]=A?.webSocket??{}}get webSocketOptions(){return{maxFragments:this[eo].maxFragments??131072,maxPayloadSize:this[eo].maxPayloadSize??128*1024*1024}}get destroyed(){return this[yt]}get closed(){return this[fr]}get interceptors(){return this[qe]}set interceptors(A){if(A){for(let t=A.length-1;t>=0;t--)if(typeof this[qe][t]!="function")throw new wt("interceptor must be an function")}this[qe]=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 wt("invalid callback");if(this[yt]){queueMicrotask(()=>A(new $i,null));return}if(this[fr]){this[pt]?this[pt].push(A):queueMicrotask(()=>A(null,null));return}this[fr]=!0,this[pt].push(A);let t=()=>{let r=this[pt];this[pt]=null;for(let n=0;n<r.length;n++)r[n](null,null)};this[uf]().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 wt("invalid callback");if(this[yt]){this[Qe]?this[Qe].push(t):queueMicrotask(()=>t(null,null));return}A||(A=new $i),this[yt]=!0,this[Qe]=this[Qe]||[],this[Qe].push(t);let r=()=>{let n=this[Qe];this[Qe]=null;for(let s=0;s<n.length;s++)n[s](null,null)};this[Cf](A).then(()=>{queueMicrotask(r)})}[Ln](A,t){if(!this[qe]||this[qe].length===0)return this[Ln]=this[Ao],this[Ao](A,t);let r=this[Ao].bind(this);for(let n=this[qe].length-1;n>=0;n--)r=this[qe][n](r);return this[Ln]=r,r(A,t)}dispatch(A,t){if(!t||typeof t!="object")throw new wt("handler must be an object");try{if(!A||typeof A!="object")throw new wt("opts must be an object.");if(this[yt]||this[Qe])throw new $i;if(this[fr])throw new lf;return this[Ln](A,t)}catch(r){if(typeof t.onError!="function")throw new wt("invalid onError method");return t.onError(r),!1}}};nQ.exports=to});var co=f((cU,aQ)=>{"use strict";var kt=0,ro=1e3,no=(ro>>1)-1,Ee,so=Symbol("kFastTimer"),Be=[],io=-2,oo=-1,iQ=0,sQ=1;function ao(){kt+=no;let e=0,A=Be.length;for(;e<A;){let t=Be[e];t._state===iQ?(t._idleStart=kt-no,t._state=sQ):t._state===sQ&&kt>=t._idleStart+t._idleTimeout&&(t._state=oo,t._idleStart=-1,t._onTimeout(t._timerArg)),t._state===oo?(t._state=io,--A!==0&&(Be[e]=Be[A])):++e}Be.length=A,Be.length!==0&&oQ()}function oQ(){Ee?Ee.refresh():(clearTimeout(Ee),Ee=setTimeout(ao,no),Ee.unref&&Ee.unref())}var Tn=class{[so]=!0;_state=io;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(A,t,r){this._onTimeout=A,this._idleTimeout=t,this._timerArg=r,this.refresh()}refresh(){this._state===io&&Be.push(this),(!Ee||Be.length===1)&&oQ(),this._state=iQ}clear(){this._state=oo,this._idleStart=-1}};aQ.exports={setTimeout(e,A,t){return A<=ro?setTimeout(e,A,t):new Tn(e,A,t)},clearTimeout(e){e[so]?e.clear():clearTimeout(e)},setFastTimeout(e,A,t){return new Tn(e,A,t)},clearFastTimeout(e){e.clear()},now(){return kt},tick(e=0){kt+=e-ro+1,ao(),ao()},reset(){kt=0,Be.length=0,clearTimeout(Ee),Ee=null},kFastTimer:so}});var wr=f((EU,BQ)=>{"use strict";var hf=d("node:net"),cQ=d("node:assert"),EQ=L(),{InvalidArgumentError:df,ConnectTimeoutError:ff}=J(),Yn=co();function gQ(){}var go,Qo;global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)?Qo=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))}}:Qo=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 wf({allowH2:e,maxCachedSessions:A,socketPath:t,timeout:r,session:n,...s}){if(A!=null&&(!Number.isInteger(A)||A<0))throw new df("maxCachedSessions must be a positive integer or zero");let i={path:t,...s},o=new Qo(A??100);return r=r??1e4,e=e??!1,function({hostname:c,host:g,protocol:Q,port:E,servername:B,localAddress:I,httpSocket:C},u){let l;if(Q==="https:"){go||(go=d("node:tls")),B=B||i.servername||EQ.getServerName(g)||null;let D=B||c;cQ(D);let p=n||o.get(D)||null;E=E||443,l=go.connect({highWaterMark:16384,...i,servername:B,session:p,localAddress:I,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:C,port:E,host:c}),l.on("session",function(H){o.set(D,H)})}else cQ(!C,"httpSocket can only be sent on TLS update"),E=E||80,l=hf.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;l.setKeepAlive(!0,D)}let h=yf(new WeakRef(l),{timeout:r,hostname:c,port:E});return l.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)}}),l}}var yf=process.platform==="win32"?(e,A)=>{if(!A.timeout)return gQ;let t=null,r=null,n=Yn.setFastTimeout(()=>{t=setImmediate(()=>{r=setImmediate(()=>QQ(e.deref(),A))})},A.timeout);return()=>{Yn.clearFastTimeout(n),clearImmediate(t),clearImmediate(r)}}:(e,A)=>{if(!A.timeout)return gQ;let t=null,r=Yn.setFastTimeout(()=>{t=setImmediate(()=>{QQ(e.deref(),A)})},A.timeout);return()=>{Yn.clearFastTimeout(r),clearImmediate(t)}};function QQ(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)`,EQ.destroy(e,new ff(t))}BQ.exports=wf});var IQ=f(xn=>{"use strict";Object.defineProperty(xn,"__esModule",{value:!0});xn.enumToMap=void 0;function pf(e){let A={};return Object.keys(e).forEach(t=>{let r=e[t];typeof r=="number"&&(A[t]=r)}),A}xn.enumToMap=pf});var lQ=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 Df=IQ(),kf;(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"})(kf=y.ERROR||(y.ERROR={}));var mf;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(mf=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 Rf;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(Rf=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=Df.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 bf;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(bf=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 mt;(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"})(mt=y.HEADER_STATE||(y.HEADER_STATE={}));y.SPECIAL_HEADERS={connection:mt.CONNECTION,"content-length":mt.CONTENT_LENGTH,"proxy-connection":mt.CONNECTION,"transfer-encoding":mt.TRANSFER_ENCODING,upgrade:mt.UPGRADE}});var Eo=f((lU,CQ)=>{"use strict";var{Buffer:Nf}=d("node:buffer");CQ.exports=Nf.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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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var hQ=f((CU,uQ)=>{"use strict";var{Buffer:Sf}=d("node:buffer");uQ.exports=Sf.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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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var yr=f((uU,mQ)=>{"use strict";var dQ=["GET","HEAD","POST"],Uf=new Set(dQ),Mf=[101,204,205,304],fQ=[301,302,303,307,308],Lf=new Set(fQ),wQ=["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"],Tf=new Set(wQ),yQ=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],Yf=new Set(yQ),xf=["follow","manual","error"],pQ=["GET","HEAD","OPTIONS","TRACE"],Gf=new Set(pQ),vf=["navigate","same-origin","no-cors","cors"],Jf=["omit","same-origin","include"],Hf=["default","no-store","reload","no-cache","force-cache","only-if-cached"],Vf=["content-encoding","content-language","content-location","content-type","content-length"],qf=["half"],DQ=["CONNECT","TRACE","TRACK"],Wf=new Set(DQ),kQ=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Of=new Set(kQ);mQ.exports={subresource:kQ,forbiddenMethods:DQ,requestBodyHeader:Vf,referrerPolicy:yQ,requestRedirect:xf,requestMode:vf,requestCredentials:Jf,requestCache:Hf,redirectStatus:fQ,corsSafeListedMethods:dQ,nullBodyStatus:Mf,safeMethods:pQ,badPorts:wQ,requestDuplex:qf,subresourceSet:Of,badPortsSet:Tf,redirectStatusSet:Lf,corsSafeListedMethodsSet:Uf,safeMethodsSet:Gf,forbiddenMethodsSet:Wf,referrerPolicySet:Yf}});var Io=f((hU,FQ)=>{"use strict";var Bo=Symbol.for("undici.globalOrigin.1");function Pf(){return globalThis[Bo]}function Zf(e){if(e===void 0){Object.defineProperty(globalThis,Bo,{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,Bo,{value:A,writable:!0,enumerable:!1,configurable:!1})}FQ.exports={getGlobalOrigin:Pf,setGlobalOrigin:Zf}});var uA=f((dU,LQ)=>{"use strict";var vn=d("node:assert"),Kf=new TextEncoder,pr=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,zf=/[\u000A\u000D\u0009\u0020]/,Xf=/[\u0009\u000A\u000C\u000D\u0020]/g,_f=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function jf(e){vn(e.protocol==="data:");let A=NQ(e,!0);A=A.slice(5);let t={position:0},r=Ft(",",A,t),n=r.length;if(r=nw(r,!0,!0),t.position>=A.length)return"failure";t.position++;let s=A.slice(n+1),i=SQ(s);if(/;(\u0020){0,}base64$/i.test(r)){let a=MQ(i);if(i=Aw(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=lo(r);return o==="failure"&&(o=lo("text/plain;charset=US-ASCII")),{mimeType:o,body:i}}function NQ(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 Jn(e,A,t){let r="";for(;t.position<A.length&&e(A[t.position]);)r+=A[t.position],t.position++;return r}function Ft(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 SQ(e){let A=Kf.encode(e);return $f(A)}function RQ(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function bQ(e){return e>=48&&e<=57?e-48:(e&223)-55}function $f(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&&!(RQ(e[n+1])&&RQ(e[n+2]))?t[r++]=37:(t[r++]=bQ(e[n+1])<<4|bQ(e[n+2]),n+=2)}return A===r?t:t.subarray(0,r)}function lo(e){e=Gn(e,!0,!0);let A={position:0},t=Ft("/",e,A);if(t.length===0||!pr.test(t)||A.position>e.length)return"failure";A.position++;let r=Ft(";",e,A);if(r=Gn(r,!1,!0),r.length===0||!pr.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++,Jn(c=>zf.test(c),e,A);let o=Jn(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=UQ(e,A,!0),Ft(";",e,A);else if(a=Ft(";",e,A),a=Gn(a,!1,!0),a.length===0)continue;o.length!==0&&pr.test(o)&&(a.length===0||_f.test(a))&&!i.parameters.has(o)&&i.parameters.set(o,a)}return i}function Aw(e){e=e.replace(Xf,"");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 UQ(e,A,t){let r=A.position,n="";for(vn(e[A.position]==='"'),A.position++;n+=Jn(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{vn(s==='"');break}}return t?n:e.slice(r,A.position)}function ew(e){vn(e!=="failure");let{parameters:A,essence:t}=e,r=t;for(let[n,s]of A.entries())r+=";",r+=n,r+="=",pr.test(s)||(s=s.replace(/(\\|")/g,"\\$1"),s='"'+s,s+='"'),r+=s;return r}function tw(e){return e===13||e===10||e===9||e===32}function Gn(e,A=!0,t=!0){return Co(e,A,t,tw)}function rw(e){return e===13||e===10||e===9||e===12||e===32}function nw(e,A=!0,t=!0){return Co(e,A,t,rw)}function Co(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 MQ(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 sw(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":""}LQ.exports={dataURLProcessor:jf,URLSerializer:NQ,collectASequenceOfCodePoints:Jn,collectASequenceOfCodePointsFast:Ft,stringPercentDecode:SQ,parseMIMEType:lo,collectAnHTTPQuotedString:UQ,serializeAMimeType:ew,removeChars:Co,removeHTTPWhitespace:Gn,minimizeSupportedMimeType:sw,HTTP_TOKEN_CODEPOINTS:pr,isomorphicDecode:MQ}});var gA=f((fU,TQ)=>{"use strict";var{types:jA,inspect:iw}=d("node:util"),{markAsUncloneable:ow}=d("node:worker_threads"),{toUSVString:aw}=L(),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=ow||(()=>{});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 iw(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(!jA.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=aw;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"||!jA.isAnyArrayBuffer(e))throw w.errors.conversionFailed({prefix:A,argument:`${t} ("${w.util.Stringify(e)}")`,types:["ArrayBuffer"]});if(r?.allowShared===!1&&jA.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"||!jA.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&&jA.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"||!jA.isDataView(e))throw w.errors.exception({header:A,message:`${t} is not a DataView.`});if(r?.allowShared===!1&&jA.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(jA.isAnyArrayBuffer(e))return w.converters.ArrayBuffer(e,A,t,{...r,allowShared:!1});if(jA.isTypedArray(e))return w.converters.TypedArray(e,e.constructor,A,t,{...r,allowShared:!1});if(jA.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);TQ.exports={webidl:w}});var pA=f((wU,zQ)=>{"use strict";var{Transform:cw}=d("node:stream"),YQ=d("node:zlib"),{redirectStatusSet:gw,referrerPolicySet:Qw,badPortsSet:Ew}=yr(),{getGlobalOrigin:xQ}=Io(),{collectASequenceOfCodePoints:We,collectAnHTTPQuotedString:Bw,removeChars:Iw,parseMIMEType:lw}=uA(),{performance:Cw}=d("node:perf_hooks"),{isBlobLike:uw,ReadableStreamFrom:hw,isValidHTTPToken:GQ,normalizedMethodRecordsBase:dw}=L(),Oe=d("node:assert"),{isUint8Array:fw}=d("node:util/types"),{webidl:Dr}=gA(),vQ=[],Vn;try{Vn=d("node:crypto");let e=["sha256","sha384","sha512"];vQ=Vn.getHashes().filter(A=>e.includes(A))}catch{}function JQ(e){let A=e.urlList,t=A.length;return t===0?null:A[t-1].toString()}function ww(e,A){if(!gw.has(e.status))return null;let t=e.headersList.get("location",!0);return t!==null&&VQ(t)&&(HQ(t)||(t=yw(t)),t=new URL(t,JQ(e))),t&&!t.hash&&(t.hash=A),t}function HQ(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>126||t<32)return!1}return!0}function yw(e){return Buffer.from(e,"binary").toString("utf8")}function mr(e){return e.urlList[e.urlList.length-1]}function pw(e){let A=mr(e);return ZQ(A)&&Ew.has(A.port)?"blocked":"allowed"}function Dw(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function kw(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 mw=GQ;function VQ(e){return(e[0]===" "||e[0]===" "||e[e.length-1]===" "||e[e.length-1]===" "||e.includes(`
3
- `)||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(Qw.has(i)){n=i;break}}n!==""&&(e.referrerPolicy=n)}function Rw(){return"allowed"}function bw(){return"success"}function Nw(){return"success"}function Sw(e){let A=null;A=e.mode,e.headersList.set("sec-fetch-mode",A,!0)}function Uw(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&&ho(e.origin)&&!ho(mr(e))&&(A=null);break;case"same-origin":qn(e,mr(e))||(A=null);break;default:}e.headersList.append("origin",A,!0)}}}function Rt(e,A){return e}function Mw(e,A,t){return!e?.startTime||e.startTime<A?{domainLookupStartTime:A,domainLookupEndTime:A,connectionStartTime:A,connectionEndTime:A,secureConnectionStartTime:A,ALPNNegotiatedProtocol:e?.ALPNNegotiatedProtocol}:{domainLookupStartTime:Rt(e.domainLookupStartTime,t),domainLookupEndTime:Rt(e.domainLookupEndTime,t),connectionStartTime:Rt(e.connectionStartTime,t),connectionEndTime:Rt(e.connectionEndTime,t),secureConnectionStartTime:Rt(e.secureConnectionStartTime,t),ALPNNegotiatedProtocol:e.ALPNNegotiatedProtocol}}function Lw(e){return Rt(Cw.now(),e)}function Tw(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 qQ(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function Yw(e){return{referrerPolicy:e.referrerPolicy}}function xw(e){let A=e.referrerPolicy;Oe(A);let t=null;if(e.referrer==="client"){let o=xQ();if(!o||o.origin==="null")return"no-referrer";t=new URL(o)}else e.referrer instanceof URL&&(t=e.referrer);let r=uo(t),n=uo(t,!0);r.toString().length>4096&&(r=n);let s=qn(e,r),i=kr(r)&&!kr(e.url);switch(A){case"origin":return n??uo(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=mr(e);return qn(r,o)?r:kr(r)&&!kr(o)?"no-referrer":n}default:return i?"no-referrer":n}}function uo(e,A){return Oe(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 kr(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 Gw(e,A){if(Vn===void 0)return!0;let t=WQ(A);if(t==="no metadata"||t.length===0)return!0;let r=Jw(t),n=Hw(t,r);for(let s of n){let i=s.algo,o=s.hash,a=Vn.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)),Vw(a,o))return!0}return!1}var vw=/(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function WQ(e){let A=[],t=!0;for(let r of e.split(" ")){t=!1;let n=vw.exec(r);if(n===null||n.groups===void 0||n.groups.algo===void 0)continue;let s=n.groups.algo.toLowerCase();vQ.includes(s)&&A.push(n.groups)}return t===!0?"no metadata":A}function Jw(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 Hw(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 Vw(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 qw(e){}function qn(e,A){return e.origin===A.origin&&e.origin==="null"||e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port}function Ww(){let e,A;return{promise:new Promise((r,n)=>{e=r,A=n}),resolve:e,reject:A}}function Ow(e){return e.controller.state==="aborted"}function Pw(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function Zw(e){return dw[e.toLowerCase()]??e}function Kw(e){let A=JSON.stringify(e);if(A===void 0)throw new TypeError("Value is not JSON serializable");return Oe(typeof A=="string"),A}var zw=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function OQ(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,zw),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 Xw(e,A,t,r=0,n=1){let s=OQ(e,t,r,n),i={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Dr.brandCheck(this,A),s(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Dr.brandCheck(this,A),s(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Dr.brandCheck(this,A),s(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(a,c=globalThis){if(Dr.brandCheck(this,A),Dr.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 _w(e,A,t){let r=A,n=t,s;try{s=e.stream.getReader()}catch(i){n(i);return}try{r(await PQ(s))}catch(i){n(i)}}function jw(e){return e instanceof ReadableStream||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}function $w(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 Ay=/[^\x00-\xFF]/;function Hn(e){return Oe(!Ay.test(e)),e}async function PQ(e){let A=[],t=0;for(;;){let{done:r,value:n}=await e.read();if(r)return Buffer.concat(A,t);if(!fw(n))throw new TypeError("Received non-Uint8Array chunk");A.push(n),t+=n.length}}function ey(e){Oe("protocol"in e);let A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function ho(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 ZQ(e){Oe("protocol"in e);let A=e.protocol;return A==="http:"||A==="https:"}function ty(e,A){let t=e;if(!t.startsWith("bytes"))return"failure";let r={position:5};if(A&&We(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==61)return"failure";r.position++,A&&We(a=>a===" "||a===" ",t,r);let n=We(a=>{let c=a.charCodeAt(0);return c>=48&&c<=57},t,r),s=n.length?Number(n):null;if(A&&We(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==45)return"failure";r.position++,A&&We(a=>a===" "||a===" ",t,r);let i=We(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 ry(e,A,t){let r="bytes ";return r+=Hn(`${e}`),r+="-",r+=Hn(`${A}`),r+="/",r+=Hn(`${t}`),r}var fo=class extends cw{#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?YQ.createInflate(this.#A):YQ.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 ny(e){return new fo(e)}function sy(e){let A=null,t=null,r=null,n=KQ("content-type",e);if(n===null)return"failure";for(let s of n){let i=lw(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 iy(e){let A=e,t={position:0},r=[],n="";for(;t.position<A.length;){if(n+=We(s=>s!=='"'&&s!==",",A,t),t.position<A.length)if(A.charCodeAt(t.position)===34){if(n+=Bw(A,t),t.position<A.length)continue}else Oe(A.charCodeAt(t.position)===44),t.position++;n=Iw(n,!0,!0,s=>s===9||s===32),r.push(n),n=""}return r}function KQ(e,A){let t=A.get(e,!0);return t===null?null:iy(t)}var oy=new TextDecoder;function ay(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),oy.decode(e))}var wo=class{get baseUrl(){return xQ()}get origin(){return this.baseUrl?.origin}policyContainer=qQ()},yo=class{settingsObject=new wo},cy=new yo;zQ.exports={isAborted:Ow,isCancelled:Pw,isValidEncodedURL:HQ,createDeferredPromise:Ww,ReadableStreamFrom:hw,tryUpgradeRequestToAPotentiallyTrustworthyURL:qw,clampAndCoarsenConnectionTimingInfo:Mw,coarsenedSharedCurrentTime:Lw,determineRequestsReferrer:xw,makePolicyContainer:qQ,clonePolicyContainer:Yw,appendFetchMetadata:Sw,appendRequestOriginHeader:Uw,TAOCheck:Nw,corsCheck:bw,crossOriginResourcePolicyCheck:Rw,createOpaqueTimingInfo:Tw,setRequestReferrerPolicyOnRedirect:Fw,isValidHTTPToken:GQ,requestBadPort:pw,requestCurrentURL:mr,responseURL:JQ,responseLocationURL:ww,isBlobLike:uw,isURLPotentiallyTrustworthy:kr,isValidReasonPhrase:kw,sameOrigin:qn,normalizeMethod:Zw,serializeJavascriptValueToJSONString:Kw,iteratorMixin:Xw,createIterator:OQ,isValidHeaderName:mw,isValidHeaderValue:VQ,isErrorLike:Dw,fullyReadBody:_w,bytesMatch:Gw,isReadableStreamLike:jw,readableStreamClose:$w,isomorphicEncode:Hn,urlIsLocal:ey,urlHasHttpsScheme:ho,urlIsHttpHttpsScheme:ZQ,readAllBytes:PQ,simpleRangeHeaderValue:ty,buildContentRange:ry,parseMetadata:WQ,createInflate:ny,extractMimeType:sy,getDecodeSplit:KQ,utf8DecodeBytes:ay,environmentSettingsObject:cy}});var ke=f((yU,XQ)=>{"use strict";XQ.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var Do=f((pU,_Q)=>{"use strict";var{Blob:gy,File:Qy}=d("node:buffer"),{kState:Ie}=ke(),{webidl:$A}=gA(),po=class e{constructor(A,t,r={}){let n=t,s=r.type,i=r.lastModified??Date.now();this[Ie]={blobLike:A,name:n,type:s,lastModified:i}}stream(...A){return $A.brandCheck(this,e),this[Ie].blobLike.stream(...A)}arrayBuffer(...A){return $A.brandCheck(this,e),this[Ie].blobLike.arrayBuffer(...A)}slice(...A){return $A.brandCheck(this,e),this[Ie].blobLike.slice(...A)}text(...A){return $A.brandCheck(this,e),this[Ie].blobLike.text(...A)}get size(){return $A.brandCheck(this,e),this[Ie].blobLike.size}get type(){return $A.brandCheck(this,e),this[Ie].blobLike.type}get name(){return $A.brandCheck(this,e),this[Ie].name}get lastModified(){return $A.brandCheck(this,e),this[Ie].lastModified}get[Symbol.toStringTag](){return"File"}};$A.converters.Blob=$A.interfaceConverter(gy);function Ey(e){return e instanceof Qy||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}_Q.exports={FileLike:po,isFileLike:Ey}});var Rr=f((DU,tE)=>{"use strict";var{isBlobLike:Wn,iteratorMixin:By}=pA(),{kState:BA}=ke(),{kEnumerableProperty:bt}=L(),{FileLike:jQ,isFileLike:Iy}=Do(),{webidl:Z}=gA(),{File:eE}=d("node:buffer"),$Q=d("node:util"),AE=globalThis.File??eE,Fr=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[BA]=[]}append(A,t,r=void 0){Z.brandCheck(this,e);let n="FormData.append";if(Z.argumentLengthCheck(arguments,2,n),arguments.length===3&&!Wn(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=Wn(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=ko(A,t,r);this[BA].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[BA]=this[BA].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[BA].findIndex(n=>n.name===A);return r===-1?null:this[BA][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[BA].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[BA].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&&!Wn(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=Wn(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=ko(A,t,r),i=this[BA].findIndex(o=>o.name===A);i!==-1?this[BA]=[...this[BA].slice(0,i),s,...this[BA].slice(i+1).filter(o=>o.name!==A)]:this[BA].push(s)}[$Q.inspect.custom](A,t){let r=this[BA].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=$Q.formatWithOptions(t,r);return`FormData ${n.slice(n.indexOf("]")+2)}`}};By("FormData",Fr,BA,"name","value");Object.defineProperties(Fr.prototype,{append:bt,delete:bt,get:bt,getAll:bt,has:bt,set:bt,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function ko(e,A,t){if(typeof A!="string"){if(Iy(A)||(A=A instanceof Blob?new AE([A],"blob",{type:A.type}):new jQ(A,"blob",{type:A.type})),t!==void 0){let r={type:A.type,lastModified:A.lastModified};A=A instanceof eE?new AE([A],t,r):new jQ(A,t,r)}}return{name:e,value:A}}tE.exports={FormData:Fr,makeEntry:ko}});var aE=f((kU,oE)=>{"use strict";var{isUSVString:rE,bufferToLowerCasedHeaderName:ly}=L(),{utf8DecodeBytes:Cy}=pA(),{HTTP_TOKEN_CODEPOINTS:uy,isomorphicDecode:nE}=uA(),{isFileLike:hy}=Do(),{makeEntry:dy}=Rr(),On=d("node:assert"),{File:fy}=d("node:buffer"),wy=globalThis.File??fy,yy=Buffer.from('form-data; name="'),sE=Buffer.from("; filename"),py=Buffer.from("--"),Dy=Buffer.from(`--\r
4
- `);function ky(e){for(let A=0;A<e.length;++A)if((e.charCodeAt(A)&-128)!==0)return!1;return!0}function my(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){On(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&&Pn(e,py,s)||s.position===e.length-4&&Pn(e,Dy,s))return n;if(e[s.position]!==13||e[s.position+1]!==10)return"failure";s.position+=2;let o=Ry(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",ky(g)||(g=""),B=new wy([E],c,{type:g})):B=Cy(Buffer.from(E)),On(rE(a)),On(typeof B=="string"&&rE(B)||hy(B)),n.push(dy(a,B,c))}}function Ry(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=Nt(o=>o!==10&&o!==13&&o!==58,e,A);if(i=mo(i,!0,!0,o=>o===9||o===32),!uy.test(i.toString())||e[A.position]!==58)return"failure";switch(A.position++,Nt(o=>o===32||o===9,e,A),ly(i)){case"content-disposition":{if(t=r=null,!Pn(e,yy,A)||(A.position+=17,t=iE(e,A),t===null))return"failure";if(Pn(e,sE,A)){let o=A.position+sE.length;if(e[o]===42&&(A.position+=1,o+=1),e[o]!==61||e[o+1]!==34||(A.position+=12,r=iE(e,A),r===null))return"failure"}break}case"content-type":{let o=Nt(a=>a!==10&&a!==13,e,A);o=mo(o,!1,!0,a=>a===9||a===32),n=nE(o);break}case"content-transfer-encoding":{let o=Nt(a=>a!==10&&a!==13,e,A);o=mo(o,!1,!0,a=>a===9||a===32),s=nE(o);break}default:Nt(o=>o!==10&&o!==13,e,A)}if(e[A.position]!==13&&e[A.position+1]!==10)return"failure";A.position+=2}}function iE(e,A){On(e[A.position-1]===34);let t=Nt(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,`
5
- `).replace(/%0D/ig,"\r").replace(/%22/g,'"'),t)}function Nt(e,A,t){let r=t.position;for(;r<A.length&&e(A[r]);)++r;return A.subarray(t.position,t.position=r)}function mo(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 Pn(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}oE.exports={multipartFormDataParser:Fy,validateBoundary:my}});var Mt=f((mU,hE)=>{"use strict";var br=L(),{ReadableStreamFrom:by,isBlobLike:cE,isReadableStreamLike:Ny,readableStreamClose:Sy,createDeferredPromise:Uy,fullyReadBody:My,extractMimeType:Ly,utf8DecodeBytes:EE}=pA(),{FormData:gE}=Rr(),{kState:Ut}=ke(),{webidl:Ty}=gA(),{Blob:Yy}=d("node:buffer"),Fo=d("node:assert"),{isErrored:BE,isDisturbed:xy}=d("node:stream"),{isArrayBuffer:Gy}=d("node:util/types"),{serializeAMimeType:vy}=uA(),{multipartFormDataParser:Jy}=aE(),Ro;try{let e=d("node:crypto");Ro=A=>e.randomInt(0,A)}catch{Ro=e=>Math.floor(Math.random(e))}var Zn=new TextEncoder;function Hy(){}var IE=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,lE;IE&&(lE=new FinalizationRegistry(e=>{let A=e.deref();A&&!A.locked&&!xy(A)&&!BE(A)&&A.cancel("Response object has been garbage collected").catch(Hy)}));function CE(e,A=!1){let t=null;e instanceof ReadableStream?t=e:cE(e)?t=e.stream():t=new ReadableStream({async pull(a){let c=typeof n=="string"?Zn.encode(n):n;c.byteLength&&a.enqueue(c),queueMicrotask(()=>Sy(a))},start(){},type:"bytes"}),Fo(Ny(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(Gy(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(br.isFormDataLike(e)){let a=`----formdata-undici-0${`${Ro(1e11)}`.padStart(11,"0")}`,c=`--${a}\r
6
- 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
7
- `),E=[],B=new Uint8Array([13,10]);s=0;let I=!1;for(let[u,l]of e)if(typeof l=="string"){let h=Zn.encode(c+`; name="${g(Q(u))}"\r
8
- \r
9
- ${Q(l)}\r
10
- `);E.push(h),s+=h.byteLength}else{let h=Zn.encode(`${c}; name="${g(Q(u))}"`+(l.name?`; filename="${g(l.name)}"`:"")+`\r
11
- Content-Type: ${l.type||"application/octet-stream"}\r
12
- \r
13
- `);E.push(h,l,B),typeof l.size=="number"?s+=h.byteLength+l.size+B.byteLength:I=!0}let C=Zn.encode(`--${a}--\r
14
- `);E.push(C),s+=C.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(cE(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(br.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");t=e instanceof ReadableStream?e:by(e)}if((typeof n=="string"||br.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(!BE(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 Vy(e,A=!1){return e instanceof ReadableStream&&(Fo(!br.isDisturbed(e),"The body has already been consumed."),Fo(!e.locked,"The stream is locked.")),CE(e,A)}function qy(e,A){let[t,r]=A.stream.tee();return A.stream=t,{stream:r,length:A.length,source:A.source}}function Wy(e){if(e.aborted)throw new DOMException("The operation was aborted.","AbortError")}function Oy(e){return{blob(){return St(this,t=>{let r=QE(this);return r===null?r="":r&&(r=vy(r)),new Yy([t],{type:r})},e)},arrayBuffer(){return St(this,t=>new Uint8Array(t).buffer,e)},text(){return St(this,EE,e)},json(){return St(this,Zy,e)},formData(){return St(this,t=>{let r=QE(this);if(r!==null)switch(r.essence){case"multipart/form-data":{let n=Jy(t,r);if(n==="failure")throw new TypeError("Failed to parse body as FormData.");let s=new gE;return s[Ut]=n,s}case"application/x-www-form-urlencoded":{let n=new URLSearchParams(t.toString()),s=new gE;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 St(this,t=>new Uint8Array(t),e)}}}function Py(e){Object.assign(e.prototype,Oy(e))}async function St(e,A,t){if(Ty.brandCheck(e,t),uE(e))throw new TypeError("Body is unusable: Body has already been read");Wy(e[Ut]);let r=Uy(),n=i=>r.reject(i),s=i=>{try{r.resolve(A(i))}catch(o){n(o)}};return e[Ut].body==null?(s(Buffer.allocUnsafe(0)),r.promise):(await My(e[Ut].body,s,n),r.promise)}function uE(e){let A=e[Ut].body;return A!=null&&(A.stream.locked||br.isDisturbed(A.stream))}function Zy(e){return JSON.parse(EE(e))}function QE(e){let A=e[Ut].headersList,t=Ly(A);return t==="failure"?null:t}hE.exports={extractBody:CE,safelyExtractBody:Vy,cloneBody:qy,mixinBody:Py,streamRegistry:lE,hasFinalizationRegistry:IE,bodyUnusable:uE}});var LE=f((FU,ME)=>{"use strict";var F=d("node:assert"),b=L(),{channels:dE}=ft(),bo=co(),{RequestContentLengthMismatchError:Pe,ResponseContentLengthMismatchError:fE,RequestAbortedError:RE,InvalidArgumentError:Ky,HeadersTimeoutError:zy,HeadersOverflowError:Xy,SocketError:Lt,InformationalError:Tt,BodyTimeoutError:_y,HTTPParserError:jy,ResponseExceededMaxSizeError:$y}=J(),{kUrl:bE,kReset:hA,kClient:_n,kParser:K,kBlocking:Ur,kRunning:sA,kPending:NE,kSize:wE,kWriting:me,kQueue:JA,kNoRef:Nr,kKeepAliveDefaultTimeout:A0,kHostHeader:e0,kPendingIdx:t0,kRunningIdx:LA,kError:IA,kPipelining:jn,kSocket:Ke,kKeepAliveTimeoutValue:As,kMaxHeadersSize:No,kKeepAliveMaxTimeout:r0,kKeepAliveTimeoutThreshold:n0,kHeadersTimeout:s0,kBodyTimeout:i0,kStrictContentLength:Mo,kMaxRequests:yE,kCounter:o0,kMaxResponseSize:a0,kOnError:pE,kResume:le,kHTTPContext:SE}=X(),DA=lQ(),DE=Buffer.alloc(0),Kn=Buffer[Symbol.species],zn=b.addListener,c0=b.removeAllListeners,ze=Symbol("kIdleSocketValidation"),Ze=Symbol("kIdleSocketValidationTimeout"),xo=Symbol("kSocketUsed"),So;async function g0(){let e=process.env.JEST_WORKER_ID?Eo():void 0,A;try{A=await WebAssembly.compile(hQ())}catch{A=await WebAssembly.compile(e||Eo())}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(t,r,n)=>0,wasm_on_status:(t,r,n)=>{F(eA.ptr===t);let s=r-ee+Ae.byteOffset;return eA.onStatus(new Kn(Ae.buffer,s,n))||0},wasm_on_message_begin:t=>(F(eA.ptr===t),eA.onMessageBegin()||0),wasm_on_header_field:(t,r,n)=>{F(eA.ptr===t);let s=r-ee+Ae.byteOffset;return eA.onHeaderField(new Kn(Ae.buffer,s,n))||0},wasm_on_header_value:(t,r,n)=>{F(eA.ptr===t);let s=r-ee+Ae.byteOffset;return eA.onHeaderValue(new Kn(Ae.buffer,s,n))||0},wasm_on_headers_complete:(t,r,n,s)=>(F(eA.ptr===t),eA.onHeadersComplete(r,!!n,!!s)||0),wasm_on_body:(t,r,n)=>{F(eA.ptr===t);let s=r-ee+Ae.byteOffset;return eA.onBody(new Kn(Ae.buffer,s,n))||0},wasm_on_message_complete:t=>(F(eA.ptr===t),eA.onMessageComplete()||0)}})}var Uo=null,Lo=g0();Lo.catch();var eA=null,Ae=null,Xn=0,ee=null,Q0=0,Sr=1,Yt=2|Sr,$n=4|Sr,To=8|Q0,Yo=class{constructor(A,t,{exports:r}){F(Number.isFinite(A[No])&&A[No]>0),this.llhttp=r,this.ptr=this.llhttp.llhttp_alloc(DA.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[No],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[a0]}setTimeout(A,t){A!==this.timeoutValue||t&Sr^this.timeoutType&Sr?(this.timeout&&(bo.clearTimeout(this.timeout),this.timeout=null),A&&(t&Sr?this.timeout=bo.setFastTimeout(kE,A,new WeakRef(this)):(this.timeout=setTimeout(kE,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(eA==null),this.llhttp.llhttp_resume(this.ptr),F(this.timeoutType===$n),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(eA==null),F(!this.paused);let{socket:t,llhttp:r}=this;A.length>Xn&&(ee&&r.free(ee),Xn=Math.ceil(A.length/4096)*4096,ee=r.malloc(Xn)),new Uint8Array(r.memory.buffer,ee,Xn).set(A);try{let n;try{Ae=A,eA=this,n=r.llhttp_execute(this.ptr,ee,A.length)}catch(i){throw i}finally{eA=null,Ae=null}let s=r.llhttp_get_error_pos(this.ptr)-ee;if(n!==DA.ERROR.OK){let i=A.subarray(s);if(n===DA.ERROR.PAUSED_UPGRADE)this.onUpgrade(i);else if(n===DA.ERROR.PAUSED)this.paused=!0,t.unshift(i);else throw this.createError(n,i)}}catch(n){b.destroy(t,n)}}finish(){F(eA===null),F(this.ptr!=null),F(!this.paused);let{llhttp:A}=this,t;try{eA=this,t=A.llhttp_finish(this.ptr)}finally{eA=null}return t===DA.ERROR.OK?null:t===DA.ERROR.PAUSED||t===DA.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 fE;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 jy(o,DA.ERROR[A],t)}destroy(){F(this.ptr!=null),F(eA==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&bo.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[sA]===0)return b.destroy(A,new Lt("bad response",b.getSocketInfo(A))),-1;let r=t[JA][t[LA]];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 Xy)}onUpgrade(A){let{upgrade:t,client:r,socket:n,headers:s,statusCode:i}=this;F(t),F(r[Ke]===n),F(!n.destroyed),F(!this.paused),F((s.length&1)===0);let o=r[JA][r[LA]];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[_n]=null,n[IA]=null,c0(n),r[Ke]=null,r[SE]=null,r[JA][r[LA]++]=null,r.emit("disconnect",r[bE],[r],new Tt("upgrade"));try{o.onUpgrade(i,s,n)}catch(a){b.destroy(n,a)}r[le]()}onHeadersComplete(A,t,r){let{client:n,socket:s,headers:i,statusText:o}=this;if(s.destroyed)return-1;if(n[sA]===0)return b.destroy(s,new Lt("bad response",b.getSocketInfo(s))),-1;let a=n[JA][n[LA]];if(!a)return-1;if(F(!this.upgrade),F(this.statusCode<200),A===100)return b.destroy(s,new Lt("bad response",b.getSocketInfo(s))),-1;if(t&&!a.upgrade)return b.destroy(s,new Lt("bad upgrade",b.getSocketInfo(s))),-1;if(F(this.timeoutType===Yt),this.statusCode=A,this.shouldKeepAlive=r||a.method==="HEAD"&&!s[hA]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let g=a.bodyTimeout!=null?a.bodyTimeout:n[i0];this.setTimeout(g,$n)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(a.method==="CONNECT")return F(n[sA]===1),this.upgrade=!0,2;if(t)return F(n[sA]===1),this.upgrade=!0,2;if(F((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&n[jn]){let g=this.keepAlive?b.parseKeepAliveTimeout(this.keepAlive):null;if(g!=null){let Q=Math.min(g-n[n0],n[r0]);Q<=0?s[hA]=!0:n[As]=Q}else n[As]=n[A0]}else s[hA]=!0;let c=a.onHeaders(A,i,this.resume,o)===!1;return a.aborted?-1:a.method==="HEAD"||A<200?1:(s[Ur]&&(s[Ur]=!1,n[le]()),c?DA.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[LA]];if(F(i),F(this.timeoutType===$n),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),F(n>=200),s>-1&&this.bytesRead+A.length>s)return b.destroy(r,new $y),-1;if(this.bytesRead+=A.length,i.onData(A)===!1)return DA.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[LA]];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 fE),-1;if(c.onComplete(s),A[JA][A[LA]++]=null,t[xo]=!0,t[me])return F(A[sA]===0),b.destroy(t,new Tt("reset")),DA.ERROR.PAUSED;if(a){if(t[hA]&&A[sA]===0)return b.destroy(t,new Tt("reset")),DA.ERROR.PAUSED;A[jn]==null||A[jn]===1?setImmediate(()=>A[le]()):A[le]()}else return b.destroy(t,new Tt("reset")),DA.ERROR.PAUSED}}};function kE(e){let{socket:A,timeoutType:t,client:r,paused:n}=e.deref();t===Yt?(!A[me]||A.writableNeedDrain||r[sA]>1)&&(F(!n,"cannot be paused while waiting for headers"),b.destroy(A,new zy)):t===$n?n||b.destroy(A,new _y):t===To&&(F(r[sA]===0&&r[As]),b.destroy(A,new Tt("socket idle timeout")))}async function E0(e,A){e[Ke]=A,Uo||(Uo=await Lo,Lo=null),A[Nr]=!1,A[me]=!1,A[hA]=!1,A[Ur]=!1,A[ze]=0,A[Ze]=null,A[xo]=!1,A[K]=new Yo(e,A,Uo),zn(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[IA]=s,this[_n][pE](s));return}this[IA]=r,this[_n][pE](r)}),zn(A,"readable",function(){let r=this[K];r&&r.readMore()}),zn(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 Lt("other side closed",b.getSocketInfo(this)))}),zn(A,"close",function(){let r=this[_n],n=this[K];UE(this),n&&(!this[IA]&&n.statusCode&&!n.shouldKeepAlive&&(this[IA]=n.finish()||this[IA]),this[K].destroy(),this[K]=null);let s=this[IA]||new Lt("closed",b.getSocketInfo(this));if(r[Ke]=null,r[SE]=null,r.destroyed){F(r[NE]===0);let i=r[JA].splice(r[LA]);for(let o=0;o<i.length;o++){let a=i[o];b.errorRequest(r,a,s)}}else if(r[sA]>0&&s.code!=="UND_ERR_INFO"){let i=r[JA][r[LA]];r[JA][r[LA]++]=null,b.errorRequest(r,i,s)}r[t0]=r[LA],F(r[sA]===0),r.emit("disconnect",r[bE],[r],s),r[le]()});let t=!1;return A.on("close",()=>{t=!0}),{version:"h1",defaultPipelining:1,write(...r){return C0(e,...r)},resume(){I0(e)},destroy(r,n){t?queueMicrotask(n):A.destroy(r).on("close",n)},get destroyed(){return A.destroyed},busy(r){return!!(A[me]||A[hA]||A[Ur]||A[ze]===1||r&&(e[sA]>0&&!r.idempotent||e[sA]>0&&(r.upgrade||r.method==="CONNECT")||e[sA]>0&&b.bodyLength(r.body)!==0&&(b.isStream(r.body)||b.isAsyncIterable(r.body)||b.isFormDataLike(r.body))))}}}function UE(e){e[Ze]&&(clearTimeout(e[Ze]),e[Ze]=null),e[ze]=0}function B0(e,A){A[ze]=1,A[Ze]=setTimeout(()=>{A[Ze]=null,A[ze]=2,e[Ke]===A&&!A.destroyed&&e[le]()},0),A[Ze].unref?.()}function I0(e){let A=e[Ke];if(A&&!A.destroyed){if(e[wE]===0?!A[Nr]&&A.unref&&(A.unref(),A[Nr]=!0):A[Nr]&&A.ref&&(A.ref(),A[Nr]=!1),e[sA]===0&&e[NE]>0&&A[xo]){if(A[ze]===0)return B0(e,A),A[K].readMore(),A.destroyed,void 0;if(A[ze]===1)return A[K].readMore(),A.destroyed,void 0}if(e[sA]===0&&(A[K].readMore(),A.destroyed))return;if(e[wE]===0)A[K].timeoutType!==To&&A[K].setTimeout(e[As],To);else if(e[sA]>0&&A[K].statusCode<200&&A[K].timeoutType!==Yt){let t=e[JA][e[LA]],r=t.headersTimeout!=null?t.headersTimeout:e[s0];A[K].setTimeout(r,Yt)}}}function l0(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)){So||(So=Mt().extractBody);let[u,l]=So(a);A.contentType==null&&c.push("content-type",l),a=u.stream,g=u.length}else if(b.isBlobLike(a)&&A.contentType==null){let u=a.type;if(u){let l=`${u}`;if(!b.isValidHeaderValue(l))return b.errorRequest(e,A,new Ky("invalid content-type header")),!1;c.push("content-type",l)}}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),l0(t)&&g>0&&A.contentLength!==null&&A.contentLength!==g){if(e[Mo])return b.errorRequest(e,A,new Pe),!1;process.emitWarning(new Pe)}let B=e[Ke];UE(B);let I=u=>{A.aborted||A.completed||(b.errorRequest(e,A,u||new RE),b.destroy(a),b.destroy(B,new Tt("aborted")))};try{A.onConnect(I)}catch(u){b.errorRequest(e,A,u)}if(A.aborted)return!1;t==="HEAD"&&(B[hA]=!0),(s||t==="CONNECT")&&(B[hA]=!0),o!=null&&(B[hA]=o),e[yE]&&B[o0]++>=e[yE]&&(B[hA]=!0),i&&(B[Ur]=!0);let C=`${t} ${r} HTTP/1.1\r
15
- `;if(typeof n=="string"?C+=`host: ${n}\r
16
- `:C+=e[e0],s?C+=`connection: upgrade\r
17
- upgrade: ${s}\r
18
- `:e[jn]&&!B[hA]?C+=`connection: keep-alive\r
19
- `:C+=`connection: close\r
20
- `,Array.isArray(c))for(let u=0;u<c.length;u+=2){let l=c[u+0],h=c[u+1];if(Array.isArray(h))for(let D=0;D<h.length;D++)C+=`${l}: ${h[D]}\r
21
- `;else C+=`${l}: ${h}\r
22
- `}return dE.sendHeaders.hasSubscribers&&dE.sendHeaders.publish({request:A,headers:C,socket:B}),!a||E===0?mE(I,null,e,A,B,g,C,Q):b.isBuffer(a)?mE(I,a,e,A,B,g,C,Q):b.isBlobLike(a)?typeof a.stream=="function"?FE(I,a.stream(),e,A,B,g,C,Q):h0(I,a,e,A,B,g,C,Q):b.isStream(a)?u0(I,a,e,A,B,g,C,Q):b.isIterable(a)?FE(I,a,e,A,B,g,C,Q):F(!1),!0}function u0(e,A,t,r,n,s,i,o){F(s!==0||t[sA]===0,"stream body cannot be pipelined");let a=!1,c=new es({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(C){b.destroy(this,C)}},Q=function(){a||A.resume&&A.resume()},E=function(){if(queueMicrotask(()=>{A.removeListener("error",B)}),!a){let I=new RE;queueMicrotask(()=>B(I))}},B=function(I){if(!a){if(a=!0,F(n.destroyed||n[me]&&t[sA]<=1),n.off("drain",Q).off("error",B),A.removeListener("data",g).removeListener("end",B).removeListener("close",E),!I)try{c.end()}catch(C){I=C}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 mE(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
23
- \r
24
- `,"latin1"),n.write(A),n.uncork(),r.onBodySent(A),!o&&r.reset!==!1&&(n[hA]=!0)):s===0?n.write(`${i}content-length: 0\r
25
- \r
26
- `,"latin1"):(F(s===null,"no body must not have content length"),n.write(`${i}\r
27
- `,"latin1")),r.onRequestSent(),t[le]()}catch(a){e(a)}}async function h0(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 Pe;let a=Buffer.from(await A.arrayBuffer());n.cork(),n.write(`${i}content-length: ${s}\r
28
- \r
29
- `,"latin1"),n.write(a),n.uncork(),r.onBodySent(a),r.onRequestSent(),!o&&r.reset!==!1&&(n[hA]=!0),t[le]()}catch(a){e(a)}}async function FE(e,A,t,r,n,s,i,o){F(s!==0||t[sA]===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[IA]?B(n[IA]):a=E});n.on("close",c).on("drain",c);let Q=new es({abort:e,socket:n,request:r,contentLength:s,client:t,expectsPayload:o,header:i});try{for await(let E of A){if(n[IA])throw n[IA];Q.write(E)||await g()}Q.end()}catch(E){Q.destroy(E)}finally{n.off("close",c).off("drain",c)}}var es=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[me]=!0}write(A){let{socket:t,request:r,contentLength:n,client:s,bytesWritten:i,expectsPayload:o,header:a}=this;if(t[IA])throw t[IA];if(t.destroyed)return!1;let c=Buffer.byteLength(A);if(!c)return!0;if(n!==null&&i+c>n){if(s[Mo])throw new Pe;process.emitWarning(new Pe)}t.cork(),i===0&&(!o&&r.reset!==!1&&(t[hA]=!0),n===null?t.write(`${a}transfer-encoding: chunked\r
30
- `,"latin1"):t.write(`${a}content-length: ${n}\r
31
- \r
32
- `,"latin1")),n===null&&t.write(`\r
33
- ${c.toString(16)}\r
34
- `,"latin1"),this.bytesWritten+=c;let g=t.write(A);return t.uncork(),r.onBodySent(A),g||t[K].timeout&&t[K].timeoutType===Yt&&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[me]=!1,A[IA])throw A[IA];if(!A.destroyed){if(n===0?s?A.write(`${i}content-length: 0\r
35
- \r
36
- `,"latin1"):A.write(`${i}\r
37
- `,"latin1"):t===null&&A.write(`\r
38
- 0\r
39
- \r
40
- `,"latin1"),t!==null&&n!==t){if(r[Mo])throw new Pe;process.emitWarning(new Pe)}A[K].timeout&&A[K].timeoutType===Yt&&A[K].timeout.refresh&&A[K].timeout.refresh(),r[le]()}}destroy(A){let{socket:t,client:r,abort:n}=this;t[me]=!1,A&&(F(r[sA]<=1,"pipeline should only contain this request"),n(A))}};ME.exports=E0});var VE=f((RU,HE)=>{"use strict";var TA=d("node:assert"),{pipeline:d0}=d("node:stream"),Y=L(),{RequestContentLengthMismatchError:Go,RequestAbortedError:TE,SocketError:Mr,InformationalError:vo}=J(),{kUrl:ts,kReset:ns,kClient:xt,kRunning:ss,kPending:f0,kQueue:Fe,kPendingIdx:Jo,kRunningIdx:HA,kError:qA,kSocket:cA,kStrictContentLength:w0,kOnError:Ho,kMaxConcurrentStreams:JE,kHTTP2Session:VA,kResume:Re,kSize:y0,kHTTPContext:p0}=X(),Ce=Symbol("open streams"),YE,xE=!1,rs;try{rs=d("node:http2")}catch{rs={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:D0,HTTP2_HEADER_METHOD:k0,HTTP2_HEADER_PATH:m0,HTTP2_HEADER_SCHEME:F0,HTTP2_HEADER_CONTENT_LENGTH:R0,HTTP2_HEADER_EXPECT:b0,HTTP2_HEADER_STATUS:N0}}=rs;function S0(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 U0(e,A){e[cA]=A,xE||(xE=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let t=rs.connect(e[ts],{createConnection:()=>A,peerMaxConcurrentStreams:e[JE]});t[Ce]=0,t[xt]=e,t[cA]=A,Y.addListener(t,"error",L0),Y.addListener(t,"frameError",T0),Y.addListener(t,"end",Y0),Y.addListener(t,"goaway",x0),Y.addListener(t,"close",function(){let{[xt]:n}=this,{[cA]:s}=n,i=this[cA][qA]||this[qA]||new Mr("closed",Y.getSocketInfo(s));if(n[VA]=null,n.destroyed){TA(n[f0]===0);let o=n[Fe].splice(n[HA]);for(let a=0;a<o.length;a++){let c=o[a];Y.errorRequest(n,c,i)}}}),t.unref(),e[VA]=t,A[VA]=t,Y.addListener(A,"error",function(n){TA(n.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[qA]=n,this[xt][Ho](n)}),Y.addListener(A,"end",function(){Y.destroy(this,new Mr("other side closed",Y.getSocketInfo(this)))}),Y.addListener(A,"close",function(){let n=this[qA]||new Mr("closed",Y.getSocketInfo(this));e[cA]=null,this[VA]!=null&&this[VA].destroy(n),e[Jo]=e[HA],TA(e[ss]===0),e.emit("disconnect",e[ts],[e],n),e[Re]()});let r=!1;return A.on("close",()=>{r=!0}),{version:"h2",defaultPipelining:1/0,write(...n){return v0(e,...n)},resume(){M0(e)},destroy(n,s){r?queueMicrotask(s):A.destroy(n).on("close",s)},get destroyed(){return A.destroyed},busy(){return!1}}}function M0(e){let A=e[cA];A?.destroyed===!1&&(e[y0]===0&&e[JE]===0?(A.unref(),e[VA].unref()):(A.ref(),e[VA].ref()))}function L0(e){TA(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[cA][qA]=e,this[xt][Ho](e)}function T0(e,A,t){if(t===0){let r=new vo(`HTTP/2: "frameError" received - type ${e}, code ${A}`);this[cA][qA]=r,this[xt][Ho](r)}}function Y0(){let e=new Mr("other side closed",Y.getSocketInfo(this[cA]));this.destroy(e),Y.destroy(this[cA],e)}function x0(e){let A=this[qA]||new Mr(`HTTP/2: "GOAWAY" frame received with code ${e}`,Y.getSocketInfo(this)),t=this[xt];if(t[cA]=null,t[p0]=null,this[VA]!=null&&(this[VA].destroy(A),this[VA]=null),Y.destroy(this[cA],A),t[HA]<t[Fe].length){let r=t[Fe][t[HA]];t[Fe][t[HA]++]=null,Y.errorRequest(t,r,A),t[Jo]=t[HA]}TA(t[ss]===0),t.emit("disconnect",t[ts],[t],A),t[Re]()}function G0(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function v0(e,A){let t=e[VA],{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],tA=c[p+1];if(Array.isArray(tA))for(let $=0;$<tA.length;$++)Q[H]?Q[H]+=`,${tA[$]}`:Q[H]=tA[$];else Q[H]=tA}let E,{hostname:B,port:I}=e[ts];Q[D0]=s||`${B}${I?`:${I}`:""}`,Q[k0]=r;let C=p=>{A.aborted||A.completed||(p=p||new TE,Y.errorRequest(e,A,p),E!=null&&Y.destroy(E,p),Y.destroy(g,p),e[Fe][e[HA]++]=null,e[Re]())};try{A.onConnect(C)}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[Ce],e[Fe][e[HA]++]=null):E.once("ready",()=>{A.onUpgrade(null,null,E),++t[Ce],e[Fe][e[HA]++]=null}),E.once("close",()=>{t[Ce]-=1,t[Ce]===0&&t.unref()}),!0;Q[m0]=n,Q[F0]="https";let u=r==="PUT"||r==="POST"||r==="PATCH";g&&typeof g.read=="function"&&g.read(0);let l=Y.bodyLength(g);if(Y.isFormDataLike(g)){YE??=Mt().extractBody;let[p,H]=YE(g);Q["content-type"]=H,g=p.stream,l=p.length}if(l==null&&(l=A.contentLength),(l===0||!u)&&(l=null),G0(r)&&l>0&&A.contentLength!=null&&A.contentLength!==l){if(e[w0])return Y.errorRequest(e,A,new Go),!1;process.emitWarning(new Go)}l!=null&&(TA(g,"no body must not have content length"),Q[R0]=`${l}`),t.ref();let h=r==="GET"||r==="HEAD"||g===null;return o?(Q[b0]="100-continue",E=t.request(Q,{endStream:h,signal:a}),E.once("continue",D)):(E=t.request(Q,{endStream:h,signal:a}),D()),++t[Ce],E.once("response",p=>{let{[N0]:H,...tA}=p;if(A.onResponseStarted(),A.aborted){let $=new TE;Y.errorRequest(e,A,$),Y.destroy(E,$);return}A.onHeaders(Number(H),S0(tA),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[Ce]===0&&t.unref(),C(new vo("HTTP/2: stream half-closed (remote)")),e[Fe][e[HA]++]=null,e[Jo]=e[HA],e[Re]()}),E.once("close",()=>{t[Ce]-=1,t[Ce]===0&&t.unref()}),E.once("error",function(p){C(p)}),E.once("frameError",(p,H)=>{C(new vo(`HTTP/2: "frameError" received - type ${p}, code ${H}`))}),!0;function D(){!g||l===0?GE(C,E,null,e,A,e[cA],l,u):Y.isBuffer(g)?GE(C,E,g,e,A,e[cA],l,u):Y.isBlobLike(g)?typeof g.stream=="function"?vE(C,E,g.stream(),e,A,e[cA],l,u):H0(C,E,g,e,A,e[cA],l,u):Y.isStream(g)?J0(C,e[cA],u,E,g,e,A,l):Y.isIterable(g)?vE(C,E,g,e,A,e[cA],l,u):TA(!1)}}function GE(e,A,t,r,n,s,i,o){try{t!=null&&Y.isBuffer(t)&&(TA(i===t.byteLength,"buffer body must have content length"),A.cork(),A.write(t),A.uncork(),A.end(),n.onBodySent(t)),o||(s[ns]=!0),n.onRequestSent(),r[Re]()}catch(a){e(a)}}function J0(e,A,t,r,n,s,i,o){TA(o!==0||s[ss]===0,"stream body cannot be pipelined");let a=d0(n,r,g=>{g?(Y.destroy(a,g),e(g)):(Y.removeAllListeners(a),i.onRequestSent(),t||(A[ns]=!0),s[Re]())});Y.addListener(a,"data",c);function c(g){i.onBodySent(g)}}async function H0(e,A,t,r,n,s,i,o){TA(i===t.size,"blob body must have content length");try{if(i!=null&&i!==t.size)throw new Go;let a=Buffer.from(await t.arrayBuffer());A.cork(),A.write(a),A.uncork(),A.end(),n.onBodySent(a),n.onRequestSent(),o||(s[ns]=!0),r[Re]()}catch(a){e(a)}}async function vE(e,A,t,r,n,s,i,o){TA(i!==0||r[ss]===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)=>{TA(a===null),s[qA]?E(s[qA]):a=Q});A.on("close",c).on("drain",c);try{for await(let Q of t){if(s[qA])throw s[qA];let E=A.write(Q);n.onBodySent(Q),E||await g()}A.end(),n.onRequestSent(),o||(s[ns]=!0),r[Re]()}catch(Q){e(Q)}finally{A.off("close",c).off("drain",c)}}HE.exports=U0});var os=f((bU,OE)=>{"use strict";var te=L(),{kBodyUsed:Lr}=X(),qo=d("node:assert"),{InvalidArgumentError:V0}=J(),q0=d("node:events"),W0=[300,301,302,303,307,308],qE=Symbol("body"),is=class{constructor(A){this[qE]=A,this[Lr]=!1}async*[Symbol.asyncIterator](){qo(!this[Lr],"disturbed"),this[Lr]=!0,yield*this[qE]}},Vo=class{constructor(A,t,r,n){if(t!=null&&(!Number.isInteger(t)||t<0))throw new V0("maxRedirections must be a positive number");te.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,te.isStream(this.opts.body)?(te.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){qo(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[Lr]=!1,q0.prototype.on.call(this.opts.body,"data",function(){this[Lr]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new is(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&te.isIterable(this.opts.body)&&(this.opts.body=new is(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||te.isDisturbed(this.opts.body)?null:O0(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}=te.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),a=o?`${i}${o}`:i;this.opts.headers=P0(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 O0(e,A){if(W0.indexOf(e)===-1)return null;for(let t=0;t<A.length;t+=2)if(A[t].length===8&&te.headerNameToString(A[t])==="location")return A[t+1]}function WE(e,A,t){if(e.length===4)return te.headerNameToString(e)==="host";if(A&&te.headerNameToString(e).startsWith("content-"))return!0;if(t&&(e.length===13||e.length===6||e.length===19)){let r=te.headerNameToString(e);return r==="authorization"||r==="cookie"||r==="proxy-authorization"}return!1}function P0(e,A,t){let r=[];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)WE(e[n],A,t)||r.push(e[n],e[n+1]);else if(e&&typeof e=="object")for(let n of Object.keys(e))WE(n,A,t)||r.push(n,e[n]);else qo(e==null,"headers must be an object or an array");return r}OE.exports=Vo});var as=f((NU,PE)=>{"use strict";var Z0=os();function K0({maxRedirections:e}){return A=>function(r,n){let{maxRedirections:s=e}=r;if(!s)return A(r,n);let i=new Z0(A,s,r,n);return r={...r,maxRedirections:0},A(r,i)}}PE.exports=K0});var Jt=f((SU,tB)=>{"use strict";var ue=d("node:assert"),jE=d("node:net"),z0=d("node:http"),Xe=L(),{channels:Gt}=ft(),X0=tQ(),_0=Dt(),{InvalidArgumentError:rA,InformationalError:j0,ClientDestroyedError:$0}=J(),Ap=wr(),{kUrl:re,kServerName:be,kClient:ep,kBusy:Wo,kConnect:tp,kResuming:_e,kRunning:vr,kPending:Jr,kSize:Gr,kQueue:WA,kConnected:rp,kConnecting:vt,kNeedDrain:Se,kKeepAliveDefaultTimeout:ZE,kHostHeader:np,kPendingIdx:OA,kRunningIdx:he,kError:sp,kPipelining:cs,kKeepAliveTimeoutValue:ip,kMaxHeadersSize:op,kKeepAliveMaxTimeout:ap,kKeepAliveTimeoutThreshold:cp,kHeadersTimeout:gp,kBodyTimeout:Qp,kStrictContentLength:Ep,kConnector:Tr,kMaxRedirections:Bp,kMaxRequests:Oo,kCounter:Ip,kClose:lp,kDestroy:Cp,kDispatch:up,kInterceptors:KE,kLocalAddress:Yr,kMaxResponseSize:hp,kOnError:dp,kHTTPContext:nA,kMaxConcurrentStreams:fp,kResume:xr}=X(),wp=LE(),yp=VE(),zE=!1,Ne=Symbol("kClosedResolve"),XE=()=>{};function $E(e){return e[cs]??e[nA]?.defaultPipelining??1}var Po=class extends _0{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:C,pipelining:u,tls:l,strictContentLength:h,maxCachedSessions:D,maxRedirections:p,connect:H,maxRequestsPerClient:tA,localAddress:$,maxResponseSize:XA,autoSelectFamily:ce,autoSelectFamilyAttemptTimeout:Ct,maxConcurrentStreams:De,allowH2:CA,webSocket:ut}={}){if(super({webSocket:ut}),g!==void 0)throw new rA("unsupported keepAlive, use pipelining=0 instead");if(s!==void 0)throw new rA("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(i!==void 0)throw new rA("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(c!==void 0)throw new rA("unsupported idleTimeout, use keepAliveTimeout instead");if(E!==void 0)throw new rA("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(r!=null&&!Number.isFinite(r))throw new rA("invalid maxHeaderSize");if(C!=null&&typeof C!="string")throw new rA("invalid socketPath");if(o!=null&&(!Number.isFinite(o)||o<0))throw new rA("invalid connectTimeout");if(Q!=null&&(!Number.isFinite(Q)||Q<=0))throw new rA("invalid keepAliveTimeout");if(B!=null&&(!Number.isFinite(B)||B<=0))throw new rA("invalid keepAliveMaxTimeout");if(I!=null&&!Number.isFinite(I))throw new rA("invalid keepAliveTimeoutThreshold");if(n!=null&&(!Number.isInteger(n)||n<0))throw new rA("headersTimeout must be a positive integer or zero");if(a!=null&&(!Number.isInteger(a)||a<0))throw new rA("bodyTimeout must be a positive integer or zero");if(H!=null&&typeof H!="function"&&typeof H!="object")throw new rA("connect must be a function or an object");if(p!=null&&(!Number.isInteger(p)||p<0))throw new rA("maxRedirections must be a positive number");if(tA!=null&&(!Number.isInteger(tA)||tA<0))throw new rA("maxRequestsPerClient must be a positive number");if($!=null&&(typeof $!="string"||jE.isIP($)===0))throw new rA("localAddress must be valid string IP address");if(XA!=null&&(!Number.isInteger(XA)||XA<-1))throw new rA("maxResponseSize must be a positive number");if(Ct!=null&&(!Number.isInteger(Ct)||Ct<-1))throw new rA("autoSelectFamilyAttemptTimeout must be a positive number");if(CA!=null&&typeof CA!="boolean")throw new rA("allowH2 must be a valid boolean value");if(De!=null&&(typeof De!="number"||De<1))throw new rA("maxConcurrentStreams must be a positive integer, greater than 0");typeof H!="function"&&(H=Ap({...l,maxCachedSessions:D,allowH2:CA,socketPath:C,timeout:o,...ce?{autoSelectFamily:ce,autoSelectFamilyAttemptTimeout:Ct}:void 0,...H})),t?.Client&&Array.isArray(t.Client)?(this[KE]=t.Client,zE||(zE=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"}))):this[KE]=[pp({maxRedirections:p})],this[re]=Xe.parseOrigin(A),this[Tr]=H,this[cs]=u??1,this[op]=r||z0.maxHeaderSize,this[ZE]=Q??4e3,this[ap]=B??6e5,this[cp]=I??2e3,this[ip]=this[ZE],this[be]=null,this[Yr]=$??null,this[_e]=0,this[Se]=0,this[np]=`host: ${this[re].hostname}${this[re].port?`:${this[re].port}`:""}\r
41
- `,this[Qp]=a??3e5,this[gp]=n??3e5,this[Ep]=h??!0,this[Bp]=p,this[Oo]=tA,this[Ne]=null,this[hp]=XA>-1?XA:-1,this[fp]=De??100,this[nA]=null,this[WA]=[],this[he]=0,this[OA]=0,this[xr]=ht=>Zo(this,ht),this[dp]=ht=>AB(this,ht)}get pipelining(){return this[cs]}set pipelining(A){this[cs]=A,this[xr](!0)}get[Jr](){return this[WA].length-this[OA]}get[vr](){return this[OA]-this[he]}get[Gr](){return this[WA].length-this[he]}get[rp](){return!!this[nA]&&!this[vt]&&!this[nA].destroyed}get[Wo](){return!!(this[nA]?.busy(null)||this[Gr]>=($E(this)||1)||this[Jr]>0)}[tp](A){eB(this),this.once("connect",A)}[up](A,t){let r=A.origin||this[re].origin,n=new X0(r,A,t);return this[WA].push(n),this[_e]||(Xe.bodyLength(n.body)==null&&Xe.isIterable(n.body)?(this[_e]=1,queueMicrotask(()=>Zo(this))):this[xr](!0)),this[_e]&&this[Se]!==2&&this[Wo]&&(this[Se]=2),this[Se]<2}async[lp](){return new Promise(A=>{this[Gr]?this[Ne]=A:A(null)})}async[Cp](A){return new Promise(t=>{let r=this[WA].splice(this[OA]);for(let s=0;s<r.length;s++){let i=r[s];Xe.errorRequest(this,i,A)}let n=()=>{this[Ne]&&(this[Ne](),this[Ne]=null),t(null)};this[nA]?(this[nA].destroy(A,n),this[nA]=null):queueMicrotask(n),this[xr]()})}},pp=as();function AB(e,A){if(e[vr]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){ue(e[OA]===e[he]);let t=e[WA].splice(e[he]);for(let r=0;r<t.length;r++){let n=t[r];Xe.errorRequest(e,n,A)}ue(e[Gr]===0)}}async function eB(e){ue(!e[vt]),ue(!e[nA]);let{host:A,hostname:t,protocol:r,port:n}=e[re];if(t[0]==="["){let s=t.indexOf("]");ue(s!==-1);let i=t.substring(1,s);ue(jE.isIP(i)),t=i}e[vt]=!0,Gt.beforeConnect.hasSubscribers&&Gt.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[nA]?.version,servername:e[be],localAddress:e[Yr]},connector:e[Tr]});try{let s=await new Promise((i,o)=>{e[Tr]({host:A,hostname:t,protocol:r,port:n,servername:e[be],localAddress:e[Yr]},(a,c)=>{a?o(a):i(c)})});if(e.destroyed){Xe.destroy(s.on("error",XE),new $0);return}ue(s);try{e[nA]=s.alpnProtocol==="h2"?await yp(e,s):await wp(e,s)}catch(i){throw s.destroy().on("error",XE),i}e[vt]=!1,s[Ip]=0,s[Oo]=e[Oo],s[ep]=e,s[sp]=null,Gt.connected.hasSubscribers&&Gt.connected.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[nA]?.version,servername:e[be],localAddress:e[Yr]},connector:e[Tr],socket:s}),e.emit("connect",e[re],[e])}catch(s){if(e.destroyed)return;if(e[vt]=!1,Gt.connectError.hasSubscribers&&Gt.connectError.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[nA]?.version,servername:e[be],localAddress:e[Yr]},connector:e[Tr],error:s}),s.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(ue(e[vr]===0);e[Jr]>0&&e[WA][e[OA]].servername===e[be];){let i=e[WA][e[OA]++];Xe.errorRequest(e,i,s)}else AB(e,s);e.emit("connectionError",e[re],[e],s)}e[xr]()}function _E(e){e[Se]=0,e.emit("drain",e[re],[e])}function Zo(e,A){e[_e]!==2&&(e[_e]=2,Dp(e,A),e[_e]=0,e[he]>256&&(e[WA].splice(0,e[he]),e[OA]-=e[he],e[he]=0))}function Dp(e,A){for(;;){if(e.destroyed){ue(e[Jr]===0);return}if(e[Ne]&&!e[Gr]){e[Ne](),e[Ne]=null;return}if(e[nA]&&e[nA].resume(),e[Wo])e[Se]=2;else if(e[Se]===2){A?(e[Se]=1,queueMicrotask(()=>_E(e))):_E(e);continue}if(e[Jr]===0||e[vr]>=($E(e)||1))return;let t=e[WA][e[OA]];if(e[re].protocol==="https:"&&e[be]!==t.servername){if(e[vr]>0)return;e[be]=t.servername,e[nA]?.destroy(new j0("servername changed"),()=>{e[nA]=null,Zo(e)})}if(e[vt])return;if(!e[nA]){eB(e);return}if(e[nA].destroyed||e[nA].busy(t))return;!t.aborted&&e[nA].write(t)?e[OA]++:e[WA].splice(e[OA],1)}}tB.exports=Po});var Ko=f((MU,rB)=>{"use strict";var gs=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)}};rB.exports=class{constructor(){this.head=this.tail=new gs}isEmpty(){return this.head.isEmpty()}push(A){this.head.isFull()&&(this.head=this.head.next=new gs),this.head.push(A)}shift(){let A=this.tail,t=A.shift();return A.isEmpty()&&A.next!==null&&(this.tail=A.next),t}}});var sB=f((LU,nB)=>{var{kFree:kp,kConnected:mp,kPending:Fp,kQueued:Rp,kRunning:bp,kSize:Np}=X(),je=Symbol("pool"),zo=class{constructor(A){this[je]=A}get connected(){return this[je][mp]}get free(){return this[je][kp]}get pending(){return this[je][Fp]}get queued(){return this[je][Rp]}get running(){return this[je][bp]}get size(){return this[je][Np]}};nB.exports=zo});var ea=f((TU,lB)=>{"use strict";var Sp=Dt(),Up=Ko(),{kConnected:Xo,kSize:iB,kRunning:oB,kPending:aB,kQueued:Hr,kBusy:Mp,kFree:Lp,kUrl:Tp,kClose:Yp,kDestroy:xp,kDispatch:Gp}=X(),vp=sB(),dA=Symbol("clients"),lA=Symbol("needDrain"),Vr=Symbol("queue"),_o=Symbol("closed resolve"),jo=Symbol("onDrain"),cB=Symbol("onConnect"),gB=Symbol("onDisconnect"),QB=Symbol("onConnectionError"),$o=Symbol("get dispatcher"),BB=Symbol("add client"),IB=Symbol("remove client"),EB=Symbol("stats"),Aa=class extends Sp{constructor(A){super(A),this[Vr]=new Up,this[dA]=[],this[Hr]=0;let t=this;this[jo]=function(n,s){let i=t[Vr],o=!1;for(;!o;){let a=i.shift();if(!a)break;t[Hr]--,o=!this.dispatch(a.opts,a.handler)}this[lA]=o,!this[lA]&&t[lA]&&(t[lA]=!1,t.emit("drain",n,[t,...s])),t[_o]&&i.isEmpty()&&Promise.all(t[dA].map(a=>a.close())).then(t[_o])},this[cB]=(r,n)=>{t.emit("connect",r,[t,...n])},this[gB]=(r,n,s)=>{t.emit("disconnect",r,[t,...n],s)},this[QB]=(r,n,s)=>{t.emit("connectionError",r,[t,...n],s)},this[EB]=new vp(this)}get[Mp](){return this[lA]}get[Xo](){return this[dA].filter(A=>A[Xo]).length}get[Lp](){return this[dA].filter(A=>A[Xo]&&!A[lA]).length}get[aB](){let A=this[Hr];for(let{[aB]:t}of this[dA])A+=t;return A}get[oB](){let A=0;for(let{[oB]:t}of this[dA])A+=t;return A}get[iB](){let A=this[Hr];for(let{[iB]:t}of this[dA])A+=t;return A}get stats(){return this[EB]}async[Yp](){this[Vr].isEmpty()?await Promise.all(this[dA].map(A=>A.close())):await new Promise(A=>{this[_o]=A})}async[xp](A){for(;;){let t=this[Vr].shift();if(!t)break;t.handler.onError(A)}await Promise.all(this[dA].map(t=>t.destroy(A)))}[Gp](A,t){let r=this[$o]();return r?r.dispatch(A,t)||(r[lA]=!0,this[lA]=!this[$o]()):(this[lA]=!0,this[Vr].push({opts:A,handler:t}),this[Hr]++),!this[lA]}[BB](A){return A.on("drain",this[jo]).on("connect",this[cB]).on("disconnect",this[gB]).on("connectionError",this[QB]),this[dA].push(A),this[lA]&&queueMicrotask(()=>{this[lA]&&this[jo](A[Tp],[this,A])}),this}[IB](A){A.close(()=>{let t=this[dA].indexOf(A);t!==-1&&this[dA].splice(t,1)}),this[lA]=this[dA].some(t=>!t[lA]&&t.closed!==!0&&t.destroyed!==!0)}};lB.exports={PoolBase:Aa,kClients:dA,kNeedDrain:lA,kAddClient:BB,kRemoveClient:IB,kGetDispatcher:$o}});var Ht=f((YU,dB)=>{"use strict";var{PoolBase:Jp,kClients:Qs,kNeedDrain:Hp,kAddClient:Vp,kGetDispatcher:qp}=ea(),Wp=Jt(),{InvalidArgumentError:ta}=J(),CB=L(),{kUrl:uB,kInterceptors:Op}=X(),Pp=wr(),ra=Symbol("options"),na=Symbol("connections"),hB=Symbol("factory");function Zp(e,A){return new Wp(e,A)}var sa=class extends Jp{constructor(A,{connections:t,factory:r=Zp,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 ta("invalid connections");if(typeof r!="function")throw new ta("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new ta("connect must be a function or an object");typeof n!="function"&&(n=Pp({...i,maxCachedSessions:o,allowH2:Q,socketPath:a,timeout:s,...c?{autoSelectFamily:c,autoSelectFamilyAttemptTimeout:g}:void 0,...n})),super(E),this[Op]=E.interceptors?.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[na]=t||null,this[uB]=CB.parseOrigin(A),this[ra]={...CB.deepClone(E),connect:n,allowH2:Q},this[ra].interceptors=E.interceptors?{...E.interceptors}:void 0,this[hB]=r,this.on("connectionError",(B,I,C)=>{for(let u of I){let l=this[Qs].indexOf(u);l!==-1&&this[Qs].splice(l,1)}})}[qp](){for(let A of this[Qs])if(!A[Hp])return A;if(!this[na]||this[Qs].length<this[na]){let A=this[hB](this[uB],this[ra]);return this[Vp](A),A}}};dB.exports=sa});var DB=f((xU,pB)=>{"use strict";var{BalancedPoolMissingUpstreamError:Kp,InvalidArgumentError:zp}=J(),{PoolBase:Xp,kClients:QA,kNeedDrain:qr,kAddClient:_p,kRemoveClient:jp,kGetDispatcher:$p}=ea(),AD=Ht(),{kUrl:ia,kInterceptors:eD}=X(),{parseOrigin:fB}=L(),wB=Symbol("factory"),Es=Symbol("options"),yB=Symbol("kGreatestCommonDivisor"),$e=Symbol("kCurrentWeight"),At=Symbol("kIndex"),YA=Symbol("kWeight"),Bs=Symbol("kMaxWeightPerServer"),Is=Symbol("kErrorPenalty");function tD(e,A){if(e===0)return A;for(;A!==0;){let t=A;A=e%A,e=t}return e}function rD(e,A){return new AD(e,A)}var oa=class extends Xp{constructor(A=[],{factory:t=rD,...r}={}){if(super(),this[Es]=r,this[At]=-1,this[$e]=0,this[Bs]=this[Es].maxWeightPerServer||100,this[Is]=this[Es].errorPenalty||15,Array.isArray(A)||(A=[A]),typeof t!="function")throw new zp("factory must be a function.");this[eD]=r.interceptors?.BalancedPool&&Array.isArray(r.interceptors.BalancedPool)?r.interceptors.BalancedPool:[],this[wB]=t;for(let n of A)this.addUpstream(n);this._updateBalancedPoolStats()}addUpstream(A){let t=fB(A).origin;if(this[QA].find(n=>n[ia].origin===t&&n.closed!==!0&&n.destroyed!==!0))return this;let r=this[wB](t,Object.assign({},this[Es]));this[_p](r),r.on("connect",()=>{r[YA]=Math.min(this[Bs],r[YA]+this[Is])}),r.on("connectionError",()=>{r[YA]=Math.max(1,r[YA]-this[Is]),this._updateBalancedPoolStats()}),r.on("disconnect",(...n)=>{let s=n[2];s&&s.code==="UND_ERR_SOCKET"&&(r[YA]=Math.max(1,r[YA]-this[Is]),this._updateBalancedPoolStats())});for(let n of this[QA])n[YA]=this[Bs];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let A=0;for(let t=0;t<this[QA].length;t++)A=tD(this[QA][t][YA],A);this[yB]=A}removeUpstream(A){let t=fB(A).origin,r=this[QA].find(n=>n[ia].origin===t&&n.closed!==!0&&n.destroyed!==!0);return r&&this[jp](r),this}get upstreams(){return this[QA].filter(A=>A.closed!==!0&&A.destroyed!==!0).map(A=>A[ia].origin)}[$p](){if(this[QA].length===0)throw new Kp;if(!this[QA].find(s=>!s[qr]&&s.closed!==!0&&s.destroyed!==!0)||this[QA].map(s=>s[qr]).reduce((s,i)=>s&&i,!0))return;let r=0,n=this[QA].findIndex(s=>!s[qr]);for(;r++<this[QA].length;){this[At]=(this[At]+1)%this[QA].length;let s=this[QA][this[At]];if(s[YA]>this[QA][n][YA]&&!s[qr]&&(n=this[At]),this[At]===0&&(this[$e]=this[$e]-this[yB],this[$e]<=0&&(this[$e]=this[Bs])),s[YA]>=this[$e]&&!s[qr])return s}return this[$e]=this[QA][n][YA],this[At]=n,this[QA][n]}};pB.exports=oa});var Vt=f((GU,SB)=>{"use strict";var{InvalidArgumentError:ls}=J(),{kClients:Ue,kRunning:kB,kClose:nD,kDestroy:sD,kDispatch:iD,kInterceptors:oD}=X(),aD=Dt(),cD=Ht(),gD=Jt(),QD=L(),ED=as(),mB=Symbol("onConnect"),FB=Symbol("onDisconnect"),RB=Symbol("onConnectionError"),BD=Symbol("maxRedirections"),bB=Symbol("onDrain"),NB=Symbol("factory"),aa=Symbol("options");function ID(e,A){return A&&A.connections===1?new gD(e,A):new cD(e,A)}var ca=class extends aD{constructor({factory:A=ID,maxRedirections:t=0,connect:r,...n}={}){if(typeof A!="function")throw new ls("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new ls("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new ls("maxRedirections must be a positive number");super(n),r&&typeof r!="function"&&(r={...r}),this[oD]=n.interceptors?.Agent&&Array.isArray(n.interceptors.Agent)?n.interceptors.Agent:[ED({maxRedirections:t})],this[aa]={...QD.deepClone(n),connect:r},this[aa].interceptors=n.interceptors?{...n.interceptors}:void 0,this[BD]=t,this[NB]=A,this[Ue]=new Map,this[bB]=(s,i)=>{this.emit("drain",s,[this,...i])},this[mB]=(s,i)=>{this.emit("connect",s,[this,...i])},this[FB]=(s,i,o)=>{this.emit("disconnect",s,[this,...i],o)},this[RB]=(s,i,o)=>{this.emit("connectionError",s,[this,...i],o)}}get[kB](){let A=0;for(let t of this[Ue].values())A+=t[kB];return A}[iD](A,t){let r;if(A.origin&&(typeof A.origin=="string"||A.origin instanceof URL))r=String(A.origin);else throw new ls("opts.origin must be a non-empty string or URL.");let n=this[Ue].get(r);return n||(n=this[NB](A.origin,this[aa]).on("drain",this[bB]).on("connect",this[mB]).on("disconnect",this[FB]).on("connectionError",this[RB]),this[Ue].set(r,n)),n.dispatch(A,t)}async[nD](){let A=[];for(let t of this[Ue].values())A.push(t.close());this[Ue].clear(),await Promise.all(A)}async[sD](A){let t=[];for(let r of this[Ue].values())t.push(r.destroy(A));this[Ue].clear(),await Promise.all(t)}};SB.exports=ca});var Ia=f((vU,VB)=>{"use strict";var{kProxy:ga,kClose:xB,kDestroy:GB,kDispatch:UB,kInterceptors:lD}=X(),{URL:et}=d("node:url"),CD=Vt(),vB=Ht(),JB=Dt(),{InvalidArgumentError:qt,RequestAbortedError:uD,SecureProxyConnectionError:hD}=J(),MB=wr(),HB=Jt(),Cs=Symbol("proxy agent"),us=Symbol("proxy client"),Me=Symbol("proxy headers"),Qa=Symbol("request tls settings"),LB=Symbol("proxy tls settings"),TB=Symbol("connect endpoint function"),YB=Symbol("tunnel proxy");function dD(e){return e==="https:"?443:80}function fD(e,A){return new vB(e,A)}var wD=()=>{};function yD(e,A){return A.connections===1?new HB(e,A):new vB(e,A)}var Ea=class extends JB{#A;constructor(A,{headers:t={},connect:r,factory:n}){if(super(),!A)throw new qt("Proxy URL is mandatory");this[Me]=t,n?this.#A=n(A,{connect:r}):this.#A=new HB(A,{connect:r})}[UB](A,t){let r=t.onHeaders;t.onHeaders=function(o,a,c){if(o===407){typeof t.onError=="function"&&t.onError(new qt("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 et(n);i.host=o}return A.headers={...this[Me],...i},this.#A[UB](A,t)}async[xB](){return this.#A.close()}async[GB](A){return this.#A.destroy(A)}},Ba=class extends JB{constructor(A){if(super(),!A||typeof A=="object"&&!(A instanceof et)&&!A.uri)throw new qt("Proxy uri is mandatory");let{clientFactory:t=fD}=A;if(typeof t!="function")throw new qt("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[ga]={uri:s,protocol:a},this[lD]=A.interceptors?.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],this[Qa]=A.requestTls,this[LB]=A.proxyTls,this[Me]=A.headers||{},this[YB]=r,A.auth&&A.token)throw new qt("opts.auth cannot be used in combination with opts.token");A.auth?this[Me]["proxy-authorization"]=`Basic ${A.auth}`:A.token?this[Me]["proxy-authorization"]=A.token:c&&g&&(this[Me]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(c)}:${decodeURIComponent(g)}`).toString("base64")}`);let E=MB({...A.proxyTls});this[TB]=MB({...A.requestTls});let B=A.factory||yD,I=(C,u)=>{let{protocol:l}=new et(C);return!this[YB]&&l==="http:"&&this[ga].protocol==="http:"?new Ea(this[ga].uri,{headers:this[Me],connect:E,factory:B}):B(C,u)};this[us]=t(n,{connect:E}),this[Cs]=new CD({...A,factory:I,connect:async(C,u)=>{let l=C.host;C.port||(l+=`:${dD(C.protocol)}`);try{let{socket:h,statusCode:D}=await this[us].connect({origin:i,port:o,path:l,signal:C.signal,headers:{...this[Me],host:C.host},servername:this[LB]?.servername||Q});if(D!==200&&(h.on("error",wD).destroy(),u(new uD(`Proxy response (${D}) !== 200 when HTTP Tunneling`))),C.protocol!=="https:"){u(null,h);return}let p;this[Qa]?p=this[Qa].servername:p=C.servername,this[TB]({...C,servername:p,httpSocket:h},u)}catch(h){h.code==="ERR_TLS_CERT_ALTNAME_INVALID"?u(new hD(h)):u(h)}}})}dispatch(A,t){let r=pD(A.headers);if(DD(r),r&&!("host"in r)&&!("Host"in r)){let{host:n}=new et(A.origin);r.host=n}return this[Cs].dispatch({...A,headers:r},t)}#A(A){return typeof A=="string"?new et(A):A instanceof et?A:new et(A.uri)}async[xB](){await this[Cs].close(),await this[us].close()}async[GB](){await this[Cs].destroy(),await this[us].destroy()}};function pD(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 DD(e){if(e&&Object.keys(e).find(t=>t.toLowerCase()==="proxy-authorization"))throw new qt("Proxy-Authorization should be sent in ProxyAgent constructor")}VB.exports=Ba});var KB=f((JU,ZB)=>{"use strict";var kD=Dt(),{kClose:mD,kDestroy:FD,kClosed:qB,kDestroyed:WB,kDispatch:RD,kNoProxyAgent:Wr,kHttpProxyAgent:Le,kHttpsProxyAgent:tt}=X(),OB=Ia(),bD=Vt(),ND={"http:":80,"https:":443},PB=!1,la=class extends kD{#A=null;#e=null;#t=null;constructor(A={}){super(),this.#t=A,PB||(PB=!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[Wr]=new bD(s);let i=t??process.env.http_proxy??process.env.HTTP_PROXY;i?this[Le]=new OB({...s,uri:i}):this[Le]=this[Wr];let o=r??process.env.https_proxy??process.env.HTTPS_PROXY;o?this[tt]=new OB({...s,uri:o}):this[tt]=this[Le],this.#r()}[RD](A,t){let r=new URL(A.origin);return this.#s(r).dispatch(A,t)}async[mD](){await this[Wr].close(),this[Le][qB]||await this[Le].close(),this[tt][qB]||await this[tt].close()}async[FD](A){await this[Wr].destroy(A),this[Le][WB]||await this[Le].destroy(A),this[tt][WB]||await this[tt].destroy(A)}#s(A){let{protocol:t,host:r,port:n}=A;return r=r.replace(/:\d*$/,"").toLowerCase(),n=Number.parseInt(n,10)||ND[t]||0,this.#n(r,n)?t==="https:"?this[tt]:this[Le]:this[Wr]}#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??""}};ZB.exports=la});var hs=f((HU,$B)=>{"use strict";var Wt=d("node:assert"),{kRetryHandlerDefaultRetry:zB}=X(),{RequestRetryError:Ot}=J(),{isDisturbed:XB,parseHeaders:SD,parseRangeHeader:_B,wrapRequestBody:UD}=L();function MD(e){let A=Date.now();return new Date(e).getTime()-A}function jB(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 Ot("Content-Length mismatch",t,{headers:e,data:{count:r}}):null}var Ca=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:UD(A.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:s??e[zB],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[zB](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:C,methods:u}=c,{counter:l}=t;if(i&&i!=="UND_ERR_REQ_RETRY"&&!C.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(l>g){n(A);return}let h=o?.["retry-after"];h&&(h=Number(h),h=Number.isNaN(h)?MD(h):h*1e3);let D=h>0?Math.min(h,E):Math.min(Q*B**(l-1),E);setTimeout(()=>n(null),D)}onHeaders(A,t,r,n){let s=SD(t);if(this.retryCount+=1,A>=300)return this.retryOpts.statusCodes.includes(A)===!1?this.handler.onHeaders(A,t,r,n):(this.abort(new Ot("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 Ot("server does not support the range header and the payload was partially consumed",A,{headers:s,data:{count:this.retryCount}})),!1;let o=_B(s["content-range"]);if(!o)return this.abort(new Ot("Content-Range mismatch",A,{headers:s,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==s.etag)return this.abort(new Ot("ETag mismatch",A,{headers:s,data:{count:this.retryCount}})),!1;let a=jB(s,o,A,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:c,size:g,end:Q=g-1}=o;return Wt(this.start===c,"content-range mismatch"),Wt(this.end==null||this.end===Q,"content-range mismatch"),this.resume=r,!0}if(this.end==null){if(A===206){let o=_B(s["content-range"]);if(o==null)return this.handler.onHeaders(A,t,r,n);let a=jB(s,o,A,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:c,size:g,end:Q=g-1}=o;Wt(c!=null&&Number.isFinite(c),"content-range mismatch"),Wt(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 Wt(Number.isFinite(this.start)),Wt(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 Ot("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||XB(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||XB(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)}}}};$B.exports=Ca});var eI=f((VU,AI)=>{"use strict";var LD=dr(),TD=hs(),ua=class extends LD{#A=null;#e=null;constructor(A,t={}){super(t),this.#A=A,this.#e=t}dispatch(A,t){let r=new TD({...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()}};AI.exports=ua});var pa=f((qU,gI)=>{"use strict";var iI=d("node:assert"),{Readable:YD}=d("node:stream"),{RequestAbortedError:oI,NotSupportedError:xD,InvalidArgumentError:GD,AbortError:ha}=J(),aI=L(),{ReadableStreamFrom:vD}=L(),kA=Symbol("kConsume"),Or=Symbol("kReading"),Te=Symbol("kBody"),tI=Symbol("kAbort"),cI=Symbol("kContentType"),rI=Symbol("kContentLength"),JD=()=>{},da=class extends YD{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[tI]=t,this[kA]=null,this[Te]=null,this[cI]=r,this[rI]=n,this[Or]=!1}destroy(A){return!A&&!this._readableState.endEmitted&&(A=new oI),A&&this[tI](),super.destroy(A)}_destroy(A,t){this[Or]?t(A):setImmediate(()=>{t(A)})}on(A,...t){return(A==="data"||A==="readable")&&(this[Or]=!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[Or]=this.listenerCount("data")>0||this.listenerCount("readable")>0),r}removeListener(A,...t){return this.off(A,...t)}push(A){return this[kA]&&A!==null?(wa(this[kA],A),this[Or]?super.push(A):!0):super.push(A)}async text(){return Pr(this,"text")}async json(){return Pr(this,"json")}async blob(){return Pr(this,"blob")}async bytes(){return Pr(this,"bytes")}async arrayBuffer(){return Pr(this,"arrayBuffer")}async formData(){throw new xD}get bodyUsed(){return aI.isDisturbed(this)}get body(){return this[Te]||(this[Te]=vD(this),this[kA]&&(this[Te].getReader(),iI(this[Te].locked))),this[Te]}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 GD("signal must be an AbortSignal");return r?.throwIfAborted(),this._readableState.closeEmitted?null:await new Promise((n,s)=>{this[rI]>t&&this.destroy(new ha);let i=()=>{this.destroy(r.reason??new ha)};r?.addEventListener("abort",i),this.on("close",function(){r?.removeEventListener("abort",i),r?.aborted?s(r.reason??new ha):n(null)}).on("error",JD).on("data",function(o){t-=o.length,t<=0&&this.destroy()}).resume()})}};function HD(e){return e[Te]&&e[Te].locked===!0||e[kA]}function VD(e){return aI.isDisturbed(e)||HD(e)}async function Pr(e,A){return iI(!e[kA]),new Promise((t,r)=>{if(VD(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[kA]={type:A,stream:e,resolve:t,reject:r,length:0,body:[]},e.on("error",function(n){ya(this[kA],n)}).on("close",function(){this[kA].body!==null&&ya(this[kA],new oI)}),qD(e[kA])})})}function qD(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++)wa(e,A.buffer[n])}else for(let t of A.buffer)wa(e,t);for(A.endEmitted?sI(this[kA]):e.stream.on("end",function(){sI(this[kA])}),e.stream.resume();e.stream.read()!=null;);}function fa(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 nI(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 sI(e){let{type:A,body:t,resolve:r,stream:n,length:s}=e;try{A==="text"?r(fa(t,s)):A==="json"?r(JSON.parse(fa(t,s))):A==="arrayBuffer"?r(nI(t,s).buffer):A==="blob"?r(new Blob(t,{type:n[cI]})):A==="bytes"&&r(nI(t,s)),ya(e)}catch(i){n.destroy(i)}}function wa(e,A){e.length+=A.length,e.body.push(A)}function ya(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)}gI.exports={Readable:da,chunksDecode:fa}});var Da=f((WU,lI)=>{var WD=d("node:assert"),{ResponseStatusCodeError:QI}=J(),{chunksDecode:EI}=pa(),OD=128*1024;async function PD({callback:e,body:A,contentType:t,statusCode:r,statusMessage:n,headers:s}){WD(A);let i=[],o=0;try{for await(let Q of A)if(i.push(Q),o+=Q.length,o>OD){i=[],o=0;break}}catch{i=[],o=0}let a=`Response status code ${r}${n?`: ${n}`:""}`;if(r===204||!t||!o){queueMicrotask(()=>e(new QI(a,r,s)));return}let c=Error.stackTraceLimit;Error.stackTraceLimit=0;let g;try{BI(t)?g=JSON.parse(EI(i,o)):II(t)&&(g=EI(i,o))}catch{}finally{Error.stackTraceLimit=c}queueMicrotask(()=>e(new QI(a,r,s,g)))}var BI=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",II=e=>e.length>4&&e[4]==="/"&&e[0]==="t"&&e[1]==="e"&&e[2]==="x"&&e[3]==="t";lI.exports={getResolveErrorBodyCallback:PD,isContentTypeApplicationJson:BI,isContentTypeText:II}});var hI=f((OU,ka)=>{"use strict";var ZD=d("node:assert"),{Readable:KD}=pa(),{InvalidArgumentError:Pt,RequestAbortedError:CI}=J(),mA=L(),{getResolveErrorBodyCallback:zD}=Da(),{AsyncResource:XD}=d("node:async_hooks"),ds=class extends XD{constructor(A,t){if(!A||typeof A!="object")throw new Pt("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 Pt("invalid callback");if(g&&(typeof g!="number"||g<0))throw new Pt("invalid highWaterMark");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Pt("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new Pt("invalid method");if(o&&typeof o!="function")throw new Pt("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 CI:this.removeAbortListener=mA.addAbortListener(this.signal,()=>{this.reason=this.signal.reason??new CI,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}ZD(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"],C=new KD({resume:r,abort:o,contentType:B,contentLength:this.method!=="HEAD"&&I?Number(I):null,highWaterMark:g});this.removeAbortListener&&C.on("close",this.removeAbortListener),this.callback=null,this.res=C,s!==null&&(this.throwOnError&&A>=400?this.runInAsyncScope(zD,null,{callback:s,body:C,contentType:B,statusCode:A,statusMessage:n,headers:Q}):this.runInAsyncScope(s,null,null,{statusCode:A,headers:Q,trailers:this.trailers,opaque:i,body:C,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 uI(e,A){if(A===void 0)return new Promise((t,r)=>{uI.call(this,e,(n,s)=>n?r(n):t(s))});try{this.dispatch(e,new ds(e,A))}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}ka.exports=uI;ka.exports.RequestHandler=ds});var Zr=f((PU,wI)=>{var{addAbortListener:_D}=L(),{RequestAbortedError:jD}=J(),Zt=Symbol("kListener"),ne=Symbol("kSignal");function dI(e){e.abort?e.abort(e[ne]?.reason):e.reason=e[ne]?.reason??new jD,fI(e)}function $D(e,A){if(e.reason=null,e[ne]=null,e[Zt]=null,!!A){if(A.aborted){dI(e);return}e[ne]=A,e[Zt]=()=>{dI(e)},_D(e[ne],e[Zt])}}function fI(e){e[ne]&&("removeEventListener"in e[ne]?e[ne].removeEventListener("abort",e[Zt]):e[ne].removeListener("abort",e[Zt]),e[ne]=null,e[Zt]=null)}wI.exports={addSignal:$D,removeSignal:fI}});var kI=f((ZU,DI)=>{"use strict";var Ak=d("node:assert"),{finished:ek,PassThrough:tk}=d("node:stream"),{InvalidArgumentError:Kt,InvalidReturnValueError:rk}=J(),PA=L(),{getResolveErrorBodyCallback:nk}=Da(),{AsyncResource:sk}=d("node:async_hooks"),{addSignal:ik,removeSignal:yI}=Zr(),ma=class extends sk{constructor(A,t,r){if(!A||typeof A!="object")throw new Kt("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 Kt("invalid callback");if(typeof t!="function")throw new Kt("invalid factory");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Kt("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new Kt("invalid method");if(a&&typeof a!="function")throw new Kt("invalid onInfo callback");super("UNDICI_STREAM")}catch(Q){throw PA.isStream(o)&&PA.destroy(o.on("error",PA.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,PA.isStream(o)&&o.on("error",Q=>{this.onError(Q)}),ik(this,n)}onConnect(A,t){if(this.reason){A(this.reason);return}Ak(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"?PA.parseRawHeaders(t):PA.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"?PA.parseHeaders(t):g)["content-type"];Q=new tk,this.callback=null,this.runInAsyncScope(nk,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 rk("expected Writable");ek(Q,{readable:!1},B=>{let{callback:I,res:C,opaque:u,trailers:l,abort:h}=this;this.res=null,(B||!C.readable)&&PA.destroy(C,B),this.callback=null,this.runInAsyncScope(I,null,B||null,{opaque:u,trailers:l}),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;yI(this),t&&(this.trailers=PA.parseHeaders(A),t.end())}onError(A){let{res:t,callback:r,opaque:n,body:s}=this;yI(this),this.factory=null,t?(this.res=null,PA.destroy(t,A)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,A,{opaque:n})})),s&&(this.body=null,PA.destroy(s,A))}};function pI(e,A,t){if(t===void 0)return new Promise((r,n)=>{pI.call(this,e,A,(s,i)=>s?n(s):r(i))});try{this.dispatch(e,new ma(e,A,t))}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}DI.exports=pI});var bI=f((KU,RI)=>{"use strict";var{Readable:FI,Duplex:ok,PassThrough:ak}=d("node:stream"),{InvalidArgumentError:Kr,InvalidReturnValueError:ck,RequestAbortedError:Fa}=J(),xA=L(),{AsyncResource:gk}=d("node:async_hooks"),{addSignal:Qk,removeSignal:Ek}=Zr(),mI=d("node:assert"),zt=Symbol("resume"),Ra=class extends FI{constructor(){super({autoDestroy:!0}),this[zt]=null}_read(){let{[zt]:A}=this;A&&(this[zt]=null,A())}_destroy(A,t){this._read(),t(A)}},ba=class extends FI{constructor(A){super({autoDestroy:!0}),this[zt]=A}_read(){this[zt]()}_destroy(A,t){!A&&!this._readableState.endEmitted&&(A=new Fa),t(A)}},Na=class extends gk{constructor(A,t){if(!A||typeof A!="object")throw new Kr("invalid opts");if(typeof t!="function")throw new Kr("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 Kr("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new Kr("invalid method");if(i&&typeof i!="function")throw new Kr("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 Ra().on("error",xA.nop),this.ret=new ok({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 Fa),I&&a&&I(),xA.destroy(g,a),xA.destroy(Q,a),xA.destroy(E,a),Ek(this),c(a)}}).on("prefinish",()=>{let{req:a}=this;a.push(null)}),this.res=null,Qk(this,r)}onConnect(A,t){let{ret:r,res:n}=this;if(this.reason){A(this.reason);return}mI(!n,"pipeline cannot be retried"),mI(!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"?xA.parseRawHeaders(t):xA.parseHeaders(t);this.onInfo({statusCode:A,headers:a})}return}this.res=new ba(r);let o;try{this.handler=null;let a=this.responseHeaders==="raw"?xA.parseRawHeaders(t):xA.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",xA.nop),a}if(!o||typeof o.on!="function")throw new ck("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;xA.destroy(c,a)}).on("end",()=>{let{ret:a}=this;a.push(null)}).on("close",()=>{let{ret:a}=this;a._readableState.ended||xA.destroy(a,new Fa)}),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,xA.destroy(t,A)}};function Bk(e,A){try{let t=new Na(e,A);return this.dispatch({...e,body:t.req},t),t.ret}catch(t){return new ak().destroy(t)}}RI.exports=Bk});var TI=f((zU,LI)=>{"use strict";var{InvalidArgumentError:Sa,SocketError:Ik}=J(),{AsyncResource:lk}=d("node:async_hooks"),NI=L(),{addSignal:Ck,removeSignal:SI}=Zr(),UI=d("node:assert"),Ua=class extends lk{constructor(A,t){if(!A||typeof A!="object")throw new Sa("invalid opts");if(typeof t!="function")throw new Sa("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Sa("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,Ck(this,r)}onConnect(A,t){if(this.reason){A(this.reason);return}UI(this.callback),this.abort=A,this.context=null}onHeaders(){throw new Ik("bad upgrade",null)}onUpgrade(A,t,r){UI(A===101);let{callback:n,opaque:s,context:i}=this;SI(this),this.callback=null;let o=this.responseHeaders==="raw"?NI.parseRawHeaders(t):NI.parseHeaders(t);this.runInAsyncScope(n,null,null,{headers:o,socket:r,opaque:s,context:i})}onError(A){let{callback:t,opaque:r}=this;SI(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 Ua(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}))}}LI.exports=MI});var JI=f((XU,vI)=>{"use strict";var uk=d("node:assert"),{AsyncResource:hk}=d("node:async_hooks"),{InvalidArgumentError:Ma,SocketError:dk}=J(),YI=L(),{addSignal:fk,removeSignal:xI}=Zr(),La=class extends hk{constructor(A,t){if(!A||typeof A!="object")throw new Ma("invalid opts");if(typeof t!="function")throw new Ma("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Ma("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=n||null,this.responseHeaders=s||null,this.callback=t,this.abort=null,fk(this,r)}onConnect(A,t){if(this.reason){A(this.reason);return}uk(this.callback),this.abort=A,this.context=t}onHeaders(){throw new dk("bad connect",null)}onUpgrade(A,t,r){let{callback:n,opaque:s,context:i}=this;xI(this),this.callback=null;let o=t;o!=null&&(o=this.responseHeaders==="raw"?YI.parseRawHeaders(t):YI.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;xI(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:r})}))}};function GI(e,A){if(A===void 0)return new Promise((t,r)=>{GI.call(this,e,(n,s)=>n?r(n):t(s))});try{let t=new La(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}))}}vI.exports=GI});var HI=f((_U,Xt)=>{"use strict";Xt.exports.request=hI();Xt.exports.stream=kI();Xt.exports.pipeline=bI();Xt.exports.upgrade=TI();Xt.exports.connect=JI()});var Ya=f((jU,qI)=>{"use strict";var{UndiciError:wk}=J(),VI=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"),Ta=class e extends wk{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[VI]===!0}[VI]=!0};qI.exports={MockNotMatchedError:Ta}});var _t=f(($U,WI)=>{"use strict";WI.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((AM,el)=>{"use strict";var{MockNotMatchedError:rt}=Ya(),{kDispatches:fs,kMockAgent:yk,kOriginalDispatch:pk,kOrigin:Dk,kGetNetConnect:kk}=_t(),{buildURL:mk}=L(),{STATUS_CODES:Fk}=d("node:http"),{types:{isPromise:Rk}}=d("node:util");function de(e,A){return typeof e=="string"?e===A:e instanceof RegExp?e.test(A):typeof e=="function"?e(A)===!0:!1}function PI(e){return Object.fromEntries(Object.entries(e).map(([A,t])=>[A.toLocaleLowerCase(),t]))}function ZI(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):PI(e)[A.toLocaleLowerCase()]}function va(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 KI(e,A){if(typeof e.headers=="function")return Array.isArray(A)&&(A=va(A)),e.headers(A?PI(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=ZI(A,t);if(!de(r,n))return!1}return!0}function OI(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 bk(e,{path:A,method:t,body:r,headers:n}){let s=de(e.path,A),i=de(e.method,t),o=typeof e.body<"u"?de(e.body,r):!0,a=KI(e,n);return s&&i&&o&&a}function zI(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:typeof e=="object"?JSON.stringify(e):e.toString()}function XI(e,A){let t=A.query?mk(A.path,A.query):A.path,r=typeof t=="string"?OI(t):t,n=e.filter(({consumed:s})=>!s).filter(({path:s})=>de(OI(s),r));if(n.length===0)throw new rt(`Mock dispatch not matched for path '${r}'`);if(n=n.filter(({method:s})=>de(s,A.method)),n.length===0)throw new rt(`Mock dispatch not matched for method '${A.method}' on path '${r}'`);if(n=n.filter(({body:s})=>typeof s<"u"?de(s,A.body):!0),n.length===0)throw new rt(`Mock dispatch not matched for body '${A.body}' on path '${r}'`);if(n=n.filter(s=>KI(s,A.headers)),n.length===0){let s=typeof A.headers=="object"?JSON.stringify(A.headers):A.headers;throw new rt(`Mock dispatch not matched for headers '${s}' on path '${r}'`)}return n[0]}function Nk(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 xa(e,A){let t=e.findIndex(r=>r.consumed?bk(r,A):!1);t!==-1&&e.splice(t,1)}function _I(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 Ga(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 jI(e){return Fk[e]||"unknown"}async function Sk(e){let A=[];for await(let t of e)A.push(t);return Buffer.concat(A).toString("utf8")}function $I(e,A){let t=_I(e),r=XI(this[fs],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 xa(this[fs],t),A.onError(a),!0;typeof c=="number"&&c>0?setTimeout(()=>{B(this[fs])},c):B(this[fs]);function B(C,u=s){let l=Array.isArray(e.headers)?va(e.headers):e.headers,h=typeof u=="function"?u({...e,headers:l}):u;if(Rk(h)){h.then(tA=>B(C,tA));return}let D=zI(h),p=Ga(i),H=Ga(o);A.onConnect?.(tA=>A.onError(tA),null),A.onHeaders?.(n,p,I,jI(n)),A.onData?.(Buffer.from(D)),A.onComplete?.(H),xa(C,t)}function I(){}return!0}function Uk(){let e=this[yk],A=this[Dk],t=this[pk];return function(n,s){if(e.isMockActive)try{$I.call(this,n,s)}catch(i){if(i instanceof rt){let o=e[kk]();if(o===!1)throw new rt(`${i.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`);if(Al(o,A))t.call(this,n,s);else throw new rt(`${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 Al(e,A){let t=new URL(A);return e===!0?!0:!!(Array.isArray(e)&&e.some(r=>de(r,t.host)))}function Mk(e){if(e){let{agent:A,...t}=e;return t}}el.exports={getResponseData:zI,getMockDispatch:XI,addMockDispatch:Nk,deleteMockDispatch:xa,buildKey:_I,generateKeyValues:Ga,matchValue:de,getResponse:Sk,getStatusText:jI,mockDispatch:$I,buildMockDispatch:Uk,checkNetConnect:Al,buildMockOptions:Mk,getHeaderByName:ZI,buildHeadersFromArray:va}});var Pa=f((eM,Oa)=>{"use strict";var{getResponseData:Lk,buildKey:Tk,addMockDispatch:Ja}=zr(),{kDispatches:ws,kDispatchKey:ys,kDefaultHeaders:Ha,kDefaultTrailers:Va,kContentLength:qa,kMockDispatch:ps}=_t(),{InvalidArgumentError:se}=J(),{buildURL:Yk}=L(),jt=class{constructor(A){this[ps]=A}delay(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new se("waitInMs must be a valid integer > 0");return this[ps].delay=A,this}persist(){return this[ps].persist=!0,this}times(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new se("repeatTimes must be a valid integer > 0");return this[ps].times=A,this}},Wa=class{constructor(A,t){if(typeof A!="object")throw new se("opts must be an object");if(typeof A.path>"u")throw new se("opts.path must be defined");if(typeof A.method>"u"&&(A.method="GET"),typeof A.path=="string")if(A.query)A.path=Yk(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[ys]=Tk(A),this[ws]=t,this[Ha]={},this[Va]={},this[qa]=!1}createMockScopeDispatchData({statusCode:A,data:t,responseOptions:r}){let n=Lk(t),s=this[qa]?{"content-length":n.length}:{},i={...this[Ha],...s,...r.headers},o={...this[Va],...r.trailers};return{statusCode:A,data:t,headers:i,trailers:o}}validateReplyParameters(A){if(typeof A.statusCode>"u")throw new se("statusCode must be defined");if(typeof A.responseOptions!="object"||A.responseOptions===null)throw new se("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 se("reply options callback must return an object");let c={data:"",responseOptions:{},...a};return this.validateReplyParameters(c),{...this.createMockScopeDispatchData(c)}},i=Ja(this[ws],this[ys],s);return new jt(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=Ja(this[ws],this[ys],r);return new jt(n)}replyWithError(A){if(typeof A>"u")throw new se("error must be defined");let t=Ja(this[ws],this[ys],{error:A});return new jt(t)}defaultReplyHeaders(A){if(typeof A>"u")throw new se("headers must be defined");return this[Ha]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new se("trailers must be defined");return this[Va]=A,this}replyContentLength(){return this[qa]=!0,this}};Oa.exports.MockInterceptor=Wa;Oa.exports.MockScope=jt});var za=f((tM,al)=>{"use strict";var{promisify:xk}=d("node:util"),Gk=Jt(),{buildMockDispatch:vk}=zr(),{kDispatches:tl,kMockAgent:rl,kClose:nl,kOriginalClose:sl,kOrigin:il,kOriginalDispatch:Jk,kConnected:Za}=_t(),{MockInterceptor:Hk}=Pa(),ol=X(),{InvalidArgumentError:Vk}=J(),Ka=class extends Gk{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new Vk("Argument opts.agent must implement Agent");this[rl]=t.agent,this[il]=A,this[tl]=[],this[Za]=1,this[Jk]=this.dispatch,this[sl]=this.close.bind(this),this.dispatch=vk.call(this),this.close=this[nl]}get[ol.kConnected](){return this[Za]}intercept(A){return new Hk(A,this[tl])}async[nl](){await xk(this[sl])(),this[Za]=0,this[rl][ol.kClients].delete(this[il])}};al.exports=Ka});var ja=f((rM,ll)=>{"use strict";var{promisify:qk}=d("node:util"),Wk=Ht(),{buildMockDispatch:Ok}=zr(),{kDispatches:cl,kMockAgent:gl,kClose:Ql,kOriginalClose:El,kOrigin:Bl,kOriginalDispatch:Pk,kConnected:Xa}=_t(),{MockInterceptor:Zk}=Pa(),Il=X(),{InvalidArgumentError:Kk}=J(),_a=class extends Wk{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new Kk("Argument opts.agent must implement Agent");this[gl]=t.agent,this[Bl]=A,this[cl]=[],this[Xa]=1,this[Pk]=this.dispatch,this[El]=this.close.bind(this),this.dispatch=Ok.call(this),this.close=this[Ql]}get[Il.kConnected](){return this[Xa]}intercept(A){return new Zk(A,this[cl])}async[Ql](){await qk(this[El])(),this[Xa]=0,this[gl][Il.kClients].delete(this[Bl])}};ll.exports=_a});var ul=f((sM,Cl)=>{"use strict";var zk={pronoun:"it",is:"is",was:"was",this:"this"},Xk={pronoun:"they",is:"are",was:"were",this:"these"};Cl.exports=class{constructor(A,t){this.singular=A,this.plural=t}pluralize(A){let t=A===1,r=t?zk:Xk,n=t?this.singular:this.plural;return{...r,count:A,noun:n}}}});var dl=f((oM,hl)=>{"use strict";var{Transform:_k}=d("node:stream"),{Console:jk}=d("node:console"),$k=process.versions.icu?"\u2705":"Y ",Am=process.versions.icu?"\u274C":"N ";hl.exports=class{constructor({disableColors:A}={}){this.transform=new _k({transform(t,r,n){n(null,t)}}),this.logger=new jk({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?$k:Am,Invocations:a,Remaining:i?1/0:o-a}));return this.logger.table(t),this.transform.read().toString()}}});var pl=f((aM,yl)=>{"use strict";var{kClients:nt}=X(),em=Vt(),{kAgent:$a,kMockAgentSet:Ds,kMockAgentGet:fl,kDispatches:Ac,kIsMockActive:ks,kNetConnect:st,kGetNetConnect:tm,kOptions:ms,kFactory:Fs}=_t(),rm=za(),nm=ja(),{matchValue:sm,buildMockOptions:im}=zr(),{InvalidArgumentError:wl,UndiciError:om}=J(),am=dr(),cm=ul(),gm=dl(),ec=class extends am{constructor(A){if(super(A),this[st]=!0,this[ks]=!0,A?.agent&&typeof A.agent.dispatch!="function")throw new wl("Argument opts.agent must implement Agent");let t=A?.agent?A.agent:new em(A);this[$a]=t,this[nt]=t[nt],this[ms]=im(A)}get(A){let t=this[fl](A);return t||(t=this[Fs](A),this[Ds](A,t)),t}dispatch(A,t){return this.get(A.origin),this[$a].dispatch(A,t)}async close(){await this[$a].close(),this[nt].clear()}deactivate(){this[ks]=!1}activate(){this[ks]=!0}enableNetConnect(A){if(typeof A=="string"||typeof A=="function"||A instanceof RegExp)Array.isArray(this[st])?this[st].push(A):this[st]=[A];else if(typeof A>"u")this[st]=!0;else throw new wl("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[st]=!1}get isMockActive(){return this[ks]}[Ds](A,t){this[nt].set(A,t)}[Fs](A){let t=Object.assign({agent:this},this[ms]);return this[ms]&&this[ms].connections===1?new rm(A,t):new nm(A,t)}[fl](A){let t=this[nt].get(A);if(t)return t;if(typeof A!="string"){let r=this[Fs]("http://localhost:9999");return this[Ds](A,r),r}for(let[r,n]of Array.from(this[nt]))if(n&&typeof r!="string"&&sm(r,A)){let s=this[Fs](A);return this[Ds](A,s),s[Ac]=n[Ac],s}}[tm](){return this[st]}pendingInterceptors(){let A=this[nt];return Array.from(A.entries()).flatMap(([t,r])=>r[Ac].map(n=>({...n,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new gm}={}){let t=this.pendingInterceptors();if(t.length===0)return;let r=new cm("interceptor","interceptors").pluralize(t.length);throw new om(`
42
- ${r.count} ${r.noun} ${r.is} pending:
2
+ import{createHash as He}from"node:crypto";import L from"node:net";import Oe from"node:dns";var Fe=new Set(["localhost","metadata.google.internal","metadata.goog"]);function K(t){let e=String(t).toLowerCase().split("%")[0];if((e.match(/::/g)||[]).length>1)return null;let n=u=>{if(!u)return[];let i=u.split(":"),p=i.at(-1);if(p?.includes(".")){let h=p.split(".").map(Number);if(h.length!==4||h.some(f=>!Number.isInteger(f)||f<0||f>255))return null;i.splice(i.length-1,1,(h[0]<<8|h[1]).toString(16),(h[2]<<8|h[3]).toString(16))}return i.some(h=>!/^[0-9a-f]{1,4}$/.test(h))?null:i.map(h=>Number.parseInt(h,16))},[r,a]=e.split("::"),o=n(r),s=n(a);if(!o||!s)return null;let c=e.includes("::"),d=8-o.length-s.length;if(!c&&d!==0||c&&d<1)return null;let l=[...o,...Array(Math.max(0,d)).fill(0),...s];return l.length!==8?null:Uint8Array.from(l.flatMap(u=>[u>>8,u&255]))}function Q(t,e,n){let r=Math.floor(n/8),a=n%8;for(let s=0;s<r;s+=1)if(t[s]!==e[s])return!1;if(!a)return!0;let o=255<<8-a;return(t[r]&o)===(e[r]&o)}function X(t){if(L.isIPv4(t)){let e=t.split(".").map(Number);return!(e[0]===0||e[0]===10||e[0]===127||e[0]>=224||e[0]===100&&e[1]>=64&&e[1]<=127||e[0]===169&&e[1]===254||e[0]===172&&e[1]>=16&&e[1]<=31||e[0]===192&&(e[1]===0||e[1]===2||e[1]===168)||e[0]===192&&e[1]===88&&e[2]===99||e[0]===198&&(e[1]===18||e[1]===19||e[1]===51)||e[0]===203&&e[1]===0&&e[2]===113)}if(L.isIPv6(t)){let e=K(t);if(!e)return!1;let n=K("::ffff:0:0");return Q(e,n,96)?X([...e.slice(12)].join(".")):Q(e,K("2000::"),3)?![["2001::",23],["2001:db8::",32],["2001:10::",28],["2001:2::",48],["2002::",16],["3fff::",20]].some(([a,o])=>Q(e,K(a),o)):!1}return!1}function De(t){let e;try{e=new URL(String(t))}catch{return{ok:!1,error:`not a valid URL: ${String(t).slice(0,120)}`}}if(e.protocol!=="http:"&&e.protocol!=="https:")return{ok:!1,error:`refused protocol ${e.protocol} (only http/https)`};let n=e.hostname.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,"");if(Fe.has(n)||n.endsWith(".localhost")||n.endsWith(".internal"))return{ok:!1,error:`refused internal host ${n}`};let r=L.isIP(n);return r!==0&&!X(n)?{ok:!1,error:`refused private address ${n}`}:{ok:!0,url:e,host:n,isLiteralIp:r!==0}}async function J(t,{lookupFn:e=Oe.promises.lookup}={}){let n=De(t);if(!n.ok)return n;if(n.isLiteralIp)return{ok:!0,url:n.url,addresses:[{address:n.host,family:L.isIPv6(n.host)?6:4}]};let r;try{r=await e(n.host,{all:!0,verbatim:!0})}catch{return{ok:!1,error:`refused: ${n.host} did not resolve`}}return!Array.isArray(r)||r.length===0||r.some(a=>!X(a.address))?{ok:!1,error:`refused: ${n.host} resolves to a non-public address`}:{ok:!0,url:n.url,addresses:r}}async function Z({requireUndici:t=!1,importUndici:e=()=>import("undici")}={}){let n,r;try{let i=await e();n=i.Agent,r=i.fetch}catch(i){if(t)throw new Error(`egress-guard: untrustedUrl pinning requires the undici package, which failed to load: ${i?.message||i}`);return null}if(typeof n!="function"||typeof r!="function"){if(t)throw new Error("egress-guard: untrustedUrl pinning requires undici's Agent and fetch exports, which were not found on the imported module");return null}let a=i=>String(i).toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,""),o=new Map,s=i=>(Array.isArray(i)?i:[i]).map(p=>typeof p=="string"?{address:p}:p).filter(p=>p&&p.address).map(p=>({address:p.address,family:p.family||(L.isIPv6(p.address)?6:4)})),c=(i,p,h)=>{o.set(a(i),s(typeof p=="string"?[{address:p,family:h}]:p))},d=i=>{let p=a(i);if(L.isIP(p))return[{address:p,family:L.isIPv6(p)?6:4}];let h=o.get(p);if(!h||!h.length)throw new Error(`refused: unpinned host ${i} during pinned fetch`);return h},l=new n({connect:{lookup(i,p,h){let f;try{f=d(i)}catch(v){return h(v)}return p?.all?h(null,f):h(null,f[0].address,f[0].family)}}}),u=Ve((i,p={})=>r(i,{...p,dispatcher:l}),c);return{dispatcher:l,fetch:u,pin:c,resolve:d,async close(){try{await l.destroy()}catch{}}}}var ee=Symbol.for("oracle.egressGuard.pinCapableFetch");function Ve(t,e){if(typeof t!="function")throw new Error("markPinCapableFetch: fetchImpl must be a function");if(typeof e!="function")throw new Error("markPinCapableFetch: pin must be a function");return t[ee]=Object.freeze({pin:e}),t}function te(t){return typeof t=="function"&&typeof t[ee]?.pin=="function"}function le(t,e,n){if(!te(t))throw new Error("pinFetchToAddresses: fetchImpl is not pin-capable");t[ee].pin(e,n)}var Me=new Set([408,425,429,500,502,503,504]),de=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),je=2,pe=4e3,be=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],Ke=new Set([301,302,303,307,308]),he=3,We=64*1024;function ze(t){let e=String(t||"").toLowerCase();return be.includes(e)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(e)}function Ge(t){let e={};for(let[n,r]of Object.entries(t||{}))ze(n)||(e[n]=r);return e}function Ye(t,e){if(!t)throw new Error(`HTTP redirect from ${e} missing Location`);let n=new URL(String(t),String(e));if(n.protocol!=="http:"&&n.protocol!=="https:")throw new Error(`HTTP redirect from ${e} used unsupported protocol ${n.protocol}`);return n.toString()}function Qe(t,e){return new URL(String(t)).origin===new URL(String(e)).origin}var ne=new Map;function Xe(t,e,n,r={}){let a={};for(let[u,i]of Object.entries(n||{}))a[u.toLowerCase()]=i;let o=Object.keys(a).filter(u=>/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(u)),c=[...new Set([...be,...o])].sort().map(u=>`${u}=${a[u]??""}`).join(`
3
+ `),d=He("sha256").update(c).digest("hex").slice(0,32),l=`${r.untrustedUrl?"untrusted":"trusted"}:${r.maxResponseBytes??"unbounded"}`;return`${t} ${e} ${l} ${d}`}function Je(t,e){let n=Number(e);return Number.isFinite(n)&&n>0?Math.min(n*1e3,pe):Math.min(250*2**t,pe)+Math.floor(Math.random()*100)}var Ze=t=>new Promise(e=>setTimeout(e,t));function O(t,e={}){let n=new Error(t);return n.retryable=!1,Object.assign(n,e),n}function re(t,e,n){return O(`HTTP response from ${t} exceeded maxResponseBytes ${n} (${e})`,{oversize:!0})}function F(t){try{let e=t?.body?.cancel?.();e&&typeof e.then=="function"&&e.catch(()=>{})}catch{}}function et(t){return t?t.byteLength??t.length??0:0}async function fe(t,e,{url:n,truncate:r=!1,onOversize:a}={}){if(e==null)return await t.text();let o=Number(t.headers?.get?.("content-length"));if(Number.isFinite(o)&&o>e&&(F(t),!r))throw re(n,`content-length ${o}`,e);let s=t.body?.getReader?.();if(!s){let i=await t.text(),p=Buffer.byteLength(i,"utf8");if(p>e){if(!r)throw re(n,`body ${p} bytes`,e);return Buffer.from(i,"utf8").subarray(0,e).toString("utf8")}return i}let c=[],d=0,l=!1;try{for(;;){let{value:i,done:p}=await s.read();if(p)break;if(i&&(c.push(Buffer.from(i)),d+=et(i),d>e)){l=!0;break}}}finally{if(l)try{await s.cancel()}catch{}try{s.releaseLock?.()}catch{}}if(l&&(typeof a=="function"&&a(),!r))throw re(n,`streamed ${d} bytes`,e);let u=Buffer.concat(c);return(l?u.subarray(0,e):u).toString("utf8")}function me(t){if(!t)return null;try{return JSON.parse(t)}catch{return null}}async function tt(t,{fetchImpl:e,method:n,headers:r,body:a,timeoutMs:o,lookupFn:s,realFetch:c,untrustedUrl:d=!1,maxResponseBytes:l=null,importUndici:u,validateResponse:i}){let p=new AbortController,h=setTimeout(()=>p.abort(),o),f=null,v=e,E=s?{lookupFn:s}:{};if(d&&!c&&!te(v))throw O(`HTTP refused ${t}: untrustedUrl requires a pin-capable fetchImpl (see markPinCapableFetch in egress-guard.mjs) or no fetchImpl override so Oracle can pin the connection itself`);let x=async(g,{status:S=null}={})=>{let C=await J(g,E);if(!C.ok)throw O(S==null?`HTTP refused ${g}: ${C.error}`:`HTTP redirect to ${g} ${C.error}`,S==null?{}:{status:S});let y=new URL(g).hostname;if(c){if(f&&(await f.close(),f=null),!f)try{f=await Z({requireUndici:!0,...u?{importUndici:u}:{}})}catch(I){throw O(S==null?`HTTP refused ${g}: ${I?.message||I}`:`HTTP redirect to ${g} refused: ${I?.message||I}`,S==null?{}:{status:S})}f.pin(y,C.addresses),v=f.fetch}else le(v,y,C.addresses);return C};try{let g=String(t),S={...r||{}};d&&await x(g);for(let C=0;C<=he;C+=1){let y=await v(g,{method:n,headers:S,body:a,signal:p.signal,redirect:"manual"});if(Ke.has(y.status)){if(n!=="GET"&&n!=="HEAD"){let T=await fe(y,l??We,{url:g,truncate:!0}),_=new Error(`HTTP ${y.status} ${n} ${g} redirected non-idempotent request`);throw _.status=y.status,_.body=me(T)??T.slice(0,300),_}if(C===he)throw F(y),new Error(`HTTP redirect loop for ${t}`);let N=y.headers?.get?.("location"),R;try{R=Ye(N,g)}catch(T){throw F(y),T}let j=!Qe(R,g);if(F(y),j&&(S=Ge(S)),d)await x(R,{status:y.status});else if(j){let T=await J(R,E);if(!T.ok){let _=new Error(`HTTP redirect from ${g} ${T.error}`);throw _.status=y.status,_.retryable=!1,_}c&&T.addresses?.length&&(f||(f=await Z(u?{importUndici:u}:{})),f&&(f.pin(new URL(R).hostname,T.addresses),v=f.fetch))}g=R;continue}if(typeof i=="function")try{await i(y,{url:g})}catch(N){throw F(y),O(N?.message||String(N))}let I=await fe(y,l,{url:g,onOversize:()=>p.abort()}),B=me(I);if(!y.ok){let N=new Error(`HTTP ${y.status} ${n} ${g}`);throw N.status=y.status,N.retryAfter=y.headers?.get?.("retry-after")??null,N.body=B??I.slice(0,300),N}return B??I}throw new Error(`HTTP redirect loop for ${t}`)}finally{clearTimeout(h),f&&await f.close()}}async function W(t,e={}){let n=e.fetchImpl||globalThis.fetch;if(typeof n!="function")throw new Error("fetch unavailable \u2014 pass opts.fetchImpl");let r=e.timeoutMs??12e3,a=(e.method||"GET").toUpperCase(),o={Accept:"application/json",...e.headers||{}},s=e.body;s!=null&&typeof s!="string"&&(o["Content-Type"]=o["Content-Type"]||"application/json",s=JSON.stringify(s));let c=Number.isInteger(e.retries)?Math.max(e.retries,0):je,d=e.lookupFn,l=!e.fetchImpl,u=e.untrustedUrl===!0,i=e.importUndici,p=e.validateResponse,h=Number(e.maxResponseBytes),f=Number.isFinite(h)&&h>0?Math.floor(h):null,v=async()=>{let C;for(let y=0;y<=c;y++)try{return await tt(t,{fetchImpl:n,method:a,headers:o,body:s,timeoutMs:r,lookupFn:d,realFetch:l,untrustedUrl:u,maxResponseBytes:f,importUndici:i,validateResponse:p})}catch(I){C=I;let B=I?.status,N=I?.name==="AbortError",R=new Set([408,425,429]),j=I?.retryable===!1?!1:B!=null?R.has(B)||Me.has(B)&&de.has(a):!N&&de.has(a);if(y===c||!j)throw I;await Ze(Je(y,I?.retryAfter))}throw C};if(!(e.dedupe!==!1&&a==="GET"&&s==null))return v();let x=Xe(a,t,o,{untrustedUrl:u,maxResponseBytes:f}),g=ne.get(x);if(g)return g;let S=v().finally(()=>ne.delete(x));return ne.set(x,S),S}var ve={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}},nt=new Map(Object.values(ve).map(t=>[t.chainId,t]));function ge(t){return nt.get(Number(t))||null}function ye(t,e=process.env){let n=ge(t);if(!n)return null;for(let r of n.rpcEnv){let a=(e[r]||"").trim();if(a)return a}return null}import{Interface as rt,getAddress as ot}from"ethers";var we=new rt(["function allowance(address owner,address spender) view returns (uint256)","function balanceOf(address account) view returns (uint256)"]);function Ee(t,e){try{return ot(t).toLowerCase()}catch{throw new Error(`${e} must be a valid EVM address`)}}var at={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 it(t,{rpcUrl:e,env:n=process.env}={}){if(e)return e;let r=ye(t,n);return r||at[Number(t)]||null}var st=/^(?:eth_(?:call|blocknumber|chainid|get[a-z0-9]+|feehistory|gasprice|maxpriorityfeepergas|syncing|protocolversion|estimategas|createaccesslist)|net_(?:version|listening|peercount)|web3_(?:clientversion|sha3))$/;function ct(t){let e=String(t||""),n=e.toLowerCase();if(e!==e.trim()||!/^[a-zA-Z0-9_]+$/.test(e)||!st.test(n))throw new Error(`evm-rpc: ${e} refused \u2014 @oracle-agent/oracle is prepare-only (read RPC only; no broadcast/sign)`);return n}async function k(t,e,n=[],r={}){let a=String(e||"");ct(a);let o=it(t,r);if(!o)throw new Error(`No RPC URL for chainId ${t} (set env from chain registry rpcEnv or pass rpcUrl)`);let c=await W(o,{method:"POST",body:{jsonrpc:"2.0",id:1,method:e,params:n},fetchImpl:r.fetchImpl,timeoutMs:r.timeoutMs??12e3});if(c?.error){let d=new Error(c.error.message||JSON.stringify(c.error));throw d.code=c.error.code,d}return c.result}async function Se(t,e={}){let n=await k(t,"eth_blockNumber",[],e);return parseInt(n,16)}async function Ie(t,e,n={}){if(!e)throw new Error("rpcGetBalance requires address");let r=await k(t,"eth_getBalance",[e,"latest"],n);return{chainId:Number(t),address:e,balanceWei:BigInt(r).toString(),balanceHex:r}}async function Ce(t={},e={}){let n=Number(t.chainId??e.chainId??1),r=Ee(t.token||t.tokenAddress,"token"),a=Ee(t.account||t.owner||t.address,"account"),o=we.encodeFunctionData("balanceOf",[a]),s=await k(n,"eth_call",[{to:r,data:o},t.blockTag||"latest"],e),c=we.decodeFunctionResult("balanceOf",s),d=BigInt(c[0]);return{chainId:n,token:r,account:a,balance:d.toString(),balanceHex:`0x${d.toString(16)}`,blockTag:t.blockTag||"latest"}}var ut="https://api.dexscreener.com",$t=Object.freeze({1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avalanche",999:"hyperevm",4663:"robinhood"});function lt(t={}){return(t.baseUrl||process.env.DEXSCREENER_API_URL||ut).replace(/\/$/,"")}async function xe(t,e={}){if(!t)throw new Error("tokenAddress required");return W(`${lt(e)}/latest/dex/tokens/${t}`,{fetchImpl:e.fetchImpl,timeoutMs:e.timeoutMs??12e3})}var D=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"}),m=Object.freeze({PASS:"PASS",CAUTION:"CAUTION",FAIL:"FAIL",UNKNOWN:"UNKNOWN"}),dt=/^0x[0-9a-fA-F]{40}$/;function pt(t={}){let e=[],n=[];if(!t||typeof t!="object")return{ok:!1,errors:["definition must be an object"],warnings:n};if((!Number.isInteger(t.chainId)||t.chainId<=0)&&e.push("chainId must be a positive integer"),(typeof t.key!="string"||!/^[a-z][a-z0-9-]*$/.test(t.key||""))&&e.push('key must be a lowercase slug (e.g. "base")'),(typeof t.name!="string"||!t.name.trim())&&e.push("name is required"),!Array.isArray(t.rpcEnv)||t.rpcEnv.length===0)e.push("rpcEnv must list at least one environment variable name");else for(let a of t.rpcEnv)(typeof a!="string"||!/^[A-Z][A-Z0-9_]*$/.test(a))&&e.push(`rpcEnv entry "${a}" should be an UPPER_SNAKE env var name`);if(t.nativeCurrency){let a=t.nativeCurrency;(typeof a.symbol!="string"||!a.symbol)&&e.push("nativeCurrency.symbol is required when nativeCurrency is set"),Number.isInteger(a.decimals)||e.push("nativeCurrency.decimals must be an integer")}for(let[a,o]of(t.venues||[]).entries()){let s=`venues[${a}]`;if(!o||typeof o!="object"){e.push(`${s} must be an object`);continue}dt.test(o.address||"")||e.push(`${s}.address is not a valid 20-byte address`),/^0x0{40}$/.test(o.address||"")&&e.push(`${s}.address is the zero address -- placeholder left in place?`),o.kind||e.push(`${s}.kind is required (router|quoter|factory|...)`),o.verified?(o.verified.method||e.push(`${s}.verified.method is required`),o.verified.source||e.push(`${s}.verified.source is required`),o.verified.date||n.push(`${s}.verified.date missing -- add one so staleness is visible`)):e.push(`${s} must record verification: { verified: { method, source, date } }. An unverified venue stays blocked.`)}let r=t.capabilities||{};for(let a of Object.keys(r))D.includes(a)?typeof r[a]!="function"&&e.push(`capability "${a}" must be a function`):e.push(`unknown capability "${a}"`);return Object.keys(r).length===0&&n.push("scanner implements no capabilities -- it can only be registered, not used"),r.prepareUnsignedTx&&!r.quote&&n.push("prepareUnsignedTx without quote: no priced expectation to validate the built tx against"),r.prepareUnsignedTx&&!r.sellSimulation&&n.push("prepareUnsignedTx without sellSimulation: cannot prove an asset is exitable before buying"),{ok:e.length===0,errors:e,warnings:n}}function ht(t){let{ok:e,errors:n,warnings:r}=pt(t);if(!e)throw new Error(`invalid scanner for ${t?.key??"<unknown>"}:
4
+ - ${n.join(`
5
+ - `)}`);let a=t.capabilities||{},o=D.filter(c=>typeof a[c]=="function"),s={key:t.key,chainId:t.chainId,name:t.name,rpcEnv:[...t.rpcEnv],nativeCurrency:t.nativeCurrency?{...t.nativeCurrency}:null,wrappedNative:t.wrappedNative||null,explorer:t.explorer||null,venues:(t.venues||[]).map(c=>({...c})),warnings:r,capabilities(){return{chainId:t.chainId,key:t.key,supported:[...o],unsupported:D.filter(c=>!o.includes(c))}},supports(c){return o.includes(c)}};for(let c of D)o.includes(c)?s[c]=async(...d)=>a[c](...d,{scanner:s}):s[c]=async()=>{throw new Error(`${t.key} (chain ${t.chainId}) does not implement "${c}". Supported: ${o.join(", ")||"none"}. An unimplemented capability is absent, not assumed -- implement it or treat this chain as fail-closed for that operation.`)};return Object.freeze(s)}var V=new Map;function Ae(t){let e=ht(t);return V.set(e.chainId,e),e}function oe(t){return V.get(Number(t))||null}function z(){return[...V.values()]}function Ne(){let t={};for(let e of V.values())t[e.chainId]={key:e.key,name:e.name,...e.capabilities(),venueCount:e.venues.length,failClosed:e.venues.length===0};return{generatedAt:new Date().toISOString(),chainCount:V.size,capabilities:[...D],chains:t}}var ie={getAmountsOut:"d06ca61f",swapExactTokensForTokens:"38ed1739",swapExactETHForTokens:"7ff36ab5"},A=t=>BigInt(t).toString(16).padStart(64,"0"),H=t=>t.slice(2).toLowerCase().padStart(64,"0");function ft(t,e){return`0x${ie.getAmountsOut}`+A(t)+A(64)+A(e.length)+e.map(H).join("")}function mt(t){if(!t||t==="0x")return null;let e=t.slice(2);if(e.length<128)return null;let n=Number(BigInt(`0x${e.slice(64,128)}`));if(!Number.isFinite(n)||n<1||n>16)return null;let r=[];for(let a=0;a<n;a++){let o=128+a*64;if(e.length<o+64)return null;r.push(BigInt(`0x${e.slice(o,o+64)}`))}return r}function ae(t,e="router"){return(t?.venues||[]).find(r=>r.kind===e)?.address??null}var se=100;function bt(t,e){let n=Number(e);if(!Number.isFinite(n)||n<0)throw new Error("slippageBps must be a non-negative number");if(n>se)throw new Error(`slippageBps ${n} exceeds the ${se} bps ceiling. Block and requote or split the order -- do not widen the guard to force a fill.`);return BigInt(t)*BigInt(1e4-Math.floor(n))/10000n}function ke(t){let{chainId:e,wrappedNative:n}=t;async function r(a,o,s,c){let d=await k(e,"eth_call",[{to:a,data:ft(o,s)},"latest"],c);return mt(d?.result??d)}return{async quote({tokenIn:a,tokenOut:o,amountIn:s,path:c},d={}){let l=ae(d.scanner);if(!l)return{chainId:e,evidence:b.UNAVAILABLE,reason:"no verified router configured for this chain; quoting stays fail-closed rather than guessing a venue address"};let u=c||[a,o];if(u.some(p=>!/^0x[0-9a-fA-F]{40}$/.test(p||"")))throw new Error("quote requires valid 20-byte addresses");let i=await r(l,s,u,d);return i?{chainId:e,router:l,path:u,amountIn:String(s),amountOut:i[i.length-1].toString(),hops:u.length-1,evidence:b.LIVE,note:"exact-input quote at current reserves; not a guaranteed fill"}:{chainId:e,router:l,path:u,evidence:b.UNKNOWN,reason:"router returned no amounts -- no pool for this path, or the call reverted"}},async sellSimulation({token:a,amountIn:o,base:s},c={}){let d=ae(c.scanner),l=s||n;if(l&&String(a).toLowerCase()===String(l).toLowerCase())return{chainId:e,token:a,verdict:m.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(!d||!l)return{chainId:e,token:a,verdict:m.UNKNOWN,evidence:b.UNAVAILABLE,reason:d?"no wrappedNative configured for this chain, so no base asset to round-trip against":"no verified router configured for this chain"};let u=await r(d,o,[l,a],c);if(!u)return{chainId:e,token:a,verdict:m.FAIL,evidence:b.LIVE,leg:"buy",reason:"buy leg returned no amounts -- no route in"};let i=u[u.length-1];if(i===0n)return{chainId:e,token:a,verdict:m.FAIL,evidence:b.LIVE,leg:"buy",reason:"buy leg quotes zero output"};let p=await r(d,i,[a,l],c);if(!p)return{chainId:e,token:a,verdict:m.FAIL,evidence:b.LIVE,leg:"sell",bought:i.toString(),reason:"SELL LEG FAILED while the buy leg quoted fine. This is the honeypot signature: do not trade."};let h=p[p.length-1],f=Number(h*10000n/BigInt(o)),v=m.PASS,E="round trip completes with expected fee/impact loss";return f<5e3?(v=m.FAIL,E=`round trip returns only ${(f/100).toFixed(2)}% -- punitive tax or no real liquidity`):f<9e3&&(v=m.CAUTION,E=`round trip returns ${(f/100).toFixed(2)}% -- transfer tax or thin liquidity at this size`),{chainId:e,token:a,base:l,router:d,verdict:v,reason:E,amountIn:String(o),bought:i.toString(),returned:h.toString(),retentionBps:f,evidence:b.LIVE,note:"Quote-level round trip. It does not prove transfer hooks absent at execution time."}},async prepareUnsignedTx({tokenIn:a,tokenOut:o,amountIn:s,recipient:c,slippageBps:d=50,deadlineSeconds:l=900,path:u},i={}){let p=i.scanner,h=ae(p);if(!h)throw new Error(`chain ${e} 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(c||""))throw new Error("prepareUnsignedTx requires a valid recipient address");let f=u||[a,o],v=await this.quote({tokenIn:a,tokenOut:o,amountIn:s,path:f},i);if(v.evidence!==b.LIVE)throw new Error(`cannot prepare without a live quote (${v.evidence}: ${v.reason??"no reason given"})`);let E=bt(v.amountOut,d);if(E<=0n)throw new Error("computed minOut is zero -- refusing to prepare");let x=BigInt(Math.floor(Date.now()/1e3)+Number(l)),g=n&&f[0].toLowerCase()===n.toLowerCase()&&i.useNative,S=g?`0x${ie.swapExactETHForTokens}`+A(E)+A(128)+H(c)+A(x)+A(f.length)+f.map(H).join(""):`0x${ie.swapExactTokensForTokens}`+A(s)+A(E)+A(160)+H(c)+A(x)+A(f.length)+f.map(H).join("");return{unsigned:!0,signedBy:"user-wallet",chainId:e,tx:{to:h,data:S,value:g?`0x${BigInt(s).toString(16)}`:"0x0"},guard:{quotedOut:v.amountOut,minOut:E.toString(),slippageBps:d,maxSlippageBps:se,deadline:x.toString()},requires:g?[]:[{step:"approve",token:f[0],spender:h,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 vt=[100,500,3e3,1e4],Ue={quoteExactInputSingle:"c6a5026a",exactInputSingle:"04e45aaf"},q=t=>BigInt(t).toString(16).padStart(64,"0"),M=t=>t.slice(2).toLowerCase().padStart(64,"0"),Te=/^0x[0-9a-fA-F]{40}$/,ue=100;function gt(t,e){let n=Number(e);if(!Number.isFinite(n)||n<0)throw new Error("slippageBps must be a non-negative number");if(n>ue)throw new Error(`slippageBps ${n} exceeds the ${ue} bps ceiling. Block and requote or split the order -- do not widen the guard to force a fill.`);return BigInt(t)*BigInt(1e4-Math.floor(n))/10000n}function ce(t,e){return(t?.venues||[]).find(n=>n.kind===e)?.address??null}function Re(t){let{chainId:e,wrappedNative:n}=t;async function r({quoter:o,tokenIn:s,tokenOut:c,amountIn:d,fee:l},u){let i=`0x${Ue.quoteExactInputSingle}`+M(s)+M(c)+q(d)+q(l)+q(0),p=await k(e,"eth_call",[{to:o,data:i},"latest"],u).catch(()=>null),h=p?.result??p;if(!h||h==="0x"||h.length<66)return null;let f=BigInt(`0x${h.slice(2,66)}`);return f>0n?f:null}async function a({quoter:o,tokenIn:s,tokenOut:c,amountIn:d},l){let u=[],i=null;for(let p of vt){let h=await r({quoter:o,tokenIn:s,tokenOut:c,amountIn:d,fee:p},l);u.push({fee:p,amountOut:h?h.toString():null}),h&&(!i||h>i.amountOut)&&(i={fee:p,amountOut:h})}return{best:i,tried:u}}return{async quote({tokenIn:o,tokenOut:s,amountIn:c},d={}){let l=ce(d.scanner,"quoter");if(!l)return{chainId:e,evidence:b.UNAVAILABLE,reason:"no verified quoter configured for this chain; quoting stays fail-closed rather than guessing a venue address"};for(let p of[o,s])if(!Te.test(p||""))throw new Error("quote requires valid 20-byte addresses");let{best:u,tried:i}=await a({quoter:l,tokenIn:o,tokenOut:s,amountIn:c},d);return u?{chainId:e,venue:"uniswap-v3",quoter:l,tokenIn:o,tokenOut:s,amountIn:String(c),amountOut:u.amountOut.toString(),fee:u.fee,useNative:!!n&&String(o).toLowerCase()===String(n).toLowerCase(),triedFeeTiers:i,evidence:b.LIVE,note:"exact-input single-hop quote at current tick; not a guaranteed fill"}:{chainId:e,quoter:l,tokenIn:o,tokenOut:s,triedFeeTiers:i,evidence:b.UNKNOWN,reason:"no fee tier returned a quote -- no V3 pool for this pair, or no liquidity"}},async sellSimulation({token:o,amountIn:s,base:c},d={}){let l=ce(d.scanner,"quoter"),u=c||n;if(u&&String(o).toLowerCase()===String(u).toLowerCase())return{chainId:e,token:o,verdict:m.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(!l||!u)return{chainId:e,token:o,verdict:m.UNKNOWN,evidence:b.UNAVAILABLE,reason:l?"no wrappedNative configured, so there is no base asset to round-trip against":"no verified quoter configured for this chain"};let i=await a({quoter:l,tokenIn:u,tokenOut:o,amountIn:s},d);if(!i.best)return{chainId:e,token:o,verdict:m.FAIL,evidence:b.LIVE,leg:"buy",reason:"no V3 pool priced the buy leg on any fee tier"};let p=await a({quoter:l,tokenIn:o,tokenOut:u,amountIn:i.best.amountOut},d);if(!p.best)return{chainId:e,token:o,verdict:m.FAIL,evidence:b.LIVE,leg:"sell",bought:i.best.amountOut.toString(),reason:"SELL LEG FAILED while the buy leg quoted fine. This is the honeypot signature: do not trade."};let h=p.best.amountOut,f=Number(h*10000n/BigInt(s)),v=m.PASS,E="round trip completes with expected fee/impact loss";return f<5e3?(v=m.FAIL,E=`round trip returns only ${(f/100).toFixed(2)}% -- punitive tax or no real liquidity`):f<9e3&&(v=m.CAUTION,E=`round trip returns ${(f/100).toFixed(2)}% -- transfer tax or thin liquidity at this size`),{chainId:e,venue:"uniswap-v3",token:o,base:u,verdict:v,reason:E,amountIn:String(s),bought:i.best.amountOut.toString(),returned:h.toString(),retentionBps:f,buyFee:i.best.fee,sellFee:p.best.fee,evidence:b.LIVE,note:"Quote-level round trip. It does not prove transfer hooks absent at execution time."}},async prepareUnsignedTx({tokenIn:o,tokenOut:s,amountIn:c,recipient:d,slippageBps:l=50,fee:u},i={}){let p=ce(i.scanner,"router");if(!p)throw new Error(`chain ${e} 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(!Te.test(d||""))throw new Error("prepareUnsignedTx requires a valid recipient address");let h=await this.quote({tokenIn:o,tokenOut:s,amountIn:c},i);if(h.evidence!==b.LIVE)throw new Error(`cannot prepare without a live quote (${h.evidence}: ${h.reason??"no reason given"})`);let f=u??h.fee,v=gt(h.amountOut,l);if(v<=0n)throw new Error("computed minOut is zero -- refusing to prepare");let E=!!(i.useNative||h.useNative)&&n&&String(o).toLowerCase()===String(n).toLowerCase(),x=`0x${Ue.exactInputSingle}`+M(o)+M(s)+q(f)+M(d)+q(c)+q(v)+q(0);return{unsigned:!0,signedBy:"user-wallet",chainId:e,venue:"uniswap-v3",tx:{to:p,data:x,value:E?String(c):"0x0"},guard:{quotedOut:h.amountOut,minOut:v.toString(),slippageBps:l,maxSlippageBps:ue,fee:f},requires:E?[]:[{step:"approve",token:o,spender:p,amount:String(c)}],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 G={decimals:"0x313ce567",symbol:"0x95d89b41",name:"0x06fdde03",totalSupply:"0x18160ddd",owner:"0x8da5cb5b"};function _e(t){if(!t||t==="0x")return null;try{return BigInt(t)}catch{return null}}function Le(t){if(!t||t==="0x")return null;let e=t.slice(2);if(e.length>=128){let r=Number(BigInt(`0x${e.slice(64,128)}`));if(r>0&&r<=256&&e.length>=128+r*2){let a=e.slice(128,128+r*2),o=Buffer.from(a,"hex").toString("utf8").replace(/\0+$/,"");if(o)return o}}return Buffer.from(e.slice(0,64),"hex").toString("utf8").replace(/\0+$/,"")||null}function yt(t){let{chainId:e}=t;async function n(r,a,o){return k(e,"eth_call",[{to:r,data:a},"latest"],o)}return{async blockNumber(r={}){let a=await Se(e,r);return{chainId:e,blockNumber:a?.blockNumber??a,evidence:b.LIVE}},async nativeBalance(r,a={}){let o=await Ie(e,r,a);return{chainId:e,address:r,wei:o?.wei??o?.balance??null,symbol:t.nativeCurrency?.symbol??null,decimals:t.nativeCurrency?.decimals??18,evidence:b.LIVE}},async tokenBalance({token:r,owner:a},o={}){let s=await Ce({chainId:e,token:r,owner:a},o);return{chainId:e,token:r,owner:a,raw:s?.balance??s,evidence:b.LIVE}},async resolveToken(r,a={}){if(!/^0x[0-9a-fA-F]{40}$/.test(r||""))return{chainId:e,token:r,evidence:b.UNKNOWN,error:"resolveToken needs a 20-byte address; symbol lookup is a market-data concern"};let[o,s,c,d]=await Promise.all([n(r,G.decimals,a).catch(()=>null),n(r,G.symbol,a).catch(()=>null),n(r,G.name,a).catch(()=>null),n(r,G.totalSupply,a).catch(()=>null)]),l=_e(o?.result??o),u=l!==null||s?.result||c?.result;return{chainId:e,address:r,decimals:l===null?null:Number(l),symbol:Le(s?.result??s),name:Le(c?.result??c),totalSupply:(_e(d?.result??d)??null)?.toString()??null,evidence:u?b.LIVE:b.UNKNOWN,warning:u?void 0:"no ERC-20 metadata returned -- may not be a token contract"}},async resolvePools(r,a={}){let o=t.dexscreenerSlug;if(!o)return{chainId:e,token:r,pools:[],evidence:b.UNAVAILABLE,reason:"no dexscreenerSlug configured for this chain; pool discovery is unavailable rather than guessed"};let s=await xe(r,a).catch(()=>null),d=(s?.pairs||s?.data?.pairs||[]).filter(l=>String(l.chainId).toLowerCase()===String(o).toLowerCase()).map(l=>({pair:l.pairAddress,dex:l.dexId,base:l.baseToken?.address,quote:l.quoteToken?.address,liquidityUsd:l.liquidity?.usd??null,priceUsd:l.priceUsd??null,volume24hUsd:l.volume?.h24??null,createdAt:l.pairCreatedAt??null})).sort((l,u)=>(u.liquidityUsd??0)-(l.liquidityUsd??0));return{chainId:e,token:r,pools:d,evidence:d.length?b.LIVE:b.UNKNOWN}},async scanBlocks({fromBlock:r,toBlock:a,address:o,topics:s,chunkSize:c=2e3}={},d={}){if(!Number.isInteger(r)||!Number.isInteger(a))throw new Error("scanBlocks requires integer fromBlock and toBlock");if(a<r)throw new Error("toBlock must be >= fromBlock");let l=[],u=[];for(let i=r;i<=a;i+=c){let p=Math.min(i+c-1,a);u.push([i,p])}for(let[i,p]of u){let h={fromBlock:`0x${i.toString(16)}`,toBlock:`0x${p.toString(16)}`};o&&(h.address=o),s&&(h.topics=s);let f=await k(e,"eth_getLogs",[h],d).catch(v=>({error:String(v?.message||v)}));if(f?.error)return{chainId:e,fromBlock:r,toBlock:a,logs:l,complete:!1,failedAt:[i,p],error:f.error,evidence:b.UNKNOWN};for(let v of f?.result??f??[])l.push(v)}return{chainId:e,fromBlock:r,toBlock:a,logs:l,complete:!0,chunks:u.length,evidence:b.LIVE}},async scoreRisk(r,a={}){let o=[],s=m.PASS,c=u=>{let i={[m.PASS]:0,[m.CAUTION]:1,[m.UNKNOWN]:2,[m.FAIL]:3};i[u]>i[s]&&(s=u)},d=await this.resolveToken(r,a);d.evidence!==b.LIVE?(o.push({check:"erc20-metadata",result:m.UNKNOWN,detail:d.warning}),c(m.UNKNOWN)):o.push({check:"erc20-metadata",result:m.PASS,detail:`${d.symbol} / ${d.decimals}d`});let l=await this.resolvePools(r,a);if(l.evidence===b.UNAVAILABLE)o.push({check:"liquidity",result:m.UNKNOWN,detail:l.reason}),c(m.UNKNOWN);else if(!l.pools.length)o.push({check:"liquidity",result:m.FAIL,detail:"no pool with liquidity found"}),c(m.FAIL);else{let u=l.pools[0],i=u.liquidityUsd??0;i<5e3?(o.push({check:"liquidity",result:m.CAUTION,detail:`top pool only $${i}`}),c(m.CAUTION)):o.push({check:"liquidity",result:m.PASS,detail:`$${i} on ${u.dex}`}),u.createdAt&&Date.now()-u.createdAt<24*3600*1e3&&(o.push({check:"age",result:m.CAUTION,detail:"pool under 24h old"}),c(m.CAUTION))}if(typeof this.sellSimulation=="function"){let u=await this.sellSimulation({token:r,amountIn:(10n**16n).toString()},a).catch(i=>({verdict:m.UNKNOWN,reason:String(i?.message||i)}));o.push({check:"sellability",result:u.verdict,detail:u.retentionBps!=null?`round trip returns ${(u.retentionBps/100).toFixed(2)}% -- ${u.reason}`:u.reason}),c(u.verdict)}else o.push({check:"sellability",result:m.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."}),c(m.UNKNOWN);return{chainId:e,token:r,verdict:s,checks:o,note:"Structural checks only. UNKNOWN is not PASS. A token is not tradeable until a sell simulation succeeds."}}}}function qe(t){let n={...yt(t)},r=new Set((t.venues||[]).map(o=>o.kind));t.venueKind==="uniswap-v3"&&r.has("quoter")&&r.has("router")?Object.assign(n,Re({chainId:t.chainId,wrappedNative:t.wrappedNative})):t.venueKind==="uniswap-v2"&&r.has("router")&&Object.assign(n,ke({chainId:t.chainId,wrappedNative:t.wrappedNative}));let a={};for(let[o,s]of Object.entries(n))a[o]=s.bind(n);return{key:t.key,chainId:t.chainId,name:t.name,rpcEnv:t.rpcEnv,nativeCurrency:t.nativeCurrency,explorer:t.explorer,venues:t.venues||[],capabilities:a}}var wt=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 $e(){return wt.map(t=>Ae(qe(t)))}$e();var[Be,...Pe]=process.argv.slice(2),Y=Pe.includes("--json"),w=Pe.filter(t=>t!=="--json");function P(t){t||U("missing <chain>");let e=oe(Number(t));if(e)return e;let n=z().find(r=>r.key===String(t).toLowerCase());if(n)return n;U(`unknown chain "${t}". Known: ${z().map(r=>`${r.key}(${r.chainId})`).join(", ")}`)}function U(t){console.error(`error: ${t}`),process.exit(1)}function $(t){process.stdout.write(`${JSON.stringify(t,null,2)}
6
+ `)}function Et(t,e){let n=String(e?.message||e);return/rpc|fetch|ECONN|timeout|provider/i.test(n)?`${n}
43
7
 
44
- ${A.format(t)}
45
- `.trim())}};yl.exports=ec});var Rs=f((cM,Fl)=>{"use strict";var Dl=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:Qm}=J(),Em=Vt();ml()===void 0&&kl(new Em);function kl(e){if(!e||typeof e.dispatch!="function")throw new Qm("Argument agent must implement Agent");Object.defineProperty(globalThis,Dl,{value:e,writable:!0,enumerable:!1,configurable:!1})}function ml(){return globalThis[Dl]}Fl.exports={setGlobalDispatcher:kl,getGlobalDispatcher:ml}});var bs=f((QM,Rl)=>{"use strict";Rl.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 Nl=f((EM,bl)=>{"use strict";var Bm=os();bl.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 Bm(t,i,n,s);return t(o,a)}}});var Ul=f((BM,Sl)=>{"use strict";var Im=hs();Sl.exports=e=>A=>function(r,n){return A(r,new Im({...r,retryOptions:{...e,...r.retryOptions}},{handler:n,dispatch:A}))}});var Ll=f((IM,Ml)=>{"use strict";var lm=L(),{InvalidArgumentError:Cm,RequestAbortedError:um}=J(),hm=bs(),tc=class extends hm{#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 Cm("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=lm.parseHeaders(t)["content-length"];if(i!=null&&i>this.#A)throw new um(`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 dm({maxSize:e}={maxSize:1024*1024}){return A=>function(r,n){let{dumpMaxSize:s=e}=r,i=new tc({maxSize:s},n);return A(r,i)}}Ml.exports=dm});var xl=f((lM,Yl)=>{"use strict";var{isIP:fm}=d("node:net"),{lookup:wm}=d("node:dns"),ym=bs(),{InvalidArgumentError:$t,InformationalError:pm}=J(),Tl=Math.pow(2,31)-1,rc=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 pm("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){wm(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===Tl?(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===Tl?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 nc(this,A,t)}},nc=class extends ym{#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}}};Yl.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 rc(r);return s=>function(o,a){let c=o.origin.constructor===URL?o.origin:new URL(o.origin);return fm(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 it=f((CM,Wl)=>{"use strict";var{kConstruct:Dm}=X(),{kEnumerableProperty:Ar}=L(),{iteratorMixin:km,isValidHeaderName:Xr,isValidHeaderValue:vl}=pA(),{webidl:v}=gA(),sc=d("node:assert"),Ns=d("node:util"),iA=Symbol("headers map"),FA=Symbol("headers map sorted");function Gl(e){return e===10||e===13||e===9||e===32}function Jl(e){let A=0,t=e.length;for(;t>A&&Gl(e.charCodeAt(t-1));)--t;for(;t>A&&Gl(e.charCodeAt(A));)++A;return A===0&&t===e.length?e:e.substring(A,t)}function Hl(e,A){if(Array.isArray(A))for(let t=0;t<A.length;++t){let r=A[t];if(r.length!==2)throw v.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${r.length}.`});ic(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)ic(e,t[r],A[t[r]])}else throw v.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}function ic(e,A,t){if(t=Jl(t),Xr(A)){if(!vl(t))throw v.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw v.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"});if(ql(e)==="immutable")throw new TypeError("immutable");return oc(e).append(A,t,!1)}function Vl(e,A){return e[0]<A[0]?-1:1}var Ss=class e{cookies=null;constructor(A){A instanceof e?(this[iA]=new Map(A[iA]),this[FA]=A[FA],this.cookies=A.cookies===null?null:[...A.cookies]):(this[iA]=new Map(A),this[FA]=null)}contains(A,t){return this[iA].has(t?A:A.toLowerCase())}clear(){this[iA].clear(),this[FA]=null,this.cookies=null}append(A,t,r){this[FA]=null;let n=r?A:A.toLowerCase(),s=this[iA].get(n);if(s){let i=n==="cookie"?"; ":", ";this[iA].set(n,{name:s.name,value:`${s.value}${i}${t}`})}else this[iA].set(n,{name:A,value:t});n==="set-cookie"&&(this.cookies??=[]).push(t)}set(A,t,r){this[FA]=null;let n=r?A:A.toLowerCase();n==="set-cookie"&&(this.cookies=[t]),this[iA].set(n,{name:A,value:t})}delete(A,t){this[FA]=null,t||(A=A.toLowerCase()),A==="set-cookie"&&(this.cookies=null),this[iA].delete(A)}get(A,t){return this[iA].get(t?A:A.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:A,1:{value:t}}of this[iA])yield[A,t]}get entries(){let A={};if(this[iA].size!==0)for(let{name:t,value:r}of this[iA].values())A[t]=r;return A}rawValues(){return this[iA].values()}get entriesList(){let A=[];if(this[iA].size!==0)for(let{0:t,1:{name:r,value:n}}of this[iA])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[iA].size,t=new Array(A);if(A<=32){if(A===0)return t;let r=this[iA][Symbol.iterator](),n=r.next().value;t[0]=[n[0],n[1].value],sc(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],sc(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[iA])t[r++]=[n,s],sc(s!==null);return t.sort(Vl)}}},ZA=class e{#A;#e;constructor(A=void 0){v.util.markAsUncloneable(this),A!==Dm&&(this.#e=new Ss,this.#A="none",A!==void 0&&(A=v.converters.HeadersInit(A,"Headers contructor","init"),Hl(this,A)))}append(A,t){v.brandCheck(this,e),v.argumentLengthCheck(arguments,2,"Headers.append");let r="Headers.append";return A=v.converters.ByteString(A,r,"name"),t=v.converters.ByteString(t,r,"value"),ic(this,A,t)}delete(A){if(v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,"Headers.delete"),A=v.converters.ByteString(A,"Headers.delete","name"),!Xr(A))throw v.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){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,"Headers.get");let t="Headers.get";if(A=v.converters.ByteString(A,t,"name"),!Xr(A))throw v.errors.invalidArgument({prefix:t,value:A,type:"header name"});return this.#e.get(A,!1)}has(A){v.brandCheck(this,e),v.argumentLengthCheck(arguments,1,"Headers.has");let t="Headers.has";if(A=v.converters.ByteString(A,t,"name"),!Xr(A))throw v.errors.invalidArgument({prefix:t,value:A,type:"header name"});return this.#e.contains(A,!1)}set(A,t){v.brandCheck(this,e),v.argumentLengthCheck(arguments,2,"Headers.set");let r="Headers.set";if(A=v.converters.ByteString(A,r,"name"),t=v.converters.ByteString(t,r,"value"),t=Jl(t),Xr(A)){if(!vl(t))throw v.errors.invalidArgument({prefix:r,value:t,type:"header value"})}else throw v.errors.invalidArgument({prefix:r,value:A,type:"header name"});if(this.#A==="immutable")throw new TypeError("immutable");this.#e.set(A,t,!1)}getSetCookie(){v.brandCheck(this,e);let A=this.#e.cookies;return A?[...A]:[]}get[FA](){if(this.#e[FA])return this.#e[FA];let A=[],t=this.#e.toSortedArray(),r=this.#e.cookies;if(r===null||r.length===1)return this.#e[FA]=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[FA]=A}[Ns.inspect.custom](A,t){return t.depth??=A,`Headers ${Ns.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:ql,setHeadersGuard:mm,getHeadersList:oc,setHeadersList:Fm}=ZA;Reflect.deleteProperty(ZA,"getHeadersGuard");Reflect.deleteProperty(ZA,"setHeadersGuard");Reflect.deleteProperty(ZA,"getHeadersList");Reflect.deleteProperty(ZA,"setHeadersList");km("Headers",ZA,FA,0,1);Object.defineProperties(ZA.prototype,{append:Ar,delete:Ar,get:Ar,has:Ar,set:Ar,getSetCookie:Ar,[Symbol.toStringTag]:{value:"Headers",configurable:!0},[Ns.inspect.custom]:{enumerable:!1}});v.converters.HeadersInit=function(e,A,t){if(v.util.Type(e)==="Object"){let r=Reflect.get(e,Symbol.iterator);if(!Ns.types.isProxy(e)&&r===ZA.prototype.entries)try{return oc(e).entriesList}catch{}return typeof r=="function"?v.converters["sequence<sequence<ByteString>>"](e,A,t,r.bind(e)):v.converters["record<ByteString, ByteString>"](e,A,t)}throw v.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};Wl.exports={fill:Hl,compareHeaderName:Vl,Headers:ZA,HeadersList:Ss,getHeadersGuard:ql,setHeadersGuard:mm,setHeadersList:Fm,getHeadersList:oc}});var jr=f((uM,tC)=>{"use strict";var{Headers:Xl,HeadersList:Ol,fill:Rm,getHeadersGuard:bm,setHeadersGuard:_l,setHeadersList:jl}=it(),{extractBody:Pl,cloneBody:Nm,mixinBody:Sm,hasFinalizationRegistry:$l,streamRegistry:AC,bodyUnusable:Um}=Mt(),ac=L(),Zl=d("node:util"),{kEnumerableProperty:RA}=ac,{isValidReasonPhrase:Mm,isCancelled:Lm,isAborted:Tm,isBlobLike:Ym,serializeJavascriptValueToJSONString:xm,isErrorLike:Gm,isomorphicEncode:vm,environmentSettingsObject:Jm}=pA(),{redirectStatusSet:Hm,nullBodyStatus:Vm}=yr(),{kState:j,kHeaders:fe}=ke(),{webidl:M}=gA(),{FormData:qm}=Rr(),{URLSerializer:Kl}=uA(),{kConstruct:Ms}=X(),cc=d("node:assert"),{types:Wm}=d("node:util"),Om=new TextEncoder("utf-8"),ot=class e{static error(){return _r(Ls(),"immutable")}static json(A,t={}){M.argumentLengthCheck(arguments,1,"Response.json"),t!==null&&(t=M.converters.ResponseInit(t));let r=Om.encode(xm(A)),n=Pl(r),s=_r(er({}),"response");return zl(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,Jm.settingsObject.baseUrl)}catch(i){throw new TypeError(`Failed to parse URL from ${A}`,{cause:i})}if(!Hm.has(t))throw new RangeError(`Invalid status code ${t}`);let n=_r(er({}),"immutable");n[j].status=t;let s=vm(Kl(r));return n[j].headersList.append("location",s,!0),n}constructor(A=null,t={}){if(M.util.markAsUncloneable(this),A===Ms)return;A!==null&&(A=M.converters.BodyInit(A)),t=M.converters.ResponseInit(t),this[j]=er({}),this[fe]=new Xl(Ms),_l(this[fe],"response"),jl(this[fe],this[j].headersList);let r=null;if(A!=null){let[n,s]=Pl(A);r={body:n,type:s}}zl(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?"":Kl(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[fe]}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&&ac.isDisturbed(this[j].body.stream)}clone(){if(M.brandCheck(this,e),Um(this))throw M.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=gc(this[j]);return $l&&this[j].body?.stream&&AC.register(this,new WeakRef(this[j].body.stream)),_r(A,bm(this[fe]))}[Zl.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 ${Zl.formatWithOptions(t,r)}`}};Sm(ot);Object.defineProperties(ot.prototype,{type:RA,url:RA,status:RA,ok:RA,redirected:RA,statusText:RA,headers:RA,clone:RA,body:RA,bodyUsed:RA,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(ot,{json:RA,redirect:RA,error:RA});function gc(e){if(e.internalResponse)return eC(gc(e.internalResponse),e.type);let A=er({...e,body:null});return e.body!=null&&(A.body=Nm(A,e.body)),A}function er(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e?.headersList?new Ol(e?.headersList):new Ol,urlList:e?.urlList?[...e.urlList]:[]}}function Ls(e){let A=Gm(e);return er({type:"error",status:0,error:A?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function Pm(e){return e.type==="error"&&e.status===0}function Us(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 cc(!(r in A)),t[r]=n,!0}})}function eC(e,A){if(A==="basic")return Us(e,{type:"basic",headersList:e.headersList});if(A==="cors")return Us(e,{type:"cors",headersList:e.headersList});if(A==="opaque")return Us(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(A==="opaqueredirect")return Us(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});cc(!1)}function Zm(e,A=null){return cc(Lm(e)),Tm(e)?Ls(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:A})):Ls(Object.assign(new DOMException("Request was cancelled."),{cause:A}))}function zl(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&&!Mm(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&&Rm(e[fe],A.headers),t){if(Vm.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 _r(e,A){let t=new ot(Ms);return t[j]=e,t[fe]=new Xl(Ms),jl(t[fe],e.headersList),_l(t[fe],A),$l&&e.body?.stream&&AC.register(t,new WeakRef(e.body.stream)),t}M.converters.ReadableStream=M.interfaceConverter(ReadableStream);M.converters.FormData=M.interfaceConverter(qm);M.converters.URLSearchParams=M.interfaceConverter(URLSearchParams);M.converters.XMLHttpRequestBodyInit=function(e,A,t){return typeof e=="string"?M.converters.USVString(e,A,t):Ym(e)?M.converters.Blob(e,A,t,{strict:!1}):ArrayBuffer.isView(e)||Wm.isArrayBuffer(e)?M.converters.BufferSource(e,A,t):ac.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}]);tC.exports={isNetworkError:Pm,makeNetworkError:Ls,makeResponse:er,makeAppropriateNetworkError:Zm,filterResponse:eC,Response:ot,cloneResponse:gc,fromInnerResponse:_r}});var iC=f((hM,sC)=>{"use strict";var{kConnected:rC,kSize:nC}=X(),Qc=class{constructor(A){this.value=A}deref(){return this.value[rC]===0&&this.value[nC]===0?void 0:this.value}},Ec=class{constructor(A){this.finalizer=A}register(A,t){A.on&&A.on("disconnect",()=>{A[rC]===0&&A[nC]===0&&this.finalizer(t)})}unregister(A){}};sC.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")?(process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:Qc,FinalizationRegistry:Ec}):{WeakRef,FinalizationRegistry}}});var tr=f((dM,wC)=>{"use strict";var{extractBody:Km,mixinBody:zm,cloneBody:Xm,bodyUnusable:oC}=Mt(),{Headers:CC,fill:_m,HeadersList:Gs,setHeadersGuard:Ic,getHeadersGuard:jm,setHeadersList:uC,getHeadersList:aC}=it(),{FinalizationRegistry:$m}=iC()(),Ys=L(),cC=d("node:util"),{isValidHTTPToken:AF,sameOrigin:gC,environmentSettingsObject:Ts}=pA(),{forbiddenMethodsSet:eF,corsSafeListedMethodsSet:tF,referrerPolicy:rF,requestRedirect:nF,requestMode:sF,requestCredentials:iF,requestCache:oF,requestDuplex:aF}=yr(),{kEnumerableProperty:oA,normalizedMethodRecordsBase:cF,normalizedMethodRecords:gF}=Ys,{kHeaders:bA,kSignal:xs,kState:z,kDispatcher:Bc}=ke(),{webidl:N}=gA(),{URLSerializer:QF}=uA(),{kConstruct:vs}=X(),EF=d("node:assert"),{getMaxListeners:QC,setMaxListeners:EC,getEventListeners:BF,defaultMaxListeners:BC}=d("node:events"),IF=Symbol("abortController"),hC=new $m(({signal:e,abort:A})=>{e.removeEventListener("abort",A)}),Js=new WeakMap;function IC(e){return A;function A(){let t=e.deref();if(t!==void 0){hC.unregister(A),this.removeEventListener("abort",A),t.abort(this.reason);let r=Js.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()}Js.delete(t.signal)}}}}var lC=!1,Ye=class e{constructor(A,t={}){if(N.util.markAsUncloneable(this),A===vs)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=Ts.settingsObject.baseUrl,o=null;if(typeof A=="string"){this[Bc]=t.dispatcher;let l;try{l=new URL(A,i)}catch(h){throw new TypeError("Failed to parse URL from "+A,{cause:h})}if(l.username||l.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A);n=Hs({urlList:[l]}),s="cors"}else this[Bc]=t.dispatcher||A[Bc],EF(A instanceof e),n=A[z],o=A[xs];let a=Ts.settingsObject.origin,c="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&gC(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=Hs({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:Ts.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 l=t.referrer;if(l==="")n.referrer="no-referrer";else{let h;try{h=new URL(l,i)}catch(D){throw new TypeError(`Referrer "${l}" is not a valid URL.`,{cause:D})}h.protocol==="about:"&&h.hostname==="client"||a&&!gC(h,Ts.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 l=t.method,h=gF[l];if(h!==void 0)n.method=h;else{if(!AF(l))throw new TypeError(`'${l}' is not a valid HTTP method.`);let D=l.toUpperCase();if(eF.has(D))throw new TypeError(`'${l}' HTTP method is unsupported.`);l=cF[D]??l,n.method=l}!lC&&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"}),lC=!0)}t.signal!==void 0&&(o=t.signal),this[z]=n;let E=new AbortController;if(this[xs]=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[IF]=E;let l=new WeakRef(E),h=IC(l);try{(typeof QC=="function"&&QC(o)===BC||BF(o,"abort").length>=BC)&&EC(1500,o)}catch{}Ys.addAbortListener(o,h),hC.register(E,{signal:o,abort:h},h)}}if(this[bA]=new CC(vs),uC(this[bA],n.headersList),Ic(this[bA],"request"),Q==="no-cors"){if(!tF.has(n.method))throw new TypeError(`'${n.method} is unsupported in no-cors mode.`);Ic(this[bA],"request-no-cors")}if(g){let l=aC(this[bA]),h=t.headers!==void 0?t.headers:new Gs(l);if(l.clear(),h instanceof Gs){for(let{name:D,value:p}of h.rawValues())l.append(D,p,!1);l.cookies=h.cookies}else _m(this[bA],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[l,h]=Km(t.body,n.keepalive);I=l,h&&!aC(this[bA]).contains("content-type",!0)&&this[bA].append("content-type",h)}let C=I??B;if(C!=null&&C.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=C;if(I==null&&B!=null){if(oC(A))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let l=new TransformStream;B.stream.pipeThrough(l),u={source:B.source,length:B.length,stream:l.readable}}this[z].body=u}get method(){return N.brandCheck(this,e),this[z].method}get url(){return N.brandCheck(this,e),QF(this[z].url)}get headers(){return N.brandCheck(this,e),this[bA]}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[xs]}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&&Ys.isDisturbed(this[z].body.stream)}get duplex(){return N.brandCheck(this,e),"half"}clone(){if(N.brandCheck(this,e),oC(this))throw new TypeError("unusable");let A=dC(this[z]),t=new AbortController;if(this.signal.aborted)t.abort(this.signal.reason);else{let r=Js.get(this.signal);r===void 0&&(r=new Set,Js.set(this.signal,r));let n=new WeakRef(t);r.add(n),Ys.addAbortListener(t.signal,IC(n))}return fC(A,t.signal,jm(this[bA]))}[cC.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 ${cC.formatWithOptions(t,r)}`}};zm(Ye);function Hs(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 Gs(e.headersList):new Gs}}function dC(e){let A=Hs({...e,body:null});return e.body!=null&&(A.body=Xm(A,e.body)),A}function fC(e,A,t){let r=new Ye(vs);return r[z]=e,r[xs]=A,r[bA]=new CC(vs),uC(r[bA],e.headersList),Ic(r[bA],t),r}Object.defineProperties(Ye.prototype,{method:oA,url:oA,headers:oA,redirect:oA,clone:oA,signal:oA,duplex:oA,destination:oA,body:oA,bodyUsed:oA,isHistoryNavigation:oA,isReloadNavigation:oA,keepalive:oA,integrity:oA,cache:oA,credentials:oA,attribute:oA,referrerPolicy:oA,referrer:oA,mode:oA,[Symbol.toStringTag]:{value:"Request",configurable:!0}});N.converters.Request=N.interfaceConverter(Ye);N.converters.RequestInfo=function(e,A,t){return typeof e=="string"?N.converters.USVString(e,A,t):e instanceof Ye?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:rF},{key:"mode",converter:N.converters.DOMString,allowedValues:sF},{key:"credentials",converter:N.converters.DOMString,allowedValues:iF},{key:"cache",converter:N.converters.DOMString,allowedValues:oF},{key:"redirect",converter:N.converters.DOMString,allowedValues:nF},{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:aF},{key:"dispatcher",converter:N.converters.any}]);wC.exports={Request:Ye,makeRequest:Hs,fromInnerRequest:fC,cloneRequest:dC}});var An=f((fM,YC)=>{"use strict";var{makeNetworkError:W,makeAppropriateNetworkError:Vs,filterResponse:lc,makeResponse:qs,fromInnerResponse:lF}=jr(),{HeadersList:yC}=it(),{Request:CF,cloneRequest:uF}=tr(),xe=d("node:zlib"),{bytesMatch:hF,makePolicyContainer:dF,clonePolicyContainer:fF,requestBadPort:wF,TAOCheck:yF,appendRequestOriginHeader:pF,responseLocationURL:DF,requestCurrentURL:ie,setRequestReferrerPolicyOnRedirect:kF,tryUpgradeRequestToAPotentiallyTrustworthyURL:mF,createOpaqueTimingInfo:fc,appendFetchMetadata:FF,corsCheck:RF,crossOriginResourcePolicyCheck:bF,determineRequestsReferrer:NF,coarsenedSharedCurrentTime:$r,createDeferredPromise:SF,isBlobLike:UF,sameOrigin:dc,isCancelled:at,isAborted:pC,isErrorLike:MF,fullyReadBody:LF,readableStreamClose:TF,isomorphicEncode:Ws,urlIsLocal:YF,urlIsHttpHttpsScheme:wc,urlHasHttpsScheme:xF,clampAndCoarsenConnectionTimingInfo:GF,simpleRangeHeaderValue:vF,buildContentRange:JF,createInflate:HF,extractMimeType:VF}=pA(),{kState:FC,kDispatcher:qF}=ke(),ct=d("node:assert"),{safelyExtractBody:yc,extractBody:DC}=Mt(),{redirectStatusSet:RC,nullBodyStatus:bC,safeMethodsSet:WF,requestBodyHeader:OF,subresourceSet:PF}=yr(),ZF=d("node:events"),{Readable:KF,pipeline:zF,finished:XF}=d("node:stream"),{addAbortListener:_F,isErrored:jF,isReadable:Os,bufferToLowerCasedHeaderName:kC}=L(),{dataURLProcessor:$F,serializeAMimeType:AR,minimizeSupportedMimeType:eR}=uA(),{getGlobalDispatcher:tR}=Rs(),{webidl:rR}=gA(),{STATUS_CODES:nR}=d("node:http"),sR=["GET","HEAD"],iR=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",Cc,Ps=class extends ZF{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 oR(e){NC(e,"fetch")}function aR(e,A=void 0){rR.argumentLengthCheck(arguments,1,"globalThis.fetch");let t=SF(),r;try{r=new CF(e,A)}catch(g){return t.reject(g),t.promise}let n=r[FC];if(r.signal.aborted)return uc(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 _F(r.signal,()=>{o=!0,ct(a!=null),a.abort(r.signal.reason);let g=i?.deref();uc(t,n,g,r.signal.reason)}),a=UC({request:n,processResponseEndOfBody:oR,processResponse:g=>{if(!o){if(g.aborted){uc(t,n,i,a.serializedAbortReason);return}if(g.type==="error"){t.reject(new TypeError("fetch failed",{cause:g.error}));return}i=new WeakRef(lF(g,"immutable")),t.resolve(i.deref()),t=null}},dispatcher:r[qF]}),t.promise}function NC(e,A="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let t=e.urlList[0],r=e.timingInfo,n=e.cacheState;wc(t)&&r!==null&&(e.timingAllowPassed||(r=fc({startTime:r.startTime}),n=""),r.endTime=$r(),e.timingInfo=r,SC(r,t.href,A,globalThis,n))}var SC=performance.markResourceTiming;function uc(e,A,t,r){if(e&&e.reject(r),A.body!=null&&Os(A.body?.stream)&&A.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s}),t==null)return;let n=t[FC];n.body!=null&&Os(n.body?.stream)&&n.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s})}function UC({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:n,processResponseConsumeBody:s,useParallelQueue:i=!1,dispatcher:o=tR()}){ct(o);let a=null,c=!1;e.client!=null&&(a=e.client.globalObject,c=e.client.crossOriginIsolatedCapability);let g=$r(c),Q=fc({startTime:g}),E={controller:new Ps(o),request:e,timingInfo:Q,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:s,processResponseEndOfBody:n,taskDestination:a,crossOriginIsolatedCapability:c};return ct(!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=fF(e.client.policyContainer):e.policyContainer=dF()),e.headersList.contains("accept",!0)||e.headersList.append("accept","*/*",!0),e.headersList.contains("accept-language",!0)||e.headersList.append("accept-language","*",!0),e.priority,PF.has(e.destination),MC(E).catch(B=>{E.controller.terminate(B)}),E.controller}async function MC(e,A=!1){let t=e.request,r=null;if(t.localURLsOnly&&!YF(ie(t))&&(r=W("local URLs only")),mF(t),wF(t)==="blocked"&&(r=W("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=NF(t)),r===null&&(r=await(async()=>{let s=ie(t);return dc(s,t.url)&&t.responseTainting==="basic"||s.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await mC(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 mC(e)):wc(ie(t))?(t.responseTainting="cors",await LC(e)):W("URL scheme must be a HTTP(S) scheme")})()),A)return r;r.status!==0&&!r.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?r=lc(r,"basic"):t.responseTainting==="cors"?r=lc(r,"cors"):t.responseTainting==="opaque"?r=lc(r,"opaque"):ct(!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"||bC.includes(n.status))&&(n.body=null,e.controller.dump=!0),t.integrity){let s=o=>hc(e,W(o));if(t.responseTainting==="opaque"||r.body==null){s(r.error);return}let i=o=>{if(!hF(o,t.integrity)){s("integrity mismatch");return}r.body=yc(o)[0],hc(e,r)};await LF(r.body,i,s)}else hc(e,r)}function mC(e){if(at(e)&&e.request.redirectCount===0)return Promise.resolve(Vs(e));let{request:A}=e,{protocol:t}=ie(A);switch(t){case"about:":return Promise.resolve(W("about scheme is not supported"));case"blob:":{Cc||(Cc=d("node:buffer").resolveObjectURL);let r=ie(A);if(r.search.length!==0)return Promise.resolve(W("NetworkError when attempting to fetch resource."));let n=Cc(r.toString());if(A.method!=="GET"||!UF(n))return Promise.resolve(W("invalid method"));let s=qs(),i=n.size,o=Ws(`${i}`),a=n.type;if(A.headersList.contains("range",!0)){s.rangeRequested=!0;let c=A.headersList.get("range",!0),g=vF(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=DC(B);s.body=I[0];let C=Ws(`${B.size}`),u=JF(Q,E,i);s.status=206,s.statusText="Partial Content",s.headersList.set("content-length",C,!0),s.headersList.set("content-type",a,!0),s.headersList.set("content-range",u,!0)}else{let c=DC(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=ie(A),n=$F(r);if(n==="failure")return Promise.resolve(W("failed to fetch the data URL"));let s=AR(n.mimeType);return Promise.resolve(qs({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:s}]],body:yc(n.body)[0]}))}case"file:":return Promise.resolve(W("not implemented... yet..."));case"http:":case"https:":return LC(e).catch(r=>W(r));default:return Promise.resolve(W("unknown scheme"))}}function cR(e,A){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(A))}function hc(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=fc(t),o="");let c=0;if(e.request.mode!=="navigator"||!A.hasCrossOriginRedirects){c=A.status;let g=VF(A.headersList);g!=="failure"&&(a.contentType=eR(g))}e.request.initiatorType!=null&&SC(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():XF(n.body.stream,()=>{r()})}async function LC(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 TC(e),A.responseTainting==="cors"&&RF(A,t)==="failure")return W("cors failure");yF(A,t)==="failure"&&(A.timingAllowFailed=!0)}return(A.responseTainting==="opaque"||t.type==="opaque")&&bF(A.origin,A.client,A.destination,r)==="blocked"?W("blocked"):(RC.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 gR(e,t):ct(!1)),t.timingInfo=n,t)}function gR(e,A){let t=e.request,r=A.internalResponse?A.internalResponse:A,n;try{if(n=DF(r,ie(t).hash),n==null)return A}catch(i){return Promise.resolve(W(i))}if(!wc(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)&&!dc(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&&!sR.includes(t.method)){t.method="GET",t.body=null;for(let i of OF)t.headersList.delete(i)}dc(ie(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&&(ct(t.body.source!=null),t.body=yc(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),kF(t,r),MC(e,!0)}async function TC(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=uF(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=Ws(`${g}`)),Q!=null&&s.headersList.append("content-length",Q,!0),g!=null&&s.keepalive,s.referrer instanceof URL&&s.headersList.append("referer",Ws(s.referrer.href),!0),pF(s),FF(s),s.headersList.contains("user-agent",!0)||s.headersList.append("user-agent",iR),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)||(xF(ie(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 QR(n,c,t);!WF.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():at(e)?Vs(e):W("proxy authentication required");if(i.status===421&&!t&&(r.body==null||r.body.source!=null)){if(at(e))return Vs(e);e.controller.connection.destroy(),i=await TC(e,A,!0)}return i}async function QR(e,A=!1,t=!1){ct(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(I,C=!0){this.destroyed||(this.destroyed=!0,C&&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*(l){at(e)||(yield l,e.processRequestBodyChunkLength?.(l.byteLength))},C=()=>{at(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},u=l=>{at(e)||(l.name==="AbortError"?e.controller.abort():e.controller.terminate(l))};a=(async function*(){try{for await(let l of r.body.stream)yield*I(l);C()}catch(l){u(l)}})()}try{let{body:I,status:C,statusText:u,headersList:l,socket:h}=await B({body:a});if(h)n=qs({status:C,statusText:u,headersList:l,socket:h});else{let D=I[Symbol.asyncIterator]();e.controller.next=()=>D.next(),n=qs({status:C,statusText:u,headersList:l})}}catch(I){return I.name==="AbortError"?(e.controller.connection.destroy(),Vs(e,I)):W(I)}let c=async()=>{await e.controller.resume()},g=I=>{at(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,C;try{let{done:l,value:h}=await e.controller.next();if(pC(e))break;I=l?void 0:h}catch(l){e.controller.ended&&!s.encodedBodySize?I=void 0:(I=l,C=!0)}if(I===void 0){TF(e.controller.controller),cR(e,n);return}if(s.decodedBodySize+=I?.byteLength??0,C){e.controller.terminate(I);return}let u=new Uint8Array(I);if(u.byteLength&&e.controller.controller.enqueue(u),jF(Q)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function E(I){pC(e)?(n.aborted=!0,Os(Q)&&e.controller.controller.error(e.controller.serializedAbortReason)):Os(Q)&&e.controller.controller.error(new TypeError("terminated",{cause:MF(I)?I:void 0})),e.controller.connection.destroy()}return n;function B({body:I}){let C=ie(r),u=e.controller.dispatcher;return new Promise((l,h)=>u.dispatch({path:C.pathname+C.search,origin:C.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=GF(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,tA){if(D<200)return;let $="",XA=new yC;for(let CA=0;CA<p.length;CA+=2)XA.append(kC(p[CA]),p[CA+1].toString("latin1"),!0);$=XA.get("location",!0),this.body=new KF({read:H});let ce=[],Ct=$&&r.redirect==="follow"&&RC.has(D);if(r.method!=="HEAD"&&r.method!=="CONNECT"&&!bC.includes(D)&&!Ct){let CA=XA.get("content-encoding",!0),ut=CA?CA.toLowerCase().split(","):[],ht=5;if(ut.length>ht)return h(new Error(`too many content-encodings in response: ${ut.length}, maximum allowed is ${ht}`)),!0;for(let yi=ut.length-1;yi>=0;--yi){let yn=ut[yi].trim();if(yn==="x-gzip"||yn==="gzip")ce.push(xe.createGunzip({flush:xe.constants.Z_SYNC_FLUSH,finishFlush:xe.constants.Z_SYNC_FLUSH}));else if(yn==="deflate")ce.push(HF({flush:xe.constants.Z_SYNC_FLUSH,finishFlush:xe.constants.Z_SYNC_FLUSH}));else if(yn==="br")ce.push(xe.createBrotliDecompress({flush:xe.constants.BROTLI_OPERATION_FLUSH,finishFlush:xe.constants.BROTLI_OPERATION_FLUSH}));else{ce.length=0;break}}}let De=this.onError.bind(this);return l({status:D,statusText:tA,headersList:XA,body:ce.length?zF(this.body,...ce,CA=>{CA&&this.onError(CA)}).on("error",De):this.body.on("error",De)}),!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 tA=new yC;for(let $=0;$<p.length;$+=2)tA.append(kC(p[$]),p[$+1].toString("latin1"),!0);return l({status:D,statusText:nR[D],headersList:tA,socket:H}),!0}}))}}YC.exports={fetch:aR,Fetch:Ps,fetching:UC,finalizeAndReportTiming:NC}});var pc=f((wM,xC)=>{"use strict";xC.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 vC=f((yM,GC)=>{"use strict";var{webidl:NA}=gA(),Zs=Symbol("ProgressEvent state"),Dc=class e extends Event{constructor(A,t={}){A=NA.converters.DOMString(A,"ProgressEvent constructor","type"),t=NA.converters.ProgressEventInit(t??{}),super(A,t),this[Zs]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return NA.brandCheck(this,e),this[Zs].lengthComputable}get loaded(){return NA.brandCheck(this,e),this[Zs].loaded}get total(){return NA.brandCheck(this,e),this[Zs].total}};NA.converters.ProgressEventInit=NA.dictionaryConverter([{key:"lengthComputable",converter:NA.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:NA.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:NA.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:NA.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:NA.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:NA.converters.boolean,defaultValue:()=>!1}]);GC.exports={ProgressEvent:Dc}});var HC=f((pM,JC)=>{"use strict";function ER(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"}}JC.exports={getEncoding:ER}});var zC=f((DM,KC)=>{"use strict";var{kState:rr,kError:kc,kResult:VC,kAborted:en,kLastProgressEventFired:mc}=pc(),{ProgressEvent:BR}=vC(),{getEncoding:qC}=HC(),{serializeAMimeType:IR,parseMIMEType:WC}=uA(),{types:lR}=d("node:util"),{StringDecoder:OC}=d("string_decoder"),{btoa:PC}=d("node:buffer"),CR={enumerable:!0,writable:!1,configurable:!1};function uR(e,A,t,r){if(e[rr]==="loading")throw new DOMException("Invalid state","InvalidStateError");e[rr]="loading",e[VC]=null,e[kc]=null;let s=A.stream().getReader(),i=[],o=s.read(),a=!0;(async()=>{for(;!e[en];)try{let{done:c,value:g}=await o;if(a&&!e[en]&&queueMicrotask(()=>{Ge("loadstart",e)}),a=!1,!c&&lR.isUint8Array(g))i.push(g),(e[mc]===void 0||Date.now()-e[mc]>=50)&&!e[en]&&(e[mc]=Date.now(),queueMicrotask(()=>{Ge("progress",e)})),o=s.read();else if(c){queueMicrotask(()=>{e[rr]="done";try{let Q=hR(i,t,A.type,r);if(e[en])return;e[VC]=Q,Ge("load",e)}catch(Q){e[kc]=Q,Ge("error",e)}e[rr]!=="loading"&&Ge("loadend",e)});break}}catch(c){if(e[en])return;queueMicrotask(()=>{e[rr]="done",e[kc]=c,Ge("error",e),e[rr]!=="loading"&&Ge("loadend",e)});break}})()}function Ge(e,A){let t=new BR(e,{bubbles:!1,cancelable:!1});A.dispatchEvent(t)}function hR(e,A,t,r){switch(A){case"DataURL":{let n="data:",s=WC(t||"application/octet-stream");s!=="failure"&&(n+=IR(s)),n+=";base64,";let i=new OC("latin1");for(let o of e)n+=PC(i.write(o));return n+=PC(i.end()),n}case"Text":{let n="failure";if(r&&(n=qC(r)),n==="failure"&&t){let s=WC(t);s!=="failure"&&(n=qC(s.parameters.get("charset")))}return n==="failure"&&(n="UTF-8"),dR(e,n)}case"ArrayBuffer":return ZC(e).buffer;case"BinaryString":{let n="",s=new OC("latin1");for(let i of e)n+=s.write(i);return n+=s.end(),n}}}function dR(e,A){let t=ZC(e),r=fR(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 fR(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 ZC(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))}KC.exports={staticPropertyDescriptors:CR,readOperation:uR,fireAProgressEvent:Ge}});var $C=f((kM,jC)=>{"use strict";var{staticPropertyDescriptors:nr,readOperation:Ks,fireAProgressEvent:XC}=zC(),{kState:gt,kError:_C,kResult:zs,kEvents:V,kAborted:wR}=pc(),{webidl:P}=gA(),{kEnumerableProperty:fA}=L(),KA=class e extends EventTarget{constructor(){super(),this[gt]="empty",this[zs]=null,this[_C]=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}),Ks(this,A,"ArrayBuffer")}readAsBinaryString(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),A=P.converters.Blob(A,{strict:!1}),Ks(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")),Ks(this,A,"Text",t)}readAsDataURL(A){P.brandCheck(this,e),P.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),A=P.converters.Blob(A,{strict:!1}),Ks(this,A,"DataURL")}abort(){if(this[gt]==="empty"||this[gt]==="done"){this[zs]=null;return}this[gt]==="loading"&&(this[gt]="done",this[zs]=null),this[wR]=!0,XC("abort",this),this[gt]!=="loading"&&XC("loadend",this)}get readyState(){switch(P.brandCheck(this,e),this[gt]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return P.brandCheck(this,e),this[zs]}get error(){return P.brandCheck(this,e),this[_C]}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}};KA.EMPTY=KA.prototype.EMPTY=0;KA.LOADING=KA.prototype.LOADING=1;KA.DONE=KA.prototype.DONE=2;Object.defineProperties(KA.prototype,{EMPTY:nr,LOADING:nr,DONE:nr,readAsArrayBuffer:fA,readAsBinaryString:fA,readAsText:fA,readAsDataURL:fA,abort:fA,readyState:fA,result:fA,error:fA,onloadstart:fA,onprogress:fA,onload:fA,onabort:fA,onerror:fA,onloadend:fA,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(KA,{EMPTY:nr,LOADING:nr,DONE:nr});jC.exports={FileReader:KA}});var Xs=f((mM,Au)=>{"use strict";Au.exports={kConstruct:X().kConstruct}});var ru=f((FM,tu)=>{"use strict";var yR=d("node:assert"),{URLSerializer:eu}=uA(),{isValidHeaderName:pR}=pA();function DR(e,A,t=!1){let r=eu(e,t),n=eu(A,t);return r===n}function kR(e){yR(e!==null);let A=[];for(let t of e.split(","))t=t.trim(),pR(t)&&A.push(t);return A}tu.exports={urlEquals:DR,getFieldValues:kR}});var iu=f((RM,su)=>{"use strict";var{kConstruct:mR}=Xs(),{urlEquals:FR,getFieldValues:Fc}=ru(),{kEnumerableProperty:Qt,isDisturbed:RR}=L(),{webidl:m}=gA(),{Response:bR,cloneResponse:NR,fromInnerResponse:SR}=jr(),{Request:we,fromInnerRequest:UR}=tr(),{kState:zA}=ke(),{fetching:MR}=An(),{urlIsHttpHttpsScheme:_s,createDeferredPromise:sr,readAllBytes:LR}=pA(),Rc=d("node:assert"),js=class e{#A;constructor(){arguments[0]!==mR&&m.illegalConstructor(),m.util.markAsUncloneable(this),this.#A=arguments[1]}async match(A,t={}){m.brandCheck(this,e);let r="Cache.match";m.argumentLengthCheck(arguments,1,r),A=m.converters.RequestInfo(A,r,"request"),t=m.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={}){m.brandCheck(this,e);let r="Cache.matchAll";return A!==void 0&&(A=m.converters.RequestInfo(A,r,"request")),t=m.converters.CacheQueryOptions(t,r,"options"),this.#n(A,t)}async add(A){m.brandCheck(this,e);let t="Cache.add";m.argumentLengthCheck(arguments,1,t),A=m.converters.RequestInfo(A,t,"request");let r=[A];return await this.addAll(r)}async addAll(A){m.brandCheck(this,e);let t="Cache.addAll";m.argumentLengthCheck(arguments,1,t);let r=[],n=[];for(let E of A){if(E===void 0)throw m.errors.conversionFailed({prefix:t,argument:"Argument 1",types:["undefined is not allowed"]});if(E=m.converters.RequestInfo(E),typeof E=="string")continue;let B=E[zA];if(!_s(B.url)||B.method!=="GET")throw m.errors.exception({header:t,message:"Expected http/s scheme when method is not GET."})}let s=[];for(let E of A){let B=new we(E)[zA];if(!_s(B.url))throw m.errors.exception({header:t,message:"Expected http/s scheme."});B.initiator="fetch",B.destination="subresource",n.push(B);let I=sr();s.push(MR({request:B,processResponse(C){if(C.type==="error"||C.status===206||C.status<200||C.status>299)I.reject(m.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(C.headersList.contains("vary")){let u=Fc(C.headersList.get("vary"));for(let l of u)if(l==="*"){I.reject(m.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let h of s)h.abort();return}}},processResponseEndOfBody(C){if(C.aborted){I.reject(new DOMException("aborted","AbortError"));return}I.resolve(C)}})),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=sr(),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){m.brandCheck(this,e);let r="Cache.put";m.argumentLengthCheck(arguments,2,r),A=m.converters.RequestInfo(A,r,"request"),t=m.converters.Response(t,r,"response");let n=null;if(A instanceof we?n=A[zA]:n=new we(A)[zA],!_s(n.url)||n.method!=="GET")throw m.errors.exception({header:r,message:"Expected an http/s scheme when method is not GET"});let s=t[zA];if(s.status===206)throw m.errors.exception({header:r,message:"Got 206 status"});if(s.headersList.contains("vary")){let B=Fc(s.headersList.get("vary"));for(let I of B)if(I==="*")throw m.errors.exception({header:r,message:"Got * vary field value"})}if(s.body&&(RR(s.body.stream)||s.body.stream.locked))throw m.errors.exception({header:r,message:"Response body is locked or disturbed"});let i=NR(s),o=sr();if(s.body!=null){let I=s.body.stream.getReader();LR(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=sr(),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={}){m.brandCheck(this,e);let r="Cache.delete";m.argumentLengthCheck(arguments,1,r),A=m.converters.RequestInfo(A,r,"request"),t=m.converters.CacheQueryOptions(t,r,"options");let n=null;if(A instanceof we){if(n=A[zA],n.method!=="GET"&&!t.ignoreMethod)return!1}else Rc(typeof A=="string"),n=new we(A)[zA];let s=[],i={type:"delete",request:n,options:t};s.push(i);let o=sr(),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={}){m.brandCheck(this,e);let r="Cache.keys";A!==void 0&&(A=m.converters.RequestInfo(A,r,"request")),t=m.converters.CacheQueryOptions(t,r,"options");let n=null;if(A!==void 0)if(A instanceof we){if(n=A[zA],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(n=new we(A)[zA]);let s=sr(),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=UR(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 m.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(i.type==="delete"&&i.response!=null)throw m.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);Rc(c!==-1),t.splice(c,1)}}else if(i.type==="put"){if(i.response==null)throw m.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let a=i.request;if(!_s(a.url))throw m.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(a.method!=="GET")throw m.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(i.options!=null)throw m.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);Rc(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=Fc(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 we){if(n=A[zA],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(n=new we(A)[zA]);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=SR(o,"immutable");if(i.push(a.clone()),i.length>=r)break}return Object.freeze(i)}};Object.defineProperties(js.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:Qt,matchAll:Qt,add:Qt,addAll:Qt,put:Qt,delete:Qt,keys:Qt});var nu=[{key:"ignoreSearch",converter:m.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:m.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:m.converters.boolean,defaultValue:()=>!1}];m.converters.CacheQueryOptions=m.dictionaryConverter(nu);m.converters.MultiCacheQueryOptions=m.dictionaryConverter([...nu,{key:"cacheName",converter:m.converters.DOMString}]);m.converters.Response=m.interfaceConverter(bR);m.converters["sequence<RequestInfo>"]=m.sequenceConverter(m.converters.RequestInfo);su.exports={Cache:js}});var au=f((bM,ou)=>{"use strict";var{kConstruct:tn}=Xs(),{Cache:$s}=iu(),{webidl:EA}=gA(),{kEnumerableProperty:rn}=L(),Ai=class e{#A=new Map;constructor(){arguments[0]!==tn&&EA.illegalConstructor(),EA.util.markAsUncloneable(this)}async match(A,t={}){if(EA.brandCheck(this,e),EA.argumentLengthCheck(arguments,1,"CacheStorage.match"),A=EA.converters.RequestInfo(A),t=EA.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#A.has(t.cacheName)){let r=this.#A.get(t.cacheName);return await new $s(tn,r).match(A,t)}}else for(let r of this.#A.values()){let s=await new $s(tn,r).match(A,t);if(s!==void 0)return s}}async has(A){EA.brandCheck(this,e);let t="CacheStorage.has";return EA.argumentLengthCheck(arguments,1,t),A=EA.converters.DOMString(A,t,"cacheName"),this.#A.has(A)}async open(A){EA.brandCheck(this,e);let t="CacheStorage.open";if(EA.argumentLengthCheck(arguments,1,t),A=EA.converters.DOMString(A,t,"cacheName"),this.#A.has(A)){let n=this.#A.get(A);return new $s(tn,n)}let r=[];return this.#A.set(A,r),new $s(tn,r)}async delete(A){EA.brandCheck(this,e);let t="CacheStorage.delete";return EA.argumentLengthCheck(arguments,1,t),A=EA.converters.DOMString(A,t,"cacheName"),this.#A.delete(A)}async keys(){return EA.brandCheck(this,e),[...this.#A.keys()]}};Object.defineProperties(Ai.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:rn,has:rn,open:rn,delete:rn,keys:rn});ou.exports={CacheStorage:Ai}});var gu=f((NM,cu)=>{"use strict";cu.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Sc=f((SM,Iu)=>{"use strict";function TR(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 bc(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 Nc(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 Eu(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 Qu(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function YR(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&&!Qu(r))throw new Error("Invalid cookie domain");if(!Qu(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 xR=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],GR=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ei=Array(61).fill(0).map((e,A)=>A.toString().padStart(2,"0"));function Bu(e){return typeof e=="number"&&(e=new Date(e)),`${xR[e.getUTCDay()]}, ${ei[e.getUTCDate()]} ${GR[e.getUTCMonth()]} ${e.getUTCFullYear()} ${ei[e.getUTCHours()]}:${ei[e.getUTCMinutes()]}:${ei[e.getUTCSeconds()]} GMT`}function vR(e){if(e<0)throw new Error("Invalid cookie max-age")}function JR(e){if(e.name.length===0)return null;bc(e.name),Nc(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"&&(vR(e.maxAge),A.push(`Max-Age=${e.maxAge}`)),e.domain&&(YR(e.domain),A.push(`Domain=${e.domain}`)),e.path&&(Eu(e.path),A.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&A.push(`Expires=${Bu(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("=");bc(s),Nc(i),A.push(`${s}=${i}`)}return A.join("; ")}Iu.exports={isCTLExcludingHtab:TR,validateCookieName:bc,validateCookiePath:Eu,validateCookieValue:Nc,toIMFDate:Bu,stringify:JR}});var Cu=f((UM,lu)=>{"use strict";var{maxNameValuePairSize:HR,maxAttributeValueSize:VR}=gu(),{isCTLExcludingHtab:qR}=Sc(),{collectASequenceOfCodePointsFast:ti}=uA(),WR=d("node:assert");function OR(e){if(qR(e))return null;let A="",t="",r="",n="";if(e.includes(";")){let s={position:0};A=ti(";",e,s),t=e.slice(s.position)}else A=e;if(!A.includes("="))n=A;else{let s={position:0};r=ti("=",A,s),n=A.slice(s.position+1)}return r=r.trim(),n=n.trim(),r.length+n.length>HR?null:{name:r,value:n,...ir(t)}}function ir(e,A={}){if(e.length===0)return A;WR(e[0]===";"),e=e.slice(1);let t="";e.includes(";")?(t=ti(";",e,{position:0}),e=e.slice(t.length)):(t=e,e="");let r="",n="";if(t.includes("=")){let i={position:0};r=ti("=",t,i),n=t.slice(i.position+1)}else r=t;if(r=r.trim(),n=n.trim(),n.length>VR)return ir(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 ir(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 ir(e,A)}lu.exports={parseSetCookie:OR,parseUnparsedAttributes:ir}});var du=f((MM,hu)=>{"use strict";var{parseSetCookie:PR}=Cu(),{stringify:ZR}=Sc(),{webidl:x}=gA(),{Headers:ri}=it();function KR(e){x.argumentLengthCheck(arguments,1,"getCookies"),x.brandCheck(e,ri,{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 zR(e,A,t){x.brandCheck(e,ri,{strict:!1});let r="deleteCookie";x.argumentLengthCheck(arguments,2,r),A=x.converters.DOMString(A,r,"name"),t=x.converters.DeleteCookieAttributes(t),uu(e,{name:A,value:"",expires:new Date(0),...t})}function XR(e){x.argumentLengthCheck(arguments,1,"getSetCookies"),x.brandCheck(e,ri,{strict:!1});let A=e.getSetCookie();return A?A.map(t=>PR(t)):[]}function uu(e,A){x.argumentLengthCheck(arguments,2,"setCookie"),x.brandCheck(e,ri,{strict:!1}),A=x.converters.Cookie(A);let t=ZR(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)}]);hu.exports={getCookies:KR,deleteCookie:zR,getSetCookies:XR,setCookie:uu}});var ar=f((LM,wu)=>{"use strict";var{webidl:k}=gA(),{kEnumerableProperty:wA}=L(),{kConstruct:fu}=X(),{MessagePort:_R}=d("node:worker_threads"),or=class e extends Event{#A;constructor(A,t={}){if(A===fu){super(arguments[1],arguments[2]),k.util.markAsUncloneable(this);return}let r="MessageEvent constructor";k.argumentLengthCheck(arguments,1,r),A=k.converters.DOMString(A,r,"type"),t=k.converters.MessageEventInit(t,r,"eventInitDict"),super(A,t),this.#A=t,k.util.markAsUncloneable(this)}get data(){return k.brandCheck(this,e),this.#A.data}get origin(){return k.brandCheck(this,e),this.#A.origin}get lastEventId(){return k.brandCheck(this,e),this.#A.lastEventId}get source(){return k.brandCheck(this,e),this.#A.source}get ports(){return k.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 k.brandCheck(this,e),k.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(fu,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:jR}=or;delete or.createFastMessageEvent;var ni=class e extends Event{#A;constructor(A,t={}){let r="CloseEvent constructor";k.argumentLengthCheck(arguments,1,r),A=k.converters.DOMString(A,r,"type"),t=k.converters.CloseEventInit(t),super(A,t),this.#A=t,k.util.markAsUncloneable(this)}get wasClean(){return k.brandCheck(this,e),this.#A.wasClean}get code(){return k.brandCheck(this,e),this.#A.code}get reason(){return k.brandCheck(this,e),this.#A.reason}},si=class e extends Event{#A;constructor(A,t){let r="ErrorEvent constructor";k.argumentLengthCheck(arguments,1,r),super(A,t),k.util.markAsUncloneable(this),A=k.converters.DOMString(A,r,"type"),t=k.converters.ErrorEventInit(t??{}),this.#A=t}get message(){return k.brandCheck(this,e),this.#A.message}get filename(){return k.brandCheck(this,e),this.#A.filename}get lineno(){return k.brandCheck(this,e),this.#A.lineno}get colno(){return k.brandCheck(this,e),this.#A.colno}get error(){return k.brandCheck(this,e),this.#A.error}};Object.defineProperties(or.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:wA,origin:wA,lastEventId:wA,source:wA,ports:wA,initMessageEvent:wA});Object.defineProperties(ni.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:wA,code:wA,wasClean:wA});Object.defineProperties(si.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:wA,filename:wA,lineno:wA,colno:wA,error:wA});k.converters.MessagePort=k.interfaceConverter(_R);k.converters["sequence<MessagePort>"]=k.sequenceConverter(k.converters.MessagePort);var Uc=[{key:"bubbles",converter:k.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:k.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:k.converters.boolean,defaultValue:()=>!1}];k.converters.MessageEventInit=k.dictionaryConverter([...Uc,{key:"data",converter:k.converters.any,defaultValue:()=>null},{key:"origin",converter:k.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:k.converters.DOMString,defaultValue:()=>""},{key:"source",converter:k.nullableConverter(k.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:k.converters["sequence<MessagePort>"],defaultValue:()=>new Array(0)}]);k.converters.CloseEventInit=k.dictionaryConverter([...Uc,{key:"wasClean",converter:k.converters.boolean,defaultValue:()=>!1},{key:"code",converter:k.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:k.converters.USVString,defaultValue:()=>""}]);k.converters.ErrorEventInit=k.dictionaryConverter([...Uc,{key:"message",converter:k.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:k.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:k.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:k.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:k.converters.any}]);wu.exports={MessageEvent:or,CloseEvent:ni,ErrorEvent:si,createFastMessageEvent:jR}});var Et=f((TM,yu)=>{"use strict";var $R="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Ab={enumerable:!0,writable:!1,configurable:!1},eb={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},tb={NOT_SENT:0,PROCESSING:1,SENT:2},rb={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},nb=2**16-1,sb={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},ib=Buffer.allocUnsafe(0),ob={string:1,typedArray:2,arrayBuffer:3,blob:4};yu.exports={uid:$R,sentCloseFrameState:tb,staticPropertyDescriptors:Ab,states:eb,opcodes:rb,maxUnsigned16Bit:nb,parserStates:sb,emptyBuffer:ib,sendHints:ob}});var nn=f((YM,pu)=>{"use strict";pu.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 an=f((xM,Uu)=>{"use strict";var{kReadyState:sn,kController:ab,kResponse:cb,kBinaryType:gb,kWebSocketURL:Qb}=nn(),{states:on,opcodes:ve}=Et(),{ErrorEvent:Eb,createFastMessageEvent:Bb}=ar(),{isUtf8:Ib}=d("node:buffer"),{collectASequenceOfCodePointsFast:lb,removeHTTPWhitespace:Du}=uA();function Cb(e){return e[sn]===on.CONNECTING}function ub(e){return e[sn]===on.OPEN}function hb(e){return e[sn]===on.CLOSING}function db(e){return e[sn]===on.CLOSED}function Mc(e,A,t=(n,s)=>new Event(n,s),r={}){let n=t(e,r);A.dispatchEvent(n)}function fb(e,A,t){if(e[sn]!==on.OPEN)return;let r;if(A===ve.TEXT)try{r=Su(t)}catch{mu(e,"Received invalid UTF-8 in text frame.");return}else A===ve.BINARY&&(e[gb]==="blob"?r=new Blob([t]):r=wb(t));Mc("message",e,Bb,{origin:e[Qb].origin,data:r})}function wb(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function yb(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 pb(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function mu(e,A){let{[ab]:t,[cb]:r}=e;t.abort(),r?.socket&&!r.socket.destroyed&&r.socket.destroy(),A&&Mc("error",e,(n,s)=>new Eb(n,s),{error:new Error(A),message:A})}function Fu(e){return e===ve.CLOSE||e===ve.PING||e===ve.PONG}function Ru(e){return e===ve.CONTINUATION}function bu(e){return e===ve.TEXT||e===ve.BINARY}function Db(e){return bu(e)||Ru(e)||Fu(e)}function kb(e){let A={position:0},t=new Map;for(;A.position<e.length;){let r=lb(";",e,A),[n,s=""]=r.split("=");t.set(Du(n,!0,!1),Du(s,!1,!0)),A.position++}return t}function mb(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 Nu=typeof process.versions.icu=="string",ku=Nu?new TextDecoder("utf-8",{fatal:!0}):void 0,Su=Nu?ku.decode.bind(ku):function(e){if(Ib(e))return e.toString("utf-8");throw new TypeError("Invalid utf-8 received.")};Uu.exports={isConnecting:Cb,isEstablished:ub,isClosing:hb,isClosed:db,fireEvent:Mc,isValidSubprotocol:yb,isValidStatusCode:pb,failWebsocketConnection:mu,websocketMessageReceived:fb,utf8Decode:Su,isControlFrame:Fu,isContinuationFrame:Ru,isTextBinaryFrame:bu,isValidOpcode:Db,parseExtensions:kb,isValidClientWindowBits:mb}});var oi=f((GM,Mu)=>{"use strict";var{maxUnsigned16Bit:Fb}=Et(),ii=16386,Lc,cn=null,cr=ii;try{Lc=d("node:crypto")}catch{Lc={randomFillSync:function(A,t,r){for(let n=0;n<A.length;++n)A[n]=Math.random()*255|0;return A}}}function Rb(){return cr===ii&&(cr=0,Lc.randomFillSync(cn??=Buffer.allocUnsafe(ii),0,ii)),[cn[cr++],cn[cr++],cn[cr++],cn[cr++]]}var Tc=class{constructor(A){this.frameData=A}createFrame(A){let t=this.frameData,r=Rb(),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}};Mu.exports={WebsocketFrameSend:Tc}});var xc=f((vM,Ju)=>{"use strict";var{uid:bb,states:gn,sentCloseFrameState:ai,emptyBuffer:Nb,opcodes:Sb}=Et(),{kReadyState:Qn,kSentClose:ci,kByteParser:Tu,kReceivedClose:Lu,kResponse:Yu}=nn(),{fireEvent:Ub,failWebsocketConnection:Je,isClosing:Mb,isClosed:Lb,isEstablished:Tb,parseExtensions:Yb}=an(),{channels:gr}=ft(),{CloseEvent:xb}=ar(),{makeRequest:Gb}=tr(),{fetching:vb}=An(),{Headers:Jb,getHeadersList:Hb}=it(),{getDecodeSplit:Vb}=pA(),{WebsocketFrameSend:qb}=oi(),Yc;try{Yc=d("node:crypto")}catch{}function Wb(e,A,t,r,n,s){let i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";let o=Gb({urlList:[i],client:t,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(s.headers){let Q=Hb(new Jb(s.headers));o.headersList=Q}let a=Yc.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"),vb({request:o,useParallelQueue:!0,dispatcher:s.dispatcher,processResponse(Q){if(Q.type==="error"||Q.status!==101){Je(r,"Received network error or non-101 status code.");return}if(A.length!==0&&!Q.headersList.get("Sec-WebSocket-Protocol")){Je(r,"Server did not respond with sent protocols.");return}if(Q.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){Je(r,'Server did not set Upgrade header to "websocket".');return}if(Q.headersList.get("Connection")?.toLowerCase()!=="upgrade"){Je(r,'Server did not set Connection header to "upgrade".');return}let E=Q.headersList.get("Sec-WebSocket-Accept"),B=Yc.createHash("sha1").update(a+bb).digest("base64");if(E!==B){Je(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let I=Q.headersList.get("Sec-WebSocket-Extensions"),C;if(I!==null&&(C=Yb(I),!C.has("permessage-deflate"))){Je(r,"Sec-WebSocket-Extensions header does not match.");return}let u=Q.headersList.get("Sec-WebSocket-Protocol");if(u!==null&&!Vb("sec-websocket-protocol",o.headersList).includes(u)){Je(r,"Protocol was not set in the opening handshake.");return}Q.socket.on("data",xu),Q.socket.on("close",Gu),Q.socket.on("error",vu),gr.open.hasSubscribers&&gr.open.publish({address:Q.socket.address(),protocol:u,extensions:I}),n(Q,C)}})}function Ob(e,A,t,r){if(!(Mb(e)||Lb(e)))if(!Tb(e))Je(e,"Connection was closed before it was established."),e[Qn]=gn.CLOSING;else if(e[ci]===ai.NOT_SENT){e[ci]=ai.PROCESSING;let n=new qb;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=Nb,e[Yu].socket.write(n.createFrame(Sb.CLOSE)),e[ci]=ai.SENT,e[Qn]=gn.CLOSING}else e[Qn]=gn.CLOSING}function xu(e){this.ws[Tu].write(e)||this.pause()}function Gu(){let{ws:e}=this,{[Yu]:A}=e;A.socket.off("data",xu),A.socket.off("close",Gu),A.socket.off("error",vu);let t=e[ci]===ai.SENT&&e[Lu],r=1005,n="",s=e[Tu].closingInfo;s&&!s.error?(r=s.code??1005,n=s.reason):e[Lu]||(r=1006),e[Qn]=gn.CLOSED,Ub("close",e,(i,o)=>new xb(i,o),{wasClean:t,code:r,reason:n}),gr.close.hasSubscribers&&gr.close.publish({websocket:e,code:r,reason:n})}function vu(e){let{ws:A}=this;A[Qn]=gn.CLOSING,gr.socketError.hasSubscribers&&gr.socketError.publish(e),this.destroy()}Ju.exports={establishWebSocketConnection:Wb,closeWebSocketConnection:Ob}});var Vu=f((JM,Hu)=>{"use strict";var{createInflateRaw:Pb,Z_DEFAULT_WINDOWBITS:Zb}=d("node:zlib"),{isValidClientWindowBits:Kb}=an(),{MessageSizeExceededError:zb}=J(),Xb=Buffer.from([0,0,255,255]),gi=Symbol("kBuffer"),En=Symbol("kLength"),Gc=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=Zb;if(this.#e.serverMaxWindowBits){if(!Kb(this.#e.serverMaxWindowBits)){r(new Error("Invalid server_max_window_bits"));return}n=Number.parseInt(this.#e.serverMaxWindowBits)}try{this.#A=Pb({windowBits:n})}catch(s){r(s);return}this.#A[gi]=[],this.#A[En]=0,this.#A.on("data",s=>{if(this.#A[En]+=s.length,this.#t>0&&this.#A[En]>this.#t){r(new zb),this.#A.removeAllListeners(),this.#A=null;return}this.#A[gi].push(s)}),this.#A.on("error",s=>{this.#A=null,r(s)})}this.#A.write(A),t&&this.#A.write(Xb),this.#A.flush(()=>{if(!this.#A)return;let n=Buffer.concat(this.#A[gi],this.#A[En]);this.#A[gi].length=0,this.#A[En]=0,r(null,n)})}};Hu.exports={PerMessageDeflate:Gc}});var ju=f((HM,_u)=>{"use strict";var{Writable:_b}=d("node:stream"),jb=d("node:assert"),{parserStates:yA,opcodes:Qr,states:$b,emptyBuffer:qu,sentCloseFrameState:Wu}=Et(),{kReadyState:AN,kSentClose:Ou,kResponse:Pu,kReceivedClose:Zu}=nn(),{channels:Qi}=ft(),{isValidStatusCode:eN,isValidOpcode:tN,failWebsocketConnection:SA,websocketMessageReceived:Ku,utf8Decode:rN,isControlFrame:vc,isTextBinaryFrame:Jc,isContinuationFrame:nN}=an(),{WebsocketFrameSend:zu}=oi(),{closeWebSocketConnection:Xu}=xc(),{PerMessageDeflate:sN}=Vu(),{MessageSizeExceededError:Hc}=J();function Bn(e,A,t){Xu(e,A,t,Buffer.byteLength(t)),SA(e,t)}var Vc=class extends _b{#A=[];#e=0;#t=0;#s=!1;#n=yA.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 sN(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&&!vc(this.#r.opcode)&&this.#r.payloadLength+this.#e>this.#a?(Bn(this.ws,1009,"Payload size exceeds maximum allowed size"),!1):!0}run(A){for(;this.#s;)if(this.#n===yA.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!==Qr.CONTINUATION,o=t[1]&127,a=t[0]&64,c=t[0]&32,g=t[0]&16;if(!tN(n))return SA(this.ws,"Invalid opcode received"),A();if(s)return SA(this.ws,"Frame cannot be masked"),A();if(a!==0&&!this.#o.has("permessage-deflate")){SA(this.ws,"Expected RSV1 to be clear.");return}if(c!==0||g!==0){SA(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(i&&!Jc(n)){SA(this.ws,"Invalid frame type was fragmented.");return}if(Jc(n)&&this.#i.length>0){SA(this.ws,"Expected continuation frame");return}if(this.#r.fragmented&&i){SA(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((o>125||i)&&vc(n)){SA(this.ws,"Control frame either too large or fragmented");return}if(nN(n)&&this.#i.length===0&&!this.#r.compressed){SA(this.ws,"Unexpected continuation frame");return}if(o<=125){if(this.#r.payloadLength=o,this.#n=yA.READ_DATA,!this.#g())return}else o===126?this.#n=yA.PAYLOADLENGTH_16:o===127&&(this.#n=yA.PAYLOADLENGTH_64);Jc(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===yA.PAYLOADLENGTH_16){if(this.#t<2)return A();let t=this.consume(2);if(this.#r.payloadLength=t.readUInt16BE(0),this.#n=yA.READ_DATA,!this.#g())return}else if(this.#n===yA.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){SA(this.ws,"Received payload length > 2^31 bytes.");return}if(this.#r.payloadLength=n,this.#n=yA.READ_DATA,!this.#g())return}else if(this.#n===yA.READ_DATA){if(this.#t<this.#r.payloadLength)return A();let t=this.consume(this.#r.payloadLength);if(vc(this.#r.opcode))this.#s=this.parseControlFrame(t),this.#n=yA.INFO;else if(this.#r.compressed){this.#o.get("permessage-deflate").decompress(t,this.#r.fin,(r,n)=>{if(r){let s=r instanceof Hc?1009:1007;Bn(this.ws,s,r.message);return}if(this.writeFragments(n)){if(this.#a>0&&this.#e>this.#a){Bn(this.ws,1009,new Hc().message);return}if(!this.#r.fin){this.#n=yA.INFO,this.#s=!0,this.run(A);return}Ku(this.ws,this.#r.binaryType,this.consumeFragments()),this.#s=!0,this.#n=yA.INFO,this.run(A)}}),this.#s=!1;break}else{if(!this.writeFragments(t))return;if(this.#a>0&&this.#e>this.#a){Bn(this.ws,1009,new Hc().message);return}!this.#r.fragmented&&this.#r.fin&&Ku(this.ws,this.#r.binaryType,this.consumeFragments()),this.#n=yA.INFO}}}consume(A){if(A>this.#t)throw new Error("Called consume() before buffers satiated.");if(A===0)return qu;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?(Bn(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){jb(A.length!==1);let t;if(A.length>=2&&(t=A.readUInt16BE(0)),t!==void 0&&!eN(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=rN(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===Qr.CLOSE){if(r===1)return SA(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 Xu(this.ws,n,s,s.length),SA(this.ws,s),!1}if(this.ws[Ou]!==Wu.SENT){let n=qu;this.#r.closeInfo.code&&(n=Buffer.allocUnsafe(2),n.writeUInt16BE(this.#r.closeInfo.code,0));let s=new zu(n);this.ws[Pu].socket.write(s.createFrame(Qr.CLOSE),i=>{i||(this.ws[Ou]=Wu.SENT)})}return this.ws[AN]=$b.CLOSING,this.ws[Zu]=!0,!1}else if(t===Qr.PING){if(!this.ws[Zu]){let n=new zu(A);this.ws[Pu].socket.write(n.createFrame(Qr.PONG)),Qi.ping.hasSubscribers&&Qi.ping.publish({payload:A})}}else t===Qr.PONG&&Qi.pong.hasSubscribers&&Qi.pong.publish({payload:A});return!0}get closingInfo(){return this.#r.closeInfo}};_u.exports={ByteParser:Vc}});var rh=f((VM,th)=>{"use strict";var{WebsocketFrameSend:iN}=oi(),{opcodes:$u,sendHints:Er}=Et(),oN=Ko(),Ah=Buffer[Symbol.species],qc=class{#A=new oN;#e=!1;#t;constructor(A){this.#t=A}add(A,t,r){if(r!==Er.blob){let s=eh(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=eh(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 eh(e,A){return new iN(aN(e,A)).createFrame(A===Er.string?$u.TEXT:$u.BINARY)}function aN(e,A){switch(A){case Er.string:return Buffer.from(e);case Er.arrayBuffer:case Er.blob:return new Ah(e);case Er.typedArray:return new Ah(e.buffer,e.byteOffset,e.byteLength)}}th.exports={SendQueue:qc}});var Bh=f((qM,Eh)=>{"use strict";var{webidl:U}=gA(),{URLSerializer:cN}=uA(),{environmentSettingsObject:nh}=pA(),{staticPropertyDescriptors:He,states:In,sentCloseFrameState:gN,sendHints:Ei}=Et(),{kWebSocketURL:sh,kReadyState:Wc,kController:ih,kBinaryType:Bi,kResponse:oh,kSentClose:QN,kByteParser:EN}=nn(),{isConnecting:BN,isEstablished:IN,isClosing:lN,isValidSubprotocol:CN,fireEvent:ah}=an(),{establishWebSocketConnection:uN,closeWebSocketConnection:ch}=xc(),{ByteParser:hN}=ju(),{kEnumerableProperty:GA,isBlobLike:gh}=L(),{getGlobalDispatcher:dN}=Rs(),{types:Qh}=d("node:util"),{ErrorEvent:fN,CloseEvent:wN}=ar(),{SendQueue:yN}=rh(),UA=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=nh.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[sh]=new URL(i.href);let o=nh.settingsObject;this[ih]=uN(i,t,o,this,(a,c)=>this.#r(a,c),n),this[Wc]=e.CONNECTING,this[QN]=gN.NOT_SENT,this[Bi]="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");ch(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"),BN(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!IN(this)||lN(this)))if(typeof A=="string"){let r=Buffer.byteLength(A);this.#e+=r,this.#n.add(A,()=>{this.#e-=r},Ei.string)}else Qh.isArrayBuffer(A)?(this.#e+=A.byteLength,this.#n.add(A,()=>{this.#e-=A.byteLength},Ei.arrayBuffer)):ArrayBuffer.isView(A)?(this.#e+=A.byteLength,this.#n.add(A,()=>{this.#e-=A.byteLength},Ei.typedArray)):gh(A)&&(this.#e+=A.size,this.#n.add(A,()=>{this.#e-=A.size},Ei.blob))}get readyState(){return U.brandCheck(this,e),this[Wc]}get bufferedAmount(){return U.brandCheck(this,e),this.#e}get url(){return U.brandCheck(this,e),cN(this[sh])}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[Bi]}set binaryType(A){U.brandCheck(this,e),A!=="blob"&&A!=="arraybuffer"?this[Bi]="blob":this[Bi]=A}#r(A,t){this[oh]=A;let r=this[ih]?.dispatcher?.webSocketOptions,n=r?.maxFragments,s=r?.maxPayloadSize,i=new hN(this,t,{maxFragments:n,maxPayloadSize:s});i.on("drain",pN),i.on("error",DN.bind(this)),A.socket.ws=this,this[EN]=i,this.#n=new yN(A.socket),this[Wc]=In.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),ah("open",this)}};UA.CONNECTING=UA.prototype.CONNECTING=In.CONNECTING;UA.OPEN=UA.prototype.OPEN=In.OPEN;UA.CLOSING=UA.prototype.CLOSING=In.CLOSING;UA.CLOSED=UA.prototype.CLOSED=In.CLOSED;Object.defineProperties(UA.prototype,{CONNECTING:He,OPEN:He,CLOSING:He,CLOSED:He,url:GA,readyState:GA,bufferedAmount:GA,onopen:GA,onerror:GA,onclose:GA,close:GA,onmessage:GA,binaryType:GA,send:GA,extensions:GA,protocol:GA,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(UA,{CONNECTING:He,OPEN:He,CLOSING:He,CLOSED:He});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:()=>dN()},{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(gh(e))return U.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||Qh.isArrayBuffer(e))return U.converters.BufferSource(e)}return U.converters.USVString(e)};function pN(){this.ws[oh].socket.resume()}function DN(e){let A,t;e instanceof wN?(A=e.reason,t=e.code):A=e.message,ah("error",this,()=>new fN("error",{error:e,message:A})),ch(this,t)}Eh.exports={WebSocket:UA}});var Oc=f((WM,Ih)=>{"use strict";function kN(e){return e.indexOf("\0")===-1}function mN(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()})}Ih.exports={isValidLastEventId:kN,isASCIINumber:mN,delay:FN}});var hh=f((OM,uh)=>{"use strict";var{Transform:RN}=d("node:stream"),{isASCIINumber:lh,isValidLastEventId:Ch}=Oc(),ye=[239,187,191],Pc=10,Ii=13,bN=58,NN=32,Zc=class extends RN{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]===ye[0]){r();return}this.checkBOM=!1,r();return;case 2:if(this.buffer[0]===ye[0]&&this.buffer[1]===ye[1]){r();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===ye[0]&&this.buffer[1]===ye[1]&&this.buffer[2]===ye[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,r();return}this.checkBOM=!1;break;default:this.buffer[0]===ye[0]&&this.buffer[1]===ye[1]&&this.buffer[2]===ye[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]===Pc){this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.crlfCheck=!1;continue}this.crlfCheck=!1}if(this.buffer[this.pos]===Pc||this.buffer[this.pos]===Ii){this.buffer[this.pos]===Ii&&(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]===Pc||this.buffer[this.pos]===Ii){this.buffer[this.pos]===Ii&&(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(bN);if(r===0)return;let n="",s="";if(r!==-1){n=A.subarray(0,r).toString("utf8");let i=r+1;A[i]===NN&&++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]+=`
46
- ${s}`;break;case"retry":lh(s)&&(t[n]=s);break;case"id":Ch(s)&&(t[n]=s);break;case"event":s.length>0&&(t[n]=s);break}}processEvent(A){A.retry&&lh(A.retry)&&(this.state.reconnectionTime=parseInt(A.retry,10)),A.id&&Ch(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}}};uh.exports={EventSourceStream:Zc}});var mh=f((PM,kh)=>{"use strict";var{pipeline:SN}=d("node:stream"),{fetching:UN}=An(),{makeRequest:MN}=tr(),{webidl:pe}=gA(),{EventSourceStream:LN}=hh(),{parseMIMEType:TN}=uA(),{createFastMessageEvent:YN}=ar(),{isNetworkError:dh}=jr(),{delay:xN}=Oc(),{kEnumerableProperty:Bt}=L(),{environmentSettingsObject:fh}=pA(),wh=!1,yh=3e3,ln=0,ph=1,Cn=2,GN="anonymous",vN="use-credentials",Br=class e extends EventTarget{#A={open:null,error:null,message:null};#e=null;#t=!1;#s=ln;#n=null;#r=null;#i;#o;constructor(A,t={}){super(),pe.util.markAsUncloneable(this);let r="EventSource constructor";pe.argumentLengthCheck(arguments,1,r),wh||(wh=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),A=pe.converters.USVString(A,r,"url"),t=pe.converters.EventSourceInitDict(t,r,"eventSourceInitDict"),this.#i=t.dispatcher,this.#o={lastEventId:"",reconnectionTime:yh};let n=fh,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=GN;t.withCredentials&&(i=vN,this.#t=!0);let o={redirect:"follow",keepalive:!0,mode:"cors",credentials:i==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};o.client=fh.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=MN(o),this.#c()}get readyState(){return this.#s}get url(){return this.#e}get withCredentials(){return this.#t}#c(){if(this.#s===Cn)return;this.#s=ln;let A={request:this.#n,dispatcher:this.#i},t=r=>{dh(r)&&(this.dispatchEvent(new Event("error")),this.close()),this.#a()};A.processResponseEndOfBody=t,A.processResponse=r=>{if(dh(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?TN(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=ph,this.dispatchEvent(new Event("open")),this.#o.origin=r.urlList[r.urlList.length-1].origin;let o=new LN({eventSourceSettings:this.#o,push:a=>{this.dispatchEvent(YN(a.type,a.options))}});SN(r.body.stream,o,a=>{a?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#r=UN(A)}async#a(){this.#s!==Cn&&(this.#s=ln,this.dispatchEvent(new Event("error")),await xN(this.#o.reconnectionTime),this.#s===ln&&(this.#o.lastEventId.length&&this.#n.headersList.set("last-event-id",this.#o.lastEventId,!0),this.#c()))}close(){pe.brandCheck(this,e),this.#s!==Cn&&(this.#s=Cn,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:ln,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:ph,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:Cn,writable:!1}};Object.defineProperties(Br,Dh);Object.defineProperties(Br.prototype,Dh);Object.defineProperties(Br.prototype,{close:Bt,onerror:Bt,onmessage:Bt,onopen:Bt,readyState:Bt,url:Bt,withCredentials:Bt});pe.converters.EventSourceInitDict=pe.dictionaryConverter([{key:"withCredentials",converter:pe.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:pe.converters.any}]);kh.exports={EventSource:Br,defaultReconnectionTime:yh}});var Nh=f((ZM,S)=>{"use strict";var JN=Jt(),Fh=dr(),HN=Ht(),VN=DB(),qN=Vt(),WN=Ia(),ON=KB(),PN=eI(),Rh=J(),Ci=L(),{InvalidArgumentError:li}=Rh,Ir=HI(),ZN=wr(),KN=za(),zN=pl(),XN=ja(),_N=Ya(),jN=hs(),{getGlobalDispatcher:bh,setGlobalDispatcher:$N}=Rs(),AS=bs(),eS=os(),tS=as();Object.assign(Fh.prototype,Ir);S.exports.Dispatcher=Fh;S.exports.Client=JN;S.exports.Pool=HN;S.exports.BalancedPool=VN;S.exports.Agent=qN;S.exports.ProxyAgent=WN;S.exports.EnvHttpProxyAgent=ON;S.exports.RetryAgent=PN;S.exports.RetryHandler=jN;S.exports.DecoratorHandler=AS;S.exports.RedirectHandler=eS;S.exports.createRedirectInterceptor=tS;S.exports.interceptors={redirect:Nl(),retry:Ul(),dump:Ll(),dns:xl()};S.exports.buildConnector=ZN;S.exports.errors=Rh;S.exports.util={parseHeaders:Ci.parseHeaders,headerNameToString:Ci.headerNameToString};function un(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 li("invalid url");if(t!=null&&typeof t!="object")throw new li("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new li("invalid opts.path");let i=t.path;t.path.startsWith("/")||(i=`/${i}`),A=new URL(Ci.parseOrigin(A).origin+i)}else t||(t=typeof A=="object"?A:{}),A=Ci.parseURL(A);let{agent:n,dispatcher:s=bh()}=t;if(n)throw new li("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=$N;S.exports.getGlobalDispatcher=bh;var rS=An().fetch;S.exports.fetch=async function(A,t=void 0){try{return await rS(A,t)}catch(r){throw r&&typeof r=="object"&&Error.captureStackTrace(r),r}};S.exports.Headers=it().Headers;S.exports.Response=jr().Response;S.exports.Request=tr().Request;S.exports.FormData=Rr().FormData;S.exports.File=globalThis.File??d("node:buffer").File;S.exports.FileReader=$C().FileReader;var{setGlobalOrigin:nS,getGlobalOrigin:sS}=Io();S.exports.setGlobalOrigin=nS;S.exports.getGlobalOrigin=sS;var{CacheStorage:iS}=au(),{kConstruct:oS}=Xs();S.exports.caches=new iS(oS);var{deleteCookie:aS,getCookies:cS,getSetCookies:gS,setCookie:QS}=du();S.exports.deleteCookie=aS;S.exports.getCookies=cS;S.exports.getSetCookies=gS;S.exports.setCookie=QS;var{parseMIMEType:ES,serializeAMimeType:BS}=uA();S.exports.parseMIMEType=ES;S.exports.serializeAMimeType=BS;var{CloseEvent:IS,ErrorEvent:lS,MessageEvent:CS}=ar();S.exports.WebSocket=Bh().WebSocket;S.exports.CloseEvent=IS;S.exports.ErrorEvent=lS;S.exports.MessageEvent=CS;S.exports.request=un(Ir.request);S.exports.stream=un(Ir.stream);S.exports.pipeline=un(Ir.pipeline);S.exports.connect=un(Ir.connect);S.exports.upgrade=un(Ir.upgrade);S.exports.MockClient=KN;S.exports.MockPool=XN;S.exports.MockAgent=zN;S.exports.mockErrors=_N;var{EventSource:uS}=mh();S.exports.EventSource=uS});import{createHash as wS}from"node:crypto";import lr from"node:net";import hS from"node:dns";var dS=new Set(["localhost","metadata.google.internal","metadata.goog"]);function ui(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 Kc(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 zc(e){if(lr.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(lr.isIPv6(e)){let A=ui(e);if(!A)return!1;let t=ui("::ffff:0:0");return Kc(A,t,96)?zc([...A.slice(12)].join(".")):Kc(A,ui("2000::"),3)?![["2001::",23],["2001:db8::",32],["2001:10::",28],["2001:2::",48],["2002::",16],["3fff::",20]].some(([n,s])=>Kc(A,ui(n),s)):!1}return!1}function fS(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(dS.has(t)||t.endsWith(".localhost")||t.endsWith(".internal"))return{ok:!1,error:`refused internal host ${t}`};let r=lr.isIP(t);return r!==0&&!zc(t)?{ok:!1,error:`refused private address ${t}`}:{ok:!0,url:A,host:t,isLiteralIp:r!==0}}async function Sh(e,{lookupFn:A=hS.promises.lookup}={}){let t=fS(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=>!zc(n.address))?{ok:!1,error:`refused: ${t.host} resolves to a non-public address`}:{ok:!0,url:t.url,addresses:r}}async function Uh(){let e,A;try{let o=await Promise.resolve().then(()=>gd(Nh(),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||(lr.isIPv6(a.address)?6:4)})),s=o=>{let a=t(o);if(lr.isIP(a))return[{address:a,family:lr.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 yS=new Set([408,425,429,500,502,503,504]),Mh=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),pS=2,Lh=4e3,Yh=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],DS=new Set([301,302,303,307,308]),Th=3;function kS(e){let A=String(e||"").toLowerCase();return Yh.includes(A)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(A)}function mS(e){let A={};for(let[t,r]of Object.entries(e||{}))kS(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 RS(e,A){return new URL(String(e)).origin===new URL(String(A)).origin}var Xc=new Map;function bS(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([...Yh,...n])].sort().map(a=>`${a}=${r[a]??""}`).join(`
47
- `),o=wS("sha256").update(i).digest("hex").slice(0,32);return`${e} ${A} ${o}`}function NS(e,A){let t=Number(A);return Number.isFinite(t)&&t>0?Math.min(t*1e3,Lh):Math.min(250*2**e,Lh)+Math.floor(Math.random()*100)}var SS=e=>new Promise(A=>setTimeout(A,e));async function US(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<=Th;I+=1){let C=await Q(E,{method:t,headers:B,body:n,signal:a.signal,redirect:"manual"}),u=await C.text(),l=null;if(u)try{l=JSON.parse(u)}catch{l=null}if(DS.has(C.status)){if(t!=="GET"&&t!=="HEAD"){let p=new Error(`HTTP ${C.status} ${t} ${E} redirected non-idempotent request`);throw p.status=C.status,p.body=l??u.slice(0,300),p}if(I===Th)throw new Error(`HTTP redirect loop for ${e}`);let h=FS(C.headers?.get?.("location"),E);if(!RS(h,E)){let p=await Sh(h,i?{lookupFn:i}:{});if(!p.ok){let H=new Error(`HTTP redirect from ${E} ${p.error}`);throw H.status=C.status,H}B=mS(B),o&&p.addresses?.length&&(g||(g=await Uh()),g&&(g.pin(new URL(h).hostname,p.addresses[0].address,p.addresses[0].family),Q=g.fetch))}E=h;continue}if(!C.ok){let h=new Error(`HTTP ${C.status} ${t} ${E}`);throw h.status=C.status,h.retryAfter=C.headers?.get?.("retry-after")??null,h.body=l??u.slice(0,300),h}return l??u}throw new Error(`HTTP redirect loop for ${e}`)}finally{clearTimeout(c),g&&await g.close()}}async function hi(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):pS,a=A.lookupFn,c=!A.fetchImpl,g=async()=>{let C;for(let u=0;u<=o;u++)try{return await US(e,{fetchImpl:t,method:n,headers:s,body:i,timeoutMs:r,lookupFn:a,realFetch:c})}catch(l){C=l;let h=l?.status,D=l?.name==="AbortError",p=new Set([408,425,429]),H=h!=null?p.has(h)||yS.has(h)&&Mh.has(n):!D&&Mh.has(n);if(u===o||!H)throw l;await SS(NS(u,l?.retryAfter))}throw C};if(!(A.dedupe!==!1&&n==="GET"&&i==null))return g();let E=bS(n,e,s),B=Xc.get(E);if(B)return B;let I=g().finally(()=>Xc.delete(E));return Xc.set(E,I),I}var xh={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}},MS=new Map(Object.values(xh).map(e=>[e.chainId,e]));function Gh(e){return MS.get(Number(e))||null}function vh(e,A=process.env){let t=Gh(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 LS,getAddress as TS}from"ethers";var Jh=new LS(["function allowance(address owner,address spender) view returns (uint256)","function balanceOf(address account) view returns (uint256)"]);function Hh(e,A){try{return TS(e).toLowerCase()}catch{throw new Error(`${A} must be a valid EVM address`)}}var YS={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 xS(e,{rpcUrl:A,env:t=process.env}={}){if(A)return A;let r=vh(e,t);return r||YS[Number(e)]||null}var GS=/^(?:eth_(?:call|blocknumber|chainid|get[a-z0-9]+|feehistory|gasprice|maxpriorityfeepergas|syncing|protocolversion|estimategas|createaccesslist)|net_(?:version|listening|peercount)|web3_(?:clientversion|sha3))$/;function vS(e){let A=String(e||""),t=A.toLowerCase();if(A!==A.trim()||!/^[a-zA-Z0-9_]+$/.test(A)||!GS.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 oe(e,A,t=[],r={}){let n=String(A||"");vS(n);let s=xS(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 hi(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 Vh(e,A={}){let t=await oe(e,"eth_blockNumber",[],A);return parseInt(t,16)}async function qh(e,A,t={}){if(!A)throw new Error("rpcGetBalance requires address");let r=await oe(e,"eth_getBalance",[A,"latest"],t);return{chainId:Number(e),address:A,balanceWei:BigInt(r).toString(),balanceHex:r}}async function Wh(e={},A={}){let t=Number(e.chainId??A.chainId??1),r=Hh(e.token||e.tokenAddress,"token"),n=Hh(e.account||e.owner||e.address,"account"),s=Jh.encodeFunctionData("balanceOf",[n]),i=await oe(t,"eth_call",[{to:r,data:s},e.blockTag||"latest"],A),o=Jh.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 JS="https://api.dexscreener.com",oL=Object.freeze({1:"ethereum",10:"optimism",56:"bsc",137:"polygon",8453:"base",42161:"arbitrum",43114:"avalanche",999:"hyperevm",4663:"robinhood"});function HS(e={}){return(e.baseUrl||process.env.DEXSCREENER_API_URL||JS).replace(/\/$/,"")}async function Oh(e,A={}){if(!e)throw new Error("tokenAddress required");return hi(`${HS(A)}/latest/dex/tokens/${e}`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??12e3})}var hn=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"}),T=Object.freeze({PASS:"PASS",CAUTION:"CAUTION",FAIL:"FAIL",UNKNOWN:"UNKNOWN"}),VS=/^0x[0-9a-fA-F]{40}$/;function qS(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}VS.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))hn.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 WS(e){let{ok:A,errors:t,warnings:r}=qS(e);if(!A)throw new Error(`invalid scanner for ${e?.key??"<unknown>"}:
48
- - ${t.join(`
49
- - `)}`);let n=e.capabilities||{},s=hn.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:hn.filter(o=>!s.includes(o))}},supports(o){return s.includes(o)}};for(let o of hn)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 dn=new Map;function Ph(e){let A=WS(e);return dn.set(A.chainId,A),A}function _c(e){return dn.get(Number(e))||null}function di(){return[...dn.values()]}function Zh(){let e={};for(let A of dn.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:dn.size,capabilities:[...hn],chains:e}}var $c={getAmountsOut:"d06ca61f",swapExactTokensForTokens:"38ed1739",swapExactETHForTokens:"7ff36ab5"},vA=e=>BigInt(e).toString(16).padStart(64,"0"),fn=e=>e.slice(2).toLowerCase().padStart(64,"0");function OS(e,A){return`0x${$c.getAmountsOut}`+vA(e)+vA(64)+vA(A.length)+A.map(fn).join("")}function PS(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 jc(e,A="router"){return(e?.venues||[]).find(r=>r.kind===A)?.address??null}var Ag=100;function ZS(e,A){let t=Number(A);if(!Number.isFinite(t)||t<0)throw new Error("slippageBps must be a non-negative number");if(t>Ag)throw new Error(`slippageBps ${t} exceeds the ${Ag} 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 Kh(e){let{chainId:A,wrappedNative:t}=e;async function r(n,s,i,o){let a=await oe(A,"eth_call",[{to:n,data:OS(s,i)},"latest"],o);return PS(a?.result??a)}return{async quote({tokenIn:n,tokenOut:s,amountIn:i,path:o},a={}){let c=jc(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=jc(o.scanner),c=i||t;if(c&&String(n).toLowerCase()===String(c).toLowerCase())return{chainId:A,token:n,verdict:T.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:T.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:T.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:T.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:T.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)),C=T.PASS,u="round trip completes with expected fee/impact loss";return I<5e3?(C=T.FAIL,u=`round trip returns only ${(I/100).toFixed(2)}% -- punitive tax or no real liquidity`):I<9e3&&(C=T.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:C,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=jc(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],C=await this.quote({tokenIn:n,tokenOut:s,amountIn:i,path:I},Q);if(C.evidence!==G.LIVE)throw new Error(`cannot prepare without a live quote (${C.evidence}: ${C.reason??"no reason given"})`);let u=ZS(C.amountOut,a);if(u<=0n)throw new Error("computed minOut is zero -- refusing to prepare");let l=BigInt(Math.floor(Date.now()/1e3)+Number(c)),h=t&&I[0].toLowerCase()===t.toLowerCase()&&Q.useNative,D=h?`0x${$c.swapExactETHForTokens}`+vA(u)+vA(128)+fn(o)+vA(l)+vA(I.length)+I.map(fn).join(""):`0x${$c.swapExactTokensForTokens}`+vA(i)+vA(u)+vA(160)+fn(o)+vA(l)+vA(I.length)+I.map(fn).join("");return{unsigned:!0,signedBy:"user-wallet",chainId:A,tx:{to:B,data:D,value:h?`0x${BigInt(i).toString(16)}`:"0x0"},guard:{quotedOut:C.amountOut,minOut:u.toString(),slippageBps:a,maxSlippageBps:Ag,deadline:l.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 KS=[100,500,3e3,1e4],zh={quoteExactInputSingle:"c6a5026a",exactInputSingle:"04e45aaf"},It=e=>BigInt(e).toString(16).padStart(64,"0"),wn=e=>e.slice(2).toLowerCase().padStart(64,"0"),Xh=/^0x[0-9a-fA-F]{40}$/,tg=100;function zS(e,A){let t=Number(A);if(!Number.isFinite(t)||t<0)throw new Error("slippageBps must be a non-negative number");if(t>tg)throw new Error(`slippageBps ${t} exceeds the ${tg} 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 eg(e,A){return(e?.venues||[]).find(t=>t.kind===A)?.address??null}function _h(e){let{chainId:A,wrappedNative:t}=e;async function r({quoter:s,tokenIn:i,tokenOut:o,amountIn:a,fee:c},g){let Q=`0x${zh.quoteExactInputSingle}`+wn(i)+wn(o)+It(a)+It(c)+It(0),E=await oe(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 KS){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=eg(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(!Xh.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=eg(a.scanner,"quoter"),g=o||t;if(g&&String(s).toLowerCase()===String(g).toLowerCase())return{chainId:A,token:s,verdict:T.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:T.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:T.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:T.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)),C=T.PASS,u="round trip completes with expected fee/impact loss";return I<5e3?(C=T.FAIL,u=`round trip returns only ${(I/100).toFixed(2)}% -- punitive tax or no real liquidity`):I<9e3&&(C=T.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:C,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=eg(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(!Xh.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,C=zS(B.amountOut,c);if(C<=0n)throw new Error("computed minOut is zero -- refusing to prepare");let u=!!(Q.useNative||B.useNative)&&t&&String(s).toLowerCase()===String(t).toLowerCase(),l=`0x${zh.exactInputSingle}`+wn(s)+wn(i)+It(I)+wn(a)+It(o)+It(C)+It(0);return{unsigned:!0,signedBy:"user-wallet",chainId:A,venue:"uniswap-v3",tx:{to:E,data:l,value:u?String(o):"0x0"},guard:{quotedOut:B.amountOut,minOut:C.toString(),slippageBps:c,maxSlippageBps:tg,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 fi={decimals:"0x313ce567",symbol:"0x95d89b41",name:"0x06fdde03",totalSupply:"0x18160ddd",owner:"0x8da5cb5b"};function jh(e){if(!e||e==="0x")return null;try{return BigInt(e)}catch{return null}}function $h(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 XS(e){let{chainId:A}=e;async function t(r,n,s){return oe(A,"eth_call",[{to:r,data:n},"latest"],s)}return{async blockNumber(r={}){let n=await Vh(A,r);return{chainId:A,blockNumber:n?.blockNumber??n,evidence:G.LIVE}},async nativeBalance(r,n={}){let s=await qh(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 Wh({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,fi.decimals,n).catch(()=>null),t(r,fi.symbol,n).catch(()=>null),t(r,fi.name,n).catch(()=>null),t(r,fi.totalSupply,n).catch(()=>null)]),c=jh(s?.result??s),g=c!==null||i?.result||o?.result;return{chainId:A,address:r,decimals:c===null?null:Number(c),symbol:$h(i?.result??i),name:$h(o?.result??o),totalSupply:(jh(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 Oh(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 oe(A,"eth_getLogs",[B],a).catch(C=>({error:String(C?.message||C)}));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 C of I?.result??I??[])c.push(C)}return{chainId:A,fromBlock:r,toBlock:n,logs:c,complete:!0,chunks:g.length,evidence:G.LIVE}},async scoreRisk(r,n={}){let s=[],i=T.PASS,o=g=>{let Q={[T.PASS]:0,[T.CAUTION]:1,[T.UNKNOWN]:2,[T.FAIL]:3};Q[g]>Q[i]&&(i=g)},a=await this.resolveToken(r,n);a.evidence!==G.LIVE?(s.push({check:"erc20-metadata",result:T.UNKNOWN,detail:a.warning}),o(T.UNKNOWN)):s.push({check:"erc20-metadata",result:T.PASS,detail:`${a.symbol} / ${a.decimals}d`});let c=await this.resolvePools(r,n);if(c.evidence===G.UNAVAILABLE)s.push({check:"liquidity",result:T.UNKNOWN,detail:c.reason}),o(T.UNKNOWN);else if(!c.pools.length)s.push({check:"liquidity",result:T.FAIL,detail:"no pool with liquidity found"}),o(T.FAIL);else{let g=c.pools[0],Q=g.liquidityUsd??0;Q<5e3?(s.push({check:"liquidity",result:T.CAUTION,detail:`top pool only $${Q}`}),o(T.CAUTION)):s.push({check:"liquidity",result:T.PASS,detail:`$${Q} on ${g.dex}`}),g.createdAt&&Date.now()-g.createdAt<24*3600*1e3&&(s.push({check:"age",result:T.CAUTION,detail:"pool under 24h old"}),o(T.CAUTION))}if(typeof this.sellSimulation=="function"){let g=await this.sellSimulation({token:r,amountIn:(10n**16n).toString()},n).catch(Q=>({verdict:T.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:T.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(T.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 Ad(e){let t={...XS(e)},r=new Set((e.venues||[]).map(s=>s.kind));e.venueKind==="uniswap-v3"&&r.has("quoter")&&r.has("router")?Object.assign(t,_h({chainId:e.chainId,wrappedNative:e.wrappedNative})):e.venueKind==="uniswap-v2"&&r.has("router")&&Object.assign(t,Kh({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 _S=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 ed(){return _S.map(e=>Ph(Ad(e)))}ed();var[td,...rd]=process.argv.slice(2),wi=rd.includes("--json"),AA=rd.filter(e=>e!=="--json");function Cr(e){e||ae("missing <chain>");let A=_c(Number(e));if(A)return A;let t=di().find(r=>r.key===String(e).toLowerCase());if(t)return t;ae(`unknown chain "${e}". Known: ${di().map(r=>`${r.key}(${r.chainId})`).join(", ")}`)}function ae(e){console.error(`error: ${e}`),process.exit(1)}function lt(e){process.stdout.write(`${JSON.stringify(e,null,2)}
50
- `)}function jS(e,A){let t=String(A?.message||A);return/rpc|fetch|ECONN|timeout|provider/i.test(t)?`${t}
51
-
52
- This chain reads its RPC from: ${e.rpcEnv.join(" or ")}
53
- Set one, e.g.: export ${e.rpcEnv[0]}=https://...`:t}try{switch(td){case"chains":{let e=Zh();if(wi){lt(e);break}console.log(`${e.chainCount} chains registered
54
- `);let A=Object.entries(e.chains).map(([r,n])=>({chain:`${n.key} (${r})`,caps:n.supported.length,routing:n.failClosed?"fail-closed (no verified venue)":`${n.venueCount} venue(s)`})),t=Math.max(...A.map(r=>r.chain.length));for(let r of A)console.log(` ${r.chain.padEnd(t)} ${String(r.caps).padStart(2)} caps ${r.routing}`);console.log(`
8
+ This chain reads its RPC from: ${t.rpcEnv.join(" or ")}
9
+ Set one, e.g.: export ${t.rpcEnv[0]}=https://...`:n}try{switch(Be){case"chains":{let t=Ne();if(Y){$(t);break}console.log(`${t.chainCount} chains registered
10
+ `);let e=Object.entries(t.chains).map(([r,a])=>({chain:`${a.key} (${r})`,caps:a.supported.length,routing:a.failClosed?"fail-closed (no verified venue)":`${a.venueCount} venue(s)`})),n=Math.max(...e.map(r=>r.chain.length));for(let r of e)console.log(` ${r.chain.padEnd(n)} ${String(r.caps).padStart(2)} caps ${r.routing}`);console.log(`
55
11
  Every chain is read/research capable. Routing value requires a verified
56
- venue -- see CONTRIBUTING.md for the verification rule.`);break}case"head":{let e=Cr(AA[0]);lt(await e.blockNumber());break}case"token":{let e=Cr(AA[0]);AA[1]||ae("usage: oracle-scan token <chain> <address>"),lt(await e.resolveToken(AA[1]));break}case"pools":{let e=Cr(AA[0]);AA[1]||ae("usage: oracle-scan pools <chain> <address>");let A=await e.resolvePools(AA[1]);if(wi){lt(A);break}console.log(`evidence: ${A.evidence}`),A.reason&&console.log(`reason: ${A.reason}`);for(let t of A.pools.slice(0,10)){let r=t.liquidityUsd==null?"?":`$${Math.round(t.liquidityUsd).toLocaleString()}`;console.log(` ${t.dex.padEnd(12)} ${r.padStart(14)} ${t.pair}`)}A.pools.length||console.log(" (no pools with liquidity found)");break}case"risk":{let e=Cr(AA[0]);AA[1]||ae("usage: oracle-scan risk <chain> <address>");let A=await e.scoreRisk(AA[1]);if(wi){lt(A);break}console.log(`verdict: ${A.verdict}
57
- `);for(let t of A.checks)console.log(` ${t.result.padEnd(8)} ${t.check.padEnd(16)} ${t.detail??""}`);console.log(`
58
- ${A.note}`);break}case"quote":{let e=Cr(AA[0]);(!AA[1]||!AA[2])&&ae("usage: oracle-scan quote <chain> <tokenIn> <tokenOut> [amountIn]"),e.supports("quote")||ae(`${e.key} has no verified router, so quoting stays fail-closed.
59
- Add a venue with recorded provenance -- see docs/adding-a-chain.md.`);let A=AA[3]||(10n**18n).toString();lt(await e.quote({tokenIn:AA[1],tokenOut:AA[2],amountIn:A}));break}case"sell":{let e=Cr(AA[0]);AA[1]||ae("usage: oracle-scan sell <chain> <token> [amountIn]"),e.supports("sellSimulation")||ae(`${e.key} has no verified router, so sell simulation is unavailable.
60
- Without it, treat every token on this chain as unproven for exit.`);let A=AA[2]||(10n**16n).toString(),t=await e.sellSimulation({token:AA[1],amountIn:A});if(wi){lt(t);break}console.log(`verdict: ${t.verdict}`),console.log(`reason: ${t.reason??""}`),t.retentionBps!=null&&console.log(`retention: ${(t.retentionBps/100).toFixed(2)}%`),t.leg&&console.log(`failed at: ${t.leg} leg`),t.note&&console.log(`
61
- ${t.note}`);break}default:console.log(["oracle-scan -- chain scanner CLI",""," oracle-scan chains coverage matrix"," oracle-scan head <chain> current block"," oracle-scan token <chain> <address> ERC-20 identity"," oracle-scan pools <chain> <address> pools by liquidity"," oracle-scan risk <chain> <address> structural risk checks"," oracle-scan quote <chain> <tIn> <tOut> [amt] live exact-input quote"," oracle-scan sell <chain> <token> [amt] round-trip: can you exit?",""," <chain> is an id (8453) or key (base). --json for machine output."," quote/sell need a chain with a verified router (see: oracle-scan chains)."].join(`
62
- `)),process.exit(td?1:0)}}catch(e){let A=AA[0]?_c(Number(AA[0]))||di().find(t=>t.key===AA[0]):null;ae(A?jS(A,e):String(e?.message||e))}
12
+ venue -- see CONTRIBUTING.md for the verification rule.`);break}case"head":{let t=P(w[0]);$(await t.blockNumber());break}case"token":{let t=P(w[0]);w[1]||U("usage: oracle-scan token <chain> <address>"),$(await t.resolveToken(w[1]));break}case"pools":{let t=P(w[0]);w[1]||U("usage: oracle-scan pools <chain> <address>");let e=await t.resolvePools(w[1]);if(Y){$(e);break}console.log(`evidence: ${e.evidence}`),e.reason&&console.log(`reason: ${e.reason}`);for(let n of e.pools.slice(0,10)){let r=n.liquidityUsd==null?"?":`$${Math.round(n.liquidityUsd).toLocaleString()}`;console.log(` ${n.dex.padEnd(12)} ${r.padStart(14)} ${n.pair}`)}e.pools.length||console.log(" (no pools with liquidity found)");break}case"risk":{let t=P(w[0]);w[1]||U("usage: oracle-scan risk <chain> <address>");let e=await t.scoreRisk(w[1]);if(Y){$(e);break}console.log(`verdict: ${e.verdict}
13
+ `);for(let n of e.checks)console.log(` ${n.result.padEnd(8)} ${n.check.padEnd(16)} ${n.detail??""}`);console.log(`
14
+ ${e.note}`);break}case"quote":{let t=P(w[0]);(!w[1]||!w[2])&&U("usage: oracle-scan quote <chain> <tokenIn> <tokenOut> [amountIn]"),t.supports("quote")||U(`${t.key} has no verified router, so quoting stays fail-closed.
15
+ Add a venue with recorded provenance -- see docs/adding-a-chain.md.`);let e=w[3]||(10n**18n).toString();$(await t.quote({tokenIn:w[1],tokenOut:w[2],amountIn:e}));break}case"sell":{let t=P(w[0]);w[1]||U("usage: oracle-scan sell <chain> <token> [amountIn]"),t.supports("sellSimulation")||U(`${t.key} has no verified router, so sell simulation is unavailable.
16
+ Without it, treat every token on this chain as unproven for exit.`);let e=w[2]||(10n**16n).toString(),n=await t.sellSimulation({token:w[1],amountIn:e});if(Y){$(n);break}console.log(`verdict: ${n.verdict}`),console.log(`reason: ${n.reason??""}`),n.retentionBps!=null&&console.log(`retention: ${(n.retentionBps/100).toFixed(2)}%`),n.leg&&console.log(`failed at: ${n.leg} leg`),n.note&&console.log(`
17
+ ${n.note}`);break}default:console.log(["oracle-scan -- chain scanner CLI",""," oracle-scan chains coverage matrix"," oracle-scan head <chain> current block"," oracle-scan token <chain> <address> ERC-20 identity"," oracle-scan pools <chain> <address> pools by liquidity"," oracle-scan risk <chain> <address> structural risk checks"," oracle-scan quote <chain> <tIn> <tOut> [amt] live exact-input quote"," oracle-scan sell <chain> <token> [amt] round-trip: can you exit?",""," <chain> is an id (8453) or key (base). --json for machine output."," quote/sell need a chain with a verified router (see: oracle-scan chains)."].join(`
18
+ `)),process.exit(Be?1:0)}}catch(t){let e=w[0]?oe(Number(w[0]))||z().find(n=>n.key===w[0]):null;U(e?Et(e,t):String(t?.message||t))}