openpost 1.0.4

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 (116) hide show
  1. package/README.md +359 -0
  2. package/dist/auth/authHandler.d.ts +11 -0
  3. package/dist/auth/authHandler.d.ts.map +1 -0
  4. package/dist/builtInVault.d.ts +25 -0
  5. package/dist/builtInVault.d.ts.map +1 -0
  6. package/dist/cli/commands/config.d.ts +3 -0
  7. package/dist/cli/commands/config.d.ts.map +1 -0
  8. package/dist/cli/commands/crud.d.ts +3 -0
  9. package/dist/cli/commands/crud.d.ts.map +1 -0
  10. package/dist/cli/commands/envVar.d.ts +3 -0
  11. package/dist/cli/commands/envVar.d.ts.map +1 -0
  12. package/dist/cli/commands/importExport.d.ts +3 -0
  13. package/dist/cli/commands/importExport.d.ts.map +1 -0
  14. package/dist/cli/commands/license.d.ts +3 -0
  15. package/dist/cli/commands/license.d.ts.map +1 -0
  16. package/dist/cli/commands/list.d.ts +4 -0
  17. package/dist/cli/commands/list.d.ts.map +1 -0
  18. package/dist/cli/commands/proxyCookie.d.ts +3 -0
  19. package/dist/cli/commands/proxyCookie.d.ts.map +1 -0
  20. package/dist/cli/commands/run.d.ts +3 -0
  21. package/dist/cli/commands/run.d.ts.map +1 -0
  22. package/dist/cli/commands/servers.d.ts +3 -0
  23. package/dist/cli/commands/servers.d.ts.map +1 -0
  24. package/dist/cli/commands/vault.d.ts +3 -0
  25. package/dist/cli/commands/vault.d.ts.map +1 -0
  26. package/dist/cli/config.d.ts +23 -0
  27. package/dist/cli/config.d.ts.map +1 -0
  28. package/dist/cli/mcp-collection-stdio.d.ts +13 -0
  29. package/dist/cli/mcp-collection-stdio.d.ts.map +1 -0
  30. package/dist/cli/mcp-stdio.d.ts +13 -0
  31. package/dist/cli/mcp-stdio.d.ts.map +1 -0
  32. package/dist/cli/openpost.d.ts +64 -0
  33. package/dist/cli/openpost.d.ts.map +1 -0
  34. package/dist/cli/output.d.ts +29 -0
  35. package/dist/cli/output.d.ts.map +1 -0
  36. package/dist/cli-bundle.js +263 -0
  37. package/dist/container/serviceContainer.d.ts +35 -0
  38. package/dist/container/serviceContainer.d.ts.map +1 -0
  39. package/dist/cookieJar.d.ts +18 -0
  40. package/dist/cookieJar.d.ts.map +1 -0
  41. package/dist/curlParser.d.ts +11 -0
  42. package/dist/curlParser.d.ts.map +1 -0
  43. package/dist/errors/appError.d.ts +35 -0
  44. package/dist/errors/appError.d.ts.map +1 -0
  45. package/dist/events/typedEventBus.d.ts +9 -0
  46. package/dist/events/typedEventBus.d.ts.map +1 -0
  47. package/dist/httpClient.d.ts +15 -0
  48. package/dist/httpClient.d.ts.map +1 -0
  49. package/dist/index.d.ts +50 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.min.js +212 -0
  52. package/dist/inheritance.d.ts +9 -0
  53. package/dist/inheritance.d.ts.map +1 -0
  54. package/dist/interfaces/configProvider.d.ts +10 -0
  55. package/dist/interfaces/configProvider.d.ts.map +1 -0
  56. package/dist/interfaces/eventBus.d.ts +44 -0
  57. package/dist/interfaces/eventBus.d.ts.map +1 -0
  58. package/dist/interfaces/fileStore.d.ts +66 -0
  59. package/dist/interfaces/fileStore.d.ts.map +1 -0
  60. package/dist/interfaces/logger.d.ts +9 -0
  61. package/dist/interfaces/logger.d.ts.map +1 -0
  62. package/dist/interfaces/secretStorage.d.ts +7 -0
  63. package/dist/interfaces/secretStorage.d.ts.map +1 -0
  64. package/dist/interpolation.d.ts +10 -0
  65. package/dist/interpolation.d.ts.map +1 -0
  66. package/dist/licenseValidator.d.ts +18 -0
  67. package/dist/licenseValidator.d.ts.map +1 -0
  68. package/dist/managementMcpServer.d.ts +80 -0
  69. package/dist/managementMcpServer.d.ts.map +1 -0
  70. package/dist/mcpServer.d.ts +54 -0
  71. package/dist/mcpServer.d.ts.map +1 -0
  72. package/dist/mcpToolDefs.d.ts +13 -0
  73. package/dist/mcpToolDefs.d.ts.map +1 -0
  74. package/dist/mcpToolEngine.d.ts +22 -0
  75. package/dist/mcpToolEngine.d.ts.map +1 -0
  76. package/dist/mockServer.d.ts +117 -0
  77. package/dist/mockServer.d.ts.map +1 -0
  78. package/dist/mockServerManager.d.ts +219 -0
  79. package/dist/mockServerManager.d.ts.map +1 -0
  80. package/dist/openApiGenerator.d.ts +19 -0
  81. package/dist/openApiGenerator.d.ts.map +1 -0
  82. package/dist/openApiParser.d.ts +11 -0
  83. package/dist/openApiParser.d.ts.map +1 -0
  84. package/dist/openpost.d.ts +101 -0
  85. package/dist/openpost.d.ts.map +1 -0
  86. package/dist/routeMatcher.d.ts +59 -0
  87. package/dist/routeMatcher.d.ts.map +1 -0
  88. package/dist/scripting/sandbox.d.ts +14 -0
  89. package/dist/scripting/sandbox.d.ts.map +1 -0
  90. package/dist/serverRegistry.d.ts +22 -0
  91. package/dist/serverRegistry.d.ts.map +1 -0
  92. package/dist/services/collectionRunEngine.d.ts +24 -0
  93. package/dist/services/collectionRunEngine.d.ts.map +1 -0
  94. package/dist/services/collectionService.d.ts +22 -0
  95. package/dist/services/collectionService.d.ts.map +1 -0
  96. package/dist/services/environmentService.d.ts +16 -0
  97. package/dist/services/environmentService.d.ts.map +1 -0
  98. package/dist/services/historyService.d.ts +16 -0
  99. package/dist/services/historyService.d.ts.map +1 -0
  100. package/dist/services/requestEngine.d.ts +49 -0
  101. package/dist/services/requestEngine.d.ts.map +1 -0
  102. package/dist/services/settingsService.d.ts +21 -0
  103. package/dist/services/settingsService.d.ts.map +1 -0
  104. package/dist/services/snapshotEngine.d.ts +23 -0
  105. package/dist/services/snapshotEngine.d.ts.map +1 -0
  106. package/dist/storage/standaloneFileStore.d.ts +109 -0
  107. package/dist/storage/standaloneFileStore.d.ts.map +1 -0
  108. package/dist/stripComments.d.ts +3 -0
  109. package/dist/stripComments.d.ts.map +1 -0
  110. package/dist/testRunner.d.ts +4 -0
  111. package/dist/testRunner.d.ts.map +1 -0
  112. package/dist/types.d.ts +1011 -0
  113. package/dist/types.d.ts.map +1 -0
  114. package/dist/vaultManager.d.ts +50 -0
  115. package/dist/vaultManager.d.ts.map +1 -0
  116. package/package.json +56 -0
@@ -0,0 +1,212 @@
1
+ "use strict";var v0=Object.create;var bo=Object.defineProperty;var T0=Object.getOwnPropertyDescriptor;var L0=Object.getOwnPropertyNames;var x0=Object.getPrototypeOf,H0=Object.prototype.hasOwnProperty;var Y0=(t,e)=>()=>(t&&(e=t(t=0)),e);var b=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),jh=(t,e)=>{for(var A in e)bo(t,A,{get:e[A],enumerable:!0})},Zh=(t,e,A,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of L0(e))!H0.call(t,n)&&n!==A&&bo(t,n,{get:()=>e[n],enumerable:!(r=T0(e,n))||r.enumerable});return t};var oe=(t,e,A)=>(A=t!=null?v0(x0(t)):{},Zh(e||!t||!t.__esModule?bo(A,"default",{value:t,enumerable:!0}):A,t)),Xh=t=>Zh(bo({},"__esModule",{value:!0}),t);var le=b((sV,zh)=>{"use strict";zh.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"),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"),kHTTP2InitialWindowSize:Symbol("http2 initial window size"),kHTTP2ConnectionWindowSize:Symbol("http2 connection window size"),kEnableConnectProtocol:Symbol("http2session connect protocol"),kRemoteSettings:Symbol("http2session remote settings"),kHTTP2Stream:Symbol("http2session client stream"),kPingInterval:Symbol("ping interval"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent"),kSocks5ProxyAgent:Symbol("socks5 proxy agent")}});var tl=b((oV,Ad)=>{"use strict";var zr=0,Za=1e3,Xa=(Za>>1)-1,SA,Ka=Symbol("kFastTimer"),sA=[],za=-2,$a=-1,ed=0,$h=1;function el(){zr+=Xa;let t=0,e=sA.length;for(;t<e;){let A=sA[t];A._state===ed?(A._idleStart=zr-Xa,A._state=$h):A._state===$h&&zr>=A._idleStart+A._idleTimeout&&(A._state=$a,A._idleStart=-1,A._onTimeout(A._timerArg)),A._state===$a?(A._state=za,--e!==0&&(sA[t]=sA[e])):++t}sA.length=e,sA.length!==0&&td()}function td(){SA?.refresh?SA.refresh():(clearTimeout(SA),SA=setTimeout(el,Xa),SA?.unref())}var No=class{[Ka]=!0;_state=za;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(e,A,r){this._onTimeout=e,this._idleTimeout=A,this._timerArg=r,this.refresh()}refresh(){this._state===za&&sA.push(this),(!SA||sA.length===1)&&td(),this._state=ed}clear(){this._state=$a,this._idleStart=-1}};Ad.exports={setTimeout(t,e,A){return e<=Za?setTimeout(t,e,A):new No(t,e,A)},clearTimeout(t){t[Ka]?t.clear():clearTimeout(t)},setFastTimeout(t,e,A){return new No(t,e,A)},clearFastTimeout(t){t.clear()},now(){return zr},tick(t=0){zr+=t-Za+1,el(),el()},reset(){zr=0,sA.length=0,clearTimeout(SA),SA=null},kFastTimer:Ka}});var W=b((iV,Rd)=>{"use strict";var rd=Symbol.for("undici.error.UND_ERR"),ue=class extends Error{constructor(e,A){super(e,A),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](e){return e&&e[rd]===!0}get[rd](){return!0}},nd=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),Al=class extends ue{constructor(e){super(e),this.name="ConnectTimeoutError",this.message=e||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](e){return e&&e[nd]===!0}get[nd](){return!0}},sd=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),rl=class extends ue{constructor(e){super(e),this.name="HeadersTimeoutError",this.message=e||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](e){return e&&e[sd]===!0}get[sd](){return!0}},od=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),nl=class extends ue{constructor(e){super(e),this.name="HeadersOverflowError",this.message=e||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](e){return e&&e[od]===!0}get[od](){return!0}},id=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),sl=class extends ue{constructor(e){super(e),this.name="BodyTimeoutError",this.message=e||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](e){return e&&e[id]===!0}get[id](){return!0}},ad=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),ol=class extends ue{constructor(e){super(e),this.name="InvalidArgumentError",this.message=e||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](e){return e&&e[ad]===!0}get[ad](){return!0}},ld=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),il=class extends ue{constructor(e){super(e),this.name="InvalidReturnValueError",this.message=e||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](e){return e&&e[ld]===!0}get[ld](){return!0}},cd=Symbol.for("undici.error.UND_ERR_ABORT"),ko=class extends ue{constructor(e){super(e),this.name="AbortError",this.message=e||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](e){return e&&e[cd]===!0}get[cd](){return!0}},ud=Symbol.for("undici.error.UND_ERR_ABORTED"),al=class extends ko{constructor(e){super(e),this.name="AbortError",this.message=e||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](e){return e&&e[ud]===!0}get[ud](){return!0}},gd=Symbol.for("undici.error.UND_ERR_INFO"),ll=class extends ue{constructor(e){super(e),this.name="InformationalError",this.message=e||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](e){return e&&e[gd]===!0}get[gd](){return!0}},hd=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),cl=class extends ue{constructor(e){super(e),this.name="RequestContentLengthMismatchError",this.message=e||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](e){return e&&e[hd]===!0}get[hd](){return!0}},dd=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),ul=class extends ue{constructor(e){super(e),this.name="ResponseContentLengthMismatchError",this.message=e||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](e){return e&&e[dd]===!0}get[dd](){return!0}},Ed=Symbol.for("undici.error.UND_ERR_DESTROYED"),gl=class extends ue{constructor(e){super(e),this.name="ClientDestroyedError",this.message=e||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](e){return e&&e[Ed]===!0}get[Ed](){return!0}},fd=Symbol.for("undici.error.UND_ERR_CLOSED"),hl=class extends ue{constructor(e){super(e),this.name="ClientClosedError",this.message=e||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](e){return e&&e[fd]===!0}get[fd](){return!0}},Id=Symbol.for("undici.error.UND_ERR_SOCKET"),dl=class extends ue{constructor(e,A){super(e),this.name="SocketError",this.message=e||"Socket error",this.code="UND_ERR_SOCKET",this.socket=A}static[Symbol.hasInstance](e){return e&&e[Id]===!0}get[Id](){return!0}},Cd=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),El=class extends ue{constructor(e){super(e),this.name="NotSupportedError",this.message=e||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](e){return e&&e[Cd]===!0}get[Cd](){return!0}},Qd=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),fl=class extends ue{constructor(e){super(e),this.name="MissingUpstreamError",this.message=e||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](e){return e&&e[Qd]===!0}get[Qd](){return!0}},Bd=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),Il=class extends Error{constructor(e,A,r){super(e),this.name="HTTPParserError",this.code=A?`HPE_${A}`:void 0,this.data=r?r.toString():void 0}static[Symbol.hasInstance](e){return e&&e[Bd]===!0}get[Bd](){return!0}},pd=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),Cl=class extends ue{constructor(e){super(e),this.name="ResponseExceededMaxSizeError",this.message=e||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](e){return e&&e[pd]===!0}get[pd](){return!0}},yd=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),Ql=class extends ue{constructor(e,A,{headers:r,data:n}){super(e),this.name="RequestRetryError",this.message=e||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=A,this.data=n,this.headers=r}static[Symbol.hasInstance](e){return e&&e[yd]===!0}get[yd](){return!0}},md=Symbol.for("undici.error.UND_ERR_RESPONSE"),Bl=class extends ue{constructor(e,A,{headers:r,body:n}){super(e),this.name="ResponseError",this.message=e||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=A,this.body=n,this.headers=r}static[Symbol.hasInstance](e){return e&&e[md]===!0}get[md](){return!0}},Sd=Symbol.for("undici.error.UND_ERR_PRX_TLS"),pl=class extends ue{constructor(e,A,r={}){super(A,{cause:e,...r}),this.name="SecureProxyConnectionError",this.message=A||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=e}static[Symbol.hasInstance](e){return e&&e[Sd]===!0}get[Sd](){return!0}},Dd=Symbol.for("undici.error.UND_ERR_MAX_ORIGINS_REACHED"),yl=class extends ue{constructor(e){super(e),this.name="MaxOriginsReachedError",this.message=e||"Maximum allowed origins reached",this.code="UND_ERR_MAX_ORIGINS_REACHED"}static[Symbol.hasInstance](e){return e&&e[Dd]===!0}get[Dd](){return!0}},ml=class extends ue{constructor(e,A){super(e),this.name="Socks5ProxyError",this.message=e||"SOCKS5 proxy error",this.code=A||"UND_ERR_SOCKS5"}},wd=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),Sl=class extends ue{constructor(e){super(e),this.name="MessageSizeExceededError",this.message=e||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](e){return e&&e[wd]===!0}get[wd](){return!0}};Rd.exports={AbortError:ko,HTTPParserError:Il,UndiciError:ue,HeadersTimeoutError:rl,HeadersOverflowError:nl,BodyTimeoutError:sl,RequestContentLengthMismatchError:cl,ConnectTimeoutError:Al,InvalidArgumentError:ol,InvalidReturnValueError:il,RequestAbortedError:al,ClientDestroyedError:gl,ClientClosedError:hl,InformationalError:ll,SocketError:dl,NotSupportedError:El,ResponseContentLengthMismatchError:ul,BalancedPoolMissingUpstreamError:fl,ResponseExceededMaxSizeError:Cl,RequestRetryError:Ql,ResponseError:Bl,SecureProxyConnectionError:pl,MaxOriginsReachedError:yl,Socks5ProxyError:ml,MessageSizeExceededError:Sl}});var Uo=b((aV,Nd)=>{"use strict";var Dl=["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"],Fo={};Object.setPrototypeOf(Fo,null);var bd={};Object.setPrototypeOf(bd,null);function V0(t){let e=bd[t];return e===void 0&&(e=Buffer.from(t)),e}for(let t=0;t<Dl.length;++t){let e=Dl[t],A=e.toLowerCase();Fo[e]=Fo[A]=A}Nd.exports={wellknownHeaderNames:Dl,headerNameLowerCasedRecord:Fo,getHeaderNameAsBuffer:V0}});var Md=b((lV,Ud)=>{"use strict";var{wellknownHeaderNames:kd,headerNameLowerCasedRecord:q0}=Uo(),wl=class t{value=null;left=null;middle=null;right=null;code;constructor(e,A,r){if(r===void 0||r>=e.length)throw new TypeError("Unreachable");if((this.code=e.charCodeAt(r))>127)throw new TypeError("key must be ascii string");e.length!==++r?this.middle=new t(e,A,r):this.value=A}add(e,A){let r=e.length;if(r===0)throw new TypeError("Unreachable");let n=0,s=this;for(;;){let o=e.charCodeAt(n);if(o>127)throw new TypeError("key must be ascii string");if(s.code===o)if(r===++n){s.value=A;break}else if(s.middle!==null)s=s.middle;else{s.middle=new t(e,A,n);break}else if(s.code<o)if(s.left!==null)s=s.left;else{s.left=new t(e,A,n);break}else if(s.right!==null)s=s.right;else{s.right=new t(e,A,n);break}}}search(e){let A=e.length,r=0,n=this;for(;n!==null&&r<A;){let s=e[r];for(s<=90&&s>=65&&(s|=32);n!==null;){if(s===n.code){if(A===++r)return n;n=n.middle;break}n=n.code<s?n.left:n.right}}return null}},Mo=class{node=null;insert(e,A){this.node===null?this.node=new wl(e,A,0):this.node.add(e,A)}lookup(e){return this.node?.search(e)?.value??null}},Fd=new Mo;for(let t=0;t<kd.length;++t){let e=q0[kd[t]];Fd.insert(e,e)}Ud.exports={TernarySearchTree:Mo,tree:Fd}});var Z=b((cV,eE)=>{"use strict";var is=require("node:assert"),{kDestroyed:xd,kBodyUsed:$r,kListeners:To,kBody:vd}=le(),{IncomingMessage:J0}=require("node:http"),Hd=require("node:stream"),P0=require("node:net"),{stringify:W0}=require("node:querystring"),{EventEmitter:_0}=require("node:events"),vo=tl(),{InvalidArgumentError:ke,ConnectTimeoutError:j0}=W(),{headerNameLowerCasedRecord:Z0}=Uo(),{tree:Yd}=Md(),[X0,K0]=process.versions.node.split(".",2).map(t=>Number(t)),xo=class{constructor(e){this[vd]=e,this[$r]=!1}async*[Symbol.asyncIterator](){is(!this[$r],"disturbed"),this[$r]=!0,yield*this[vd]}};function Td(){}function z0(t){return Ho(t)?(Pd(t)===0&&t.on("data",function(){is(!1)}),typeof t.readableDidRead!="boolean"&&(t[$r]=!1,_0.prototype.on.call(t,"data",function(){this[$r]=!0})),t):t&&typeof t.pipeTo=="function"?new xo(t):t&&Xd(t)?t:t&&typeof t!="string"&&!ArrayBuffer.isView(t)&&Jd(t)?new xo(t):t}function Ho(t){return t&&typeof t=="object"&&typeof t.pipe=="function"&&typeof t.on=="function"}function Od(t){if(t===null)return!1;if(t instanceof Blob)return!0;if(typeof t!="object")return!1;{let e=t[Symbol.toStringTag];return(e==="Blob"||e==="File")&&("stream"in t&&typeof t.stream=="function"||"arrayBuffer"in t&&typeof t.arrayBuffer=="function")}}function Gd(t){return t.includes("?")||t.includes("#")}function $0(t,e){if(Gd(t))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let A=W0(e);return A&&(t+="?"+A),t}function Vd(t){let e=parseInt(t,10);return e===Number(t)&&e>=0&&e<=65535}function Lo(t){return t!=null&&t[0]==="h"&&t[1]==="t"&&t[2]==="t"&&t[3]==="p"&&(t[4]===":"||t[4]==="s"&&t[5]===":")}function qd(t){if(typeof t=="string"){if(t=new URL(t),!Lo(t.origin||t.protocol))throw new ke("Invalid URL protocol: the URL must start with `http:` or `https:`.");return t}if(!t||typeof t!="object")throw new ke("Invalid URL: The URL argument must be a non-null object.");if(!(t instanceof URL)){if(t.port!=null&&t.port!==""&&Vd(t.port)===!1)throw new ke("Invalid URL: port must be a valid integer or a string representation of an integer.");if(t.path!=null&&typeof t.path!="string")throw new ke("Invalid URL path: the path must be a string or null/undefined.");if(t.pathname!=null&&typeof t.pathname!="string")throw new ke("Invalid URL pathname: the pathname must be a string or null/undefined.");if(t.hostname!=null&&typeof t.hostname!="string")throw new ke("Invalid URL hostname: the hostname must be a string or null/undefined.");if(t.origin!=null&&typeof t.origin!="string")throw new ke("Invalid URL origin: the origin must be a string or null/undefined.");if(!Lo(t.origin||t.protocol))throw new ke("Invalid URL protocol: the URL must start with `http:` or `https:`.");let e=t.port!=null?t.port:t.protocol==="https:"?443:80,A=t.origin!=null?t.origin:`${t.protocol||""}//${t.hostname||""}:${e}`,r=t.path!=null?t.path:`${t.pathname||""}${t.search||""}`;return A[A.length-1]==="/"&&(A=A.slice(0,A.length-1)),r&&r[0]!=="/"&&(r=`/${r}`),new URL(`${A}${r}`)}if(!Lo(t.origin||t.protocol))throw new ke("Invalid URL protocol: the URL must start with `http:` or `https:`.");return t}function eS(t){if(t=qd(t),t.pathname!=="/"||t.search||t.hash)throw new ke("invalid url");return t}function tS(t){if(t[0]==="["){let A=t.indexOf("]");return is(A!==-1),t.substring(1,A)}let e=t.indexOf(":");return e===-1?t:t.substring(0,e)}function AS(t){if(!t)return null;is(typeof t=="string");let e=tS(t);return P0.isIP(e)?"":e}function rS(t){return JSON.parse(JSON.stringify(t))}function nS(t){return t!=null&&typeof t[Symbol.asyncIterator]=="function"}function Jd(t){return t!=null&&(typeof t[Symbol.iterator]=="function"||typeof t[Symbol.asyncIterator]=="function")}function sS(t){let e=Object.getPrototypeOf(t);return Object.prototype.hasOwnProperty.call(t,Symbol.iterator)||e!=null&&e!==Object.prototype&&typeof t[Symbol.iterator]=="function"}function Pd(t){if(t==null)return 0;if(Ho(t)){let e=t._readableState;return e&&e.objectMode===!1&&e.ended===!0&&Number.isFinite(e.length)?e.length:null}else{if(Od(t))return t.size!=null?t.size:null;if(Zd(t))return t.byteLength}return null}function Wd(t){return t&&!!(t.destroyed||t[xd]||Hd.isDestroyed?.(t))}function _d(t,e){t==null||!Ho(t)||Wd(t)||(typeof t.destroy=="function"?(Object.getPrototypeOf(t).constructor===J0&&(t.socket=null),t.destroy(e)):e&&queueMicrotask(()=>{t.emit("error",e)}),t.destroyed!==!0&&(t[xd]=!0))}var oS=/timeout=(\d+)/;function iS(t){let e=t.match(oS);return e?parseInt(e[1],10)*1e3:null}function jd(t){return typeof t=="string"?Z0[t]??t.toLowerCase():Yd.lookup(t)??t.toString("latin1").toLowerCase()}function aS(t){return Yd.lookup(t)??t.toString("latin1").toLowerCase()}function lS(t,e){e===void 0&&(e={});for(let A=0;A<t.length;A+=2){let r=jd(t[A]),n=e[r];if(n!==void 0)if(Object.hasOwn(e,r))typeof n=="string"&&(n=[n],e[r]=n),n.push(t[A+1].toString("latin1"));else{let s=typeof t[A+1]=="string"?t[A+1]:Array.isArray(t[A+1])?t[A+1].map(o=>o.toString("latin1")):t[A+1].toString("latin1");r==="__proto__"?Object.defineProperty(e,r,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[r]=s}else{let s=typeof t[A+1]=="string"?t[A+1]:Array.isArray(t[A+1])?t[A+1].map(o=>o.toString("latin1")):t[A+1].toString("latin1");e[r]=s}}return e}function cS(t){let e=t.length,A=new Array(e),r,n;for(let s=0;s<e;s+=2)r=t[s],n=t[s+1],typeof r!="string"&&(r=r.toString()),typeof n!="string"&&(n=n.toString("latin1")),A[s]=r,A[s+1]=n;return A}function uS(t){if(!Array.isArray(t))throw new TypeError("expected headers to be an array");return t.map(e=>Buffer.from(e))}function Zd(t){return t instanceof Uint8Array||Buffer.isBuffer(t)}function gS(t,e,A){if(!t||typeof t!="object")throw new ke("handler must be an object");if(typeof t.onRequestStart!="function"){if(typeof t.onConnect!="function")throw new ke("invalid onConnect method");if(typeof t.onError!="function")throw new ke("invalid onError method");if(typeof t.onBodySent!="function"&&t.onBodySent!==void 0)throw new ke("invalid onBodySent method");if(A||e==="CONNECT"){if(typeof t.onUpgrade!="function")throw new ke("invalid onUpgrade method")}else{if(typeof t.onHeaders!="function")throw new ke("invalid onHeaders method");if(typeof t.onData!="function")throw new ke("invalid onData method");if(typeof t.onComplete!="function")throw new ke("invalid onComplete method")}}}function hS(t){return!!(t&&(Hd.isDisturbed(t)||t[$r]))}function dS(t){return{localAddress:t.localAddress,localPort:t.localPort,remoteAddress:t.remoteAddress,remotePort:t.remotePort,remoteFamily:t.remoteFamily,timeout:t.timeout,bytesWritten:t.bytesWritten,bytesRead:t.bytesRead}}function ES(t){let e;return new ReadableStream({start(){e=t[Symbol.asyncIterator]()},pull(A){return e.next().then(({done:r,value:n})=>{if(r)return queueMicrotask(()=>{A.close(),A.byobRequest?.respond(0)});{let s=Buffer.isBuffer(n)?n:Buffer.from(n);return s.byteLength?A.enqueue(new Uint8Array(s)):this.pull(A)}})},cancel(){return e.return()},type:"bytes"})}function Xd(t){return t&&typeof t=="object"&&typeof t.append=="function"&&typeof t.delete=="function"&&typeof t.get=="function"&&typeof t.getAll=="function"&&typeof t.has=="function"&&typeof t.set=="function"&&t[Symbol.toStringTag]==="FormData"}function fS(t,e){return"addEventListener"in t?(t.addEventListener("abort",e,{once:!0}),()=>t.removeEventListener("abort",e)):(t.once("abort",e),()=>t.removeListener("abort",e))}var Kd=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function IS(t){return Kd[t]===1}var CS=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;function QS(t){if(t.length>=12)return CS.test(t);if(t.length===0)return!1;for(let e=0;e<t.length;e++)if(Kd[t.charCodeAt(e)]!==1)return!1;return!0}var BS=/[^\t\x20-\x7e\x80-\xff]/;function pS(t){return!BS.test(t)}var yS=/^bytes (\d+)-(\d+)\/(\d+)?$/;function mS(t){if(t==null||t==="")return{start:0,end:null,size:null};let e=t?t.match(yS):null;return e?{start:parseInt(e[1]),end:e[2]?parseInt(e[2]):null,size:e[3]?parseInt(e[3]):null}:null}function SS(t,e,A){return(t[To]??=[]).push([e,A]),t.on(e,A),t}function DS(t){if(t[To]!=null){for(let[e,A]of t[To])t.removeListener(e,A);t[To]=null}return t}function wS(t,e,A){try{e.onError(A),is(e.aborted)}catch(r){t.emit("error",r)}}var RS=process.platform==="win32"?(t,e)=>{if(!e.timeout)return Td;let A=null,r=null,n=vo.setFastTimeout(()=>{A=setImmediate(()=>{r=setImmediate(()=>Ld(t.deref(),e))})},e.timeout);return()=>{vo.clearFastTimeout(n),clearImmediate(A),clearImmediate(r)}}:(t,e)=>{if(!e.timeout)return Td;let A=null,r=vo.setFastTimeout(()=>{A=setImmediate(()=>{Ld(t.deref(),e)})},e.timeout);return()=>{vo.clearFastTimeout(r),clearImmediate(A)}};function Ld(t,e){if(t==null)return;let A="Connect Timeout Error";Array.isArray(t.autoSelectFamilyAttemptedAddresses)?A+=` (attempted addresses: ${t.autoSelectFamilyAttemptedAddresses.join(", ")},`:A+=` (attempted address: ${e.hostname}:${e.port},`,A+=` timeout: ${e.timeout}ms)`,_d(t,new j0(A))}function bS(t){if(t[0]==="h"&&t[1]==="t"&&t[2]==="t"&&t[3]==="p")switch(t[4]){case":":return"http:";case"s":if(t[5]===":")return"https:"}return t.slice(0,t.indexOf(":")+1)}var zd=Object.create(null);zd.enumerable=!0;var Rl={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"},$d={...Rl,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(Rl,null);Object.setPrototypeOf($d,null);eE.exports={kEnumerableProperty:zd,isDisturbed:hS,isBlobLike:Od,parseOrigin:eS,parseURL:qd,getServerName:AS,isStream:Ho,isIterable:Jd,hasSafeIterator:sS,isAsyncIterable:nS,isDestroyed:Wd,headerNameToString:jd,bufferToLowerCasedHeaderName:aS,addListener:SS,removeAllListeners:DS,errorRequest:wS,parseRawHeaders:cS,encodeRawHeaders:uS,parseHeaders:lS,parseKeepAliveTimeout:iS,destroy:_d,bodyLength:Pd,deepClone:rS,ReadableStreamFrom:ES,isBuffer:Zd,assertRequestHandler:gS,getSocketInfo:dS,isFormDataLike:Xd,pathHasQueryOrFragment:Gd,serializePathWithQuery:$0,addAbortListener:fS,isValidHTTPToken:QS,isValidHeaderValue:pS,isTokenCharCode:IS,parseRangeHeader:mS,normalizedMethodRecordsBase:Rl,normalizedMethodRecords:$d,isValidPort:Vd,isHttpOrHttpsPrefixed:Lo,nodeMajor:X0,nodeMinor:K0,safeHTTPMethods:Object.freeze(["GET","HEAD","OPTIONS","TRACE"]),wrapRequestBody:z0,setupConnectTimeout:RS,getProtocolFromUrlString:bS}});var kl=b((uV,sE)=>{"use strict";var{kConnected:tE,kPending:AE,kRunning:rE,kSize:nE,kFree:NS,kQueued:kS}=le(),bl=class{constructor(e){this.connected=e[tE],this.pending=e[AE],this.running=e[rE],this.size=e[nE]}},Nl=class{constructor(e){this.connected=e[tE],this.free=e[NS],this.pending=e[AE],this.queued=e[kS],this.running=e[rE],this.size=e[nE]}};sE.exports={ClientStats:bl,PoolStats:Nl}});var DA=b((gV,iE)=>{"use strict";var ce=require("node:diagnostics_channel"),vl=require("node:util"),gr=vl.debuglog("undici"),as=vl.debuglog("fetch"),Yo=vl.debuglog("websocket"),rt={beforeConnect:ce.channel("undici:client:beforeConnect"),connected:ce.channel("undici:client:connected"),connectError:ce.channel("undici:client:connectError"),sendHeaders:ce.channel("undici:client:sendHeaders"),create:ce.channel("undici:request:create"),bodySent:ce.channel("undici:request:bodySent"),bodyChunkSent:ce.channel("undici:request:bodyChunkSent"),bodyChunkReceived:ce.channel("undici:request:bodyChunkReceived"),headers:ce.channel("undici:request:headers"),trailers:ce.channel("undici:request:trailers"),error:ce.channel("undici:request:error"),open:ce.channel("undici:websocket:open"),close:ce.channel("undici:websocket:close"),socketError:ce.channel("undici:websocket:socket_error"),ping:ce.channel("undici:websocket:ping"),pong:ce.channel("undici:websocket:pong"),proxyConnected:ce.channel("undici:proxy:connected")},Fl=!1;function oE(t=gr){if(!Fl){if(rt.beforeConnect.hasSubscribers||rt.connected.hasSubscribers||rt.connectError.hasSubscribers||rt.sendHeaders.hasSubscribers){Fl=!0;return}Fl=!0,ce.subscribe("undici:client:beforeConnect",e=>{let{connectParams:{version:A,protocol:r,port:n,host:s}}=e;t("connecting to %s%s using %s%s",s,n?`:${n}`:"",r,A)}),ce.subscribe("undici:client:connected",e=>{let{connectParams:{version:A,protocol:r,port:n,host:s}}=e;t("connected to %s%s using %s%s",s,n?`:${n}`:"",r,A)}),ce.subscribe("undici:client:connectError",e=>{let{connectParams:{version:A,protocol:r,port:n,host:s},error:o}=e;t("connection to %s%s using %s%s errored - %s",s,n?`:${n}`:"",r,A,o.message)}),ce.subscribe("undici:client:sendHeaders",e=>{let{request:{method:A,path:r,origin:n}}=e;t("sending request to %s %s%s",A,n,r)})}}var Ul=!1;function FS(t=gr){if(!Ul){if(rt.headers.hasSubscribers||rt.trailers.hasSubscribers||rt.error.hasSubscribers){Ul=!0;return}Ul=!0,ce.subscribe("undici:request:headers",e=>{let{request:{method:A,path:r,origin:n},response:{statusCode:s}}=e;t("received response to %s %s%s - HTTP %d",A,n,r,s)}),ce.subscribe("undici:request:trailers",e=>{let{request:{method:A,path:r,origin:n}}=e;t("trailers received from %s %s%s",A,n,r)}),ce.subscribe("undici:request:error",e=>{let{request:{method:A,path:r,origin:n},error:s}=e;t("request to %s %s%s errored - %s",A,n,r,s.message)})}}var Ml=!1;function US(t=Yo){if(!Ml){if(rt.open.hasSubscribers||rt.close.hasSubscribers||rt.socketError.hasSubscribers||rt.ping.hasSubscribers||rt.pong.hasSubscribers){Ml=!0;return}Ml=!0,ce.subscribe("undici:websocket:open",e=>{if(e.address!=null){let{address:A,port:r}=e.address;t("connection opened %s%s",A,r?`:${r}`:"")}else t("connection opened")}),ce.subscribe("undici:websocket:close",e=>{let{websocket:A,code:r,reason:n}=e;t("closed connection to %s - %s %s",A.url,r,n)}),ce.subscribe("undici:websocket:socket_error",e=>{t("connection errored - %s",e.message)}),ce.subscribe("undici:websocket:ping",e=>{t("ping received")}),ce.subscribe("undici:websocket:pong",e=>{t("pong received")})}}(gr.enabled||as.enabled)&&(oE(as.enabled?as:gr),FS(as.enabled?as:gr));Yo.enabled&&(oE(gr.enabled?gr:Yo),US(Yo));iE.exports={channels:rt}});var cE=b((hV,lE)=>{"use strict";var{InvalidArgumentError:ie,NotSupportedError:MS}=W(),Ht=require("node:assert"),{isValidHTTPToken:Tl,isValidHeaderValue:Ll,isStream:vS,destroy:TS,isBuffer:LS,isFormDataLike:xS,isIterable:HS,hasSafeIterator:YS,isBlobLike:OS,serializePathWithQuery:GS,assertRequestHandler:VS,getServerName:qS,normalizedMethodRecords:JS,getProtocolFromUrlString:PS}=Z(),{channels:Pe}=DA(),{headerNameLowerCasedRecord:aE}=Uo(),WS=/[^\u0021-\u00ff]/,Qt=Symbol("handler"),xl=class{constructor(e,{path:A,method:r,body:n,headers:s,query:o,idempotent:i,blocking:a,upgrade:l,headersTimeout:c,bodyTimeout:f,reset:d,expectContinue:g,servername:I,throwOnError:S,maxRedirections:p,typeOfService:u},h){if(typeof A!="string")throw new ie("path must be a string");if(A[0]!=="/"&&!(A.startsWith("http://")||A.startsWith("https://"))&&r!=="CONNECT")throw new ie("path must be an absolute URL or start with a slash");if(WS.test(A))throw new ie("invalid request path");if(typeof r!="string")throw new ie("method must be a string");if(JS[r]===void 0&&!Tl(r))throw new ie("invalid request method");if(l&&typeof l!="string")throw new ie("upgrade must be a string");if(l&&!Ll(l))throw new ie("invalid upgrade header");if(c!=null&&(!Number.isFinite(c)||c<0))throw new ie("invalid headersTimeout");if(f!=null&&(!Number.isFinite(f)||f<0))throw new ie("invalid bodyTimeout");if(d!=null&&typeof d!="boolean")throw new ie("invalid reset");if(g!=null&&typeof g!="boolean")throw new ie("invalid expectContinue");if(S!=null)throw new ie("invalid throwOnError");if(p!=null&&p!==0)throw new ie("maxRedirections is not supported, use the redirect interceptor");if(u!=null&&(!Number.isInteger(u)||u<0||u>255))throw new ie("typeOfService must be an integer between 0 and 255");if(this.headersTimeout=c,this.bodyTimeout=f,this.method=r,this.typeOfService=u??0,this.abort=null,n==null)this.body=null;else if(vS(n)){this.body=n;let E=this.body._readableState;(!E||!E.autoDestroy)&&(this.endHandler=function(){TS(this)},this.body.on("end",this.endHandler)),this.errorHandler=B=>{this.abort?this.abort(B):this.error=B},this.body.on("error",this.errorHandler)}else if(LS(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(xS(n)||HS(n)||OS(n))this.body=n;else throw new ie("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=l||null,this.path=o?GS(A,o):A,this.origin=e,this.protocol=PS(e),this.idempotent=i??(r==="HEAD"||r==="GET"),this.blocking=a??this.method!=="HEAD",this.reset=d??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=g??!1,Array.isArray(s)){if(s.length%2!==0)throw new ie("headers array must be even");for(let E=0;E<s.length;E+=2)Oo(this,s[E],s[E+1])}else if(s&&typeof s=="object")if(YS(s))for(let E of s){if(!Array.isArray(E)||E.length!==2)throw new ie("headers must be in key-value pair format");Oo(this,E[0],E[1])}else{let E=Object.keys(s);for(let B=0;B<E.length;++B)Oo(this,E[B],s[E[B]])}else if(s!=null)throw new ie("headers must be an object or an array");VS(h,r,l),this.servername=I||qS(this.host)||null,this[Qt]=h,Pe.create.hasSubscribers&&Pe.create.publish({request:this})}onBodySent(e){if(Pe.bodyChunkSent.hasSubscribers&&Pe.bodyChunkSent.publish({request:this,chunk:e}),this[Qt].onBodySent)try{return this[Qt].onBodySent(e)}catch(A){this.abort(A)}}onRequestSent(){if(Pe.bodySent.hasSubscribers&&Pe.bodySent.publish({request:this}),this[Qt].onRequestSent)try{return this[Qt].onRequestSent()}catch(e){this.abort(e)}}onConnect(e){if(Ht(!this.aborted),Ht(!this.completed),this.error)e(this.error);else return this.abort=e,this[Qt].onConnect(e)}onResponseStarted(){return this[Qt].onResponseStarted?.()}onHeaders(e,A,r,n){Ht(!this.aborted),Ht(!this.completed),Pe.headers.hasSubscribers&&Pe.headers.publish({request:this,response:{statusCode:e,headers:A,statusText:n}});try{return this[Qt].onHeaders(e,A,r,n)}catch(s){this.abort(s)}}onData(e){Ht(!this.aborted),Ht(!this.completed),Pe.bodyChunkReceived.hasSubscribers&&Pe.bodyChunkReceived.publish({request:this,chunk:e});try{return this[Qt].onData(e)}catch(A){return this.abort(A),!1}}onUpgrade(e,A,r){return Ht(!this.aborted),Ht(!this.completed),this[Qt].onUpgrade(e,A,r)}onComplete(e){this.onFinally(),Ht(!this.aborted),Ht(!this.completed),this.completed=!0,Pe.trailers.hasSubscribers&&Pe.trailers.publish({request:this,trailers:e});try{return this[Qt].onComplete(e)}catch(A){this.onError(A)}}onError(e){if(this.onFinally(),Pe.error.hasSubscribers&&Pe.error.publish({request:this,error:e}),!this.aborted)return this.aborted=!0,this[Qt].onError(e)}onFinally(){this.errorHandler&&(this.body.off("error",this.errorHandler),this.errorHandler=null),this.endHandler&&(this.body.off("end",this.endHandler),this.endHandler=null)}addHeader(e,A){return Oo(this,e,A),this}};function Oo(t,e,A){if(A&&typeof A=="object"&&!Array.isArray(A))throw new ie(`invalid ${e} header`);if(A===void 0)return;let r=aE[e];if(r===void 0&&(r=e.toLowerCase(),aE[r]===void 0&&!Tl(r)))throw new ie("invalid header key");if(Array.isArray(A)){let n=[];for(let s=0;s<A.length;s++)if(typeof A[s]=="string"){if(!Ll(A[s]))throw new ie(`invalid ${e} header`);n.push(A[s])}else if(A[s]===null)n.push("");else{if(typeof A[s]=="object")throw new ie(`invalid ${e} header`);n.push(`${A[s]}`)}A=n}else if(typeof A=="string"){if(!Ll(A))throw new ie(`invalid ${e} header`)}else A===null?A="":A=`${A}`;if(r==="host"){if(t.host!==null)throw new ie("duplicate host header");if(typeof A!="string")throw new ie("invalid host header");t.host=A}else if(r==="content-length"){if(t.contentLength!==null)throw new ie("duplicate content-length header");if(t.contentLength=parseInt(A,10),!Number.isFinite(t.contentLength))throw new ie("invalid content-length header")}else if(t.contentType===null&&r==="content-type")t.contentType=A,t.headers.push(e,A);else{if(r==="transfer-encoding"||r==="keep-alive"||r==="upgrade")throw new ie(`invalid ${r} header`);if(r==="connection"){let n=typeof A=="string"?A:null;if(n===null)throw new ie("invalid connection header");for(let s of n.toLowerCase().split(",")){let o=s.trim();if(!Tl(o))throw new ie("invalid connection header");o==="close"&&(t.reset=!0)}}else{if(r==="expect")throw new MS("expect header not supported");t.headers.push(e,A)}}}lE.exports=xl});var ls=b((dV,gE)=>{"use strict";var{InvalidArgumentError:_S}=W();gE.exports=class uE{#e;constructor(e){this.#e=e}static wrap(e){return e.onRequestStart?e:new uE(e)}onConnect(e,A){return this.#e.onConnect?.(e,A)}onResponseStarted(){return this.#e.onResponseStarted?.()}onHeaders(e,A,r,n){return this.#e.onHeaders?.(e,A,r,n)}onUpgrade(e,A,r){return this.#e.onUpgrade?.(e,A,r)}onData(e){return this.#e.onData?.(e)}onComplete(e){return this.#e.onComplete?.(e)}onError(e){if(!this.#e.onError)throw e;return this.#e.onError?.(e)}onRequestStart(e,A){this.#e.onConnect?.(r=>e.abort(r),A)}onRequestUpgrade(e,A,r,n){let s=[];for(let[o,i]of Object.entries(r))s.push(Buffer.from(o,"latin1"),Hl(i));this.#e.onUpgrade?.(A,s,n)}onResponseStart(e,A,r,n){let s=[];for(let[o,i]of Object.entries(r))s.push(Buffer.from(o,"latin1"),Hl(i));this.#e.onHeaders?.(A,s,()=>e.resume(),n)===!1&&e.pause()}onResponseData(e,A){this.#e.onData?.(A)===!1&&e.pause()}onResponseEnd(e,A){let r=[];for(let[n,s]of Object.entries(A))r.push(Buffer.from(n,"latin1"),Hl(s));this.#e.onComplete?.(r)}onResponseError(e,A){if(!this.#e.onError)throw new _S("invalid onError method");this.#e.onError?.(A)}};function Hl(t){return Array.isArray(t)?t.map(e=>Buffer.from(e,"latin1")):Buffer.from(t,"latin1")}});var cs=b((EV,hE)=>{"use strict";var jS=require("node:events"),ZS=ls(),XS=t=>(e,A)=>t(e,ZS.wrap(A)),Yl=class extends jS{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...e){let A=Array.isArray(e[0])?e[0]:e,r=this.dispatch.bind(this);for(let n of A)if(n!=null){if(typeof n!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof n}`);if(r=n(r),r=XS(r),r==null||typeof r!="function"||r.length!==2)throw new TypeError("invalid interceptor")}return new Proxy(this,{get:(n,s)=>s==="dispatch"?r:n[s]})}};hE.exports=Yl});var fE=b((fV,EE)=>{"use strict";var{parseHeaders:Ol}=Z(),{InvalidArgumentError:KS}=W(),Gl=Symbol("resume"),Vl=class{#e=!1;#t=null;#A=!1;#r;[Gl]=null;constructor(e){this.#r=e}pause(){this.#e=!0}resume(){this.#e&&(this.#e=!1,this[Gl]?.())}abort(e){this.#A||(this.#A=!0,this.#t=e,this.#r(e))}get aborted(){return this.#A}get reason(){return this.#t}get paused(){return this.#e}};EE.exports=class dE{#e;#t;constructor(e){this.#e=e}static unwrap(e){return e.onRequestStart?new dE(e):e}onConnect(e,A){this.#t=new Vl(e),this.#e.onRequestStart?.(this.#t,A)}onResponseStarted(){return this.#e.onResponseStarted?.()}onUpgrade(e,A,r){this.#e.onRequestUpgrade?.(this.#t,e,Ol(A),r)}onHeaders(e,A,r,n){return this.#t[Gl]=r,this.#e.onResponseStart?.(this.#t,e,Ol(A),n),!this.#t.paused}onData(e){return this.#e.onResponseData?.(this.#t,e),!this.#t.paused}onComplete(e){this.#e.onResponseEnd?.(this.#t,Ol(e))}onError(e){if(!this.#e.onResponseError)throw new KS("invalid onError method");this.#e.onResponseError?.(this.#t,e)}}});var dr=b((IV,IE)=>{"use strict";var zS=cs(),$S=fE(),{ClientDestroyedError:ql,ClientClosedError:eD,InvalidArgumentError:Go}=W(),{kDestroy:tD,kClose:AD,kClosed:us,kDestroyed:en,kDispatch:rD}=le(),wA=Symbol("onDestroyed"),hr=Symbol("onClosed"),Jl=class extends zS{[en]=!1;[wA]=null;[us]=!1;[hr]=null;get destroyed(){return this[en]}get closed(){return this[us]}close(e){if(e===void 0)return new Promise((r,n)=>{this.close((s,o)=>s?n(s):r(o))});if(typeof e!="function")throw new Go("invalid callback");if(this[en]){let r=new ql;queueMicrotask(()=>e(r,null));return}if(this[us]){this[hr]?this[hr].push(e):queueMicrotask(()=>e(null,null));return}this[us]=!0,this[hr]??=[],this[hr].push(e);let A=()=>{let r=this[hr];this[hr]=null;for(let n=0;n<r.length;n++)r[n](null,null)};this[AD]().then(()=>this.destroy()).then(()=>queueMicrotask(A))}destroy(e,A){if(typeof e=="function"&&(A=e,e=null),A===void 0)return new Promise((n,s)=>{this.destroy(e,(o,i)=>o?s(o):n(i))});if(typeof A!="function")throw new Go("invalid callback");if(this[en]){this[wA]?this[wA].push(A):queueMicrotask(()=>A(null,null));return}e||(e=new ql),this[en]=!0,this[wA]??=[],this[wA].push(A);let r=()=>{let n=this[wA];this[wA]=null;for(let s=0;s<n.length;s++)n[s](null,null)};this[tD](e).then(()=>queueMicrotask(r))}dispatch(e,A){if(!A||typeof A!="object")throw new Go("handler must be an object");A=$S.unwrap(A);try{if(!e||typeof e!="object")throw new Go("opts must be an object.");if(this[en]||this[wA])throw new ql;if(this[us])throw new eD;return this[rD](e,A)}catch(r){if(typeof A.onError!="function")throw r;return A.onError(r),!1}}};IE.exports=Jl});var Er=b((QV,BE)=>{"use strict";var nD=require("node:net"),CE=require("node:assert"),QE=Z(),{InvalidArgumentError:sD}=W(),Pl,oD=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map,this._sessionRegistry=new FinalizationRegistry(A=>{if(this._sessionCache.size<this._maxCachedSessions)return;let r=this._sessionCache.get(A);r!==void 0&&r.deref()===void 0&&this._sessionCache.delete(A)})}get(e){let A=this._sessionCache.get(e);return A?A.deref():null}set(e,A){this._maxCachedSessions!==0&&(this._sessionCache.set(e,new WeakRef(A)),this._sessionRegistry.register(A,e))}};function iD({allowH2:t,useH2c:e,maxCachedSessions:A,socketPath:r,timeout:n,session:s,...o}){if(A!=null&&(!Number.isInteger(A)||A<0))throw new sD("maxCachedSessions must be a positive integer or zero");let i={path:r,...o},a=new oD(A??100);return n=n??1e4,t=t??!1,function({hostname:c,host:f,protocol:d,port:g,servername:I,localAddress:S,httpSocket:p},u){let h;if(d==="https:"){Pl||(Pl=require("node:tls")),I=I||i.servername||QE.getServerName(f)||null;let B=I||c;CE(B);let Q=s||a.get(B)||null;g=g||443,h=Pl.connect({highWaterMark:16384,...i,servername:I,session:Q,localAddress:S,ALPNProtocols:t?["http/1.1","h2"]:["http/1.1"],socket:p,port:g,host:c}),h.on("session",function(D){a.set(B,D)})}else CE(!p,"httpSocket can only be sent on TLS update"),g=g||80,h=nD.connect({highWaterMark:64*1024,...i,localAddress:S,port:g,host:c}),e===!0&&(h.alpnProtocol="h2");if(i.keepAlive==null||i.keepAlive){let B=i.keepAliveInitialDelay===void 0?6e4:i.keepAliveInitialDelay;h.setKeepAlive(!0,B)}let E=QE.setupConnectTimeout(new WeakRef(h),{timeout:n,hostname:c,port:g});return h.setNoDelay(!0).once(d==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(E),u){let B=u;u=null,B(null,this)}}).on("error",function(B){if(queueMicrotask(E),u){let Q=u;u=null,Q(B)}}),h}}BE.exports=iD});var pE=b(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});Wl.enumToMap=aD;function aD(t,e=[],A=[]){let r=(e?.length??0)===0,n=(A?.length??0)===0;return Object.fromEntries(Object.entries(t).filter(([,s])=>typeof s=="number"&&(r||e.includes(s))&&(n||!A.includes(s))))}});var yE=b(C=>{"use strict";Object.defineProperty(C,"__esModule",{value:!0});C.SPECIAL_HEADERS=C.MINOR=C.MAJOR=C.HTAB_SP_VCHAR_OBS_TEXT=C.QUOTED_STRING=C.CONNECTION_TOKEN_CHARS=C.HEADER_CHARS=C.TOKEN=C.HEX=C.URL_CHAR=C.USERINFO_CHARS=C.MARK=C.ALPHANUM=C.NUM=C.HEX_MAP=C.NUM_MAP=C.ALPHA=C.STATUSES_HTTP=C.H_METHOD_MAP=C.METHOD_MAP=C.METHODS_RTSP=C.METHODS_ICE=C.METHODS_HTTP=C.HEADER_STATE=C.FINISH=C.STATUSES=C.METHODS=C.LENIENT_FLAGS=C.FLAGS=C.TYPE=C.ERROR=void 0;var lD=pE();C.ERROR={OK:0,INTERNAL:1,STRICT:2,CR_EXPECTED:25,LF_EXPECTED:3,UNEXPECTED_CONTENT_LENGTH:4,UNEXPECTED_SPACE:30,CLOSED_CONNECTION:5,INVALID_METHOD:6,INVALID_URL:7,INVALID_CONSTANT:8,INVALID_VERSION:9,INVALID_HEADER_TOKEN:10,INVALID_CONTENT_LENGTH:11,INVALID_CHUNK_SIZE:12,INVALID_STATUS:13,INVALID_EOF_STATE:14,INVALID_TRANSFER_ENCODING:15,CB_MESSAGE_BEGIN:16,CB_HEADERS_COMPLETE:17,CB_MESSAGE_COMPLETE:18,CB_CHUNK_HEADER:19,CB_CHUNK_COMPLETE:20,PAUSED:21,PAUSED_UPGRADE:22,PAUSED_H2_UPGRADE:23,USER:24,CB_URL_COMPLETE:26,CB_STATUS_COMPLETE:27,CB_METHOD_COMPLETE:32,CB_VERSION_COMPLETE:33,CB_HEADER_FIELD_COMPLETE:28,CB_HEADER_VALUE_COMPLETE:29,CB_CHUNK_EXTENSION_NAME_COMPLETE:34,CB_CHUNK_EXTENSION_VALUE_COMPLETE:35,CB_RESET:31,CB_PROTOCOL_COMPLETE:38};C.TYPE={BOTH:0,REQUEST:1,RESPONSE:2};C.FLAGS={CONNECTION_KEEP_ALIVE:1,CONNECTION_CLOSE:2,CONNECTION_UPGRADE:4,CHUNKED:8,UPGRADE:16,CONTENT_LENGTH:32,SKIPBODY:64,TRAILING:128,TRANSFER_ENCODING:512};C.LENIENT_FLAGS={HEADERS:1,CHUNKED_LENGTH:2,KEEP_ALIVE:4,TRANSFER_ENCODING:8,VERSION:16,DATA_AFTER_CLOSE:32,OPTIONAL_LF_AFTER_CR:64,OPTIONAL_CRLF_AFTER_CHUNK:128,OPTIONAL_CR_BEFORE_LF:256,SPACES_AFTER_CHUNK_SIZE:512};C.METHODS={DELETE:0,GET:1,HEAD:2,POST:3,PUT:4,CONNECT:5,OPTIONS:6,TRACE:7,COPY:8,LOCK:9,MKCOL:10,MOVE:11,PROPFIND:12,PROPPATCH:13,SEARCH:14,UNLOCK:15,BIND:16,REBIND:17,UNBIND:18,ACL:19,REPORT:20,MKACTIVITY:21,CHECKOUT:22,MERGE:23,"M-SEARCH":24,NOTIFY:25,SUBSCRIBE:26,UNSUBSCRIBE:27,PATCH:28,PURGE:29,MKCALENDAR:30,LINK:31,UNLINK:32,SOURCE:33,PRI:34,DESCRIBE:35,ANNOUNCE:36,SETUP:37,PLAY:38,PAUSE:39,TEARDOWN:40,GET_PARAMETER:41,SET_PARAMETER:42,REDIRECT:43,RECORD:44,FLUSH:45,QUERY:46};C.STATUSES={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,RESPONSE_IS_STALE:110,REVALIDATION_FAILED:111,DISCONNECTED_OPERATION:112,HEURISTIC_EXPIRATION:113,MISCELLANEOUS_WARNING:199,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,TRANSFORMATION_APPLIED:214,IM_USED:226,MISCELLANEOUS_PERSISTENT_WARNING:299,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,SWITCH_PROXY:306,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,PAGE_EXPIRED:419,ENHANCE_YOUR_CALM:420,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL:430,REQUEST_HEADER_FIELDS_TOO_LARGE:431,LOGIN_TIMEOUT:440,NO_RESPONSE:444,RETRY_WITH:449,BLOCKED_BY_PARENTAL_CONTROL:450,UNAVAILABLE_FOR_LEGAL_REASONS:451,CLIENT_CLOSED_LOAD_BALANCED_REQUEST:460,INVALID_X_FORWARDED_FOR:463,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,INVALID_TOKEN:498,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,BANDWIDTH_LIMIT_EXCEEDED:509,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511,WEB_SERVER_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMEOUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,SITE_IS_OVERLOADED:529,SITE_IS_FROZEN:530,IDENTITY_PROVIDER_AUTHENTICATION_ERROR:561,NETWORK_READ_TIMEOUT:598,NETWORK_CONNECT_TIMEOUT:599};C.FINISH={SAFE:0,SAFE_WITH_CB:1,UNSAFE:2};C.HEADER_STATE={GENERAL:0,CONNECTION:1,CONTENT_LENGTH:2,TRANSFER_ENCODING:3,UPGRADE:4,CONNECTION_KEEP_ALIVE:5,CONNECTION_CLOSE:6,CONNECTION_UPGRADE:7,TRANSFER_ENCODING_CHUNKED:8};C.METHODS_HTTP=[C.METHODS.DELETE,C.METHODS.GET,C.METHODS.HEAD,C.METHODS.POST,C.METHODS.PUT,C.METHODS.CONNECT,C.METHODS.OPTIONS,C.METHODS.TRACE,C.METHODS.COPY,C.METHODS.LOCK,C.METHODS.MKCOL,C.METHODS.MOVE,C.METHODS.PROPFIND,C.METHODS.PROPPATCH,C.METHODS.SEARCH,C.METHODS.UNLOCK,C.METHODS.BIND,C.METHODS.REBIND,C.METHODS.UNBIND,C.METHODS.ACL,C.METHODS.REPORT,C.METHODS.MKACTIVITY,C.METHODS.CHECKOUT,C.METHODS.MERGE,C.METHODS["M-SEARCH"],C.METHODS.NOTIFY,C.METHODS.SUBSCRIBE,C.METHODS.UNSUBSCRIBE,C.METHODS.PATCH,C.METHODS.PURGE,C.METHODS.MKCALENDAR,C.METHODS.LINK,C.METHODS.UNLINK,C.METHODS.PRI,C.METHODS.SOURCE,C.METHODS.QUERY];C.METHODS_ICE=[C.METHODS.SOURCE];C.METHODS_RTSP=[C.METHODS.OPTIONS,C.METHODS.DESCRIBE,C.METHODS.ANNOUNCE,C.METHODS.SETUP,C.METHODS.PLAY,C.METHODS.PAUSE,C.METHODS.TEARDOWN,C.METHODS.GET_PARAMETER,C.METHODS.SET_PARAMETER,C.METHODS.REDIRECT,C.METHODS.RECORD,C.METHODS.FLUSH,C.METHODS.GET,C.METHODS.POST];C.METHOD_MAP=(0,lD.enumToMap)(C.METHODS);C.H_METHOD_MAP=Object.fromEntries(Object.entries(C.METHODS).filter(([t])=>t.startsWith("H")));C.STATUSES_HTTP=[C.STATUSES.CONTINUE,C.STATUSES.SWITCHING_PROTOCOLS,C.STATUSES.PROCESSING,C.STATUSES.EARLY_HINTS,C.STATUSES.RESPONSE_IS_STALE,C.STATUSES.REVALIDATION_FAILED,C.STATUSES.DISCONNECTED_OPERATION,C.STATUSES.HEURISTIC_EXPIRATION,C.STATUSES.MISCELLANEOUS_WARNING,C.STATUSES.OK,C.STATUSES.CREATED,C.STATUSES.ACCEPTED,C.STATUSES.NON_AUTHORITATIVE_INFORMATION,C.STATUSES.NO_CONTENT,C.STATUSES.RESET_CONTENT,C.STATUSES.PARTIAL_CONTENT,C.STATUSES.MULTI_STATUS,C.STATUSES.ALREADY_REPORTED,C.STATUSES.TRANSFORMATION_APPLIED,C.STATUSES.IM_USED,C.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,C.STATUSES.MULTIPLE_CHOICES,C.STATUSES.MOVED_PERMANENTLY,C.STATUSES.FOUND,C.STATUSES.SEE_OTHER,C.STATUSES.NOT_MODIFIED,C.STATUSES.USE_PROXY,C.STATUSES.SWITCH_PROXY,C.STATUSES.TEMPORARY_REDIRECT,C.STATUSES.PERMANENT_REDIRECT,C.STATUSES.BAD_REQUEST,C.STATUSES.UNAUTHORIZED,C.STATUSES.PAYMENT_REQUIRED,C.STATUSES.FORBIDDEN,C.STATUSES.NOT_FOUND,C.STATUSES.METHOD_NOT_ALLOWED,C.STATUSES.NOT_ACCEPTABLE,C.STATUSES.PROXY_AUTHENTICATION_REQUIRED,C.STATUSES.REQUEST_TIMEOUT,C.STATUSES.CONFLICT,C.STATUSES.GONE,C.STATUSES.LENGTH_REQUIRED,C.STATUSES.PRECONDITION_FAILED,C.STATUSES.PAYLOAD_TOO_LARGE,C.STATUSES.URI_TOO_LONG,C.STATUSES.UNSUPPORTED_MEDIA_TYPE,C.STATUSES.RANGE_NOT_SATISFIABLE,C.STATUSES.EXPECTATION_FAILED,C.STATUSES.IM_A_TEAPOT,C.STATUSES.PAGE_EXPIRED,C.STATUSES.ENHANCE_YOUR_CALM,C.STATUSES.MISDIRECTED_REQUEST,C.STATUSES.UNPROCESSABLE_ENTITY,C.STATUSES.LOCKED,C.STATUSES.FAILED_DEPENDENCY,C.STATUSES.TOO_EARLY,C.STATUSES.UPGRADE_REQUIRED,C.STATUSES.PRECONDITION_REQUIRED,C.STATUSES.TOO_MANY_REQUESTS,C.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,C.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,C.STATUSES.LOGIN_TIMEOUT,C.STATUSES.NO_RESPONSE,C.STATUSES.RETRY_WITH,C.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,C.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,C.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,C.STATUSES.INVALID_X_FORWARDED_FOR,C.STATUSES.REQUEST_HEADER_TOO_LARGE,C.STATUSES.SSL_CERTIFICATE_ERROR,C.STATUSES.SSL_CERTIFICATE_REQUIRED,C.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,C.STATUSES.INVALID_TOKEN,C.STATUSES.CLIENT_CLOSED_REQUEST,C.STATUSES.INTERNAL_SERVER_ERROR,C.STATUSES.NOT_IMPLEMENTED,C.STATUSES.BAD_GATEWAY,C.STATUSES.SERVICE_UNAVAILABLE,C.STATUSES.GATEWAY_TIMEOUT,C.STATUSES.HTTP_VERSION_NOT_SUPPORTED,C.STATUSES.VARIANT_ALSO_NEGOTIATES,C.STATUSES.INSUFFICIENT_STORAGE,C.STATUSES.LOOP_DETECTED,C.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,C.STATUSES.NOT_EXTENDED,C.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,C.STATUSES.WEB_SERVER_UNKNOWN_ERROR,C.STATUSES.WEB_SERVER_IS_DOWN,C.STATUSES.CONNECTION_TIMEOUT,C.STATUSES.ORIGIN_IS_UNREACHABLE,C.STATUSES.TIMEOUT_OCCURED,C.STATUSES.SSL_HANDSHAKE_FAILED,C.STATUSES.INVALID_SSL_CERTIFICATE,C.STATUSES.RAILGUN_ERROR,C.STATUSES.SITE_IS_OVERLOADED,C.STATUSES.SITE_IS_FROZEN,C.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,C.STATUSES.NETWORK_READ_TIMEOUT,C.STATUSES.NETWORK_CONNECT_TIMEOUT];C.ALPHA=[];for(let t=65;t<=90;t++)C.ALPHA.push(String.fromCharCode(t)),C.ALPHA.push(String.fromCharCode(t+32));C.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};C.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};C.NUM=["0","1","2","3","4","5","6","7","8","9"];C.ALPHANUM=C.ALPHA.concat(C.NUM);C.MARK=["-","_",".","!","~","*","'","(",")"];C.USERINFO_CHARS=C.ALPHANUM.concat(C.MARK).concat(["%",";",":","&","=","+","$",","]);C.URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(C.ALPHANUM);C.HEX=C.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);C.TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(C.ALPHANUM);C.HEADER_CHARS=[" "];for(let t=32;t<=255;t++)t!==127&&C.HEADER_CHARS.push(t);C.CONNECTION_TOKEN_CHARS=C.HEADER_CHARS.filter(t=>t!==44);C.QUOTED_STRING=[" "," "];for(let t=33;t<=255;t++)t!==34&&t!==92&&C.QUOTED_STRING.push(t);C.HTAB_SP_VCHAR_OBS_TEXT=[" "," "];for(let t=33;t<=126;t++)C.HTAB_SP_VCHAR_OBS_TEXT.push(t);for(let t=128;t<=255;t++)C.HTAB_SP_VCHAR_OBS_TEXT.push(t);C.MAJOR=C.NUM_MAP;C.MINOR=C.MAJOR;C.SPECIAL_HEADERS={connection:C.HEADER_STATE.CONNECTION,"content-length":C.HEADER_STATE.CONTENT_LENGTH,"proxy-connection":C.HEADER_STATE.CONNECTION,"transfer-encoding":C.HEADER_STATE.TRANSFER_ENCODING,upgrade:C.HEADER_STATE.UPGRADE};C.default={ERROR:C.ERROR,TYPE:C.TYPE,FLAGS:C.FLAGS,LENIENT_FLAGS:C.LENIENT_FLAGS,METHODS:C.METHODS,STATUSES:C.STATUSES,FINISH:C.FINISH,HEADER_STATE:C.HEADER_STATE,ALPHA:C.ALPHA,NUM_MAP:C.NUM_MAP,HEX_MAP:C.HEX_MAP,NUM:C.NUM,ALPHANUM:C.ALPHANUM,MARK:C.MARK,USERINFO_CHARS:C.USERINFO_CHARS,URL_CHAR:C.URL_CHAR,HEX:C.HEX,TOKEN:C.TOKEN,HEADER_CHARS:C.HEADER_CHARS,CONNECTION_TOKEN_CHARS:C.CONNECTION_TOKEN_CHARS,QUOTED_STRING:C.QUOTED_STRING,HTAB_SP_VCHAR_OBS_TEXT:C.HTAB_SP_VCHAR_OBS_TEXT,MAJOR:C.MAJOR,MINOR:C.MINOR,SPECIAL_HEADERS:C.SPECIAL_HEADERS,METHODS_HTTP:C.METHODS_HTTP,METHODS_ICE:C.METHODS_ICE,METHODS_RTSP:C.METHODS_RTSP,METHOD_MAP:C.METHOD_MAP,H_METHOD_MAP:C.H_METHOD_MAP,STATUSES_HTTP:C.STATUSES_HTTP}});var jl=b((yV,mE)=>{"use strict";var{Buffer:cD}=require("node:buffer"),uD="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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C0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAg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ogKiAqICogKiAqICogKiAqICogKiAqICogIAogILIAQgAUEBaiIBRw0AC0HJACECDOwCCyABQQFqIQEgA0Evai0AAEEBcQ2lAiADQQA2AhwgAyABNgIUIANBlxA2AhAgA0EKNgIMQQAhAgzrAgsgASAERwRAA0AgAS0AAEEgRw0VIAQgAUEBaiIBRw0AC0H4ACECDOsCC0H4ACECDOoCCyADQQI6ACgMOAtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQM6AILQQAhAgzOAgtBDSECDM0CC0ETIQIMzAILQRUhAgzLAgtBFiECDMoCC0EYIQIMyQILQRkhAgzIAgtBGiECDMcCC0EbIQIMxgILQRwhAgzFAgtBHSECDMQCC0EeIQIMwwILQR8hAgzCAgtBICECDMECC0EiIQIMwAILQSMhAgy/AgtBJSECDL4CC0HlACECDL0CCyADQT02AhwgAyABNgIUIAMgADYCDEEAIQIM1QILIANBGzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDNQCCyADQSA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzTAgsgA0ETNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0gILIANBCzYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNECCyADQRA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzQAgsgA0EgNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzwILIANBCzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM4CCyADQQw2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzNAgtBACECIANBADYCHCADIAE2AhQgA0HdDjYCECADQRI2AgwMzAILAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB/QEhAgzMAgsCQAJAIAMtADZBAUcNAEEAIQACQCADKAI4IgJFDQAgAigCYCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUcNASADQfwBNgIcIAMgATYCFCADQdwZNgIQIANBFTYCDEEAIQIMzQILQdwBIQIMswILIANBADYCHCADIAE2AhQgA0H5CzYCECADQR82AgxBACECDMsCCwJAAkAgAy0AKEEBaw4CBAEAC0HbASECDLICC0HUASECDLECCyADQQI6ADFBACEAAkAgAygCOCICRQ0AIAIoAgAiAkUNACADIAIRAAAhAAsgAEUEQEHdASECDLECCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQbQMNgIQIANBEDYCDEEAIQIMygILIANB+wE2AhwgAyABNgIUIANBgRo2AhAgA0EVNgIMQQAhAgzJAgsgASAERgRAQfoBIQIMyQILIAEtAABByABGDQEgA0EBOgAoC0HAASECDK4CC0HaASECDK0CCyABIARHBEAgA0EMNgIIIAMgATYCBEHZASECDK0CC0H5ASECDMUCCyABIARGBEBB+AEhAgzFAgsgAS0AAEHIAEcNBCABQQFqIQFB2AEhAgyrAgsgASAERgRAQfcBIQIMxAILAkACQCABLQAAQcUAaw4QAAUFBQUFBQUFBQUFBQUFAQULIAFBAWohAUHWASECDKsCCyABQQFqIQFB1wEhAgyqAgtB9gEhAiABIARGDcICIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbrVAGotAABHDQMgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMMCCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIARQRAQeMBIQIMqgILIANB9QE2AhwgAyABNgIUIAMgADYCDEEAIQIMwgILQfQBIQIgASAERg3BAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEG41QBqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzCAgsgA0GBBDsBKCADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIADQMMAgsgA0EANgIAC0EAIQIgA0EANgIcIAMgATYCFCADQeUfNgIQIANBCDYCDAy/AgtB1QEhAgylAgsgA0HzATYCHCADIAE2AhQgAyAANgIMQQAhAgy9AgtBACEAAkAgAygCOCICRQ0AIAIoAkAiAkUNACADIAIRAAAhAAsgAEUNbiAAQRVHBEAgA0EANgIcIAMgATYCFCADQYIPNgIQIANBIDYCDEEAIQIMvQILIANBjwE2AhwgAyABNgIUIANB7Bs2AhAgA0EVNgIMQQAhAgy8AgsgASAERwRAIANBDTYCCCADIAE2AgRB0wEhAgyjAgtB8gEhAgy7AgsgASAERgRAQfEBIQIMuwILAkACQAJAIAEtAABByABrDgsAAQgICAgICAgIAggLIAFBAWohAUHQASECDKMCCyABQQFqIQFB0QEhAgyiAgsgAUEBaiEBQdIBIQIMoQILQfABIQIgASAERg25AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBtdUAai0AAEcNBCAAQQJGDQMgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuQILQe8BIQIgASAERg24AiADKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABBs9UAai0AAEcNAyAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuAILQe4BIQIgASAERg23AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMtwILIAMoAgQhACADQgA3AwAgAyAAIAVBAWoiARArIgBFDQIgA0HsATYCHCADIAE2AhQgAyAANgIMQQAhAgy2AgsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNnAIgA0HtATYCHCADIAE2AhQgAyAANgIMQQAhAgy0AgtBzwEhAgyaAgtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDLQCC0HOASECDJoCCyADQesBNgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMsgILIAEgBEYEQEHrASECDLICCyABLQAAQS9GBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GyODYCECADQQg2AgxBACECDLECC0HNASECDJcCCyABIARHBEAgA0EONgIIIAMgATYCBEHMASECDJcCC0HqASECDK8CCyABIARGBEBB6QEhAgyvAgsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFBywEhAgyWAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZcCIANB6AE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAEgBEYEQEHnASECDK4CCwJAIAEtAABBLkYEQCABQQFqIQEMAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5gE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILQcoBIQIMlAILIAEgBEYEQEHlASECDK0CC0EAIQBBASEFQQEhB0EAIQICQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQCABLQAAQTBrDgoKCQABAgMEBQYICwtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshAkEAIQVBACEHDAILQQkhAkEBIQBBACEFQQAhBwwBC0EAIQVBASECCyADIAI6ACsgAUEBaiEBAkACQCADLQAuQRBxDQACQAJAAkAgAy0AKg4DAQACBAsgB0UNAwwCCyAADQEMAgsgBUUNAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDQIgA0HiATYCHCADIAE2AhQgAyAANgIMQQAhAgyvAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZoCIANB4wE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ2YAiADQeQBNgIcIAMgATYCFCADIAA2AgwMrQILQckBIQIMkwILQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANBpA02AhAgA0EhNgIMQQAhAgytAgtByAEhAgyTAgsgA0HhATYCHCADIAE2AhQgA0HQGjYCECADQRU2AgxBACECDKsCCyABIARGBEBB4QEhAgyrAgsCQCABLQAAQSBGBEAgA0EAOwE0IAFBAWohAQwBCyADQQA2AhwgAyABNgIUIANBmRE2AhAgA0EJNgIMQQAhAgyrAgtBxwEhAgyRAgsgASAERgRAQeABIQIMqgILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyrAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqgILQcYBIQIMkAILIAEgBEYEQEHfASECDKkCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqgILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKkCC0HFASECDI8CCyABIARGBEBB3gEhAgyoAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKkCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyoAgtBxAEhAgyOAgsgASAERgRAQd0BIQIMpwILAkACQAJAAkAgAS0AAEEKaw4XAgMDAAMDAwMDAwMDAwMDAwMDAwMDAwEDCyABQQFqDAULIAFBAWohAUHDASECDI8CCyABQQFqIQEgA0Evai0AAEEBcQ0IIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKcCCyADQQA2AhwgAyABNgIUIANBjQs2AhAgA0ENNgIMQQAhAgymAgsgASAERwRAIANBDzYCCCADIAE2AgRBASECDI0CC0HcASECDKUCCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtB2wEhAgymAgsgAygCBCEAIANBADYCBCADIAAgARAtIgBFBEAgAUEBaiEBDAQLIANB2gE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMpQILIAMoAgQhACADQQA2AgQgAyAAIAEQLSIADQEgAUEBagshAUHBASECDIoCCyADQdkBNgIcIAMgADYCDCADIAFBAWo2AhRBACECDKICC0HCASECDIgCCyADQS9qLQAAQQFxDQEgA0EANgIcIAMgATYCFCADQeQcNgIQIANBGTYCDEEAIQIMoAILIAEgBEYEQEHZASEC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IAFBAWohAUGeASECDOQBCyABQQFqIQFBnwEhAgzjAQtBtwEhAiABIARGDfsBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQezUAGotAABHDSggAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPwBCyADQQA2AgAgBkEBaiEBQQ0MKAtBtgEhAiABIARGDfoBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDScgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPsBCyADQQA2AgAgBkEBaiEBQQwMJwtBtQEhAiABIARGDfkBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQerUAGotAABHDSYgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPoBCyADQQA2AgAgBkEBaiEBQQMMJgtBtAEhAiABIARGDfgBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQejUAGotAABHDSUgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPkBCyADQQA2AgAgBkEBaiEBQSYMJQsgASAERgRAQbMBIQIM+AELAkACQCABLQAAQdQAaw4CAAEnCyABQQFqIQFBmQEhAgzfAQsgAUEBaiEBQZoBIQIM3gELQbIBIQIgASAERg32ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHm1ABqLQAARw0jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz3AQsgA0EANgIAIAZBAWohAUEnDCMLQbEBIQIgASAERg31ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHk1ABqLQAARw0iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz2AQsgA0EANgIAIAZBAWohAUEcDCILQbABIQIgASAERg30ASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHe1ABqLQAARw0hIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz1AQsgA0EANgIAIAZBAWohAUEGDCELQa8BIQIgASAERg3zASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHZ1ABqLQAARw0gIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz0AQsgA0EANgIAIAZBAWohAUEZDCALIAEgBEYEQEGuASECDPMBCwJAAkACQAJAIAEtAABBLWsOIwAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAEkJCQkJAIkJCQDJAsgAUEBaiEBQY4BIQIM3AELIAFBAWohAUGPASECDNsBCyABQQFqIQFBlAEhAgzaAQsgAUEBaiEBQZUBIQIM2QELQa0BIQIgASAERg3xASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHX1ABqLQAARw0eIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzyAQsgA0EANgIAIAZBAWohAUELDB4LIAEgBEYEQEGsASECDPEBCwJAAkAgAS0AAEHBAGsOAwAgASALIAFBAWohAUGQASECDNgBCyABQQFqIQFBkwEhAgzXAQsgASAERgRAQasBIQIM8AELAkACQCABLQAAQcEAaw4PAB8fHx8fHx8fHx8fHx8BHwsgAUEBaiEBQZEBIQIM1wELIAFBAWohAUGSASECDNYBCyABIARGBEBBqgEhAgzvAQsgAS0AAEHMAEcNHCABQQFqIQFBCgwbC0GpASECIAEgBEYN7QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABB0dQAai0AAEcNGiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7gELIANBADYCACAGQQFqIQFBHgwaC0GoASECIAEgBEYN7AEgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBytQAai0AAEcNGSAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7QELIANBADYCACAGQQFqIQFBFQwZC0GnASECIAEgBEYN6wEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBx9QAai0AAEcNGCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7AELIANBADYCACAGQQFqIQFBFwwYC0GmASECIAEgBEYN6gEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBwdQAai0AAEcNFyAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6wELIANBADYCACAGQQFqIQFBGAwXCyABIARGBEBBpQEhAgzqAQsCQAJAIAEtAABByQBrDgcAGRkZGRkBGQsgAUEBaiEBQYsBIQIM0QELIAFBAWohAUGMASECDNABC0GkASECIAEgBEYN6AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBptUAai0AAEcNFSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6QELIANBADYCACAGQQFqIQFBCQwVC0GjASECIAEgBEYN5wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBpNUAai0AAEcNFCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6AELIANBADYCACAGQQFqIQFBHwwUC0GiASECIAEgBEYN5gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBvtQAai0AAEcNEyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5wELIANBADYCACAGQQFqIQFBAgwTC0GhASECIAEgBEYN5QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGA0AgAS0AACAAQbzUAGotAABHDREgAEEBRg0CIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADOUBCyABIARGBEBBoAEhAgzlAQtBASABLQAAQd8ARw0RGiABQQFqIQFBhwEhAgzLAQsgA0EANgIAIAZBAWohAUGIASECDMoBC0GfASECIAEgBEYN4gEgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNDyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4wELIANBADYCACAGQQFqIQFBKQwPC0GeASECIAEgBEYN4QEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBuNQAai0AAEcNDiAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4gELIANBADYCACAGQQFqIQFBLQwOCyABIARGBEBBnQEhAgzhAQsgAS0AAEHFAEcNDiABQQFqIQFBhAEhAgzHAQsgASAERgRAQZwBIQIM4AELAkACQCABLQAAQcwAaw4IAA8PDw8PDwEPCyABQQFqIQFBggEhAgzHAQsgAUEBaiEBQYMBIQIMxgELQZsBIQIgASAERg3eASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEGz1ABqLQAARw0LIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzfAQsgA0EANgIAIAZBAWohAUEjDAsLQZoBIQIgASAERg3dASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGw1ABqLQAARw0KIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzeAQsgA0EANgIAIAZBAWohAUEADAoLIAEgBEYEQEGZASECDN0BCwJAAkAgAS0AAEHIAGsOCAAMDAwMDAwBDAsgAUEBaiEBQf0AIQIMxAELIAFBAWohAUGAASECDMMBCyABIARGBEBBmAEhAgzcAQsCQAJAIAEtAABBzgBrDgMACwELCyABQQFqIQFB/gAhAgzDAQsgAUEBaiEBQf8AIQIMwgELIAEgBEYEQEGXASECDNsBCyABLQAAQdkARw0IIAFBAWohAUEIDAcLQZYBIQIgASAERg3ZASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEGs1ABqLQAARw0GIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzaAQsgA0EANgIAIAZBAWohAUEFDAYLQZUBIQIgASAERg3YASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGm1ABqLQAARw0FIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzZAQsgA0EANgIAIAZBAWohAUEWDAULQZQBIQIgASAERg3XASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0EIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzYAQsgA0EANgIAIAZBAWohAUEQDAQLIAEgBEYEQEGTASECDNcBCwJAAkAgAS0AAEHDAGsODAAGBgYGBgYGBgYGAQYLIAFBAWohAUH5ACECDL4BCyABQQFqIQFB+gAhAgy9AQtBkgEhAiABIARGDdUBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQaDUAGotAABHDQIgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNYBCyADQQA2AgAgBkEBaiEBQSQMAgsgA0EANgIADAILIAEgBEYEQEGRASECDNQBCyABLQAAQcwARw0BIAFBAWohAUETCzoAKSADKAIEIQAgA0EANgIEIAMgACABEC4iAA0CDAELQQAhAiADQQA2AhwgAyABNgIUIANB/h82AhAgA0EGNgIMDNEBC0H4ACECDLcBCyADQZABNgIcIAMgATYCFCADIAA2AgxBACECDM8BC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUYNASADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgzOAQtB9wAhAgy0AQsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDMwBCyABIARGBEBBjwEhAgzMAQsCQCABLQAAQSBGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GbHzYCECADQQY2AgxBACECDMwBC0ECIQIMsgELA0AgAS0AAEEgRw0CIAQgAUEBaiIBRw0AC0GOASECDMoBCyABIARGBEBBjQEhAgzKAQsCQCABLQAAQQlrDgRKAABKAAtB9QAhAgywAQsgAy0AKUEFRgRAQfYAIQIMsAELQfQAIQIMrwELIAEgBEYEQEGMASECDMgBCyADQRA2AgggAyABNgIEDAoLIAEgBEYEQEGLASECDMcBCwJAIAEtAABBCWsOBEcAAEcAC0HzACECDK0BCyABIARHBEAgA0EQNgIIIAMgATYCBEHxACECDK0BC0GKASECDMUBCwJAIAEgBEcEQANAIAEtAABBoNAAai0AACIAQQNHBEACQCAAQQFrDgJJAAQLQfAAIQIMrwELIAQgAUEBaiIBRw0AC0GIASEC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BCABQQFqIgFHDQALQfsAIQIMpwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMpgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMpQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMpAELIANBADYCHCADIAE2AhQgA0G8CjYCECADQQc2AgxBACECDKMBC0HPACECDIkBC0HRACECDIgBC0HnACECDIcBCyABIARGBEBB+gAhAgygAQsCQCABLQAAQQlrDgQgAAAgAAsgAUEBaiEBQeYAIQIMhgELIAEgBEYEQEH5ACECDJ8BCwJAIAEtAABBCWsOBB8AAB8AC0EAIQACQCADKAI4IgJFDQAgAigCOCICRQ0AIAMgAhEAACEACyAARQRAQeIBIQIMhgELIABBFUcEQCADQQA2AhwgAyABNgIUIANByQ02AhAgA0EaNgIMQQAhAgyfAQsgA0H4ADYCHCADIAE2AhQgA0HqGjYCECADQRU2AgxBACECDJ4BCyABIARHBEAgA0ENNgIIIAMgATYCBEHkACECDIUBC0H3ACECDJ0BCyABIARGBEBB9gAhAgydAQsCQAJAAkAgAS0AAEHIAGsOCwABCwsLCwsLCwsCCwsgAUEBaiEBQd0AIQIMhQELIAFBAWohAUHgACECDIQBCyABQQFqIQFB4wAhAgyDAQtB9QAhAiABIARGDZsBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbXVAGotAABHDQggAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJwBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIABEAgA0H0ADYCHCADIAE2AhQgAyAANgIMQQAhAgycAQtB4gAhAgyCAQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJwBC0HhACECDIIBCyADQfMANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMmgELIAMtACkiAEEja0ELSQ0JAkAgAEEGSw0AQQEgAHRBygBxRQ0ADAoLQQAhAiADQQA2AhwgAyABNgIUIANB7Qk2AhAgA0EINgIMDJkBC0HyACECIAEgBEYNmAEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBs9UAai0AAEcNBSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMmQELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfEANgIcIAMgATYCFCADIAA2AgxBACECDJkBC0HfACECDH8LQQAhAAJAIAMoAjgiAkUNACACKAI0IgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANB6g02AhAgA0EmNgIMQQAhAgyZAQtB3gAhAgx/CyADQfAANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMlwELIAMtAClBIUYNBiADQQA2AhwgAyABNgIUIANBkQo2AhAgA0EINgIMQQAhAgyWAQtB7wAhAiABIARGDZUBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDVAGotAABHDQIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIARQ0CIANB7QA2AhwgAyABNgIUIAMgADYCDEEAIQIMlQELIANBADYCAAsgAygCBCEAIANBADYCBCADIAAgARArIgBFDYABIANB7gA2AhwgAyABNgIUIAMgADYCDEEAIQIMkwELQdwAIQIMeQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJMBC0HbACECDHkLIANB7AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyRAQsgAy0AKSIAQSNJDQAgAEEuRg0AIANBADYCHCADIAE2AhQgA0HJCTYCECADQQg2AgxBACECDJABC0HaACECDHYLIAEgBEYEQEHrACECDI8BCwJAIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMjwELQdkAIQIMdQsgASAERwRAIANBDjYCCCADIAE2AgRB2AAhAgx1C0HqACECDI0BCyABIARGBEBB6QAhAgyNAQsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFB1wAhAgx0CyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeiADQegANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyABIARGBEBB5wAhAgyMAQsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ17IANB5gA2AhwgAyABNgIUIAMgADYCDEEAIQIMjAELQdYAIQIMcgsgASAERgRAQeUAIQIMiwELQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIANgIcIAMgATYCFCADIAA2AgxBACECDI0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNfSADQeMANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeyADQeQANgIcIAMgATYCFCADIAA2AgwMiwELQdQAIQIMcQsgAy0AKUEiRg2GAUHTACECDHALQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALIABFBEBB1QAhAgxwCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQaQNNgIQIANBITYCDEEAIQIMiQELIANB4QA2AhwgAyABNgIUIANB0Bo2AhAgA0EVNgIMQQAhAgyIAQsgASAERgRAQeAAIQIMiAELAkACQAJAAkACQCABLQAAQQprDgQBBAQABAsgAUEBaiEBDAELIAFBAWohASADQS9qLQAAQQFxRQ0BC0HSACECDHALIANBADYCHCADIAE2AhQgA0G2ETYCECADQQk2AgxBACECDIgBCyADQQA2AhwgAyABNgIUIANBthE2AhAgA0EJNgIMQQAhAgyHAQsgASAERgRAQd8AIQIMhwELIAEtAABBCkYEQCABQQFqIQEMCQsgAy0ALkHAAHENCCADQQA2AhwgAyABNgIUIANBthE2AhAgA0ECNgIMQQAhAgyGAQsgASAERgRAQd0AIQIMhgELIAEtAAAiAkENRgRAIAFBAWohAUHQACECDG0LIAEhACACQQlrDgQFAQEFAQsgBCABIgBGBEBB3AAhAgyFAQsgAC0AAEEKRw0AIABBAWoMAgtBACECIANBADYCHCADIAA2AhQgA0HKLTYCECADQQc2AgwMgwELIAEgBEYEQEHbACECDIMBCwJAIAEtAABBCWsOBAMAAAMACyABQQFqCyEBQc4AIQIMaAsgASAERgRAQdoAIQIMgQELIAEtAABBCWsOBAABAQABC0EAIQIgA0EANgIcIANBmhI2AhAgA0EHNgIMIAMgAUEBajYCFAx/CyADQYASOwEqQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2QA2AhwgAyABNgIUIANB6ho2AhAgA0EVNgIMQQAhAgx+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsg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c3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",_l;Object.defineProperty(mE,"exports",{get:()=>_l||(_l=cD.from(uD,"base64"))})});var DE=b((mV,SE)=>{"use strict";var{Buffer:gD}=require("node:buffer"),hD="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIcIgJBAmsO/AEB+QECAwQFBgcICQoLDA0ODxAREvgBE/cBFBX2ARYX9QEYGRobHB0eHyD9AfsBIfQBIiMkJSYnKCkqK/MBLC0uLzAxMvIB8QEzNPAB7wE1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk/6AVBRUlPuAe0BVOwBVesBVldYWVrqAVtcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAekB6AHPAecB0AHmAdEB0gHTAdQB5QHVAdYB1wHYAdkB2gHbAdwB3QHeAd8B4AHhAeIB4wEA/AELQQAM4wELQQ4M4gELQQ0M4QELQQ8M4AELQRAM3wELQRMM3gELQRQM3QELQRUM3AELQRYM2wELQRcM2gELQRgM2QELQRkM2AELQRoM1wELQRsM1gELQRwM1QELQR0M1AELQR4M0wELQR8M0gELQSAM0QELQSEM0AELQQgMzwELQSIMzgELQSQMzQELQSMMzAELQQcMywELQSUMygELQSYMyQELQScMyAELQSgMxwELQRIMxgELQREMxQELQSkMxAELQSoMwwELQSsMwgELQSwMwQELQd4BDMABC0EuDL8BC0EvDL4BC0EwDL0BC0ExDLwBC0EyDLsBC0EzDLoBC0E0DLkBC0HfAQy4AQtBNQy3AQtBOQy2AQtBDAy1AQtBNgy0AQtBNwyzAQtBOAyyAQtBPgyxAQtBOgywAQtB4AEMrwELQQsMrgELQT8MrQELQTsMrAELQQoMqwELQTwMqgELQT0MqQELQeEBDKgBC0HBAAynAQtBwAAMpgELQcIADKUBC0EJDKQBC0EtDKMBC0HDAAyiAQtBxAAMoQELQcUADKABC0HGAAyfAQtBxwAMngELQcgADJ0BC0HJAAycAQtBygAMmwELQcsADJoBC0HMAAyZAQtBzQAMmAELQc4ADJcBC0HPAAyWAQtB0AAMlQELQdEADJQBC0HSAAyTAQtB0wAMkgELQdUADJEBC0HUAAyQAQtB1gAMjwELQdcADI4BC0HYAAyNAQtB2QAMjAELQdoADIsBC0HbAAyKAQtB3AAMiQELQd0ADIgBC0HeAAyHAQtB3wAMhgELQeAADIUBC0HhAAyEAQtB4gAMgwELQeMADIIBC0HkAAyBAQtB5QAMgAELQeIBDH8LQeYADH4LQecADH0LQQYMfAtB6AAMewtBBQx6C0HpAAx5C0EEDHgLQeoADHcLQesADHYLQewADHULQe0ADHQLQQMMcwtB7gAMcgtB7wAMcQtB8AAMcAtB8gAMbwtB8QAMbgtB8wAMbQtB9AAMbAtB9QAMawtB9gAMagtBAgxpC0H3AAxoC0H4AAxnC0H5AAxmC0H6AAxlC0H7AAxkC0H8AAxjC0H9AAxiC0H+AAxhC0H/AAxgC0GAAQxfC0GBAQxeC0GCAQxdC0GDAQxcC0GEAQxbC0GFAQxaC0GGAQxZC0GHAQxYC0GIAQxXC0GJAQxWC0GKAQxVC0GLAQxUC0GMAQxTC0GNAQxSC0GOAQxRC0GPAQxQC0GQAQxPC0GRAQxOC0GSAQxNC0GTAQxMC0GUAQxLC0GVAQxKC0GWAQxJC0GXAQxIC0GYAQxHC0GZAQxGC0GaAQxFC0GbAQxEC0GcAQxDC0GdAQxCC0GeAQxBC0GfAQxAC0GgAQw/C0GhAQw+C0GiAQw9C0GjAQw8C0GkAQw7C0GlAQw6C0GmAQw5C0GnAQw4C0GoAQw3C0GpAQw2C0GqAQw1C0GrAQw0C0GsAQwzC0GtAQwyC0GuAQwxC0GvAQwwC0GwAQwvC0GxAQwuC0GyAQwtC0GzAQwsC0G0AQwrC0G1AQwqC0G2AQwpC0G3AQwoC0G4AQwnC0G5AQwmC0G6AQwlC0G7AQwkC0G8AQwjC0G9AQwiC0G+AQwhC0G/AQwgC0HAAQwfC0HBAQweC0HCAQwdC0EBDBwLQcMBDBsLQcQBDBoLQcUBDBkLQcYBDBgLQccBDBcLQcgBDBYLQckBDBULQcoBDBQLQcsBDBMLQcwBDBILQc0BDBELQc4BDBALQc8BDA8LQdABDA4LQdEBDA0LQdIBDAwLQdMBDAsLQdQBDAoLQdUBDAkLQdYBDAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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A0EXNgIcIAMgADYCDCADIAFBAWo2AhQM+AILIABBFUYNI0EAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAz3AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwdCyADQRk2AhwgAyAANgIMIAMgAUEBajYCFAz2AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQzvAgsgA0EaNgIcIAMgADYCDCADIAFBAWo2AhQM9QILIABBFUYNH0EAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAz0AgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDBsLIANBHDYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgzzAgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDOsCCyADQR02AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8gILIABBO0cNASABQQFqIQELQSYhAgzXAgtBACECIANBADYCHCADIAE2AhQgA0GfFTYCECADQQw2AgwM7wILIAEgBEcEQANAIAEtAABBIEcNhAIgBCABQQFqIgFHDQALQSwhAgzvAgtBLCECDO4CCyABIARGBEBBNCECDO4CCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtBNCECDO8CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNnwIgA0EyNgIcIAMgATYCFCADIAA2AgxBACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUEQCABQQFqIQEMnwILIANBMjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgztAgsgASAERwRAAkADQCABLQAAQTBrIgBB/wFxQQpPBEBBOiECDNcCCyADKQMgIgtCmbPmzJmz5swZVg0BIAMgC0IKfiIKNwMgIAogAK1C/wGDIgtCf4VWDQEgAyAKIAt8NwMgIAQgAUEBaiIBRw0AC0HAACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABQQFqIgEQMSIADRcM4gILQcAAIQIM7AILIAEgBEYEQEHJACECDOwCCwJAA0ACQCABLQAAQQlrDhgAAqICogKpAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAgCiAgsgBCABQQFqIgFHDQALQckAIQIM7AILIAFBAWohASADQS9qLQAAQQFxDaUCIANBADYCHCADIAE2AhQgA0GXEDYCECADQQo2AgxBACECDOsCCyABIARHBEADQCABLQAAQSBHDRUgBCABQQFqIgFHDQALQfgAIQIM6wILQfgAIQIM6gILIANBAjoAKAw4C0EAIQIgA0EANgIcIANBvws2AhAgA0ECNgIMIAMgAUEBajYCFAzoAgtBACECDM4CC0ENIQIMzQILQRMhAgzMAgtBFSECDMsCC0EWIQIMygILQRghAgzJAgtBGSECDMgCC0EaIQIMxwILQRshAgzGAgtBHCECDMUCC0EdIQIMxAILQR4hAgzDAgtBHyECDMICC0EgIQIMwQILQSIhAgzAAgtBIyECDL8CC0ElIQIMvgILQeUAIQIMvQILIANBPTYCHCADIAE2AhQgAyAANgIMQQAhAgzVAgsgA0EbNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIM1AILIANBIDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNMCCyADQRM2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzSAgsgA0ELNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0QILIANBEDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNACCyADQSA2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzPAgsgA0ELNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzgILIANBDDYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM0CC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAzMAgsCQANAAkAgAS0AAEEKaw4EAAICAAILIAQgAUEBaiIBRw0AC0H9ASECDMwCCwJAAkAgAy0ANkEBRw0AQQAhAAJAIAMoAjgiAkUNACACKAJgIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB/AE2AhwgAyABNgIUIANB3Bk2AhAgA0EVNgIMQQAhAgzNAgtB3AEhAgyzAgsgA0EANgIcIAMgATYCFCADQfkLNgIQIANBHzYCDEEAIQIMywILAkACQCADLQAoQQFrDgIEAQALQdsBIQIMsgILQdQBIQIMsQILIANBAjoAMUEAIQACQCADKAI4IgJFDQAgAigCACICRQ0AIAMgAhEAACEACyAARQRAQd0BIQIMsQILIABBFUcEQCADQQA2AhwgAyABNgIUIANBtAw2AhAgA0EQNgIMQQAhAgzKAgsgA0H7ATYCHCADIAE2AhQgA0GBGjYCECADQRU2AgxBACECDMkCCyABIARGBEBB+gEhAgzJAgsgAS0AAEHIAEYNASADQQE6ACgLQcABIQIMrgILQdoBIQIMrQILIAEgBEcEQCADQQw2AgggAyABNgIEQdkBIQIMrQILQfkBIQIMxQILIAEgBEYEQEH4ASECDMUCCyABLQAAQcgARw0EIAFBAWohAUHYASECDKsCCyABIARGBEBB9wEhAgzEAgsCQAJAIAEtAABBxQBrDhAABQUFBQUFBQUFBQUFBQUBBQsgAUEBaiEBQdYBIQIMqwILIAFBAWohAUHXASECDKoCC0H2ASECIAEgBEYNwgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABButUAai0AAEcNAyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMwwILIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgBFBEBB4wEhAgyqAgsgA0H1ATYCHCADIAE2AhQgAyAANgIMQQAhAgzCAgtB9AEhAiABIARGDcECIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjVAGotAABHDQIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMICCyADQYEEOwEoIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgANAwwCCyADQQA2AgALQQAhAiADQQA2AhwgAyABNgIUIANB5R82AhAgA0EINgIMDL8CC0HVASECDKUCCyADQfMBNgIcIAMgATYCFCADIAA2AgxBACECDL0CC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ1uIABBFUcEQCADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgy9AgsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDLwCCyABIARHBEAgA0ENNgIIIAMgATYCBEHTASECDKMCC0HyASECDLsCCyABIARGBEBB8QEhAgy7AgsCQAJAAkAgAS0AAEHIAGsOCwABCAgICAgICAgCCAsgAUEBaiEBQdABIQIMowILIAFBAWohAUHRASECDKICCyABQQFqIQFB0gEhAgyhAgtB8AEhAiABIARGDbkCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEG11QBqLQAARw0EIABBAkYNAyAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy5AgtB7wEhAiABIARGDbgCIAMoAgAiACAEIAFraiEGIAEgAGtBAWohBQNAIAEtAAAgAEGz1QBqLQAARw0DIABBAUYNAiAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy4AgtB7gEhAiABIARGDbcCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEGw1QBqLQAARw0CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy3AgsgAygCBCEAIANCADcDACADIAAgBUEBaiIBECsiAEUNAiADQewBNgIcIAMgATYCFCADIAA2AgxBACECDLYCCyADQQA2AgALIAMoAgQhACADQQA2AgQgAyAAIAEQKyIARQ2cAiADQe0BNgIcIAMgATYCFCADIAA2AgxBACECDLQCC0HPASECDJoCC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMtAILQc4BIQIMmgILIANB6wE2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyyAgsgASAERgRAQesBIQIMsgILIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMsQILQc0BIQIMlwILIAEgBEcEQCADQQ42AgggAyABNgIEQcwBIQIMlwILQeoBIQIMrwILIAEgBEYEQEHpASECDK8CCyABLQAAQTBrIgBB/wFxQQpJBEAgAyAAOgAqIAFBAWohAUHLASECDJYCCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNlwIgA0HoATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgASAERgRAQecBIQIMrgILAkAgAS0AAEEuRgRAIAFBAWohAQwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmAIgA0HmATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgtBygEhAgyUAgsgASAERgRAQeUBIQIMrQILQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIBNgIcIAMgATYCFCADIAA2AgxBACECDK8CCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmgIgA0HjATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5AE2AhwgAyABNgIUIAMgADYCDAytAgtByQEhAgyTAgtBACEAAkAgAygCOCICRQ0AIAIoAkQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GkDTYCECADQSE2AgxBACECDK0CC0HIASECDJMCCyADQeEBNgIcIAMgATYCFCADQdAaNgIQIANBFTYCDEEAIQIMqwILIAEgBEYEQEHhASECDKsCCwJAIAEtAABBIEYEQCADQQA7ATQgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GZETYCECADQQk2AgxBACECDKsCC0HHASECDJECCyABIARGBEBB4AEhAgyqAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKsCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyqAgtBxgEhAgyQAgsgASAERgRAQd8BIQIMqQILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyqAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqQILQcUBIQIMjwILIAEgBEYEQEHeASECDKgCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqQILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKgCC0HEASECDI4CCyABIARGBEBB3QEhAgynAgsCQAJAAkACQCABLQAAQQprDhcCAwMAAwMDAwMDAwMDAwMDAwMDAwMDAQMLIAFBAWoMBQsgAUEBaiEBQcMBIQIMjwILIAFBAWohASADQS9qLQAAQQFxDQggA0EANgIcIAMgATYCFCADQY0LNgIQIANBDTYCDEEAIQIMpwILIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKYCCyABIARHBEAgA0EPNgIIIAMgATYCBEEBIQIMjQILQdwBIQIMpQILAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0HbASECDKYCCyADKAIEIQAgA0EANgIEIAMgACABEC0iAEUEQCABQQFqIQEMBAsgA0HaATYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgylAgsgAygCBCEAIANBADYCBCADIAAgARAtIgANASABQQFqCyEBQcEBIQIMigILIANB2QE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMogILQcIBIQIMiAILIANBL2otAABBAXENASADQQA2AhwgAyABNgIUIANB5Bw2AhAgA0EZNgIMQQAhAgygAgsgASAERgRAQdkB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CyADIAU2AgAMkAILIANBADYCACAGQQFqIQFBGgw8C0HKASECIAEgBEYNjgIgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBjdUAai0AAEcNOyAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMjwILIANBADYCACAGQQFqIQFBIQw7CyABIARGBEBByQEhAgyOAgsCQAJAIAEtAABBwQBrDhQAPT09PT09PT09PT09PT09PT09AT0LIAFBAWohAUGtASECDPUBCyABQQFqIQFBsAEhAgz0AQsgASAERgRAQcgBIQIMjQILAkACQCABLQAAQdUAaw4LADw8PDw8PDw8PAE8CyABQQFqIQFBrgEhAgz0AQsgAUEBaiEBQa8BIQIM8wELQccBIQIgASAERg2LAiADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw04IABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyMAgsgA0EANgIAIAZBAWohAUEqDDgLIAEgBEYEQEHGASECDIsCCyABLQAAQdAARw04IAFBAWohAUElDDcLQcUBIQIgASAERg2JAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGB1QBqLQAARw02IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyKAgsgA0EANgIAIAZBAWohAUEODDYLIAEgBEYEQEHEASECDIkCCyABLQAAQcUARw02IAFBAWohAUGrASECDO8BCyABIARGBEBBwwEhAgyIAgsCQAJAAkACQCABLQAAQcIAaw4PAAECOTk5OTk5OTk5OTkDOQsgAUEBaiEBQacBIQIM8QELIAFBAWohAUGoASECDPABCyABQQFqIQFBqQEhAgzvAQsgAUEBaiEBQaoBIQIM7gELQcIBIQIgASAERg2GAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANA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BTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",Zl;Object.defineProperty(SE,"exports",{get:()=>Zl||(Zl=gD.from(hD,"base64"))})});var gs=b((SV,ME)=>{"use strict";var wE=["GET","HEAD","POST"],dD=new Set(wE),ED=[101,204,205,304],RE=[301,302,303,307,308],fD=new Set(RE),bE=["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"],ID=new Set(bE),NE=["no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],CD=["",...NE],QD=new Set(NE),BD=["follow","manual","error"],kE=["GET","HEAD","OPTIONS","TRACE"],pD=new Set(kE),yD=["navigate","same-origin","no-cors","cors"],mD=["omit","same-origin","include"],SD=["default","no-store","reload","no-cache","force-cache","only-if-cached"],DD=["content-encoding","content-language","content-location","content-type","content-length"],wD=["half"],FE=["CONNECT","TRACE","TRACK"],RD=new Set(FE),UE=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],bD=new Set(UE);ME.exports={subresource:UE,forbiddenMethods:FE,requestBodyHeader:DD,referrerPolicy:CD,requestRedirect:BD,requestMode:yD,requestCredentials:mD,requestCache:SD,redirectStatus:RE,corsSafeListedMethods:wE,nullBodyStatus:ED,safeMethods:kE,badPorts:bE,requestDuplex:wD,subresourceSet:bD,badPortsSet:ID,redirectStatusSet:fD,corsSafeListedMethodsSet:dD,safeMethodsSet:pD,forbiddenMethodsSet:RD,referrerPolicyTokens:QD}});var Kl=b((DV,vE)=>{"use strict";var Xl=Symbol.for("undici.globalOrigin.1");function ND(){return globalThis[Xl]}function kD(t){if(t===void 0){Object.defineProperty(globalThis,Xl,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let e=new URL(t);if(e.protocol!=="http:"&&e.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${e.protocol}`);Object.defineProperty(globalThis,Xl,{value:e,writable:!0,enumerable:!1,configurable:!1})}vE.exports={getGlobalOrigin:ND,setGlobalOrigin:kD}});var Vo=b((wV,TE)=>{"use strict";var FD=new TextDecoder;function UD(t){return t.length===0?"":(t[0]===239&&t[1]===187&&t[2]===191&&(t=t.subarray(3)),FD.decode(t))}TE.exports={utf8DecodeBytes:UD}});var oA=b((RV,YE)=>{"use strict";var LE=require("node:assert"),{utf8DecodeBytes:MD}=Vo();function vD(t,e,A){let r="";for(;A.position<e.length&&t(e[A.position]);)r+=e[A.position],A.position++;return r}function TD(t,e,A){let r=e.indexOf(t,A.position),n=A.position;return r===-1?(A.position=e.length,e.slice(n)):(A.position=r,e.slice(n,A.position))}var LD=/[\u0009\u000A\u000C\u000D\u0020]/g;function xD(t){t=t.replace(LD,"");let e=t.length;if(e%4===0&&t.charCodeAt(e-1)===61&&(--e,t.charCodeAt(e-1)===61&&--e),e%4===1||/[^+/0-9A-Za-z]/.test(t.length===e?t:t.substring(0,e)))return"failure";let A=Buffer.from(t,"base64");return new Uint8Array(A.buffer,A.byteOffset,A.byteLength)}function xE(t){return t===9||t===10||t===12||t===13||t===32}function HD(t){let e=t.length;if(65535>e)return String.fromCharCode.apply(null,t);let A="",r=0,n=65535;for(;r<e;)r+n>e&&(n=e-r),A+=String.fromCharCode.apply(null,t.subarray(r,r+=n));return A}var YD=/[^\x00-\xFF]/;function OD(t){return LE(!YD.test(t)),t}function GD(t){return JSON.parse(MD(t))}function VD(t,e=!0,A=!0){return HE(t,e,A,xE)}function HE(t,e,A,r){let n=0,s=t.length-1;if(e)for(;n<t.length&&r(t.charCodeAt(n));)n++;if(A)for(;s>0&&r(t.charCodeAt(s));)s--;return n===0&&s===t.length-1?t:t.slice(n,s+1)}function qD(t){let e=JSON.stringify(t);if(e===void 0)throw new TypeError("Value is not JSON serializable");return LE(typeof e=="string"),e}YE.exports={collectASequenceOfCodePoints:vD,collectASequenceOfCodePointsFast:TD,forgivingBase64:xD,isASCIIWhitespace:xE,isomorphicDecode:HD,isomorphicEncode:OD,parseJSONFromBytes:GD,removeASCIIWhitespace:VD,removeChars:HE,serializeJavascriptValueToJSONString:qD}});var Bt=b((bV,PE)=>{"use strict";var Jo=require("node:assert"),{forgivingBase64:JD,collectASequenceOfCodePoints:zl,collectASequenceOfCodePointsFast:hs,isomorphicDecode:PD,removeASCIIWhitespace:WD,removeChars:_D}=oA(),jD=new TextEncoder,ds=/^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u,ZD=/[\u000A\u000D\u0009\u0020]/u,XD=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;function KD(t){Jo(t.protocol==="data:");let e=VE(t,!0);e=e.slice(5);let A={position:0},r=hs(",",e,A),n=r.length;if(r=WD(r,!0,!0),A.position>=e.length)return"failure";A.position++;let s=e.slice(n+1),o=qE(s);if(/;(?:\u0020*)base64$/ui.test(r)){let a=PD(o);if(o=JD(a),o==="failure")return"failure";r=r.slice(0,-6),r=r.replace(/(\u0020+)$/u,""),r=r.slice(0,-1)}r.startsWith(";")&&(r="text/plain"+r);let i=$l(r);return i==="failure"&&(i=$l("text/plain;charset=US-ASCII")),{mimeType:i,body:o}}function VE(t,e=!1){if(!e)return t.href;let A=t.href,r=t.hash.length,n=r===0?A:A.substring(0,A.length-r);return!r&&A.endsWith("#")?n.slice(0,-1):n}function qE(t){let e=jD.encode(t);return zD(e)}function OE(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function GE(t){return t>=48&&t<=57?t-48:(t&223)-55}function zD(t){let e=t.length,A=new Uint8Array(e),r=0,n=0;for(;n<e;){let s=t[n];s!==37?A[r++]=s:s===37&&!(OE(t[n+1])&&OE(t[n+2]))?A[r++]=37:(A[r++]=GE(t[n+1])<<4|GE(t[n+2]),n+=2),++n}return e===r?A:A.subarray(0,r)}function $l(t){t=qo(t,!0,!0);let e={position:0},A=hs("/",t,e);if(A.length===0||!ds.test(A)||e.position>=t.length)return"failure";e.position++;let r=hs(";",t,e);if(r=qo(r,!1,!0),r.length===0||!ds.test(r))return"failure";let n=A.toLowerCase(),s=r.toLowerCase(),o={type:n,subtype:s,parameters:new Map,essence:`${n}/${s}`};for(;e.position<t.length;){e.position++,zl(l=>ZD.test(l),t,e);let i=zl(l=>l!==";"&&l!=="=",t,e);if(i=i.toLowerCase(),e.position<t.length){if(t[e.position]===";")continue;e.position++}if(e.position>=t.length)break;let a=null;if(t[e.position]==='"')a=JE(t,e,!0),hs(";",t,e);else if(a=hs(";",t,e),a=qo(a,!1,!0),a.length===0)continue;i.length!==0&&ds.test(i)&&(a.length===0||XD.test(a))&&!o.parameters.has(i)&&o.parameters.set(i,a)}return o}function JE(t,e,A=!1){let r=e.position,n="";for(Jo(t[e.position]==='"'),e.position++;n+=zl(o=>o!=='"'&&o!=="\\",t,e),!(e.position>=t.length);){let s=t[e.position];if(e.position++,s==="\\"){if(e.position>=t.length){n+="\\";break}n+=t[e.position],e.position++}else{Jo(s==='"');break}}return A?n:t.slice(r,e.position)}function $D(t){Jo(t!=="failure");let{parameters:e,essence:A}=t,r=A;for(let[n,s]of e.entries())r+=";",r+=n,r+="=",ds.test(s)||(s=s.replace(/[\\"]/ug,"\\$&"),s='"'+s,s+='"'),r+=s;return r}function ew(t){return t===13||t===10||t===9||t===32}function qo(t,e=!0,A=!0){return _D(t,e,A,ew)}function tw(t){switch(t.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 t.subtype.endsWith("+json")?"application/json":t.subtype.endsWith("+xml")?"application/xml":""}PE.exports={dataURLProcessor:KD,URLSerializer:VE,stringPercentDecode:qE,parseMIMEType:$l,collectAnHTTPQuotedString:JE,serializeAMimeType:$D,removeHTTPWhitespace:qo,minimizeSupportedMimeType:tw,HTTP_TOKEN_CODEPOINTS:ds}});var iA=b((NV,tc)=>{"use strict";var WE={__proto__:null,"node:crypto":()=>require("node:crypto"),"node:sqlite":()=>require("node:sqlite"),"node:worker_threads":()=>require("node:worker_threads"),"node:zlib":()=>require("node:zlib")};function Aw(t){try{return WE[t](),!0}catch(e){if(e.code!=="ERR_UNKNOWN_BUILTIN_MODULE"&&e.code!=="ERR_NO_CRYPTO")throw e;return!1}}function rw(t,e){return typeof WE[t]()[e]<"u"}var _E=["markAsUncloneable","zstd"],nw={markAsUncloneable:["node:worker_threads","markAsUncloneable"],zstd:["node:zlib","createZstdDecompress"]},jE=["crypto","sqlite"],sw=[...jE,..._E];function ow(t){if(jE.includes(t))return Aw(`node:${t}`);if(_E.includes(t)){let[e,A]=nw[t];return rw(e,A)}throw new TypeError(`unknown feature: ${t}`)}var ec=class{#e=new Map;clear(){this.#e.clear()}has(e){return this.#e.get(e)??this.#t(e)}set(e,A){if(sw.includes(e)===!1)throw new TypeError(`unknown feature: ${e}`);this.#e.set(e,A)}#t(e){let A=ow(e);return this.#e.set(e,A),A}},ZE=new ec;tc.exports.runtimeFeatures=ZE;tc.exports.default=ZE});var Me=b((kV,KE)=>{"use strict";var iw=require("node:assert"),{types:Ce,inspect:aw}=require("node:util"),{runtimeFeatures:lw}=iA(),Ac=1,rc=2,Po=3,Wo=4,nc=5,_o=6,sc=7,nt=8,XE=Function.call.bind(Function.prototype[Symbol.hasInstance]),w={converters:{},util:{},errors:{},is:{}};w.errors.exception=function(t){return new TypeError(`${t.header}: ${t.message}`)};w.errors.conversionFailed=function(t){let e=t.types.length===1?"":" one of",A=`${t.argument} could not be converted to${e}: ${t.types.join(", ")}.`;return w.errors.exception({header:t.prefix,message:A})};w.errors.invalidArgument=function(t){return w.errors.exception({header:t.prefix,message:`"${t.value}" is an invalid ${t.type}.`})};w.brandCheck=function(t,e){if(!XE(e,t)){let A=new TypeError("Illegal invocation");throw A.code="ERR_INVALID_THIS",A}};w.brandCheckMultiple=function(t){let e=t.map(A=>w.util.MakeTypeAssertion(A));return A=>{if(e.every(r=>!r(A))){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}}};w.argumentLengthCheck=function({length:t},e,A){if(t<e)throw w.errors.exception({message:`${e} argument${e!==1?"s":""} required, but${t?" only":""} ${t} found.`,header:A})};w.illegalConstructor=function(){throw w.errors.exception({header:"TypeError",message:"Illegal constructor"})};w.util.MakeTypeAssertion=function(t){return e=>XE(t,e)};w.util.Type=function(t){switch(typeof t){case"undefined":return Ac;case"boolean":return rc;case"string":return Po;case"symbol":return Wo;case"number":return nc;case"bigint":return _o;case"function":case"object":return t===null?sc:nt}};w.util.Types={UNDEFINED:Ac,BOOLEAN:rc,STRING:Po,SYMBOL:Wo,NUMBER:nc,BIGINT:_o,NULL:sc,OBJECT:nt};w.util.TypeValueToString=function(t){switch(w.util.Type(t)){case Ac:return"Undefined";case rc:return"Boolean";case Po:return"String";case Wo:return"Symbol";case nc:return"Number";case _o:return"BigInt";case sc:return"Null";case nt:return"Object"}};w.util.markAsUncloneable=lw.has("markAsUncloneable")?require("node:worker_threads").markAsUncloneable:()=>{};w.util.ConvertToInt=function(t,e,A,r){let n,s;e===64?(n=Math.pow(2,53)-1,A==="unsigned"?s=0:s=Math.pow(-2,53)+1):A==="unsigned"?(s=0,n=Math.pow(2,e)-1):(s=Math.pow(-2,e)-1,n=Math.pow(2,e-1)-1);let o=Number(t);if(o===0&&(o=0),w.util.HasFlag(r,w.attributes.EnforceRange)){if(Number.isNaN(o)||o===Number.POSITIVE_INFINITY||o===Number.NEGATIVE_INFINITY)throw w.errors.exception({header:"Integer conversion",message:`Could not convert ${w.util.Stringify(t)} to an integer.`});if(o=w.util.IntegerPart(o),o<s||o>n)throw w.errors.exception({header:"Integer conversion",message:`Value must be between ${s}-${n}, got ${o}.`});return o}return!Number.isNaN(o)&&w.util.HasFlag(r,w.attributes.Clamp)?(o=Math.min(Math.max(o,s),n),Math.floor(o)%2===0?o=Math.floor(o):o=Math.ceil(o),o):Number.isNaN(o)||o===0&&Object.is(0,o)||o===Number.POSITIVE_INFINITY||o===Number.NEGATIVE_INFINITY?0:(o=w.util.IntegerPart(o),o=o%Math.pow(2,e),A==="signed"&&o>=Math.pow(2,e)-1?o-Math.pow(2,e):o)};w.util.IntegerPart=function(t){let e=Math.floor(Math.abs(t));return t<0?-1*e:e};w.util.Stringify=function(t){switch(w.util.Type(t)){case Wo:return`Symbol(${t.description})`;case nt:return aw(t);case Po:return`"${t}"`;case _o:return`${t}n`;default:return`${t}`}};w.util.IsResizableArrayBuffer=function(t){if(Ce.isArrayBuffer(t))return t.resizable;if(Ce.isSharedArrayBuffer(t))return t.growable;throw w.errors.exception({header:"IsResizableArrayBuffer",message:`"${w.util.Stringify(t)}" is not an array buffer.`})};w.util.HasFlag=function(t,e){return typeof t=="number"&&(t&e)===e};w.sequenceConverter=function(t){return(e,A,r,n)=>{if(w.util.Type(e)!==nt)throw w.errors.exception({header:A,message:`${r} (${w.util.Stringify(e)}) is not iterable.`});let s=typeof n=="function"?n():e?.[Symbol.iterator]?.(),o=[],i=0;if(s===void 0||typeof s.next!="function")throw w.errors.exception({header:A,message:`${r} is not iterable.`});for(;;){let{done:a,value:l}=s.next();if(a)break;o.push(t(l,A,`${r}[${i++}]`))}return o}};w.recordConverter=function(t,e){return(A,r,n)=>{if(w.util.Type(A)!==nt)throw w.errors.exception({header:r,message:`${n} ("${w.util.TypeValueToString(A)}") is not an Object.`});let s={};if(!Ce.isProxy(A)){let i=[...Object.getOwnPropertyNames(A),...Object.getOwnPropertySymbols(A)];for(let a of i){let l=w.util.Stringify(a),c=t(a,r,`Key ${l} in ${n}`),f=e(A[a],r,`${n}[${l}]`);s[c]=f}return s}let o=Reflect.ownKeys(A);for(let i of o)if(Reflect.getOwnPropertyDescriptor(A,i)?.enumerable){let l=t(i,r,n),c=e(A[i],r,n);s[l]=c}return s}};w.interfaceConverter=function(t,e){return(A,r,n)=>{if(!t(A))throw w.errors.exception({header:r,message:`Expected ${n} ("${w.util.Stringify(A)}") to be an instance of ${e}.`});return A}};w.dictionaryConverter=function(t){return t.sort((e,A)=>(e.key>A.key)-(e.key<A.key)),(e,A,r)=>{let n={};if(e!=null&&w.util.Type(e)!==nt)throw w.errors.exception({header:A,message:`Expected ${e} to be one of: Null, Undefined, Object.`});for(let s of t){let{key:o,defaultValue:i,required:a,converter:l}=s;if(a===!0&&(e==null||!Object.hasOwn(e,o)))throw w.errors.exception({header:A,message:`Missing required key "${o}".`});let c=e?.[o],f=i!==void 0;if(f&&c===void 0&&(c=i()),a||f||c!==void 0){if(c=l(c,A,`${r}.${o}`),s.allowedValues&&!s.allowedValues.includes(c))throw w.errors.exception({header:A,message:`${c} is not an accepted type. Expected one of ${s.allowedValues.join(", ")}.`});n[o]=c}}return n}};w.nullableConverter=function(t){return(e,A,r)=>e===null?e:t(e,A,r)};w.is.USVString=function(t){return typeof t=="string"&&t.isWellFormed()};w.is.ReadableStream=w.util.MakeTypeAssertion(ReadableStream);w.is.Blob=w.util.MakeTypeAssertion(Blob);w.is.URLSearchParams=w.util.MakeTypeAssertion(URLSearchParams);w.is.File=w.util.MakeTypeAssertion(File);w.is.URL=w.util.MakeTypeAssertion(URL);w.is.AbortSignal=w.util.MakeTypeAssertion(AbortSignal);w.is.MessagePort=w.util.MakeTypeAssertion(MessagePort);w.is.BufferSource=function(t){return Ce.isArrayBuffer(t)||ArrayBuffer.isView(t)&&Ce.isArrayBuffer(t.buffer)};w.util.getCopyOfBytesHeldByBufferSource=function(t){let e=t,A=e,r=0,n=0;if(Ce.isTypedArray(e)||Ce.isDataView(e)?(A=e.buffer,r=e.byteOffset,n=e.byteLength):(iw(Ce.isAnyArrayBuffer(e)),n=e.byteLength),A.detached)return new Uint8Array(0);let s=new Uint8Array(n),o=new Uint8Array(A,r,n);return s.set(o),s};w.converters.DOMString=function(t,e,A,r){if(t===null&&w.util.HasFlag(r,w.attributes.LegacyNullToEmptyString))return"";if(typeof t=="symbol")throw w.errors.exception({header:e,message:`${A} is a symbol, which cannot be converted to a DOMString.`});return String(t)};w.converters.ByteString=function(t,e,A){if(typeof t=="symbol")throw w.errors.exception({header:e,message:`${A} is a symbol, which cannot be converted to a ByteString.`});let r=String(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=function(t){return typeof t=="string"?t.toWellFormed():`${t}`.toWellFormed()};w.converters.boolean=function(t){return!!t};w.converters.any=function(t){return t};w.converters["long long"]=function(t,e,A){return w.util.ConvertToInt(t,64,"signed",0,e,A)};w.converters["unsigned long long"]=function(t,e,A){return w.util.ConvertToInt(t,64,"unsigned",0,e,A)};w.converters["unsigned long"]=function(t,e,A){return w.util.ConvertToInt(t,32,"unsigned",0,e,A)};w.converters["unsigned short"]=function(t,e,A,r){return w.util.ConvertToInt(t,16,"unsigned",r,e,A)};w.converters.ArrayBuffer=function(t,e,A,r){if(w.util.Type(t)!==nt||!Ce.isArrayBuffer(t))throw w.errors.conversionFailed({prefix:e,argument:`${A} ("${w.util.Stringify(t)}")`,types:["ArrayBuffer"]});if(!w.util.HasFlag(r,w.attributes.AllowResizable)&&w.util.IsResizableArrayBuffer(t))throw w.errors.exception({header:e,message:`${A} cannot be a resizable ArrayBuffer.`});return t};w.converters.SharedArrayBuffer=function(t,e,A,r){if(w.util.Type(t)!==nt||!Ce.isSharedArrayBuffer(t))throw w.errors.conversionFailed({prefix:e,argument:`${A} ("${w.util.Stringify(t)}")`,types:["SharedArrayBuffer"]});if(!w.util.HasFlag(r,w.attributes.AllowResizable)&&w.util.IsResizableArrayBuffer(t))throw w.errors.exception({header:e,message:`${A} cannot be a resizable SharedArrayBuffer.`});return t};w.converters.TypedArray=function(t,e,A,r,n){if(w.util.Type(t)!==nt||!Ce.isTypedArray(t)||t.constructor.name!==e.name)throw w.errors.conversionFailed({prefix:A,argument:`${r} ("${w.util.Stringify(t)}")`,types:[e.name]});if(!w.util.HasFlag(n,w.attributes.AllowShared)&&Ce.isSharedArrayBuffer(t.buffer))throw w.errors.exception({header:A,message:`${r} cannot be a view on a shared array buffer.`});if(!w.util.HasFlag(n,w.attributes.AllowResizable)&&w.util.IsResizableArrayBuffer(t.buffer))throw w.errors.exception({header:A,message:`${r} cannot be a view on a resizable array buffer.`});return t};w.converters.DataView=function(t,e,A,r){if(w.util.Type(t)!==nt||!Ce.isDataView(t))throw w.errors.conversionFailed({prefix:e,argument:`${A} ("${w.util.Stringify(t)}")`,types:["DataView"]});if(!w.util.HasFlag(r,w.attributes.AllowShared)&&Ce.isSharedArrayBuffer(t.buffer))throw w.errors.exception({header:e,message:`${A} cannot be a view on a shared array buffer.`});if(!w.util.HasFlag(r,w.attributes.AllowResizable)&&w.util.IsResizableArrayBuffer(t.buffer))throw w.errors.exception({header:e,message:`${A} cannot be a view on a resizable array buffer.`});return t};w.converters.ArrayBufferView=function(t,e,A,r){if(w.util.Type(t)!==nt||!Ce.isArrayBufferView(t))throw w.errors.conversionFailed({prefix:e,argument:`${A} ("${w.util.Stringify(t)}")`,types:["ArrayBufferView"]});if(!w.util.HasFlag(r,w.attributes.AllowShared)&&Ce.isSharedArrayBuffer(t.buffer))throw w.errors.exception({header:e,message:`${A} cannot be a view on a shared array buffer.`});if(!w.util.HasFlag(r,w.attributes.AllowResizable)&&w.util.IsResizableArrayBuffer(t.buffer))throw w.errors.exception({header:e,message:`${A} cannot be a view on a resizable array buffer.`});return t};w.converters.BufferSource=function(t,e,A,r){if(Ce.isArrayBuffer(t))return w.converters.ArrayBuffer(t,e,A,r);if(Ce.isArrayBufferView(t))return r&=~w.attributes.AllowShared,w.converters.ArrayBufferView(t,e,A,r);throw Ce.isSharedArrayBuffer(t)?w.errors.exception({header:e,message:`${A} cannot be a SharedArrayBuffer.`}):w.errors.conversionFailed({prefix:e,argument:`${A} ("${w.util.Stringify(t)}")`,types:["ArrayBuffer","ArrayBufferView"]})};w.converters.AllowSharedBufferSource=function(t,e,A,r){if(Ce.isArrayBuffer(t))return w.converters.ArrayBuffer(t,e,A,r);if(Ce.isSharedArrayBuffer(t))return w.converters.SharedArrayBuffer(t,e,A,r);if(Ce.isArrayBufferView(t))return r|=w.attributes.AllowShared,w.converters.ArrayBufferView(t,e,A,r);throw w.errors.conversionFailed({prefix:e,argument:`${A} ("${w.util.Stringify(t)}")`,types:["ArrayBuffer","SharedArrayBuffer","ArrayBufferView"]})};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);w.converters.Blob=w.interfaceConverter(w.is.Blob,"Blob");w.converters.AbortSignal=w.interfaceConverter(w.is.AbortSignal,"AbortSignal");w.converters.EventHandlerNonNull=function(t){return w.util.Type(t)!==nt?null:typeof t=="function"?t:()=>{}};w.attributes={Clamp:1,EnforceRange:2,AllowShared:4,AllowResizable:8,LegacyNullToEmptyString:16};KE.exports={webidl:w}});var st=b((FV,gf)=>{"use strict";var{Transform:cw}=require("node:stream"),zE=require("node:zlib"),{redirectStatusSet:uw,referrerPolicyTokens:gw,badPortsSet:hw}=gs(),{getGlobalOrigin:$E}=Kl(),{collectAnHTTPQuotedString:dw,parseMIMEType:Ew}=Bt(),{performance:fw}=require("node:perf_hooks"),{ReadableStreamFrom:Iw,isValidHTTPToken:ef,normalizedMethodRecordsBase:Cw}=Z(),fs=require("node:assert"),{isUint8Array:Qw}=require("node:util/types"),{webidl:RA}=Me(),{isomorphicEncode:oc,collectASequenceOfCodePoints:fr,removeChars:Bw}=oA();function tf(t){let e=t.urlList,A=e.length;return A===0?null:e[A-1].toString()}function pw(t,e){if(!uw.has(t.status))return null;let A=t.headersList.get("location",!0);return A!==null&&rf(A)&&(Af(A)||(A=yw(A)),A=new URL(A,tf(t))),A&&!A.hash&&(A.hash=e),A}function Af(t){for(let e=0;e<t.length;++e){let A=t.charCodeAt(e);if(A>126||A<32)return!1}return!0}function yw(t){return Buffer.from(t,"binary").toString("utf8")}function Cr(t){return t.urlList[t.urlList.length-1]}function mw(t){let e=Cr(t);return cf(e)&&hw.has(e.port)?"blocked":"allowed"}function Sw(t){return t instanceof Error||t?.constructor?.name==="Error"||t?.constructor?.name==="DOMException"}function Dw(t){for(let e=0;e<t.length;++e){let A=t.charCodeAt(e);if(!(A===9||A>=32&&A<=126||A>=128&&A<=255))return!1}return!0}var ww=ef;function rf(t){return(t[0]===" "||t[0]===" "||t[t.length-1]===" "||t[t.length-1]===" "||t.includes(`
2
+ `)||t.includes("\r")||t.includes("\0"))===!1}function Rw(t){let e=(t.headersList.get("referrer-policy",!0)??"").split(","),A="";if(e.length)for(let r=e.length;r!==0;r--){let n=e[r-1].trim();if(gw.has(n)){A=n;break}}return A}function bw(t,e){let A=Rw(e);A!==""&&(t.referrerPolicy=A)}function Nw(){return"allowed"}function kw(){return"success"}function Fw(){return"success"}function Uw(t){let e=null;e=t.mode,t.headersList.set("sec-fetch-mode",e,!0)}function Mw(t){let e=t.origin;if(!(e==="client"||e===void 0)){if(t.responseTainting==="cors"||t.mode==="websocket")t.headersList.append("origin",e,!0);else if(t.method!=="GET"&&t.method!=="HEAD"){switch(t.referrerPolicy){case"no-referrer":e=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":t.origin&&ac(t.origin)&&!ac(Cr(t))&&(e=null);break;case"same-origin":Es(t,Cr(t))||(e=null);break;default:}t.headersList.append("origin",e,!0)}}}function tn(t,e){return t}function vw(t,e,A){return!t?.startTime||t.startTime<e?{domainLookupStartTime:e,domainLookupEndTime:e,connectionStartTime:e,connectionEndTime:e,secureConnectionStartTime:e,ALPNNegotiatedProtocol:t?.ALPNNegotiatedProtocol}:{domainLookupStartTime:tn(t.domainLookupStartTime,A),domainLookupEndTime:tn(t.domainLookupEndTime,A),connectionStartTime:tn(t.connectionStartTime,A),connectionEndTime:tn(t.connectionEndTime,A),secureConnectionStartTime:tn(t.secureConnectionStartTime,A),ALPNNegotiatedProtocol:t.ALPNNegotiatedProtocol}}function Tw(t){return tn(fw.now(),t)}function Lw(t){return{startTime:t.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:t.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function nf(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function xw(t){return{referrerPolicy:t.referrerPolicy}}function Hw(t){let e=t.referrerPolicy;fs(e);let A=null;if(t.referrer==="client"){let s=$E();if(!s||s.origin==="null")return"no-referrer";A=new URL(s)}else RA.is.URL(t.referrer)&&(A=t.referrer);let r=ic(A),n=ic(A,!0);switch(r.toString().length>4096&&(r=n),e){case"no-referrer":return"no-referrer";case"origin":return n??ic(A,!0);case"unsafe-url":return r;case"strict-origin":{let s=Cr(t);return Ir(r)&&!Ir(s)?"no-referrer":n}case"strict-origin-when-cross-origin":{let s=Cr(t);return Es(r,s)?r:Ir(r)&&!Ir(s)?"no-referrer":n}case"same-origin":return Es(t,r)?r:"no-referrer";case"origin-when-cross-origin":return Es(t,r)?r:n;case"no-referrer-when-downgrade":{let s=Cr(t);return Ir(r)&&!Ir(s)?"no-referrer":r}}}function ic(t,e=!1){return fs(RA.is.URL(t)),t=new URL(t),lf(t)?"no-referrer":(t.username="",t.password="",t.hash="",e===!0&&(t.pathname="",t.search=""),t)}var Yw=RegExp.prototype.test.bind(/^127\.(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){2}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/),Ow=RegExp.prototype.test.bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/);function sf(t){return t.includes(":")?(t[0]==="["&&t[t.length-1]==="]"&&(t=t.slice(1,-1)),Ow(t)):Yw(t)}function Gw(t){return t==null||t==="null"?!1:(t=new URL(t),!!(t.protocol==="https:"||t.protocol==="wss:"||sf(t.hostname)||t.hostname==="localhost"||t.hostname==="localhost."||t.hostname.endsWith(".localhost")||t.hostname.endsWith(".localhost.")||t.protocol==="file:"))}function Ir(t){return RA.is.URL(t)?t.href==="about:blank"||t.href==="about:srcdoc"||t.protocol==="data:"||t.protocol==="blob:"?!0:Gw(t.origin):!1}function Vw(t){}function Es(t,e){return t.origin===e.origin&&t.origin==="null"||t.protocol===e.protocol&&t.hostname===e.hostname&&t.port===e.port}function qw(t){return t.controller.state==="aborted"}function Jw(t){return t.controller.state==="aborted"||t.controller.state==="terminated"}function Pw(t){return Cw[t.toLowerCase()]??t}var Ww=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function of(t,e,A=0,r=1){class n{#e;#t;#A;constructor(o,i){this.#e=o,this.#t=i,this.#A=0}next(){if(typeof this!="object"||this===null||!(#e in this))throw new TypeError(`'next' called on an object that does not implement interface ${t} Iterator.`);let o=this.#A,i=e(this.#e),a=i.length;if(o>=a)return{value:void 0,done:!0};let{[A]:l,[r]:c}=i[o];this.#A=o+1;let f;switch(this.#t){case"key":f=l;break;case"value":f=c;break;case"key+value":f=[l,c];break}return{value:f,done:!1}}}return delete n.prototype.constructor,Object.setPrototypeOf(n.prototype,Ww),Object.defineProperties(n.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${t} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(s,o){return new n(s,o)}}function _w(t,e,A,r=0,n=1){let s=of(t,A,r,n),o={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return RA.brandCheck(this,e),s(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return RA.brandCheck(this,e),s(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return RA.brandCheck(this,e),s(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(a,l=globalThis){if(RA.brandCheck(this,e),RA.argumentLengthCheck(arguments,1,`${t}.forEach`),typeof a!="function")throw new TypeError(`Failed to execute 'forEach' on '${t}': parameter 1 is not of type 'Function'.`);for(let{0:c,1:f}of s(this,"key+value"))a.call(l,f,c,this)}}};return Object.defineProperties(e.prototype,{...o,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:o.entries.value}})}function jw(t,e,A){let r=e,n=A;try{let s=t.stream.getReader();af(s,r,n)}catch(s){n(s)}}function Zw(t){try{t.close(),t.byobRequest?.respond(0)}catch(e){if(!e.message.includes("Controller is already closed")&&!e.message.includes("ReadableStream is already closed"))throw e}}async function af(t,e,A){try{let r=[],n=0;do{let{done:s,value:o}=await t.read();if(s){e(Buffer.concat(r,n));return}if(!Qw(o)){A(new TypeError("Received non-Uint8Array chunk"));return}r.push(o),n+=o.length}while(!0)}catch(r){A(r)}}function lf(t){fs("protocol"in t);let e=t.protocol;return e==="about:"||e==="blob:"||e==="data:"}function ac(t){return typeof t=="string"&&t[5]===":"&&t[0]==="h"&&t[1]==="t"&&t[2]==="t"&&t[3]==="p"&&t[4]==="s"||t.protocol==="https:"}function cf(t){fs("protocol"in t);let e=t.protocol;return e==="http:"||e==="https:"}function Xw(t,e){let A=t;if(!A.startsWith("bytes"))return"failure";let r={position:5};if(e&&fr(a=>a===" "||a===" ",A,r),A.charCodeAt(r.position)!==61)return"failure";r.position++,e&&fr(a=>a===" "||a===" ",A,r);let n=fr(a=>{let l=a.charCodeAt(0);return l>=48&&l<=57},A,r),s=n.length?Number(n):null;if(e&&fr(a=>a===" "||a===" ",A,r),A.charCodeAt(r.position)!==45)return"failure";r.position++,e&&fr(a=>a===" "||a===" ",A,r);let o=fr(a=>{let l=a.charCodeAt(0);return l>=48&&l<=57},A,r),i=o.length?Number(o):null;return r.position<A.length||i===null&&s===null||s>i?"failure":{rangeStartValue:s,rangeEndValue:i}}function Kw(t,e,A){let r="bytes ";return r+=oc(`${t}`),r+="-",r+=oc(`${e}`),r+="/",r+=oc(`${A}`),r}var lc=class extends cw{#e;constructor(e){super(),this.#e=e}_transform(e,A,r){if(!this._inflateStream){if(e.length===0){r();return}this._inflateStream=(e[0]&15)===8?zE.createInflate(this.#e):zE.createInflateRaw(this.#e),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(e,A,r)}_final(e){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),e()}};function zw(t){return new lc(t)}function $w(t){let e=null,A=null,r=null,n=uf("content-type",t);if(n===null)return"failure";for(let s of n){let o=Ew(s);o==="failure"||o.essence==="*/*"||(r=o,r.essence!==A?(e=null,r.parameters.has("charset")&&(e=r.parameters.get("charset")),A=r.essence):!r.parameters.has("charset")&&e!==null&&r.parameters.set("charset",e))}return r??"failure"}function eR(t){let e=t,A={position:0},r=[],n="";for(;A.position<e.length;){if(n+=fr(s=>s!=='"'&&s!==",",e,A),A.position<e.length)if(e.charCodeAt(A.position)===34){if(n+=dw(e,A),A.position<e.length)continue}else fs(e.charCodeAt(A.position)===44),A.position++;n=Bw(n,!0,!0,s=>s===9||s===32),r.push(n),n=""}return r}function uf(t,e){let A=e.get(t,!0);return A===null?null:eR(A)}function tR(t){return!1}function AR(t){return!!(t.username||t.password)}function rR(t){return!0}var cc=class{get baseUrl(){return $E()}get origin(){return this.baseUrl?.origin}policyContainer=nf()},uc=class{settingsObject=new cc},nR=new uc;gf.exports={isAborted:qw,isCancelled:Jw,isValidEncodedURL:Af,ReadableStreamFrom:Iw,tryUpgradeRequestToAPotentiallyTrustworthyURL:Vw,clampAndCoarsenConnectionTimingInfo:vw,coarsenedSharedCurrentTime:Tw,determineRequestsReferrer:Hw,makePolicyContainer:nf,clonePolicyContainer:xw,appendFetchMetadata:Uw,appendRequestOriginHeader:Mw,TAOCheck:Fw,corsCheck:kw,crossOriginResourcePolicyCheck:Nw,createOpaqueTimingInfo:Lw,setRequestReferrerPolicyOnRedirect:bw,isValidHTTPToken:ef,requestBadPort:mw,requestCurrentURL:Cr,responseURL:tf,responseLocationURL:pw,isURLPotentiallyTrustworthy:Ir,isValidReasonPhrase:Dw,sameOrigin:Es,normalizeMethod:Pw,iteratorMixin:_w,createIterator:of,isValidHeaderName:ww,isValidHeaderValue:rf,isErrorLike:Sw,fullyReadBody:jw,readableStreamClose:Zw,urlIsLocal:lf,urlHasHttpsScheme:ac,urlIsHttpHttpsScheme:cf,readAllBytes:af,simpleRangeHeaderValue:Xw,buildContentRange:Kw,createInflate:zw,extractMimeType:$w,getDecodeSplit:uf,environmentSettingsObject:nR,isOriginIPPotentiallyTrustworthy:sf,hasAuthenticationEntry:tR,includesCredentials:AR,isTraversableNavigable:rR}});var jo=b((UV,df)=>{"use strict";var{iteratorMixin:sR}=st(),{kEnumerableProperty:An}=Z(),{webidl:se}=Me(),hf=require("node:util"),aA=class t{#e=[];constructor(e=void 0){if(se.util.markAsUncloneable(this),e!==void 0)throw se.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}append(e,A,r=void 0){se.brandCheck(this,t);let n="FormData.append";se.argumentLengthCheck(arguments,2,n),e=se.converters.USVString(e),arguments.length===3||se.is.Blob(A)?(A=se.converters.Blob(A,n,"value"),r!==void 0&&(r=se.converters.USVString(r))):A=se.converters.USVString(A);let s=gc(e,A,r);this.#e.push(s)}delete(e){se.brandCheck(this,t),se.argumentLengthCheck(arguments,1,"FormData.delete"),e=se.converters.USVString(e),this.#e=this.#e.filter(r=>r.name!==e)}get(e){se.brandCheck(this,t),se.argumentLengthCheck(arguments,1,"FormData.get"),e=se.converters.USVString(e);let r=this.#e.findIndex(n=>n.name===e);return r===-1?null:this.#e[r].value}getAll(e){return se.brandCheck(this,t),se.argumentLengthCheck(arguments,1,"FormData.getAll"),e=se.converters.USVString(e),this.#e.filter(r=>r.name===e).map(r=>r.value)}has(e){return se.brandCheck(this,t),se.argumentLengthCheck(arguments,1,"FormData.has"),e=se.converters.USVString(e),this.#e.findIndex(r=>r.name===e)!==-1}set(e,A,r=void 0){se.brandCheck(this,t);let n="FormData.set";se.argumentLengthCheck(arguments,2,n),e=se.converters.USVString(e),arguments.length===3||se.is.Blob(A)?(A=se.converters.Blob(A,n,"value"),r!==void 0&&(r=se.converters.USVString(r))):A=se.converters.USVString(A);let s=gc(e,A,r),o=this.#e.findIndex(i=>i.name===e);o!==-1?this.#e=[...this.#e.slice(0,o),s,...this.#e.slice(o+1).filter(i=>i.name!==e)]:this.#e.push(s)}[hf.inspect.custom](e,A){let r=this.#e.reduce((s,o)=>(s[o.name]?Array.isArray(s[o.name])?s[o.name].push(o.value):s[o.name]=[s[o.name],o.value]:s[o.name]=o.value,s),{__proto__:null});A.depth??=e,A.colors??=!0;let n=hf.formatWithOptions(A,r);return`FormData ${n.slice(n.indexOf("]")+2)}`}static getFormDataState(e){return e.#e}static setFormDataState(e,A){e.#e=A}},{getFormDataState:oR,setFormDataState:iR}=aA;Reflect.deleteProperty(aA,"getFormDataState");Reflect.deleteProperty(aA,"setFormDataState");sR("FormData",aA,oR,"name","value");Object.defineProperties(aA.prototype,{append:An,delete:An,get:An,getAll:An,has:An,set:An,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function gc(t,e,A){if(typeof e!="string"){if(se.is.File(e)||(e=new File([e],"blob",{type:e.type})),A!==void 0){let r={type:e.type,lastModified:e.lastModified};e=new File([e],A,r)}}return{name:t,value:e}}se.is.FormData=se.util.MakeTypeAssertion(aA);df.exports={FormData:aA,makeEntry:gc,setFormDataState:iR}});var If=b((MV,ff)=>{"use strict";var{bufferToLowerCasedHeaderName:aR}=Z(),{HTTP_TOKEN_CODEPOINTS:lR}=Bt(),{makeEntry:cR}=jo(),{webidl:hc}=Me(),dc=require("node:assert"),{isomorphicDecode:Ef}=oA(),uR=Buffer.from("--"),Ec=new TextDecoder,gR=new TextDecoder("utf-8",{ignoreBOM:!0});function hR(t){for(let e=0;e<t.length;++e)if((t.charCodeAt(e)&-128)!==0)return!1;return!0}function dR(t){let e=t.length;if(e<27||e>70)return!1;for(let A=0;A<e;++A){let r=t.charCodeAt(A);if(!(r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r===39||r===45||r===95))return!1}return!0}function ER(t,e){dc(e!=="failure"&&e.essence==="multipart/form-data");let A=e.parameters.get("boundary");if(A===void 0)throw We("missing boundary in content-type header");let r=Buffer.from(`--${A}`,"utf8"),n=[],s={position:0},o=t.indexOf(r);if(o===-1)throw We("no boundary found in multipart body");for(s.position=o;;){if(t.subarray(s.position,s.position+r.length).equals(r))s.position+=r.length;else throw We("expected a value starting with -- and the boundary");if(CR(t,uR,s))return n;if(t[s.position]!==13||t[s.position+1]!==10)throw We("expected CRLF");s.position+=2;let i=IR(t,s),{name:a,filename:l,contentType:c,encoding:f}=i;s.position+=2;let d;{let I=t.indexOf(r.subarray(2),s.position);if(I===-1)throw We("expected boundary after body");d=t.subarray(s.position,I-4),s.position+=d.length,f==="base64"&&(d=Buffer.from(d.toString(),"base64"))}if(t[s.position]!==13||t[s.position+1]!==10)throw We("expected CRLF");s.position+=2;let g;l!==null?(c??="text/plain",hR(c)||(c=""),g=new File([d],l,{type:c})):g=gR.decode(Buffer.from(d)),dc(hc.is.USVString(a)),dc(typeof g=="string"&&hc.is.USVString(g)||hc.is.File(g)),n.push(cR(a,g,l))}}function fR(t,e){t[e.position]===59&&e.position++,pt(o=>o===32||o===9,t,e);let A=pt(o=>Ic(o)&&o!==61&&o!==42,t,e);if(A.length===0)return null;let r=A.toString("ascii").toLowerCase(),n=t[e.position]===42;if(n&&e.position++,t[e.position]!==61)return null;e.position++,pt(o=>o===32||o===9,t,e);let s;if(n){let o=pt(i=>i!==32&&i!==13&&i!==10&&i!==59,t,e);if(o[0]!==117&&o[0]!==85||o[1]!==116&&o[1]!==84||o[2]!==102&&o[2]!==70||o[3]!==45||o[4]!==56)throw We("unknown encoding, expected utf-8''");s=decodeURIComponent(Ec.decode(o.subarray(7)))}else if(t[e.position]===34){e.position++;let o=pt(i=>i!==10&&i!==13&&i!==34,t,e);if(t[e.position]!==34)throw We("Closing quote not found");e.position++,s=Ec.decode(o).replace(/%0A/ig,`
3
+ `).replace(/%0D/ig,"\r").replace(/%22/g,'"')}else{let o=pt(i=>Ic(i)&&i!==59,t,e);s=Ec.decode(o)}return{name:r,value:s}}function IR(t,e){let A=null,r=null,n=null,s=null;for(;;){if(t[e.position]===13&&t[e.position+1]===10){if(A===null)throw We("header name is null");return{name:A,filename:r,contentType:n,encoding:s}}let o=pt(i=>i!==10&&i!==13&&i!==58,t,e);if(o=fc(o,!0,!0,i=>i===9||i===32),!lR.test(o.toString()))throw We("header name does not match the field-name token production");if(t[e.position]!==58)throw We("expected :");switch(e.position++,pt(i=>i===32||i===9,t,e),aR(o)){case"content-disposition":{if(A=r=null,pt(a=>Ic(a),t,e).toString("ascii").toLowerCase()!=="form-data")throw We("expected form-data for content-disposition header");for(;e.position<t.length&&t[e.position]!==13&&t[e.position+1]!==10;){let a=fR(t,e);if(!a)break;a.name==="name"?A=a.value:a.name==="filename"&&(r=a.value)}if(A===null)throw We("name attribute is required in content-disposition header");break}case"content-type":{let i=pt(a=>a!==10&&a!==13,t,e);i=fc(i,!1,!0,a=>a===9||a===32),n=Ef(i);break}case"content-transfer-encoding":{let i=pt(a=>a!==10&&a!==13,t,e);i=fc(i,!1,!0,a=>a===9||a===32),s=Ef(i);break}default:pt(i=>i!==10&&i!==13,t,e)}if(t[e.position]!==13&&t[e.position+1]!==10)throw We("expected CRLF");e.position+=2}}function pt(t,e,A){let r=A.position;for(;r<e.length&&t(e[r]);)++r;return e.subarray(A.position,A.position=r)}function fc(t,e,A,r){let n=0,s=t.length-1;if(e)for(;n<t.length&&r(t[n]);)n++;if(A)for(;s>0&&r(t[s]);)s--;return n===0&&s===t.length-1?t:t.subarray(n,s+1)}function CR(t,e,A){if(t.length<e.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[A.position+r])return!1;return!0}function We(t){return new TypeError("Failed to parse body as FormData.",{cause:new TypeError(t)})}function QR(t){return t<=31||t===127}function BR(t){return t===40||t===41||t===60||t===62||t===64||t===44||t===59||t===58||t===92||t===34||t===47||t===91||t===93||t===63||t===61}function Ic(t){return t<=127&&t!==32&&t!==9&&!QR(t)&&!BR(t)}ff.exports={multipartFormDataParser:ER,validateBoundary:dR}});var Is=b((vV,Cf)=>{"use strict";function pR(){let t,e;return{promise:new Promise((r,n)=>{t=r,e=n}),resolve:t,reject:e}}Cf.exports={createDeferredPromise:pR}});var nn=b((TV,mf)=>{"use strict";var Bc=Z(),{ReadableStreamFrom:yR,readableStreamClose:mR,fullyReadBody:SR,extractMimeType:DR}=st(),{FormData:Qf,setFormDataState:wR}=jo(),{webidl:kt}=Me(),Cc=require("node:assert"),{isErrored:Qc,isDisturbed:RR}=require("node:stream"),{isUint8Array:bR}=require("node:util/types"),{serializeAMimeType:NR}=Bt(),{multipartFormDataParser:kR}=If(),{createDeferredPromise:FR}=Is(),{parseJSONFromBytes:UR}=oA(),{utf8DecodeBytes:MR}=Vo(),{runtimeFeatures:vR}=iA(),TR=vR.has("crypto")?require("node:crypto").randomInt:t=>Math.floor(Math.random()*t),Zo=new TextEncoder;function LR(){}var xR=new FinalizationRegistry(t=>{let e=t.deref();e&&!e.locked&&!RR(e)&&!Qc(e)&&e.cancel("Response object has been garbage collected").catch(LR)});function pf(t,e=!1){let A=null,r=null;kt.is.ReadableStream(t)?A=t:kt.is.Blob(t)?A=t.stream():A=new ReadableStream({pull(){},start(l){r=l},cancel(){},type:"bytes"}),Cc(kt.is.ReadableStream(A));let n=null,s=null,o=null,i=null;if(typeof t=="string")s=t,i="text/plain;charset=UTF-8";else if(kt.is.URLSearchParams(t))s=t.toString(),i="application/x-www-form-urlencoded;charset=UTF-8";else if(kt.is.BufferSource(t))s=kt.util.getCopyOfBytesHeldByBufferSource(t);else if(kt.is.FormData(t)){let l=`----formdata-undici-0${`${TR(1e11)}`.padStart(11,"0")}`,c=`--${l}\r
4
+ Content-Disposition: form-data`;let f=u=>u.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),d=u=>u.replace(/\r?\n|\r/g,`\r
5
+ `),g=[],I=new Uint8Array([13,10]);o=0;let S=!1;for(let[u,h]of t)if(typeof h=="string"){let E=Zo.encode(c+`; name="${f(d(u))}"\r
6
+ \r
7
+ ${d(h)}\r
8
+ `);g.push(E),o+=E.byteLength}else{let E=Zo.encode(`${c}; name="${f(d(u))}"`+(h.name?`; filename="${f(h.name)}"`:"")+`\r
9
+ Content-Type: ${h.type||"application/octet-stream"}\r
10
+ \r
11
+ `);g.push(E,h,I),typeof h.size=="number"?o+=E.byteLength+h.size+I.byteLength:S=!0}let p=Zo.encode(`--${l}--\r
12
+ `);g.push(p),o+=p.byteLength,S&&(o=null),s=t,n=async function*(){for(let u of g)u.stream?yield*u.stream():yield u},i=`multipart/form-data; boundary=${l}`}else if(kt.is.Blob(t))s=t,o=t.size,t.type&&(i=t.type);else if(typeof t[Symbol.asyncIterator]=="function"){if(e)throw new TypeError("keepalive");if(Bc.isDisturbed(t)||t.locked)throw new TypeError("Response body object should not be disturbed or locked");A=kt.is.ReadableStream(t)?t:yR(t)}return(typeof s=="string"||bR(s))&&(n=()=>(o=typeof s=="string"?Buffer.byteLength(s):s.length,s)),n!=null&&(async()=>{let l=n(),c=l?.[Symbol.asyncIterator]?.();if(c)for await(let f of c){if(Qc(A))break;f.length&&r.enqueue(new Uint8Array(f))}else l?.length&&!Qc(A)&&r.enqueue(typeof l=="string"?Zo.encode(l):new Uint8Array(l));queueMicrotask(()=>mR(r))})(),[{stream:A,source:s,length:o},i]}function HR(t,e=!1){return kt.is.ReadableStream(t)&&(Cc(!Bc.isDisturbed(t),"The body has already been consumed."),Cc(!t.locked,"The stream is locked.")),pf(t,e)}function YR(t){let{0:e,1:A}=t.stream.tee();return t.stream=e,{stream:A,length:t.length,source:t.source}}function OR(t,e){return{blob(){return rn(this,r=>{let n=Bf(e(this));return n===null?n="":n&&(n=NR(n)),new Blob([r],{type:n})},t,e)},arrayBuffer(){return rn(this,r=>new Uint8Array(r).buffer,t,e)},text(){return rn(this,MR,t,e)},json(){return rn(this,UR,t,e)},formData(){return rn(this,r=>{let n=Bf(e(this));if(n!==null)switch(n.essence){case"multipart/form-data":{let s=kR(r,n),o=new Qf;return wR(o,s),o}case"application/x-www-form-urlencoded":{let s=new URLSearchParams(r.toString()),o=new Qf;for(let[i,a]of s)o.append(i,a);return o}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},t,e)},bytes(){return rn(this,r=>new Uint8Array(r),t,e)}}}function GR(t,e){Object.assign(t.prototype,OR(t,e))}function rn(t,e,A,r){try{kt.brandCheck(t,A)}catch(i){return Promise.reject(i)}if(t=r(t),yf(t))return Promise.reject(new TypeError("Body is unusable: Body has already been read"));let n=FR(),s=n.reject,o=i=>{try{n.resolve(e(i))}catch(a){s(a)}};return t.body==null?(o(Buffer.allocUnsafe(0)),n.promise):(SR(t.body,o,s),n.promise)}function yf(t){let e=t.body;return e!=null&&(e.stream.locked||Bc.isDisturbed(e.stream))}function Bf(t){let e=t.headersList,A=DR(e);return A==="failure"?null:A}mf.exports={extractBody:pf,safelyExtractBody:HR,cloneBody:YR,mixinBody:GR,streamRegistry:xR,bodyUnusable:yf}});var vf=b((LV,Mf)=>{"use strict";var J=require("node:assert"),P=Z(),{channels:Sf}=DA(),pc=tl(),{RequestContentLengthMismatchError:Qr,ResponseContentLengthMismatchError:VR,RequestAbortedError:kf,HeadersTimeoutError:qR,HeadersOverflowError:JR,SocketError:Bs,InformationalError:sn,BodyTimeoutError:PR,HTTPParserError:WR,ResponseExceededMaxSizeError:_R}=W(),{kUrl:Ff,kReset:_e,kClient:bc,kParser:Qe,kBlocking:ps,kRunning:Te,kPending:jR,kSize:Df,kWriting:NA,kQueue:Ft,kNoRef:Cs,kKeepAliveDefaultTimeout:ZR,kHostHeader:XR,kPendingIdx:KR,kRunningIdx:yt,kError:mt,kPipelining:zo,kSocket:on,kKeepAliveTimeoutValue:ei,kMaxHeadersSize:zR,kKeepAliveMaxTimeout:$R,kKeepAliveTimeoutThreshold:eb,kHeadersTimeout:tb,kBodyTimeout:Ab,kStrictContentLength:Sc,kMaxRequests:wf,kCounter:rb,kMaxResponseSize:nb,kOnError:sb,kResume:bA,kHTTPContext:Uf,kClosed:Dc}=le(),Yt=yE(),ob=Buffer.alloc(0),Xo=Buffer[Symbol.species],ib=P.removeAllListeners,yc;function ab(){let t=process.env.JEST_WORKER_ID?jl():void 0,e,A=process.arch!=="ppc64";if(process.env.UNDICI_NO_WASM_SIMD==="1"?A=!0:process.env.UNDICI_NO_WASM_SIMD==="0"&&(A=!1),A)try{e=new WebAssembly.Module(DE())}catch{}return e||(e=new WebAssembly.Module(t||jl())),new WebAssembly.Instance(e,{env:{wasm_on_url:(r,n,s)=>0,wasm_on_status:(r,n,s)=>{J(be.ptr===r);let o=n-Gt+Ot.byteOffset;return be.onStatus(new Xo(Ot.buffer,o,s))},wasm_on_message_begin:r=>(J(be.ptr===r),be.onMessageBegin()),wasm_on_header_field:(r,n,s)=>{J(be.ptr===r);let o=n-Gt+Ot.byteOffset;return be.onHeaderField(new Xo(Ot.buffer,o,s))},wasm_on_header_value:(r,n,s)=>{J(be.ptr===r);let o=n-Gt+Ot.byteOffset;return be.onHeaderValue(new Xo(Ot.buffer,o,s))},wasm_on_headers_complete:(r,n,s,o)=>(J(be.ptr===r),be.onHeadersComplete(n,s===1,o===1)),wasm_on_body:(r,n,s)=>{J(be.ptr===r);let o=n-Gt+Ot.byteOffset;return be.onBody(new Xo(Ot.buffer,o,s))},wasm_on_message_complete:r=>(J(be.ptr===r),be.onMessageComplete())}})}var mc=null,be=null,Ot=null,Ko=0,Gt=null,lb=0,Qs=1,an=2|Qs,$o=4|Qs,wc=8|lb,Rc=class{constructor(e,A,{exports:r}){this.llhttp=r,this.ptr=this.llhttp.llhttp_alloc(Yt.TYPE.RESPONSE),this.client=e,this.socket=A,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=0,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=e[zR],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=e[nb]}setTimeout(e,A){e!==this.timeoutValue||A&Qs^this.timeoutType&Qs?(this.timeout&&(pc.clearTimeout(this.timeout),this.timeout=null),e&&(A&Qs?this.timeout=pc.setFastTimeout(Rf,e,new WeakRef(this)):(this.timeout=setTimeout(Rf,e,new WeakRef(this)),this.timeout?.unref())),this.timeoutValue=e):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=A}resume(){this.socket.destroyed||!this.paused||(J(this.ptr!=null),J(be===null),this.llhttp.llhttp_resume(this.ptr),J(this.timeoutType===$o),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||ob),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let e=this.socket.read();if(e===null)break;this.execute(e)}}execute(e){J(be===null),J(this.ptr!=null),J(!this.paused);let{socket:A,llhttp:r}=this;e.length>Ko&&(Gt&&r.free(Gt),Ko=Math.ceil(e.length/4096)*4096,Gt=r.malloc(Ko)),new Uint8Array(r.memory.buffer,Gt,Ko).set(e);try{let n;try{Ot=e,be=this,n=r.llhttp_execute(this.ptr,Gt,e.length)}finally{be=null,Ot=null}if(n!==Yt.ERROR.OK){let s=e.subarray(r.llhttp_get_error_pos(this.ptr)-Gt);if(n===Yt.ERROR.PAUSED_UPGRADE)this.onUpgrade(s);else if(n===Yt.ERROR.PAUSED)this.paused=!0,A.unshift(s);else{let o=r.llhttp_get_error_reason(this.ptr),i="";if(o){let a=new Uint8Array(r.memory.buffer,o).indexOf(0);i="Response does not match the HTTP/1.1 protocol ("+Buffer.from(r.memory.buffer,o,a).toString()+")"}throw new WR(i,Yt.ERROR[n],s)}}}catch(n){P.destroy(A,n)}}destroy(){J(be===null),J(this.ptr!=null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&pc.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(e){return this.statusText=e.toString(),0}onMessageBegin(){let{socket:e,client:A}=this;if(e.destroyed)return-1;let r=A[Ft][A[yt]];return r?(r.onResponseStarted(),0):-1}onHeaderField(e){let A=this.headers.length;return(A&1)===0?this.headers.push(e):this.headers[A-1]=Buffer.concat([this.headers[A-1],e]),this.trackHeader(e.length),0}onHeaderValue(e){let A=this.headers.length;(A&1)===1?(this.headers.push(e),A+=1):this.headers[A-1]=Buffer.concat([this.headers[A-1],e]);let r=this.headers[A-2];if(r.length===10){let n=P.bufferToLowerCasedHeaderName(r);n==="keep-alive"?this.keepAlive+=e.toString():n==="connection"&&(this.connection+=e.toString())}else r.length===14&&P.bufferToLowerCasedHeaderName(r)==="content-length"&&(this.contentLength+=e.toString());return this.trackHeader(e.length),0}trackHeader(e){this.headersSize+=e,this.headersSize>=this.headersMaxSize&&P.destroy(this.socket,new JR)}onUpgrade(e){let{upgrade:A,client:r,socket:n,headers:s,statusCode:o}=this;J(A),J(r[on]===n),J(!n.destroyed),J(!this.paused),J((s.length&1)===0);let i=r[Ft][r[yt]];J(i),J(i.upgrade||i.method==="CONNECT"),this.statusCode=0,this.statusText="",this.shouldKeepAlive=!1,this.headers=[],this.headersSize=0,n.unshift(e),n[Qe].destroy(),n[Qe]=null,n[bc]=null,n[mt]=null,ib(n),r[on]=null,r[Uf]=null,r[Ft][r[yt]++]=null,r.emit("disconnect",r[Ff],[r],new sn("upgrade"));try{i.onUpgrade(o,s,n)}catch(a){P.destroy(n,a)}r[bA]()}onHeadersComplete(e,A,r){let{client:n,socket:s,headers:o,statusText:i}=this;if(s.destroyed)return-1;let a=n[Ft][n[yt]];if(!a)return-1;if(J(!this.upgrade),J(this.statusCode<200),e===100)return P.destroy(s,new Bs("bad response",P.getSocketInfo(s))),-1;if(A&&!a.upgrade)return P.destroy(s,new Bs("bad upgrade",P.getSocketInfo(s))),-1;if(J(this.timeoutType===an),this.statusCode=e,this.shouldKeepAlive=r||a.method==="HEAD"&&!s[_e]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let c=a.bodyTimeout!=null?a.bodyTimeout:n[Ab];this.setTimeout(c,$o)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(a.method==="CONNECT")return J(n[Te]===1),this.upgrade=!0,2;if(A)return J(n[Te]===1),this.upgrade=!0,2;if(J((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&n[zo]){let c=this.keepAlive?P.parseKeepAliveTimeout(this.keepAlive):null;if(c!=null){let f=Math.min(c-n[eb],n[$R]);f<=0?s[_e]=!0:n[ei]=f}else n[ei]=n[ZR]}else s[_e]=!0;let l=a.onHeaders(e,o,this.resume,i)===!1;return a.aborted?-1:a.method==="HEAD"||e<200?1:(s[ps]&&(s[ps]=!1,n[bA]()),l?Yt.ERROR.PAUSED:0)}onBody(e){let{client:A,socket:r,statusCode:n,maxResponseSize:s}=this;if(r.destroyed)return-1;let o=A[Ft][A[yt]];return J(o),J(this.timeoutType===$o),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),J(n>=200),s>-1&&this.bytesRead+e.length>s?(P.destroy(r,new _R),-1):(this.bytesRead+=e.length,o.onData(e)===!1?Yt.ERROR.PAUSED:0)}onMessageComplete(){let{client:e,socket:A,statusCode:r,upgrade:n,headers:s,contentLength:o,bytesRead:i,shouldKeepAlive:a}=this;if(A.destroyed&&(!r||a))return-1;if(n)return 0;J(r>=100),J((this.headers.length&1)===0);let l=e[Ft][e[yt]];if(J(l),this.statusCode=0,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,r<200)return 0;if(l.method!=="HEAD"&&o&&i!==parseInt(o,10))return P.destroy(A,new VR),-1;if(l.onComplete(s),e[Ft][e[yt]++]=null,A[NA])return J(e[Te]===0),P.destroy(A,new sn("reset")),Yt.ERROR.PAUSED;if(a){if(A[_e]&&e[Te]===0)return P.destroy(A,new sn("reset")),Yt.ERROR.PAUSED;e[zo]==null||e[zo]===1?setImmediate(e[bA]):e[bA]()}else return P.destroy(A,new sn("reset")),Yt.ERROR.PAUSED;return 0}};function Rf(t){let e=t.deref();if(!e)return;let{socket:A,timeoutType:r,client:n,paused:s}=e;r===an?(!A[NA]||A.writableNeedDrain||n[Te]>1)&&(J(!s,"cannot be paused while waiting for headers"),P.destroy(A,new qR)):r===$o?s||P.destroy(A,new PR):r===wc&&(J(n[Te]===0&&n[ei]),P.destroy(A,new sn("socket idle timeout")))}function cb(t,e){if(t[on]=e,mc||(mc=ab()),e.errored)throw e.errored;if(e.destroyed)throw new Bs("destroyed");return e[Cs]=!1,e[NA]=!1,e[_e]=!1,e[ps]=!1,e[Qe]=new Rc(t,e,mc),P.addListener(e,"error",ub),P.addListener(e,"readable",gb),P.addListener(e,"end",hb),P.addListener(e,"close",db),e[Dc]=!1,e.on("close",Eb),{version:"h1",defaultPipelining:1,write(A){return Cb(t,A)},resume(){fb(t)},destroy(A,r){e[Dc]?queueMicrotask(r):(e.on("close",r),e.destroy(A))},get destroyed(){return e.destroyed},busy(A){return!!(e[NA]||e[_e]||e[ps]||A&&(t[Te]>0&&!A.idempotent||t[Te]>0&&(A.upgrade||A.method==="CONNECT")||t[Te]>0&&P.bodyLength(A.body)!==0&&(P.isStream(A.body)||P.isAsyncIterable(A.body)||P.isFormDataLike(A.body))))}}}function ub(t){J(t.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let e=this[Qe];if(t.code==="ECONNRESET"&&e.statusCode&&!e.shouldKeepAlive){e.onMessageComplete();return}this[mt]=t,this[bc][sb](t)}function gb(){this[Qe]?.readMore()}function hb(){let t=this[Qe];if(t.statusCode&&!t.shouldKeepAlive){t.onMessageComplete();return}P.destroy(this,new Bs("other side closed",P.getSocketInfo(this)))}function db(){let t=this[Qe];t&&(!this[mt]&&t.statusCode&&!t.shouldKeepAlive&&t.onMessageComplete(),this[Qe].destroy(),this[Qe]=null);let e=this[mt]||new Bs("closed",P.getSocketInfo(this)),A=this[bc];if(A[on]=null,A[Uf]=null,A.destroyed){J(A[jR]===0);let r=A[Ft].splice(A[yt]);for(let n=0;n<r.length;n++){let s=r[n];P.errorRequest(A,s,e)}}else if(A[Te]>0&&e.code!=="UND_ERR_INFO"){let r=A[Ft][A[yt]];A[Ft][A[yt]++]=null,P.errorRequest(A,r,e)}A[KR]=A[yt],J(A[Te]===0),A.emit("disconnect",A[Ff],[A],e),A[bA]()}function Eb(){this[Dc]=!0}function fb(t){let e=t[on];if(e&&!e.destroyed){if(t[Df]===0?!e[Cs]&&e.unref&&(e.unref(),e[Cs]=!0):e[Cs]&&e.ref&&(e.ref(),e[Cs]=!1),t[Df]===0)e[Qe].timeoutType!==wc&&e[Qe].setTimeout(t[ei],wc);else if(t[Te]>0&&e[Qe].statusCode<200&&e[Qe].timeoutType!==an){let A=t[Ft][t[yt]],r=A.headersTimeout!=null?A.headersTimeout:t[tb];e[Qe].setTimeout(r,an)}}}function Ib(t){return t!=="GET"&&t!=="HEAD"&&t!=="OPTIONS"&&t!=="TRACE"&&t!=="CONNECT"}function Cb(t,e){let{method:A,path:r,host:n,upgrade:s,blocking:o,reset:i}=e,{body:a,headers:l,contentLength:c}=e,f=A==="PUT"||A==="POST"||A==="PATCH"||A==="QUERY"||A==="PROPFIND"||A==="PROPPATCH";if(P.isFormDataLike(a)){yc||(yc=nn().extractBody);let[p,u]=yc(a);e.contentType==null&&l.push("content-type",u),a=p.stream,c=p.length}else P.isBlobLike(a)&&e.contentType==null&&a.type&&l.push("content-type",a.type);a&&typeof a.read=="function"&&a.read(0);let d=P.bodyLength(a);if(c=d??c,c===null&&(c=e.contentLength),c===0&&!f&&(c=null),Ib(A)&&c>0&&e.contentLength!==null&&e.contentLength!==c){if(t[Sc])return P.errorRequest(t,e,new Qr),!1;process.emitWarning(new Qr)}let g=t[on],I=p=>{e.aborted||e.completed||(P.errorRequest(t,e,p||new kf),P.destroy(a),P.destroy(g,new sn("aborted")))};try{e.onConnect(I)}catch(p){P.errorRequest(t,e,p)}if(e.aborted)return!1;A==="HEAD"&&(g[_e]=!0),(s||A==="CONNECT")&&(g[_e]=!0),i!=null&&(g[_e]=i),t[wf]&&g[rb]++>=t[wf]&&(g[_e]=!0),o&&(g[ps]=!0),g.setTypeOfService&&g.setTypeOfService(e.typeOfService);let S=`${A} ${r} HTTP/1.1\r
13
+ `;if(typeof n=="string"?S+=`host: ${n}\r
14
+ `:S+=t[XR],s?S+=`connection: upgrade\r
15
+ upgrade: ${s}\r
16
+ `:t[zo]&&!g[_e]?S+=`connection: keep-alive\r
17
+ `:S+=`connection: close\r
18
+ `,Array.isArray(l))for(let p=0;p<l.length;p+=2){let u=l[p+0],h=l[p+1];if(Array.isArray(h))for(let E=0;E<h.length;E++)S+=`${u}: ${h[E]}\r
19
+ `;else S+=`${u}: ${h}\r
20
+ `}return Sf.sendHeaders.hasSubscribers&&Sf.sendHeaders.publish({request:e,headers:S,socket:g}),!a||d===0?bf(I,null,t,e,g,c,S,f):P.isBuffer(a)?bf(I,a,t,e,g,c,S,f):P.isBlobLike(a)?typeof a.stream=="function"?Nf(I,a.stream(),t,e,g,c,S,f):Bb(I,a,t,e,g,c,S,f):P.isStream(a)?Qb(I,a,t,e,g,c,S,f):P.isIterable(a)?Nf(I,a,t,e,g,c,S,f):J(!1),!0}function Qb(t,e,A,r,n,s,o,i){J(s!==0||A[Te]===0,"stream body cannot be pipelined");let a=!1,l=new ti({abort:t,socket:n,request:r,contentLength:s,client:A,expectsPayload:i,header:o}),c=function(I){if(!a)try{!l.write(I)&&this.pause&&this.pause()}catch(S){P.destroy(this,S)}},f=function(){a||e.resume&&e.resume()},d=function(){if(queueMicrotask(()=>{e.removeListener("error",g)}),!a){let I=new kf;queueMicrotask(()=>g(I))}},g=function(I){if(!a){if(a=!0,J(n.destroyed||n[NA]&&A[Te]<=1),n.off("drain",f).off("error",g),e.removeListener("data",c).removeListener("end",g).removeListener("close",d),!I)try{l.end()}catch(S){I=S}l.destroy(I),I&&(I.code!=="UND_ERR_INFO"||I.message!=="reset")?P.destroy(e,I):P.destroy(e)}};e.on("data",c).on("end",g).on("error",g).on("close",d),e.resume&&e.resume(),n.on("drain",f).on("error",g),e.errorEmitted??e.errored?setImmediate(g,e.errored):(e.endEmitted??e.readableEnded)&&setImmediate(g,null),(e.closeEmitted??e.closed)&&setImmediate(d)}function bf(t,e,A,r,n,s,o,i){try{e?P.isBuffer(e)&&(J(s===e.byteLength,"buffer body must have content length"),n.cork(),n.write(`${o}content-length: ${s}\r
21
+ \r
22
+ `,"latin1"),n.write(e),n.uncork(),r.onBodySent(e),!i&&r.reset!==!1&&(n[_e]=!0)):s===0?n.write(`${o}content-length: 0\r
23
+ \r
24
+ `,"latin1"):(J(s===null,"no body must not have content length"),n.write(`${o}\r
25
+ `,"latin1")),r.onRequestSent(),A[bA]()}catch(a){t(a)}}async function Bb(t,e,A,r,n,s,o,i){J(s===e.size,"blob body must have content length");try{if(s!=null&&s!==e.size)throw new Qr;let a=Buffer.from(await e.arrayBuffer());n.cork(),n.write(`${o}content-length: ${s}\r
26
+ \r
27
+ `,"latin1"),n.write(a),n.uncork(),r.onBodySent(a),r.onRequestSent(),!i&&r.reset!==!1&&(n[_e]=!0),A[bA]()}catch(a){t(a)}}async function Nf(t,e,A,r,n,s,o,i){J(s!==0||A[Te]===0,"iterator body cannot be pipelined");let a=null;function l(){if(a){let d=a;a=null,d()}}let c=()=>new Promise((d,g)=>{J(a===null),n[mt]?g(n[mt]):a=d});n.on("close",l).on("drain",l);let f=new ti({abort:t,socket:n,request:r,contentLength:s,client:A,expectsPayload:i,header:o});try{for await(let d of e){if(n[mt])throw n[mt];f.write(d)||await c()}f.end()}catch(d){f.destroy(d)}finally{n.off("close",l).off("drain",l)}}var ti=class{constructor({abort:e,socket:A,request:r,contentLength:n,client:s,expectsPayload:o,header:i}){this.socket=A,this.request=r,this.contentLength=n,this.client=s,this.bytesWritten=0,this.expectsPayload=o,this.header=i,this.abort=e,A[NA]=!0}write(e){let{socket:A,request:r,contentLength:n,client:s,bytesWritten:o,expectsPayload:i,header:a}=this;if(A[mt])throw A[mt];if(A.destroyed)return!1;let l=Buffer.byteLength(e);if(!l)return!0;if(n!==null&&o+l>n){if(s[Sc])throw new Qr;process.emitWarning(new Qr)}A.cork(),o===0&&(!i&&r.reset!==!1&&(A[_e]=!0),n===null?A.write(`${a}transfer-encoding: chunked\r
28
+ `,"latin1"):A.write(`${a}content-length: ${n}\r
29
+ \r
30
+ `,"latin1")),n===null&&A.write(`\r
31
+ ${l.toString(16)}\r
32
+ `,"latin1"),this.bytesWritten+=l;let c=A.write(e);return A.uncork(),r.onBodySent(e),c||A[Qe].timeout&&A[Qe].timeoutType===an&&A[Qe].timeout.refresh&&A[Qe].timeout.refresh(),c}end(){let{socket:e,contentLength:A,client:r,bytesWritten:n,expectsPayload:s,header:o,request:i}=this;if(i.onRequestSent(),e[NA]=!1,e[mt])throw e[mt];if(!e.destroyed){if(n===0?s?e.write(`${o}content-length: 0\r
33
+ \r
34
+ `,"latin1"):e.write(`${o}\r
35
+ `,"latin1"):A===null&&e.write(`\r
36
+ 0\r
37
+ \r
38
+ `,"latin1"),A!==null&&n!==A){if(r[Sc])throw new Qr;process.emitWarning(new Qr)}e[Qe].timeout&&e[Qe].timeoutType===an&&e[Qe].timeout.refresh&&e[Qe].timeout.refresh(),r[bA]()}}destroy(e){let{socket:A,client:r,abort:n}=this;A[NA]=!1,e&&(J(r[Te]<=1,"pipeline should only contain this request"),n(e))}};Mf.exports=cb});var qf=b((xV,Vf)=>{"use strict";var Dt=require("node:assert"),{pipeline:pb}=require("node:stream"),K=Z(),{RequestContentLengthMismatchError:Uc,RequestAbortedError:yb,SocketError:Ds,InformationalError:kA,InvalidArgumentError:mb}=W(),{kUrl:Ss,kReset:si,kClient:ot,kRunning:ws,kPending:Sb,kQueue:FA,kPendingIdx:vc,kRunningIdx:Ut,kError:it,kSocket:fe,kStrictContentLength:Db,kOnError:ln,kMaxConcurrentStreams:ri,kPingInterval:Tf,kHTTP2Session:lA,kHTTP2InitialWindowSize:wb,kHTTP2ConnectionWindowSize:Rb,kResume:Vt,kSize:bb,kHTTPContext:Tc,kClosed:Mc,kBodyTimeout:Nb,kEnableConnectProtocol:ys,kRemoteSettings:ms,kHTTP2Stream:Ai,kHTTP2SessionState:Lc}=le(),{channels:Lf}=DA(),St=Symbol("open streams"),xf,ni;try{ni=require("node:http2")}catch{ni={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:kb,HTTP2_HEADER_METHOD:Hf,HTTP2_HEADER_PATH:Yf,HTTP2_HEADER_SCHEME:Nc,HTTP2_HEADER_CONTENT_LENGTH:Fb,HTTP2_HEADER_EXPECT:Ub,HTTP2_HEADER_STATUS:kc,HTTP2_HEADER_PROTOCOL:Mb,NGHTTP2_REFUSED_STREAM:vb,NGHTTP2_CANCEL:Tb}}=ni;function Fc(t){let e=[];for(let[A,r]of Object.entries(t))if(Array.isArray(r))for(let n of r)e.push(Buffer.from(A),Buffer.from(n));else e.push(Buffer.from(A),Buffer.from(r));return e}function Lb(t,e){t[fe]=e;let A=t[wb],r=t[Rb],n=ni.connect(t[Ss],{createConnection:()=>e,peerMaxConcurrentStreams:t[ri],settings:{enablePush:!1,...A!=null?{initialWindowSize:A}:null}});return t[fe]=e,n[St]=0,n[ot]=t,n[fe]=e,n[Lc]={ping:{interval:t[Tf]===0?null:setInterval(Ob,t[Tf],n).unref()}},n[ys]=!1,n[ms]=!1,r&&K.addListener(n,"connect",Hb.bind(n,r)),K.addListener(n,"error",Gb),K.addListener(n,"frameError",Vb),K.addListener(n,"end",qb),K.addListener(n,"goaway",Jb),K.addListener(n,"close",Pb),K.addListener(n,"remoteSettings",Yb),n.unref(),t[lA]=n,e[lA]=n,K.addListener(e,"error",_b),K.addListener(e,"end",jb),K.addListener(e,"close",Wb),e[Mc]=!1,e.on("close",Zb),{version:"h2",defaultPipelining:1/0,write(s){return Kb(t,s)},resume(){xb(t)},destroy(s,o){e[Mc]?queueMicrotask(o):e.destroy(s).on("close",o)},get destroyed(){return e.destroyed},busy(s){if(s!=null)if(t[ws]>0){if(s.idempotent===!1||(s.upgrade==="websocket"||s.method==="CONNECT")&&n[ms]===!1||K.bodyLength(s.body)!==0&&(K.isStream(s.body)||K.isAsyncIterable(s.body)||K.isFormDataLike(s.body)))return!0}else return(s.upgrade==="websocket"||s.method==="CONNECT")&&n[ms]===!1;return!1}}}function xb(t){let e=t[fe];e?.destroyed===!1&&(t[bb]===0||t[ri]===0?(e.unref(),t[lA].unref()):(e.ref(),t[lA].ref()))}function Hb(t){try{typeof this.setLocalWindowSize=="function"&&this.setLocalWindowSize(t)}catch{}}function Yb(t){if(this[ot][ri]=t.maxConcurrentStreams??this[ot][ri],this[ms]===!0&&this[ys]===!0&&t.enableConnectProtocol===!1){let e=new kA("HTTP/2: Server disabled extended CONNECT protocol against RFC-8441");this[fe][it]=e,this[ot][ln](e);return}this[ys]=t.enableConnectProtocol??this[ys],this[ms]=!0,this[ot][Vt]()}function Ob(t){let e=t[Lc];if((t.closed||t.destroyed)&&e.ping.interval!=null){clearInterval(e.ping.interval),e.ping.interval=null;return}t.ping(A.bind(t));function A(r,n){let s=this[ot],o=this[ot];if(r!=null){let i=new kA(`HTTP/2: "PING" errored - type ${r.message}`);o[it]=i,s[ln](i)}else s.emit("ping",n)}}function Gb(t){Dt(t.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[fe][it]=t,this[ot][ln](t)}function Vb(t,e,A){if(A===0){let r=new kA(`HTTP/2: "frameError" received - type ${t}, code ${e}`);this[fe][it]=r,this[ot][ln](r)}}function qb(){let t=new Ds("other side closed",K.getSocketInfo(this[fe]));this.destroy(t),K.destroy(this[fe],t)}function Jb(t){let e=this[it]||new Ds(`HTTP/2: "GOAWAY" frame received with code ${t}`,K.getSocketInfo(this[fe])),A=this[ot];if(A[fe]=null,A[Tc]=null,this.close(),this[lA]=null,K.destroy(this[fe],e),A[Ut]<A[FA].length){let r=A[FA][A[Ut]];A[FA][A[Ut]++]=null,K.errorRequest(A,r,e),A[vc]=A[Ut]}Dt(A[ws]===0),A.emit("disconnect",A[Ss],[A],e),A.emit("connectionError",A[Ss],[A],e),A[Vt]()}function Pb(){let{[ot]:t,[Lc]:e}=this,{[fe]:A}=t,r=this[fe][it]||this[it]||new Ds("closed",K.getSocketInfo(A));if(t[fe]=null,t[Tc]=null,e.ping.interval!=null&&(clearInterval(e.ping.interval),e.ping.interval=null),t.destroyed){Dt(t[Sb]===0);let n=t[FA].splice(t[Ut]);for(let s=0;s<n.length;s++){let o=n[s];K.errorRequest(t,o,r)}}}function Wb(){let t=this[it]||new Ds("closed",K.getSocketInfo(this)),e=this[lA][ot];e[fe]=null,e[Tc]=null,this[lA]!==null&&this[lA].destroy(t),e[vc]=e[Ut],Dt(e[ws]===0),e.emit("disconnect",e[Ss],[e],t),e[Vt]()}function _b(t){Dt(t.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[it]=t,this[ot][ln](t)}function jb(){K.destroy(this,new Ds("other side closed",K.getSocketInfo(this)))}function Zb(){this[Mc]=!0}function Xb(t){return t!=="GET"&&t!=="HEAD"&&t!=="OPTIONS"&&t!=="TRACE"&&t!=="CONNECT"}function Kb(t,e){let A=e.bodyTimeout??t[Nb],r=t[lA],{method:n,path:s,host:o,upgrade:i,expectContinue:a,signal:l,protocol:c,headers:f}=e,{body:d}=e;if(i!=null&&i!=="websocket")return K.errorRequest(t,e,new mb(`Custom upgrade "${i}" not supported over HTTP/2`)),!1;let g={};for(let m=0;m<f.length;m+=2){let R=f[m+0],y=f[m+1];if(R==="cookie"){g[R]!=null?g[R]=Array.isArray(g[R])?(g[R].push(y),g[R]):[g[R],y]:g[R]=y;continue}if(Array.isArray(y))for(let U=0;U<y.length;U++)g[R]?g[R]+=`, ${y[U]}`:g[R]=y[U];else g[R]?g[R]+=`, ${y}`:g[R]=y}let I=null,{hostname:S,port:p}=t[Ss];g[kb]=o||`${S}${p?`:${p}`:""}`,g[Hf]=n;let u=m=>{e.aborted||e.completed||(m=m||new yb,K.errorRequest(t,e,m),I!=null&&(I.removeAllListeners("data"),I.close(),t[ln](m),t[Vt]()),K.destroy(d,m))};try{e.onConnect(u)}catch(m){K.errorRequest(t,e,m)}if(e.aborted)return!1;if(i||n==="CONNECT")return r.ref(),i==="websocket"?r[ys]===!1?(K.errorRequest(t,e,new kA("HTTP/2: Extended CONNECT protocol not supported by server")),r.unref(),!1):(g[Hf]="CONNECT",g[Mb]="websocket",g[Yf]=s,c==="ws:"||c==="wss:"?g[Nc]=c==="ws:"?"http":"https":g[Nc]=c==="http:"?"http":"https",I=r.request(g,{endStream:!1,signal:l}),I[Ai]=!0,I.once("response",(m,R)=>{let{[kc]:y,...U}=m;e.onUpgrade(y,Fc(U),I),++r[St],t[FA][t[Ut]++]=null}),I.on("error",()=>{(I.rstCode===vb||I.rstCode===Tb)&&u(new kA(`HTTP/2: "stream error" received - code ${I.rstCode}`))}),I.once("close",()=>{r[St]-=1,r[St]===0&&r.unref()}),I.setTimeout(A),!0):(I=r.request(g,{endStream:!1,signal:l}),I[Ai]=!0,I.on("response",m=>{let{[kc]:R,...y}=m;e.onUpgrade(R,Fc(y),I),++r[St],t[FA][t[Ut]++]=null}),I.once("close",()=>{r[St]-=1,r[St]===0&&r.unref()}),I.setTimeout(A),!0);g[Yf]=s,g[Nc]=c==="http:"?"http":"https";let h=n==="PUT"||n==="POST"||n==="PATCH";d&&typeof d.read=="function"&&d.read(0);let E=K.bodyLength(d);if(K.isFormDataLike(d)){xf??=nn().extractBody;let[m,R]=xf(d);g["content-type"]=R,d=m.stream,E=m.length}if(E==null&&(E=e.contentLength),h||(E=null),Xb(n)&&E>0&&e.contentLength!=null&&e.contentLength!==E){if(t[Db])return K.errorRequest(t,e,new Uc),!1;process.emitWarning(new Uc)}if(E!=null&&(Dt(d||E===0,"no body must not have content length"),g[Fb]=`${E}`),r.ref(),Lf.sendHeaders.hasSubscribers){let m="";for(let R in g)m+=`${R}: ${g[R]}\r
39
+ `;Lf.sendHeaders.publish({request:e,headers:m,socket:r[fe]})}let B=n==="GET"||n==="HEAD"||d===null;a?(g[Ub]="100-continue",I=r.request(g,{endStream:B,signal:l}),I[Ai]=!0,I.once("continue",D)):(I=r.request(g,{endStream:B,signal:l}),I[Ai]=!0,D()),++r[St],I.setTimeout(A);let Q=!1;return I.once("response",m=>{let{[kc]:R,...y}=m;if(e.onResponseStarted(),Q=!0,e.aborted){I.removeAllListeners("data");return}e.onHeaders(Number(R),Fc(y),I.resume.bind(I),"")===!1&&I.pause(),I.on("data",U=>{e.aborted||e.completed||e.onData(U)===!1&&I.pause()})}),I.once("end",()=>{I.removeAllListeners("data"),Q?(!e.aborted&&!e.completed&&e.onComplete({}),t[FA][t[Ut]++]=null,t[Vt]()):(u(new kA("HTTP/2: stream half-closed (remote)")),t[FA][t[Ut]++]=null,t[vc]=t[Ut],t[Vt]())}),I.once("close",()=>{I.removeAllListeners("data"),r[St]-=1,r[St]===0&&r.unref()}),I.once("error",function(m){I.removeAllListeners("data"),u(m)}),I.once("frameError",(m,R)=>{I.removeAllListeners("data"),u(new kA(`HTTP/2: "frameError" received - type ${m}, code ${R}`))}),I.on("aborted",()=>{I.removeAllListeners("data")}),I.on("timeout",()=>{let m=new kA(`HTTP/2: "stream timeout after ${A}"`);I.removeAllListeners("data"),r[St]-=1,r[St]===0&&r.unref(),u(m)}),I.once("trailers",m=>{e.aborted||e.completed||(I.removeAllListeners("data"),e.onComplete(m))}),!0;function D(){!d||E===0?Of(u,I,null,t,e,t[fe],E,h):K.isBuffer(d)?Of(u,I,d,t,e,t[fe],E,h):K.isBlobLike(d)?typeof d.stream=="function"?Gf(u,I,d.stream(),t,e,t[fe],E,h):$b(u,I,d,t,e,t[fe],E,h):K.isStream(d)?zb(u,t[fe],h,I,d,t,e,E):K.isIterable(d)?Gf(u,I,d,t,e,t[fe],E,h):Dt(!1)}}function Of(t,e,A,r,n,s,o,i){try{A!=null&&K.isBuffer(A)&&(Dt(o===A.byteLength,"buffer body must have content length"),e.cork(),e.write(A),e.uncork(),e.end(),n.onBodySent(A)),i||(s[si]=!0),n.onRequestSent(),r[Vt]()}catch(a){t(a)}}function zb(t,e,A,r,n,s,o,i){Dt(i!==0||s[ws]===0,"stream body cannot be pipelined");let a=pb(n,r,c=>{c?(K.destroy(a,c),t(c)):(K.removeAllListeners(a),o.onRequestSent(),A||(e[si]=!0),s[Vt]())});K.addListener(a,"data",l);function l(c){o.onBodySent(c)}}async function $b(t,e,A,r,n,s,o,i){Dt(o===A.size,"blob body must have content length");try{if(o!=null&&o!==A.size)throw new Uc;let a=Buffer.from(await A.arrayBuffer());e.cork(),e.write(a),e.uncork(),e.end(),n.onBodySent(a),n.onRequestSent(),i||(s[si]=!0),r[Vt]()}catch(a){t(a)}}async function Gf(t,e,A,r,n,s,o,i){Dt(o!==0||r[ws]===0,"iterator body cannot be pipelined");let a=null;function l(){if(a){let f=a;a=null,f()}}let c=()=>new Promise((f,d)=>{Dt(a===null),s[it]?d(s[it]):a=f});e.on("close",l).on("drain",l);try{for await(let f of A){if(s[it])throw s[it];let d=e.write(f);n.onBodySent(f),d||await c()}e.end(),n.onRequestSent(),i||(s[si]=!0),r[Vt]()}catch(f){t(f)}finally{e.off("close",l).off("drain",l)}}Vf.exports=Lb});var TA=b((HV,Kf)=>{"use strict";var cA=require("node:assert"),_f=require("node:net"),Rs=require("node:http"),Br=Z(),{ClientStats:eN}=kl(),{channels:cn}=DA(),tN=cE(),AN=dr(),{InvalidArgumentError:ge,InformationalError:rN,ClientDestroyedError:nN}=W(),sN=Er(),{kUrl:qt,kServerName:vA,kClient:oN,kBusy:Hc,kConnect:iN,kResuming:pr,kRunning:Fs,kPending:Us,kSize:bs,kQueue:Mt,kConnected:aN,kConnecting:un,kNeedDrain:MA,kKeepAliveDefaultTimeout:Jf,kHostHeader:lN,kPendingIdx:vt,kRunningIdx:gA,kError:cN,kPipelining:oi,kKeepAliveTimeoutValue:uN,kMaxHeadersSize:gN,kKeepAliveMaxTimeout:hN,kKeepAliveTimeoutThreshold:dN,kHeadersTimeout:EN,kBodyTimeout:fN,kStrictContentLength:IN,kConnector:Ns,kMaxRequests:Yc,kCounter:CN,kClose:QN,kDestroy:BN,kDispatch:pN,kLocalAddress:ks,kMaxResponseSize:yN,kOnError:mN,kHTTPContext:ye,kMaxConcurrentStreams:SN,kHTTP2InitialWindowSize:DN,kHTTP2ConnectionWindowSize:wN,kResume:uA,kPingInterval:RN}=le(),bN=vf(),NN=qf(),UA=Symbol("kClosedResolve"),kN=Rs&&Rs.maxHeaderSize&&Number.isInteger(Rs.maxHeaderSize)&&Rs.maxHeaderSize>0?()=>Rs.maxHeaderSize:()=>{throw new ge("http module not available or http.maxHeaderSize invalid")},Pf=()=>{};function jf(t){return t[oi]??t[ye]?.defaultPipelining??1}var Oc=class extends AN{constructor(e,{maxHeaderSize:A,headersTimeout:r,socketTimeout:n,requestTimeout:s,connectTimeout:o,bodyTimeout:i,idleTimeout:a,keepAlive:l,keepAliveTimeout:c,maxKeepAliveTimeout:f,keepAliveMaxTimeout:d,keepAliveTimeoutThreshold:g,socketPath:I,pipelining:S,tls:p,strictContentLength:u,maxCachedSessions:h,connect:E,maxRequestsPerClient:B,localAddress:Q,maxResponseSize:D,autoSelectFamily:m,autoSelectFamilyAttemptTimeout:R,maxConcurrentStreams:y,allowH2:U,useH2c:k,initialWindowSize:q,connectionWindowSize:F,pingInterval:N}={}){if(l!==void 0)throw new ge("unsupported keepAlive, use pipelining=0 instead");if(n!==void 0)throw new ge("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(s!==void 0)throw new ge("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(a!==void 0)throw new ge("unsupported idleTimeout, use keepAliveTimeout instead");if(f!==void 0)throw new ge("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(A!=null){if(!Number.isInteger(A)||A<1)throw new ge("invalid maxHeaderSize")}else A=kN();if(I!=null&&typeof I!="string")throw new ge("invalid socketPath");if(o!=null&&(!Number.isFinite(o)||o<0))throw new ge("invalid connectTimeout");if(c!=null&&(!Number.isFinite(c)||c<=0))throw new ge("invalid keepAliveTimeout");if(d!=null&&(!Number.isFinite(d)||d<=0))throw new ge("invalid keepAliveMaxTimeout");if(g!=null&&!Number.isFinite(g))throw new ge("invalid keepAliveTimeoutThreshold");if(r!=null&&(!Number.isInteger(r)||r<0))throw new ge("headersTimeout must be a positive integer or zero");if(i!=null&&(!Number.isInteger(i)||i<0))throw new ge("bodyTimeout must be a positive integer or zero");if(E!=null&&typeof E!="function"&&typeof E!="object")throw new ge("connect must be a function or an object");if(B!=null&&(!Number.isInteger(B)||B<0))throw new ge("maxRequestsPerClient must be a positive number");if(Q!=null&&(typeof Q!="string"||_f.isIP(Q)===0))throw new ge("localAddress must be valid string IP address");if(D!=null&&(!Number.isInteger(D)||D<-1))throw new ge("maxResponseSize must be a positive number");if(R!=null&&(!Number.isInteger(R)||R<-1))throw new ge("autoSelectFamilyAttemptTimeout must be a positive number");if(U!=null&&typeof U!="boolean")throw new ge("allowH2 must be a valid boolean value");if(y!=null&&(typeof y!="number"||y<1))throw new ge("maxConcurrentStreams must be a positive integer, greater than 0");if(k!=null&&typeof k!="boolean")throw new ge("useH2c must be a valid boolean value");if(q!=null&&(!Number.isInteger(q)||q<1))throw new ge("initialWindowSize must be a positive integer, greater than 0");if(F!=null&&(!Number.isInteger(F)||F<1))throw new ge("connectionWindowSize must be a positive integer, greater than 0");if(N!=null&&(typeof N!="number"||!Number.isInteger(N)||N<0))throw new ge("pingInterval must be a positive integer, greater or equal to 0");if(super(),typeof E!="function")E=sN({...p,maxCachedSessions:h,allowH2:U,useH2c:k,socketPath:I,timeout:o,...typeof m=="boolean"?{autoSelectFamily:m,autoSelectFamilyAttemptTimeout:R}:void 0,...E});else if(I!=null){let M=E;E=(H,$)=>M({...H,socketPath:I},$)}this[qt]=Br.parseOrigin(e),this[Ns]=E,this[oi]=S??1,this[gN]=A,this[Jf]=c??4e3,this[hN]=d??6e5,this[dN]=g??2e3,this[uN]=this[Jf],this[vA]=null,this[ks]=Q??null,this[pr]=0,this[MA]=0,this[lN]=`host: ${this[qt].hostname}${this[qt].port?`:${this[qt].port}`:""}\r
40
+ `,this[fN]=i??3e5,this[EN]=r??3e5,this[IN]=u??!0,this[Yc]=B,this[UA]=null,this[yN]=D>-1?D:-1,this[ye]=null,this[SN]=y??100,this[DN]=q??262144,this[wN]=F??524288,this[RN]=N??6e4,this[Mt]=[],this[gA]=0,this[vt]=0,this[uA]=M=>Gc(this,M),this[mN]=M=>Zf(this,M)}get pipelining(){return this[oi]}set pipelining(e){this[oi]=e,this[uA](!0)}get stats(){return new eN(this)}get[Us](){return this[Mt].length-this[vt]}get[Fs](){return this[vt]-this[gA]}get[bs](){return this[Mt].length-this[gA]}get[aN](){return!!this[ye]&&!this[un]&&!this[ye].destroyed}get[Hc](){return!!(this[ye]?.busy(null)||this[bs]>=(jf(this)||1)||this[Us]>0)}[iN](e){Xf(this),this.once("connect",e)}[pN](e,A){let r=new tN(this[qt].origin,e,A);return this[Mt].push(r),this[pr]||(Br.bodyLength(r.body)==null&&Br.isIterable(r.body)?(this[pr]=1,queueMicrotask(()=>Gc(this))):this[uA](!0)),this[pr]&&this[MA]!==2&&this[Hc]&&(this[MA]=2),this[MA]<2}[QN](){return new Promise(e=>{this[bs]?this[UA]=e:e(null)})}[BN](e){return new Promise(A=>{let r=this[Mt].splice(this[vt]);for(let s=0;s<r.length;s++){let o=r[s];Br.errorRequest(this,o,e)}let n=()=>{this[UA]&&(this[UA](),this[UA]=null),A(null)};this[ye]?(this[ye].destroy(e,n),this[ye]=null):queueMicrotask(n),this[uA]()})}};function Zf(t,e){if(t[Fs]===0&&e.code!=="UND_ERR_INFO"&&e.code!=="UND_ERR_SOCKET"){cA(t[vt]===t[gA]);let A=t[Mt].splice(t[gA]);for(let r=0;r<A.length;r++){let n=A[r];Br.errorRequest(t,n,e)}cA(t[bs]===0)}}function Xf(t){cA(!t[un]),cA(!t[ye]);let{host:e,hostname:A,protocol:r,port:n}=t[qt];if(A[0]==="["){let s=A.indexOf("]");cA(s!==-1);let o=A.substring(1,s);cA(_f.isIPv6(o)),A=o}t[un]=!0,cn.beforeConnect.hasSubscribers&&cn.beforeConnect.publish({connectParams:{host:e,hostname:A,protocol:r,port:n,version:t[ye]?.version,servername:t[vA],localAddress:t[ks]},connector:t[Ns]});try{t[Ns]({host:e,hostname:A,protocol:r,port:n,servername:t[vA],localAddress:t[ks]},(s,o)=>{if(s){xc(t,s,{host:e,hostname:A,protocol:r,port:n}),t[uA]();return}if(t.destroyed){Br.destroy(o.on("error",Pf),new nN),t[uA]();return}cA(o);try{t[ye]=o.alpnProtocol==="h2"?NN(t,o):bN(t,o)}catch(i){o.destroy().on("error",Pf),xc(t,i,{host:e,hostname:A,protocol:r,port:n}),t[uA]();return}t[un]=!1,o[CN]=0,o[Yc]=t[Yc],o[oN]=t,o[cN]=null,cn.connected.hasSubscribers&&cn.connected.publish({connectParams:{host:e,hostname:A,protocol:r,port:n,version:t[ye]?.version,servername:t[vA],localAddress:t[ks]},connector:t[Ns],socket:o}),t.emit("connect",t[qt],[t]),t[uA]()})}catch(s){xc(t,s,{host:e,hostname:A,protocol:r,port:n}),t[uA]()}}function xc(t,e,{host:A,hostname:r,protocol:n,port:s}){if(!t.destroyed){if(t[un]=!1,cn.connectError.hasSubscribers&&cn.connectError.publish({connectParams:{host:A,hostname:r,protocol:n,port:s,version:t[ye]?.version,servername:t[vA],localAddress:t[ks]},connector:t[Ns],error:e}),e.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(cA(t[Fs]===0);t[Us]>0&&t[Mt][t[vt]].servername===t[vA];){let o=t[Mt][t[vt]++];Br.errorRequest(t,o,e)}else Zf(t,e);t.emit("connectionError",t[qt],[t],e)}}function Wf(t){t[MA]=0,t.emit("drain",t[qt],[t])}function Gc(t,e){t[pr]!==2&&(t[pr]=2,FN(t,e),t[pr]=0,t[gA]>256&&(t[Mt].splice(0,t[gA]),t[vt]-=t[gA],t[gA]=0))}function FN(t,e){for(;;){if(t.destroyed){cA(t[Us]===0);return}if(t[UA]&&!t[bs]){t[UA](),t[UA]=null;return}if(t[ye]&&t[ye].resume(),t[Hc])t[MA]=2;else if(t[MA]===2){e?(t[MA]=1,queueMicrotask(()=>Wf(t))):Wf(t);continue}if(t[Us]===0||t[Fs]>=(jf(t)||1))return;let A=t[Mt][t[vt]];if(A===null)return;if(t[qt].protocol==="https:"&&t[vA]!==A.servername){if(t[Fs]>0)return;t[vA]=A.servername,t[ye]?.destroy(new rN("servername changed"),()=>{t[ye]=null,Gc(t)})}if(t[un])return;if(!t[ye]){Xf(t);return}if(t[ye].destroyed||t[ye].busy(A))return;!A.aborted&&t[ye].write(A)?t[vt]++:t[Mt].splice(t[vt],1)}}Kf.exports=Oc});var Vc=b((OV,zf)=>{"use strict";var ii=class{bottom=0;top=0;list=new Array(2048).fill(void 0);next=null;isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(e){this.list[this.top]=e,this.top=this.top+1&2047}shift(){let e=this.list[this.bottom];return e===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,e)}};zf.exports=class{constructor(){this.head=this.tail=new ii}isEmpty(){return this.head.isEmpty()}push(e){this.head.isFull()&&(this.head=this.head.next=new ii),this.head.push(e)}shift(){let e=this.tail,A=e.shift();return e.isEmpty()&&e.next!==null&&(this.tail=e.next,e.next=null),A}}});var ai=b((GV,iI)=>{"use strict";var{PoolStats:UN}=kl(),MN=dr(),vN=Vc(),{kConnected:qc,kSize:$f,kRunning:eI,kPending:tI,kQueued:Ms,kBusy:TN,kFree:LN,kUrl:xN,kClose:HN,kDestroy:YN,kDispatch:ON}=le(),Fe=Symbol("clients"),Ge=Symbol("needDrain"),vs=Symbol("queue"),Jc=Symbol("closed resolve"),Pc=Symbol("onDrain"),AI=Symbol("onConnect"),rI=Symbol("onDisconnect"),nI=Symbol("onConnectionError"),Wc=Symbol("get dispatcher"),sI=Symbol("add client"),oI=Symbol("remove client"),_c=class extends MN{[vs]=new vN;[Ms]=0;[Fe]=[];[Ge]=!1;[Pc](e,A,r){let n=this[vs],s=!1;for(;!s;){let o=n.shift();if(!o)break;this[Ms]--,s=!e.dispatch(o.opts,o.handler)}if(e[Ge]=s,!s&&this[Ge]&&(this[Ge]=!1,this.emit("drain",A,[this,...r])),this[Jc]&&n.isEmpty()){let o=[];for(let i=0;i<this[Fe].length;i++){let a=this[Fe][i];a.destroyed||o.push(a.close())}return Promise.all(o).then(this[Jc])}}[AI]=(e,A)=>{this.emit("connect",e,[this,...A])};[rI]=(e,A,r)=>{this.emit("disconnect",e,[this,...A],r)};[nI]=(e,A,r)=>{this.emit("connectionError",e,[this,...A],r)};get[TN](){return this[Ge]}get[qc](){let e=0;for(let{[qc]:A}of this[Fe])e+=A;return e}get[LN](){let e=0;for(let{[qc]:A,[Ge]:r}of this[Fe])e+=A&&!r;return e}get[tI](){let e=this[Ms];for(let{[tI]:A}of this[Fe])e+=A;return e}get[eI](){let e=0;for(let{[eI]:A}of this[Fe])e+=A;return e}get[$f](){let e=this[Ms];for(let{[$f]:A}of this[Fe])e+=A;return e}get stats(){return new UN(this)}[HN](){if(this[vs].isEmpty()){let e=[];for(let A=0;A<this[Fe].length;A++){let r=this[Fe][A];r.destroyed||e.push(r.close())}return Promise.all(e)}else return new Promise(e=>{this[Jc]=e})}[YN](e){for(;;){let r=this[vs].shift();if(!r)break;r.handler.onError(e)}let A=new Array(this[Fe].length);for(let r=0;r<this[Fe].length;r++)A[r]=this[Fe][r].destroy(e);return Promise.all(A)}[ON](e,A){let r=this[Wc]();return r?r.dispatch(e,A)||(r[Ge]=!0,this[Ge]=!this[Wc]()):(this[Ge]=!0,this[vs].push({opts:e,handler:A}),this[Ms]++),!this[Ge]}[sI](e){return e.on("drain",this[Pc].bind(this,e)).on("connect",this[AI]).on("disconnect",this[rI]).on("connectionError",this[nI]),this[Fe].push(e),this[Ge]&&queueMicrotask(()=>{this[Ge]&&this[Pc](e,e[xN],[e,this])}),this}[oI](e){e.close(()=>{let A=this[Fe].indexOf(e);A!==-1&&this[Fe].splice(A,1)}),this[Ge]=this[Fe].some(A=>!A[Ge]&&A.closed!==!0&&A.destroyed!==!0)}};iI.exports={PoolBase:_c,kClients:Fe,kNeedDrain:Ge,kAddClient:sI,kRemoveClient:oI,kGetDispatcher:Wc}});var yr=b((VV,uI)=>{"use strict";var{PoolBase:GN,kClients:li,kNeedDrain:VN,kAddClient:qN,kGetDispatcher:JN,kRemoveClient:PN}=ai(),WN=TA(),{InvalidArgumentError:jc}=W(),aI=Z(),{kUrl:lI}=le(),_N=Er(),ci=Symbol("options"),Zc=Symbol("connections"),cI=Symbol("factory");function jN(t,e){return new WN(t,e)}var Xc=class extends GN{constructor(e,{connections:A,factory:r=jN,connect:n,connectTimeout:s,tls:o,maxCachedSessions:i,socketPath:a,autoSelectFamily:l,autoSelectFamilyAttemptTimeout:c,allowH2:f,clientTtl:d,...g}={}){if(A!=null&&(!Number.isFinite(A)||A<0))throw new jc("invalid connections");if(typeof r!="function")throw new jc("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new jc("connect must be a function or an object");typeof n!="function"&&(n=_N({...o,maxCachedSessions:i,allowH2:f,socketPath:a,timeout:s,...typeof l=="boolean"?{autoSelectFamily:l,autoSelectFamilyAttemptTimeout:c}:void 0,...n})),super(),this[Zc]=A||null,this[lI]=aI.parseOrigin(e),this[ci]={...aI.deepClone(g),connect:n,allowH2:f,clientTtl:d,socketPath:a},this[ci].interceptors=g.interceptors?{...g.interceptors}:void 0,this[cI]=r,this.on("connect",(I,S)=>{if(d!=null&&d>0)for(let p of S)Object.assign(p,{ttl:Date.now()})}),this.on("connectionError",(I,S,p)=>{for(let u of S){let h=this[li].indexOf(u);h!==-1&&this[li].splice(h,1)}})}[JN](){let e=this[ci].clientTtl;for(let A of this[li])if(e!=null&&e>0&&A.ttl&&Date.now()-A.ttl>e)this[PN](A);else if(!A[VN])return A;if(!this[Zc]||this[li].length<this[Zc]){let A=this[cI](this[lI],this[ci]);return this[qN](A),A}}};uI.exports=Xc});var EI=b((qV,dI)=>{"use strict";var{BalancedPoolMissingUpstreamError:ZN,InvalidArgumentError:XN}=W(),{PoolBase:KN,kClients:ve,kNeedDrain:Ts,kAddClient:zN,kRemoveClient:$N,kGetDispatcher:ek}=ai(),tk=yr(),{kUrl:ui}=le(),gi=Z(),gI=Symbol("factory"),Ls=Symbol("options"),hI=Symbol("kGreatestCommonDivisor"),mr=Symbol("kCurrentWeight"),Sr=Symbol("kIndex"),wt=Symbol("kWeight"),hi=Symbol("kMaxWeightPerServer"),di=Symbol("kErrorPenalty");function Ak(t,e){if(t===0)return e;for(;e!==0;){let A=e;e=t%e,t=A}return t}function rk(t,e){return new tk(t,e)}var Kc=class extends KN{constructor(e=[],{factory:A=rk,...r}={}){if(typeof A!="function")throw new XN("factory must be a function.");super(),this[Ls]={...gi.deepClone(r)},this[Ls].interceptors=r.interceptors?{...r.interceptors}:void 0,this[Sr]=-1,this[mr]=0,this[hi]=this[Ls].maxWeightPerServer||100,this[di]=this[Ls].errorPenalty||15,Array.isArray(e)||(e=[e]),this[gI]=A;for(let n of e)this.addUpstream(n);this._updateBalancedPoolStats()}addUpstream(e){let A=gi.parseOrigin(e).origin;if(this[ve].find(n=>n[ui].origin===A&&n.closed!==!0&&n.destroyed!==!0))return this;let r=this[gI](A,this[Ls]);this[zN](r),r.on("connect",()=>{r[wt]=Math.min(this[hi],r[wt]+this[di])}),r.on("connectionError",()=>{r[wt]=Math.max(1,r[wt]-this[di]),this._updateBalancedPoolStats()}),r.on("disconnect",(...n)=>{let s=n[2];s&&s.code==="UND_ERR_SOCKET"&&(r[wt]=Math.max(1,r[wt]-this[di]),this._updateBalancedPoolStats())});for(let n of this[ve])n[wt]=this[hi];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let e=0;for(let A=0;A<this[ve].length;A++)e=Ak(this[ve][A][wt],e);this[hI]=e}removeUpstream(e){let A=gi.parseOrigin(e).origin,r=this[ve].find(n=>n[ui].origin===A&&n.closed!==!0&&n.destroyed!==!0);return r&&this[$N](r),this}getUpstream(e){let A=gi.parseOrigin(e).origin;return this[ve].find(r=>r[ui].origin===A&&r.closed!==!0&&r.destroyed!==!0)}get upstreams(){return this[ve].filter(e=>e.closed!==!0&&e.destroyed!==!0).map(e=>e[ui].origin)}[ek](){if(this[ve].length===0)throw new ZN;if(!this[ve].find(s=>!s[Ts]&&s.closed!==!0&&s.destroyed!==!0)||this[ve].map(s=>s[Ts]).reduce((s,o)=>s&&o,!0))return;let r=0,n=this[ve].findIndex(s=>!s[Ts]);for(;r++<this[ve].length;){this[Sr]=(this[Sr]+1)%this[ve].length;let s=this[ve][this[Sr]];if(s[wt]>this[ve][n][wt]&&!s[Ts]&&(n=this[Sr]),this[Sr]===0&&(this[mr]=this[mr]-this[hI],this[mr]<=0&&(this[mr]=this[hi])),s[wt]>=this[mr]&&!s[Ts])return s}return this[mr]=this[ve][n][wt],this[Sr]=n,this[ve][n]}};dI.exports=Kc});var QI=b((JV,CI)=>{"use strict";var{PoolBase:nk,kClients:Ei,kNeedDrain:sk,kAddClient:fI,kGetDispatcher:ok,kRemoveClient:ik}=ai(),ak=TA(),{InvalidArgumentError:zc}=W(),II=Z(),{kUrl:$c}=le(),lk=Er(),xs=Symbol("options"),eu=Symbol("connections"),tu=Symbol("factory"),fi=Symbol("index");function ck(t,e){return new ak(t,e)}var Au=class extends nk{constructor(e,{connections:A,factory:r=ck,connect:n,connectTimeout:s,tls:o,maxCachedSessions:i,socketPath:a,autoSelectFamily:l,autoSelectFamilyAttemptTimeout:c,allowH2:f,clientTtl:d,...g}={}){if(A!=null&&(!Number.isFinite(A)||A<0))throw new zc("invalid connections");if(typeof r!="function")throw new zc("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new zc("connect must be a function or an object");typeof n!="function"&&(n=lk({...o,maxCachedSessions:i,allowH2:f,socketPath:a,timeout:s,...typeof l=="boolean"?{autoSelectFamily:l,autoSelectFamilyAttemptTimeout:c}:void 0,...n})),super(),this[eu]=A||null,this[$c]=II.parseOrigin(e),this[xs]={...II.deepClone(g),connect:n,allowH2:f,clientTtl:d,socketPath:a},this[xs].interceptors=g.interceptors?{...g.interceptors}:void 0,this[tu]=r,this[fi]=-1,this.on("connect",(I,S)=>{if(d!=null&&d>0)for(let p of S)Object.assign(p,{ttl:Date.now()})}),this.on("connectionError",(I,S,p)=>{for(let u of S){let h=this[Ei].indexOf(u);h!==-1&&this[Ei].splice(h,1)}})}[ok](){let e=this[xs].clientTtl,A=this[Ei].length;if(A===0){let n=this[tu](this[$c],this[xs]);return this[fI](n),n}let r=0;for(;r<A;){this[fi]=(this[fi]+1)%A;let n=this[Ei][this[fi]];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e){this[ik](n),r++;continue}if(!n[sk])return n;r++}if(!this[eu]||A<this[eu]){let n=this[tu](this[$c],this[xs]);return this[fI](n),n}}};CI.exports=Au});var Dr=b((PV,wI)=>{"use strict";var{InvalidArgumentError:Ii,MaxOriginsReachedError:uk}=W(),{kClients:Rt,kRunning:BI,kClose:gk,kDestroy:hk,kDispatch:dk,kUrl:Ek}=le(),fk=dr(),Ik=yr(),Ck=TA(),Qk=Z(),pI=Symbol("onConnect"),yI=Symbol("onDisconnect"),mI=Symbol("onConnectionError"),SI=Symbol("onDrain"),DI=Symbol("factory"),ru=Symbol("options"),Hs=Symbol("origins");function Bk(t,e){return e&&e.connections===1?new Ck(t,e):new Ik(t,e)}var nu=class extends fk{constructor({factory:e=Bk,maxOrigins:A=1/0,connect:r,...n}={}){if(typeof e!="function")throw new Ii("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new Ii("connect must be a function or an object");if(typeof A!="number"||Number.isNaN(A)||A<=0)throw new Ii("maxOrigins must be a number greater than 0");super(),r&&typeof r!="function"&&(r={...r}),this[ru]={...Qk.deepClone(n),maxOrigins:A,connect:r},this[DI]=e,this[Rt]=new Map,this[Hs]=new Set,this[SI]=(s,o)=>{this.emit("drain",s,[this,...o])},this[pI]=(s,o)=>{this.emit("connect",s,[this,...o])},this[yI]=(s,o,i)=>{this.emit("disconnect",s,[this,...o],i)},this[mI]=(s,o,i)=>{this.emit("connectionError",s,[this,...o],i)}}get[BI](){let e=0;for(let{dispatcher:A}of this[Rt].values())e+=A[BI];return e}[dk](e,A){let r;if(e.origin&&(typeof e.origin=="string"||e.origin instanceof URL))r=String(e.origin);else throw new Ii("opts.origin must be a non-empty string or URL.");if(this[Hs].size>=this[ru].maxOrigins&&!this[Hs].has(r))throw new uk;let n=this[Rt].get(r),s=n&&n.dispatcher;if(!s){let o=i=>{let a=this[Rt].get(r);a&&(i&&(a.count-=1),a.count<=0&&(this[Rt].delete(r),a.dispatcher.destroyed||a.dispatcher.close()),this[Hs].delete(r))};s=this[DI](e.origin,this[ru]).on("drain",this[SI]).on("connect",(i,a)=>{let l=this[Rt].get(r);l&&(l.count+=1),this[pI](i,a)}).on("disconnect",(i,a,l)=>{o(!0),this[yI](i,a,l)}).on("connectionError",(i,a,l)=>{o(!1),this[mI](i,a,l)}),this[Rt].set(r,{count:0,dispatcher:s}),this[Hs].add(r)}return s.dispatch(e,A)}[gk](){let e=[];for(let{dispatcher:A}of this[Rt].values())e.push(A.close());return this[Rt].clear(),Promise.all(e)}[hk](e){let A=[];for(let{dispatcher:r}of this[Rt].values())A.push(r.destroy(e));return this[Rt].clear(),Promise.all(A)}get stats(){let e={};for(let{dispatcher:A}of this[Rt].values())A.stats&&(e[A[Ek].origin]=A.stats);return e}};wI.exports=nu});var kI=b((WV,NI)=>{"use strict";var{Buffer:xA}=require("node:buffer"),RI=require("node:net"),{InvalidArgumentError:LA}=W();function pk(t){if(RI.isIPv4(t)){let A=t.split(".").map(Number);return{type:1,buffer:xA.from(A)}}if(RI.isIPv6(t))return{type:4,buffer:bI(t)};let e=xA.from(t,"utf8");if(e.length>255)throw new LA("Domain name too long (max 255 bytes)");return{type:3,buffer:xA.concat([xA.from([e.length]),e])}}function bI(t){let e=xA.alloc(16),A=t.split(":"),r=0,n=0,s=t.indexOf("::");if(s!==-1){let i=8-A.filter(a=>a.length>0).length;for(let a=0;a<A.length;a++)if(A[a]===""&&a===s/3)n+=i*2;else if(A[a]!==""){let l=parseInt(A[a],16);e.writeUInt16BE(l,n),n+=2}}else for(let o of A){if(o==="")continue;let i=parseInt(o,16);e.writeUInt16BE(i,r*2),r++}return e}function yk(t,e,A){let r=xA.allocUnsafe(2);return r.writeUInt16BE(A,0),xA.concat([xA.from([t]),e,r])}function mk(t,e=0){if(t.length<e+1)throw new LA("Buffer too small to contain address type");let A=t[e],r,n=e+1;switch(A){case 1:{if(t.length<n+6)throw new LA("Buffer too small for IPv4 address");r=Array.from(t.subarray(n,n+4)).join("."),n+=4;break}case 3:{if(t.length<n+1)throw new LA("Buffer too small for domain length");let o=t[n];if(n+=1,t.length<n+o+2)throw new LA("Buffer too small for domain address");r=t.subarray(n,n+o).toString("utf8"),n+=o;break}case 4:{if(t.length<n+18)throw new LA("Buffer too small for IPv6 address");let o=[];for(let i=0;i<8;i++){let a=t.readUInt16BE(n+i*2);o.push(a.toString(16))}r=o.join(":"),n+=16;break}default:throw new LA(`Invalid address type: ${A}`)}if(t.length<n+2)throw new LA("Buffer too small for port");let s=t.readUInt16BE(n);return n+=2,{address:r,port:s,bytesRead:n-e}}function Sk(t){let A={1:"General SOCKS server failure",2:"Connection not allowed by ruleset",3:"Network unreachable",4:"Host unreachable",5:"Connection refused",6:"TTL expired",7:"Command not supported",8:"Address type not supported"}[t]||`Unknown SOCKS5 error code: ${t}`,r=new Error(A);return r.code=`SOCKS5_${t}`,r}NI.exports={parseAddress:pk,parseIPv6:bI,buildAddressBuffer:yk,parseResponseAddress:mk,createReplyError:Sk}});var MI=b((_V,UI)=>{"use strict";var{EventEmitter:Dk}=require("node:events"),{Buffer:wr}=require("node:buffer"),{InvalidArgumentError:Ys,Socks5ProxyError:HA}=W(),{debuglog:wk}=require("node:util"),{parseAddress:Rk}=kI(),hA=wk("undici:socks5"),Ci=5,gn={NO_AUTH:0,GSSAPI:1,USERNAME_PASSWORD:2,NO_ACCEPTABLE:255},FI={CONNECT:1,BIND:2,UDP_ASSOCIATE:3},Rr={IPV4:1,DOMAIN:3,IPV6:4},Jt={SUCCEEDED:0,GENERAL_FAILURE:1,CONNECTION_NOT_ALLOWED:2,NETWORK_UNREACHABLE:3,HOST_UNREACHABLE:4,CONNECTION_REFUSED:5,TTL_EXPIRED:6,COMMAND_NOT_SUPPORTED:7,ADDRESS_TYPE_NOT_SUPPORTED:8},at={INITIAL:"initial",HANDSHAKING:"handshaking",AUTHENTICATING:"authenticating",CONNECTING:"connecting",CONNECTED:"connected",ERROR:"error",CLOSED:"closed"},su=class extends Dk{constructor(e,A={}){if(super(),!e)throw new Ys("socket is required");this.socket=e,this.options=A,this.state=at.INITIAL,this.buffer=wr.alloc(0),this.authMethods=[],A.username&&A.password&&this.authMethods.push(gn.USERNAME_PASSWORD),this.authMethods.push(gn.NO_AUTH),this.socket.on("data",this.onData.bind(this)),this.socket.on("error",this.onError.bind(this)),this.socket.on("close",this.onClose.bind(this))}onData(e){hA("received data",e.length,"bytes in state",this.state),this.buffer=wr.concat([this.buffer,e]);try{switch(this.state){case at.HANDSHAKING:this.handleHandshakeResponse();break;case at.AUTHENTICATING:this.handleAuthResponse();break;case at.CONNECTING:this.handleConnectResponse();break}}catch(A){this.onError(A)}}onError(e){hA("socket error",e),this.state=at.ERROR,this.emit("error",e),this.destroy()}onClose(){hA("socket closed"),this.state=at.CLOSED,this.emit("close")}destroy(){this.socket&&!this.socket.destroyed&&this.socket.destroy()}handshake(){if(this.state!==at.INITIAL)throw new Ys("Handshake already started");hA("starting handshake with",this.authMethods.length,"auth methods"),this.state=at.HANDSHAKING;let e=wr.alloc(2+this.authMethods.length);e[0]=Ci,e[1]=this.authMethods.length,this.authMethods.forEach((A,r)=>{e[2+r]=A}),this.socket.write(e)}handleHandshakeResponse(){if(this.buffer.length<2)return;let e=this.buffer[0],A=this.buffer[1];if(e!==Ci)throw new HA(`Invalid SOCKS version: ${e}`,"UND_ERR_SOCKS5_VERSION");if(A===gn.NO_ACCEPTABLE)throw new HA("No acceptable authentication method","UND_ERR_SOCKS5_AUTH_REJECTED");if(this.buffer=this.buffer.subarray(2),hA("server selected auth method",A),A===gn.NO_AUTH)this.emit("authenticated");else if(A===gn.USERNAME_PASSWORD)this.state=at.AUTHENTICATING,this.sendAuthRequest();else throw new HA(`Unsupported authentication method: ${A}`,"UND_ERR_SOCKS5_AUTH_METHOD")}sendAuthRequest(){let{username:e,password:A}=this.options;if(!e||!A)throw new Ys("Username and password required for authentication");hA("sending username/password auth");let r=wr.from(e),n=wr.from(A);if(r.length>255||n.length>255)throw new Ys("Username or password too long");let s=wr.alloc(3+r.length+n.length);s[0]=1,s[1]=r.length,r.copy(s,2),s[2+r.length]=n.length,n.copy(s,3+r.length),this.socket.write(s)}handleAuthResponse(){if(this.buffer.length<2)return;let e=this.buffer[0],A=this.buffer[1];if(e!==1)throw new HA(`Invalid auth sub-negotiation version: ${e}`,"UND_ERR_SOCKS5_AUTH_VERSION");if(A!==0)throw new HA("Authentication failed","UND_ERR_SOCKS5_AUTH_FAILED");this.buffer=this.buffer.subarray(2),hA("authentication successful"),this.emit("authenticated")}connect(e,A){if(this.state===at.CONNECTED)throw new Ys("Already connected");hA("connecting to",e,A),this.state=at.CONNECTING;let r=this.buildConnectRequest(FI.CONNECT,e,A);this.socket.write(r)}buildConnectRequest(e,A,r){let{type:n,buffer:s}=Rk(A),o=wr.alloc(4+s.length+2);return o[0]=Ci,o[1]=e,o[2]=0,o[3]=n,s.copy(o,4),o.writeUInt16BE(r,4+s.length),o}handleConnectResponse(){if(this.buffer.length<4)return;let e=this.buffer[0],A=this.buffer[1],r=this.buffer[3];if(e!==Ci)throw new HA(`Invalid SOCKS version in reply: ${e}`,"UND_ERR_SOCKS5_REPLY_VERSION");let n=4;if(r===Rr.IPV4)n+=6;else if(r===Rr.DOMAIN){if(this.buffer.length<5)return;n+=1+this.buffer[4]+2}else if(r===Rr.IPV6)n+=18;else throw new HA(`Invalid address type in reply: ${r}`,"UND_ERR_SOCKS5_ADDR_TYPE");if(this.buffer.length<n)return;if(A!==Jt.SUCCEEDED){let a=this.getReplyErrorMessage(A);throw new HA(`SOCKS5 connection failed: ${a}`,`UND_ERR_SOCKS5_REPLY_${A}`)}let s,o=4;if(r===Rr.IPV4)s=Array.from(this.buffer.subarray(o,o+4)).join("."),o+=4;else if(r===Rr.DOMAIN){let a=this.buffer[o];o+=1,s=this.buffer.subarray(o,o+a).toString(),o+=a}else if(r===Rr.IPV6){let a=[];for(let l=0;l<8;l++){let c=this.buffer.readUInt16BE(o+l*2);a.push(c.toString(16))}s=a.join(":"),o+=16}let i=this.buffer.readUInt16BE(o);this.buffer=this.buffer.subarray(n),this.state=at.CONNECTED,hA("connected, bound address:",s,"port:",i),this.emit("connected",{address:s,port:i})}getReplyErrorMessage(e){switch(e){case Jt.GENERAL_FAILURE:return"General SOCKS server failure";case Jt.CONNECTION_NOT_ALLOWED:return"Connection not allowed by ruleset";case Jt.NETWORK_UNREACHABLE:return"Network unreachable";case Jt.HOST_UNREACHABLE:return"Host unreachable";case Jt.CONNECTION_REFUSED:return"Connection refused";case Jt.TTL_EXPIRED:return"TTL expired";case Jt.COMMAND_NOT_SUPPORTED:return"Command not supported";case Jt.ADDRESS_TYPE_NOT_SUPPORTED:return"Address type not supported";default:return`Unknown error code: ${e}`}}};UI.exports={Socks5Client:su,AUTH_METHODS:gn,COMMANDS:FI,ADDRESS_TYPES:Rr,REPLY_CODES:Jt,STATES:at}});var lu=b((jV,YI)=>{"use strict";var bk=require("node:net"),{URL:vI}=require("node:url"),ou,Nk=dr(),{InvalidArgumentError:TI}=W(),{Socks5Client:kk}=MI(),{kDispatch:LI,kClose:Fk,kDestroy:Uk}=le(),Mk=yr(),vk=Er(),{debuglog:Tk}=require("node:util"),YA=Tk("undici:socks5-proxy"),iu=Symbol("proxy url"),Lk=Symbol("proxy headers"),xI=Symbol("proxy auth"),Pt=Symbol("pool"),xk=Symbol("connector"),HI=!1,au=class extends Nk{constructor(e,A={}){if(super(),HI||(process.emitWarning("SOCKS5 proxy support is experimental and subject to change","ExperimentalWarning"),HI=!0),!e)throw new TI("Proxy URL is mandatory");let r=typeof e=="string"?new vI(e):e;if(r.protocol!=="socks5:"&&r.protocol!=="socks:")throw new TI("Proxy URL must use socks5:// or socks:// protocol");this[iu]=r,this[Lk]=A.headers||{},this[xI]={username:A.username||(r.username?decodeURIComponent(r.username):null),password:A.password||(r.password?decodeURIComponent(r.password):null)},this[xk]=A.connect||vk({...A.proxyTls,servername:A.proxyTls?.servername||r.hostname}),this[Pt]=null}async createSocks5Connection(e,A){let r=this[iu].hostname,n=parseInt(this[iu].port)||1080;YA("creating SOCKS5 connection to",r,n);let s=await new Promise((i,a)=>{let l=()=>{f.removeListener("error",c),i(f)},c=d=>{f.removeListener("connect",l),a(d)},f=bk.connect({host:r,port:n});f.once("connect",l),f.once("error",c)}),o=new kk(s,this[xI]);return o.on("error",i=>{YA("SOCKS5 error:",i),s.destroy()}),await o.handshake(),await new Promise((i,a)=>{let l=setTimeout(()=>{a(new Error("SOCKS5 authentication timeout"))},5e3),c=()=>{clearTimeout(l),o.removeListener("error",f),i()},f=d=>{clearTimeout(l),o.removeListener("authenticated",c),a(d)};o.state==="authenticated"?(clearTimeout(l),i()):(o.once("authenticated",c),o.once("error",f))}),await o.connect(e,A),await new Promise((i,a)=>{let l=setTimeout(()=>{a(new Error("SOCKS5 connection timeout"))},5e3),c=d=>{YA("SOCKS5 tunnel established to",e,A,"via",d),clearTimeout(l),o.removeListener("error",f),i()},f=d=>{clearTimeout(l),o.removeListener("connected",c),a(d)};o.once("connected",c),o.once("error",f)}),s}async[LI](e,A){let{origin:r}=e;YA("dispatching request to",r,"via SOCKS5");try{return(!this[Pt]||this[Pt].destroyed||this[Pt].closed)&&(this[Pt]=new Mk(r,{pipelining:e.pipelining,connections:e.connections,connect:async(n,s)=>{try{let o=new vI(r),i=o.hostname,a=parseInt(o.port)||(o.protocol==="https:"?443:80);YA("establishing SOCKS5 connection to",i,a);let l=await this.createSocks5Connection(i,a),c=l;o.protocol==="https:"&&(ou||(ou=require("node:tls")),YA("upgrading to TLS"),c=ou.connect({socket:l,servername:i,...n.tls||{}}),await new Promise((f,d)=>{c.once("secureConnect",f),c.once("error",d)})),s(null,c)}catch(o){YA("SOCKS5 connection error:",o),s(o)}}})),this[Pt][LI](e,A)}catch(n){if(YA("dispatch error:",n),typeof A.onError=="function")A.onError(n);else throw n}}async[Fk](){this[Pt]&&await this[Pt].close()}async[Uk](e){this[Pt]&&await this[Pt].destroy(e)}};YI.exports=au});var hu=b((ZV,KI)=>{"use strict";var{kProxy:hn,kClose:WI,kDestroy:_I,kDispatch:OI}=le(),Hk=Dr(),jI=yr(),ZI=dr(),{InvalidArgumentError:br,RequestAbortedError:Yk,SecureProxyConnectionError:Ok}=W(),GI=Er(),XI=TA(),{channels:VI}=DA(),Gk=lu(),Qi=Symbol("proxy agent"),OA=Symbol("proxy client"),dA=Symbol("proxy headers"),cu=Symbol("request tls settings"),qI=Symbol("proxy tls settings"),JI=Symbol("connect endpoint function"),PI=Symbol("tunnel proxy");function Vk(t){return t==="https:"?443:80}function qk(t,e){return new jI(t,e)}var Jk=()=>{};function Pk(t,e){return e.connections===1?new XI(t,e):new jI(t,e)}var uu=class extends ZI{#e;constructor(e,{headers:A={},connect:r,factory:n}){if(!e)throw new br("Proxy URL is mandatory");super(),this[dA]=A,n?this.#e=n(e,{connect:r}):this.#e=new XI(e,{connect:r})}[OI](e,A){let r=A.onHeaders;A.onHeaders=function(i,a,l){if(i===407){typeof A.onError=="function"&&A.onError(new br("Proxy Authentication Required (407)"));return}r&&r.call(this,i,a,l)};let{origin:n,path:s="/",headers:o={}}=e;if(e.path=n+s,!("host"in o)&&!("Host"in o)){let{host:i}=new URL(n);o.host=i}return e.headers={...this[dA],...o},this.#e[OI](e,A)}[WI](){return this.#e.close()}[_I](e){return this.#e.destroy(e)}},gu=class extends ZI{constructor(e){if(!e||typeof e=="object"&&!(e instanceof URL)&&!e.uri)throw new br("Proxy uri is mandatory");let{clientFactory:A=qk}=e;if(typeof A!="function")throw new br("Proxy opts.clientFactory must be a function.");let{proxyTunnel:r=!0}=e;super();let n=this.#e(e),{href:s,origin:o,port:i,protocol:a,username:l,password:c,hostname:f}=n;if(this[hn]={uri:s,protocol:a},this[cu]=e.requestTls,this[qI]=e.proxyTls,this[dA]=e.headers||{},this[PI]=r,e.auth&&e.token)throw new br("opts.auth cannot be used in combination with opts.token");e.auth?this[dA]["proxy-authorization"]=`Basic ${e.auth}`:e.token?this[dA]["proxy-authorization"]=e.token:l&&c&&(this[dA]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(l)}:${decodeURIComponent(c)}`).toString("base64")}`);let d=GI({...e.proxyTls});this[JI]=GI({...e.requestTls});let g=e.factory||Pk,I=(S,p)=>{let{protocol:u}=new URL(S);return this[hn].protocol==="socks5:"||this[hn].protocol==="socks:"?new Gk(this[hn].uri,{headers:this[dA],connect:d,factory:g,username:e.username||l,password:e.password||c,proxyTls:e.proxyTls}):!this[PI]&&u==="http:"&&this[hn].protocol==="http:"?new uu(this[hn].uri,{headers:this[dA],connect:d,factory:g}):g(S,p)};a==="socks5:"||a==="socks:"?this[OA]=null:this[OA]=A(n,{connect:d}),this[Qi]=new Hk({...e,factory:I,connect:async(S,p)=>{if(!this[OA]){p(new br("Cannot establish tunnel connection without a proxy client"));return}let u=S.host;S.port||(u+=`:${Vk(S.protocol)}`);try{let h={origin:o,port:i,path:u,signal:S.signal,headers:{...this[dA],host:S.host,...S.connections==null||S.connections>0?{"proxy-connection":"keep-alive"}:{}},servername:this[qI]?.servername||f},{socket:E,statusCode:B}=await this[OA].connect(h);if(B!==200){E.on("error",Jk).destroy(),p(new Yk(`Proxy response (${B}) !== 200 when HTTP Tunneling`));return}if(VI.proxyConnected.hasSubscribers&&VI.proxyConnected.publish({socket:E,connectParams:h}),S.protocol!=="https:"){p(null,E);return}let Q;this[cu]?Q=this[cu].servername:Q=S.servername,this[JI]({...S,servername:Q,httpSocket:E},p)}catch(h){h.code==="ERR_TLS_CERT_ALTNAME_INVALID"?p(new Ok(h)):p(h)}}})}dispatch(e,A){let r=Wk(e.headers);if(_k(r),r&&!("host"in r)&&!("Host"in r)){let{host:n}=new URL(e.origin);r.host=n}return this[Qi].dispatch({...e,headers:r},A)}#e(e){return typeof e=="string"?new URL(e):e instanceof URL?e:new URL(e.uri)}[WI](){let e=[this[Qi].close()];return this[OA]&&e.push(this[OA].close()),Promise.all(e)}[_I](){let e=[this[Qi].destroy()];return this[OA]&&e.push(this[OA].destroy()),Promise.all(e)}};function Wk(t){if(Array.isArray(t)){let e={};for(let A=0;A<t.length;A+=2)e[t[A]]=t[A+1];return e}return t}function _k(t){if(t&&Object.keys(t).find(A=>A.toLowerCase()==="proxy-authorization"))throw new br("Proxy-Authorization should be sent in ProxyAgent constructor")}KI.exports=gu});var AC=b((XV,tC)=>{"use strict";var jk=dr(),{kClose:Zk,kDestroy:Xk,kClosed:zI,kDestroyed:$I,kDispatch:Kk,kNoProxyAgent:Os,kHttpProxyAgent:GA,kHttpsProxyAgent:Nr}=le(),eC=hu(),zk=Dr(),$k={"http:":80,"https:":443},du=class extends jk{#e=null;#t=null;#A=null;constructor(e={}){super(),this.#A=e;let{httpProxy:A,httpsProxy:r,noProxy:n,...s}=e;this[Os]=new zk(s);let o=A??process.env.http_proxy??process.env.HTTP_PROXY;o?this[GA]=new eC({...s,uri:o}):this[GA]=this[Os];let i=r??process.env.https_proxy??process.env.HTTPS_PROXY;i?this[Nr]=new eC({...s,uri:i}):this[Nr]=this[GA],this.#n()}[Kk](e,A){let r=new URL(e.origin);return this.#r(r).dispatch(e,A)}[Zk](){return Promise.all([this[Os].close(),!this[GA][zI]&&this[GA].close(),!this[Nr][zI]&&this[Nr].close()])}[Xk](e){return Promise.all([this[Os].destroy(e),!this[GA][$I]&&this[GA].destroy(e),!this[Nr][$I]&&this[Nr].destroy(e)])}#r(e){let{protocol:A,host:r,port:n}=e;return r=r.replace(/:\d*$/,"").toLowerCase(),n=Number.parseInt(n,10)||$k[A]||0,this.#s(r,n)?A==="https:"?this[Nr]:this[GA]:this[Os]}#s(e,A){if(this.#a&&this.#n(),this.#t.length===0)return!0;if(this.#e==="*")return!1;for(let r=0;r<this.#t.length;r++){let n=this.#t[r];if(!(n.port&&n.port!==A)&&(e===n.hostname||e.slice(-(n.hostname.length+1))===`.${n.hostname}`))return!1}return!0}#n(){let e=this.#A.noProxy??this.#o,A=e.split(/[,\s]/),r=[];for(let n=0;n<A.length;n++){let s=A[n];if(!s)continue;let o=s.match(/^(.+):(\d+)$/);r.push({hostname:(o?o[1]:s).replace(/^\*?\./,"").toLowerCase(),port:o?Number.parseInt(o[2],10):0})}this.#e=e,this.#t=r}get#a(){return this.#A.noProxy!==void 0?!1:this.#e!==this.#o}get#o(){return process.env.no_proxy??process.env.NO_PROXY??""}};tC.exports=du});var Bi=b((KV,oC)=>{"use strict";var dn=require("node:assert"),{kRetryHandlerDefaultRetry:rC}=le(),{RequestRetryError:Gs}=W(),eF=ls(),{isDisturbed:nC,parseRangeHeader:sC,wrapRequestBody:tF}=Z();function AF(t){let e=new Date(t).getTime();return isNaN(e)?0:e-Date.now()}var Eu=class t{constructor(e,{dispatch:A,handler:r}){let{retryOptions:n,...s}=e,{retry:o,maxRetries:i,maxTimeout:a,minTimeout:l,timeoutFactor:c,methods:f,errorCodes:d,retryAfter:g,statusCodes:I,throwOnError:S}=n??{};this.error=null,this.dispatch=A,this.handler=eF.wrap(r),this.opts={...s,body:tF(e.body)},this.retryOpts={throwOnError:S??!0,retry:o??t[rC],retryAfter:g??!0,maxTimeout:a??30*1e3,minTimeout:l??500,timeoutFactor:c??2,maxRetries:i??5,methods:f??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:I??[500,502,503,504,429],errorCodes:d??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.headersSent=!1,this.start=0,this.end=null,this.etag=null}onResponseStartWithRetry(e,A,r,n,s){if(this.retryOpts.throwOnError){this.retryOpts.statusCodes.includes(A)===!1?(this.headersSent=!0,this.handler.onResponseStart?.(e,A,r,n)):this.error=s;return}if(nC(this.opts.body)){this.headersSent=!0,this.handler.onResponseStart?.(e,A,r,n);return}function o(i){if(i){this.headersSent=!0,this.handler.onResponseStart?.(e,A,r,n),e.resume();return}this.error=s,e.resume()}e.pause(),this.retryOpts.retry(s,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},o.bind(this))}onRequestStart(e,A){this.headersSent||this.handler.onRequestStart?.(e,A)}onRequestUpgrade(e,A,r,n){this.handler.onRequestUpgrade?.(e,A,r,n)}static[rC](e,{state:A,opts:r},n){let{statusCode:s,code:o,headers:i}=e,{method:a,retryOptions:l}=r,{maxRetries:c,minTimeout:f,maxTimeout:d,timeoutFactor:g,statusCodes:I,errorCodes:S,methods:p}=l,{counter:u}=A;if(o&&o!=="UND_ERR_REQ_RETRY"&&!S.includes(o)){n(e);return}if(Array.isArray(p)&&!p.includes(a)){n(e);return}if(s!=null&&Array.isArray(I)&&!I.includes(s)){n(e);return}if(u>c){n(e);return}let h=i?.["retry-after"];h&&(h=Number(h),h=Number.isNaN(h)?AF(i["retry-after"]):h*1e3);let E=h>0?Math.min(h,d):Math.min(f*g**(u-1),d);setTimeout(()=>n(null),E)}onResponseStart(e,A,r,n){if(this.error=null,this.retryCount+=1,A>=300){let s=new Gs("Request failed",A,{headers:r,data:{count:this.retryCount}});this.onResponseStartWithRetry(e,A,r,n,s);return}if(this.headersSent){if(A!==206&&(this.start>0||A!==200))throw new Gs("server does not support the range header and the payload was partially consumed",A,{headers:r,data:{count:this.retryCount}});let s=sC(r["content-range"]);if(!s)throw new Gs("Content-Range mismatch",A,{headers:r,data:{count:this.retryCount}});if(this.etag!=null&&this.etag!==r.etag)throw new Gs("ETag mismatch",A,{headers:r,data:{count:this.retryCount}});let{start:o,size:i,end:a=i?i-1:null}=s;dn(this.start===o,"content-range mismatch"),dn(this.end==null||this.end===a,"content-range mismatch");return}if(this.end==null){if(A===206){let s=sC(r["content-range"]);if(s==null){this.headersSent=!0,this.handler.onResponseStart?.(e,A,r,n);return}let{start:o,size:i,end:a=i?i-1:null}=s;dn(o!=null&&Number.isFinite(o),"content-range mismatch"),dn(a!=null&&Number.isFinite(a),"invalid content-length"),this.start=o,this.end=a}if(this.end==null){let s=r["content-length"];this.end=s!=null?Number(s)-1:null}dn(Number.isFinite(this.start)),dn(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=!0,this.etag=r.etag!=null?r.etag:null,this.etag!=null&&this.etag[0]==="W"&&this.etag[1]==="/"&&(this.etag=null),this.headersSent=!0,this.handler.onResponseStart?.(e,A,r,n)}else throw new Gs("Request failed",A,{headers:r,data:{count:this.retryCount}})}onResponseData(e,A){this.error||(this.start+=A.length,this.handler.onResponseData?.(e,A))}onResponseEnd(e,A){if(this.error&&this.retryOpts.throwOnError)throw this.error;if(!this.error)return this.retryCount=0,this.handler.onResponseEnd?.(e,A);this.retry(e)}retry(e){if(this.start!==0){let A={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(A["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...A}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(A){this.handler.onResponseError?.(e,A)}}onResponseError(e,A){if(e?.aborted||nC(this.opts.body)){this.handler.onResponseError?.(e,A);return}function r(n){if(!n){this.retry(e);return}this.handler?.onResponseError?.(e,n)}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}},r.bind(this))}};oC.exports=Eu});var aC=b((zV,iC)=>{"use strict";var rF=cs(),nF=Bi(),fu=class extends rF{#e=null;#t=null;constructor(e,A={}){super(A),this.#e=e,this.#t=A}dispatch(e,A){let r=new nF({...e,retryOptions:this.#t},{dispatch:this.#e.dispatch.bind(this.#e),handler:A});return this.#e.dispatch(e,r)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}};iC.exports=fu});var uC=b(($V,cC)=>{"use strict";var{InvalidArgumentError:lC}=W(),sF=TA(),Iu=class extends sF{constructor(e,A){if(typeof e=="string"&&(e=new URL(e)),e.protocol!=="http:")throw new lC("h2c-client: Only h2c protocol is supported");let{connect:r,maxConcurrentStreams:n,pipelining:s,...o}=A??{},i=100,a=100;if(n!=null&&Number.isInteger(n)&&n>0&&(i=n),s!=null&&Number.isInteger(s)&&s>0&&(a=s),a>i)throw new lC("h2c-client: pipelining cannot be greater than maxConcurrentStreams");super(e,{...o,maxConcurrentStreams:i,pipelining:a,allowH2:!0,useH2c:!0})}};cC.exports=Iu});var BC=b((eq,QC)=>{"use strict";var EC=require("node:assert"),{Readable:oF}=require("node:stream"),{RequestAbortedError:fC,NotSupportedError:iF,InvalidArgumentError:aF,AbortError:pi}=W(),IC=Z(),{ReadableStreamFrom:lF}=Z(),lt=Symbol("kConsume"),yi=Symbol("kReading"),kr=Symbol("kBody"),gC=Symbol("kAbort"),CC=Symbol("kContentType"),Cu=Symbol("kContentLength"),Qu=Symbol("kUsed"),mi=Symbol("kBytesRead"),cF=()=>{},Bu=class extends oF{constructor({resume:e,abort:A,contentType:r="",contentLength:n,highWaterMark:s=64*1024}){super({autoDestroy:!0,read:e,highWaterMark:s}),this._readableState.dataEmitted=!1,this[gC]=A,this[lt]=null,this[mi]=0,this[kr]=null,this[Qu]=!1,this[CC]=r,this[Cu]=Number.isFinite(n)?n:null,this[yi]=!1}_destroy(e,A){!e&&!this._readableState.endEmitted&&(e=new fC),e&&this[gC](),this[Qu]?A(e):setImmediate(A,e)}on(e,A){return(e==="data"||e==="readable")&&(this[yi]=!0,this[Qu]=!0),super.on(e,A)}addListener(e,A){return this.on(e,A)}off(e,A){let r=super.off(e,A);return(e==="data"||e==="readable")&&(this[yi]=this.listenerCount("data")>0||this.listenerCount("readable")>0),r}removeListener(e,A){return this.off(e,A)}push(e){return e&&(this[mi]+=e.length,this[lt])?(yu(this[lt],e),this[yi]?super.push(e):!0):super.push(e)}text(){return Vs(this,"text")}json(){return Vs(this,"json")}blob(){return Vs(this,"blob")}bytes(){return Vs(this,"bytes")}arrayBuffer(){return Vs(this,"arrayBuffer")}async formData(){throw new iF}get bodyUsed(){return IC.isDisturbed(this)}get body(){return this[kr]||(this[kr]=lF(this),this[lt]&&(this[kr].getReader(),EC(this[kr].locked))),this[kr]}dump(e){let A=e?.signal;if(A!=null&&(typeof A!="object"||!("aborted"in A)))return Promise.reject(new aF("signal must be an AbortSignal"));let r=e?.limit&&Number.isFinite(e.limit)?e.limit:128*1024;return A?.aborted?Promise.reject(A.reason??new pi):this._readableState.closeEmitted?Promise.resolve(null):new Promise((n,s)=>{if((this[Cu]&&this[Cu]>r||this[mi]>r)&&this.destroy(new pi),A){let o=()=>{this.destroy(A.reason??new pi)};A.addEventListener("abort",o),this.on("close",function(){A.removeEventListener("abort",o),A.aborted?s(A.reason??new pi):n(null)})}else this.on("close",n);this.on("error",cF).on("data",()=>{this[mi]>r&&this.destroy()}).resume()})}setEncoding(e){return Buffer.isEncoding(e)&&(this._readableState.encoding=e),this}};function uF(t){return t[kr]?.locked===!0||t[lt]!==null}function gF(t){return IC.isDisturbed(t)||uF(t)}function Vs(t,e){return EC(!t[lt]),new Promise((A,r)=>{if(gF(t)){let n=t._readableState;n.destroyed&&n.closeEmitted===!1?t.on("error",r).on("close",()=>{r(new TypeError("unusable"))}):r(n.errored??new TypeError("unusable"))}else queueMicrotask(()=>{t[lt]={type:e,stream:t,resolve:A,reject:r,length:0,body:[]},t.on("error",function(n){mu(this[lt],n)}).on("close",function(){this[lt].body!==null&&mu(this[lt],new fC)}),hF(t[lt])})})}function hF(t){if(t.body===null)return;let{_readableState:e}=t.stream;if(e.bufferIndex){let A=e.bufferIndex,r=e.buffer.length;for(let n=A;n<r;n++)yu(t,e.buffer[n])}else for(let A of e.buffer)yu(t,A);for(e.endEmitted?dC(this[lt],this._readableState.encoding):t.stream.on("end",function(){dC(this[lt],this._readableState.encoding)}),t.stream.resume();t.stream.read()!=null;);}function pu(t,e,A){if(t.length===0||e===0)return"";let r=t.length===1?t[0]:Buffer.concat(t,e),n=r.length,s=n>2&&r[0]===239&&r[1]===187&&r[2]===191?3:0;return!A||A==="utf8"||A==="utf-8"?r.utf8Slice(s,n):r.subarray(s,n).toString(A)}function hC(t,e){if(t.length===0||e===0)return new Uint8Array(0);if(t.length===1)return new Uint8Array(t[0]);let A=new Uint8Array(Buffer.allocUnsafeSlow(e).buffer),r=0;for(let n=0;n<t.length;++n){let s=t[n];A.set(s,r),r+=s.length}return A}function dC(t,e){let{type:A,body:r,resolve:n,stream:s,length:o}=t;try{A==="text"?n(pu(r,o,e)):A==="json"?n(JSON.parse(pu(r,o,e))):A==="arrayBuffer"?n(hC(r,o).buffer):A==="blob"?n(new Blob(r,{type:s[CC]})):A==="bytes"&&n(hC(r,o)),mu(t)}catch(i){s.destroy(i)}}function yu(t,e){t.length+=e.length,t.body.push(e)}function mu(t,e){t.body!==null&&(e?t.reject(e):t.resolve(),t.type=null,t.stream=null,t.resolve=null,t.reject=null,t.length=0,t.body=null)}QC.exports={Readable:Bu,chunksDecode:pu}});var mC=b((tq,Su)=>{"use strict";var dF=require("node:assert"),{AsyncResource:EF}=require("node:async_hooks"),{Readable:fF}=BC(),{InvalidArgumentError:En,RequestAbortedError:pC}=W(),bt=Z();function qs(){}var Si=class extends EF{constructor(e,A){if(!e||typeof e!="object")throw new En("invalid opts");let{signal:r,method:n,opaque:s,body:o,onInfo:i,responseHeaders:a,highWaterMark:l}=e;try{if(typeof A!="function")throw new En("invalid callback");if(l&&(typeof l!="number"||l<0))throw new En("invalid highWaterMark");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new En("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new En("invalid method");if(i&&typeof i!="function")throw new En("invalid onInfo callback");super("UNDICI_REQUEST")}catch(c){throw bt.isStream(o)&&bt.destroy(o.on("error",qs),c),c}this.method=n,this.responseHeaders=a||null,this.opaque=s||null,this.callback=A,this.res=null,this.abort=null,this.body=o,this.trailers={},this.context=null,this.onInfo=i||null,this.highWaterMark=l,this.reason=null,this.removeAbortListener=null,r?.aborted?this.reason=r.reason??new pC:r&&(this.removeAbortListener=bt.addAbortListener(r,()=>{this.reason=r.reason??new pC,this.res?bt.destroy(this.res.on("error",qs),this.reason):this.abort&&this.abort(this.reason)}))}onConnect(e,A){if(this.reason){e(this.reason);return}dF(this.callback),this.abort=e,this.context=A}onHeaders(e,A,r,n){let{callback:s,opaque:o,abort:i,context:a,responseHeaders:l,highWaterMark:c}=this,f=l==="raw"?bt.parseRawHeaders(A):bt.parseHeaders(A);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:f});return}let d=l==="raw"?bt.parseHeaders(A):f,g=d["content-type"],I=d["content-length"],S=new fF({resume:r,abort:i,contentType:g,contentLength:this.method!=="HEAD"&&I?Number(I):null,highWaterMark:c});if(this.removeAbortListener&&(S.on("close",this.removeAbortListener),this.removeAbortListener=null),this.callback=null,this.res=S,s!==null)try{this.runInAsyncScope(s,null,null,{statusCode:e,statusText:n,headers:f,trailers:this.trailers,opaque:o,body:S,context:a})}catch(p){this.res=null,bt.destroy(S.on("error",qs),p),queueMicrotask(()=>{throw p})}}onData(e){return this.res.push(e)}onComplete(e){bt.parseHeaders(e,this.trailers),this.res.push(null)}onError(e){let{res:A,callback:r,body:n,opaque:s}=this;r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:s})})),A&&(this.res=null,queueMicrotask(()=>{bt.destroy(A.on("error",qs),e)})),n&&(this.body=null,bt.isStream(n)&&(n.on("error",qs),bt.destroy(n,e))),this.removeAbortListener&&(this.removeAbortListener(),this.removeAbortListener=null)}};function yC(t,e){if(e===void 0)return new Promise((A,r)=>{yC.call(this,t,(n,s)=>n?r(n):A(s))});try{let A=new Si(t,e);this.dispatch(t,A)}catch(A){if(typeof e!="function")throw A;let r=t?.opaque;queueMicrotask(()=>e(A,{opaque:r}))}}Su.exports=yC;Su.exports.RequestHandler=Si});var Js=b((Aq,wC)=>{"use strict";var{addAbortListener:IF}=Z(),{RequestAbortedError:CF}=W(),fn=Symbol("kListener"),Wt=Symbol("kSignal");function SC(t){t.abort?t.abort(t[Wt]?.reason):t.reason=t[Wt]?.reason??new CF,DC(t)}function QF(t,e){if(t.reason=null,t[Wt]=null,t[fn]=null,!!e){if(e.aborted){SC(t);return}t[Wt]=e,t[fn]=()=>{SC(t)},IF(t[Wt],t[fn])}}function DC(t){t[Wt]&&("removeEventListener"in t[Wt]?t[Wt].removeEventListener("abort",t[fn]):t[Wt].removeListener("abort",t[fn]),t[Wt]=null,t[fn]=null)}wC.exports={addSignal:QF,removeSignal:DC}});var kC=b((rq,NC)=>{"use strict";var BF=require("node:assert"),{finished:pF}=require("node:stream"),{AsyncResource:yF}=require("node:async_hooks"),{InvalidArgumentError:In,InvalidReturnValueError:mF}=W(),EA=Z(),{addSignal:SF,removeSignal:RC}=Js();function DF(){}var Du=class extends yF{constructor(e,A,r){if(!e||typeof e!="object")throw new In("invalid opts");let{signal:n,method:s,opaque:o,body:i,onInfo:a,responseHeaders:l}=e;try{if(typeof r!="function")throw new In("invalid callback");if(typeof A!="function")throw new In("invalid factory");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new In("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new In("invalid method");if(a&&typeof a!="function")throw new In("invalid onInfo callback");super("UNDICI_STREAM")}catch(c){throw EA.isStream(i)&&EA.destroy(i.on("error",DF),c),c}this.responseHeaders=l||null,this.opaque=o||null,this.factory=A,this.callback=r,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=i,this.onInfo=a||null,EA.isStream(i)&&i.on("error",c=>{this.onError(c)}),SF(this,n)}onConnect(e,A){if(this.reason){e(this.reason);return}BF(this.callback),this.abort=e,this.context=A}onHeaders(e,A,r,n){let{factory:s,opaque:o,context:i,responseHeaders:a}=this,l=a==="raw"?EA.parseRawHeaders(A):EA.parseHeaders(A);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:l});return}if(this.factory=null,s===null)return;let c=this.runInAsyncScope(s,null,{statusCode:e,headers:l,opaque:o,context:i});if(!c||typeof c.write!="function"||typeof c.end!="function"||typeof c.on!="function")throw new mF("expected Writable");return pF(c,{readable:!1},d=>{let{callback:g,res:I,opaque:S,trailers:p,abort:u}=this;this.res=null,(d||!I?.readable)&&EA.destroy(I,d),this.callback=null,this.runInAsyncScope(g,null,d||null,{opaque:S,trailers:p}),d&&u()}),c.on("drain",r),this.res=c,(c.writableNeedDrain!==void 0?c.writableNeedDrain:c._writableState?.needDrain)!==!0}onData(e){let{res:A}=this;return A?A.write(e):!0}onComplete(e){let{res:A}=this;RC(this),A&&(this.trailers=EA.parseHeaders(e),A.end())}onError(e){let{res:A,callback:r,opaque:n,body:s}=this;RC(this),this.factory=null,A?(this.res=null,EA.destroy(A,e)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:n})})),s&&(this.body=null,EA.destroy(s,e))}};function bC(t,e,A){if(A===void 0)return new Promise((r,n)=>{bC.call(this,t,e,(s,o)=>s?n(s):r(o))});try{let r=new Du(t,e,A);this.dispatch(t,r)}catch(r){if(typeof A!="function")throw r;let n=t?.opaque;queueMicrotask(()=>A(r,{opaque:n}))}}NC.exports=bC});var vC=b((nq,MC)=>{"use strict";var{Readable:UC,Duplex:wF,PassThrough:RF}=require("node:stream"),bF=require("node:assert"),{AsyncResource:NF}=require("node:async_hooks"),{InvalidArgumentError:Ps,InvalidReturnValueError:kF,RequestAbortedError:wu}=W(),_t=Z(),{addSignal:FF,removeSignal:UF}=Js();function FC(){}var Cn=Symbol("resume"),Ru=class extends UC{constructor(){super({autoDestroy:!0}),this[Cn]=null}_read(){let{[Cn]:e}=this;e&&(this[Cn]=null,e())}_destroy(e,A){this._read(),A(e)}},bu=class extends UC{constructor(e){super({autoDestroy:!0}),this[Cn]=e}_read(){this[Cn]()}_destroy(e,A){!e&&!this._readableState.endEmitted&&(e=new wu),A(e)}},Nu=class extends NF{constructor(e,A){if(!e||typeof e!="object")throw new Ps("invalid opts");if(typeof A!="function")throw new Ps("invalid handler");let{signal:r,method:n,opaque:s,onInfo:o,responseHeaders:i}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Ps("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new Ps("invalid method");if(o&&typeof o!="function")throw new Ps("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=s||null,this.responseHeaders=i||null,this.handler=A,this.abort=null,this.context=null,this.onInfo=o||null,this.req=new Ru().on("error",FC),this.ret=new wF({readableObjectMode:e.objectMode,autoDestroy:!0,read:()=>{let{body:a}=this;a?.resume&&a.resume()},write:(a,l,c)=>{let{req:f}=this;f.push(a,l)||f._readableState.destroyed?c():f[Cn]=c},destroy:(a,l)=>{let{body:c,req:f,res:d,ret:g,abort:I}=this;!a&&!g._readableState.endEmitted&&(a=new wu),I&&a&&I(),_t.destroy(c,a),_t.destroy(f,a),_t.destroy(d,a),UF(this),l(a)}}).on("prefinish",()=>{let{req:a}=this;a.push(null)}),this.res=null,FF(this,r)}onConnect(e,A){let{res:r}=this;if(this.reason){e(this.reason);return}bF(!r,"pipeline cannot be retried"),this.abort=e,this.context=A}onHeaders(e,A,r){let{opaque:n,handler:s,context:o}=this;if(e<200){if(this.onInfo){let a=this.responseHeaders==="raw"?_t.parseRawHeaders(A):_t.parseHeaders(A);this.onInfo({statusCode:e,headers:a})}return}this.res=new bu(r);let i;try{this.handler=null;let a=this.responseHeaders==="raw"?_t.parseRawHeaders(A):_t.parseHeaders(A);i=this.runInAsyncScope(s,null,{statusCode:e,headers:a,opaque:n,body:this.res,context:o})}catch(a){throw this.res.on("error",FC),a}if(!i||typeof i.on!="function")throw new kF("expected Readable");i.on("data",a=>{let{ret:l,body:c}=this;!l.push(a)&&c.pause&&c.pause()}).on("error",a=>{let{ret:l}=this;_t.destroy(l,a)}).on("end",()=>{let{ret:a}=this;a.push(null)}).on("close",()=>{let{ret:a}=this;a._readableState.ended||_t.destroy(a,new wu)}),this.body=i}onData(e){let{res:A}=this;return A.push(e)}onComplete(e){let{res:A}=this;A.push(null)}onError(e){let{ret:A}=this;this.handler=null,_t.destroy(A,e)}};function MF(t,e){try{let A=new Nu(t,e);return this.dispatch({...t,body:A.req},A),A.ret}catch(A){return new RF().destroy(A)}}MC.exports=MF});var OC=b((sq,YC)=>{"use strict";var{InvalidArgumentError:ku,SocketError:vF}=W(),{AsyncResource:TF}=require("node:async_hooks"),TC=require("node:assert"),LC=Z(),{kHTTP2Stream:LF}=le(),{addSignal:xF,removeSignal:xC}=Js(),Fu=class extends TF{constructor(e,A){if(!e||typeof e!="object")throw new ku("invalid opts");if(typeof A!="function")throw new ku("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new ku("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=s||null,this.opaque=n||null,this.callback=A,this.abort=null,this.context=null,xF(this,r)}onConnect(e,A){if(this.reason){e(this.reason);return}TC(this.callback),this.abort=e,this.context=null}onHeaders(){throw new vF("bad upgrade",null)}onUpgrade(e,A,r){TC(r[LF]===!0?e===200:e===101);let{callback:n,opaque:s,context:o}=this;xC(this),this.callback=null;let i=this.responseHeaders==="raw"?LC.parseRawHeaders(A):LC.parseHeaders(A);this.runInAsyncScope(n,null,null,{headers:i,socket:r,opaque:s,context:o})}onError(e){let{callback:A,opaque:r}=this;xC(this),A&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(A,null,e,{opaque:r})}))}};function HC(t,e){if(e===void 0)return new Promise((A,r)=>{HC.call(this,t,(n,s)=>n?r(n):A(s))});try{let A=new Fu(t,e),r={...t,method:t.method||"GET",upgrade:t.protocol||"Websocket"};this.dispatch(r,A)}catch(A){if(typeof e!="function")throw A;let r=t?.opaque;queueMicrotask(()=>e(A,{opaque:r}))}}YC.exports=HC});var PC=b((oq,JC)=>{"use strict";var HF=require("node:assert"),{AsyncResource:YF}=require("node:async_hooks"),{InvalidArgumentError:Uu,SocketError:OF}=W(),GC=Z(),{addSignal:GF,removeSignal:VC}=Js(),Mu=class extends YF{constructor(e,A){if(!e||typeof e!="object")throw new Uu("invalid opts");if(typeof A!="function")throw new Uu("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=e;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Uu("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=n||null,this.responseHeaders=s||null,this.callback=A,this.abort=null,GF(this,r)}onConnect(e,A){if(this.reason){e(this.reason);return}HF(this.callback),this.abort=e,this.context=A}onHeaders(){throw new OF("bad connect",null)}onUpgrade(e,A,r){let{callback:n,opaque:s,context:o}=this;VC(this),this.callback=null;let i=A;i!=null&&(i=this.responseHeaders==="raw"?GC.parseRawHeaders(A):GC.parseHeaders(A)),this.runInAsyncScope(n,null,null,{statusCode:e,headers:i,socket:r,opaque:s,context:o})}onError(e){let{callback:A,opaque:r}=this;VC(this),A&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(A,null,e,{opaque:r})}))}};function qC(t,e){if(e===void 0)return new Promise((A,r)=>{qC.call(this,t,(n,s)=>n?r(n):A(s))});try{let A=new Mu(t,e),r={...t,method:"CONNECT"};this.dispatch(r,A)}catch(A){if(typeof e!="function")throw A;let r=t?.opaque;queueMicrotask(()=>e(A,{opaque:r}))}}JC.exports=qC});var WC=b((iq,Qn)=>{"use strict";Qn.exports.request=mC();Qn.exports.stream=kC();Qn.exports.pipeline=vC();Qn.exports.upgrade=OC();Qn.exports.connect=PC()});var Tu=b((aq,jC)=>{"use strict";var{UndiciError:VF}=W(),_C=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"),vu=class extends VF{constructor(e){super(e),this.name="MockNotMatchedError",this.message=e||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}static[Symbol.hasInstance](e){return e&&e[_C]===!0}get[_C](){return!0}};jC.exports={MockNotMatchedError:vu}});var Fr=b((lq,ZC)=>{"use strict";ZC.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"),kOriginalDispatch:Symbol("original dispatch"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected"),kIgnoreTrailingSlash:Symbol("ignore trailing slash"),kMockAgentMockCallHistoryInstance:Symbol("mock agent mock call history name"),kMockAgentRegisterCallHistory:Symbol("mock agent register mock call history"),kMockAgentAddCallHistoryLog:Symbol("mock agent add call history log"),kMockAgentIsCallHistoryEnabled:Symbol("mock agent is call history enabled"),kMockAgentAcceptsNonStandardSearchParameters:Symbol("mock agent accepts non standard search parameters"),kMockCallHistoryAddLog:Symbol("mock call history add log"),kTotalDispatchCount:Symbol("total dispatch count")}});var Ws=b((cq,oQ)=>{"use strict";var{MockNotMatchedError:Bn}=Tu(),{kDispatches:Ur,kMockAgent:qF,kOriginalDispatch:JF,kOrigin:PF,kGetNetConnect:WF,kTotalDispatchCount:Hu}=Fr(),{serializePathWithQuery:_F}=Z(),{STATUS_CODES:jF}=require("node:http"),{types:{isPromise:ZF}}=require("node:util"),{InvalidArgumentError:Lu}=W();function jt(t,e){return typeof t=="string"?t===e:t instanceof RegExp?t.test(e):typeof t=="function"?t(e)===!0:!1}function KC(t){return Object.fromEntries(Object.entries(t).map(([e,A])=>[e.toLocaleLowerCase(),A]))}function zC(t,e){if(Array.isArray(t)){for(let A=0;A<t.length;A+=2)if(t[A].toLocaleLowerCase()===e.toLocaleLowerCase())return t[A+1];return}else return typeof t.get=="function"?t.get(e):KC(t)[e.toLocaleLowerCase()]}function Gu(t){let e=t.slice(),A=[];for(let r=0;r<e.length;r+=2)A.push([e[r],e[r+1]]);return Object.fromEntries(A)}function $C(t,e){if(typeof t.headers=="function")return Array.isArray(e)&&(e=Gu(e)),t.headers(e?KC(e):{});if(typeof t.headers>"u")return!0;if(typeof e!="object"||typeof t.headers!="object")return!1;for(let[A,r]of Object.entries(t.headers)){let n=zC(e,A);if(!jt(r,n))return!1}return!0}function XF(t){if(typeof t!="string")return t;let e=new URLSearchParams(t),A=new URLSearchParams;for(let[r,n]of e.entries()){if(r=r.replace("[]",""),/^(['"]).*\1$/.test(n)){A.append(r,n);continue}if(n.includes(",")){let o=n.split(",");for(let i of o)A.append(r,i);continue}A.append(r,n)}return A}function xu(t){if(typeof t!="string")return t;let e=t.split("?",3);if(e.length!==2)return t;let A=new URLSearchParams(e.pop());return A.sort(),[...e,A.toString()].join("?")}function KF(t,{path:e,method:A,body:r,headers:n}){let s=jt(t.path,e),o=jt(t.method,A),i=typeof t.body<"u"?jt(t.body,r):!0,a=$C(t,n);return s&&o&&i&&a}function eQ(t){return Buffer.isBuffer(t)||t instanceof Uint8Array||t instanceof ArrayBuffer?t:typeof t=="object"?JSON.stringify(t):t?t.toString():""}function tQ(t,e){let A=e.query?_F(e.path,e.query):e.path,r=typeof A=="string"?xu(A):A,n=XC(r),s=t.filter(({consumed:o})=>!o).filter(({path:o,ignoreTrailingSlash:i})=>i?jt(XC(xu(o)),n):jt(xu(o),r));if(s.length===0)throw new Bn(`Mock dispatch not matched for path '${r}'`);if(s=s.filter(({method:o})=>jt(o,e.method)),s.length===0)throw new Bn(`Mock dispatch not matched for method '${e.method}' on path '${r}'`);if(s=s.filter(({body:o})=>typeof o<"u"?jt(o,e.body):!0),s.length===0)throw new Bn(`Mock dispatch not matched for body '${e.body}' on path '${r}'`);if(s=s.filter(o=>$C(o,e.headers)),s.length===0){let o=typeof e.headers=="object"?JSON.stringify(e.headers):e.headers;throw new Bn(`Mock dispatch not matched for headers '${o}' on path '${r}'`)}return s[0]}function zF(t,e,A,r){let n={timesInvoked:0,times:1,persist:!1,consumed:!1,...r},s=typeof A=="function"?{callback:A}:{...A},o={...n,...e,pending:!0,data:{error:null,...s}};return t.push(o),t[Hu]=(t[Hu]||0)+1,o}function Yu(t,e){let A=t.findIndex(r=>r.consumed?KF(r,e):!1);A!==-1&&t.splice(A,1)}function XC(t){for(;t.endsWith("/");)t=t.slice(0,-1);return t.length===0&&(t="/"),t}function AQ(t){let{path:e,method:A,body:r,headers:n,query:s}=t;return{path:e,method:A,body:r,headers:n,query:s}}function Ou(t){let e=Object.keys(t),A=[];for(let r=0;r<e.length;++r){let n=e[r],s=t[n],o=Buffer.from(`${n}`);if(Array.isArray(s))for(let i=0;i<s.length;++i)A.push(o,Buffer.from(`${s[i]}`));else A.push(o,Buffer.from(`${s}`))}return A}function rQ(t){return jF[t]||"unknown"}async function $F(t){let e=[];for await(let A of t)e.push(A);return Buffer.concat(e).toString("utf8")}function nQ(t,e){let A=AQ(t),r=tQ(this[Ur],A);r.timesInvoked++,r.data.callback&&(r.data={...r.data,...r.data.callback(t)});let{data:{statusCode:n,data:s,headers:o,trailers:i,error:a},delay:l,persist:c}=r,{timesInvoked:f,times:d}=r;if(r.consumed=!c&&f>=d,r.pending=f<d,a!==null)return Yu(this[Ur],A),e.onError(a),!0;let g=!1,I=null;function S(h){g||(g=!0,I!==null&&(clearTimeout(I),I=null),e.onError(h))}e.onConnect?.(S,null),typeof l=="number"&&l>0?I=setTimeout(()=>{I=null,p(this[Ur])},l):p(this[Ur]);function p(h,E=s){if(g)return;let B=Array.isArray(t.headers)?Gu(t.headers):t.headers,Q=typeof E=="function"?E({...t,headers:B}):E;if(ZF(Q))return Q.then(y=>p(h,y));if(g)return;let D=eQ(Q),m=Ou(o),R=Ou(i);e.onHeaders?.(n,m,u,rQ(n)),e.onData?.(Buffer.from(D)),e.onComplete?.(R),Yu(h,A)}function u(){}return!0}function eU(){let t=this[qF],e=this[PF],A=this[JF];return function(n,s){if(t.isMockActive)try{nQ.call(this,n,s)}catch(o){if(o.code==="UND_MOCK_ERR_MOCK_NOT_MATCHED"){let i=t[WF](),a=this[Ur][Hu]||this[Ur].length,c=`, ${this[Ur].filter(({consumed:f})=>!f).length} interceptor(s) remaining out of ${a} defined`;if(i===!1)throw new Bn(`${o.message}: subsequent request to origin ${e} was not allowed (net.connect disabled)${c}`);if(sQ(i,e))A.call(this,n,s);else throw new Bn(`${o.message}: subsequent request to origin ${e} was not allowed (net.connect is not enabled for this origin)${c}`)}else throw o}else A.call(this,n,s)}}function sQ(t,e){let A=new URL(e);return t===!0?!0:!!(Array.isArray(t)&&t.some(r=>jt(r,A.host)))}function tU(t){return typeof t!="string"&&!(t instanceof URL)?t:t instanceof URL?t.origin:t.toLowerCase()}function AU(t){let{agent:e,...A}=t;if("enableCallHistory"in A&&typeof A.enableCallHistory!="boolean")throw new Lu("options.enableCallHistory must to be a boolean");if("acceptNonStandardSearchParameters"in A&&typeof A.acceptNonStandardSearchParameters!="boolean")throw new Lu("options.acceptNonStandardSearchParameters must to be a boolean");if("ignoreTrailingSlash"in A&&typeof A.ignoreTrailingSlash!="boolean")throw new Lu("options.ignoreTrailingSlash must to be a boolean");return A}oQ.exports={getResponseData:eQ,getMockDispatch:tQ,addMockDispatch:zF,deleteMockDispatch:Yu,buildKey:AQ,generateKeyValues:Ou,matchValue:jt,getResponse:$F,getStatusText:rQ,mockDispatch:nQ,buildMockDispatch:eU,checkNetConnect:sQ,buildAndValidateMockOptions:AU,getHeaderByName:zC,buildHeadersFromArray:Gu,normalizeSearchParams:XF,normalizeOrigin:tU}});var ju=b((uq,_u)=>{"use strict";var{getResponseData:rU,buildKey:nU,addMockDispatch:Vu}=Ws(),{kDispatches:Di,kDispatchKey:wi,kDefaultHeaders:qu,kDefaultTrailers:Ju,kContentLength:Pu,kMockDispatch:Ri,kIgnoreTrailingSlash:bi}=Fr(),{InvalidArgumentError:Zt}=W(),{serializePathWithQuery:sU}=Z(),pn=class{constructor(e){this[Ri]=e}delay(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new Zt("waitInMs must be a valid integer > 0");return this[Ri].delay=e,this}persist(){return this[Ri].persist=!0,this}times(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new Zt("repeatTimes must be a valid integer > 0");return this[Ri].times=e,this}},Wu=class{constructor(e,A){if(typeof e!="object")throw new Zt("opts must be an object");if(typeof e.path>"u")throw new Zt("opts.path must be defined");if(typeof e.method>"u"&&(e.method="GET"),typeof e.path=="string")if(e.query)e.path=sU(e.path,e.query);else{let r=new URL(e.path,"data://");e.path=r.pathname+r.search}typeof e.method=="string"&&(e.method=e.method.toUpperCase()),this[wi]=nU(e),this[Di]=A,this[bi]=e.ignoreTrailingSlash??!1,this[qu]={},this[Ju]={},this[Pu]=!1}createMockScopeDispatchData({statusCode:e,data:A,responseOptions:r}){let n=rU(A),s=this[Pu]?{"content-length":n.length}:{},o={...this[qu],...s,...r.headers},i={...this[Ju],...r.trailers};return{statusCode:e,data:A,headers:o,trailers:i}}validateReplyParameters(e){if(typeof e.statusCode>"u")throw new Zt("statusCode must be defined");if(typeof e.responseOptions!="object"||e.responseOptions===null)throw new Zt("responseOptions must be an object")}reply(e){if(typeof e=="function"){let s=i=>{let a=e(i);if(typeof a!="object"||a===null)throw new Zt("reply options callback must return an object");let l={data:"",responseOptions:{},...a};return this.validateReplyParameters(l),{...this.createMockScopeDispatchData(l)}},o=Vu(this[Di],this[wi],s,{ignoreTrailingSlash:this[bi]});return new pn(o)}let A={statusCode:e,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(A);let r=this.createMockScopeDispatchData(A),n=Vu(this[Di],this[wi],r,{ignoreTrailingSlash:this[bi]});return new pn(n)}replyWithError(e){if(typeof e>"u")throw new Zt("error must be defined");let A=Vu(this[Di],this[wi],{error:e},{ignoreTrailingSlash:this[bi]});return new pn(A)}defaultReplyHeaders(e){if(typeof e>"u")throw new Zt("headers must be defined");return this[qu]=e,this}defaultReplyTrailers(e){if(typeof e>"u")throw new Zt("trailers must be defined");return this[Ju]=e,this}replyContentLength(){return this[Pu]=!0,this}};_u.exports.MockInterceptor=Wu;_u.exports.MockScope=pn});var zu=b((gq,hQ)=>{"use strict";var{promisify:oU}=require("node:util"),iU=TA(),{buildMockDispatch:aU}=Ws(),{kDispatches:Zu,kMockAgent:iQ,kClose:aQ,kOriginalClose:lQ,kOrigin:cQ,kOriginalDispatch:lU,kConnected:Xu,kIgnoreTrailingSlash:uQ}=Fr(),{MockInterceptor:cU}=ju(),gQ=le(),{InvalidArgumentError:uU}=W(),Ku=class extends iU{constructor(e,A){if(!A||!A.agent||typeof A.agent.dispatch!="function")throw new uU("Argument opts.agent must implement Agent");super(e,A),this[iQ]=A.agent,this[cQ]=e,this[uQ]=A.ignoreTrailingSlash??!1,this[Zu]=[],this[Xu]=1,this[lU]=this.dispatch,this[lQ]=this.close.bind(this),this.dispatch=aU.call(this),this.close=this[aQ]}get[gQ.kConnected](){return this[Xu]}intercept(e){return new cU(e&&{ignoreTrailingSlash:this[uQ],...e},this[Zu])}cleanMocks(){this[Zu]=[]}async[aQ](){await oU(this[lQ])(),this[Xu]=0,this[iQ][gQ.kClients].delete(this[cQ])}};hQ.exports=Ku});var tg=b((hq,eg)=>{"use strict";var{kMockCallHistoryAddLog:gU}=Fr(),{InvalidArgumentError:JA}=W();function VA(t,e,A,r){switch(e.operator){case"OR":return r.push(...A(t)),r;case"AND":return A.call({logs:r},t);default:throw new JA("options.operator must to be a case insensitive string equal to 'OR' or 'AND'")}}function hU(t={}){let e={};if("operator"in t){if(typeof t.operator!="string"||t.operator.toUpperCase()!=="OR"&&t.operator.toUpperCase()!=="AND")throw new JA("options.operator must to be a case insensitive string equal to 'OR' or 'AND'");return{...e,operator:t.operator.toUpperCase()}}return e}function qA(t){return e=>{if(typeof e=="string"||e==null)return this.logs.filter(A=>A[t]===e);if(e instanceof RegExp)return this.logs.filter(A=>e.test(A[t]));throw new JA(`${t} parameter should be one of string, regexp, undefined or null`)}}function dU(t){try{let e=new URL(t.path,t.origin);return e.search.length!==0||(e.search=new URLSearchParams(t.query).toString()),e}catch(e){throw new JA("An error occurred when computing MockCallHistoryLog.url",{cause:e})}}var Ni=class{constructor(e={}){this.body=e.body,this.headers=e.headers,this.method=e.method;let A=dU(e);this.fullUrl=A.toString(),this.origin=A.origin,this.path=A.pathname,this.searchParams=Object.fromEntries(A.searchParams),this.protocol=A.protocol,this.host=A.host,this.port=A.port,this.hash=A.hash}toMap(){return new Map([["protocol",this.protocol],["host",this.host],["port",this.port],["origin",this.origin],["path",this.path],["hash",this.hash],["searchParams",this.searchParams],["fullUrl",this.fullUrl],["method",this.method],["body",this.body],["headers",this.headers]])}toString(){let e={betweenKeyValueSeparator:"->",betweenPairSeparator:"|"},A="";return this.toMap().forEach((r,n)=>{(typeof r=="string"||r===void 0||r===null)&&(A=`${A}${n}${e.betweenKeyValueSeparator}${r}${e.betweenPairSeparator}`),(typeof r=="object"&&r!==null||Array.isArray(r))&&(A=`${A}${n}${e.betweenKeyValueSeparator}${JSON.stringify(r)}${e.betweenPairSeparator}`)}),A.slice(0,-1)}},$u=class{logs=[];calls(){return this.logs}firstCall(){return this.logs.at(0)}lastCall(){return this.logs.at(-1)}nthCall(e){if(typeof e!="number")throw new JA("nthCall must be called with a number");if(!Number.isInteger(e))throw new JA("nthCall must be called with an integer");if(Math.sign(e)!==1)throw new JA("nthCall must be called with a positive value. use firstCall or lastCall instead");return this.logs.at(e-1)}filterCalls(e,A){if(this.logs.length===0)return this.logs;if(typeof e=="function")return this.logs.filter(e);if(e instanceof RegExp)return this.logs.filter(r=>e.test(r.toString()));if(typeof e=="object"&&e!==null){if(Object.keys(e).length===0)return this.logs;let r={operator:"OR",...hU(A)},n=[];return"protocol"in e&&(n=VA(e.protocol,r,this.filterCallsByProtocol,n)),"host"in e&&(n=VA(e.host,r,this.filterCallsByHost,n)),"port"in e&&(n=VA(e.port,r,this.filterCallsByPort,n)),"origin"in e&&(n=VA(e.origin,r,this.filterCallsByOrigin,n)),"path"in e&&(n=VA(e.path,r,this.filterCallsByPath,n)),"hash"in e&&(n=VA(e.hash,r,this.filterCallsByHash,n)),"fullUrl"in e&&(n=VA(e.fullUrl,r,this.filterCallsByFullUrl,n)),"method"in e&&(n=VA(e.method,r,this.filterCallsByMethod,n)),[...new Set(n)]}throw new JA("criteria parameter should be one of function, regexp, or object")}filterCallsByProtocol=qA.call(this,"protocol");filterCallsByHost=qA.call(this,"host");filterCallsByPort=qA.call(this,"port");filterCallsByOrigin=qA.call(this,"origin");filterCallsByPath=qA.call(this,"path");filterCallsByHash=qA.call(this,"hash");filterCallsByFullUrl=qA.call(this,"fullUrl");filterCallsByMethod=qA.call(this,"method");clear(){this.logs=[]}[gU](e){let A=new Ni(e);return this.logs.push(A),A}*[Symbol.iterator](){for(let e of this.calls())yield e}};eg.exports.MockCallHistory=$u;eg.exports.MockCallHistoryLog=Ni});var sg=b((dq,BQ)=>{"use strict";var{promisify:EU}=require("node:util"),fU=yr(),{buildMockDispatch:IU}=Ws(),{kDispatches:Ag,kMockAgent:dQ,kClose:EQ,kOriginalClose:fQ,kOrigin:IQ,kOriginalDispatch:CU,kConnected:rg,kIgnoreTrailingSlash:CQ}=Fr(),{MockInterceptor:QU}=ju(),QQ=le(),{InvalidArgumentError:BU}=W(),ng=class extends fU{constructor(e,A){if(!A||!A.agent||typeof A.agent.dispatch!="function")throw new BU("Argument opts.agent must implement Agent");super(e,A),this[dQ]=A.agent,this[IQ]=e,this[CQ]=A.ignoreTrailingSlash??!1,this[Ag]=[],this[rg]=1,this[CU]=this.dispatch,this[fQ]=this.close.bind(this),this.dispatch=IU.call(this),this.close=this[EQ]}get[QQ.kConnected](){return this[rg]}intercept(e){return new QU(e&&{ignoreTrailingSlash:this[CQ],...e},this[Ag])}cleanMocks(){this[Ag]=[]}async[EQ](){await EU(this[fQ])(),this[rg]=0,this[dQ][QQ.kClients].delete(this[IQ])}};BQ.exports=ng});var yQ=b((fq,pQ)=>{"use strict";var{Transform:pU}=require("node:stream"),{Console:yU}=require("node:console"),mU=process.versions.icu?"\u2705":"Y ",SU=process.versions.icu?"\u274C":"N ";pQ.exports=class{constructor({disableColors:e}={}){this.transform=new pU({transform(A,r,n){n(null,A)}}),this.logger=new yU({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){let A=e.map(({method:r,path:n,data:{statusCode:s},persist:o,times:i,timesInvoked:a,origin:l})=>({Method:r,Origin:l,Path:n,"Status code":s,Persistent:o?mU:SU,Invocations:a,Remaining:o?1/0:i-a}));return this.logger.table(A),this.transform.read().toString()}}});var cg=b((Iq,NQ)=>{"use strict";var{kClients:Mr}=le(),DU=Dr(),{kAgent:og,kMockAgentSet:ki,kMockAgentGet:mQ,kDispatches:ig,kIsMockActive:Fi,kNetConnect:vr,kGetNetConnect:wU,kOptions:Ui,kFactory:Mi,kMockAgentRegisterCallHistory:ag,kMockAgentIsCallHistoryEnabled:_s,kMockAgentAddCallHistoryLog:SQ,kMockAgentMockCallHistoryInstance:yn,kMockAgentAcceptsNonStandardSearchParameters:DQ,kMockCallHistoryAddLog:RU,kIgnoreTrailingSlash:wQ}=Fr(),bU=zu(),NU=sg(),{matchValue:kU,normalizeSearchParams:FU,buildAndValidateMockOptions:UU,normalizeOrigin:RQ}=Ws(),{InvalidArgumentError:bQ,UndiciError:MU}=W(),vU=cs(),TU=yQ(),{MockCallHistory:LU}=tg(),lg=class extends vU{constructor(e={}){super(e);let A=UU(e);if(this[vr]=!0,this[Fi]=!0,this[_s]=A.enableCallHistory??!1,this[DQ]=A.acceptNonStandardSearchParameters??!1,this[wQ]=A.ignoreTrailingSlash??!1,e?.agent&&typeof e.agent.dispatch!="function")throw new bQ("Argument opts.agent must implement Agent");let r=e?.agent?e.agent:new DU(e);this[og]=r,this[Mr]=r[Mr],this[Ui]=A,this[_s]&&this[ag]()}get(e){let A=RQ(e),r=this[wQ]?A.replace(/\/$/,""):A,n=this[mQ](r);return n||(n=this[Mi](r),this[ki](r,n)),n}dispatch(e,A){e.origin=RQ(e.origin),this.get(e.origin),this[SQ](e);let r=this[DQ],n={...e};if(r&&n.path){let[s,o]=n.path.split("?"),i=FU(o,r);n.path=`${s}?${i}`}return this[og].dispatch(n,A)}async close(){this.clearCallHistory(),await this[og].close(),this[Mr].clear()}deactivate(){this[Fi]=!1}activate(){this[Fi]=!0}enableNetConnect(e){if(typeof e=="string"||typeof e=="function"||e instanceof RegExp)Array.isArray(this[vr])?this[vr].push(e):this[vr]=[e];else if(typeof e>"u")this[vr]=!0;else throw new bQ("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[vr]=!1}enableCallHistory(){return this[_s]=!0,this}disableCallHistory(){return this[_s]=!1,this}getCallHistory(){return this[yn]}clearCallHistory(){this[yn]!==void 0&&this[yn].clear()}get isMockActive(){return this[Fi]}[ag](){this[yn]===void 0&&(this[yn]=new LU)}[SQ](e){this[_s]&&(this[ag](),this[yn][RU](e))}[ki](e,A){this[Mr].set(e,{count:0,dispatcher:A})}[Mi](e){let A=Object.assign({agent:this},this[Ui]);return this[Ui]&&this[Ui].connections===1?new bU(e,A):new NU(e,A)}[mQ](e){let A=this[Mr].get(e);if(A?.dispatcher)return A.dispatcher;if(typeof e!="string"){let r=this[Mi]("http://localhost:9999");return this[ki](e,r),r}for(let[r,n]of Array.from(this[Mr]))if(n&&typeof r!="string"&&kU(r,e)){let s=this[Mi](e);return this[ki](e,s),s[ig]=n.dispatcher[ig],s}}[wU](){return this[vr]}pendingInterceptors(){let e=this[Mr];return Array.from(e.entries()).flatMap(([A,r])=>r.dispatcher[ig].map(n=>({...n,origin:A}))).filter(({pending:A})=>A)}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new TU}={}){let A=this.pendingInterceptors();if(A.length!==0)throw new MU(A.length===1?`1 interceptor is pending:
41
+
42
+ ${e.format(A)}`.trim():`${A.length} interceptors are pending:
43
+
44
+ ${e.format(A)}`.trim())}};NQ.exports=lg});var ug=b((Cq,MQ)=>{"use strict";var{InvalidArgumentError:xU}=W(),{runtimeFeatures:HU}=iA();function YU(t={}){let{ignoreHeaders:e=[],excludeHeaders:A=[],matchHeaders:r=[],caseSensitive:n=!1}=t;return{ignore:new Set(e.map(s=>n?s:s.toLowerCase())),exclude:new Set(A.map(s=>n?s:s.toLowerCase())),match:new Set(r.map(s=>n?s:s.toLowerCase()))}}var kQ=HU.has("crypto")?require("node:crypto"):null,OU=kQ?.hash?t=>kQ.hash("sha256",t,"base64url"):t=>Buffer.from(t).toString("base64url");function UQ(t){return Array.isArray(t)&&(t.length&1)===0}function GU(t=[]){return t.length===0?()=>!1:function(A){let r;for(let n of t)if(typeof n=="string"){if(r||(r=A.toLowerCase()),r.includes(n.toLowerCase()))return!0}else if(n instanceof RegExp&&n.test(A))return!0;return!1}}function VU(t){let e={};if(!t)return e;if(UQ(t)){for(let A=0;A<t.length;A+=2){let r=t[A],n=t[A+1];if(r&&n!==void 0){let s=Buffer.isBuffer(r)?r.toString():r,o=Buffer.isBuffer(n)?n.toString():n;e[s.toLowerCase()]=o}}return e}if(t&&typeof t=="object")for(let[A,r]of Object.entries(t))A&&typeof A=="string"&&(e[A.toLowerCase()]=Array.isArray(r)?r.join(", "):String(r));return e}var FQ=["record","playback","update"];function qU(t){if(!FQ.includes(t))throw new xU(`Invalid snapshot mode: ${t}. Must be one of: ${FQ.join(", ")}`)}MQ.exports={createHeaderFilters:YU,hashId:OU,isUndiciHeaders:UQ,normalizeHeaders:VU,isUrlExcludedFactory:GU,validateSnapshotMode:qU}});var VQ=b((Qq,GQ)=>{"use strict";var{writeFile:JU,readFile:PU,mkdir:WU}=require("node:fs/promises"),{dirname:_U,resolve:vQ}=require("node:path"),{setTimeout:jU,clearTimeout:TQ}=require("node:timers"),{InvalidArgumentError:LQ,UndiciError:ZU}=W(),{hashId:XU,isUrlExcludedFactory:KU,normalizeHeaders:xQ,createHeaderFilters:HQ}=ug();function js(t,e,A={}){let r=new URL(t.path,t.origin),n=t._normalizedHeaders||xQ(t.headers);return t._normalizedHeaders||(t._normalizedHeaders=n),{method:t.method||"GET",url:A.matchQuery!==!1?r.toString():`${r.origin}${r.pathname}`,headers:YQ(n,e,A),body:A.matchBody!==!1&&t.body?String(t.body):""}}function YQ(t,e,A={}){if(!t||typeof t!="object")return{};let{caseSensitive:r=!1}=A,n={},{ignore:s,exclude:o,match:i}=e;for(let[a,l]of Object.entries(t)){let c=r?a:a.toLowerCase();o.has(c)||s.has(c)||i.size!==0&&!i.has(c)||(n[c]=l)}return n}function OQ(t,e,A={}){if(!t||typeof t!="object")return{};let{caseSensitive:r=!1}=A,n={},{exclude:s}=e;for(let[o,i]of Object.entries(t)){let a=r?o:o.toLowerCase();s.has(a)||(n[a]=i)}return n}function Zs(t){let e=[t.method,t.url];if(t.headers&&typeof t.headers=="object"){let r=Object.keys(t.headers).sort();for(let n of r){let s=Array.isArray(t.headers[n])?t.headers[n]:[t.headers[n]];e.push(n);for(let o of s.sort())e.push(String(o))}}e.push(t.body);let A=e.join("|");return XU(A)}var gg=class{#e;#t;#A=new Map;#r;#s=1/0;#n=!1;#a;constructor(e={}){this.#r=e.snapshotPath,this.#s=e.maxSnapshots||1/0,this.#n=e.autoFlush||!1,this.flushInterval=e.flushInterval||3e4,this._flushTimer=null,this.matchOptions={matchHeaders:e.matchHeaders||[],ignoreHeaders:e.ignoreHeaders||[],excludeHeaders:e.excludeHeaders||[],matchBody:e.matchBody!==!1,matchQuery:e.matchQuery!==!1,caseSensitive:e.caseSensitive||!1},this.#a=HQ(this.matchOptions),this.shouldRecord=e.shouldRecord||(()=>!0),this.shouldPlayback=e.shouldPlayback||(()=>!0),this.#t=KU(e.excludeUrls),this.#n&&this.#r&&this.#o()}async record(e,A){if(!this.shouldRecord(e)||this.isUrlExcluded(e))return;let r=js(e,this.#a,this.matchOptions),n=Zs(r),s=xQ(A.headers),o={statusCode:A.statusCode,headers:OQ(s,this.#a,this.matchOptions),body:Buffer.isBuffer(A.body)?A.body.toString("base64"):Buffer.from(String(A.body||"")).toString("base64"),trailers:A.trailers};if(this.#A.size>=this.#s&&!this.#A.has(n)){let a=this.#A.keys().next().value;this.#A.delete(a)}let i=this.#A.get(n);i&&i.responses?(i.responses.push(o),i.timestamp=new Date().toISOString()):this.#A.set(n,{request:r,responses:[o],callCount:0,timestamp:new Date().toISOString()}),this.#n&&this.#r&&this.#l()}isUrlExcluded(e){let A=new URL(e.path,e.origin).toString();return this.#t(A)}findSnapshot(e){if(!this.shouldPlayback(e)||this.isUrlExcluded(e))return;let A=js(e,this.#a,this.matchOptions),r=Zs(A),n=this.#A.get(r);if(!n)return;let s=n.callCount||0,o=Math.min(s,n.responses.length-1);return n.callCount=s+1,{...n,response:n.responses[o]}}async loadSnapshots(e){let A=e||this.#r;if(!A)throw new LQ("Snapshot path is required");try{let r=await PU(vQ(A),"utf8"),n=JSON.parse(r);if(Array.isArray(n)){this.#A.clear();for(let{hash:s,snapshot:o}of n)this.#A.set(s,o)}else this.#A=new Map(Object.entries(n))}catch(r){if(r.code==="ENOENT")this.#A.clear();else throw new ZU(`Failed to load snapshots from ${A}`,{cause:r})}}async saveSnapshots(e){let A=e||this.#r;if(!A)throw new LQ("Snapshot path is required");let r=vQ(A);await WU(_U(r),{recursive:!0});let n=Array.from(this.#A.entries()).map(([s,o])=>({hash:s,snapshot:o}));await JU(r,JSON.stringify(n,null,2),{flush:!0})}clear(){this.#A.clear()}getSnapshots(){return Array.from(this.#A.values())}size(){return this.#A.size}resetCallCounts(){for(let e of this.#A.values())e.callCount=0}deleteSnapshot(e){let A=js(e,this.#a,this.matchOptions),r=Zs(A);return this.#A.delete(r)}getSnapshotInfo(e){let A=js(e,this.#a,this.matchOptions),r=Zs(A),n=this.#A.get(r);return n?{hash:r,request:n.request,responseCount:n.responses?n.responses.length:n.response?1:0,callCount:n.callCount||0,timestamp:n.timestamp}:null}replaceSnapshots(e){if(this.#A.clear(),Array.isArray(e))for(let{hash:A,snapshot:r}of e)this.#A.set(A,r);else e&&typeof e=="object"&&(this.#A=new Map(Object.entries(e)))}#o(){return this.#l()}#i(){this.#e&&(TQ(this.#e),this.saveSnapshots().catch(()=>{}),this.#e=null)}#l(){this.#e=jU(()=>{this.saveSnapshots().catch(()=>{}),this.#n?this.#e?.refresh():this.#e=null},1e3)}destroy(){this.#i(),this.#e&&(TQ(this.#e),this.#e=null)}async close(){this.#r&&this.#A.size!==0&&await this.saveSnapshots(),this.destroy()}};GQ.exports={SnapshotRecorder:gg,formatRequestKey:js,createRequestHash:Zs,filterHeadersForMatching:YQ,filterHeadersForStorage:OQ,createHeaderFilters:HQ}});var PQ=b((Bq,JQ)=>{"use strict";var zU=Dr(),$U=cg(),{SnapshotRecorder:eM}=VQ(),tM=ls(),{InvalidArgumentError:AM,UndiciError:rM}=W(),{validateSnapshotMode:nM}=ug(),je=Symbol("kSnapshotRecorder"),Xt=Symbol("kSnapshotMode"),Xs=Symbol("kSnapshotPath"),hg=Symbol("kSnapshotLoaded"),vi=Symbol("kRealAgent"),qQ=!1,dg=class extends $U{constructor(e={}){qQ||(process.emitWarning("SnapshotAgent is experimental and subject to change","ExperimentalWarning"),qQ=!0);let{mode:A="record",snapshotPath:r=null,...n}=e;if(super(n),nM(A),(A==="playback"||A==="update")&&!r)throw new AM(`snapshotPath is required when mode is '${A}'`);this[Xt]=A,this[Xs]=r,this[je]=new eM({snapshotPath:this[Xs],mode:this[Xt],maxSnapshots:e.maxSnapshots,autoFlush:e.autoFlush,flushInterval:e.flushInterval,matchHeaders:e.matchHeaders,ignoreHeaders:e.ignoreHeaders,excludeHeaders:e.excludeHeaders,matchBody:e.matchBody,matchQuery:e.matchQuery,caseSensitive:e.caseSensitive,shouldRecord:e.shouldRecord,shouldPlayback:e.shouldPlayback,excludeUrls:e.excludeUrls}),this[hg]=!1,(this[Xt]==="record"||this[Xt]==="update"||this[Xt]==="playback"&&e.excludeUrls&&e.excludeUrls.length>0)&&(this[vi]=new zU(e)),(this[Xt]==="playback"||this[Xt]==="update")&&this[Xs]&&this.loadSnapshots().catch(()=>{})}dispatch(e,A){A=tM.wrap(A);let r=this[Xt];if(this[je].isUrlExcluded(e))return this[vi].dispatch(e,A);if(r==="playback"||r==="update"){if(!this[hg])return this.#e(e,A);let n=this[je].findSnapshot(e);if(n)return this.#A(n,A);if(r==="update")return this.#t(e,A);{let s=new rM(`No snapshot found for ${e.method||"GET"} ${e.path}`);if(A.onError){A.onError(s);return}throw s}}else if(r==="record")return this.#t(e,A)}async#e(e,A){return await this.loadSnapshots(),this.dispatch(e,A)}#t(e,A){let r={statusCode:null,headers:{},trailers:{},body:[]},n=this,s={onRequestStart(i,a){return A.onRequestStart(i,{...a,history:this.history})},onRequestUpgrade(i,a,l,c){return A.onRequestUpgrade(i,a,l,c)},onResponseStart(i,a,l,c){return r.statusCode=a,r.headers=l,A.onResponseStart(i,a,l,c)},onResponseData(i,a){return r.body.push(a),A.onResponseData(i,a)},onResponseEnd(i,a){r.trailers=a;let l=Buffer.concat(r.body);n[je].record(e,{statusCode:r.statusCode,headers:r.headers,body:l,trailers:r.trailers}).then(()=>A.onResponseEnd(i,a)).catch(c=>A.onResponseError(i,c))}};return this[vi].dispatch(e,s)}#A(e,A){try{let{response:r}=e,n={pause(){},resume(){},abort(o){this.aborted=!0,this.reason=o},aborted:!1,paused:!1};A.onRequestStart(n),A.onResponseStart(n,r.statusCode,r.headers);let s=Buffer.from(r.body,"base64");A.onResponseData(n,s),A.onResponseEnd(n,r.trailers)}catch(r){A.onError?.(r)}}async loadSnapshots(e){await this[je].loadSnapshots(e||this[Xs]),this[hg]=!0,this[Xt]==="playback"&&this.#r()}async saveSnapshots(e){return this[je].saveSnapshots(e||this[Xs])}#r(){for(let e of this[je].getSnapshots()){let{request:A,responses:r,response:n}=e,s=new URL(A.url),o=this.get(s.origin),i=r?r[0]:n;i&&o.intercept({path:s.pathname+s.search,method:A.method,headers:A.headers,body:A.body}).reply(i.statusCode,i.body,{headers:i.headers,trailers:i.trailers}).persist()}}getRecorder(){return this[je]}getMode(){return this[Xt]}clearSnapshots(){this[je].clear()}resetCallCounts(){this[je].resetCallCounts()}deleteSnapshot(e){return this[je].deleteSnapshot(e)}getSnapshotInfo(e){return this[je].getSnapshotInfo(e)}replaceSnapshots(e){this[je].replaceSnapshots(e)}async close(){await this[je].close(),await this[vi]?.close(),await super.close()}};JQ.exports=dg});var Ti=b((pq,ZQ)=>{"use strict";var WQ=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:sM}=W(),oM=Dr();jQ()===void 0&&_Q(new oM);function _Q(t){if(!t||typeof t.dispatch!="function")throw new sM("Argument agent must implement Agent");Object.defineProperty(globalThis,WQ,{value:t,writable:!0,enumerable:!1,configurable:!1})}function jQ(){return globalThis[WQ]}var iM=["fetch","Headers","Response","Request","FormData","WebSocket","CloseEvent","ErrorEvent","MessageEvent","EventSource"];ZQ.exports={setGlobalDispatcher:_Q,getGlobalDispatcher:jQ,installedExports:iM}});var mn=b((mq,XQ)=>{"use strict";var fA=require("node:assert"),aM=ls();XQ.exports=class{#e;#t=!1;#A=!1;#r=!1;constructor(e){if(typeof e!="object"||e===null)throw new TypeError("handler must be an object");this.#e=aM.wrap(e)}onRequestStart(...e){this.#e.onRequestStart?.(...e)}onRequestUpgrade(...e){return fA(!this.#t),fA(!this.#A),this.#e.onRequestUpgrade?.(...e)}onResponseStart(...e){return fA(!this.#t),fA(!this.#A),fA(!this.#r),this.#r=!0,this.#e.onResponseStart?.(...e)}onResponseData(...e){return fA(!this.#t),fA(!this.#A),this.#e.onResponseData?.(...e)}onResponseEnd(...e){return fA(!this.#t),fA(!this.#A),this.#t=!0,this.#e.onResponseEnd?.(...e)}onResponseError(...e){return this.#A=!0,this.#e.onResponseError?.(...e)}onBodySent(){}}});var Cg=b((Sq,eB)=>{"use strict";var Ze=Z(),{kBodyUsed:Ks}=le(),Ig=require("node:assert"),{InvalidArgumentError:Eg}=W(),lM=require("node:events"),cM=[300,301,302,303,307,308],KQ=Symbol("body"),zQ=()=>{},Li=class{constructor(e){this[KQ]=e,this[Ks]=!1}async*[Symbol.asyncIterator](){Ig(!this[Ks],"disturbed"),this[Ks]=!0,yield*this[KQ]}},fg=class t{static buildDispatch(e,A){if(A!=null&&(!Number.isInteger(A)||A<0))throw new Eg("maxRedirections must be a positive number");let r=e.dispatch.bind(e);return(n,s)=>r(n,new t(r,A,n,s))}constructor(e,A,r,n){if(A!=null&&(!Number.isInteger(A)||A<0))throw new Eg("maxRedirections must be a positive number");this.dispatch=e,this.location=null;let{maxRedirections:s,...o}=r;this.opts=o,this.maxRedirections=A,this.handler=n,this.history=[],Ze.isStream(this.opts.body)?(Ze.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Ig(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[Ks]=!1,lM.prototype.on.call(this.opts.body,"data",function(){this[Ks]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new Li(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&Ze.isIterable(this.opts.body)&&!Ze.isFormDataLike(this.opts.body)&&(this.opts.body=new Li(this.opts.body))}onRequestStart(e,A){this.handler.onRequestStart?.(e,{...A,history:this.history})}onRequestUpgrade(e,A,r,n){this.handler.onRequestUpgrade?.(e,A,r,n)}onResponseStart(e,A,r,n){if(this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections)throw new Error("max redirects");if((A===301||A===302)&&this.opts.method==="POST"&&(this.opts.method="GET",Ze.isStream(this.opts.body)&&Ze.destroy(this.opts.body.on("error",zQ)),this.opts.body=null),A===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",Ze.isStream(this.opts.body)&&Ze.destroy(this.opts.body.on("error",zQ)),this.opts.body=null),this.location=this.history.length>=this.maxRedirections||Ze.isDisturbed(this.opts.body)||cM.indexOf(A)===-1?null:r.location,this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location){this.handler.onResponseStart?.(e,A,r,n);return}let{origin:s,pathname:o,search:i}=Ze.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),a=i?`${o}${i}`:o,l=`${s}${a}`;for(let c of this.history)if(c.toString()===l)throw new Eg(`Redirect loop detected. Cannot redirect to ${s}. This typically happens when using a Client or Pool with cross-origin redirects. Use an Agent for cross-origin redirects.`);this.opts.headers=uM(this.opts.headers,A===303,this.opts.origin!==s),this.opts.path=a,this.opts.origin=s,this.opts.query=null}onResponseData(e,A){this.location||this.handler.onResponseData?.(e,A)}onResponseEnd(e,A){this.location?this.dispatch(this.opts,this):this.handler.onResponseEnd(e,A)}onResponseError(e,A){this.handler.onResponseError?.(e,A)}};function $Q(t,e,A){if(t.length===4)return Ze.headerNameToString(t)==="host";if(e&&Ze.headerNameToString(t).startsWith("content-"))return!0;if(A&&(t.length===13||t.length===6||t.length===19)){let r=Ze.headerNameToString(t);return r==="authorization"||r==="cookie"||r==="proxy-authorization"}return!1}function uM(t,e,A){let r=[];if(Array.isArray(t))for(let n=0;n<t.length;n+=2)$Q(t[n],e,A)||r.push(t[n],t[n+1]);else if(t&&typeof t=="object"){let n=Ze.hasSafeIterator(t)?t:Object.entries(t);for(let[s,o]of n)$Q(s,e,A)||r.push(s,o)}else Ig(t==null,"headers must be an object or an array");return r}eB.exports=fg});var AB=b((Dq,tB)=>{"use strict";var gM=Cg();function hM({maxRedirections:t}={}){return e=>function(r,n){let{maxRedirections:s=t,...o}=r;if(s==null||s===0)return e(r,n);let i={...o},a=new gM(e,s,i,n);return e(i,a)}}tB.exports=hM});var nB=b((wq,rB)=>{"use strict";var dM=mn(),{ResponseError:EM}=W(),Qg=class extends dM{#e;#t;#A;#r;#s;constructor(e,{handler:A}){super(A)}#n(e){return(this.#t??"").indexOf(e)===0}onRequestStart(e,A){return this.#e=0,this.#t=null,this.#A=null,this.#r=null,this.#s="",super.onRequestStart(e,A)}onResponseStart(e,A,r,n){if(this.#e=A,this.#r=r,this.#t=r["content-type"],this.#e<400)return super.onResponseStart(e,A,r,n);(this.#n("application/json")||this.#n("text/plain"))&&(this.#A=new TextDecoder("utf-8"))}onResponseData(e,A){if(this.#e<400)return super.onResponseData(e,A);this.#s+=this.#A?.decode(A,{stream:!0})??""}onResponseEnd(e,A){if(this.#e>=400){if(this.#s+=this.#A?.decode(void 0,{stream:!1})??"",this.#n("application/json"))try{this.#s=JSON.parse(this.#s)}catch{}let r,n=Error.stackTraceLimit;Error.stackTraceLimit=0;try{r=new EM("Response Error",this.#e,{body:this.#s,headers:this.#r})}finally{Error.stackTraceLimit=n}super.onResponseError(e,r)}else super.onResponseEnd(e,A)}onResponseError(e,A){super.onResponseError(e,A)}};rB.exports=()=>t=>function(A,r){return t(A,new Qg(A,{handler:r}))}});var oB=b((Rq,sB)=>{"use strict";var fM=Bi();sB.exports=t=>e=>function(r,n){return e(r,new fM({...r,retryOptions:{...t,...r.retryOptions}},{handler:n,dispatch:e}))}});var aB=b((bq,iB)=>{"use strict";var{InvalidArgumentError:IM,RequestAbortedError:CM}=W(),QM=mn(),Bg=class extends QM{#e=1024*1024;#t=!1;#A=0;#r=null;aborted=!1;reason=!1;constructor({maxSize:e,signal:A},r){if(e!=null&&(!Number.isFinite(e)||e<1))throw new IM("maxSize must be a number greater than 0");super(r),this.#e=e??this.#e}#s(e){this.aborted=!0,this.reason=e}onRequestStart(e,A){return e.abort=this.#s.bind(this),this.#r=e,super.onRequestStart(e,A)}onResponseStart(e,A,r,n){let s=r["content-length"];if(s!=null&&s>this.#e)throw new CM(`Response size (${s}) larger than maxSize (${this.#e})`);return this.aborted===!0?!0:super.onResponseStart(e,A,r,n)}onResponseError(e,A){this.#t||(A=this.#r?.reason??A,super.onResponseError(e,A))}onResponseData(e,A){return this.#A=this.#A+A.length,this.#A>=this.#e&&(this.#t=!0,this.aborted===!0?super.onResponseError(e,this.reason):super.onResponseEnd(e,{})),!0}onResponseEnd(e,A){if(!this.#t){if(this.#r.aborted===!0){super.onResponseError(e,this.reason);return}super.onResponseEnd(e,A)}}};function BM({maxSize:t}={maxSize:1024*1024}){return e=>function(r,n){let{dumpMaxSize:s=t}=r,o=new Bg({maxSize:s,signal:r.signal},n);return e(r,o)}}iB.exports=BM});var gB=b((Nq,uB)=>{"use strict";var{isIP:pM}=require("node:net"),{lookup:yM}=require("node:dns"),mM=mn(),{InvalidArgumentError:Tr,InformationalError:SM}=W(),pg=Math.pow(2,31)-1;function DM(t){let e=Object.getPrototypeOf(t);return Object.prototype.hasOwnProperty.call(t,Symbol.iterator)||e!=null&&e!==Object.prototype&&typeof t[Symbol.iterator]=="function"}function lB(t){return typeof t=="string"&&t.toLowerCase()==="host"}function wM(t){if(t==null)return null;if(Array.isArray(t)){if(t.length===0||!Array.isArray(t[0]))return t;let e=[];for(let A of t)Array.isArray(A)&&A.length===2?e.push(A[0],A[1]):e.push(A);return e}if(typeof t=="object"&&DM(t)){let e=[];for(let A of t)Array.isArray(A)&&A.length===2?e.push(A[0],A[1]):e.push(A);return e}return t}function RM(t){if(t==null)return!1;if(Array.isArray(t)){if(t.length===0)return!1;for(let e=0;e<t.length;e+=2)if(lB(t[e]))return!0;return!1}if(typeof t=="object"){for(let e in t)if(lB(e))return!0}return!1}function cB(t,e){let A=wM(e);return RM(A)?A:Array.isArray(A)?["host",t,...A]:A&&typeof A=="object"?{host:t,...A}:{host:t}}var yg=class{#e=0;#t=new Map;constructor(e){this.#e=e.maxItems}get size(){return this.#t.size}get(e){return this.#t.get(e)??null}set(e,A){this.#t.set(e,A)}delete(e){this.#t.delete(e)}full(){return this.size>=this.#e}},mg=class{#e=0;#t=0;dualStack=!0;affinity=null;lookup=null;pick=null;storage=null;constructor(e){this.#e=e.maxTTL,this.#t=e.maxItems,this.dualStack=e.dualStack,this.affinity=e.affinity,this.lookup=e.lookup??this.#A,this.pick=e.pick??this.#r,this.storage=e.storage??new yg(e)}runLookup(e,A,r){let n=this.storage.get(e.hostname);if(n==null&&this.storage.full()){r(null,e);return}let s={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...A.dns,maxTTL:this.#e,maxItems:this.#t};if(n==null)this.lookup(e,s,(o,i)=>{if(o||i==null||i.length===0){r(o??new SM("No DNS entries found"));return}this.setRecords(e,i);let a=this.storage.get(e.hostname),l=this.pick(e,a,s.affinity),c;typeof l.port=="number"?c=`:${l.port}`:e.port!==""?c=`:${e.port}`:c="",r(null,new URL(`${e.protocol}//${l.family===6?`[${l.address}]`:l.address}${c}`))});else{let o=this.pick(e,n,s.affinity);if(o==null){this.storage.delete(e.hostname),this.runLookup(e,A,r);return}let i;typeof o.port=="number"?i=`:${o.port}`:e.port!==""?i=`:${e.port}`:i="",r(null,new URL(`${e.protocol}//${o.family===6?`[${o.address}]`:o.address}${i}`))}}#A(e,A,r){yM(e.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(n,s)=>{if(n)return r(n);let o=new Map;for(let i of s)o.set(`${i.address}:${i.family}`,i);r(null,o.values())})}#r(e,A,r){let n=null,{records:s,offset:o}=A,i;if(this.dualStack?(r==null&&(o==null||o===pg?(A.offset=0,r=4):(A.offset++,r=(A.offset&1)===1?6:4)),s[r]!=null&&s[r].ips.length>0?i=s[r]:i=s[r===4?6:4]):i=s[r],i==null||i.ips.length===0)return n;i.offset==null||i.offset===pg?i.offset=0:i.offset++;let a=i.offset%i.ips.length;return n=i.ips[a]??null,n==null?n:Date.now()-n.timestamp>n.ttl?(i.ips.splice(a,1),this.pick(e,A,r)):n}pickFamily(e,A){let r=this.storage.get(e.hostname)?.records;if(!r)return null;let n=r[A];if(!n)return null;n.offset==null||n.offset===pg?n.offset=0:n.offset++;let s=n.offset%n.ips.length,o=n.ips[s]??null;return o==null||Date.now()-o.timestamp>o.ttl&&n.ips.splice(s,1),o}setRecords(e,A){let r=Date.now(),n={records:{4:null,6:null}},s=this.#e;for(let o of A){o.timestamp=r,typeof o.ttl=="number"?(o.ttl=Math.min(o.ttl,this.#e),s=Math.min(s,o.ttl)):o.ttl=this.#e;let i=n.records[o.family]??{ips:[]};i.ips.push(o),n.records[o.family]=i}this.storage.set(e.hostname,n,{ttl:s})}deleteRecords(e){this.storage.delete(e.hostname)}getHandler(e,A){return new Sg(this,e,A)}},Sg=class extends mM{#e=null;#t=null;#A=null;#r=null;#s=null;#n=null;#a=!0;constructor(e,{origin:A,handler:r,dispatch:n,newOrigin:s},o){super(r),this.#r=A,this.#n=s,this.#t={...o},this.#e=e,this.#A=n}onResponseError(e,A){switch(A.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#e.dualStack){if(!this.#a){super.onResponseError(e,A);return}this.#a=!1;let r=this.#n.hostname[0]==="["?4:6,n=this.#e.pickFamily(this.#r,r);if(n==null){super.onResponseError(e,A);return}let s;typeof n.port=="number"?s=`:${n.port}`:this.#r.port!==""?s=`:${this.#r.port}`:s="";let o={...this.#t,origin:`${this.#r.protocol}//${n.family===6?`[${n.address}]`:n.address}${s}`,headers:cB(this.#r.host,this.#t.headers)};this.#A(o,this);return}super.onResponseError(e,A);break}case"ENOTFOUND":this.#e.deleteRecords(this.#r),super.onResponseError(e,A);break;default:super.onResponseError(e,A);break}}};uB.exports=t=>{if(t?.maxTTL!=null&&(typeof t?.maxTTL!="number"||t?.maxTTL<0))throw new Tr("Invalid maxTTL. Must be a positive number");if(t?.maxItems!=null&&(typeof t?.maxItems!="number"||t?.maxItems<1))throw new Tr("Invalid maxItems. Must be a positive number and greater than zero");if(t?.affinity!=null&&t?.affinity!==4&&t?.affinity!==6)throw new Tr("Invalid affinity. Must be either 4 or 6");if(t?.dualStack!=null&&typeof t?.dualStack!="boolean")throw new Tr("Invalid dualStack. Must be a boolean");if(t?.lookup!=null&&typeof t?.lookup!="function")throw new Tr("Invalid lookup. Must be a function");if(t?.pick!=null&&typeof t?.pick!="function")throw new Tr("Invalid pick. Must be a function");if(t?.storage!=null&&(typeof t?.storage?.get!="function"||typeof t?.storage?.set!="function"||typeof t?.storage?.full!="function"||typeof t?.storage?.delete!="function"))throw new Tr("Invalid storage. Must be a object with methods: { get, set, full, delete }");let e=t?.dualStack??!0,A;e?A=t?.affinity??null:A=t?.affinity??4;let r={maxTTL:t?.maxTTL??1e4,lookup:t?.lookup??null,pick:t?.pick??null,dualStack:e,affinity:A,maxItems:t?.maxItems??1/0,storage:t?.storage},n=new mg(r);return s=>function(i,a){let l=i.origin.constructor===URL?i.origin:new URL(i.origin);return pM(l.hostname)!==0?s(i,a):(n.runLookup(l,i,(c,f)=>{if(c)return a.onResponseError(null,c);let d={...i,servername:l.hostname,origin:f.origin,headers:cB(l.host,i.headers)};s(d,n.getHandler({origin:l,dispatch:s,handler:a,newOrigin:f},i))}),!0)}}});var Sn=b((kq,dB)=>{"use strict";var{safeHTTPMethods:hB,pathHasQueryOrFragment:bM,hasSafeIterator:NM}=Z(),{serializePathWithQuery:kM}=Z();function FM(t){if(!t.origin)throw new Error("opts.origin is undefined");let e=t.path||"/";return t.query&&!bM(t.path)&&(e=kM(e,t.query)),{origin:t.origin.toString(),method:t.method,path:e,headers:t.headers}}function UM(t){let e;if(t.headers==null)e={};else if(typeof t.headers=="object")if(e={},NM(t.headers))for(let A of t.headers){if(!Array.isArray(A))throw new Error("opts.headers is not a valid header map");let[r,n]=A;if(typeof r!="string"||typeof n!="string")throw new Error("opts.headers is not a valid header map");e[r.toLowerCase()]=n}else for(let A of Object.keys(t.headers))e[A.toLowerCase()]=t.headers[A];else throw new Error("opts.headers is not an object");return e}function MM(t){if(typeof t!="object")throw new TypeError(`expected key to be object, got ${typeof t}`);for(let e of["origin","method","path"])if(typeof t[e]!="string")throw new TypeError(`expected key.${e} to be string, got ${typeof t[e]}`);if(t.headers!==void 0&&typeof t.headers!="object")throw new TypeError(`expected headers to be object, got ${typeof t}`)}function vM(t){if(typeof t!="object")throw new TypeError(`expected value to be object, got ${typeof t}`);for(let e of["statusCode","cachedAt","staleAt","deleteAt"])if(typeof t[e]!="number")throw new TypeError(`expected value.${e} to be number, got ${typeof t[e]}`);if(typeof t.statusMessage!="string")throw new TypeError(`expected value.statusMessage to be string, got ${typeof t.statusMessage}`);if(t.headers!=null&&typeof t.headers!="object")throw new TypeError(`expected value.rawHeaders to be object, got ${typeof t.headers}`);if(t.vary!==void 0&&typeof t.vary!="object")throw new TypeError(`expected value.vary to be object, got ${typeof t.vary}`);if(t.etag!==void 0&&typeof t.etag!="string")throw new TypeError(`expected value.etag to be string, got ${typeof t.etag}`)}function TM(t){let e={},A;if(Array.isArray(t)){A=[];for(let r of t)A.push(...r.split(","))}else A=t.split(",");for(let r=0;r<A.length;r++){let n=A[r].toLowerCase(),s=n.indexOf("="),o,i;switch(s!==-1?(o=n.substring(0,s).trimStart(),i=n.substring(s+1)):o=n.trim(),o){case"min-fresh":case"max-stale":case"max-age":case"s-maxage":case"stale-while-revalidate":case"stale-if-error":{if(i===void 0||i[0]===" ")continue;i.length>=2&&i[0]==='"'&&i[i.length-1]==='"'&&(i=i.substring(1,i.length-1));let a=parseInt(i,10);if(a!==a||o==="max-age"&&o in e&&e[o]>=a)continue;e[o]=a;break}case"private":case"no-cache":if(i){if(i[0]==='"'){let a=[i.substring(1)],l=i[i.length-1]==='"';if(!l)for(let c=r+1;c<A.length;c++){let f=A[c],d=f.length;if(a.push(f.trim()),d!==0&&f[d-1]==='"'){l=!0;break}}if(l){let c=a[a.length-1];c[c.length-1]==='"'&&(c=c.substring(0,c.length-1),a[a.length-1]=c),o in e?e[o]=e[o].concat(a):e[o]=a}}else o in e?e[o]=e[o].concat(i):e[o]=[i];break}case"public":case"no-store":case"must-revalidate":case"proxy-revalidate":case"immutable":case"no-transform":case"must-understand":case"only-if-cached":if(i)continue;e[o]=!0;break;default:continue}}return e}function LM(t,e){if(typeof t=="string"&&t.includes("*"))return e;let A={},r=typeof t=="string"?t.split(","):t;for(let n of r){let s=n.trim().toLowerCase();A[s]=e[s]??null}return A}function xM(t){return t.length<=2?!1:t[0]==='"'&&t[t.length-1]==='"'?!(t[1]==='"'||t.startsWith('"W/')):t.startsWith('W/"')&&t[t.length-1]==='"'?t.length!==4:!1}function HM(t,e="CacheStore"){if(typeof t!="object"||t===null)throw new TypeError(`expected type of ${e} to be a CacheStore, got ${t===null?"null":typeof t}`);for(let A of["get","createWriteStream","delete"])if(typeof t[A]!="function")throw new TypeError(`${e} needs to have a \`${A}()\` function`)}function YM(t,e="CacheMethods"){if(!Array.isArray(t))throw new TypeError(`expected type of ${e} needs to be an array, got ${t===null?"null":typeof t}`);if(t.length===0)throw new TypeError(`${e} needs to have at least one method`);for(let A of t)if(!hB.includes(A))throw new TypeError(`element of ${e}-array needs to be one of following values: ${hB.join(", ")}, got ${A}`)}function OM(t,e){let A=`${t.origin}:${t.method}:${t.path}`;if(t.headers){let r=Object.keys(t.headers).sort();for(let n of r){if(e?.has(n.toLowerCase()))continue;let s=t.headers[n];A+=`:${n}=${Array.isArray(s)?s.join(","):s}`}}return A}dB.exports={makeCacheKey:FM,normalizeHeaders:UM,assertCacheKey:MM,assertCacheValue:vM,parseCacheControlHeader:TM,parseVaryHeader:LM,isEtagUsable:xM,assertCacheMethods:YM,assertCacheStore:HM,makeDeduplicationKey:OM}});var fB=b((Fq,EB)=>{"use strict";function GM(t){switch(t[3]){case",":return VM(t);case" ":return qM(t);default:return JM(t)}}function VM(t){if(t.length!==29||t[4]!==" "||t[7]!==" "||t[11]!==" "||t[16]!==" "||t[19]!==":"||t[22]!==":"||t[25]!==" "||t[26]!=="G"||t[27]!=="M"||t[28]!=="T")return;let e=-1;if(t[0]==="S"&&t[1]==="u"&&t[2]==="n")e=0;else if(t[0]==="M"&&t[1]==="o"&&t[2]==="n")e=1;else if(t[0]==="T"&&t[1]==="u"&&t[2]==="e")e=2;else if(t[0]==="W"&&t[1]==="e"&&t[2]==="d")e=3;else if(t[0]==="T"&&t[1]==="h"&&t[2]==="u")e=4;else if(t[0]==="F"&&t[1]==="r"&&t[2]==="i")e=5;else if(t[0]==="S"&&t[1]==="a"&&t[2]==="t")e=6;else return;let A=0;if(t[5]==="0"){let g=t.charCodeAt(6);if(g<49||g>57)return;A=g-48}else{let g=t.charCodeAt(5);if(g<49||g>51)return;let I=t.charCodeAt(6);if(I<48||I>57)return;A=(g-48)*10+(I-48)}let r=-1;if(t[8]==="J"&&t[9]==="a"&&t[10]==="n")r=0;else if(t[8]==="F"&&t[9]==="e"&&t[10]==="b")r=1;else if(t[8]==="M"&&t[9]==="a")if(t[10]==="r")r=2;else if(t[10]==="y")r=4;else return;else if(t[8]==="J")if(t[9]==="a"&&t[10]==="n")r=0;else if(t[9]==="u")if(t[10]==="n")r=5;else if(t[10]==="l")r=6;else return;else return;else if(t[8]==="A")if(t[9]==="p"&&t[10]==="r")r=3;else if(t[9]==="u"&&t[10]==="g")r=7;else return;else if(t[8]==="S"&&t[9]==="e"&&t[10]==="p")r=8;else if(t[8]==="O"&&t[9]==="c"&&t[10]==="t")r=9;else if(t[8]==="N"&&t[9]==="o"&&t[10]==="v")r=10;else if(t[8]==="D"&&t[9]==="e"&&t[10]==="c")r=11;else return;let n=t.charCodeAt(12);if(n<48||n>57)return;let s=t.charCodeAt(13);if(s<48||s>57)return;let o=t.charCodeAt(14);if(o<48||o>57)return;let i=t.charCodeAt(15);if(i<48||i>57)return;let a=(n-48)*1e3+(s-48)*100+(o-48)*10+(i-48),l=0;if(t[17]==="0"){let g=t.charCodeAt(18);if(g<48||g>57)return;l=g-48}else{let g=t.charCodeAt(17);if(g<48||g>50)return;let I=t.charCodeAt(18);if(I<48||I>57||g===50&&I>51)return;l=(g-48)*10+(I-48)}let c=0;if(t[20]==="0"){let g=t.charCodeAt(21);if(g<48||g>57)return;c=g-48}else{let g=t.charCodeAt(20);if(g<48||g>53)return;let I=t.charCodeAt(21);if(I<48||I>57)return;c=(g-48)*10+(I-48)}let f=0;if(t[23]==="0"){let g=t.charCodeAt(24);if(g<48||g>57)return;f=g-48}else{let g=t.charCodeAt(23);if(g<48||g>53)return;let I=t.charCodeAt(24);if(I<48||I>57)return;f=(g-48)*10+(I-48)}let d=new Date(Date.UTC(a,r,A,l,c,f));return d.getUTCDay()===e?d:void 0}function qM(t){if(t.length!==24||t[7]!==" "||t[10]!==" "||t[19]!==" ")return;let e=-1;if(t[0]==="S"&&t[1]==="u"&&t[2]==="n")e=0;else if(t[0]==="M"&&t[1]==="o"&&t[2]==="n")e=1;else if(t[0]==="T"&&t[1]==="u"&&t[2]==="e")e=2;else if(t[0]==="W"&&t[1]==="e"&&t[2]==="d")e=3;else if(t[0]==="T"&&t[1]==="h"&&t[2]==="u")e=4;else if(t[0]==="F"&&t[1]==="r"&&t[2]==="i")e=5;else if(t[0]==="S"&&t[1]==="a"&&t[2]==="t")e=6;else return;let A=-1;if(t[4]==="J"&&t[5]==="a"&&t[6]==="n")A=0;else if(t[4]==="F"&&t[5]==="e"&&t[6]==="b")A=1;else if(t[4]==="M"&&t[5]==="a")if(t[6]==="r")A=2;else if(t[6]==="y")A=4;else return;else if(t[4]==="J")if(t[5]==="a"&&t[6]==="n")A=0;else if(t[5]==="u")if(t[6]==="n")A=5;else if(t[6]==="l")A=6;else return;else return;else if(t[4]==="A")if(t[5]==="p"&&t[6]==="r")A=3;else if(t[5]==="u"&&t[6]==="g")A=7;else return;else if(t[4]==="S"&&t[5]==="e"&&t[6]==="p")A=8;else if(t[4]==="O"&&t[5]==="c"&&t[6]==="t")A=9;else if(t[4]==="N"&&t[5]==="o"&&t[6]==="v")A=10;else if(t[4]==="D"&&t[5]==="e"&&t[6]==="c")A=11;else return;let r=0;if(t[8]===" "){let g=t.charCodeAt(9);if(g<49||g>57)return;r=g-48}else{let g=t.charCodeAt(8);if(g<49||g>51)return;let I=t.charCodeAt(9);if(I<48||I>57)return;r=(g-48)*10+(I-48)}let n=0;if(t[11]==="0"){let g=t.charCodeAt(12);if(g<48||g>57)return;n=g-48}else{let g=t.charCodeAt(11);if(g<48||g>50)return;let I=t.charCodeAt(12);if(I<48||I>57||g===50&&I>51)return;n=(g-48)*10+(I-48)}let s=0;if(t[14]==="0"){let g=t.charCodeAt(15);if(g<48||g>57)return;s=g-48}else{let g=t.charCodeAt(14);if(g<48||g>53)return;let I=t.charCodeAt(15);if(I<48||I>57)return;s=(g-48)*10+(I-48)}let o=0;if(t[17]==="0"){let g=t.charCodeAt(18);if(g<48||g>57)return;o=g-48}else{let g=t.charCodeAt(17);if(g<48||g>53)return;let I=t.charCodeAt(18);if(I<48||I>57)return;o=(g-48)*10+(I-48)}let i=t.charCodeAt(20);if(i<48||i>57)return;let a=t.charCodeAt(21);if(a<48||a>57)return;let l=t.charCodeAt(22);if(l<48||l>57)return;let c=t.charCodeAt(23);if(c<48||c>57)return;let f=(i-48)*1e3+(a-48)*100+(l-48)*10+(c-48),d=new Date(Date.UTC(f,A,r,n,s,o));return d.getUTCDay()===e?d:void 0}function JM(t){let e=-1,A=-1;if(t[0]==="S")t[1]==="u"&&t[2]==="n"&&t[3]==="d"&&t[4]==="a"&&t[5]==="y"?(A=0,e=6):t[1]==="a"&&t[2]==="t"&&t[3]==="u"&&t[4]==="r"&&t[5]==="d"&&t[6]==="a"&&t[7]==="y"&&(A=6,e=8);else if(t[0]==="M"&&t[1]==="o"&&t[2]==="n"&&t[3]==="d"&&t[4]==="a"&&t[5]==="y")A=1,e=6;else if(t[0]==="T")t[1]==="u"&&t[2]==="e"&&t[3]==="s"&&t[4]==="d"&&t[5]==="a"&&t[6]==="y"?(A=2,e=7):t[1]==="h"&&t[2]==="u"&&t[3]==="r"&&t[4]==="s"&&t[5]==="d"&&t[6]==="a"&&t[7]==="y"&&(A=4,e=8);else if(t[0]==="W"&&t[1]==="e"&&t[2]==="d"&&t[3]==="n"&&t[4]==="e"&&t[5]==="s"&&t[6]==="d"&&t[7]==="a"&&t[8]==="y")A=3,e=9;else if(t[0]==="F"&&t[1]==="r"&&t[2]==="i"&&t[3]==="d"&&t[4]==="a"&&t[5]==="y")A=5,e=6;else return;if(t[e]!==","||t.length-e-1!==23||t[e+1]!==" "||t[e+4]!=="-"||t[e+8]!=="-"||t[e+11]!==" "||t[e+14]!==":"||t[e+17]!==":"||t[e+20]!==" "||t[e+21]!=="G"||t[e+22]!=="M"||t[e+23]!=="T")return;let r=0;if(t[e+2]==="0"){let d=t.charCodeAt(e+3);if(d<49||d>57)return;r=d-48}else{let d=t.charCodeAt(e+2);if(d<49||d>51)return;let g=t.charCodeAt(e+3);if(g<48||g>57)return;r=(d-48)*10+(g-48)}let n=-1;if(t[e+5]==="J"&&t[e+6]==="a"&&t[e+7]==="n")n=0;else if(t[e+5]==="F"&&t[e+6]==="e"&&t[e+7]==="b")n=1;else if(t[e+5]==="M"&&t[e+6]==="a"&&t[e+7]==="r")n=2;else if(t[e+5]==="A"&&t[e+6]==="p"&&t[e+7]==="r")n=3;else if(t[e+5]==="M"&&t[e+6]==="a"&&t[e+7]==="y")n=4;else if(t[e+5]==="J"&&t[e+6]==="u"&&t[e+7]==="n")n=5;else if(t[e+5]==="J"&&t[e+6]==="u"&&t[e+7]==="l")n=6;else if(t[e+5]==="A"&&t[e+6]==="u"&&t[e+7]==="g")n=7;else if(t[e+5]==="S"&&t[e+6]==="e"&&t[e+7]==="p")n=8;else if(t[e+5]==="O"&&t[e+6]==="c"&&t[e+7]==="t")n=9;else if(t[e+5]==="N"&&t[e+6]==="o"&&t[e+7]==="v")n=10;else if(t[e+5]==="D"&&t[e+6]==="e"&&t[e+7]==="c")n=11;else return;let s=t.charCodeAt(e+9);if(s<48||s>57)return;let o=t.charCodeAt(e+10);if(o<48||o>57)return;let i=(s-48)*10+(o-48);i+=i<70?2e3:1900;let a=0;if(t[e+12]==="0"){let d=t.charCodeAt(e+13);if(d<48||d>57)return;a=d-48}else{let d=t.charCodeAt(e+12);if(d<48||d>50)return;let g=t.charCodeAt(e+13);if(g<48||g>57||d===50&&g>51)return;a=(d-48)*10+(g-48)}let l=0;if(t[e+15]==="0"){let d=t.charCodeAt(e+16);if(d<48||d>57)return;l=d-48}else{let d=t.charCodeAt(e+15);if(d<48||d>53)return;let g=t.charCodeAt(e+16);if(g<48||g>57)return;l=(d-48)*10+(g-48)}let c=0;if(t[e+18]==="0"){let d=t.charCodeAt(e+19);if(d<48||d>57)return;c=d-48}else{let d=t.charCodeAt(e+18);if(d<48||d>53)return;let g=t.charCodeAt(e+19);if(g<48||g>57)return;c=(d-48)*10+(g-48)}let f=new Date(Date.UTC(i,n,r,a,l,c));return f.getUTCDay()===A?f:void 0}EB.exports={parseHttpDate:GM}});var BB=b((Uq,QB)=>{"use strict";var PM=Z(),{parseCacheControlHeader:WM,parseVaryHeader:_M,isEtagUsable:jM}=Sn(),{parseHttpDate:IB}=fB();function ZM(){}var CB=[200,203,204,206,300,301,308,404,405,410,414,501],XM=[206],KM=2147483647e3,Dg=class{#e;#t;#A;#r;#s;#n;constructor({store:e,type:A,cacheByDefault:r},n,s){this.#r=e,this.#t=A,this.#A=r,this.#e=n,this.#s=s}onRequestStart(e,A){this.#n?.destroy(),this.#n=void 0,this.#s.onRequestStart?.(e,A)}onRequestUpgrade(e,A,r,n){this.#s.onRequestUpgrade?.(e,A,r,n)}onResponseStart(e,A,r,n){let s=()=>this.#s.onResponseStart?.(e,A,r,n),o=this;if(!PM.safeHTTPMethods.includes(this.#e.method)&&A>=200&&A<=399){try{this.#r.delete(this.#e)?.catch?.(ZM)}catch{}return s()}let i=r["cache-control"],a=r["last-modified"]&&CB.includes(A);if(!i&&!r.expires&&!a&&!this.#A)return s();let l=i?WM(i):{};if(!zM(this.#t,A,r,l,this.#e.headers))return s();let c=Date.now(),f=r.age?$M(r.age):void 0;if(f&&f>=KM)return s();let d=typeof r.date=="string"?IB(r.date):void 0,g=ev(this.#t,c,f,r,d,l)??this.#A;if(g===void 0||f&&f>g)return s();let I=d?d.getTime():c,S=g+I;if(c>=S)return s();let p;if(this.#e.headers&&r.vary&&(p=_M(r.vary,this.#e.headers),!p))return s();let u=tv(I,l,S),h=Av(r,l),E={statusCode:A,statusMessage:n,headers:h,vary:p,cacheControlDirectives:l,cachedAt:f?c-f:c,staleAt:S,deleteAt:u};if(A===304){let B=D=>{if(!D)return s();if(E.statusCode=D.statusCode,E.statusMessage=D.statusMessage,E.etag=D.etag,E.headers={...D.headers,...h},s(),this.#n=this.#r.createWriteStream(this.#e,E),!(!this.#n||!D?.body))if(typeof D.body.values=="function"){let m=D.body.values(),R=()=>{for(let y of m){let U=this.#n.write(y)===!1;if(this.#s.onResponseData?.(e,y),U)break}};this.#n.on("error",function(){o.#n=void 0,o.#r.delete(o.#e)}).on("drain",()=>{R()}).on("close",function(){o.#n===this&&(o.#n=void 0)}),R()}else typeof D.body.on=="function"&&(D.body.on("data",m=>{this.#n.write(m),this.#s.onResponseData?.(e,m)}).on("end",()=>{this.#n.end()}).on("error",()=>{this.#n=void 0,this.#r.delete(this.#e)}),this.#n.on("error",function(){o.#n=void 0,o.#r.delete(o.#e)}).on("close",function(){o.#n===this&&(o.#n=void 0)}))},Q=this.#r.get(this.#e);Q&&typeof Q.then=="function"?Q.then(B):B(Q)}else{if(typeof r.etag=="string"&&jM(r.etag)&&(E.etag=r.etag),this.#n=this.#r.createWriteStream(this.#e,E),!this.#n)return s();this.#n.on("drain",()=>e.resume()).on("error",function(){o.#n=void 0,o.#r.delete(o.#e)}).on("close",function(){o.#n===this&&(o.#n=void 0),e.resume()}),s()}}onResponseData(e,A){this.#n?.write(A)===!1&&e.pause(),this.#s.onResponseData?.(e,A)}onResponseEnd(e,A){this.#n?.end(),this.#s.onResponseEnd?.(e,A)}onResponseError(e,A){this.#n?.destroy(A),this.#n=void 0,this.#s.onResponseError?.(e,A)}};function zM(t,e,A,r,n){return!(e<200||XM.includes(e)||!CB.includes(e)&&!A.expires&&!r.public&&r["max-age"]===void 0&&!(r.private&&t==="private")&&!(r["s-maxage"]!==void 0&&t==="shared")||r["no-store"]||t==="shared"&&r.private===!0||A.vary?.includes("*")||n?.authorization&&(!r.public&&!r["s-maxage"]&&!r["must-revalidate"]||typeof n.authorization!="string"||Array.isArray(r["no-cache"])&&r["no-cache"].includes("authorization")||Array.isArray(r.private)&&r.private.includes("authorization")))}function $M(t){let e=parseInt(Array.isArray(t)?t[0]:t);return isNaN(e)?void 0:e*1e3}function ev(t,e,A,r,n,s){if(t==="shared"){let i=s["s-maxage"];if(i!==void 0)return i>0?i*1e3:void 0}let o=s["max-age"];if(o!==void 0)return o>0?o*1e3:void 0;if(typeof r.expires=="string"){let i=IB(r.expires);if(i)return e>=i.getTime()||n&&(n>=i||A!==void 0&&A>i-n)?void 0:i.getTime()-e}if(typeof r["last-modified"]=="string"){let i=new Date(r["last-modified"]);if(rv(i))return i.getTime()>=e?void 0:(e-i.getTime())*.1}if(s.immutable)return 31536e3}function tv(t,e,A){let r=-1/0,n=-1/0,s=-1/0;if(e["stale-while-revalidate"]&&(r=A+e["stale-while-revalidate"]*1e3),e["stale-if-error"]&&(n=A+e["stale-if-error"]*1e3),e.immutable&&r===-1/0&&n===-1/0&&(s=t+31536e6),r===-1/0&&n===-1/0&&s===-1/0){let o=A-t;return A+o}return Math.max(A,r,n,s)}function Av(t,e){let A=["connection","proxy-authenticate","proxy-authentication-info","proxy-authorization","proxy-connection","te","transfer-encoding","upgrade","age"];t.connection&&(Array.isArray(t.connection)?A.push(...t.connection.map(n=>n.trim())):A.push(...t.connection.split(",").map(n=>n.trim()))),Array.isArray(e["no-cache"])&&A.push(...e["no-cache"]),Array.isArray(e.private)&&A.push(...e.private);let r;for(let n of A)t[n]&&(r??={...t},delete r[n]);return r??t}function rv(t){return t instanceof Date&&Number.isFinite(t.valueOf())}QB.exports=Dg});var Rg=b((Mq,mB)=>{"use strict";var{Writable:nv}=require("node:stream"),{EventEmitter:sv}=require("node:events"),{assertCacheKey:pB,assertCacheValue:ov}=Sn(),wg=class extends sv{#e=1024;#t=104857600;#A=5242880;#r=0;#s=0;#n=new Map;#a=!1;constructor(e){if(super(),e){if(typeof e!="object")throw new TypeError("MemoryCacheStore options must be an object");if(e.maxCount!==void 0){if(typeof e.maxCount!="number"||!Number.isInteger(e.maxCount)||e.maxCount<0)throw new TypeError("MemoryCacheStore options.maxCount must be a non-negative integer");this.#e=e.maxCount}if(e.maxSize!==void 0){if(typeof e.maxSize!="number"||!Number.isInteger(e.maxSize)||e.maxSize<0)throw new TypeError("MemoryCacheStore options.maxSize must be a non-negative integer");this.#t=e.maxSize}if(e.maxEntrySize!==void 0){if(typeof e.maxEntrySize!="number"||!Number.isInteger(e.maxEntrySize)||e.maxEntrySize<0)throw new TypeError("MemoryCacheStore options.maxEntrySize must be a non-negative integer");this.#A=e.maxEntrySize}}}get size(){return this.#r}isFull(){return this.#r>=this.#t||this.#s>=this.#e}get(e){pB(e);let A=`${e.origin}:${e.path}`,r=Date.now(),n=this.#n.get(A),s=n?yB(e,n,r):null;return s==null?void 0:{statusMessage:s.statusMessage,statusCode:s.statusCode,headers:s.headers,body:s.body,vary:s.vary?s.vary:void 0,etag:s.etag,cacheControlDirectives:s.cacheControlDirectives,cachedAt:s.cachedAt,staleAt:s.staleAt,deleteAt:s.deleteAt}}createWriteStream(e,A){pB(e),ov(A);let r=`${e.origin}:${e.path}`,n=this,s={...e,...A,body:[],size:0};return new nv({write(o,i,a){typeof o=="string"&&(o=Buffer.from(o,i)),s.size+=o.byteLength,s.size>=n.#A?this.destroy():s.body.push(o),a(null)},final(o){let i=n.#n.get(r);i||(i=[],n.#n.set(r,i));let a=yB(e,i,Date.now());if(a){let l=i.indexOf(a);i.splice(l,1,s),n.#r-=a.size}else i.push(s),n.#s+=1;if(n.#r+=s.size,n.#r>n.#t||n.#s>n.#e){n.#a||(n.emit("maxSizeExceeded",{size:n.#r,maxSize:n.#t,count:n.#s,maxCount:n.#e}),n.#a=!0);for(let[l,c]of n.#n){for(let f of c.splice(0,c.length/2))n.#r-=f.size,n.#s-=1;c.length===0&&n.#n.delete(l)}n.#r<n.#t&&n.#s<n.#e&&(n.#a=!1)}o(null)}})}delete(e){if(typeof e!="object")throw new TypeError(`expected key to be object, got ${typeof e}`);let A=`${e.origin}:${e.path}`;for(let r of this.#n.get(A)??[])this.#r-=r.size,this.#s-=1;this.#n.delete(A)}};function yB(t,e,A){return e.find(r=>r.deleteAt>A&&r.method===t.method&&(r.vary==null||Object.keys(r.vary).every(n=>r.vary[n]===null?t.headers[n]===void 0:r.vary[n]===t.headers[n])))}mB.exports=wg});var DB=b((vq,SB)=>{"use strict";var iv=require("node:assert"),bg=class{#e=!1;#t;#A;#r;#s;constructor(e,A,r){if(typeof e!="function")throw new TypeError("callback must be a function");this.#t=e,this.#A=A,this.#s=r}onRequestStart(e,A){this.#e=!1,this.#r=A}onRequestUpgrade(e,A,r,n){this.#A.onRequestUpgrade?.(e,A,r,n)}onResponseStart(e,A,r,n){if(iv(this.#t!=null),this.#e=A===304||this.#s&&A>=500&&A<=504,this.#t(this.#e,this.#r),this.#t=null,this.#e)return!0;this.#A.onRequestStart?.(e,this.#r),this.#A.onResponseStart?.(e,A,r,n)}onResponseData(e,A){if(!this.#e)return this.#A.onResponseData?.(e,A)}onResponseEnd(e,A){this.#e||this.#A.onResponseEnd?.(e,A)}onResponseError(e,A){if(!this.#e)if(this.#t&&(this.#t(!1),this.#t=null),typeof this.#A.onResponseError=="function")this.#A.onResponseError(e,A);else throw A}};SB.exports=bg});var NB=b((Tq,bB)=>{"use strict";var wB=require("node:assert"),{Readable:av}=require("node:stream"),Dn=Z(),zs=BB(),lv=Rg(),cv=DB(),{assertCacheStore:uv,assertCacheMethods:gv,makeCacheKey:hv,normalizeHeaders:dv,parseCacheControlHeader:Ev}=Sn(),{AbortError:fv}=W();function Iv(t,e){if(t!==void 0){if(!Array.isArray(t))throw new TypeError(`expected ${e} to be an array or undefined, got ${typeof t}`);for(let A=0;A<t.length;A++){let r=t[A];if(typeof r!="string"&&!(r instanceof RegExp))throw new TypeError(`expected ${e}[${A}] to be a string or RegExp, got ${typeof r}`)}}}var kg=()=>{};function Cv(t,e,{headers:A={}}){return!!(e?.["no-cache"]||t.cacheControlDirectives?.["no-cache"]&&!Array.isArray(t.cacheControlDirectives["no-cache"])||A["if-modified-since"]||A["if-none-match"])}function Qv(t,e){let A=Date.now();if(A>t.staleAt){if(e?.["max-stale"]){let r=t.staleAt+e["max-stale"]*1e3;return A>r}return!0}if(e?.["min-fresh"]){let r=t.staleAt-A,n=e["min-fresh"]*1e3;return r<=n}return!1}function Bv(t){let e=t.cacheControlDirectives?.["stale-while-revalidate"];if(!e)return!1;let A=Date.now(),r=t.staleAt+e*1e3;return A<=r}function pv(t,e,A,r,n,s){if(s?.["only-if-cached"]){let o=!1;try{if(typeof r.onConnect=="function"&&(r.onConnect(()=>{o=!0}),o)||typeof r.onHeaders=="function"&&(r.onHeaders(504,[],kg,"Gateway Timeout"),o))return;typeof r.onComplete=="function"&&r.onComplete([])}catch(i){typeof r.onError=="function"&&r.onError(i)}return!0}return t(n,new zs(e,A,r))}function Ng(t,e,A,r,n,s){let o=Dn.isStream(A.body)?A.body:av.from(A.body??[]);wB(!o.destroyed,"stream should not be destroyed"),wB(!o.readableDidRead,"stream should not be readableDidRead");let i={resume(){o.resume()},pause(){o.pause()},get paused(){return o.isPaused()},get aborted(){return o.destroyed},get reason(){return o.errored},abort(l){o.destroy(l??new fv)}};if(o.on("error",function(l){if(!this.readableEnded)if(typeof t.onResponseError=="function")t.onResponseError(i,l);else throw l}).on("close",function(){this.errored||t.onResponseEnd?.(i,{})}),t.onRequestStart?.(i,n),o.destroyed)return;let a={...A.headers,age:String(r)};s&&(a.warning='110 - "response is stale"'),t.onResponseStart?.(i,A.statusCode,a,A.statusMessage),e.method==="HEAD"?o.destroy():o.on("data",function(l){t.onResponseData?.(i,l)})}function RB(t,e,A,r,n,s,o){if(!o)return pv(t,e,A,r,n,s);let i=Date.now();if(i>o.deleteAt)return t(n,new zs(e,A,r));let a=Math.round((i-o.cachedAt)/1e3);if(s?.["max-age"]&&a>=s["max-age"])return t(n,r);let l=Qv(o,s),c=Cv(o,s,n);if(l||c){if(Dn.isStream(n.body)&&Dn.bodyLength(n.body)!==0)return t(n,new zs(e,A,r));if(!c&&Bv(o))return Ng(r,n,o,a,null,!0),queueMicrotask(()=>{let I={...n.headers,"if-modified-since":new Date(o.cachedAt).toUTCString()};if(o.etag&&(I["if-none-match"]=o.etag),o.vary)for(let S in o.vary)o.vary[S]!=null&&(I[S]=o.vary[S]);t({...n,headers:I},new zs(e,A,{onRequestStart(){},onRequestUpgrade(){},onResponseStart(){},onResponseData(){},onResponseEnd(){},onResponseError(){}}))}),!0;let f=!1,d=o.cacheControlDirectives["stale-if-error"]??s?.["stale-if-error"];d&&(f=i<o.staleAt+d*1e3);let g={...n.headers,"if-modified-since":new Date(o.cachedAt).toUTCString()};if(o.etag&&(g["if-none-match"]=o.etag),o.vary)for(let I in o.vary)o.vary[I]!=null&&(g[I]=o.vary[I]);return t({...n,headers:g},new cv((I,S)=>{I?Ng(r,n,o,a,S,l):Dn.isStream(o.body)&&o.body.on("error",kg).destroy()},new zs(e,A,r),f))}Dn.isStream(n.body)&&n.body.on("error",kg).destroy(),Ng(r,n,o,a,null,!1)}bB.exports=(t={})=>{let{store:e=new lv,methods:A=["GET"],cacheByDefault:r=void 0,type:n="shared",origins:s=void 0}=t;if(typeof t!="object"||t===null)throw new TypeError(`expected type of opts to be an Object, got ${t===null?"null":typeof t}`);if(uv(e,"opts.store"),gv(A,"opts.methods"),Iv(s,"opts.origins"),typeof r<"u"&&typeof r!="number")throw new TypeError(`expected opts.cacheByDefault to be number or undefined, got ${typeof r}`);if(typeof n<"u"&&n!=="shared"&&n!=="private")throw new TypeError(`expected opts.type to be shared, private, or undefined, got ${typeof n}`);let o={store:e,methods:A,cacheByDefault:r,type:n},i=Dn.safeHTTPMethods.filter(a=>A.includes(a)===!1);return a=>(l,c)=>{if(!l.origin||i.includes(l.method))return a(l,c);if(s!==void 0){let I=l.origin.toString().toLowerCase(),S=!1;for(let p=0;p<s.length;p++){let u=s[p];if(typeof u=="string"){if(u.toLowerCase()===I){S=!0;break}}else if(u.test(I)){S=!0;break}}if(!S)return a(l,c)}l={...l,headers:dv(l)};let f=l.headers?.["cache-control"]?Ev(l.headers["cache-control"]):void 0;if(f?.["no-store"])return a(l,c);let d=hv(l),g=e.get(d);return g&&typeof g.then=="function"?g.then(I=>RB(a,o,d,c,l,f,I)):RB(a,o,d,c,l,f,g)}}});var vB=b((Lq,MB)=>{"use strict";var{createInflate:Fg,createGunzip:kB,createBrotliDecompress:yv,createZstdDecompress:mv}=require("node:zlib"),{pipeline:Sv}=require("node:stream"),Dv=mn(),{runtimeFeatures:wv}=iA(),FB={gzip:kB,"x-gzip":kB,br:yv,deflate:Fg,compress:Fg,"x-compress":Fg,...wv.has("zstd")?{zstd:mv}:{}},Rv=[204,304],UB=!1,Ug=class extends Dv{#e=[];#t;#A;constructor(e,{skipStatusCodes:A=Rv,skipErrorResponses:r=!0}={}){super(e),this.#t=A,this.#A=r}#r(e,A){return!!(!e||A<200||this.#t.includes(A)||this.#A&&A>=400)}#s(e){let A=e.split(","),r=5;if(A.length>r)throw new Error(`too many content-encodings in response: ${A.length}, maximum allowed is ${r}`);let n=[];for(let s=A.length-1;s>=0;s--){let o=A[s].trim();if(o){if(!FB[o])return n.length=0,n;n.push(FB[o]())}}return n}#n(e,A){e.on("readable",()=>{let r;for(;(r=e.read())!==null&&super.onResponseData(A,r)!==!1;);}),e.on("error",r=>{super.onResponseError(A,r)})}#a(e){let A=this.#e[0];this.#n(A,e),A.on("end",()=>{super.onResponseEnd(e,{})})}#o(e){let A=this.#e[this.#e.length-1];this.#n(A,e),Sv(this.#e,r=>{if(r){super.onResponseError(e,r);return}super.onResponseEnd(e,{})})}#i(){this.#e.length=0}onResponseStart(e,A,r,n){let s=r["content-encoding"];if(this.#r(s,A))return super.onResponseStart(e,A,r,n);let o=this.#s(s.toLowerCase());if(o.length===0)return this.#i(),super.onResponseStart(e,A,r,n);this.#e=o;let{"content-encoding":i,"content-length":a,...l}=r;return this.#e.length===1?this.#a(e):this.#o(e),super.onResponseStart(e,A,l,n)}onResponseData(e,A){if(this.#e.length>0){this.#e[0].write(A);return}super.onResponseData(e,A)}onResponseEnd(e,A){if(this.#e.length>0){this.#e[0].end(),this.#i();return}super.onResponseEnd(e,A)}onResponseError(e,A){if(this.#e.length>0){for(let r of this.#e)r.destroy(A);this.#i()}super.onResponseError(e,A)}};function bv(t={}){return UB||(process.emitWarning("DecompressInterceptor is experimental and subject to change","ExperimentalWarning"),UB=!0),e=>(A,r)=>{let n=new Ug(r,t);return e(A,n)}}MB.exports=bv});var xB=b((xq,LB)=>{"use strict";var{RequestAbortedError:Nv}=W(),TB=5*1024*1024,Mg=class{#e;#t=[];#A=TB;#r=0;#s={};#n="";#a=!1;#o=!1;#i=!1;#l=!1;#g=null;#c=null;constructor(e,A,r=TB){this.#e=e,this.#c=A,this.#A=r}addWaitingHandler(e){if(this.#l||this.#i)return!1;let A=this.#u(e),r=A.controller;try{if(e.onRequestStart?.(r,null),r.aborted)return A.done=!0,!0;this.#o&&e.onResponseStart?.(r,this.#r,this.#s,this.#n)}catch{return A.done=!0,!0}return r.aborted||this.#t.push(A),!0}onRequestStart(e,A){this.#g=e,this.#e.onRequestStart?.(e,A)}onRequestUpgrade(e,A,r,n){this.#e.onRequestUpgrade?.(e,A,r,n)}onResponseStart(e,A,r,n){this.#o=!0,this.#r=A,this.#s=r,this.#n=n,this.#e.onResponseStart?.(e,A,r,n);for(let s of this.#t){let{handler:o,controller:i}=s;if(s.done||i.aborted){s.done=!0;continue}try{o.onResponseStart?.(i,A,r,n)}catch{}i.aborted&&(s.done=!0)}this.#E()}onResponseData(e,A){if(!(this.#a||this.#l)){this.#i=!0,this.#e.onResponseData?.(e,A);for(let r of this.#t){let{handler:n,controller:s}=r;if(r.done||s.aborted){r.done=!0;continue}if(s.paused){this.#h(r,A);continue}try{n.onResponseData?.(s,A)}catch{}s.aborted&&(r.done=!0,r.bufferedChunks=[],r.bufferedBytes=0)}this.#E()}}onResponseEnd(e,A){if(!(this.#a||this.#l)){this.#l=!0,this.#e.onResponseEnd?.(e,A);for(let r of this.#t){if(r.done||r.controller.aborted){r.done=!0;continue}if(this.#d(r),r.done||r.controller.aborted){r.done=!0;continue}if(r.controller.paused&&r.bufferedChunks.length>0){r.pendingTrailers=A;continue}try{r.handler.onResponseEnd?.(r.controller,A)}catch{}r.done=!0}this.#E(),this.#c?.()}}onResponseError(e,A){if(!this.#l){this.#a=!0,this.#l=!0,this.#e.onResponseError?.(e,A);for(let r of this.#t)this.#f(r,A);this.#t=[],this.#c?.()}}#u(e){let A={handler:e,controller:null,bufferedChunks:[],bufferedBytes:0,pendingTrailers:null,done:!1},r={aborted:!1,paused:!1,reason:null};return A.controller={resume:()=>{if(!r.aborted){if(r.paused=!1,this.#d(A),this.#l&&A.pendingTrailers&&A.bufferedChunks.length===0&&!r.paused&&!r.aborted){try{A.handler.onResponseEnd?.(A.controller,A.pendingTrailers)}catch{}A.pendingTrailers=null,A.done=!0}this.#E()}},pause:()=>{r.aborted||(r.paused=!0)},get paused(){return r.paused},get aborted(){return r.aborted},get reason(){return r.reason},abort:n=>{r.aborted=!0,r.reason=n??null,A.done=!0,A.pendingTrailers=null,A.bufferedChunks=[],A.bufferedBytes=0}},A}#h(e,A){if(e.done||e.controller.aborted){e.done=!0,e.bufferedChunks=[],e.bufferedBytes=0;return}let r=Buffer.from(A);if(e.bufferedChunks.push(r),e.bufferedBytes+=r.length,e.bufferedBytes>this.#A){let n=new Nv(`Deduplicated waiting handler exceeded maxBufferSize (${this.#A} bytes) while paused`);this.#f(e,n)}}#d(e){let{handler:A,controller:r}=e;for(;!e.done&&!r.aborted&&!r.paused&&e.bufferedChunks.length>0;){let n=e.bufferedChunks.shift();e.bufferedBytes-=n.length;try{A.onResponseData?.(r,n)}catch{}if(r.aborted){e.done=!0,e.pendingTrailers=null,e.bufferedChunks=[],e.bufferedBytes=0;break}}}#f(e,A){if(!e.done){e.done=!0,e.pendingTrailers=null,e.bufferedChunks=[],e.bufferedBytes=0;try{e.controller.abort(A),e.handler.onResponseError?.(e.controller,A)}catch{}}}#E(){this.#t=this.#t.filter(e=>e.done===!1)}};LB.exports=Mg});var YB=b((Hq,HB)=>{"use strict";var kv=require("node:diagnostics_channel"),Fv=Z(),Uv=xB(),{normalizeHeaders:Mv,makeCacheKey:vv,makeDeduplicationKey:Tv}=Sn(),xi=kv.channel("undici:request:pending-requests");HB.exports=(t={})=>{let{methods:e=["GET"],skipHeaderNames:A=[],excludeHeaderNames:r=[],maxBufferSize:n=5*1024*1024}=t;if(typeof t!="object"||t===null)throw new TypeError(`expected type of opts to be an Object, got ${t===null?"null":typeof t}`);if(!Array.isArray(e))throw new TypeError(`expected opts.methods to be an array, got ${typeof e}`);for(let a of e)if(!Fv.safeHTTPMethods.includes(a))throw new TypeError(`expected opts.methods to only contain safe HTTP methods, got ${a}`);if(!Array.isArray(A))throw new TypeError(`expected opts.skipHeaderNames to be an array, got ${typeof A}`);if(!Array.isArray(r))throw new TypeError(`expected opts.excludeHeaderNames to be an array, got ${typeof r}`);if(!Number.isFinite(n)||n<=0)throw new TypeError(`expected opts.maxBufferSize to be a positive finite number, got ${n}`);let s=new Set(A.map(a=>a.toLowerCase())),o=new Set(r.map(a=>a.toLowerCase())),i=new Map;return a=>(l,c)=>{if(!l.origin||e.includes(l.method)===!1)return a(l,c);if(l={...l,headers:Mv(l)},s.size>0){for(let S of Object.keys(l.headers))if(s.has(S.toLowerCase()))return a(l,c)}let f=vv(l),d=Tv(f,o),g=i.get(d);if(g)return g.addWaitingHandler(c)?!0:a(l,c);let I=new Uv(c,()=>{i.delete(d),xi.hasSubscribers&&xi.publish({size:i.size,key:d,type:"removed"})},n);return i.set(d,I),xi.hasSubscribers&&xi.publish({size:i.size,key:d,type:"added"}),a(l,I)}}});var VB=b((Oq,GB)=>{"use strict";var{Writable:Lv}=require("node:stream"),{assertCacheKey:vg,assertCacheValue:xv}=Sn(),Tg,ct=3,OB=2*1e3*1e3*1e3;GB.exports=class{#e=OB;#t=1/0;#A;#r;#s;#n;#a;#o;#i;#l;constructor(e){if(e){if(typeof e!="object")throw new TypeError("SqliteCacheStore options must be an object");if(e.maxEntrySize!==void 0){if(typeof e.maxEntrySize!="number"||!Number.isInteger(e.maxEntrySize)||e.maxEntrySize<0)throw new TypeError("SqliteCacheStore options.maxEntrySize must be a non-negative integer");if(e.maxEntrySize>OB)throw new TypeError("SqliteCacheStore options.maxEntrySize must be less than 2gb");this.#e=e.maxEntrySize}if(e.maxCount!==void 0){if(typeof e.maxCount!="number"||!Number.isInteger(e.maxCount)||e.maxCount<0)throw new TypeError("SqliteCacheStore options.maxCount must be a non-negative integer");this.#t=e.maxCount}}Tg||(Tg=require("node:sqlite").DatabaseSync),this.#A=new Tg(e?.location??":memory:"),this.#A.exec(`
45
+ PRAGMA journal_mode = WAL;
46
+ PRAGMA synchronous = NORMAL;
47
+ PRAGMA temp_store = memory;
48
+ PRAGMA optimize;
49
+
50
+ CREATE TABLE IF NOT EXISTS cacheInterceptorV${ct} (
51
+ -- Data specific to us
52
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
53
+ url TEXT NOT NULL,
54
+ method TEXT NOT NULL,
55
+
56
+ -- Data returned to the interceptor
57
+ body BUF NULL,
58
+ deleteAt INTEGER NOT NULL,
59
+ statusCode INTEGER NOT NULL,
60
+ statusMessage TEXT NOT NULL,
61
+ headers TEXT NULL,
62
+ cacheControlDirectives TEXT NULL,
63
+ etag TEXT NULL,
64
+ vary TEXT NULL,
65
+ cachedAt INTEGER NOT NULL,
66
+ staleAt INTEGER NOT NULL
67
+ );
68
+
69
+ CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${ct}_getValuesQuery ON cacheInterceptorV${ct}(url, method, deleteAt);
70
+ CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${ct}_deleteByUrlQuery ON cacheInterceptorV${ct}(deleteAt);
71
+ `),this.#r=this.#A.prepare(`
72
+ SELECT
73
+ id,
74
+ body,
75
+ deleteAt,
76
+ statusCode,
77
+ statusMessage,
78
+ headers,
79
+ etag,
80
+ cacheControlDirectives,
81
+ vary,
82
+ cachedAt,
83
+ staleAt
84
+ FROM cacheInterceptorV${ct}
85
+ WHERE
86
+ url = ?
87
+ AND method = ?
88
+ ORDER BY
89
+ deleteAt ASC
90
+ `),this.#s=this.#A.prepare(`
91
+ UPDATE cacheInterceptorV${ct} SET
92
+ body = ?,
93
+ deleteAt = ?,
94
+ statusCode = ?,
95
+ statusMessage = ?,
96
+ headers = ?,
97
+ etag = ?,
98
+ cacheControlDirectives = ?,
99
+ cachedAt = ?,
100
+ staleAt = ?
101
+ WHERE
102
+ id = ?
103
+ `),this.#n=this.#A.prepare(`
104
+ INSERT INTO cacheInterceptorV${ct} (
105
+ url,
106
+ method,
107
+ body,
108
+ deleteAt,
109
+ statusCode,
110
+ statusMessage,
111
+ headers,
112
+ etag,
113
+ cacheControlDirectives,
114
+ vary,
115
+ cachedAt,
116
+ staleAt
117
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
118
+ `),this.#o=this.#A.prepare(`DELETE FROM cacheInterceptorV${ct} WHERE url = ?`),this.#i=this.#A.prepare(`SELECT COUNT(*) AS total FROM cacheInterceptorV${ct}`),this.#a=this.#A.prepare(`DELETE FROM cacheInterceptorV${ct} WHERE deleteAt <= ?`),this.#l=this.#t===1/0?null:this.#A.prepare(`
119
+ DELETE FROM cacheInterceptorV${ct}
120
+ WHERE id IN (
121
+ SELECT
122
+ id
123
+ FROM cacheInterceptorV${ct}
124
+ ORDER BY cachedAt DESC
125
+ LIMIT ?
126
+ )
127
+ `)}close(){this.#A.close()}get(e){vg(e);let A=this.#u(e);return A?{body:A.body?Buffer.from(A.body.buffer,A.body.byteOffset,A.body.byteLength):void 0,statusCode:A.statusCode,statusMessage:A.statusMessage,headers:A.headers?JSON.parse(A.headers):void 0,etag:A.etag?A.etag:void 0,vary:A.vary?JSON.parse(A.vary):void 0,cacheControlDirectives:A.cacheControlDirectives?JSON.parse(A.cacheControlDirectives):void 0,cachedAt:A.cachedAt,staleAt:A.staleAt,deleteAt:A.deleteAt}:void 0}set(e,A){vg(e);let r=this.#c(e),n=Array.isArray(A.body)?Buffer.concat(A.body):A.body,s=n?.byteLength;if(s&&s>this.#e)return;let o=this.#u(e,!0);o?this.#s.run(n,A.deleteAt,A.statusCode,A.statusMessage,A.headers?JSON.stringify(A.headers):null,A.etag?A.etag:null,A.cacheControlDirectives?JSON.stringify(A.cacheControlDirectives):null,A.cachedAt,A.staleAt,o.id):(this.#g(),this.#n.run(r,e.method,n,A.deleteAt,A.statusCode,A.statusMessage,A.headers?JSON.stringify(A.headers):null,A.etag?A.etag:null,A.cacheControlDirectives?JSON.stringify(A.cacheControlDirectives):null,A.vary?JSON.stringify(A.vary):null,A.cachedAt,A.staleAt))}createWriteStream(e,A){vg(e),xv(A);let r=0,n=[],s=this;return new Lv({decodeStrings:!0,write(o,i,a){r+=o.byteLength,r<s.#e?n.push(o):this.destroy(),a()},final(o){s.set(e,{...A,body:n}),o()}})}delete(e){if(typeof e!="object")throw new TypeError(`expected key to be object, got ${typeof e}`);this.#o.run(this.#c(e))}#g(){if(Number.isFinite(this.#t)&&this.size<=this.#t)return 0;{let e=this.#a.run(Date.now()).changes;if(e)return e}{let e=this.#l?.run(Math.max(Math.floor(this.#t*.1),1)).changes;if(e)return e}return 0}get size(){let{total:e}=this.#i.get();return e}#c(e){return`${e.origin}/${e.path}`}#u(e,A=!1){let r=this.#c(e),{headers:n,method:s}=e,o=this.#r.all(r,s);if(o.length===0)return;let i=Date.now();for(let a of o){if(i>=a.deleteAt&&!A)return;let l=!0;if(a.vary){let c=JSON.parse(a.vary);for(let f in c)if(!Hv(n[f],c[f])){l=!1;break}}if(l)return a}}};function Hv(t,e){return t==null&&e==null?!0:t==null&&e!=null||t!=null&&e==null?!1:Array.isArray(t)&&Array.isArray(e)?t.length!==e.length?!1:t.every((A,r)=>A===e[r]):t===e}});var Lr=b((Gq,ZB)=>{"use strict";var{kConstruct:Yv}=le(),{kEnumerableProperty:wn}=Z(),{iteratorMixin:Ov,isValidHeaderName:$s,isValidHeaderValue:JB}=st(),{webidl:te}=Me(),Lg=require("node:assert"),Hi=require("node:util");function qB(t){return t===10||t===13||t===9||t===32}function PB(t){let e=0,A=t.length;for(;A>e&&qB(t.charCodeAt(A-1));)--A;for(;A>e&&qB(t.charCodeAt(e));)++e;return e===0&&A===t.length?t:t.substring(e,A)}function WB(t,e){if(Array.isArray(e))for(let A=0;A<e.length;++A){let r=e[A];if(r.length!==2)throw te.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${r.length}.`});xg(t,r[0],r[1])}else if(typeof e=="object"&&e!==null){let A=Object.keys(e);for(let r=0;r<A.length;++r)xg(t,A[r],e[A[r]])}else throw te.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}function xg(t,e,A){if(A=PB(A),$s(e)){if(!JB(A))throw te.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header value"})}else throw te.errors.invalidArgument({prefix:"Headers.append",value:e,type:"header name"});if(jB(t)==="immutable")throw new TypeError("immutable");return Oi(t).append(e,A,!1)}function Gv(t){let e=Oi(t);if(!e)return[];if(e.sortedMap)return e.sortedMap;let A=[],r=e.toSortedArray(),n=e.cookies;if(n===null||n.length===1)return e.sortedMap=r;for(let s=0;s<r.length;++s){let{0:o,1:i}=r[s];if(o==="set-cookie")for(let a=0;a<n.length;++a)A.push([o,n[a]]);else A.push([o,i])}return e.sortedMap=A}function _B(t,e){return t[0]<e[0]?-1:1}var Yi=class t{cookies=null;sortedMap;headersMap;constructor(e){e instanceof t?(this.headersMap=new Map(e.headersMap),this.sortedMap=e.sortedMap,this.cookies=e.cookies===null?null:[...e.cookies]):(this.headersMap=new Map(e),this.sortedMap=null)}contains(e,A){return this.headersMap.has(A?e:e.toLowerCase())}clear(){this.headersMap.clear(),this.sortedMap=null,this.cookies=null}append(e,A,r){this.sortedMap=null;let n=r?e:e.toLowerCase(),s=this.headersMap.get(n);if(s){let o=n==="cookie"?"; ":", ";this.headersMap.set(n,{name:s.name,value:`${s.value}${o}${A}`})}else this.headersMap.set(n,{name:e,value:A});n==="set-cookie"&&(this.cookies??=[]).push(A)}set(e,A,r){this.sortedMap=null;let n=r?e:e.toLowerCase();n==="set-cookie"&&(this.cookies=[A]),this.headersMap.set(n,{name:e,value:A})}delete(e,A){this.sortedMap=null,A||(e=e.toLowerCase()),e==="set-cookie"&&(this.cookies=null),this.headersMap.delete(e)}get(e,A){return this.headersMap.get(A?e:e.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:e,1:{value:A}}of this.headersMap)yield[e,A]}get entries(){let e={};if(this.headersMap.size!==0)for(let{name:A,value:r}of this.headersMap.values())e[A]=r;return e}rawValues(){return this.headersMap.values()}get entriesList(){let e=[];if(this.headersMap.size!==0)for(let{0:A,1:{name:r,value:n}}of this.headersMap)if(A==="set-cookie")for(let s of this.cookies)e.push([r,s]);else e.push([r,n]);return e}toSortedArray(){let e=this.headersMap.size,A=new Array(e);if(e<=32){if(e===0)return A;let r=this.headersMap[Symbol.iterator](),n=r.next().value;A[0]=[n[0],n[1].value],Lg(n[1].value!==null);for(let s=1,o=0,i=0,a=0,l=0,c,f;s<e;++s){for(f=r.next().value,c=A[s]=[f[0],f[1].value],Lg(c[1]!==null),a=0,i=s;a<i;)l=a+(i-a>>1),A[l][0]<=c[0]?a=l+1:i=l;if(s!==l){for(o=s;o>a;)A[o]=A[--o];A[a]=c}}if(!r.next().done)throw new TypeError("Unreachable");return A}else{let r=0;for(let{0:n,1:{value:s}}of this.headersMap)A[r++]=[n,s],Lg(s!==null);return A.sort(_B)}}},Tt=class t{#e;#t;constructor(e=void 0){te.util.markAsUncloneable(this),e!==Yv&&(this.#t=new Yi,this.#e="none",e!==void 0&&(e=te.converters.HeadersInit(e,"Headers constructor","init"),WB(this,e)))}append(e,A){te.brandCheck(this,t),te.argumentLengthCheck(arguments,2,"Headers.append");let r="Headers.append";return e=te.converters.ByteString(e,r,"name"),A=te.converters.ByteString(A,r,"value"),xg(this,e,A)}delete(e){if(te.brandCheck(this,t),te.argumentLengthCheck(arguments,1,"Headers.delete"),e=te.converters.ByteString(e,"Headers.delete","name"),!$s(e))throw te.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.contains(e,!1)&&this.#t.delete(e,!1)}get(e){te.brandCheck(this,t),te.argumentLengthCheck(arguments,1,"Headers.get");let A="Headers.get";if(e=te.converters.ByteString(e,A,"name"),!$s(e))throw te.errors.invalidArgument({prefix:A,value:e,type:"header name"});return this.#t.get(e,!1)}has(e){te.brandCheck(this,t),te.argumentLengthCheck(arguments,1,"Headers.has");let A="Headers.has";if(e=te.converters.ByteString(e,A,"name"),!$s(e))throw te.errors.invalidArgument({prefix:A,value:e,type:"header name"});return this.#t.contains(e,!1)}set(e,A){te.brandCheck(this,t),te.argumentLengthCheck(arguments,2,"Headers.set");let r="Headers.set";if(e=te.converters.ByteString(e,r,"name"),A=te.converters.ByteString(A,r,"value"),A=PB(A),$s(e)){if(!JB(A))throw te.errors.invalidArgument({prefix:r,value:A,type:"header value"})}else throw te.errors.invalidArgument({prefix:r,value:e,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.set(e,A,!1)}getSetCookie(){te.brandCheck(this,t);let e=this.#t.cookies;return e?[...e]:[]}[Hi.inspect.custom](e,A){return A.depth??=e,`Headers ${Hi.formatWithOptions(A,this.#t.entries)}`}static getHeadersGuard(e){return e.#e}static setHeadersGuard(e,A){e.#e=A}static getHeadersList(e){return e.#t}static setHeadersList(e,A){e.#t=A}},{getHeadersGuard:jB,setHeadersGuard:Vv,getHeadersList:Oi,setHeadersList:qv}=Tt;Reflect.deleteProperty(Tt,"getHeadersGuard");Reflect.deleteProperty(Tt,"setHeadersGuard");Reflect.deleteProperty(Tt,"getHeadersList");Reflect.deleteProperty(Tt,"setHeadersList");Ov("Headers",Tt,Gv,0,1);Object.defineProperties(Tt.prototype,{append:wn,delete:wn,get:wn,has:wn,set:wn,getSetCookie:wn,[Symbol.toStringTag]:{value:"Headers",configurable:!0},[Hi.inspect.custom]:{enumerable:!1}});te.converters.HeadersInit=function(t,e,A){if(te.util.Type(t)===te.util.Types.OBJECT){let r=Reflect.get(t,Symbol.iterator);if(!Hi.types.isProxy(t)&&r===Tt.prototype.entries)try{return Oi(t).entriesList}catch{}return typeof r=="function"?te.converters["sequence<sequence<ByteString>>"](t,e,A,r.bind(t)):te.converters["record<ByteString, ByteString>"](t,e,A)}throw te.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};ZB.exports={fill:WB,compareHeaderName:_B,Headers:Tt,HeadersList:Yi,getHeadersGuard:jB,setHeadersGuard:Vv,setHeadersList:qv,getHeadersList:Oi}});var to=b((Vq,ip)=>{"use strict";var{Headers:tp,HeadersList:XB,fill:Jv,getHeadersGuard:Pv,setHeadersGuard:Ap,setHeadersList:rp}=Lr(),{extractBody:KB,cloneBody:Wv,mixinBody:_v,streamRegistry:np,bodyUnusable:jv}=nn(),sp=Z(),zB=require("node:util"),{kEnumerableProperty:ut}=sp,{isValidReasonPhrase:Zv,isCancelled:Xv,isAborted:Kv,isErrorLike:zv,environmentSettingsObject:$v}=st(),{redirectStatusSet:eT,nullBodyStatus:tT}=gs(),{webidl:ee}=Me(),{URLSerializer:$B}=Bt(),{kConstruct:Vi}=le(),Hg=require("node:assert"),{isomorphicEncode:AT,serializeJavascriptValueToJSONString:rT}=oA(),nT=new TextEncoder("utf-8"),gt=class t{#e;#t;static error(){return eo(qi(),"immutable")}static json(e,A=void 0){ee.argumentLengthCheck(arguments,1,"Response.json"),A!==null&&(A=ee.converters.ResponseInit(A));let r=nT.encode(rT(e)),n=KB(r),s=eo(Rn({}),"response");return ep(s,A,{body:n[0],type:"application/json"}),s}static redirect(e,A=302){ee.argumentLengthCheck(arguments,1,"Response.redirect"),e=ee.converters.USVString(e),A=ee.converters["unsigned short"](A);let r;try{r=new URL(e,$v.settingsObject.baseUrl)}catch(o){throw new TypeError(`Failed to parse URL from ${e}`,{cause:o})}if(!eT.has(A))throw new RangeError(`Invalid status code ${A}`);let n=eo(Rn({}),"immutable");n.#t.status=A;let s=AT($B(r));return n.#t.headersList.append("location",s,!0),n}constructor(e=null,A=void 0){if(ee.util.markAsUncloneable(this),e===Vi)return;e!==null&&(e=ee.converters.BodyInit(e,"Response","body")),A=ee.converters.ResponseInit(A),this.#t=Rn({}),this.#e=new tp(Vi),Ap(this.#e,"response"),rp(this.#e,this.#t.headersList);let r=null;if(e!=null){let[n,s]=KB(e);r={body:n,type:s}}ep(this,A,r)}get type(){return ee.brandCheck(this,t),this.#t.type}get url(){ee.brandCheck(this,t);let e=this.#t.urlList,A=e[e.length-1]??null;return A===null?"":$B(A,!0)}get redirected(){return ee.brandCheck(this,t),this.#t.urlList.length>1}get status(){return ee.brandCheck(this,t),this.#t.status}get ok(){return ee.brandCheck(this,t),this.#t.status>=200&&this.#t.status<=299}get statusText(){return ee.brandCheck(this,t),this.#t.statusText}get headers(){return ee.brandCheck(this,t),this.#e}get body(){return ee.brandCheck(this,t),this.#t.body?this.#t.body.stream:null}get bodyUsed(){return ee.brandCheck(this,t),!!this.#t.body&&sp.isDisturbed(this.#t.body.stream)}clone(){if(ee.brandCheck(this,t),jv(this.#t))throw ee.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let e=Yg(this.#t);return this.#t.urlList.length!==0&&this.#t.body?.stream&&np.register(this,new WeakRef(this.#t.body.stream)),eo(e,Pv(this.#e))}[zB.inspect.custom](e,A){A.depth===null&&(A.depth=2),A.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 ${zB.formatWithOptions(A,r)}`}static getResponseHeaders(e){return e.#e}static setResponseHeaders(e,A){e.#e=A}static getResponseState(e){return e.#t}static setResponseState(e,A){e.#t=A}},{getResponseHeaders:sT,setResponseHeaders:oT,getResponseState:xr,setResponseState:iT}=gt;Reflect.deleteProperty(gt,"getResponseHeaders");Reflect.deleteProperty(gt,"setResponseHeaders");Reflect.deleteProperty(gt,"getResponseState");Reflect.deleteProperty(gt,"setResponseState");_v(gt,xr);Object.defineProperties(gt.prototype,{type:ut,url:ut,status:ut,ok:ut,redirected:ut,statusText:ut,headers:ut,clone:ut,body:ut,bodyUsed:ut,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(gt,{json:ut,redirect:ut,error:ut});function Yg(t){if(t.internalResponse)return op(Yg(t.internalResponse),t.type);let e=Rn({...t,body:null});return t.body!=null&&(e.body=Wv(t.body)),e}function Rn(t){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...t,headersList:t?.headersList?new XB(t?.headersList):new XB,urlList:t?.urlList?[...t.urlList]:[]}}function qi(t){let e=zv(t);return Rn({type:"error",status:0,error:e?t:new Error(t&&String(t)),aborted:t&&t.name==="AbortError"})}function aT(t){return t.type==="error"&&t.status===0}function Gi(t,e){return e={internalResponse:t,...e},new Proxy(t,{get(A,r){return r in e?e[r]:A[r]},set(A,r,n){return Hg(!(r in e)),A[r]=n,!0}})}function op(t,e){if(e==="basic")return Gi(t,{type:"basic",headersList:t.headersList});if(e==="cors")return Gi(t,{type:"cors",headersList:t.headersList});if(e==="opaque")return Gi(t,{type:"opaque",urlList:[],status:0,statusText:"",body:null});if(e==="opaqueredirect")return Gi(t,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Hg(!1)}function lT(t,e=null){return Hg(Xv(t)),Kv(t)?qi(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:e})):qi(Object.assign(new DOMException("Request was cancelled."),{cause:e}))}function ep(t,e,A){if(e.status!==null&&(e.status<200||e.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in e&&e.statusText!=null&&!Zv(String(e.statusText)))throw new TypeError("Invalid statusText");if("status"in e&&e.status!=null&&(xr(t).status=e.status),"statusText"in e&&e.statusText!=null&&(xr(t).statusText=e.statusText),"headers"in e&&e.headers!=null&&Jv(sT(t),e.headers),A){if(tT.includes(t.status))throw ee.errors.exception({header:"Response constructor",message:`Invalid response status code ${t.status}`});xr(t).body=A.body,A.type!=null&&!xr(t).headersList.contains("content-type",!0)&&xr(t).headersList.append("content-type",A.type,!0)}}function eo(t,e){let A=new gt(Vi);iT(A,t);let r=new tp(Vi);return oT(A,r),rp(r,t.headersList),Ap(r,e),t.urlList.length!==0&&t.body?.stream&&np.register(A,new WeakRef(t.body.stream)),A}ee.converters.XMLHttpRequestBodyInit=function(t,e,A){return typeof t=="string"?ee.converters.USVString(t,e,A):ee.is.Blob(t)||ee.is.BufferSource(t)||ee.is.FormData(t)||ee.is.URLSearchParams(t)?t:ee.converters.DOMString(t,e,A)};ee.converters.BodyInit=function(t,e,A){return ee.is.ReadableStream(t)||t?.[Symbol.asyncIterator]?t:ee.converters.XMLHttpRequestBodyInit(t,e,A)};ee.converters.ResponseInit=ee.dictionaryConverter([{key:"status",converter:ee.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:ee.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:ee.converters.HeadersInit}]);ee.is.Response=ee.util.MakeTypeAssertion(gt);ip.exports={isNetworkError:aT,makeNetworkError:qi,makeResponse:Rn,makeAppropriateNetworkError:lT,filterResponse:op,Response:gt,cloneResponse:Yg,fromInnerResponse:eo,getResponseState:xr}});var bn=b((qq,pp)=>{"use strict";var{extractBody:cT,mixinBody:uT,cloneBody:gT,bodyUnusable:ap}=nn(),{Headers:dp,fill:hT,HeadersList:Wi,setHeadersGuard:Og,getHeadersGuard:dT,setHeadersList:Ep,getHeadersList:lp}=Lr(),Pi=Z(),cp=require("node:util"),{isValidHTTPToken:ET,sameOrigin:up,environmentSettingsObject:Ji}=st(),{forbiddenMethodsSet:fT,corsSafeListedMethodsSet:IT,referrerPolicy:CT,requestRedirect:QT,requestMode:BT,requestCredentials:pT,requestCache:yT,requestDuplex:mT}=gs(),{kEnumerableProperty:De,normalizedMethodRecordsBase:ST,normalizedMethodRecords:DT}=Pi,{webidl:V}=Me(),{URLSerializer:wT}=Bt(),{kConstruct:_i}=le(),RT=require("node:assert"),{getMaxListeners:fp,setMaxListeners:bT,defaultMaxListeners:NT}=require("node:events"),kT=Symbol("abortController"),Ip=new FinalizationRegistry(({signal:t,abort:e})=>{t.removeEventListener("abort",e)}),ji=new WeakMap,Gg;try{Gg=fp(new AbortController().signal)>0}catch{Gg=!1}function gp(t){return e;function e(){let A=t.deref();if(A!==void 0){Ip.unregister(e),this.removeEventListener("abort",e),A.abort(this.reason);let r=ji.get(A.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()}ji.delete(A.signal)}}}}var hp=!1,Xe=class t{#e;#t;#A;#r;constructor(e,A=void 0){if(V.util.markAsUncloneable(this),e===_i)return;V.argumentLengthCheck(arguments,1,"Request constructor"),e=V.converters.RequestInfo(e),A=V.converters.RequestInit(A);let n=null,s=null,o=Ji.settingsObject.baseUrl,i=null;if(typeof e=="string"){this.#t=A.dispatcher;let u;try{u=new URL(e,o)}catch(h){throw new TypeError("Failed to parse URL from "+e,{cause:h})}if(u.username||u.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e);n=Zi({urlList:[u]}),s="cors"}else RT(V.is.Request(e)),n=e.#r,i=e.#e,this.#t=A.dispatcher||e.#t;let a=Ji.settingsObject.origin,l="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&up(n.window,a)&&(l=n.window),A.window!=null)throw new TypeError(`'window' option '${l}' must be null`);"window"in A&&(l="no-window"),n=Zi({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:Ji.settingsObject,window:l,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 c=Object.keys(A).length!==0;if(c&&(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]),A.referrer!==void 0){let u=A.referrer;if(u==="")n.referrer="no-referrer";else{let h;try{h=new URL(u,o)}catch(E){throw new TypeError(`Referrer "${u}" is not a valid URL.`,{cause:E})}h.protocol==="about:"&&h.hostname==="client"||a&&!up(h,Ji.settingsObject.baseUrl)?n.referrer="client":n.referrer=h}}A.referrerPolicy!==void 0&&(n.referrerPolicy=A.referrerPolicy);let f;if(A.mode!==void 0?f=A.mode:f=s,f==="navigate")throw V.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(f!=null&&(n.mode=f),A.credentials!==void 0&&(n.credentials=A.credentials),A.cache!==void 0&&(n.cache=A.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(A.redirect!==void 0&&(n.redirect=A.redirect),A.integrity!=null&&(n.integrity=String(A.integrity)),A.keepalive!==void 0&&(n.keepalive=!!A.keepalive),A.method!==void 0){let u=A.method,h=DT[u];if(h!==void 0)n.method=h;else{if(!ET(u))throw new TypeError(`'${u}' is not a valid HTTP method.`);let E=u.toUpperCase();if(fT.has(E))throw new TypeError(`'${u}' HTTP method is unsupported.`);u=ST[E]??u,n.method=u}!hp&&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"}),hp=!0)}A.signal!==void 0&&(i=A.signal),this.#r=n;let d=new AbortController;if(this.#e=d.signal,i!=null)if(i.aborted)d.abort(i.reason);else{this[kT]=d;let u=new WeakRef(d),h=gp(u);Gg&&fp(i)===NT&&bT(1500,i),Pi.addAbortListener(i,h),Ip.register(d,{signal:i,abort:h},h)}if(this.#A=new dp(_i),Ep(this.#A,n.headersList),Og(this.#A,"request"),f==="no-cors"){if(!IT.has(n.method))throw new TypeError(`'${n.method} is unsupported in no-cors mode.`);Og(this.#A,"request-no-cors")}if(c){let u=lp(this.#A),h=A.headers!==void 0?A.headers:new Wi(u);if(u.clear(),h instanceof Wi){for(let{name:E,value:B}of h.rawValues())u.append(E,B,!1);u.cookies=h.cookies}else hT(this.#A,h)}let g=V.is.Request(e)?e.#r.body:null;if((A.body!=null||g!=null)&&(n.method==="GET"||n.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let I=null;if(A.body!=null){let[u,h]=cT(A.body,n.keepalive);I=u,h&&!lp(this.#A).contains("content-type",!0)&&this.#A.append("content-type",h,!0)}let S=I??g;if(S!=null&&S.source==null){if(I!=null&&A.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 p=S;if(I==null&&g!=null){if(ap(e.#r))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let u=new TransformStream;g.stream.pipeThrough(u),p={source:g.source,length:g.length,stream:u.readable}}this.#r.body=p}get method(){return V.brandCheck(this,t),this.#r.method}get url(){return V.brandCheck(this,t),wT(this.#r.url)}get headers(){return V.brandCheck(this,t),this.#A}get destination(){return V.brandCheck(this,t),this.#r.destination}get referrer(){return V.brandCheck(this,t),this.#r.referrer==="no-referrer"?"":this.#r.referrer==="client"?"about:client":this.#r.referrer.toString()}get referrerPolicy(){return V.brandCheck(this,t),this.#r.referrerPolicy}get mode(){return V.brandCheck(this,t),this.#r.mode}get credentials(){return V.brandCheck(this,t),this.#r.credentials}get cache(){return V.brandCheck(this,t),this.#r.cache}get redirect(){return V.brandCheck(this,t),this.#r.redirect}get integrity(){return V.brandCheck(this,t),this.#r.integrity}get keepalive(){return V.brandCheck(this,t),this.#r.keepalive}get isReloadNavigation(){return V.brandCheck(this,t),this.#r.reloadNavigation}get isHistoryNavigation(){return V.brandCheck(this,t),this.#r.historyNavigation}get signal(){return V.brandCheck(this,t),this.#e}get body(){return V.brandCheck(this,t),this.#r.body?this.#r.body.stream:null}get bodyUsed(){return V.brandCheck(this,t),!!this.#r.body&&Pi.isDisturbed(this.#r.body.stream)}get duplex(){return V.brandCheck(this,t),"half"}clone(){if(V.brandCheck(this,t),ap(this.#r))throw new TypeError("unusable");let e=Qp(this.#r),A=new AbortController;if(this.signal.aborted)A.abort(this.signal.reason);else{let r=ji.get(this.signal);r===void 0&&(r=new Set,ji.set(this.signal,r));let n=new WeakRef(A);r.add(n),Pi.addAbortListener(A.signal,gp(n))}return Bp(e,this.#t,A.signal,dT(this.#A))}[cp.inspect.custom](e,A){A.depth===null&&(A.depth=2),A.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 ${cp.formatWithOptions(A,r)}`}static setRequestSignal(e,A){return e.#e=A,e}static getRequestDispatcher(e){return e.#t}static setRequestDispatcher(e,A){e.#t=A}static setRequestHeaders(e,A){e.#A=A}static getRequestState(e){return e.#r}static setRequestState(e,A){e.#r=A}},{setRequestSignal:FT,getRequestDispatcher:UT,setRequestDispatcher:MT,setRequestHeaders:vT,getRequestState:Cp,setRequestState:TT}=Xe;Reflect.deleteProperty(Xe,"setRequestSignal");Reflect.deleteProperty(Xe,"getRequestDispatcher");Reflect.deleteProperty(Xe,"setRequestDispatcher");Reflect.deleteProperty(Xe,"setRequestHeaders");Reflect.deleteProperty(Xe,"getRequestState");Reflect.deleteProperty(Xe,"setRequestState");uT(Xe,Cp);function Zi(t){return{method:t.method??"GET",localURLsOnly:t.localURLsOnly??!1,unsafeRequest:t.unsafeRequest??!1,body:t.body??null,client:t.client??null,reservedClient:t.reservedClient??null,replacesClientId:t.replacesClientId??"",window:t.window??"client",keepalive:t.keepalive??!1,serviceWorkers:t.serviceWorkers??"all",initiator:t.initiator??"",destination:t.destination??"",priority:t.priority??null,origin:t.origin??"client",policyContainer:t.policyContainer??"client",referrer:t.referrer??"client",referrerPolicy:t.referrerPolicy??"",mode:t.mode??"no-cors",useCORSPreflightFlag:t.useCORSPreflightFlag??!1,credentials:t.credentials??"same-origin",useCredentials:t.useCredentials??!1,cache:t.cache??"default",redirect:t.redirect??"follow",integrity:t.integrity??"",cryptoGraphicsNonceMetadata:t.cryptoGraphicsNonceMetadata??"",parserMetadata:t.parserMetadata??"",reloadNavigation:t.reloadNavigation??!1,historyNavigation:t.historyNavigation??!1,userActivation:t.userActivation??!1,taintedOrigin:t.taintedOrigin??!1,redirectCount:t.redirectCount??0,responseTainting:t.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:t.preventNoCacheCacheControlHeaderModification??!1,done:t.done??!1,timingAllowFailed:t.timingAllowFailed??!1,useURLCredentials:t.useURLCredentials??void 0,traversableForUserPrompts:t.traversableForUserPrompts??"client",urlList:t.urlList,url:t.urlList[0],headersList:t.headersList?new Wi(t.headersList):new Wi}}function Qp(t){let e=Zi({...t,body:null});return t.body!=null&&(e.body=gT(t.body)),e}function Bp(t,e,A,r){let n=new Xe(_i);TT(n,t),MT(n,e),FT(n,A);let s=new dp(_i);return vT(n,s),Ep(s,t.headersList),Og(s,r),n}Object.defineProperties(Xe.prototype,{method:De,url:De,headers:De,redirect:De,clone:De,signal:De,duplex:De,destination:De,body:De,bodyUsed:De,isHistoryNavigation:De,isReloadNavigation:De,keepalive:De,integrity:De,cache:De,credentials:De,attribute:De,referrerPolicy:De,referrer:De,mode:De,[Symbol.toStringTag]:{value:"Request",configurable:!0}});V.is.Request=V.util.MakeTypeAssertion(Xe);V.converters.RequestInfo=function(t){return typeof t=="string"?V.converters.USVString(t):V.is.Request(t)?t:V.converters.USVString(t)};V.converters.RequestInit=V.dictionaryConverter([{key:"method",converter:V.converters.ByteString},{key:"headers",converter:V.converters.HeadersInit},{key:"body",converter:V.nullableConverter(V.converters.BodyInit)},{key:"referrer",converter:V.converters.USVString},{key:"referrerPolicy",converter:V.converters.DOMString,allowedValues:CT},{key:"mode",converter:V.converters.DOMString,allowedValues:BT},{key:"credentials",converter:V.converters.DOMString,allowedValues:pT},{key:"cache",converter:V.converters.DOMString,allowedValues:yT},{key:"redirect",converter:V.converters.DOMString,allowedValues:QT},{key:"integrity",converter:V.converters.DOMString},{key:"keepalive",converter:V.converters.boolean},{key:"signal",converter:V.nullableConverter(t=>V.converters.AbortSignal(t,"RequestInit","signal"))},{key:"window",converter:V.converters.any},{key:"duplex",converter:V.converters.DOMString,allowedValues:mT},{key:"dispatcher",converter:V.converters.any},{key:"priority",converter:V.converters.DOMString,allowedValues:["high","low","auto"],defaultValue:()=>"auto"}]);pp.exports={Request:Xe,makeRequest:Zi,fromInnerRequest:Bp,cloneRequest:Qp,getRequestDispatcher:UT,getRequestState:Cp}});var Np=b((Jq,bp)=>{"use strict";var LT=require("node:assert"),{runtimeFeatures:mp}=iA(),Hr=new Map([["sha256",0],["sha384",1],["sha512",2]]),Vg;if(mp.has("crypto")){Vg=require("node:crypto");let t=Vg.getHashes();t.length===0&&Hr.clear();for(let e of Hr.keys())t.includes(e)===!1&&Hr.delete(e)}else Hr.clear();var yp=Map.prototype.get.bind(Hr),qg=Map.prototype.has.bind(Hr),xT=mp.has("crypto")===!1||Hr.size===0?()=>!0:(t,e)=>{let A=Dp(e);if(A.length===0)return!0;let r=Sp(A);for(let n of r){let s=n.alg,o=n.val,i=wp(s,t);if(Rp(i,o))return!0}return!1};function Sp(t){let e=[],A=null;for(let r of t){if(LT(qg(r.alg),"Invalid SRI hash algorithm token"),e.length===0){e.push(r),A=r;continue}let n=A.alg,s=yp(n),o=r.alg,i=yp(o);i<s||(i>s?(A=r,e[0]=r,e.length=1):e.push(r))}return e}function Dp(t){let e=[];for(let A of t.split(" ")){let n=A.split("?",1)[0],s="",o=[n.slice(0,6),n.slice(7)],i=o[0];if(!qg(i))continue;o[1]&&(s=o[1]);let a={alg:i,val:s};e.push(a)}return e}var wp=(t,e)=>Vg.hash(t,e,"base64");function Rp(t,e){let A=t.length;A!==0&&t[A-1]==="="&&(A-=1),A!==0&&t[A-1]==="="&&(A-=1);let r=e.length;if(r!==0&&e[r-1]==="="&&(r-=1),r!==0&&e[r-1]==="="&&(r-=1),A!==r)return!1;for(let n=0;n<A;++n)if(!(t[n]===e[n]||t[n]==="+"&&e[n]==="-"||t[n]==="/"&&e[n]==="_"))return!1;return!0}bp.exports={applyAlgorithmToBytes:wp,bytesMatch:xT,caseSensitiveMatch:Rp,isValidSRIHashAlgorithm:qg,getStrongestMetadata:Sp,parseMetadata:Dp}});var no=b((Pq,qp)=>{"use strict";var{makeNetworkError:ae,makeAppropriateNetworkError:Ao,filterResponse:Jg,makeResponse:Xi,fromInnerResponse:HT,getResponseState:YT}=to(),{HeadersList:Pg}=Lr(),{Request:OT,cloneRequest:GT,getRequestDispatcher:VT,getRequestState:qT}=bn(),Lt=require("node:zlib"),{makePolicyContainer:JT,clonePolicyContainer:PT,requestBadPort:WT,TAOCheck:_T,appendRequestOriginHeader:jT,responseLocationURL:ZT,requestCurrentURL:ht,setRequestReferrerPolicyOnRedirect:XT,tryUpgradeRequestToAPotentiallyTrustworthyURL:KT,createOpaqueTimingInfo:Kg,appendFetchMetadata:zT,corsCheck:$T,crossOriginResourcePolicyCheck:eL,determineRequestsReferrer:tL,coarsenedSharedCurrentTime:ro,sameOrigin:Zg,isCancelled:PA,isAborted:kp,isErrorLike:AL,fullyReadBody:rL,readableStreamClose:nL,urlIsLocal:sL,urlIsHttpHttpsScheme:ea,urlHasHttpsScheme:oL,clampAndCoarsenConnectionTimingInfo:iL,simpleRangeHeaderValue:aL,buildContentRange:lL,createInflate:cL,extractMimeType:uL,hasAuthenticationEntry:gL,includesCredentials:Fp,isTraversableNavigable:hL}=st(),Yr=require("node:assert"),{safelyExtractBody:ta,extractBody:Up}=nn(),{redirectStatusSet:Lp,nullBodyStatus:xp,safeMethodsSet:dL,requestBodyHeader:EL,subresourceSet:fL}=gs(),IL=require("node:events"),{Readable:CL,pipeline:QL,finished:BL,isErrored:pL,isReadable:Ki}=require("node:stream"),{addAbortListener:yL,bufferToLowerCasedHeaderName:Mp}=Z(),{dataURLProcessor:mL,serializeAMimeType:SL,minimizeSupportedMimeType:DL}=Bt(),{getGlobalDispatcher:wL}=Ti(),{webidl:zg}=Me(),{STATUS_CODES:vp}=require("node:http"),{bytesMatch:RL}=Np(),{createDeferredPromise:bL}=Is(),{isomorphicEncode:zi}=oA(),{runtimeFeatures:NL}=iA(),kL=NL.has("zstd"),FL=["GET","HEAD"],UL=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",Wg,$i=class extends IL{constructor(e){super(),this.dispatcher=e,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(e){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(e),this.emit("terminated",e))}abort(e){this.state==="ongoing"&&(this.state="aborted",e||(e=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=e,this.connection?.destroy(e),this.emit("terminated",e))}};function ML(t){Hp(t,"fetch")}function vL(t,e=void 0){zg.argumentLengthCheck(arguments,1,"globalThis.fetch");let A=bL(),r;try{r=new OT(t,e)}catch(c){return A.reject(c),A.promise}let n=qT(r);if(r.signal.aborted)return _g(A,n,null,r.signal.reason,null),A.promise;n.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(n.serviceWorkers="none");let o=null,i=!1,a=null;return yL(r.signal,()=>{i=!0,Yr(a!=null),a.abort(r.signal.reason);let c=o?.deref();_g(A,n,c,r.signal.reason,a.controller)}),a=Op({request:n,processResponseEndOfBody:ML,processResponse:c=>{if(!i){if(c.aborted){_g(A,n,o,a.serializedAbortReason,a.controller);return}if(c.type==="error"){A.reject(new TypeError("fetch failed",{cause:c.error}));return}o=new WeakRef(HT(c,"immutable")),A.resolve(o.deref()),A=null}},dispatcher:VT(r),requestObject:r}),A.promise}function Hp(t,e="other"){if(t.type==="error"&&t.aborted||!t.urlList?.length)return;let A=t.urlList[0],r=t.timingInfo,n=t.cacheState;ea(A)&&r!==null&&(t.timingAllowPassed||(r=Kg({startTime:r.startTime}),n=""),r.endTime=ro(),t.timingInfo=r,Yp(r,A.href,e,globalThis,n,"",t.status))}var Yp=performance.markResourceTiming;function _g(t,e,A,r,n){if(t&&t.reject(r),e.body?.stream!=null&&Ki(e.body.stream)&&e.body.stream.cancel(r).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o}),A==null)return;let s=YT(A);s.body?.stream!=null&&Ki(s.body.stream)&&n.error(r)}function Op({request:t,processRequestBodyChunkLength:e,processRequestEndOfBody:A,processResponse:r,processResponseEndOfBody:n,processResponseConsumeBody:s,useParallelQueue:o=!1,dispatcher:i=wL(),requestObject:a=null}){Yr(i);let l=null,c=!1;t.client!=null&&(l=t.client.globalObject,c=t.client.crossOriginIsolatedCapability);let f=ro(c),d=Kg({startTime:f}),g={controller:new $i(i),request:t,timingInfo:d,processRequestBodyChunkLength:e,processRequestEndOfBody:A,processResponse:r,processResponseConsumeBody:s,processResponseEndOfBody:n,taskDestination:l,crossOriginIsolatedCapability:c,requestObject:a};return Yr(!t.body||t.body.stream),t.window==="client"&&(t.window=t.client?.globalObject?.constructor?.name==="Window"?t.client:"no-window"),t.origin==="client"&&(t.origin=t.client.origin),t.policyContainer==="client"&&(t.client!=null?t.policyContainer=PT(t.client.policyContainer):t.policyContainer=JT()),t.headersList.contains("accept",!0)||t.headersList.append("accept","*/*",!0),t.headersList.contains("accept-language",!0)||t.headersList.append("accept-language","*",!0),t.priority,fL.has(t.destination),Gp(g,!1),g.controller}async function Gp(t,e){try{let A=t.request,r=null;if(A.localURLsOnly&&!sL(ht(A))&&(r=ae("local URLs only")),KT(A),WT(A)==="blocked"&&(r=ae("bad port")),A.referrerPolicy===""&&(A.referrerPolicy=A.policyContainer.referrerPolicy),A.referrer!=="no-referrer"&&(A.referrer=tL(A)),r===null){let s=ht(A);Zg(s,A.url)&&A.responseTainting==="basic"||s.protocol==="data:"||A.mode==="navigate"||A.mode==="websocket"?(A.responseTainting="basic",r=await Tp(t)):A.mode==="same-origin"?r=ae('request mode cannot be "same-origin"'):A.mode==="no-cors"?A.redirect!=="follow"?r=ae('redirect mode cannot be "follow" for "no-cors" request'):(A.responseTainting="opaque",r=await Tp(t)):ea(ht(A))?(A.responseTainting="cors",r=await Vp(t)):r=ae("URL scheme must be a HTTP(S) scheme")}if(e)return r;r.status!==0&&!r.internalResponse&&(A.responseTainting,A.responseTainting==="basic"?r=Jg(r,"basic"):A.responseTainting==="cors"?r=Jg(r,"cors"):A.responseTainting==="opaque"?r=Jg(r,"opaque"):Yr(!1));let n=r.status===0?r:r.internalResponse;if(n.urlList.length===0&&n.urlList.push(...A.urlList),A.timingAllowFailed||(r.timingAllowPassed=!0),r.type==="opaque"&&n.status===206&&n.rangeRequested&&!A.headers.contains("range",!0)&&(r=n=ae()),r.status!==0&&(A.method==="HEAD"||A.method==="CONNECT"||xp.includes(n.status))&&(n.body=null,t.controller.dump=!0),A.integrity){let s=i=>jg(t,ae(i));if(A.responseTainting==="opaque"||r.body==null){s(r.error);return}let o=i=>{if(!RL(i,A.integrity)){s("integrity mismatch");return}r.body=ta(i)[0],jg(t,r)};rL(r.body,o,s)}else jg(t,r)}catch(A){t.controller.terminate(A)}}function Tp(t){if(PA(t)&&t.request.redirectCount===0)return Promise.resolve(Ao(t));let{request:e}=t,{protocol:A}=ht(e);switch(A){case"about:":return Promise.resolve(ae("about scheme is not supported"));case"blob:":{Wg||(Wg=require("node:buffer").resolveObjectURL);let r=ht(e);if(r.search.length!==0)return Promise.resolve(ae("NetworkError when attempting to fetch resource."));let n=Wg(r.toString());if(e.method!=="GET"||!zg.is.Blob(n))return Promise.resolve(ae("invalid method"));let s=Xi(),o=n.size,i=zi(`${o}`),a=n.type;if(e.headersList.contains("range",!0)){s.rangeRequested=!0;let l=e.headersList.get("range",!0),c=aL(l,!0);if(c==="failure")return Promise.resolve(ae("failed to fetch the data URL"));let{rangeStartValue:f,rangeEndValue:d}=c;if(f===null)f=o-d,d=f+d-1;else{if(f>=o)return Promise.resolve(ae("Range start is greater than the blob's size."));(d===null||d>=o)&&(d=o-1)}let g=n.slice(f,d+1,a),I=Up(g);s.body=I[0];let S=zi(`${g.size}`),p=lL(f,d,o);s.status=206,s.statusText="Partial Content",s.headersList.set("content-length",S,!0),s.headersList.set("content-type",a,!0),s.headersList.set("content-range",p,!0)}else{let l=Up(n);s.statusText="OK",s.body=l[0],s.headersList.set("content-length",i,!0),s.headersList.set("content-type",a,!0)}return Promise.resolve(s)}case"data:":{let r=ht(e),n=mL(r);if(n==="failure")return Promise.resolve(ae("failed to fetch the data URL"));let s=SL(n.mimeType);return Promise.resolve(Xi({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:s}]],body:ta(n.body)[0]}))}case"file:":return Promise.resolve(ae("not implemented... yet..."));case"http:":case"https:":return Vp(t).catch(r=>ae(r));default:return Promise.resolve(ae("unknown scheme"))}}function TL(t,e){t.request.done=!0,t.processResponseDone!=null&&queueMicrotask(()=>t.processResponseDone(e))}function jg(t,e){let A=t.timingInfo,r=()=>{let s=Date.now();t.request.destination==="document"&&(t.controller.fullTimingInfo=A),t.controller.reportTimingSteps=()=>{if(!ea(t.request.url))return;A.endTime=s;let i=e.cacheState,a=e.bodyInfo;e.timingAllowPassed||(A=Kg(A),i="");let l=0;if(t.request.mode!=="navigator"||!e.hasCrossOriginRedirects){l=e.status;let c=uL(e.headersList);c!=="failure"&&(a.contentType=DL(c))}t.request.initiatorType!=null&&Yp(A,t.request.url.href,t.request.initiatorType,globalThis,i,a,l)};let o=()=>{t.request.done=!0,t.processResponseEndOfBody!=null&&queueMicrotask(()=>t.processResponseEndOfBody(e)),t.request.initiatorType!=null&&t.controller.reportTimingSteps()};queueMicrotask(()=>o())};t.processResponse!=null&&queueMicrotask(()=>{t.processResponse(e),t.processResponse=null});let n=e.type==="error"?e:e.internalResponse??e;n.body==null?r():BL(n.body.stream,()=>{r()})}async function Vp(t){let e=t.request,A=null,r=null,n=t.timingInfo;if(e.serviceWorkers,A===null){if(e.redirect==="follow"&&(e.serviceWorkers="none"),r=A=await Xg(t),e.responseTainting==="cors"&&$T(e,A)==="failure")return ae("cors failure");_T(e,A)==="failure"&&(e.timingAllowFailed=!0)}return(e.responseTainting==="opaque"||A.type==="opaque")&&eL(e.origin,e.client,e.destination,r)==="blocked"?ae("blocked"):(Lp.has(r.status)&&(e.redirect!=="manual"&&t.controller.connection.destroy(void 0,!1),e.redirect==="error"?A=ae("unexpected redirect"):e.redirect==="manual"?A=r:e.redirect==="follow"?A=await LL(t,A):Yr(!1)),A.timingInfo=n,A)}function LL(t,e){let A=t.request,r=e.internalResponse?e.internalResponse:e,n;try{if(n=ZT(r,ht(A).hash),n==null)return e}catch(o){return Promise.resolve(ae(o))}if(!ea(n))return Promise.resolve(ae("URL scheme must be a HTTP(S) scheme"));if(A.redirectCount===20)return Promise.resolve(ae("redirect count exceeded"));if(A.redirectCount+=1,A.mode==="cors"&&(n.username||n.password)&&!Zg(A,n))return Promise.resolve(ae('cross origin not allowed for request mode "cors"'));if(A.responseTainting==="cors"&&(n.username||n.password))return Promise.resolve(ae('URL cannot contain credentials for request mode "cors"'));if(r.status!==303&&A.body!=null&&A.body.source==null)return Promise.resolve(ae());if([301,302].includes(r.status)&&A.method==="POST"||r.status===303&&!FL.includes(A.method)){A.method="GET",A.body=null;for(let o of EL)A.headersList.delete(o)}Zg(ht(A),n)||(A.headersList.delete("authorization",!0),A.headersList.delete("proxy-authorization",!0),A.headersList.delete("cookie",!0),A.headersList.delete("host",!0)),A.body!=null&&(Yr(A.body.source!=null),A.body=ta(A.body.source)[0]);let s=t.timingInfo;return s.redirectEndTime=s.postRedirectStartTime=ro(t.crossOriginIsolatedCapability),s.redirectStartTime===0&&(s.redirectStartTime=s.startTime),A.urlList.push(n),XT(A,r),Gp(t,!0)}async function Xg(t,e=!1,A=!1){let r=t.request,n=null,s=null,o=null,i=null,a=!1;r.window==="no-window"&&r.redirect==="error"?(n=t,s=r):(s=GT(r),n={...t},n.request=s);let l=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic",c=s.body?s.body.length:null,f=null;if(s.body==null&&["POST","PUT"].includes(s.method)&&(f="0"),c!=null&&(f=zi(`${c}`)),f!=null&&s.headersList.append("content-length",f,!0),c!=null&&s.keepalive,zg.is.URL(s.referrer)&&s.headersList.append("referer",zi(s.referrer.href),!0),jT(s),zT(s),s.headersList.contains("user-agent",!0)||s.headersList.append("user-agent",UL,!0),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)||(oL(ht(s))?s.headersList.append("accept-encoding","br, gzip, deflate",!0):s.headersList.append("accept-encoding","gzip, deflate",!0)),s.headersList.delete("host",!0),l&&!s.headersList.contains("authorization",!0)){let d=null;if(!(gL(s)&&(s.useURLCredentials===void 0||!Fp(ht(s))))){if(Fp(ht(s))&&e){let{username:g,password:I}=ht(s);d=`Basic ${Buffer.from(`${g}:${I}`).toString("base64")}`}}d!==null&&s.headersList.append("Authorization",d,!1)}if(i==null&&(s.cache="no-store"),s.cache!=="no-store"&&s.cache,o==null){if(s.cache==="only-if-cached")return ae("only if cached");let d=await xL(n,l,A);!dL.has(s.method)&&d.status>=200&&d.status<=399,a&&d.status,o==null&&(o=d)}if(o.urlList=[...s.urlList],s.headersList.contains("range",!0)&&(o.rangeRequested=!0),o.requestIncludesCredentials=l,o.status===401&&s.responseTainting!=="cors"&&l&&hL(r.traversableForUserPrompts)){if(r.body!=null){if(r.body.source==null)return ae("expected non-null body source");r.body=ta(r.body.source)[0]}if(r.useURLCredentials===void 0||e)return PA(t)?Ao(t):o;t.controller.connection.destroy(),o=await Xg(t,!0)}if(o.status===407)return r.window==="no-window"?ae():PA(t)?Ao(t):ae("proxy authentication required");if(o.status===421&&!A&&(r.body==null||r.body.source!=null)){if(PA(t))return Ao(t);t.controller.connection.destroy(),o=await Xg(t,e,!0)}return o}async function xL(t,e=!1,A=!1){Yr(!t.controller.connection||t.controller.connection.destroyed),t.controller.connection={abort:null,destroyed:!1,destroy(I,S=!0){this.destroyed||(this.destroyed=!0,S&&this.abort?.(I??new DOMException("The operation was aborted.","AbortError")))}};let r=t.request,n=null,s=t.timingInfo;null==null&&(r.cache="no-store");let i=A?"yes":"no";r.mode;let a=null;if(r.body==null&&t.processRequestEndOfBody)queueMicrotask(()=>t.processRequestEndOfBody());else if(r.body!=null){let I=async function*(u){PA(t)||(yield u,t.processRequestBodyChunkLength?.(u.byteLength))},S=()=>{PA(t)||t.processRequestEndOfBody&&t.processRequestEndOfBody()},p=u=>{PA(t)||(u.name==="AbortError"?t.controller.abort():t.controller.terminate(u))};a=(async function*(){try{for await(let u of r.body.stream)yield*I(u);S()}catch(u){p(u)}})()}try{let{body:I,status:S,statusText:p,headersList:u,socket:h}=await g({body:a});if(h)n=Xi({status:S,statusText:p,headersList:u,socket:h});else{let E=I[Symbol.asyncIterator]();t.controller.next=()=>E.next(),n=Xi({status:S,statusText:p,headersList:u})}}catch(I){return I.name==="AbortError"?(t.controller.connection.destroy(),Ao(t,I)):ae(I)}let l=()=>t.controller.resume(),c=I=>{PA(t)||t.controller.abort(I)},f=new ReadableStream({start(I){t.controller.controller=I},pull:l,cancel:c,type:"bytes"});n.body={stream:f,source:null,length:null},t.controller.resume||t.controller.on("terminated",d),t.controller.resume=async()=>{for(;;){let I,S;try{let{done:u,value:h}=await t.controller.next();if(kp(t))break;I=u?void 0:h}catch(u){t.controller.ended&&!s.encodedBodySize?I=void 0:(I=u,S=!0)}if(I===void 0){nL(t.controller.controller),TL(t,n);return}if(s.decodedBodySize+=I?.byteLength??0,S){t.controller.terminate(I);return}let p=new Uint8Array(I);if(p.byteLength&&t.controller.controller.enqueue(p),pL(f)){t.controller.terminate();return}if(t.controller.controller.desiredSize<=0)return}};function d(I){kp(t)?(n.aborted=!0,Ki(f)&&t.controller.controller.error(t.controller.serializedAbortReason)):Ki(f)&&t.controller.controller.error(new TypeError("terminated",{cause:AL(I)?I:void 0})),t.controller.connection.destroy()}return n;function g({body:I}){let S=ht(r),p=t.controller.dispatcher,u=S.pathname+S.search,h=S.search.length===0&&S.href[S.href.length-S.hash.length-1]==="?";return new Promise((E,B)=>p.dispatch({path:h?`${u}?`:u,origin:S.origin,method:r.method,body:p.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(Q){let{connection:D}=t.controller;s.finalConnectionTimingInfo=iL(void 0,s.postRedirectStartTime,t.crossOriginIsolatedCapability),D.destroyed?Q(new DOMException("The operation was aborted.","AbortError")):(t.controller.on("terminated",Q),this.abort=D.abort=Q),s.finalNetworkRequestStartTime=ro(t.crossOriginIsolatedCapability)},onResponseStarted(){s.finalNetworkResponseStartTime=ro(t.crossOriginIsolatedCapability)},onHeaders(Q,D,m,R){if(Q<200)return!1;let y=new Pg;for(let N=0;N<D.length;N+=2){let M=Mp(D[N]),H=D[N+1];if(Array.isArray(H)&&!Buffer.isBuffer(D[N+1]))for(let $ of H)y.append(M,$.toString("latin1"),!0);else y.append(M,H.toString("latin1"),!0)}let U=y.get("location",!0);this.body=new CL({read:m});let k=U&&r.redirect==="follow"&&Lp.has(Q),q=[];if(r.method!=="HEAD"&&r.method!=="CONNECT"&&!xp.includes(Q)&&!k){let N=y.get("content-encoding",!0),M=N?N.toLowerCase().split(","):[],H=5;if(M.length>H)return B(new Error(`too many content-encodings in response: ${M.length}, maximum allowed is ${H}`)),!0;for(let $=M.length-1;$>=0;--$){let j=M[$].trim();if(j==="x-gzip"||j==="gzip")q.push(Lt.createGunzip({flush:Lt.constants.Z_SYNC_FLUSH,finishFlush:Lt.constants.Z_SYNC_FLUSH}));else if(j==="deflate")q.push(cL({flush:Lt.constants.Z_SYNC_FLUSH,finishFlush:Lt.constants.Z_SYNC_FLUSH}));else if(j==="br")q.push(Lt.createBrotliDecompress({flush:Lt.constants.BROTLI_OPERATION_FLUSH,finishFlush:Lt.constants.BROTLI_OPERATION_FLUSH}));else if(j==="zstd"&&kL)q.push(Lt.createZstdDecompress({flush:Lt.constants.ZSTD_e_continue,finishFlush:Lt.constants.ZSTD_e_end}));else{q.length=0;break}}}let F=this.onError.bind(this);return E({status:Q,statusText:R,headersList:y,body:q.length?QL(this.body,...q,N=>{N&&this.onError(N)}).on("error",F):this.body.on("error",F)}),!0},onData(Q){if(t.controller.dump)return;let D=Q;return s.encodedBodySize+=D.byteLength,this.body.push(D)},onComplete(){this.abort&&t.controller.off("terminated",this.abort),t.controller.ended=!0,this.body.push(null)},onError(Q){this.abort&&t.controller.off("terminated",this.abort),this.body?.destroy(Q),t.controller.terminate(Q),B(Q)},onRequestUpgrade(Q,D,m,R){if(R.session!=null&&D!==200||R.session==null&&D!==101)return!1;let y=new Pg;for(let[U,k]of Object.entries(m)){if(k==null)continue;let q=U.toLowerCase();if(Array.isArray(k))for(let F of k)y.append(q,String(F),!0);else y.append(q,String(k),!0)}return E({status:D,statusText:vp[D],headersList:y,socket:R}),!0},onUpgrade(Q,D,m){if(m.session!=null&&Q!==200||m.session==null&&Q!==101)return!1;let R=new Pg;for(let y=0;y<D.length;y+=2){let U=Mp(D[y]),k=D[y+1];if(Array.isArray(k)&&!Buffer.isBuffer(D[y+1]))for(let q of k)R.append(U,q.toString("latin1"),!0);else R.append(U,k.toString("latin1"),!0)}return E({status:Q,statusText:vp[Q],headersList:R,socket:m}),!0}}))}}qp.exports={fetch:vL,Fetch:$i,fetching:Op,finalizeAndReportTiming:Hp}});var Wp=b((Wq,Pp)=>{"use strict";var HL=require("node:assert"),{URLSerializer:Jp}=Bt(),{isValidHeaderName:YL}=st();function OL(t,e,A=!1){let r=Jp(t,A),n=Jp(e,A);return r===n}function GL(t){HL(t!==null);let e=[];for(let A of t.split(","))A=A.trim(),YL(A)&&e.push(A);return e}Pp.exports={urlEquals:OL,getFieldValues:GL}});var Xp=b((_q,Zp)=>{"use strict";var $g=require("node:assert"),{kConstruct:VL}=le(),{urlEquals:qL,getFieldValues:eh}=Wp(),{kEnumerableProperty:Or,isDisturbed:JL}=Z(),{webidl:x}=Me(),{cloneResponse:_p,fromInnerResponse:PL,getResponseState:WL}=to(),{Request:so,fromInnerRequest:_L,getRequestState:Kt}=bn(),{fetching:jL}=no(),{urlIsHttpHttpsScheme:Aa,readAllBytes:ZL}=st(),{createDeferredPromise:Nn}=Is(),ra=class t{#e;constructor(){arguments[0]!==VL&&x.illegalConstructor(),x.util.markAsUncloneable(this),this.#e=arguments[1]}async match(e,A={}){x.brandCheck(this,t);let r="Cache.match";x.argumentLengthCheck(arguments,1,r),e=x.converters.RequestInfo(e),A=x.converters.CacheQueryOptions(A,r,"options");let n=this.#s(e,A,1);if(n.length!==0)return n[0]}async matchAll(e=void 0,A={}){x.brandCheck(this,t);let r="Cache.matchAll";return e!==void 0&&(e=x.converters.RequestInfo(e)),A=x.converters.CacheQueryOptions(A,r,"options"),this.#s(e,A)}async add(e){x.brandCheck(this,t),x.argumentLengthCheck(arguments,1,"Cache.add"),e=x.converters.RequestInfo(e);let r=[e];return await this.addAll(r)}async addAll(e){x.brandCheck(this,t);let A="Cache.addAll";x.argumentLengthCheck(arguments,1,A);let r=[],n=[];for(let d of e){if(d===void 0)throw x.errors.conversionFailed({prefix:A,argument:"Argument 1",types:["undefined is not allowed"]});if(d=x.converters.RequestInfo(d),typeof d=="string")continue;let g=Kt(d);if(!Aa(g.url)||g.method!=="GET")throw x.errors.exception({header:A,message:"Expected http/s scheme when method is not GET."})}let s=[];for(let d of e){let g=Kt(new so(d));if(!Aa(g.url))throw x.errors.exception({header:A,message:"Expected http/s scheme."});g.initiator="fetch",g.destination="subresource",n.push(g);let I=Nn();s.push(jL({request:g,processResponse(S){if(S.type==="error"||S.status===206||S.status<200||S.status>299)I.reject(x.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(S.headersList.contains("vary")){let p=eh(S.headersList.get("vary"));for(let u of p)if(u==="*"){I.reject(x.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let h of s)h.abort();return}}},processResponseEndOfBody(S){if(S.aborted){I.reject(new DOMException("aborted","AbortError"));return}I.resolve(S)}})),r.push(I.promise)}let i=await Promise.all(r),a=[],l=0;for(let d of i){let g={type:"put",request:n[l],response:d};a.push(g),l++}let c=Nn(),f=null;try{this.#t(a)}catch(d){f=d}return queueMicrotask(()=>{f===null?c.resolve(void 0):c.reject(f)}),c.promise}async put(e,A){x.brandCheck(this,t);let r="Cache.put";x.argumentLengthCheck(arguments,2,r),e=x.converters.RequestInfo(e),A=x.converters.Response(A,r,"response");let n=null;if(x.is.Request(e)?n=Kt(e):n=Kt(new so(e)),!Aa(n.url)||n.method!=="GET")throw x.errors.exception({header:r,message:"Expected an http/s scheme when method is not GET"});let s=WL(A);if(s.status===206)throw x.errors.exception({header:r,message:"Got 206 status"});if(s.headersList.contains("vary")){let g=eh(s.headersList.get("vary"));for(let I of g)if(I==="*")throw x.errors.exception({header:r,message:"Got * vary field value"})}if(s.body&&(JL(s.body.stream)||s.body.stream.locked))throw x.errors.exception({header:r,message:"Response body is locked or disturbed"});let o=_p(s),i=Nn();if(s.body!=null){let I=s.body.stream.getReader();ZL(I,i.resolve,i.reject)}else i.resolve(void 0);let a=[],l={type:"put",request:n,response:o};a.push(l);let c=await i.promise;o.body!=null&&(o.body.source=c);let f=Nn(),d=null;try{this.#t(a)}catch(g){d=g}return queueMicrotask(()=>{d===null?f.resolve():f.reject(d)}),f.promise}async delete(e,A={}){x.brandCheck(this,t);let r="Cache.delete";x.argumentLengthCheck(arguments,1,r),e=x.converters.RequestInfo(e),A=x.converters.CacheQueryOptions(A,r,"options");let n=null;if(x.is.Request(e)){if(n=Kt(e),n.method!=="GET"&&!A.ignoreMethod)return!1}else $g(typeof e=="string"),n=Kt(new so(e));let s=[],o={type:"delete",request:n,options:A};s.push(o);let i=Nn(),a=null,l;try{l=this.#t(s)}catch(c){a=c}return queueMicrotask(()=>{a===null?i.resolve(!!l?.length):i.reject(a)}),i.promise}async keys(e=void 0,A={}){x.brandCheck(this,t);let r="Cache.keys";e!==void 0&&(e=x.converters.RequestInfo(e)),A=x.converters.CacheQueryOptions(A,r,"options");let n=null;if(e!==void 0)if(x.is.Request(e)){if(n=Kt(e),n.method!=="GET"&&!A.ignoreMethod)return[]}else typeof e=="string"&&(n=Kt(new so(e)));let s=Nn(),o=[];if(e===void 0)for(let i of this.#e)o.push(i[0]);else{let i=this.#A(n,A);for(let a of i)o.push(a[0])}return queueMicrotask(()=>{let i=[];for(let a of o){let l=_L(a,void 0,new AbortController().signal,"immutable");i.push(l)}s.resolve(Object.freeze(i))}),s.promise}#t(e){let A=this.#e,r=[...A],n=[],s=[];try{for(let o of e){if(o.type!=="delete"&&o.type!=="put")throw x.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(o.type==="delete"&&o.response!=null)throw x.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#A(o.request,o.options,n).length)throw new DOMException("???","InvalidStateError");let i;if(o.type==="delete"){if(i=this.#A(o.request,o.options),i.length===0)return[];for(let a of i){let l=A.indexOf(a);$g(l!==-1),A.splice(l,1)}}else if(o.type==="put"){if(o.response==null)throw x.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let a=o.request;if(!Aa(a.url))throw x.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(a.method!=="GET")throw x.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(o.options!=null)throw x.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});i=this.#A(o.request);for(let l of i){let c=A.indexOf(l);$g(c!==-1),A.splice(c,1)}A.push([o.request,o.response]),n.push([o.request,o.response])}s.push([o.request,o.response])}return s}catch(o){throw this.#e.length=0,this.#e=r,o}}#A(e,A,r){let n=[],s=r??this.#e;for(let o of s){let[i,a]=o;this.#r(e,i,a,A)&&n.push(o)}return n}#r(e,A,r=null,n){let s=new URL(e.url),o=new URL(A.url);if(n?.ignoreSearch&&(o.search="",s.search=""),!qL(s,o,!0))return!1;if(r==null||n?.ignoreVary||!r.headersList.contains("vary"))return!0;let i=eh(r.headersList.get("vary"));for(let a of i){if(a==="*")return!1;let l=A.headersList.get(a),c=e.headersList.get(a);if(l!==c)return!1}return!0}#s(e,A,r=1/0){let n=null;if(e!==void 0)if(x.is.Request(e)){if(n=Kt(e),n.method!=="GET"&&!A.ignoreMethod)return[]}else typeof e=="string"&&(n=Kt(new so(e)));let s=[];if(e===void 0)for(let i of this.#e)s.push(i[1]);else{let i=this.#A(n,A);for(let a of i)s.push(a[1])}let o=[];for(let i of s){let a=PL(_p(i),"immutable");if(o.push(a),o.length>=r)break}return Object.freeze(o)}};Object.defineProperties(ra.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:Or,matchAll:Or,add:Or,addAll:Or,put:Or,delete:Or,keys:Or});var jp=[{key:"ignoreSearch",converter:x.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:x.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:x.converters.boolean,defaultValue:()=>!1}];x.converters.CacheQueryOptions=x.dictionaryConverter(jp);x.converters.MultiCacheQueryOptions=x.dictionaryConverter([...jp,{key:"cacheName",converter:x.converters.DOMString}]);x.converters.Response=x.interfaceConverter(x.is.Response,"Response");x.converters["sequence<RequestInfo>"]=x.sequenceConverter(x.converters.RequestInfo);Zp.exports={Cache:ra}});var zp=b((jq,Kp)=>{"use strict";var{Cache:na}=Xp(),{webidl:Le}=Me(),{kEnumerableProperty:oo}=Z(),{kConstruct:io}=le(),sa=class t{#e=new Map;constructor(){arguments[0]!==io&&Le.illegalConstructor(),Le.util.markAsUncloneable(this)}async match(e,A={}){if(Le.brandCheck(this,t),Le.argumentLengthCheck(arguments,1,"CacheStorage.match"),e=Le.converters.RequestInfo(e),A=Le.converters.MultiCacheQueryOptions(A),A.cacheName!=null){if(this.#e.has(A.cacheName)){let r=this.#e.get(A.cacheName);return await new na(io,r).match(e,A)}}else for(let r of this.#e.values()){let s=await new na(io,r).match(e,A);if(s!==void 0)return s}}async has(e){Le.brandCheck(this,t);let A="CacheStorage.has";return Le.argumentLengthCheck(arguments,1,A),e=Le.converters.DOMString(e,A,"cacheName"),this.#e.has(e)}async open(e){Le.brandCheck(this,t);let A="CacheStorage.open";if(Le.argumentLengthCheck(arguments,1,A),e=Le.converters.DOMString(e,A,"cacheName"),this.#e.has(e)){let n=this.#e.get(e);return new na(io,n)}let r=[];return this.#e.set(e,r),new na(io,r)}async delete(e){Le.brandCheck(this,t);let A="CacheStorage.delete";return Le.argumentLengthCheck(arguments,1,A),e=Le.converters.DOMString(e,A,"cacheName"),this.#e.delete(e)}async keys(){return Le.brandCheck(this,t),[...this.#e.keys()]}};Object.defineProperties(sa.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:oo,has:oo,open:oo,delete:oo,keys:oo});Kp.exports={CacheStorage:sa}});var ey=b((Zq,$p)=>{"use strict";$p.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var th=b((Xq,sy)=>{"use strict";function XL(t){for(let e=0;e<t.length;++e){let A=t.charCodeAt(e);if(A>=0&&A<=8||A>=10&&A<=31||A===127)return!0}return!1}function ty(t){for(let e=0;e<t.length;++e){let A=t.charCodeAt(e);if(A<33||A>126||A===34||A===40||A===41||A===60||A===62||A===64||A===44||A===59||A===58||A===92||A===47||A===91||A===93||A===63||A===61||A===123||A===125)throw new Error("Invalid cookie name")}}function Ay(t){let e=t.length,A=0;if(t[0]==='"'){if(e===1||t[e-1]!=='"')throw new Error("Invalid cookie value");--e,++A}for(;A<e;){let r=t.charCodeAt(A++);if(r<33||r>126||r===34||r===44||r===59||r===92)throw new Error("Invalid cookie value")}}function ry(t){for(let e=0;e<t.length;++e){let A=t.charCodeAt(e);if(A<32||A===127||A===59)throw new Error("Invalid cookie path")}}function KL(t){if(t.startsWith("-")||t.endsWith(".")||t.endsWith("-"))throw new Error("Invalid cookie domain")}var zL=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],$L=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],oa=Array(61).fill(0).map((t,e)=>e.toString().padStart(2,"0"));function ny(t){return typeof t=="number"&&(t=new Date(t)),`${zL[t.getUTCDay()]}, ${oa[t.getUTCDate()]} ${$L[t.getUTCMonth()]} ${t.getUTCFullYear()} ${oa[t.getUTCHours()]}:${oa[t.getUTCMinutes()]}:${oa[t.getUTCSeconds()]} GMT`}function ex(t){if(t<0)throw new Error("Invalid cookie max-age")}function tx(t){if(t.name.length===0)return null;ty(t.name),Ay(t.value);let e=[`${t.name}=${t.value}`];t.name.startsWith("__Secure-")&&(t.secure=!0),t.name.startsWith("__Host-")&&(t.secure=!0,t.domain=null,t.path="/"),t.secure&&e.push("Secure"),t.httpOnly&&e.push("HttpOnly"),typeof t.maxAge=="number"&&(ex(t.maxAge),e.push(`Max-Age=${t.maxAge}`)),t.domain&&(KL(t.domain),e.push(`Domain=${t.domain}`)),t.path&&(ry(t.path),e.push(`Path=${t.path}`)),t.expires&&t.expires.toString()!=="Invalid Date"&&e.push(`Expires=${ny(t.expires)}`),t.sameSite&&e.push(`SameSite=${t.sameSite}`);for(let A of t.unparsed){if(!A.includes("="))throw new Error("Invalid unparsed");let[r,...n]=A.split("=");e.push(`${r.trim()}=${n.join("=")}`)}return e.join("; ")}sy.exports={isCTLExcludingHtab:XL,validateCookieName:ty,validateCookiePath:ry,validateCookieValue:Ay,toIMFDate:ny,stringify:tx}});var iy=b((Kq,oy)=>{"use strict";var{collectASequenceOfCodePointsFast:ia}=oA(),{maxNameValuePairSize:Ax,maxAttributeValueSize:rx}=ey(),{isCTLExcludingHtab:nx}=th(),sx=require("node:assert"),{unescape:ox}=require("node:querystring");function ix(t){if(nx(t))return null;let e="",A="",r="",n="";if(t.includes(";")){let s={position:0};e=ia(";",t,s),A=t.slice(s.position)}else e=t;if(!e.includes("="))n=e;else{let s={position:0};r=ia("=",e,s),n=e.slice(s.position+1)}return r=r.trim(),n=n.trim(),r.length+n.length>Ax?null:{name:r,value:ox(n),...kn(A)}}function kn(t,e={}){if(t.length===0)return e;sx(t[0]===";"),t=t.slice(1);let A="";t.includes(";")?(A=ia(";",t,{position:0}),t=t.slice(A.length)):(A=t,t="");let r="",n="";if(A.includes("=")){let o={position:0};r=ia("=",A,o),n=A.slice(o.position+1)}else r=A;if(r=r.trim(),n=n.trim(),n.length>rx)return kn(t,e);let s=r.toLowerCase();if(s==="expires"){let o=new Date(n);e.expires=o}else if(s==="max-age"){let o=n.charCodeAt(0);if((o<48||o>57)&&n[0]!=="-"||!/^\d+$/.test(n))return kn(t,e);let i=Number(n);e.maxAge=i}else if(s==="domain"){let o=n;o[0]==="."&&(o=o.slice(1)),o=o.toLowerCase(),e.domain=o}else if(s==="path"){let o="";n.length===0||n[0]!=="/"?o="/":o=n,e.path=o}else if(s==="secure")e.secure=!0;else if(s==="httponly")e.httpOnly=!0;else if(s==="samesite"){let o="Default",i=n.toLowerCase();i.includes("none")&&(o="None"),i.includes("strict")&&(o="Strict"),i.includes("lax")&&(o="Lax"),e.sameSite=o}else e.unparsed??=[],e.unparsed.push(`${r}=${n}`);return kn(t,e)}oy.exports={parseSetCookie:ix,parseUnparsedAttributes:kn}});var uy=b((zq,cy)=>{"use strict";var{parseSetCookie:ay}=iy(),{stringify:ax}=th(),{webidl:re}=Me(),{Headers:lx}=Lr(),aa=re.brandCheckMultiple([lx,globalThis.Headers].filter(Boolean));function cx(t){re.argumentLengthCheck(arguments,1,"getCookies"),aa(t);let e=t.get("cookie"),A={};if(!e)return A;for(let r of e.split(";")){let[n,...s]=r.split("=");A[n.trim()]=s.join("=")}return A}function ux(t,e,A){aa(t);let r="deleteCookie";re.argumentLengthCheck(arguments,2,r),e=re.converters.DOMString(e,r,"name"),A=re.converters.DeleteCookieAttributes(A),ly(t,{name:e,value:"",expires:new Date(0),...A})}function gx(t){re.argumentLengthCheck(arguments,1,"getSetCookies"),aa(t);let e=t.getSetCookie();return e?e.map(A=>ay(A)):[]}function hx(t){return t=re.converters.DOMString(t),ay(t)}function ly(t,e){re.argumentLengthCheck(arguments,2,"setCookie"),aa(t),e=re.converters.Cookie(e);let A=ax(e);A&&t.append("set-cookie",A,!0)}re.converters.DeleteCookieAttributes=re.dictionaryConverter([{converter:re.nullableConverter(re.converters.DOMString),key:"path",defaultValue:()=>null},{converter:re.nullableConverter(re.converters.DOMString),key:"domain",defaultValue:()=>null}]);re.converters.Cookie=re.dictionaryConverter([{converter:re.converters.DOMString,key:"name"},{converter:re.converters.DOMString,key:"value"},{converter:re.nullableConverter(t=>typeof t=="number"?re.converters["unsigned long long"](t):new Date(t)),key:"expires",defaultValue:()=>null},{converter:re.nullableConverter(re.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:re.nullableConverter(re.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:re.nullableConverter(re.converters.DOMString),key:"path",defaultValue:()=>null},{converter:re.nullableConverter(re.converters.boolean),key:"secure",defaultValue:()=>null},{converter:re.nullableConverter(re.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:re.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:re.sequenceConverter(re.converters.DOMString),key:"unparsed",defaultValue:()=>[]}]);cy.exports={getCookies:cx,deleteCookie:ux,getSetCookies:gx,setCookie:ly,parseCookie:hx}});var ua=b(($q,hy)=>{"use strict";var{webidl:Y}=Me(),{kEnumerableProperty:Ke}=Z(),{kConstruct:gy}=le(),Fn=class t extends Event{#e;constructor(e,A={}){if(e===gy){super(arguments[1],arguments[2]),Y.util.markAsUncloneable(this);return}let r="MessageEvent constructor";Y.argumentLengthCheck(arguments,1,r),e=Y.converters.DOMString(e,r,"type"),A=Y.converters.MessageEventInit(A,r,"eventInitDict"),super(e,A),this.#e=A,Y.util.markAsUncloneable(this)}get data(){return Y.brandCheck(this,t),this.#e.data}get origin(){return Y.brandCheck(this,t),this.#e.origin}get lastEventId(){return Y.brandCheck(this,t),this.#e.lastEventId}get source(){return Y.brandCheck(this,t),this.#e.source}get ports(){return Y.brandCheck(this,t),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(e,A=!1,r=!1,n=null,s="",o="",i=null,a=[]){return Y.brandCheck(this,t),Y.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new t(e,{bubbles:A,cancelable:r,data:n,origin:s,lastEventId:o,source:i,ports:a})}static createFastMessageEvent(e,A){let r=new t(gy,e,A);return r.#e=A,r.#e.data??=null,r.#e.origin??="",r.#e.lastEventId??="",r.#e.source??=null,r.#e.ports??=[],r}},{createFastMessageEvent:dx}=Fn;delete Fn.createFastMessageEvent;var la=class t extends Event{#e;constructor(e,A={}){let r="CloseEvent constructor";Y.argumentLengthCheck(arguments,1,r),e=Y.converters.DOMString(e,r,"type"),A=Y.converters.CloseEventInit(A),super(e,A),this.#e=A,Y.util.markAsUncloneable(this)}get wasClean(){return Y.brandCheck(this,t),this.#e.wasClean}get code(){return Y.brandCheck(this,t),this.#e.code}get reason(){return Y.brandCheck(this,t),this.#e.reason}},ca=class t extends Event{#e;constructor(e,A){let r="ErrorEvent constructor";Y.argumentLengthCheck(arguments,1,r),super(e,A),Y.util.markAsUncloneable(this),e=Y.converters.DOMString(e,r,"type"),A=Y.converters.ErrorEventInit(A??{}),this.#e=A}get message(){return Y.brandCheck(this,t),this.#e.message}get filename(){return Y.brandCheck(this,t),this.#e.filename}get lineno(){return Y.brandCheck(this,t),this.#e.lineno}get colno(){return Y.brandCheck(this,t),this.#e.colno}get error(){return Y.brandCheck(this,t),this.#e.error}};Object.defineProperties(Fn.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:Ke,origin:Ke,lastEventId:Ke,source:Ke,ports:Ke,initMessageEvent:Ke});Object.defineProperties(la.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:Ke,code:Ke,wasClean:Ke});Object.defineProperties(ca.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:Ke,filename:Ke,lineno:Ke,colno:Ke,error:Ke});Y.converters.MessagePort=Y.interfaceConverter(Y.is.MessagePort,"MessagePort");Y.converters["sequence<MessagePort>"]=Y.sequenceConverter(Y.converters.MessagePort);var Ah=[{key:"bubbles",converter:Y.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:Y.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:Y.converters.boolean,defaultValue:()=>!1}];Y.converters.MessageEventInit=Y.dictionaryConverter([...Ah,{key:"data",converter:Y.converters.any,defaultValue:()=>null},{key:"origin",converter:Y.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:Y.converters.DOMString,defaultValue:()=>""},{key:"source",converter:Y.nullableConverter(Y.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:Y.converters["sequence<MessagePort>"],defaultValue:()=>[]}]);Y.converters.CloseEventInit=Y.dictionaryConverter([...Ah,{key:"wasClean",converter:Y.converters.boolean,defaultValue:()=>!1},{key:"code",converter:Y.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:Y.converters.USVString,defaultValue:()=>""}]);Y.converters.ErrorEventInit=Y.dictionaryConverter([...Ah,{key:"message",converter:Y.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:Y.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:Y.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:Y.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:Y.converters.any}]);hy.exports={MessageEvent:Fn,CloseEvent:la,ErrorEvent:ca,createFastMessageEvent:dx}});var WA=b((e1,dy)=>{"use strict";var Ex="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",fx={enumerable:!0,writable:!1,configurable:!1},Ix={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},Cx={SENT:1,RECEIVED:2},Qx={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},Bx=65535,px={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},yx=Buffer.allocUnsafe(0),mx={text:1,typedArray:2,arrayBuffer:3,blob:4};dy.exports={uid:Ex,sentCloseFrameState:Cx,staticPropertyDescriptors:fx,states:Ix,opcodes:Qx,maxUnsigned16Bit:Bx,parserStates:px,emptyBuffer:yx,sendHints:mx}});var Gr=b((t1,Qy)=>{"use strict";var{states:ga,opcodes:Un}=WA(),{isUtf8:Sx}=require("node:buffer"),{removeHTTPWhitespace:Ey}=Bt(),{collectASequenceOfCodePointsFast:Dx}=oA();function wx(t){return t===ga.CONNECTING}function Rx(t){return t===ga.OPEN}function bx(t){return t===ga.CLOSING}function Nx(t){return t===ga.CLOSED}function kx(t,e,A=(n,s)=>new Event(n,s),r={}){let n=A(t,r);e.dispatchEvent(n)}function Fx(t,e,A){t.onMessage(e,A)}function Ux(t){return t.byteLength===t.buffer.byteLength?t.buffer:new Uint8Array(t).buffer}function Mx(t){if(t.length===0)return!1;for(let e=0;e<t.length;++e){let A=t.charCodeAt(e);if(A<33||A>126||A===34||A===40||A===41||A===44||A===47||A===58||A===59||A===60||A===61||A===62||A===63||A===64||A===91||A===92||A===93||A===123||A===125)return!1}return!0}function vx(t){return t>=1e3&&t<1015?t!==1004&&t!==1005&&t!==1006:t>=3e3&&t<=4999}function fy(t){return t===Un.CLOSE||t===Un.PING||t===Un.PONG}function Iy(t){return t===Un.CONTINUATION}function Cy(t){return t===Un.TEXT||t===Un.BINARY}function Tx(t){return Cy(t)||Iy(t)||fy(t)}function Lx(t){let e={position:0},A=new Map;for(;e.position<t.length;){let r=Dx(";",t,e),[n,s=""]=r.split("=",2);A.set(Ey(n,!0,!1),Ey(s,!1,!0)),e.position++}return A}function xx(t){if(t.length===0)return!1;for(let A=0;A<t.length;A++){let r=t.charCodeAt(A);if(r<48||r>57)return!1}let e=Number.parseInt(t,10);return e>=8&&e<=15}function Hx(t,e){let A;try{A=new URL(t,e)}catch(r){throw new DOMException(r,"SyntaxError")}if(A.protocol==="http:"?A.protocol="ws:":A.protocol==="https:"&&(A.protocol="wss:"),A.protocol!=="ws:"&&A.protocol!=="wss:")throw new DOMException("expected a ws: or wss: url","SyntaxError");if(A.hash.length||A.href.endsWith("#"))throw new DOMException("hash","SyntaxError");return A}function Yx(t,e){if(t!==null&&t!==1e3&&(t<3e3||t>4999))throw new DOMException("invalid code","InvalidAccessError");if(e!==null){let A=Buffer.byteLength(e);if(A>123)throw new DOMException(`Reason must be less than 123 bytes; received ${A}`,"SyntaxError")}}var Ox=(()=>{if(typeof process.versions.icu=="string"){let t=new TextDecoder("utf-8",{fatal:!0});return t.decode.bind(t)}return function(t){if(Sx(t))return t.toString("utf-8");throw new TypeError("Invalid utf-8 received.")}})();Qy.exports={isConnecting:wx,isEstablished:Rx,isClosing:bx,isClosed:Nx,fireEvent:kx,isValidSubprotocol:Mx,isValidStatusCode:vx,websocketMessageReceived:Fx,utf8Decode:Ox,isControlFrame:fy,isContinuationFrame:Iy,isTextBinaryFrame:Cy,isValidOpcode:Tx,parseExtensions:Lx,isValidClientWindowBits:xx,toArrayBuffer:Ux,getURLRecord:Hx,validateCloseCodeAndReason:Yx}});var vn=b((A1,py)=>{"use strict";var{runtimeFeatures:Gx}=iA(),{maxUnsigned16Bit:By,opcodes:Vx}=WA(),ha=8*1024,ao=null,Mn=ha,qx=Gx.has("crypto")?require("node:crypto").randomFillSync:function(e,A,r){for(let n=0;n<e.length;++n)e[n]=Math.random()*255|0;return e};function rh(){return Mn===ha&&(Mn=0,qx(ao??=Buffer.allocUnsafeSlow(ha),0,ha)),[ao[Mn++],ao[Mn++],ao[Mn++],ao[Mn++]]}var nh=class{constructor(e){this.frameData=e}createFrame(e){let A=this.frameData,r=rh(),n=A?.byteLength??0,s=n,o=6;n>By?(o+=8,s=127):n>125&&(o+=2,s=126);let i=Buffer.allocUnsafe(n+o);i[0]=i[1]=0,i[0]|=128,i[0]=(i[0]&240)+e;i[o-4]=r[0],i[o-3]=r[1],i[o-2]=r[2],i[o-1]=r[3],i[1]=s,s===126?i.writeUInt16BE(n,2):s===127&&(i[2]=i[3]=0,i.writeUIntBE(n,4,6)),i[1]|=128;for(let a=0;a<n;++a)i[o+a]=A[a]^r[a&3];return i}static createFastTextFrame(e){let A=rh(),r=e.length;for(let i=0;i<r;++i)e[i]^=A[i&3];let n=r,s=6;r>By?(s+=8,n=127):r>125&&(s+=2,n=126);let o=Buffer.allocUnsafeSlow(s);return o[0]=128|Vx.TEXT,o[1]=n|128,o[s-4]=A[0],o[s-3]=A[1],o[s-2]=A[2],o[s-1]=A[3],n===126?o.writeUInt16BE(r,2):n===127&&(o[2]=o[3]=0,o.writeUIntBE(r,4,6)),[o,e]}};py.exports={WebsocketFrameSend:nh,generateMask:rh}});var da=b((r1,Ry)=>{"use strict";var{uid:Jx,states:sh,sentCloseFrameState:oh,emptyBuffer:yy,opcodes:Px}=WA(),{parseExtensions:Wx,isClosed:_x,isClosing:jx,isEstablished:Dy,isConnecting:Zx,validateCloseCodeAndReason:Xx}=Gr(),{makeRequest:Kx}=bn(),{fetching:zx}=no(),{Headers:$x,getHeadersList:eH}=Lr(),{getDecodeSplit:tH}=st(),{WebsocketFrameSend:AH}=vn(),rH=require("node:assert"),{runtimeFeatures:nH}=iA(),my=nH.has("crypto")?require("node:crypto"):null,Sy=!1;function sH(t,e,A,r,n){let s=t;s.protocol=t.protocol==="ws:"?"http:":"https:";let o=Kx({urlList:[s],client:A,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error",useURLCredentials:!0});if(n.headers){let c=eH(new $x(n.headers));o.headersList=c}let i=my.randomBytes(16).toString("base64");o.headersList.append("sec-websocket-key",i,!0),o.headersList.append("sec-websocket-version","13",!0);for(let c of e)o.headersList.append("sec-websocket-protocol",c,!0);return o.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits",!0),zx({request:o,useParallelQueue:!0,dispatcher:n.dispatcher,processResponse(c){if(c.type==="error"||c.status!==101){if(c.socket?.session==null){zt(r,1002,"Received network error or non-101 status code.",c.error);return}if(c.status!==200){zt(r,1002,"Received network error or non-200 status code.",c.error);return}}if(Sy===!1&&c.socket?.session!=null&&(process.emitWarning("WebSocket over HTTP2 is experimental, and subject to change.","ExperimentalWarning"),Sy=!0),e.length!==0&&!c.headersList.get("Sec-WebSocket-Protocol")){zt(r,1002,"Server did not respond with sent protocols.");return}if(c.socket.session==null&&c.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){zt(r,1002,'Server did not set Upgrade header to "websocket".');return}if(c.socket.session==null&&c.headersList.get("Connection")?.toLowerCase()!=="upgrade"){zt(r,1002,'Server did not set Connection header to "upgrade".');return}let f=c.headersList.get("Sec-WebSocket-Accept"),d=my.hash("sha1",i+Jx,"base64");if(f!==d){zt(r,1002,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let g=c.headersList.get("Sec-WebSocket-Extensions"),I;if(g!==null&&(I=Wx(g),!I.has("permessage-deflate"))){zt(r,1002,"Sec-WebSocket-Extensions header does not match.");return}let S=c.headersList.get("Sec-WebSocket-Protocol");if(S!==null&&!tH("sec-websocket-protocol",o.headersList).includes(S)){zt(r,1002,"Protocol was not set in the opening handshake.");return}c.socket.on("data",r.onSocketData),c.socket.on("close",r.onSocketClose),c.socket.on("error",r.onSocketError),r.wasEverConnected=!0,r.onConnectionEstablished(c,I)}})}function wy(t,e,A,r=!1){if(e??=null,A??="",r&&Xx(e,A),!(_x(t.readyState)||jx(t.readyState)))if(!Dy(t.readyState))zt(t),t.readyState=sh.CLOSING;else if(!t.closeState.has(oh.SENT)&&!t.closeState.has(oh.RECEIVED)){let n=new AH;A.length!==0&&e===null&&(e=1e3),rH(e===null||Number.isInteger(e)),e===null&&A.length===0?n.frameData=yy:e!==null&&A===null?(n.frameData=Buffer.allocUnsafe(2),n.frameData.writeUInt16BE(e,0)):e!==null&&A!==null?(n.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(A)),n.frameData.writeUInt16BE(e,0),n.frameData.write(A,2,"utf-8")):n.frameData=yy,t.socket.write(n.createFrame(Px.CLOSE)),t.closeState.add(oh.SENT),t.readyState=sh.CLOSING}else t.readyState=sh.CLOSING}function zt(t,e,A,r){Dy(t.readyState)&&wy(t,e,A,!1),t.controller.abort(),Zx(t.readyState)?t.onSocketClose():t.socket?.destroyed===!1&&t.socket.destroy()}Ry.exports={establishWebSocketConnection:sH,failWebsocketConnection:zt,closeWebSocketConnection:wy}});var ky=b((n1,Ny)=>{"use strict";var{createInflateRaw:oH,Z_DEFAULT_WINDOWBITS:iH}=require("node:zlib"),{isValidClientWindowBits:aH}=Gr(),{MessageSizeExceededError:by}=W(),lH=Buffer.from([0,0,255,255]),Ea=Symbol("kBuffer"),lo=Symbol("kLength"),cH=4*1024*1024,ih=class{#e;#t={};#A=!1;#r=null;constructor(e){this.#t.serverNoContextTakeover=e.has("server_no_context_takeover"),this.#t.serverMaxWindowBits=e.get("server_max_window_bits")}decompress(e,A,r){if(this.#A){r(new by);return}if(!this.#e){let n=iH;if(this.#t.serverMaxWindowBits){if(!aH(this.#t.serverMaxWindowBits)){r(new Error("Invalid server_max_window_bits"));return}n=Number.parseInt(this.#t.serverMaxWindowBits)}try{this.#e=oH({windowBits:n})}catch(s){r(s);return}this.#e[Ea]=[],this.#e[lo]=0,this.#e.on("data",s=>{if(!this.#A){if(this.#e[lo]+=s.length,this.#e[lo]>cH){if(this.#A=!0,this.#e.removeAllListeners(),this.#e.destroy(),this.#e=null,this.#r){let o=this.#r;this.#r=null,o(new by)}return}this.#e[Ea].push(s)}}),this.#e.on("error",s=>{this.#e=null,r(s)})}this.#r=r,this.#e.write(e),A&&this.#e.write(lH),this.#e.flush(()=>{if(this.#A||!this.#e)return;let n=Buffer.concat(this.#e[Ea],this.#e[lo]);this.#e[Ea].length=0,this.#e[lo]=0,this.#r=null,r(null,n)})}};Ny.exports={PerMessageDeflate:ih}});var ch=b((s1,Ty)=>{"use strict";var{Writable:uH}=require("node:stream"),gH=require("node:assert"),{parserStates:ze,opcodes:Tn,states:hH,emptyBuffer:Fy,sentCloseFrameState:co}=WA(),{isValidStatusCode:dH,isValidOpcode:EH,websocketMessageReceived:Uy,utf8Decode:fH,isControlFrame:My,isTextBinaryFrame:ah,isContinuationFrame:IH}=Gr(),{failWebsocketConnection:dt}=da(),{WebsocketFrameSend:vy}=vn(),{PerMessageDeflate:CH}=ky(),{MessageSizeExceededError:QH}=W(),lh=class extends uH{#e=[];#t=0;#A=0;#r=!1;#s=ze.INFO;#n={};#a=[];#o;#i;constructor(e,A){super(),this.#i=e,this.#o=A??new Map,this.#o.has("permessage-deflate")&&this.#o.set("permessage-deflate",new CH(A))}_write(e,A,r){this.#e.push(e),this.#A+=e.length,this.#r=!0,this.run(r)}run(e){for(;this.#r;)if(this.#s===ze.INFO){if(this.#A<2)return e();let A=this.consume(2),r=(A[0]&128)!==0,n=A[0]&15,s=(A[1]&128)===128,o=!r&&n!==Tn.CONTINUATION,i=A[1]&127,a=A[0]&64,l=A[0]&32,c=A[0]&16;if(!EH(n))return dt(this.#i,1002,"Invalid opcode received"),e();if(s)return dt(this.#i,1002,"Frame cannot be masked"),e();if(a!==0&&!this.#o.has("permessage-deflate")){dt(this.#i,1002,"Expected RSV1 to be clear.");return}if(l!==0||c!==0){dt(this.#i,1002,"RSV1, RSV2, RSV3 must be clear");return}if(o&&!ah(n)){dt(this.#i,1002,"Invalid frame type was fragmented.");return}if(ah(n)&&this.#a.length>0){dt(this.#i,1002,"Expected continuation frame");return}if(this.#n.fragmented&&o){dt(this.#i,1002,"Fragmented frame exceeded 125 bytes.");return}if((i>125||o)&&My(n)){dt(this.#i,1002,"Control frame either too large or fragmented");return}if(IH(n)&&this.#a.length===0&&!this.#n.compressed){dt(this.#i,1002,"Unexpected continuation frame");return}i<=125?(this.#n.payloadLength=i,this.#s=ze.READ_DATA):i===126?this.#s=ze.PAYLOADLENGTH_16:i===127&&(this.#s=ze.PAYLOADLENGTH_64),ah(n)&&(this.#n.binaryType=n,this.#n.compressed=a!==0),this.#n.opcode=n,this.#n.masked=s,this.#n.fin=r,this.#n.fragmented=o}else if(this.#s===ze.PAYLOADLENGTH_16){if(this.#A<2)return e();let A=this.consume(2);this.#n.payloadLength=A.readUInt16BE(0),this.#s=ze.READ_DATA}else if(this.#s===ze.PAYLOADLENGTH_64){if(this.#A<8)return e();let A=this.consume(8),r=A.readUInt32BE(0),n=A.readUInt32BE(4);if(r!==0||n>2**31-1){dt(this.#i,1009,"Received payload length > 2^31 bytes.");return}this.#n.payloadLength=n,this.#s=ze.READ_DATA}else if(this.#s===ze.READ_DATA){if(this.#A<this.#n.payloadLength)return e();let A=this.consume(this.#n.payloadLength);if(My(this.#n.opcode))this.#r=this.parseControlFrame(A),this.#s=ze.INFO;else if(!this.#n.compressed)this.writeFragments(A),!this.#n.fragmented&&this.#n.fin&&Uy(this.#i,this.#n.binaryType,this.consumeFragments()),this.#s=ze.INFO;else{this.#o.get("permessage-deflate").decompress(A,this.#n.fin,(r,n)=>{if(r){let s=r instanceof QH?1009:1007;dt(this.#i,s,r.message);return}if(this.writeFragments(n),!this.#n.fin){this.#s=ze.INFO,this.#r=!0,this.run(e);return}Uy(this.#i,this.#n.binaryType,this.consumeFragments()),this.#r=!0,this.#s=ze.INFO,this.run(e)}),this.#r=!1;break}}}consume(e){if(e>this.#A)throw new Error("Called consume() before buffers satiated.");if(e===0)return Fy;this.#A-=e;let A=this.#e[0];if(A.length>e)return this.#e[0]=A.subarray(e,A.length),A.subarray(0,e);if(A.length===e)return this.#e.shift();{let r=0,n=Buffer.allocUnsafeSlow(e);for(;r!==e;){let s=this.#e[0],o=s.length;if(o+r===e){n.set(this.#e.shift(),r);break}else if(o+r>e){n.set(s.subarray(0,e-r),r),this.#e[0]=s.subarray(e-r);break}else n.set(this.#e.shift(),r),r+=o}return n}}writeFragments(e){this.#t+=e.length,this.#a.push(e)}consumeFragments(){let e=this.#a;if(e.length===1)return this.#t=0,e.shift();let A=0,r=Buffer.allocUnsafeSlow(this.#t);for(let n=0;n<e.length;++n){let s=e[n];r.set(s,A),A+=s.length}return this.#a=[],this.#t=0,r}parseCloseBody(e){gH(e.length!==1);let A;if(e.length>=2&&(A=e.readUInt16BE(0)),A!==void 0&&!dH(A))return{code:1002,reason:"Invalid status code",error:!0};let r=e.subarray(2);r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3));try{r=fH(r)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:A,reason:r,error:!1}}parseControlFrame(e){let{opcode:A,payloadLength:r}=this.#n;if(A===Tn.CLOSE){if(r===1)return dt(this.#i,1002,"Received close frame with a 1-byte body."),!1;if(this.#n.closeInfo=this.parseCloseBody(e),this.#n.closeInfo.error){let{code:n,reason:s}=this.#n.closeInfo;return dt(this.#i,n,s),!1}if(!this.#i.closeState.has(co.SENT)&&!this.#i.closeState.has(co.RECEIVED)){let n=Fy;this.#n.closeInfo.code&&(n=Buffer.allocUnsafe(2),n.writeUInt16BE(this.#n.closeInfo.code,0));let s=new vy(n);this.#i.socket.write(s.createFrame(Tn.CLOSE)),this.#i.closeState.add(co.SENT)}return this.#i.readyState=hH.CLOSING,this.#i.closeState.add(co.RECEIVED),!1}else if(A===Tn.PING){if(!this.#i.closeState.has(co.RECEIVED)){let n=new vy(e);this.#i.socket.write(n.createFrame(Tn.PONG)),this.#i.onPing(e)}}else A===Tn.PONG&&this.#i.onPong(e);return!0}get closingInfo(){return this.#n.closeInfo}};Ty.exports={ByteParser:lh}});var Yy=b((o1,Hy)=>{"use strict";var{WebsocketFrameSend:xy}=vn(),{opcodes:Ly,sendHints:Vr}=WA(),BH=Vc(),gh=class{#e=new BH;#t=!1;#A;constructor(e){this.#A=e}add(e,A,r){if(r!==Vr.blob){if(this.#t){let s={promise:null,callback:A,frame:uh(e,r)};this.#e.push(s)}else if(r===Vr.text){let{0:s,1:o}=xy.createFastTextFrame(e);this.#A.cork(),this.#A.write(s),this.#A.write(o,A),this.#A.uncork()}else this.#A.write(uh(e,r),A);return}let n={promise:e.arrayBuffer().then(s=>{n.promise=null,n.frame=uh(s,r)}),callback:A,frame:null};this.#e.push(n),this.#t||this.#r()}async#r(){this.#t=!0;let e=this.#e;for(;!e.isEmpty();){let A=e.shift();A.promise!==null&&await A.promise,this.#A.write(A.frame,A.callback),A.callback=A.frame=null}this.#t=!1}};function uh(t,e){return new xy(pH(t,e)).createFrame(e===Vr.text?Ly.TEXT:Ly.BINARY)}function pH(t,e){switch(e){case Vr.text:case Vr.typedArray:return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);case Vr.arrayBuffer:case Vr.blob:return new Uint8Array(t)}}Hy.exports={SendQueue:gh}});var Py=b((i1,Jy)=>{"use strict";var{isArrayBuffer:yH}=require("node:util/types"),{webidl:O}=Me(),{URLSerializer:mH}=Bt(),{environmentSettingsObject:Oy}=st(),{staticPropertyDescriptors:_A,states:IA,sentCloseFrameState:hh,sendHints:fa,opcodes:dh}=WA(),{isConnecting:SH,isEstablished:Gy,isClosing:Vy,isClosed:DH,isValidSubprotocol:wH,fireEvent:Ia,utf8Decode:RH,toArrayBuffer:bH,getURLRecord:NH}=Gr(),{establishWebSocketConnection:kH,closeWebSocketConnection:FH,failWebsocketConnection:qy}=da(),{ByteParser:UH}=ch(),{kEnumerableProperty:Nt}=Z(),{getGlobalDispatcher:MH}=Ti(),{ErrorEvent:vH,CloseEvent:TH,createFastMessageEvent:LH}=ua(),{SendQueue:xH}=Yy(),{WebsocketFrameSend:HH}=vn(),{channels:$t}=DA();function YH(t){return typeof t?.address=="function"?t.address():typeof t?.session?.socket?.address=="function"?t.session.socket.address():null}var Ve=class t extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#A="";#r="";#s;#n={onConnectionEstablished:(e,A)=>this.#l(e,A),onMessage:(e,A)=>this.#g(e,A),onParserError:e=>qy(this.#n,null,e.message),onParserDrain:()=>this.#c(),onSocketData:e=>{this.#i.write(e)||this.#n.socket.pause()},onSocketError:e=>{this.#n.readyState=IA.CLOSING,$t.socketError.hasSubscribers&&$t.socketError.publish(e),this.#n.socket.destroy()},onSocketClose:()=>this.#u(),onPing:e=>{$t.ping.hasSubscribers&&$t.ping.publish({payload:e,websocket:this})},onPong:e=>{$t.pong.hasSubscribers&&$t.pong.publish({payload:e,websocket:this})},readyState:IA.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#a;#o;#i;constructor(e,A=[]){super(),O.util.markAsUncloneable(this);let r="WebSocket constructor";O.argumentLengthCheck(arguments,1,r);let n=O.converters["DOMString or sequence<DOMString> or WebSocketInit"](A,r,"options");e=O.converters.USVString(e),A=n.protocols;let s=Oy.settingsObject.baseUrl,o=NH(e,s);if(typeof A=="string"&&(A=[A]),A.length!==new Set(A.map(a=>a.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(A.length>0&&!A.every(a=>wH(a)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this.#a=new URL(o.href);let i=Oy.settingsObject;this.#n.controller=kH(o,A,i,this.#n,n),this.#n.readyState=t.CONNECTING,this.#o="blob"}close(e=void 0,A=void 0){O.brandCheck(this,t),e!==void 0&&(e=O.converters["unsigned short"](e,"WebSocket.close","code",O.attributes.Clamp)),A!==void 0&&(A=O.converters.USVString(A)),e??=null,A??="",FH(this.#n,e,A,!0)}send(e){O.brandCheck(this,t);let A="WebSocket.send";if(O.argumentLengthCheck(arguments,1,A),e=O.converters.WebSocketSendData(e,A,"data"),SH(this.#n.readyState))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!Gy(this.#n.readyState)||Vy(this.#n.readyState)))if(typeof e=="string"){let r=Buffer.from(e);this.#t+=r.byteLength,this.#s.add(r,()=>{this.#t-=r.byteLength},fa.text)}else yH(e)?(this.#t+=e.byteLength,this.#s.add(e,()=>{this.#t-=e.byteLength},fa.arrayBuffer)):ArrayBuffer.isView(e)?(this.#t+=e.byteLength,this.#s.add(e,()=>{this.#t-=e.byteLength},fa.typedArray)):O.is.Blob(e)&&(this.#t+=e.size,this.#s.add(e,()=>{this.#t-=e.size},fa.blob))}get readyState(){return O.brandCheck(this,t),this.#n.readyState}get bufferedAmount(){return O.brandCheck(this,t),this.#t}get url(){return O.brandCheck(this,t),mH(this.#a)}get extensions(){return O.brandCheck(this,t),this.#r}get protocol(){return O.brandCheck(this,t),this.#A}get onopen(){return O.brandCheck(this,t),this.#e.open}set onopen(e){O.brandCheck(this,t),this.#e.open&&this.removeEventListener("open",this.#e.open);let A=O.converters.EventHandlerNonNull(e);A!==null?(this.addEventListener("open",A),this.#e.open=e):this.#e.open=null}get onerror(){return O.brandCheck(this,t),this.#e.error}set onerror(e){O.brandCheck(this,t),this.#e.error&&this.removeEventListener("error",this.#e.error);let A=O.converters.EventHandlerNonNull(e);A!==null?(this.addEventListener("error",A),this.#e.error=e):this.#e.error=null}get onclose(){return O.brandCheck(this,t),this.#e.close}set onclose(e){O.brandCheck(this,t),this.#e.close&&this.removeEventListener("close",this.#e.close);let A=O.converters.EventHandlerNonNull(e);A!==null?(this.addEventListener("close",A),this.#e.close=e):this.#e.close=null}get onmessage(){return O.brandCheck(this,t),this.#e.message}set onmessage(e){O.brandCheck(this,t),this.#e.message&&this.removeEventListener("message",this.#e.message);let A=O.converters.EventHandlerNonNull(e);A!==null?(this.addEventListener("message",A),this.#e.message=e):this.#e.message=null}get binaryType(){return O.brandCheck(this,t),this.#o}set binaryType(e){O.brandCheck(this,t),e!=="blob"&&e!=="arraybuffer"?this.#o="blob":this.#o=e}#l(e,A){this.#n.socket=e.socket;let r=new UH(this.#n,A);r.on("drain",()=>this.#n.onParserDrain()),r.on("error",o=>this.#n.onParserError(o)),this.#i=r,this.#s=new xH(e.socket),this.#n.readyState=IA.OPEN;let n=e.headersList.get("sec-websocket-extensions");n!==null&&(this.#r=n);let s=e.headersList.get("sec-websocket-protocol");if(s!==null&&(this.#A=s),Ia("open",this),$t.open.hasSubscribers){let o=e.headersList.entries;$t.open.publish({address:YH(e.socket),protocol:this.#A,extensions:this.#r,websocket:this,handshakeResponse:{status:e.status,statusText:e.statusText,headers:o}})}}#g(e,A){if(this.#n.readyState!==IA.OPEN)return;let r;if(e===dh.TEXT)try{r=RH(A)}catch{qy(this.#n,1007,"Received invalid UTF-8 in text frame.");return}else e===dh.BINARY&&(this.#o==="blob"?r=new Blob([A]):r=bH(A));Ia("message",this,LH,{origin:this.#a.origin,data:r})}#c(){this.#n.socket.resume()}#u(){let e=this.#n.closeState.has(hh.SENT)&&this.#n.closeState.has(hh.RECEIVED),A=1005,r="",n=this.#i?.closingInfo;n&&!n.error&&(A=n.code??1005,r=n.reason),this.#n.readyState=IA.CLOSED,this.#n.closeState.has(hh.RECEIVED)||(A=1006,Ia("error",this,(s,o)=>new vH(s,o),{error:new TypeError(r)})),Ia("close",this,(s,o)=>new TH(s,o),{wasClean:e,code:A,reason:r}),$t.close.hasSubscribers&&$t.close.publish({websocket:this,code:A,reason:r})}static ping(e,A){if(Buffer.isBuffer(A)){if(A.length>125)throw new TypeError("A PING frame cannot have a body larger than 125 bytes.")}else if(A!==void 0)throw new TypeError("Expected buffer payload");let r=e.#n.readyState;if(Gy(r)&&!Vy(r)&&!DH(r)){let n=new HH(A);e.#n.socket.write(n.createFrame(dh.PING))}}},{ping:OH}=Ve;Reflect.deleteProperty(Ve,"ping");Ve.CONNECTING=Ve.prototype.CONNECTING=IA.CONNECTING;Ve.OPEN=Ve.prototype.OPEN=IA.OPEN;Ve.CLOSING=Ve.prototype.CLOSING=IA.CLOSING;Ve.CLOSED=Ve.prototype.CLOSED=IA.CLOSED;Object.defineProperties(Ve.prototype,{CONNECTING:_A,OPEN:_A,CLOSING:_A,CLOSED:_A,url:Nt,readyState:Nt,bufferedAmount:Nt,onopen:Nt,onerror:Nt,onclose:Nt,close:Nt,onmessage:Nt,binaryType:Nt,send:Nt,extensions:Nt,protocol:Nt,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(Ve,{CONNECTING:_A,OPEN:_A,CLOSING:_A,CLOSED:_A});O.converters["sequence<DOMString>"]=O.sequenceConverter(O.converters.DOMString);O.converters["DOMString or sequence<DOMString>"]=function(t,e,A){return O.util.Type(t)===O.util.Types.OBJECT&&Symbol.iterator in t?O.converters["sequence<DOMString>"](t):O.converters.DOMString(t,e,A)};O.converters.WebSocketInit=O.dictionaryConverter([{key:"protocols",converter:O.converters["DOMString or sequence<DOMString>"],defaultValue:()=>[]},{key:"dispatcher",converter:O.converters.any,defaultValue:()=>MH()},{key:"headers",converter:O.nullableConverter(O.converters.HeadersInit)}]);O.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(t){return O.util.Type(t)===O.util.Types.OBJECT&&!(Symbol.iterator in t)?O.converters.WebSocketInit(t):{protocols:O.converters["DOMString or sequence<DOMString>"](t)}};O.converters.WebSocketSendData=function(t){return O.util.Type(t)===O.util.Types.OBJECT&&(O.is.Blob(t)||O.is.BufferSource(t))?t:O.converters.USVString(t)};Jy.exports={WebSocket:Ve,ping:OH}});var Eh=b((a1,jy)=>{"use strict";var{webidl:Ca}=Me(),{validateCloseCodeAndReason:GH}=Gr(),{kConstruct:Wy}=le(),{kEnumerableProperty:_y}=Z();function VH(){class t extends DOMException{get reason(){return""}}return new t().reason!==void 0?DOMException:new Proxy(DOMException,{construct(e,A,r){let n=Reflect.construct(e,A,e);return Object.setPrototypeOf(n,r.prototype),n}})}var qr=class t extends VH(){#e;#t;constructor(e="",A=void 0){if(e=Ca.converters.DOMString(e,"WebSocketError","message"),super(e,"WebSocketError"),A===Wy)return;A!==null&&(A=Ca.converters.WebSocketCloseInfo(A));let r=A.closeCode??null,n=A.reason??"";GH(r,n),n.length!==0&&r===null&&(r=1e3),this.#e=r,this.#t=n}get closeCode(){return this.#e}get reason(){return this.#t}static createUnvalidatedWebSocketError(e,A,r){let n=new t(e,Wy);return n.#e=A,n.#t=r,n}},{createUnvalidatedWebSocketError:qH}=qr;delete qr.createUnvalidatedWebSocketError;Object.defineProperties(qr.prototype,{closeCode:_y,reason:_y,[Symbol.toStringTag]:{value:"WebSocketError",writable:!1,enumerable:!1,configurable:!0}});Ca.is.WebSocketError=Ca.util.MakeTypeAssertion(qr);jy.exports={WebSocketError:qr,createUnvalidatedWebSocketError:qH}});var $y=b((l1,zy)=>{"use strict";var{createDeferredPromise:fh}=Is(),{environmentSettingsObject:Zy}=st(),{states:Ln,opcodes:Qa,sentCloseFrameState:xn}=WA(),{webidl:Be}=Me(),{getURLRecord:JH,isValidSubprotocol:PH,isEstablished:WH,utf8Decode:_H}=Gr(),{establishWebSocketConnection:jH,failWebsocketConnection:Ih,closeWebSocketConnection:Ch}=da(),{channels:Xy}=DA(),{WebsocketFrameSend:ZH}=vn(),{ByteParser:XH}=ch(),{WebSocketError:KH,createUnvalidatedWebSocketError:zH}=Eh(),{kEnumerableProperty:Ba}=Z(),{utf8DecodeBytes:$H}=Vo(),Ky=!1,pa=class{#e;#t;#A;#r;#s;#n;#a=!1;#o={onConnectionEstablished:(e,A)=>this.#g(e,A),onMessage:(e,A)=>this.#c(e,A),onParserError:e=>Ih(this.#o,null,e.message),onParserDrain:()=>this.#o.socket.resume(),onSocketData:e=>{this.#i.write(e)||this.#o.socket.pause()},onSocketError:e=>{this.#o.readyState=Ln.CLOSING,Xy.socketError.hasSubscribers&&Xy.socketError.publish(e),this.#o.socket.destroy()},onSocketClose:()=>this.#u(),onPing:()=>{},onPong:()=>{},readyState:Ln.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#i;constructor(e,A=void 0){Ky||(process.emitWarning("WebSocketStream is experimental! Expect it to change at any time.",{code:"UNDICI-WSS"}),Ky=!0),Be.argumentLengthCheck(arguments,1,"WebSocket"),e=Be.converters.USVString(e),A!==null&&(A=Be.converters.WebSocketStreamOptions(A));let r=Zy.settingsObject.baseUrl,n=JH(e,r),s=A.protocols;if(s.length!==new Set(s.map(i=>i.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(s.length>0&&!s.every(i=>PH(i)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(this.#e=n.toString(),this.#t=fh(),this.#A=fh(),A.signal!=null){let i=A.signal;if(i.aborted){this.#t.reject(i.reason),this.#A.reject(i.reason);return}i.addEventListener("abort",()=>{WH(this.#o.readyState)||(Ih(this.#o),this.#o.readyState=Ln.CLOSING,this.#t.reject(i.reason),this.#A.reject(i.reason),this.#a=!0)},{once:!0})}let o=Zy.settingsObject;this.#o.controller=jH(n,s,o,this.#o,A)}get url(){return this.#e.toString()}get opened(){return this.#t.promise}get closed(){return this.#A.promise}close(e=void 0){e!==null&&(e=Be.converters.WebSocketCloseInfo(e));let A=e.closeCode??null,r=e.reason;Ch(this.#o,A,r,!0)}#l(e){e=Be.converters.WebSocketStreamWrite(e);let A=fh(),r=null,n=null;if(Be.is.BufferSource(e))r=new Uint8Array(ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e.slice()),n=Qa.BINARY;else{let s;try{s=Be.converters.DOMString(e)}catch(o){return A.reject(o),A.promise}r=new TextEncoder().encode(s),n=Qa.TEXT}if(!this.#o.closeState.has(xn.SENT)&&!this.#o.closeState.has(xn.RECEIVED)){let s=new ZH(r);this.#o.socket.write(s.createFrame(n),()=>{A.resolve(void 0)})}return A.promise}#g(e,A){this.#o.socket=e.socket;let r=new XH(this.#o,A);r.on("drain",()=>this.#o.onParserDrain()),r.on("error",a=>this.#o.onParserError(a)),this.#i=r,this.#o.readyState=Ln.OPEN;let n=A??"",s=e.headersList.get("sec-websocket-protocol")??"",o=new ReadableStream({start:a=>{this.#s=a},pull(a){let l;for(;a.desiredSize>0&&(l=e.socket.read())!==null;)a.enqueue(l)},cancel:a=>this.#d(a)}),i=new WritableStream({write:a=>this.#l(a),close:()=>Ch(this.#o,null,null),abort:a=>this.#h(a)});this.#r=o,this.#n=i,this.#t.resolve({extensions:n,protocol:s,readable:o,writable:i})}#c(e,A){if(this.#o.readyState!==Ln.OPEN)return;let r;if(e===Qa.TEXT)try{r=_H(A)}catch{Ih(this.#o,"Received invalid UTF-8 in text frame.");return}else e===Qa.BINARY&&(r=new Uint8Array(A.buffer,A.byteOffset,A.byteLength));this.#s.enqueue(r)}#u(){let e=this.#o.closeState.has(xn.SENT)&&this.#o.closeState.has(xn.RECEIVED);if(this.#o.readyState=Ln.CLOSED,this.#a)return;this.#o.wasEverConnected||this.#t.reject(new KH("Socket never opened"));let A=this.#i?.closingInfo,r=A?.code??1005;!this.#o.closeState.has(xn.SENT)&&!this.#o.closeState.has(xn.RECEIVED)&&(r=1006);let n=A?.reason==null?"":$H(Buffer.from(A.reason));if(e)this.#s.close(),this.#n.locked||this.#n.abort(new DOMException("A closed WebSocketStream cannot be written to","InvalidStateError")),this.#A.resolve({closeCode:r,reason:n});else{let s=zH("unclean close",r,n);this.#s?.error(s),this.#n?.abort(s),this.#A.reject(s)}}#h(e){let A=null,r="";Be.is.WebSocketError(e)&&(A=e.closeCode,r=e.reason),Ch(this.#o,A,r)}#d(e){this.#h(e)}};Object.defineProperties(pa.prototype,{url:Ba,opened:Ba,closed:Ba,close:Ba,[Symbol.toStringTag]:{value:"WebSocketStream",writable:!1,enumerable:!1,configurable:!0}});Be.converters.WebSocketStreamOptions=Be.dictionaryConverter([{key:"protocols",converter:Be.sequenceConverter(Be.converters.USVString),defaultValue:()=>[]},{key:"signal",converter:Be.nullableConverter(Be.converters.AbortSignal),defaultValue:()=>null}]);Be.converters.WebSocketCloseInfo=Be.dictionaryConverter([{key:"closeCode",converter:t=>Be.converters["unsigned short"](t,Be.attributes.EnforceRange)},{key:"reason",converter:Be.converters.USVString,defaultValue:()=>""}]);Be.converters.WebSocketStreamWrite=function(t){return typeof t=="string"?Be.converters.USVString(t):Be.converters.BufferSource(t)};zy.exports={WebSocketStream:pa}});var tm=b((c1,em)=>{"use strict";function e2(t){return t.indexOf("\0")===-1}function t2(t){if(t.length===0)return!1;for(let e=0;e<t.length;e++)if(t.charCodeAt(e)<48||t.charCodeAt(e)>57)return!1;return!0}em.exports={isValidLastEventId:e2,isASCIINumber:t2}});var sm=b((u1,nm)=>{"use strict";var{Transform:A2}=require("node:stream"),{isASCIINumber:Am,isValidLastEventId:rm}=tm(),CA=[239,187,191],Qh=10,ya=13,r2=58,n2=32,Bh=class extends A2{state;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(e={}){e.readableObjectMode=!0,super(e),this.state=e.eventSourceSettings||{},e.push&&(this.push=e.push)}_transform(e,A,r){if(e.length===0){r();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,e]):this.buffer=e,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===CA[0]){r();return}this.checkBOM=!1,r();return;case 2:if(this.buffer[0]===CA[0]&&this.buffer[1]===CA[1]){r();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===CA[0]&&this.buffer[1]===CA[1]&&this.buffer[2]===CA[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,r();return}this.checkBOM=!1;break;default:this.buffer[0]===CA[0]&&this.buffer[1]===CA[1]&&this.buffer[2]===CA[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]===Qh){this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.crlfCheck=!1;continue}this.crlfCheck=!1}if(this.buffer[this.pos]===Qh||this.buffer[this.pos]===ya){this.buffer[this.pos]===ya&&(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!==void 0||this.event.retry)&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(this.buffer[this.pos]===Qh||this.buffer[this.pos]===ya){this.buffer[this.pos]===ya&&(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(e,A){if(e.length===0)return;let r=e.indexOf(r2);if(r===0)return;let n="",s="";if(r!==-1){n=e.subarray(0,r).toString("utf8");let o=r+1;e[o]===n2&&++o,s=e.subarray(o).toString("utf8")}else n=e.toString("utf8"),s="";switch(n){case"data":A[n]===void 0?A[n]=s:A[n]+=`
128
+ ${s}`;break;case"retry":Am(s)&&(A[n]=s);break;case"id":rm(s)&&(A[n]=s);break;case"event":s.length>0&&(A[n]=s);break}}processEvent(e){e.retry&&Am(e.retry)&&(this.state.reconnectionTime=parseInt(e.retry,10)),e.id!==void 0&&rm(e.id)&&(this.state.lastEventId=e.id),e.data!==void 0&&this.push({type:e.event||"message",options:{data:e.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};nm.exports={EventSourceStream:Bh}});var hm=b((g1,gm)=>{"use strict";var{pipeline:s2}=require("node:stream"),{fetching:o2}=no(),{makeRequest:i2}=bn(),{webidl:qe}=Me(),{EventSourceStream:a2}=sm(),{parseMIMEType:l2}=Bt(),{createFastMessageEvent:c2}=ua(),{isNetworkError:om}=to(),{kEnumerableProperty:Jr}=Z(),{environmentSettingsObject:im}=st(),am=!1,lm=3e3,uo=0,cm=1,go=2,u2="anonymous",g2="use-credentials",Hn=class t extends EventTarget{#e={open:null,error:null,message:null};#t;#A=!1;#r=uo;#s=null;#n=null;#a;#o;constructor(e,A={}){super(),qe.util.markAsUncloneable(this);let r="EventSource constructor";qe.argumentLengthCheck(arguments,1,r),am||(am=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),e=qe.converters.USVString(e),A=qe.converters.EventSourceInitDict(A,r,"eventSourceInitDict"),this.#a=A.node.dispatcher||A.dispatcher,this.#o={lastEventId:"",reconnectionTime:A.node.reconnectionTime};let n=im,s;try{s=new URL(e,n.settingsObject.baseUrl),this.#o.origin=s.origin}catch(a){throw new DOMException(a,"SyntaxError")}this.#t=s.href;let o=u2;A.withCredentials===!0&&(o=g2,this.#A=!0);let i={redirect:"follow",keepalive:!0,mode:"cors",credentials:o==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};i.client=im.settingsObject,i.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],i.cache="no-store",i.initiator="other",i.urlList=[new URL(this.#t)],this.#s=i2(i),this.#i()}get readyState(){return this.#r}get url(){return this.#t}get withCredentials(){return this.#A}#i(){if(this.#r===go)return;this.#r=uo;let e={request:this.#s,dispatcher:this.#a},A=r=>{if(!om(r))return this.#l()};e.processResponseEndOfBody=A,e.processResponse=r=>{if(om(r))if(r.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#l();return}let n=r.headersList.get("content-type",!0),s=n!==null?l2(n):"failure",o=s!=="failure"&&s.essence==="text/event-stream";if(r.status!==200||o===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#r=cm,this.dispatchEvent(new Event("open")),this.#o.origin=r.urlList[r.urlList.length-1].origin;let i=new a2({eventSourceSettings:this.#o,push:a=>{this.dispatchEvent(c2(a.type,a.options))}});s2(r.body.stream,i,a=>{a?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#n=o2(e)}#l(){this.#r!==go&&(this.#r=uo,this.dispatchEvent(new Event("error")),setTimeout(()=>{this.#r===uo&&(this.#o.lastEventId.length&&this.#s.headersList.set("last-event-id",this.#o.lastEventId,!0),this.#i())},this.#o.reconnectionTime)?.unref())}close(){qe.brandCheck(this,t),this.#r!==go&&(this.#r=go,this.#n.abort(),this.#s=null)}get onopen(){return this.#e.open}set onopen(e){this.#e.open&&this.removeEventListener("open",this.#e.open);let A=qe.converters.EventHandlerNonNull(e);A!==null?(this.addEventListener("open",A),this.#e.open=e):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(e){this.#e.message&&this.removeEventListener("message",this.#e.message);let A=qe.converters.EventHandlerNonNull(e);A!==null?(this.addEventListener("message",A),this.#e.message=e):this.#e.message=null}get onerror(){return this.#e.error}set onerror(e){this.#e.error&&this.removeEventListener("error",this.#e.error);let A=qe.converters.EventHandlerNonNull(e);A!==null?(this.addEventListener("error",A),this.#e.error=e):this.#e.error=null}},um={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:uo,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:cm,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:go,writable:!1}};Object.defineProperties(Hn,um);Object.defineProperties(Hn.prototype,um);Object.defineProperties(Hn.prototype,{close:Jr,onerror:Jr,onmessage:Jr,onopen:Jr,readyState:Jr,url:Jr,withCredentials:Jr});qe.converters.EventSourceInitDict=qe.dictionaryConverter([{key:"withCredentials",converter:qe.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:qe.converters.any},{key:"node",converter:qe.dictionaryConverter([{key:"reconnectionTime",converter:qe.converters["unsigned long"],defaultValue:()=>lm},{key:"dispatcher",converter:qe.converters.any}]),defaultValue:()=>({})}]);gm.exports={EventSource:Hn,defaultReconnectionTime:lm}});var Qm=b((h1,v)=>{"use strict";var h2=TA(),Em=cs(),d2=yr(),E2=EI(),f2=QI(),I2=Dr(),C2=hu(),Q2=lu(),B2=AC(),p2=aC(),y2=uC(),fm=W(),Sa=Z(),{InvalidArgumentError:ma}=fm,Yn=WC(),m2=Er(),S2=zu(),{MockCallHistory:D2,MockCallHistoryLog:w2}=tg(),R2=cg(),b2=sg(),N2=PQ(),k2=Tu(),F2=Bi(),{getGlobalDispatcher:Im,setGlobalDispatcher:U2}=Ti(),M2=mn(),v2=Cg();Object.assign(Em.prototype,Yn);v.exports.Dispatcher=Em;v.exports.Client=h2;v.exports.Pool=d2;v.exports.BalancedPool=E2;v.exports.RoundRobinPool=f2;v.exports.Agent=I2;v.exports.ProxyAgent=C2;v.exports.Socks5ProxyAgent=Q2;v.exports.EnvHttpProxyAgent=B2;v.exports.RetryAgent=p2;v.exports.H2CClient=y2;v.exports.RetryHandler=F2;v.exports.DecoratorHandler=M2;v.exports.RedirectHandler=v2;v.exports.interceptors={redirect:AB(),responseError:nB(),retry:oB(),dump:aB(),dns:gB(),cache:NB(),decompress:vB(),deduplicate:YB()};v.exports.cacheStores={MemoryCacheStore:Rg()};var T2=VB();v.exports.cacheStores.SqliteCacheStore=T2;v.exports.buildConnector=m2;v.exports.errors=fm;v.exports.util={parseHeaders:Sa.parseHeaders,headerNameToString:Sa.headerNameToString};function ho(t){return(e,A,r)=>{if(typeof A=="function"&&(r=A,A=null),!e||typeof e!="string"&&typeof e!="object"&&!(e instanceof URL))throw new ma("invalid url");if(A!=null&&typeof A!="object")throw new ma("invalid opts");if(A&&A.path!=null){if(typeof A.path!="string")throw new ma("invalid opts.path");let o=A.path;A.path.startsWith("/")||(o=`/${o}`),e=new URL(Sa.parseOrigin(e).origin+o)}else A||(A=typeof e=="object"?e:{}),e=Sa.parseURL(e);let{agent:n,dispatcher:s=Im()}=A;if(n)throw new ma("unsupported opts.agent. Did you mean opts.client?");return t.call(s,{...A,origin:e.origin,path:e.search?`${e.pathname}${e.search}`:e.pathname,method:A.method||(A.body?"PUT":"GET")},r)}}v.exports.setGlobalDispatcher=U2;v.exports.getGlobalDispatcher=Im;var L2=no().fetch,dm=typeof __filename<"u"?__filename:void 0;function Cm(t,e){if(!t||typeof t!="object")return;let A=typeof t.stack=="string"?t.stack:"",r=e.replace(/\\/g,"/");if(A&&(A.includes(e)||A.includes(r)))return;let n={};if(Error.captureStackTrace(n,Cm),!n.stack)return;let s=n.stack.split(`
129
+ `).slice(1).join(`
130
+ `);t.stack=A?`${A}
131
+ ${s}`:n.stack}v.exports.fetch=function(e,A=void 0){return L2(e,A).catch(r=>{throw dm?Cm(r,dm):r&&typeof r=="object"&&Error.captureStackTrace(r,v.exports.fetch),r})};v.exports.Headers=Lr().Headers;v.exports.Response=to().Response;v.exports.Request=bn().Request;v.exports.FormData=jo().FormData;var{setGlobalOrigin:x2,getGlobalOrigin:H2}=Kl();v.exports.setGlobalOrigin=x2;v.exports.getGlobalOrigin=H2;var{CacheStorage:Y2}=zp(),{kConstruct:O2}=le();v.exports.caches=new Y2(O2);var{deleteCookie:G2,getCookies:V2,getSetCookies:q2,setCookie:J2,parseCookie:P2}=uy();v.exports.deleteCookie=G2;v.exports.getCookies=V2;v.exports.getSetCookies=q2;v.exports.setCookie=J2;v.exports.parseCookie=P2;var{parseMIMEType:W2,serializeAMimeType:_2}=Bt();v.exports.parseMIMEType=W2;v.exports.serializeAMimeType=_2;var{CloseEvent:j2,ErrorEvent:Z2,MessageEvent:X2}=ua(),{WebSocket:K2,ping:z2}=Py();v.exports.WebSocket=K2;v.exports.CloseEvent=j2;v.exports.ErrorEvent=Z2;v.exports.MessageEvent=X2;v.exports.ping=z2;v.exports.WebSocketStream=$y().WebSocketStream;v.exports.WebSocketError=Eh().WebSocketError;v.exports.request=ho(Yn.request);v.exports.stream=ho(Yn.stream);v.exports.pipeline=ho(Yn.pipeline);v.exports.connect=ho(Yn.connect);v.exports.upgrade=ho(Yn.upgrade);v.exports.MockClient=S2;v.exports.MockCallHistory=D2;v.exports.MockCallHistoryLog=w2;v.exports.MockPool=b2;v.exports.MockAgent=R2;v.exports.SnapshotAgent=N2;v.exports.mockErrors=k2;var{EventSource:$2}=hm();v.exports.EventSource=$2;function eY(){globalThis.fetch=v.exports.fetch,globalThis.Headers=v.exports.Headers,globalThis.Response=v.exports.Response,globalThis.Request=v.exports.Request,globalThis.FormData=v.exports.FormData,globalThis.WebSocket=v.exports.WebSocket,globalThis.CloseEvent=v.exports.CloseEvent,globalThis.ErrorEvent=v.exports.ErrorEvent,globalThis.MessageEvent=v.exports.MessageEvent,globalThis.EventSource=v.exports.EventSource}v.exports.install=eY});var vm={};jh(vm,{AppError:()=>Qo,ErrorCode:()=>Ua});var Qo,Ua,Nh=Y0(()=>{"use strict";Qo=class t extends Error{constructor(A,r,n,s){super(A);this.code=r;this.context=n;this.cause=s;this.name="AppError"}static from(A,r,n){let s=A instanceof Error?A:new Error(String(A));return new t(s.message,r,n,s)}},Ua=(y=>(y.STORAGE_READ_FAILED="STORAGE_READ_FAILED",y.STORAGE_WRITE_FAILED="STORAGE_WRITE_FAILED",y.STORAGE_NOT_FOUND="STORAGE_NOT_FOUND",y.REQUEST_TIMEOUT="REQUEST_TIMEOUT",y.REQUEST_ABORTED="REQUEST_ABORTED",y.REQUEST_SSL_ERROR="REQUEST_SSL_ERROR",y.REQUEST_PROXY_ERROR="REQUEST_PROXY_ERROR",y.REQUEST_UNRESOLVED_FILES="REQUEST_UNRESOLVED_FILES",y.AUTH_INVALID="AUTH_INVALID",y.AUTH_VAULT_LOCKED="AUTH_VAULT_LOCKED",y.AUTH_DIGEST_FAILED="AUTH_DIGEST_FAILED",y.SCRIPT_EXECUTION_ERROR="SCRIPT_EXECUTION_ERROR",y.SCRIPT_TIMEOUT="SCRIPT_TIMEOUT",y.VAULT_LOCKED="VAULT_LOCKED",y.VAULT_WRONG_PASSWORD="VAULT_WRONG_PASSWORD",y.VAULT_CORRUPT="VAULT_CORRUPT",y.LICENSE_INVALID="LICENSE_INVALID",y.LICENSE_EXPIRED="LICENSE_EXPIRED",y.LICENSE_REQUIRED="LICENSE_REQUIRED",y.SERVER_START_FAILED="SERVER_START_FAILED",y.SERVER_PORT_IN_USE="SERVER_PORT_IN_USE",y.VALIDATION_FAILED="VALIDATION_FAILED",y.NOT_FOUND="NOT_FOUND",y.CONFLICT="CONFLICT",y.INTERNAL="INTERNAL",y))(Ua||{})});var eV={};jh(eV,{AppError:()=>Qo,BuiltInVault:()=>Zn,CollectionRunEngine:()=>zA,CollectionService:()=>$A,EnvironmentService:()=>er,ErrorCode:()=>Ua,HistoryService:()=>tr,ManagementMcpServer:()=>os,McpServer:()=>zn,McpToolEngine:()=>Kn,MockServer:()=>_r,MockServerManager:()=>jn,OpenPost:()=>_a,RequestEngine:()=>KA,SERVER_ONLY_TOOLS:()=>F0,ServiceContainer:()=>ja,SettingsService:()=>Ar,SnapshotEngine:()=>rr,StandaloneFileStore:()=>Kr,StaticConfigProvider:()=>sr,TOOL_DEFS:()=>wo,TypedEventBus:()=>nr,VaultManager:()=>Xn,applyAuth:()=>tA,buildDigestAuthHeader:()=>jA,buildTlsCerts:()=>ym,cleanStaleEntries:()=>fo,createResponseSignature:()=>Rh,evaluateTests:()=>Pr,executeRequest:()=>Et,extractVariableNames:()=>Sh,extractVariables:()=>QA,forceStopServer:()=>Um,generateOpenApiDoc:()=>Ra,getLicenseInfo:()=>Ta,getMatchingCookies:()=>Vn,getRunningServers:()=>Mm,inferJsonSchema:()=>ss,initLicenseStore:()=>va,interpolateVariables:()=>Ee,invalidateCache:()=>Bo,isLicensed:()=>jr,isPortInUse:()=>Fa,isServerRunning:()=>Co,mergeCookies:()=>qn,nullLogger:()=>Jn,parseCurl:()=>$n,parseOpenApiSpec:()=>ns,parseSetCookieHeader:()=>Gn,registerServer:()=>Io,requireLicense:()=>xe,resolveInheritedAuth:()=>ZA,resolveInheritedCertificate:()=>Dh,resolveInheritedScripts:()=>BA,runScript:()=>ft,serializeCookieHeader:()=>XA,stripComments:()=>mA,unregisterServer:()=>Wn,verifyLicense:()=>_n});module.exports=Xh(eV);var M0=oe(require("crypto"));var nA=oe(require("fs")),Ae=oe(require("path")),Kh=oe(require("os")),de=Ae.join(Kh.homedir(),".openpost","global");function O0(t){nA.existsSync(t)||nA.mkdirSync(t,{recursive:!0})}function Oe(t,e){try{if(nA.existsSync(t))return JSON.parse(nA.readFileSync(t,"utf-8"))}catch{}return e}function Je(t,e){O0(Ae.dirname(t)),nA.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}function Ie(t){return Oe(Ae.join(t,"config.json"),{})}function Ct(t,e){Je(Ae.join(t,"config.json"),e)}var Kr=class{constructor(e){this.workspacePath=e;this.dir=e?Ae.join(e,".openpost"):""}dir;hasWorkspace(){return!!this.workspacePath}getStoragePath(){return this.workspacePath?this.dir:void 0}getGlobalStoragePath(){return de}loadCollections(){return this.dir?Oe(Ae.join(this.dir,"collections.json"),[]):[]}saveCollections(e){this.dir&&Je(Ae.join(this.dir,"collections.json"),e)}loadGlobalCollections(){return Oe(Ae.join(de,"collections.json"),[])}saveGlobalCollections(e){Je(Ae.join(de,"collections.json"),e)}loadEnvironments(){return this.dir?Oe(Ae.join(this.dir,"environments.json"),[]):[]}saveEnvironments(e){this.dir&&Je(Ae.join(this.dir,"environments.json"),e)}loadGlobalEnvironments(){return Oe(Ae.join(de,"environments.json"),[])}saveGlobalEnvironments(e){Je(Ae.join(de,"environments.json"),e)}loadActiveEnvironmentId(){return this.dir&&Ie(this.dir).activeEnvironmentId||null}saveActiveEnvironmentId(e){if(this.dir){let A=Ie(this.dir);A.activeEnvironmentId=e,Ct(this.dir,A)}}loadGlobalActiveEnvironmentId(){return Ie(de).activeEnvironmentId||null}saveGlobalActiveEnvironmentId(e){let A=Ie(de);A.activeEnvironmentId=e,Ct(de,A)}loadHistory(){return this.dir?Oe(Ae.join(this.dir,"history.json"),[]):[]}saveHistory(e){this.dir&&Je(Ae.join(this.dir,"history.json"),e.slice(-500))}loadGlobalHistory(){return Oe(Ae.join(de,"history.json"),[])}saveGlobalHistory(e){Je(Ae.join(de,"history.json"),e.slice(-500))}loadCookies(){if(!this.dir)return[];let e=new Date().toISOString();return Oe(Ae.join(this.dir,"cookies.json"),[]).filter(A=>!A.expires||A.expires>e)}saveCookies(e){this.dir&&Je(Ae.join(this.dir,"cookies.json"),e)}loadCookiesEnabled(){return this.dir?Ie(this.dir).cookiesEnabled!==!1:!0}saveCookiesEnabled(e){if(this.dir){let A=Ie(this.dir);A.cookiesEnabled=e,Ct(this.dir,A)}}loadSnapshots(){return this.dir?Oe(Ae.join(this.dir,"snapshots.json"),[]):[]}saveSnapshots(e){this.dir&&Je(Ae.join(this.dir,"snapshots.json"),e.slice(-200).map(A=>({...A,records:A.records.slice(-100)})))}loadSession(){return this.dir?Oe(Ae.join(this.dir,"session.json"),null):null}saveSession(e){this.dir&&Je(Ae.join(this.dir,"session.json"),e)}loadTabSettings(){let e=this.dir?Ie(this.dir):{};return{tabViewCollapsed:e.tabViewCollapsed??!1,tabGrouping:e.tabGrouping??!0,subtleContracts:e.subtleContracts??!1,autoHideSidebar:e.autoHideSidebar??!1,simpleMode:e.simpleMode??!0,uiZoom:e.uiZoom??100}}saveTabSetting(e,A){if(this.dir){let r=Ie(this.dir);r[e]=A,Ct(this.dir,r)}}saveUiZoom(e){if(this.dir){let A=Ie(this.dir);A.uiZoom=e,Ct(this.dir,A)}}loadProxies(){return this.dir?Ie(this.dir).proxies||[]:[]}saveProxies(e){if(this.dir){let A=Ie(this.dir);A.proxies=e,Ct(this.dir,A)}}loadDefaultProxyId(){return this.dir&&Ie(this.dir).defaultProxyId||null}saveDefaultProxyId(e){if(this.dir){let A=Ie(this.dir);A.defaultProxyId=e,Ct(this.dir,A)}}loadMockConfig(){return this.dir?Oe(Ae.join(this.dir,"mock-server.json"),{routes:[],port:3e3,autoStart:!1,maxLogEntries:100}):{routes:[],port:3e3,autoStart:!1,maxLogEntries:100}}saveMockConfig(e){this.dir&&Je(Ae.join(this.dir,"mock-server.json"),e)}loadMockServers(){return this.dir?Oe(Ae.join(this.dir,"mock-servers.json"),[]):[]}saveMockServers(e){this.dir&&Je(Ae.join(this.dir,"mock-servers.json"),e)}migrateLegacyMockConfig(){}loadMaxMockServers(){return this.dir?Ie(this.dir).maxMockServers??5:5}saveMaxMockServers(e){if(this.dir){let A=Ie(this.dir);A.maxMockServers=e,Ct(this.dir,A)}}loadMcpServers(){return this.dir?Oe(Ae.join(this.dir,"mcp-servers.json"),[]):[]}saveMcpServers(e){this.dir&&Je(Ae.join(this.dir,"mcp-servers.json"),e)}loadCollectionRunHistory(e){let A=e==="global"?de:this.dir;return A?Oe(Ae.join(A,"collection-run-history.json"),[]):[]}saveCollectionRunHistory(e,A){let r=e==="global"?de:this.dir;r&&Je(Ae.join(r,"collection-run-history.json"),A)}loadVaultProviders(){return Oe(Ae.join(de,"config.json"),{}).vaultProviders||[]}saveVaultProviders(e){let A=Ie(de);A.vaultProviders=e,Ct(de,A)}loadSecretSets(){return Ie(de).secretSets||[]}saveSecretSets(e){let A=Ie(de);A.secretSets=e,Ct(de,A)}loadActiveSecretSetId(){return Ie(de).activeSecretSetId||null}saveActiveSecretSetId(e){let A=Ie(de);A.activeSecretSetId=e,Ct(de,A)}loadLicenseKey(){return Ie(de).licenseKey||null}saveLicenseKey(e){let A=Ie(de);A.licenseKey=e,Ct(de,A)}};function Ee(t,e){return t.replace(/\{\{([\w.\-]+)\}\}/g,(A,r)=>e[r]??`{{${r}}}`)}function mA(t,e){return t&&(e==="xml"?t.replace(/<!--[\s\S]*?-->/g,""):e==="graphql"?t.split(`
132
+ `).map(A=>A.replace(/#.*$/,"")).join(`
133
+ `):G0(t))}function G0(t){return t.replace(/"(?:\\[\s\S]|[^"\\])*"|'(?:\\[\s\S]|[^'\\])*'|\/\/[^\n]*|\/\*[\s\S]*?\*\//g,e=>e[0]==='"'||e[0]==="'"?e:"")}var ph=oe(require("fs")),Da=oe(require("path")),Eo=oe(Qm());async function Et(t,e,A=!0,r,n,s){let o=t.params.filter(d=>d.enabled&&d.key.trim()!==""),i=AY(Ee(t.url,e),o.map(d=>({...d,key:Ee(d.key,e),value:Ee(d.value,e)})));if(!i||!i.trim())throw new Error("Request URL is empty. Please enter a URL.");let a={};for(let d of t.headers.filter(g=>g.enabled&&g.key.trim()!==""))a[Ee(d.key,e)]=Ee(d.value,e);let l=rY(t,e);l.contentType&&!a["Content-Type"]&&(a["Content-Type"]=l.contentType);let c={method:t.method,url:i,headers:{...a},body:l.data instanceof Buffer?"[binary data]":l.data instanceof FormData?"[form-data]":l.data??null},f=performance.now();try{let d={method:t.method,headers:a,body:l.data},g=[];if(n?.signal&&g.push(n.signal),n?.timeout&&n.timeout>0&&g.push(AbortSignal.timeout(n.timeout)),g.length&&(d.signal=g.length===1?g[0]:AbortSignal.any(g)),n?.followRedirects===!1&&(d.redirect="manual"),r){let B=r.username?`${encodeURIComponent(r.username)}:${encodeURIComponent(r.password||"")}@`:"",Q=`${r.protocol}://${B}${r.host}:${r.port}`,D={...s};A||(D.rejectUnauthorized=!1),d.dispatcher=new Eo.ProxyAgent({uri:Q,requestTls:Object.keys(D).length?D:void 0})}else if(s&&Object.keys(s).length){let B={...s};A||(B.rejectUnauthorized=!1),d.dispatcher=new Eo.Agent({connect:B})}else A||(d.dispatcher=new Eo.Agent({connect:{rejectUnauthorized:!1}}));let I=await fetch(i,d),S=Math.round(performance.now()-f),p=(n?.maxResponseSizeMB??10)*1024*1024,u=await tY(I,p),h={};I.headers.forEach((B,Q)=>{h[Q]=B});let E=I.headers.getSetCookie?.()||[];return{status:I.status,statusText:I.statusText,headers:h,body:u,time:S,size:new TextEncoder().encode(u).length,actualRequest:c,setCookieHeaders:E}}catch(d){let g=Math.round(performance.now()-f),I=d instanceof DOMException&&d.name==="AbortError",S=d instanceof DOMException&&d.name==="TimeoutError",p=S?"Request timed out":I?"Request cancelled":d instanceof Error?d.message:"Unknown error";return{status:0,statusText:S?"Timeout":I?"Cancelled":"Error",headers:{},body:`Request failed: ${p}`,time:g,size:0,actualRequest:c}}}async function tY(t,e){if(!t.body)return await t.text();let A=t.body.getReader(),r=[],n=0,s=!1;for(;;){let{done:l,value:c}=await A.read();if(l)break;if(n+=c.byteLength,n>e){r.push(c.subarray(0,c.byteLength-(n-e))),s=!0,A.cancel();break}r.push(c)}let o=new Uint8Array(s?e:n),i=0;for(let l of r)o.set(l,i),i+=l.byteLength;let a=new TextDecoder().decode(o);return s?a+`
134
+
135
+ [Response truncated at ${Math.round(e/1024/1024)}MB]`:a}function AY(t,e){try{let A=new URL(t);if(e.length>0){A.search="";for(let r of e)A.searchParams.append(r.key,r.value)}return A.toString()}catch{if(e.length===0)return t;let A=e.map(n=>`${encodeURIComponent(n.key)}=${encodeURIComponent(n.value)}`).join("&"),r=t.includes("?")?"&":"?";return`${t}${r}${A}`}}function rY(t,e){let{body:A}=t;switch(A.type){case"none":return{data:void 0};case"json":return{data:Ee(mA(A.raw||"","json"),e),contentType:"application/json"};case"raw":return{data:Ee(mA(A.raw||"","raw"),e),contentType:"text/plain"};case"xml":return{data:Ee(mA(A.raw||"","xml"),e),contentType:"application/xml"};case"x-www-form-urlencoded":{let r=new URLSearchParams;for(let n of(A.formData||[]).filter(s=>s.enabled))r.append(Ee(n.key,e),Ee(n.value,e));return{data:r.toString(),contentType:"application/x-www-form-urlencoded"}}case"form-data":{let r=new FormData,n=A.formDataFiles?.length?A.formDataFiles:(A.formData||[]).map(s=>({...s,fieldType:"text"}));for(let s of n.filter(o=>o.enabled)){let o=Ee(s.key,e);if(s.fieldType==="file"&&s.filePath){let i;try{i=ph.readFileSync(s.filePath)}catch{throw new Error(`File not found: ${s.filePath}`)}let a=s.fileName||Da.basename(s.filePath),l=new File([i],a,{type:sY(Da.extname(a))});r.append(o,l)}else r.append(o,Ee(s.value,e))}return{data:r}}case"binary":{if(A.binaryPath){let r;try{r=ph.readFileSync(A.binaryPath)}catch{throw new Error(`File not found: ${A.binaryPath}`)}return{data:r,contentType:"application/octet-stream"}}return{data:void 0}}case"graphql":{let r=A.graphql||{query:"",variables:"{}"},n=Ee(mA(r.variables||"{}","graphql-vars"),e),s;try{s=JSON.parse(n)}catch(i){throw new Error(`Invalid JSON in GraphQL variables: ${i instanceof Error?i.message:"parse error"}`)}return{data:JSON.stringify({query:Ee(mA(r.query,"graphql"),e),variables:s}),contentType:"application/json"}}default:return{data:A.raw||void 0}}}var nY={".json":"application/json",".xml":"application/xml",".html":"text/html",".css":"text/css",".js":"application/javascript",".txt":"text/plain",".csv":"text/csv",".pdf":"application/pdf",".zip":"application/zip",".gz":"application/gzip",".tar":"application/x-tar",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".svg":"image/svg+xml",".webp":"image/webp",".mp4":"video/mp4",".webm":"video/webm",".mp3":"audio/mpeg"};function sY(t){return nY[t.toLowerCase()]||"application/octet-stream"}var eA=oe(require("crypto"));function tA(t,e){let A={},r={},n=t.auth,s=o=>Ee(o,e);switch(n.type){case"none":break;case"basic":{let{username:o="",password:i=""}=n.basic||{},a=Buffer.from(`${s(o)}:${s(i)}`).toString("base64");A.Authorization=`Basic ${a}`;break}case"bearer":A.Authorization=`Bearer ${n.bearer?.token||""}`;break;case"api-key":{let{key:o="",value:i="",addTo:a="header"}=n.apiKey||{};a==="header"?A[o]=i:r[o]=i;break}case"oauth2":n.oauth2?.accessToken&&(A.Authorization=`Bearer ${n.oauth2.accessToken}`);break;case"aws-sigv4":{let{accessKey:o="",secretKey:i="",region:a="",service:l=""}=n.awsSigV4||{},c=s(o),f=s(i),d=s(a),g=s(l);if(c&&f&&d&&g){let I=s(t.url);try{let S=new URL(I),p=new Date,u=p.toISOString().replace(/[-:]/g,"").slice(0,8),h=u+"T"+p.toISOString().replace(/[-:]/g,"").slice(9,15)+"Z",E=t.body?.raw||"",B=eA.createHash("sha256").update(E).digest("hex");A["X-Amz-Date"]=h,A["X-Amz-Content-Sha256"]=B,A.Host=S.host;let Q=`host:${S.host}
136
+ x-amz-content-sha256:${B}
137
+ x-amz-date:${h}
138
+ `,D="host;x-amz-content-sha256;x-amz-date",m=[...S.searchParams].sort(([N],[M])=>N.localeCompare(M)).map(([N,M])=>`${encodeURIComponent(N)}=${encodeURIComponent(M)}`).join("&"),R=`${t.method}
139
+ ${S.pathname}
140
+ ${m}
141
+ ${Q}
142
+ ${D}
143
+ ${B}`,y=`${u}/${d}/${g}/aws4_request`,U=`AWS4-HMAC-SHA256
144
+ ${h}
145
+ ${y}
146
+ ${eA.createHash("sha256").update(R).digest("hex")}`,k=(N,M)=>eA.createHmac("sha256",N).update(M).digest(),q=k(k(k(k(`AWS4${f}`,u),d),g),"aws4_request"),F=eA.createHmac("sha256",q).update(U).digest("hex");A.Authorization=`AWS4-HMAC-SHA256 Credential=${c}/${y}, SignedHeaders=${D}, Signature=${F}`}catch{}}break}case"digest":break}return{headers:A,queryParams:r}}function oY(t){let e={},A=t.replace(/^Digest\s+/i,""),r=/(\w+)=(?:"([^"]*)"|([\w-]+))/g,n;for(;n=r.exec(A);)e[n[1]]=n[2]??n[3];return e}function iY(t){return eA.createHash("md5").update(t).digest("hex")}function aY(t){return eA.createHash("sha256").update(t).digest("hex")}function lY(t){return t.toLowerCase().startsWith("sha-256")?aY:iY}function jA(t,e,A,r,n,s=1){let o=oY(t),i=o.realm||"",a=o.nonce||"",l=o.qop||"",c=o.opaque||"",f=o.algorithm||"MD5",d=lY(f),g=eA.randomBytes(16).toString("hex"),I=s.toString(16).padStart(8,"0"),S=d(`${e}:${i}:${A}`);f.toLowerCase().endsWith("-sess")&&(S=d(`${S}:${a}:${g}`));let p=d(`${r}:${n}`),u;l.includes("auth")?u=d(`${S}:${a}:${I}:${g}:auth:${p}`):u=d(`${S}:${a}:${p}`);let h=[`username="${e}"`,`realm="${i}"`,`nonce="${a}"`,`uri="${n}"`,`algorithm=${f}`,`response="${u}"`];return l.includes("auth")&&h.push("qop=auth",`nc=${I}`,`cnonce="${g}"`),c&&h.push(`opaque="${c}"`),`Digest ${h.join(", ")}`}var wa=oe(require("vm"));function ft(t,e){let A=[],r={},n={request:{...e.request},response:e.response?{...e.response,json:()=>JSON.parse(e.response.body)}:void 0,environment:{get:s=>e.environment[s]??"",set:(s,o)=>{r[s]=o}},console:{log:(...s)=>A.push(s.map(String).join(" ")),info:(...s)=>A.push(`[INFO] ${s.map(String).join(" ")}`),warn:(...s)=>A.push(`[WARN] ${s.map(String).join(" ")}`),error:(...s)=>A.push(`[ERROR] ${s.map(String).join(" ")}`),assert:(s,o)=>{s||A.push(`Assertion failed: ${o||""}`)}}};try{let s=wa.createContext(n);return wa.runInContext(t,s,{timeout:5e3}),{logs:A,updatedRequest:n.request,environmentUpdates:r}}catch(s){let o=s instanceof Error?s.message:"Script error";return{logs:A,error:o}}}var cY={status:"Status Code",time:"Response Time",size:"Response Size",body:"Response Body",jsonpath:"JSON Path",header:"Header","content-type":"Content-Type","content-length":"Content-Length","body-contains":"Body Contains","body-is-json":"Body Is JSON","body-schema":"Body Schema"},uY={eq:"=",neq:"\u2260",gt:">",gte:"\u2265",lt:"<",lte:"\u2264",contains:"contains","not-contains":"not contains",matches:"matches","not-matches":"not matches","is-empty":"is empty","is-not-empty":"is not empty",exists:"exists","not-exists":"not exists","is-type":"is type"};function Bm(t,e){if(!e)return t;let A=[],r=/(\w+)|\[(\d+)\]|\["([^"]+)"\]|\['([^']+)'\]/g,n;for(;(n=r.exec(e))!==null;)n[1]!==void 0?A.push(n[1]):n[2]!==void 0?A.push(parseInt(n[2],10)):n[3]!==void 0?A.push(n[3]):n[4]!==void 0&&A.push(n[4]);let s=t;for(let o of A){if(s==null)return;if(typeof s=="object")s=s[o];else return}return s}function gY(t,e){switch(t.source){case"status":return{value:e.status,exists:!0};case"time":return{value:e.time,exists:!0};case"size":return{value:e.size,exists:!0};case"body":return{value:e.body,exists:!0};case"content-type":return{value:e.headers["content-type"]??e.headers["Content-Type"],exists:"content-type"in e.headers||"Content-Type"in e.headers};case"content-length":return{value:e.headers["content-length"]??e.headers["Content-Length"],exists:"content-length"in e.headers||"Content-Length"in e.headers};case"header":{let A=t.property.toLowerCase(),r=Object.entries(e.headers).find(([n])=>n.toLowerCase()===A);return{value:r?.[1],exists:!!r}}case"jsonpath":try{let A=JSON.parse(e.body),r=Bm(A,t.property);return{value:r,exists:r!==void 0}}catch{return{value:void 0,exists:!1}}case"body-contains":return{value:e.body.includes(t.property),exists:!0};case"body-is-json":try{return JSON.parse(e.body),{value:!0,exists:!0}}catch{return{value:!1,exists:!0}}case"body-schema":try{return JSON.parse(e.body),{value:e.body,exists:!0}}catch{return{value:void 0,exists:!1}}default:return{value:void 0,exists:!1}}}function mh(t){return t===void 0?"undefined":t===null?"null":typeof t=="object"?JSON.stringify(t):String(t)}function hY(t,e,A){let r=mh(t),n=Number(t),s=Number(A),o=!isNaN(n)&&!isNaN(s)&&t!==""&&A!=="";switch(e){case"eq":return o?n===s:r===A;case"neq":return o?n!==s:r!==A;case"gt":return o?n>s:r>A;case"gte":return o?n>=s:r>=A;case"lt":return o?n<s:r<A;case"lte":return o?n<=s:r<=A;case"contains":return r.includes(A);case"not-contains":return!r.includes(A);case"matches":try{return new RegExp(A).test(r)}catch{return!1}case"not-matches":try{return!new RegExp(A).test(r)}catch{return!1}case"is-empty":return r===""||r==="undefined"||r==="null";case"is-not-empty":return r!==""&&r!=="undefined"&&r!=="null";case"exists":return t!==void 0;case"not-exists":return t===void 0;case"is-type":return A==="array"?Array.isArray(t):typeof t===A;default:return!1}}function On(t){let e=cY[t.source]||t.source,A=t.property?` "${t.property}"`:"",r=uY[t.operator]||t.operator,n=["is-empty","is-not-empty","exists","not-exists"].includes(t.operator)?"":` "${t.expected}"`;return`${e}${A} ${r}${n}`}function Pr(t,e){return t.filter(A=>A.enabled).map(A=>{let{value:r,exists:n}=gY(A,e);if(A.source==="body-contains"){let o=A.operator==="eq"?r===!0:r===!1;return{ruleId:A.id,passed:o,label:On(A),actual:String(r),expected:A.expected}}if(A.source==="body-is-json"){let o=A.operator==="eq"?r===!0:r===!1;return{ruleId:A.id,passed:o,label:On(A),actual:String(r),expected:"true"}}if(A.source==="body-schema"){let o=dY(e.body,A.expected);return{ruleId:A.id,passed:o,label:On(A),actual:o?"valid":"invalid",expected:"valid schema"}}if(A.operator==="exists")return{ruleId:A.id,passed:n,label:On(A),actual:n?"exists":"not found",expected:"exists"};if(A.operator==="not-exists")return{ruleId:A.id,passed:!n,label:On(A),actual:n?"exists":"not found",expected:"not exists"};let s=hY(r,A.operator,A.expected);return{ruleId:A.id,passed:s,label:On(A),actual:mh(r),expected:A.expected}})}function QA(t,e){let A={};for(let r of t.filter(n=>n.enabled&&n.variableName)){let n;switch(r.source){case"jsonpath":try{n=Bm(JSON.parse(e.body),r.property)}catch{n=void 0}break;case"header":{let s=r.property.toLowerCase();n=Object.entries(e.headers).find(([i])=>i.toLowerCase()===s)?.[1];break}case"body":n=e.body;break;case"regex":try{let s=new RegExp(r.property).exec(e.body);n=s?s[1]??s[0]:void 0}catch{n=void 0}break}n!==void 0&&(A[r.variableName]=mh(n))}return A}function dY(t,e){try{let A=JSON.parse(t),r=JSON.parse(e);return yh(A,r)}catch{return!1}}function yh(t,e){if(e.type){let A=e.type;if(A==="object"&&(typeof t!="object"||t===null||Array.isArray(t))||A==="array"&&!Array.isArray(t)||A==="string"&&typeof t!="string"||A==="number"&&typeof t!="number"||A==="boolean"&&typeof t!="boolean"||A==="integer"&&(typeof t!="number"||!Number.isInteger(t)))return!1}if(e.required&&Array.isArray(e.required)&&typeof t=="object"&&t!==null){for(let A of e.required)if(!(A in t))return!1}if(e.properties&&typeof t=="object"&&t!==null){for(let[A,r]of Object.entries(e.properties))if(A in t&&!yh(t[A],r))return!1}if(e.items&&Array.isArray(t)){for(let A of t)if(!yh(A,e.items))return!1}return!0}function ZA(t,e,A){if(!A.inheritAuth||A.auth?.type&&A.auth.type!=="none")return A.auth??{type:"none"};let r=[],n=t;for(let s of e){let o=n.folders.find(i=>i.id===s);if(!o)break;r.push(o),n=o}for(let s=r.length-1;s>=0;s--){let o=r[s];if(o.auth&&o.auth.type!=="none"&&!o.inheritAuth)return o.auth}return t.auth||{type:"none"}}function BA(t,e,A){if(!A.inheritScripts)return{pre:A.preRequestScript||"",test:A.testScript||""};let r=[],n=[];t.preRequestScript&&r.push(t.preRequestScript),t.testScript&&n.push(t.testScript);let s=t;for(let o of e){let i=s.folders.find(a=>a.id===o);if(!i||(i.preRequestScript&&r.push(i.preRequestScript),i.testScript&&n.push(i.testScript),!i.inheritScripts))break;s=i}return A.preRequestScript&&r.push(A.preRequestScript),A.testScript&&n.push(A.testScript),{pre:r.join(`
147
+ `),test:n.join(`
148
+ `)}}function Gn(t,e){let A=t.split(";").map(f=>f.trim()),[r,...n]=A;if(!r)return null;let s=r.indexOf("=");if(s<0)return null;let o=r.slice(0,s).trim(),i=r.slice(s+1).trim();if(!o)return null;let a;try{a=new URL(e)}catch{return null}let l={name:o,value:i,domain:a.hostname,path:"/",expires:null,httpOnly:!1,secure:!1,sameSite:null,createdAt:new Date().toISOString()},c=!1;for(let f of n){let[d,...g]=f.split("="),I=d.trim().toLowerCase(),S=g.join("=").trim();switch(I){case"domain":l.domain=S.startsWith(".")?S.slice(1):S;break;case"path":l.path=S||"/";break;case"max-age":{let p=parseInt(S,10);isNaN(p)||(l.expires=p<=0?new Date(0).toISOString():new Date(Date.now()+p*1e3).toISOString(),c=!0);break}case"expires":if(!c){let p=new Date(S);isNaN(p.getTime())||(l.expires=p.toISOString())}break;case"httponly":l.httpOnly=!0;break;case"secure":l.secure=!0;break;case"samesite":["strict","lax","none"].includes(S.toLowerCase())&&(l.sameSite=S.charAt(0).toUpperCase()+S.slice(1).toLowerCase());break}}return l}function Vn(t,e){let A;try{A=new URL(e)}catch{return[]}let r=Date.now();return t.filter(n=>{if(n.expires&&new Date(n.expires).getTime()<r)return!1;let s=A.hostname;return!(s!==n.domain&&!s.endsWith("."+n.domain)||!(A.pathname||"/").startsWith(n.path)||n.secure&&A.protocol!=="https:")})}function qn(t,e){let A=[...t];for(let n of e){let s=A.findIndex(o=>o.domain===n.domain&&o.path===n.path&&o.name===n.name);n.value===""&&n.expires&&new Date(n.expires).getTime()===0?s>=0&&A.splice(s,1):s>=0?A[s]=n:A.push(n)}let r=Date.now();return A.filter(n=>!n.expires||new Date(n.expires).getTime()>r)}function XA(t){return t.map(e=>`${e.name}=${e.value}`).join("; ")}function Sh(t){let e=new Set,A=r=>{for(let n of r.matchAll(/\{\{(\w+)\}\}/g))e.add(n[1])};A(t.url);for(let r of t.headers.filter(n=>n.enabled))A(r.key),A(r.value);for(let r of t.params.filter(n=>n.enabled))A(r.key),A(r.value);if(t.body.raw&&A(t.body.raw),t.body.graphql&&(A(t.body.graphql.query),A(t.body.graphql.variables)),t.body.formData)for(let r of t.body.formData.filter(n=>n.enabled))A(r.key),A(r.value);return t.auth.basic&&(A(t.auth.basic.username),A(t.auth.basic.password)),t.auth.bearer&&A(t.auth.bearer.token),t.auth.apiKey&&(A(t.auth.apiKey.key),A(t.auth.apiKey.value)),[...e]}function pm(t){return!!(t&&(t.clientCertId||t.privateKeyId||t.caBundleId))}function Dh(t,e,A){if(!A.inheritCertificate||pm(A.certificateConfig))return A.certificateConfig||null;let r=[],n=t;for(let s of e){let o=n.folders.find(i=>i.id===s);if(!o)break;r.push(o),n=o}for(let s=r.length-1;s>=0;s--){let o=r[s];if(pm(o.certificateConfig)&&!o.inheritCertificate)return o.certificateConfig}return t.certificateConfig||null}function ym(t,e){let A=new Map(e.map(a=>[a.id,a])),r={},n=[],s=t.clientCertId?A.get(t.clientCertId):void 0,o=t.privateKeyId?A.get(t.privateKeyId):void 0,i=t.caBundleId?A.get(t.caBundleId):void 0;return s&&(s.format==="pfx"?(r.pfx=Buffer.from(s.data,"base64"),s.passphrase&&(r.passphrase=s.passphrase)):s.format==="der"?r.cert=Buffer.from(s.data,"base64"):r.cert=s.data,n.push(`cert: ${s.name}`)),o&&(r.key=o.format==="der"?Buffer.from(o.data,"base64"):o.data,o.passphrase&&!r.passphrase&&(r.passphrase=o.passphrase),n.push(`key: ${o.name}`)),i&&(r.ca=i.format==="der"?Buffer.from(i.data,"base64"):i.data,n.push(`ca: ${i.name}`)),n.length?{tls:r,names:n.join(", ")}:{tls:null,names:"System Trust Store"}}var KA=class{constructor(e,A,r,n,s){this.fileStore=e;this.config=A;this.logger=r;this.eventBus=n;this.resolveSecretVariables=s}async buildEnvVars(e){let A={};if(e.sourceCollectionId){let c=(e.sourceScope==="global"?this.fileStore.loadGlobalCollections():this.fileStore.loadCollections()).find(f=>f.id===e.sourceCollectionId);if(c)for(let f of(c.variables||[]).filter(d=>d.enabled))A[f.key]=f.value}let r=this.fileStore.loadGlobalEnvironments(),n=this.fileStore.loadGlobalActiveEnvironmentId(),s=r.find(l=>l.id===n);if(s)for(let l of s.variables.filter(c=>c.enabled))A[l.key]=l.value;if(this.resolveSecretVariables){let l=Sh(e.request),c=await this.resolveSecretVariables(l,A);Object.keys(c).length>0&&(this.logger.info("Resolved secret variables",{keys:Object.keys(c)}),Object.assign(A,c))}let o=this.fileStore.loadEnvironments(),i=this.fileStore.loadActiveEnvironmentId(),a=o.find(l=>l.id===i);if(a)for(let l of a.variables.filter(c=>c.enabled))A[l.key]=l.value;return A}resolveAuth(e,A){if(!A.sourceCollectionId||!e.inheritAuth)return e;let n=(A.sourceScope==="global"?this.fileStore.loadGlobalCollections():this.fileStore.loadCollections()).find(s=>s.id===A.sourceCollectionId);return n?{...e,auth:ZA(n,A.sourceFolderPath||[],e)}:e}resolveScripts(e,A){if(!A.sourceCollectionId||!e.inheritScripts)return e;let n=(A.sourceScope==="global"?this.fileStore.loadGlobalCollections():this.fileStore.loadCollections()).find(o=>o.id===A.sourceCollectionId);if(!n)return e;let s=BA(n,A.sourceFolderPath||[],e);return{...e,preRequestScript:s.pre,testScript:s.test}}async execute(e){let A=e.request.id||Date.now().toString();this.eventBus.emit("request.started",{requestId:A});try{let r=e.request,n=await this.buildEnvVars(e);r=this.resolveAuth(r,e),r=this.resolveScripts(r,e);let s=tA(r,n);for(let[h,E]of Object.entries(s.headers))r.headers.push({key:h,value:E,enabled:!0});for(let[h,E]of Object.entries(s.queryParams))r.params.push({key:h,value:E,enabled:!0});let o=[];if(r.preRequestScript){let h=ft(r.preRequestScript,{request:r,environment:n});if(h.logs.length&&o.push(...h.logs),h.error)throw new Error(`Pre-request script error: ${h.error}`);h.updatedRequest&&(r=h.updatedRequest),h.environmentUpdates&&Object.assign(n,h.environmentUpdates)}let i=this.fileStore.loadCookiesEnabled(),a;if(i){let h=this.fileStore.loadCookies(),E=r.url.replace(/\{\{(\w+)\}\}/g,(Q,D)=>n[D]??`{{${D}}}`),B=Vn(h,E);if(B.length){let Q=r.headers.find(D=>D.enabled&&D.key.toLowerCase()==="cookie");Q?Q.value=Q.value+"; "+XA(B):r.headers.push({key:"Cookie",value:XA(B),enabled:!0})}}let l=null;e.proxyId&&(l=this.fileStore.loadProxies().find(E=>E.id===e.proxyId)||null);let c,f="System Trust Store",d=null;if(e.sourceCollectionId){let E=(e.sourceScope==="global"?this.fileStore.loadGlobalCollections():this.fileStore.loadCollections()).find(B=>B.id===e.sourceCollectionId);E&&(d=Dh(E,e.sourceFolderPath||[],r))}else r.certificateConfig&&(d=r.certificateConfig);let g={timeout:this.config.get("requestTimeout",0),signal:e.signal,maxResponseSizeMB:this.config.get("maxResponseSize",10),followRedirects:e.followRedirects},I=await Et(r,n,e.sslVerification!==!1,l,g,c);I.actualRequest&&(I.actualRequest.certificateNames=f);let S="";if(r.auth.type==="digest"&&I.status===401){let h=Object.entries(I.headers).find(([E])=>E.toLowerCase()==="www-authenticate");if(h&&h[1].toLowerCase().startsWith("digest")){let{username:E="",password:B=""}=r.auth.digest||{},Q=r.url.replace(/\{\{(\w+)\}\}/g,(y,U)=>n[U]??`{{${U}}}`),D;try{let y=new URL(Q);D=y.pathname+y.search}catch{D=Q}let m=y=>y.replace(/\{\{(\w+)\}\}/g,(U,k)=>n[k]??`{{${k}}}`),R=jA(h[1],m(E),m(B),r.method,D);r.headers=r.headers.filter(y=>y.key.toLowerCase()!=="authorization"),r.headers.push({key:"Authorization",value:R,enabled:!0}),I=await Et(r,n,e.sslVerification!==!1,l,g,c),I.actualRequest&&(I.actualRequest.certificateNames=f),S=`--- Digest Auth: Challenge-response completed ---
149
+
150
+ `}}if(i&&I.setCookieHeaders?.length){let h=r.url.replace(/\{\{(\w+)\}\}/g,(B,Q)=>n[Q]??`{{${Q}}}`),E=I.setCookieHeaders.map(B=>Gn(B,h)).filter(B=>B!==null);E.length&&(a=qn(this.fileStore.loadCookies(),E))}delete I.setCookieHeaders;let p={};r.setVariables?.length&&(Object.assign(p,QA(r.setVariables,I)),Object.assign(n,p)),r.testRules?.length&&(I.testResults=Pr(r.testRules,I));let u={};if(r.testScript){let h=ft(r.testScript,{request:r,response:I,environment:n});h.logs.length&&o.push(...h.logs),h.environmentUpdates&&Object.assign(u,h.environmentUpdates)}return S&&I.body&&(I.body=S+I.body),this.eventBus.emit("request.completed",{requestId:A,status:I.status,time:I.time}),{response:I,scriptLogs:o,extractedVars:p,cookiesToSave:a,envUpdates:u,digestNote:S,certNames:f}}catch(r){let n=r instanceof Error?r:new Error(String(r));throw this.eventBus.emit("request.failed",{requestId:A,error:n}),r}}};var zA=class{constructor(e,A,r,n,s){this.requestEngine=e;this.fileStore=A;this.config=r;this.logger=n;this.eventBus=s}flattenRequests(e){let A=[],r=(n,s,o)=>{for(let i of s)A.push({request:i,folderPath:o});for(let i of n)r(i.folders,i.requests,[...o,i.id])};return r(e.folders,e.requests,[]),A}async run(e,A){let r=this.flattenRequests(e),n=[],s=0,o=0,i=Date.now(),a=async I=>{let S={request:I.request,sourceCollectionId:e.id,sourceScope:A.scope,sourceFolderPath:I.folderPath,sslVerification:!0};try{let p=await this.requestEngine.execute(S),u=p.response.testResults?.some(B=>!B.passed),h=p.response.status<400&&!u;h?s++:o++;let E={requestId:I.request.id,requestName:I.request.name,method:I.request.method,url:I.request.url,status:p.response.status,time:p.response.time,passed:h,responseBody:p.response.body?.slice(0,2e3),responseHeaders:p.response.headers,testResults:p.response.testResults,extractedVars:Object.keys(p.extractedVars).length?p.extractedVars:void 0,scriptLogs:p.scriptLogs.length?p.scriptLogs:void 0};n.push(E),A.onProgress?.(E)}catch(p){o++;let u=p instanceof Error?p.message:"Unknown error",h={requestId:I.request.id,requestName:I.request.name,method:I.request.method,url:I.request.url,status:0,time:0,passed:!1,error:u};n.push(h),A.onProgress?.(h)}};if(A.mode==="sequential")for(let I of r)await a(I);else{let I=A.maxConcurrency||5;for(let S=0;S<r.length;S+=I)await Promise.all(r.slice(S,S+I).map(a))}let l={id:Date.now().toString()+Math.random().toString(36).slice(2),collectionId:e.id,scope:A.scope,timestamp:Date.now(),mode:A.mode,total:r.length,passed:s,failed:o,time:Date.now()-i,results:n},c=this.config.get("maxCollectionRunHistory",5),f=this.fileStore.loadCollectionRunHistory(A.scope),d=f.filter(I=>I.collectionId===e.id),g=f.filter(I=>I.collectionId!==e.id);for(d.unshift(l);d.length>c;)d.pop();return this.fileStore.saveCollectionRunHistory(A.scope,[...g,...d]),l}};var Wr=oe(require("crypto")),$A=class{constructor(e,A,r){this.fileStore=e;this.logger=A;this.eventBus=r}loadCollections(e){return e==="global"?this.fileStore.loadGlobalCollections():this.fileStore.loadCollections()}saveCollections(e,A){e==="global"?this.fileStore.saveGlobalCollections(A):this.fileStore.saveCollections(A),this.eventBus.emit("collection.changed",{scope:e})}create(e,A){let r={id:Wr.randomUUID(),name:e,folders:[],requests:[],variables:[]},n=this.loadCollections(A);return n.push(r),this.saveCollections(A,n),r}delete(e,A){let r=this.loadCollections(A).filter(n=>n.id!==e);this.saveCollections(A,r)}rename(e,A,r){let n=this.loadCollections(r),s=n.find(o=>o.id===e);s&&(s.name=A,this.saveCollections(r,n))}duplicate(e,A){let r=this.loadCollections(A),n=r.find(i=>i.id===e);if(!n)return null;let s=JSON.parse(JSON.stringify(n));s.id=Wr.randomUUID(),s.name=`${n.name} (copy)`;let o=i=>{for(let a of i){a.id=Wr.randomUUID();for(let l of a.requests)l.id=Wr.randomUUID();o(a.folders)}};for(let i of s.requests)i.id=Wr.randomUUID();return o(s.folders),r.push(s),this.saveCollections(A,r),s}saveMeta(e,A,r){let n=this.loadCollections(A),s=n.find(o=>o.id===e);s&&(Object.assign(s,r),this.saveCollections(A,n))}createFolder(e,A,r,n){let s=this.loadCollections(A),o=s.find(l=>l.id===e);if(!o)return null;let i={id:Wr.randomUUID(),name:r,requests:[],folders:[]},a=o;for(let l of n){let c=a.folders.find(f=>f.id===l);if(!c)return null;a=c}return a.folders.push(i),this.saveCollections(A,s),i}deleteFolder(e,A,r,n){let s=this.loadCollections(A),o=s.find(a=>a.id===e);if(!o)return;let i=o;for(let a of n){let l=i.folders.find(c=>c.id===a);if(!l)return;i=l}i.folders=i.folders.filter(a=>a.id!==r),this.saveCollections(A,s)}saveRequest(e,A,r,n){let s=this.loadCollections(A),o=s.find(l=>l.id===e);if(!o)return;let i=o;for(let l of n){let c=i.folders.find(f=>f.id===l);if(!c)return;i=c}let a=i.requests.findIndex(l=>l.id===r.id);a>=0?i.requests[a]=r:i.requests.push(r),this.saveCollections(A,s)}deleteRequest(e,A,r,n){let s=this.loadCollections(A),o=s.find(a=>a.id===e);if(!o)return;let i=o;for(let a of n){let l=i.folders.find(c=>c.id===a);if(!l)return;i=l}i.requests=i.requests.filter(a=>a.id!==r),this.saveCollections(A,s)}};var er=class{constructor(e,A,r){this.fileStore=e;this.logger=A;this.eventBus=r}load(e){return e==="global"?this.fileStore.loadGlobalEnvironments():this.fileStore.loadEnvironments()}save(e,A){let r=this.load(A),n=r.findIndex(s=>s.id===e.id);n>=0?r[n]=e:r.push(e),A==="global"?this.fileStore.saveGlobalEnvironments(r):this.fileStore.saveEnvironments(r),this.eventBus.emit("environment.changed",{scope:A})}delete(e,A){let r=this.load(A).filter(n=>n.id!==e);A==="global"?this.fileStore.saveGlobalEnvironments(r):this.fileStore.saveEnvironments(r),this.eventBus.emit("environment.changed",{scope:A})}getActiveId(e){return e==="global"?this.fileStore.loadGlobalActiveEnvironmentId():this.fileStore.loadActiveEnvironmentId()}setActiveId(e,A){A==="global"?this.fileStore.saveGlobalActiveEnvironmentId(e):this.fileStore.saveActiveEnvironmentId(e),this.eventBus.emit("environment.changed",{scope:A})}};var tr=class{constructor(e,A,r){this.fileStore=e;this.logger=A;this.eventBus=r}load(e){return e==="global"?this.fileStore.loadGlobalHistory():this.fileStore.loadHistory()}save(e,A){A==="global"?this.fileStore.saveGlobalHistory(e):this.fileStore.saveHistory(e),this.eventBus.emit("history.changed",{scope:A})}clear(e){this.save([],e)}delete(e,A){let r=this.load(A).filter(n=>n.id!==e);this.save(r,A)}append(e,A,r=500){let n=this.load(A);for(n.unshift(e);n.length>r;)n.pop();this.save(n,A)}};var Ar=class{constructor(e,A,r){this.fileStore=e;this.logger=A;this.eventBus=r}loadTabSettings(){return this.fileStore.loadTabSettings()}saveTabSetting(e,A){this.fileStore.saveTabSetting(e,A),this.eventBus.emit("settings.changed",{key:e})}saveUiZoom(e){this.fileStore.saveUiZoom(e),this.eventBus.emit("settings.changed",{key:"uiZoom"})}loadCookiesEnabled(){return this.fileStore.loadCookiesEnabled()}saveCookiesEnabled(e){this.fileStore.saveCookiesEnabled(e),this.eventBus.emit("cookies.changed",{})}loadProxies(){return this.fileStore.loadProxies()}saveProxies(e){this.fileStore.saveProxies(e)}loadDefaultProxyId(){return this.fileStore.loadDefaultProxyId()}saveDefaultProxyId(e){this.fileStore.saveDefaultProxyId(e)}loadSession(){return this.fileStore.loadSession()}saveSession(e){this.fileStore.saveSession(e)}};function EY(t){for(let[e,A]of Object.entries(t))if(e.toLowerCase()==="content-type")return A.toLowerCase();return""}function wh(t){if(t===null)return"null";if(Array.isArray(t))return t.length===0?"array<empty>":`array<${[...new Set(t.map(wh))].sort().join("|")}>`;if(typeof t=="object"){let e=t;return`{${Object.keys(e).sort().map(r=>`${r}:${wh(e[r])}`).join(",")}}`}return typeof t}function Rh(t){let e=EY(t.headers),A=t.body.length>500?`${t.body.slice(0,500)}\u2026`:t.body;try{let r=JSON.parse(t.body),n=wh(r);return{signature:`json:${n}`,summary:n.length>200?`${n.slice(0,200)}\u2026`:n,contentType:e,sampleBody:A}}catch{let r=t.body.trim().length===0?"empty":"text";return{signature:`${e||"unknown"}:${r}`,summary:`${e||"unknown"} ${r}`,contentType:e,sampleBody:A}}}function fY(t,e){let A=t.find(r=>r.status===e);return A||(A={status:e,latestVariantId:null,variants:[]},t.push(A)),A}var rr=class{constructor(e,A,r){this.fileStore=e;this.logger=A;this.eventBus=r}createSnapshotRecord(e,A){return{id:Date.now().toString()+Math.random().toString(36).slice(2),timestamp:Date.now(),request:e,response:A}}processResponse(e,A,r){let n=this.fileStore.loadSnapshots(),s=this.createSnapshotRecord(e,A),o=n.find(f=>f.name===r);o?o.records.push(s):(o={id:Date.now().toString()+Math.random().toString(36).slice(2),name:r,createdAt:Date.now(),baseRequest:e,records:[s],responseContracts:[]},n.push(o)),o.responseContracts||(o.responseContracts=[]);let i=Rh(A),a=fY(o.responseContracts,A.status),l=a.variants.find(f=>f.signature===i.signature);if(l)return l.lastSeen=Date.now(),l.occurrences++,a.latestVariantId=l.id,this.fileStore.saveSnapshots(n),null;let c=Date.now().toString()+Math.random().toString(36).slice(2);return a.variants.push({id:c,signature:i.signature,summary:i.summary,sampleBody:i.sampleBody,contentType:i.contentType,firstSeen:Date.now(),lastSeen:Date.now(),occurrences:1,history:[]}),a.latestVariantId=c,this.fileStore.saveSnapshots(n),a.variants.length>1?{promptId:Date.now().toString()+Math.random().toString(36).slice(2),snapshotId:o.id,status:A.status,signature:i.signature,summary:i.summary}:null}};var nr=class{listeners=new Map;emit(e,A){let r=this.listeners.get(e);r&&r.forEach(n=>{try{n(A)}catch{}})}on(e,A){let r=e;return this.listeners.has(r)||this.listeners.set(r,new Set),this.listeners.get(r).add(A),()=>this.off(e,A)}off(e,A){this.listeners.get(e)?.delete(A)}removeAllListeners(){this.listeners.clear()}};var sr=class{constructor(e={}){this.values=e}get(e,A){return e in this.values?this.values[e]:A}};var Jn={debug(){},info(){},warn(){},error(){}};var Fh=oe(require("crypto"));var wm=oe(require("http")),Rm=oe(require("crypto")),bm=oe(require("fs")),Nm=oe(require("path"));function mm(t){return!t||t==="/"?"/":t.replace(/\/+$/,"")||"/"}function Sm(t){let e=mm(t);if(e==="/")return{segments:[],paramNames:[]};let A=e.slice(1).split("/"),r=[];for(let n of A)n.startsWith(":")&&r.push(n.slice(1));return{segments:A,paramNames:r}}function IY(t){let{segments:e}=Sm(t);return e.filter(A=>!A.startsWith(":")).length}function Dm(t,e,A){let r=mm(e),n=r==="/"?[]:r.slice(1).split("/"),s=t.toUpperCase(),o=null,i=-1;for(let a of A){if(!a.enabled||a.method.toUpperCase()!==s)continue;let{segments:l}=Sm(a.path);if(l.length!==n.length)continue;let c={},f=!0;for(let g=0;g<l.length;g++){let I=l[g],S=n[g];if(I.startsWith(":")){if(!S){f=!1;break}c[I.slice(1)]=S}else if(I!==S){f=!1;break}}if(!f)continue;let d=IY(a.path);d>i&&(i=d,o={route:a,params:c})}return o}function Ra(t,e,A){let r={};for(let n of t){if(!n.enabled)continue;let s=n.path.replace(/:([^/]+)/g,"{$1}"),o=n.path.match(/:([^/]+)/g),i=[];if(o)for(let c of o)i.push({name:c.slice(1),in:"path",required:!0,schema:{type:"string"}});let a=n.method.toLowerCase(),l={summary:`${n.method.toUpperCase()} ${n.path}`,responses:{[String(n.response.status)]:{description:"Mock response"}}};i.length>0&&(l.parameters=i),r[s]||(r[s]={}),r[s][a]=l}return{openapi:"3.0.0",info:{title:`${e} - Mock Server`,version:"1.0.0",description:"Auto-generated OpenAPI document for Open Post mock server"},servers:[{url:`http://127.0.0.1:${A}`}],paths:r}}var CY={".json":"application/json",".xml":"application/xml",".html":"text/html",".css":"text/css",".js":"application/javascript",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".svg":"image/svg+xml",".webp":"image/webp",".pdf":"application/pdf",".mp4":"video/mp4",".webm":"video/webm",".zip":"application/zip",".csv":"text/csv",".txt":"text/plain"},QY="application/octet-stream";function BY(t){let e=Nm.extname(t).toLowerCase();return CY[e]||QY}function pY(t){return Number.isInteger(t)&&t>=1024&&t<=65535}var _r=class{id;server=null;port=3100;routes=[];running=!1;logEntries=[];maxLogEntries=100;swaggerEnabled=!1;mcpEnabled=!1;serverName="Mock Server";variables={};onStatusChange=null;onLogEntry=null;constructor(e){this.id=e}getId(){return this.id}setSwaggerEnabled(e){this.swaggerEnabled=e}setMcpEnabled(e){this.mcpEnabled=e}isMcpEnabled(){return this.mcpEnabled}setServerName(e){this.serverName=e}setVariables(e){this.variables=e}start(e,A){return new Promise((r,n)=>{if(this.running){n(new Error(`Mock server is already running on port ${this.port}`));return}if(!pY(e)){let s=`Port ${e} is outside the valid range (1024\u201365535)`;this.emitStatus({running:!1,port:e,error:s}),n(new Error(s));return}this.port=e,this.routes=A,this.server=wm.createServer((s,o)=>{this.handleRequest(s,o)}),this.server.on("error",s=>{if(s.code==="EADDRINUSE"){let o=`Port ${e} is already in use`;this.cleanup(),this.emitStatus({running:!1,port:e,error:o}),n(new Error(o))}else{let o=`Server error: ${s.message}`;this.cleanup(),this.emitStatus({running:!1,port:this.port,error:o}),n(new Error(o))}}),this.server.listen(e,"127.0.0.1",()=>{this.running=!0,this.emitStatus({running:!0,port:e}),r()})})}stop(){return new Promise(e=>{if(!this.running||!this.server){e();return}this.server.close(()=>{this.cleanup(),this.emitStatus({running:!1,port:this.port}),e()})})}isRunning(){return this.running}getPort(){return this.port}getStatus(){return{running:this.running,port:this.port}}updateRoutes(e){this.routes=e}getLog(){return[...this.logEntries]}clearLog(){this.logEntries=[]}setMaxLogEntries(e){this.maxLogEntries=Math.max(1,Math.floor(e)),this.logEntries.length>this.maxLogEntries&&(this.logEntries=this.logEntries.slice(-this.maxLogEntries))}setOnStatusChange(e){this.onStatusChange=e}setOnLogEntry(e){this.onLogEntry=e}handleRequest(e,A){let r=(e.method||"GET").toUpperCase(),n=e.url||"/";if(this.swaggerEnabled&&n==="/_openapi.json"){let o=Ra(this.routes,this.serverName,this.port),i=JSON.stringify(o,null,2);A.writeHead(200,{"Content-Type":"application/json","Access-Control-Allow-Origin":"*","X-Mock-Server":"Open Post"}),A.end(i),this.addLogEntry(r,n,!0,void 0,"_openapi.json",200);return}if(this.swaggerEnabled&&n==="/_swagger"){let o=`<!DOCTYPE html>
151
+ <html lang="en">
152
+ <head>
153
+ <meta charset="UTF-8">
154
+ <title>${this.serverName} \u2014 Swagger UI</title>
155
+ <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@5/swagger-ui.css">
156
+ <style>body{margin:0} .topbar{display:none}</style>
157
+ </head>
158
+ <body>
159
+ <div id="swagger-ui"></div>
160
+ <script src="https://unpkg.com/swagger-ui-dist@5/swagger-ui-bundle.js"></script>
161
+ <script>SwaggerUIBundle({url:"http://127.0.0.1:${this.port}/_openapi.json",dom_id:"#swagger-ui",deepLinking:true,presets:[SwaggerUIBundle.presets.apis,SwaggerUIBundle.SwaggerUIStandalonePreset],layout:"BaseLayout"})</script>
162
+ </body>
163
+ </html>`;A.writeHead(200,{"Content-Type":"text/html; charset=utf-8","Access-Control-Allow-Origin":"*","X-Mock-Server":"Open Post"}),A.end(o),this.addLogEntry(r,n,!0,void 0,"_swagger",200);return}if(this.mcpEnabled&&n==="/mcp"&&r==="POST"){let o=[];e.on("data",i=>o.push(i)),e.on("end",()=>{let i=Buffer.concat(o).toString("utf-8");this.handleMcpRequest(i,A)});return}if(this.mcpEnabled&&n==="/mcp"&&r==="OPTIONS"){A.writeHead(204,{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, DELETE, OPTIONS","Access-Control-Allow-Headers":"*"}),A.end();return}if(r==="OPTIONS"){A.writeHead(204,{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, PATCH, DELETE, OPTIONS","Access-Control-Allow-Headers":"*","X-Mock-Server":"Open Post"}),A.end(),this.addLogEntry(r,n,!1,void 0,void 0,204);return}let s=Dm(r,n,this.routes);if(s){let{route:o,params:i}=s,a={"X-Mock-Server":"Open Post","Access-Control-Allow-Origin":"*"};for(let c of o.response.headers)c.enabled&&c.key&&(a[c.key]=Ee(c.value,this.variables));if(Object.keys(i).length>0&&(a["X-Mock-Params"]=JSON.stringify(i)),o.responseSource==="file"){if(!o.responsePath?.trim()){let f=JSON.stringify({error:"No file path configured for route"});A.writeHead(500,{"Content-Type":"application/json","X-Mock-Server":"Open Post","Access-Control-Allow-Origin":"*"}),A.end(f),this.addLogEntry(r,n,!0,o.id,o.name,500);return}let c=Ee(o.responsePath,this.variables);bm.promises.readFile(c).then(f=>{Object.keys(a).some(g=>g.toLowerCase()==="content-type")||(a["Content-Type"]=BY(c)),a["Content-Length"]=String(f.length),A.writeHead(o.response.status,a),A.end(f),this.addLogEntry(r,n,!0,o.id,o.name,o.response.status)}).catch(f=>{let g=f.code==="ENOENT"?"Mock file not found":"Mock file not readable",I=JSON.stringify({error:g,path:c});A.writeHead(500,{"Content-Type":"application/json","X-Mock-Server":"Open Post","Access-Control-Allow-Origin":"*"}),A.end(I),this.addLogEntry(r,n,!0,o.id,o.name,500)});return}let l=Ee(o.response.body,this.variables);A.writeHead(o.response.status,a),A.end(l),this.addLogEntry(r,n,!0,o.id,o.name,o.response.status)}else A.writeHead(404,{"Content-Type":"application/json","X-Mock-Server":"Open Post","Access-Control-Allow-Origin":"*"}),A.end(JSON.stringify({error:"No matching mock route",method:r,path:n})),this.addLogEntry(r,n,!1,void 0,void 0,404)}handleMcpRequest(e,A){let r;try{r=JSON.parse(e)}catch{A.writeHead(200,{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}),A.end(JSON.stringify({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}}));return}if(r.method&&r.id===void 0){A.writeHead(202,{"Access-Control-Allow-Origin":"*"}),A.end();return}let n=r.id,s=r.method,o=r.params||{},i={"Content-Type":"application/json","Access-Control-Allow-Origin":"*"},a=this.routes.filter(f=>f.enabled&&f.mcpDescription),l=f=>f.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_|_$/g,"")||"unnamed",c;switch(s){case"initialize":c={protocolVersion:"2024-11-05",capabilities:{tools:{}},serverInfo:{name:this.serverName,version:"1.0.0"}};break;case"ping":c={};break;case"tools/list":c={tools:a.map(f=>({name:l(f.name),description:f.mcpDescription,inputSchema:f.mcpInputSchema||{type:"object",properties:{}}}))},this.addLogEntry("JSON-RPC","tools/list",!0,void 0,void 0,200);break;case"tools/call":{let f=o.name,d=a.find(I=>l(I.name)===f);if(!d){A.writeHead(200,i),A.end(JSON.stringify({jsonrpc:"2.0",id:n,error:{code:-32602,message:`Unknown tool: ${f}`}}));return}c={content:[{type:"text",text:Ee(d.response.body,this.variables)}],isError:d.response.status>=400},this.addLogEntry("JSON-RPC",`tools/call:${f}`,!0,d.id,d.name,d.response.status);break}default:A.writeHead(200,i),A.end(JSON.stringify({jsonrpc:"2.0",id:n,error:{code:-32601,message:`Method not found: ${s}`}}));return}A.writeHead(200,i),A.end(JSON.stringify({jsonrpc:"2.0",id:n,result:c}))}addLogEntry(e,A,r,n,s,o){let i={id:Rm.randomUUID(),timestamp:Date.now(),method:e,path:A,matched:r,routeId:n,routeName:s,responseStatus:o};this.logEntries.push(i),this.logEntries.length>this.maxLogEntries&&(this.logEntries=this.logEntries.slice(-this.maxLogEntries)),this.onLogEntry&&this.onLogEntry(i)}cleanup(){this.running=!1,this.server=null}emitStatus(e){this.onStatusChange&&this.onStatusChange(e)}};var pA=oe(require("fs")),Na=oe(require("path")),km=oe(require("os")),ba=Na.join(km.homedir(),".openpost","global","server-registry.json");function Fm(){let t=Na.dirname(ba);pA.existsSync(t)||pA.mkdirSync(t,{recursive:!0})}function ka(t){try{return process.kill(t,0),!0}catch{return!1}}function Pn(){try{return Fm(),pA.existsSync(ba)?JSON.parse(pA.readFileSync(ba,"utf-8")):[]}catch{return[]}}function bh(t){Fm(),pA.writeFileSync(ba,JSON.stringify(t,null,2))}function fo(){let t=Pn(),e=t.filter(A=>ka(A.pid));return e.length!==t.length&&bh(e),e}function Io(t){let e=Pn().filter(A=>!(A.id===t.id&&A.type===t.type));e.push({...t,pid:process.pid,startedAt:Date.now()}),bh(e)}function Wn(t,e){let A=Pn().filter(r=>!(r.id===t&&r.type===e));bh(A)}function Co(t,e){let A=Pn().find(r=>r.id===t&&r.type===e);return A&&ka(A.pid)?A:null}function Fa(t){let e=Pn().find(A=>A.port===t);return e&&ka(e.pid)?e:null}function Um(t,e){let A=Pn().find(r=>r.id===t&&r.type===e);if(!A)return!1;try{ka(A.pid)&&process.kill(A.pid,"SIGTERM")}catch{}return Wn(t,e),!0}function Mm(){return fo()}var Ma=oe(require("crypto")),ir=oe(require("os")),kh=()=>null,yY=()=>{};function va(t,e){kh=t,yY=e,or=null}var mY=`-----BEGIN PUBLIC KEY-----
164
+ MCowBQYDK2VwAyEAPdS5f0b0QGYt+YxKmm1Dk1SsXe8GZAxM6DuJWdXxltQ=
165
+ -----END PUBLIC KEY-----`,or=null,SY=6e4;function Tm(t){let e=t.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";return Buffer.from(e,"base64")}function _n(t){try{let e=t.trim().split(".");if(e.length!==3)return{valid:!1,expired:!1,payload:null};let A=`${e[0]}.${e[1]}`,r=Tm(e[2]);if(!Ma.verify(null,Buffer.from(A,"utf8"),mY,r))return{valid:!1,expired:!1,payload:null};let s=JSON.parse(Tm(e[1]).toString());if(s.aud!=="open-post")return{valid:!1,expired:!1,payload:s};if(!s.exp)return{valid:!1,expired:!1,payload:s};let o=Math.floor(Date.now()/1e3),i=s.exp<o;return{valid:!i,expired:i,payload:s}}catch{return{valid:!1,expired:!1,payload:null}}}function jr(){if(or&&Date.now()-or.checkedAt<SY)return or.valid;let t=kh();if(!t)return or={valid:!1,expired:!1,expiry:null,checkedAt:Date.now()},!1;let e=_n(t);return or={valid:e.valid,expired:e.expired,expiry:e.payload?.exp??null,checkedAt:Date.now()},e.valid}function xe(){if(!jr()){let{AppError:t,ErrorCode:e}=(Nh(),Xh(vm));throw new t("License required for this feature",e.LICENSE_REQUIRED)}}function Bo(){or=null}function Ta(){let t=kh();if(!t)return{valid:!1,expired:!1,expiry:null,machineId:Lm()};let e=_n(t);return or={valid:e.valid,expired:e.expired,expiry:e.payload?.exp??null,checkedAt:Date.now()},{valid:e.valid,expired:e.expired,expiry:e.payload?.exp??null,machineId:Lm()}}function Lm(){let t=`${ir.hostname()}|${ir.platform()}|${ir.arch()}|${ir.homedir()}`;return Ma.createHash("sha256").update(t).digest("hex").slice(0,16)}var jn=class{servers=new Map;configs=[];store;serverCap=5;setStore(e){this.store=e}workspacePath=null;currentVariables={};onStatusChange=null;onLogEntry=null;setWorkspacePath(e){this.workspacePath=e}createServer(){if(xe(),this.configs.length>=this.serverCap)throw new Error(`Maximum number of mock servers (${this.serverCap}) has been reached. Delete an existing server or increase the cap.`);let e=Fh.randomUUID(),A=`Mock Server ${this.configs.length+1}`,r=this.nextAvailablePort(),n={id:e,name:A,port:r,routes:[],autoStart:!1,maxLogEntries:100,swaggerEnabled:!1};return this.configs.push(n),this.store.saveMockServers(this.configs),n}async deleteServer(e){let A=this.configs.findIndex(n=>n.id===e);if(A===-1)throw new Error(`Mock server with id "${e}" not found`);let r=this.servers.get(e);r&&r.isRunning()&&await r.stop(),this.servers.delete(e),this.configs.splice(A,1),this.store.saveMockServers(this.configs)}renameServer(e,A){let r=this.findConfig(e);r.name=A;let n=this.servers.get(e);n&&n.setServerName(A),this.store.saveMockServers(this.configs)}async startServer(e){xe();let A=this.findConfig(e),r=Co(e,"mock");if(r&&r.pid!==process.pid)throw new Error(`Server already running in another window (PID ${r.pid})`);let n=Fa(A.port);if(n&&n.id!==e)throw new Error(`Port ${A.port} is in use by "${n.name}" (PID ${n.pid})`);for(let o of this.configs)if(o.id!==e&&o.port===A.port){let i=this.servers.get(o.id);if(i&&i.isRunning())throw new Error(`Port ${A.port} is already in use by mock server "${o.name}"`)}let s=this.servers.get(e);s||(s=new _r(e),s.setServerName(A.name),s.setSwaggerEnabled(A.swaggerEnabled),s.setMcpEnabled(A.mcpEnabled??!1),s.setMaxLogEntries(A.maxLogEntries),this.servers.set(e,s)),s.setOnStatusChange(o=>{this.onStatusChange&&this.onStatusChange(e,o)}),s.setOnLogEntry(o=>{this.onLogEntry&&this.onLogEntry(e,o)}),s.setVariables(this.currentVariables),await s.start(A.port,A.routes),Io({id:e,type:"mock",port:A.port,workspace:this.workspacePath,scope:"local",name:A.name})}async stopServer(e){this.findConfig(e);let A=this.servers.get(e);A&&await A.stop(),Wn(e,"mock")}addRoute(e,A){let r=this.findConfig(e);r.routes.push(A);let n=this.servers.get(e);n&&n.updateRoutes(r.routes),this.store.saveMockServers(this.configs)}updateRoute(e,A){let r=this.findConfig(e),n=r.routes.findIndex(o=>o.id===A.id);if(n===-1)throw new Error(`Route with id "${A.id}" not found on server "${e}"`);r.routes[n]=A;let s=this.servers.get(e);s&&s.updateRoutes(r.routes),this.store.saveMockServers(this.configs)}deleteRoute(e,A){let r=this.findConfig(e),n=r.routes.findIndex(o=>o.id===A);if(n===-1)throw new Error(`Route with id "${A}" not found on server "${e}"`);r.routes.splice(n,1);let s=this.servers.get(e);s&&s.updateRoutes(r.routes),this.store.saveMockServers(this.configs)}clearLog(e){this.findConfig(e);let A=this.servers.get(e);A&&A.clearLog()}updateSetting(e,A,r){let n=this.findConfig(e),s=!1;switch(A){case"port":{n.port=r;let o=this.servers.get(e);o&&o.isRunning()&&(o.stop(),s=!0);break}case"autoStart":{n.autoStart=r;break}case"maxLogEntries":{n.maxLogEntries=r;let o=this.servers.get(e);o&&o.setMaxLogEntries(r);break}case"swaggerEnabled":{n.swaggerEnabled=r;let o=this.servers.get(e);o&&o.setSwaggerEnabled(r);break}case"mcpEnabled":{n.mcpEnabled=r;let o=this.servers.get(e);o&&o.setMcpEnabled(r);break}default:throw new Error(`Unknown setting key "${A}"`)}return this.store.saveMockServers(this.configs),{restartNeeded:s}}exportServer(e){return{openpost_mock_server:"1.0",server:{...this.findConfig(e)}}}importServer(e){if(!e||e.openpost_mock_server!=="1.0")throw new Error('Invalid mock server collection: missing or unsupported version. Expected "openpost_mock_server": "1.0".');if(this.configs.length>=this.serverCap)throw new Error(`Maximum number of mock servers (${this.serverCap}) has been reached. Delete an existing server or increase the cap before importing.`);let A={...e.server};A.id=Fh.randomUUID();let r;if(new Set(this.configs.map(s=>s.port)).has(A.port)){let s=A.port;A.port=this.nextAvailablePort(),r=`Port ${s} was already in use. Assigned port ${A.port} instead.`}return this.configs.push(A),this.store.saveMockServers(this.configs),{config:A,portChanged:r}}getConfigs(){return[...this.configs]}getServerStatus(e){let A=this.findConfig(e),r=this.servers.get(e);return r?r.getStatus():{running:!1,port:A.port}}getServerCap(){return this.serverCap}setServerCap(e){if(!Number.isInteger(e)||e<1||e>20)throw new Error(`Server cap must be an integer between 1 and 20 (got ${e})`);this.serverCap=e,this.store.saveMaxMockServers(e)}setConfigs(e){this.configs=e}setServerCapInternal(e){this.serverCap=e}async loadAndAutoStart(){this.store.migrateLegacyMockConfig(),fo(),this.configs=this.store.loadMockServers(),this.serverCap=this.store.loadMaxMockServers();for(let e of this.configs){let A=new _r(e.id);A.setServerName(e.name),A.setSwaggerEnabled(e.swaggerEnabled),A.setMcpEnabled(e.mcpEnabled??!1),A.setMaxLogEntries(e.maxLogEntries),A.setVariables(this.currentVariables),this.servers.set(e.id,A),A.setOnStatusChange(r=>{this.onStatusChange&&this.onStatusChange(e.id,r)}),A.setOnLogEntry(r=>{this.onLogEntry&&this.onLogEntry(e.id,r)})}for(let e of this.configs)if(e.autoStart){let A=Co(e.id,"mock");if(A&&A.pid!==process.pid){console.log(`[MockServerManager] "${e.name}" already running in PID ${A.pid}, skipping auto-start`);continue}try{await this.servers.get(e.id).start(e.port,e.routes),Io({id:e.id,type:"mock",port:e.port,workspace:this.workspacePath,scope:"local",name:e.name})}catch(r){console.error(`[MockServerManager] Failed to auto-start "${e.name}" on port ${e.port}:`,r)}}}async stopAll(){for(let[e,A]of this.servers)if(A.isRunning())try{await A.stop(),Wn(e,"mock")}catch(r){console.error(`[MockServerManager] Failed to stop server "${e}":`,r)}}updateVariables(e){this.currentVariables=e;for(let A of this.servers.values())A.setVariables(e)}nextAvailablePort(){let e=new Set(this.configs.map(r=>r.port)),A=3100;for(;e.has(A);)A++;return A}findConfig(e){let A=this.configs.find(r=>r.id===e);if(!A)throw new Error(`Mock server with id "${e}" not found`);return A}};var It=oe(require("crypto")),AA=oe(require("fs")),Ya=oe(require("path")),Ym=oe(require("os")),xm="aes-256-gcm",La=1e5,xa="sha512",Hm=32,DY=12,Ha=32,Zn=class t{static VAULT_PATH=Ya.join(Ym.homedir(),".openpost","global","vault.enc");decryptedData=null;derivedKey=null;currentSalt=null;exists(){return AA.existsSync(t.VAULT_PATH)}isUnlocked(){return this.decryptedData!==null}async create(e){let A={secrets:{},certificates:[]},r=It.randomBytes(Hm),n=It.pbkdf2Sync(e,r,La,Ha,xa);this.writeVaultFile(A,n,r),this.decryptedData=A,this.derivedKey=n,this.currentSalt=r}async unlock(e){if(!this.exists())throw new Error("Vault file does not exist. Create a vault first.");let A=AA.readFileSync(t.VAULT_PATH,"utf-8"),r=JSON.parse(A),n=Buffer.from(r.salt,"base64"),s=Buffer.from(r.iv,"base64"),o=Buffer.from(r.authTag,"base64"),i=Buffer.from(r.ciphertext,"base64"),a=It.pbkdf2Sync(e,n,La,Ha,xa);try{let l=this.decrypt(a,s,o,i);this.decryptedData=l,this.derivedKey=a,this.currentSalt=n}catch{throw new Error("Invalid password. Unable to decrypt the vault.")}}lock(){this.decryptedData=null,this.derivedKey=null,this.currentSalt=null}async changePassword(e,A){let r=AA.readFileSync(t.VAULT_PATH,"utf-8"),n=JSON.parse(r),s=Buffer.from(n.salt,"base64"),o=Buffer.from(n.iv,"base64"),i=Buffer.from(n.authTag,"base64"),a=Buffer.from(n.ciphertext,"base64"),l=It.pbkdf2Sync(e,s,La,Ha,xa),c;try{c=this.decrypt(l,o,i,a)}catch{throw new Error("Current password is incorrect.")}let f=It.randomBytes(Hm),d=It.pbkdf2Sync(A,f,La,Ha,xa);this.writeVaultFile(c,d,f),this.decryptedData=c,this.derivedKey=d,this.currentSalt=f}getSecret(e){return this.requireUnlocked(),this.decryptedData.secrets[e]}getAllSecrets(){return this.requireUnlocked(),{...this.decryptedData.secrets}}async setSecret(e,A){this.requireUnlocked(),this.decryptedData.secrets[e]=A,await this.persist()}async deleteSecret(e){this.requireUnlocked(),delete this.decryptedData.secrets[e],await this.persist()}getCertificates(){return this.requireUnlocked(),[...this.decryptedData.certificates]}async saveCertificate(e){this.requireUnlocked();let A=this.decryptedData.certificates,r=A.findIndex(n=>n.id===e.id);r>=0?A[r]=e:A.push(e),await this.persist()}async deleteCertificate(e){this.requireUnlocked(),this.decryptedData.certificates=this.decryptedData.certificates.filter(A=>A.id!==e),await this.persist()}requireUnlocked(){if(!this.decryptedData)throw new Error("Vault is locked. Unlock the vault first.")}decrypt(e,A,r,n){let s=It.createDecipheriv(xm,e,A);s.setAuthTag(r);let o=Buffer.concat([s.update(n),s.final()]);return JSON.parse(o.toString("utf8"))}writeVaultFile(e,A,r){let n=It.randomBytes(DY),s=It.createCipheriv(xm,A,n),o=JSON.stringify(e),i=Buffer.concat([s.update(o,"utf8"),s.final()]),a=s.getAuthTag(),l={salt:r.toString("base64"),iv:n.toString("base64"),authTag:a.toString("base64"),ciphertext:i.toString("base64")},c=Ya.dirname(t.VAULT_PATH);AA.existsSync(c)||AA.mkdirSync(c,{recursive:!0}),AA.writeFileSync(t.VAULT_PATH,JSON.stringify(l,null,2),"utf-8")}async persist(){this.writeVaultFile(this.decryptedData,this.derivedKey,this.currentSalt)}};var Xn=class t{builtInVault;getBuiltInVault(){return this.builtInVault}secretStorage=null;store=null;static KEEP_UNLOCKED_KEY="openpost.vault.keepUnlocked";setStore(e){this.store=e}static VAULT_PASSWORD_KEY="openpost.vault.masterPassword";constructor(){this.builtInVault=new Zn}setSecretStorage(e){this.secretStorage=e}async isKeepUnlocked(){return this.secretStorage?await this.secretStorage.get(t.KEEP_UNLOCKED_KEY)==="true":!1}async setKeepUnlocked(e,A){this.secretStorage&&(e&&A?(await this.secretStorage.store(t.KEEP_UNLOCKED_KEY,"true"),await this.secretStorage.store(t.VAULT_PASSWORD_KEY,A)):(await this.secretStorage.store(t.KEEP_UNLOCKED_KEY,"false"),await this.secretStorage.delete(t.VAULT_PASSWORD_KEY)))}async tryAutoUnlock(){if(!this.secretStorage||!this.builtInVault.exists())return!1;if(this.builtInVault.isUnlocked())return!0;if(await this.secretStorage.get(t.KEEP_UNLOCKED_KEY)!=="true")return!1;let A=await this.secretStorage.get(t.VAULT_PASSWORD_KEY);if(!A)return!1;try{return await this.builtInVault.unlock(A),!0}catch{return await this.secretStorage.delete(t.VAULT_PASSWORD_KEY),await this.secretStorage.store(t.KEEP_UNLOCKED_KEY,"false"),!1}}loadProviders(){return this.store.loadVaultProviders()}saveProvider(e){xe();let A=this.store.loadVaultProviders(),r=A.findIndex(n=>n.id===e.id);r>=0?A[r]=e:A.push(e),this.store.saveVaultProviders(A)}deleteProvider(e){let A=this.store.loadVaultProviders().filter(r=>r.id!==e);this.store.saveVaultProviders(A)}loadSecretSets(){return this.store.loadSecretSets()}saveSecretSet(e){xe();let A=this.store.loadSecretSets(),r=A.findIndex(n=>n.id===e.id);r>=0?A[r]=e:A.push(e),this.store.saveSecretSets(A)}deleteSecretSet(e){let A=this.store.loadSecretSets().filter(r=>r.id!==e);this.store.saveSecretSets(A)}async resolveSecretVariables(e,A){if(!this.builtInVault.isUnlocked())return{};let r=this.store.loadActiveSecretSetId();if(!r)return{};let n={},s=this.store.loadSecretSets(),o=this.store.loadVaultProviders(),i=new Set(o.filter(l=>l.type==="built-in").map(l=>l.id)),a=s.find(l=>l.id===r);if(!a||!i.has(a.providerId))return{};for(let l of a.entries){if(!l.enabled||!e.includes(l.variableName))continue;let c=this.builtInVault.getSecret(l.key);c!==void 0&&(n[l.variableName]=c)}return n}getActiveSecretSetId(){return this.store.loadActiveSecretSetId()}setActiveSecretSetId(e){this.store.saveActiveSecretSetId(e)}async createBuiltInVault(e){xe(),await this.builtInVault.create(e)}async unlockBuiltInVault(e){xe(),await this.builtInVault.unlock(e)}lockBuiltInVault(){this.builtInVault.lock()}async changeVaultPassword(e,A){await this.builtInVault.changePassword(e,A)}getVaultStatus(){return{builtInVaultExists:this.builtInVault.exists(),builtInVaultUnlocked:this.builtInVault.isUnlocked()}}async getVaultStatusAsync(){return{builtInVaultExists:this.builtInVault.exists(),builtInVaultUnlocked:this.builtInVault.isUnlocked(),keepUnlocked:await this.isKeepUnlocked()}}async saveBuiltInSecret(e,A){xe(),await this.builtInVault.setSecret(e,A)}async deleteBuiltInSecret(e){xe(),await this.builtInVault.deleteSecret(e)}getAllSecrets(){return this.builtInVault.isUnlocked()?this.builtInVault.getAllSecrets():{}}loadCertificates(){return this.builtInVault.isUnlocked()?this.builtInVault.getCertificates():[]}async saveCertificate(e){await this.builtInVault.saveCertificate(e)}async deleteCertificate(e){await this.builtInVault.deleteCertificate(e)}dispose(){this.builtInVault.lock()}};var U0=oe(require("http")),tt=oe(require("crypto"));var Gm=oe(require("http")),Mh=oe(require("crypto"));function Uh(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_|_$/g,"")||"untitled"}function Om(t){let e={},A=[],r=(t.url.match(/:(\w+)/g)||[]).map(n=>n.slice(1));for(let n of r)e[n]={type:"string",description:"Path parameter"},A.push(n);for(let n of t.params.filter(s=>s.enabled&&s.key.trim()))e[n.key]||(e[n.key]={type:"string",description:"Query parameter"});if(t.body.type==="json"&&t.body.raw)try{let n=JSON.parse(t.body.raw.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,""));if(typeof n=="object"&&n!==null&&!Array.isArray(n))for(let[s,o]of Object.entries(n)){let i=o===null?"string":typeof o=="number"?"number":typeof o=="boolean"?"boolean":Array.isArray(o)?"array":typeof o=="object"?"object":"string";e[s]={type:i,description:"Body field"}}}catch{}if((t.body.type==="form-data"||t.body.type==="x-www-form-urlencoded")&&t.body.formData)for(let n of t.body.formData.filter(s=>s.enabled&&s.key.trim()))e[n.key]||(e[n.key]={type:"string",description:"Form field"});if(t.body.formDataFiles)for(let n of t.body.formDataFiles.filter(s=>s.enabled&&s.key.trim()))e[n.key]||(e[n.key]={type:"string",description:n.fieldType==="file"?"File field":"Form field"});return{type:"object",properties:e,...A.length?{required:A}:{}}}var Kn=class{collection;envVars;proxy;tlsCerts;constructor(e,A,r,n){this.collection=e,this.envVars={...A},this.proxy=r||null,this.tlsCerts=n}updateCollection(e){this.collection=e}updateVariables(e){this.envVars={...e}}updateTlsConfig(e,A){this.proxy=e,this.tlsCerts=A}getEnvVars(){return this.envVars}listTools(){let e=[],A=(r,n)=>{for(let s of n){let o=s.mcpInputSchema?JSON.parse(JSON.stringify(s.mcpInputSchema)):Om(s);o.required&&Array.isArray(o.required)&&o.properties&&(o.required=o.required.filter(i=>!(i in this.envVars&&this.envVars[i])),o.required.length===0&&delete o.required),e.push({name:Uh(s.name||s.id),description:s.mcpDescription||`${s.method} ${s.url}${s.name?" \u2014 "+s.name:""}`,inputSchema:o})}for(let s of r)A(s.folders,s.requests)};return A(this.collection.folders,this.collection.requests),e}async callTool(e,A){let r=null,n=[],s=(m,R,y)=>{for(let U of R)if(Uh(U.name||U.id)===e){r=U,n=y;return}for(let U of m)r||s(U.folders,U.requests,[...y,U])};if(s(this.collection.folders,this.collection.requests,[]),!r)throw new Error(`Unknown tool: ${e}`);let o=r,i=o.auth;if(o.inheritAuth||!i||i.type==="none"){for(let m=n.length-1;m>=0;m--){let R=n[m];if(R.auth&&R.auth.type!=="none"&&!R.inheritAuth){i=R.auth;break}}(!i||i.type==="none")&&(i=this.collection.auth||{type:"none"})}let a=o.url,l=new Set,c={...this.envVars},f=/\{\{(\w+)\}\}/g,d=a+" "+o.headers.map(m=>m.key+m.value).join(" ")+" "+(o.body.raw||"")+" "+JSON.stringify(i||{}),g;for(;(g=f.exec(d))!==null;)A[g[1]]!==void 0&&(c[g[1]]=String(A[g[1]]),l.add(g[1]));let I=!1;A._body!==void 0&&(l.add("_body"),I=!0);let S=!1;A._query!==void 0&&typeof A._query=="object"&&(l.add("_query"),S=!0),a=a.replace(/:(\w+)/g,(m,R)=>A[R]!==void 0?(l.add(R),String(A[R])):`:${R}`);let p=S?Object.entries(A._query).map(([m,R])=>({key:m,value:String(R),enabled:!0})):o.params.map(m=>A[m.key]!==void 0?(l.add(m.key),{...m,value:String(A[m.key])}):{...m});for(let[m,R]of Object.entries(A))!l.has(m)&&!S&&o.body.type==="none"&&p.push({key:m,value:String(R),enabled:!0});let u={...o.body};if(I){let m=typeof A._body=="string"?A._body:JSON.stringify(A._body),R="raw";try{JSON.parse(m),R="json"}catch{}u={type:R,raw:m}}else if(u.type==="json"&&u.raw)try{let m=JSON.parse(u.raw.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,""));if(typeof m=="object"&&m!==null){for(let[R,y]of Object.entries(A))l.has(R)||(m[R]=y,l.add(R));u={...u,raw:JSON.stringify(m)}}}catch{}let h={...o,url:a,params:p,headers:[...o.headers],body:u,auth:i};if(o.inheritScripts){let m=BA(this.collection,n.map(R=>R.id),o);h.preRequestScript=m.pre,h.testScript=m.test}let E=tA(h,c);for(let[m,R]of Object.entries(E.headers))h.headers.push({key:m,value:R,enabled:!0});for(let[m,R]of Object.entries(E.queryParams))h.params.push({key:m,value:R,enabled:!0});let B=h;if(h.preRequestScript){let m=ft(h.preRequestScript,{request:h,environment:c});m.updatedRequest&&(B=m.updatedRequest),m.environmentUpdates&&Object.assign(c,m.environmentUpdates)}let Q=await Et(B,c,!0,this.proxy,void 0,this.tlsCerts);if(i?.type==="digest"&&Q.status===401){let m=Object.entries(Q.headers).find(([R])=>R.toLowerCase()==="www-authenticate");if(m&&m[1].toLowerCase().startsWith("digest")){let{username:R="",password:y=""}=i.digest||{},U=B.url.replace(/\{\{(\w+)\}\}/g,(N,M)=>c[M]??`{{${M}}}`),k;try{let N=new URL(U);k=N.pathname+N.search}catch{k=U}let q=N=>N.replace(/\{\{(\w+)\}\}/g,(M,H)=>c[H]??`{{${H}}}`),F=jA(m[1],q(R),q(y),B.method,k);B.headers=B.headers.filter(N=>N.key.toLowerCase()!=="authorization"),B.headers.push({key:"Authorization",value:F,enabled:!0}),Q=await Et(B,c,!0,this.proxy,void 0,this.tlsCerts)}}if(o.setVariables?.length){let m=QA(o.setVariables,Q);Object.assign(c,m),Object.assign(this.envVars,m)}if(h.testScript){let m=ft(h.testScript,{request:B,response:Q,environment:c});m.environmentUpdates&&(Object.assign(c,m.environmentUpdates),Object.assign(this.envVars,m.environmentUpdates))}let D=`[${Q.status} ${Q.statusText||""}] ${Q.time}ms`;return{content:[{type:"text",text:Q.status>=400?`${D}
166
+
167
+ ${Q.body}`:Q.body}],isError:Q.status>=400,_response:Q,_request:B}}};var wY="2024-11-05",zn=class{id;server=null;port=3200;collection=null;envVars={};engine=null;running=!1;sessionId=null;onStatusChange=null;onLogEntry=null;swaggerEnabled=!1;maxLogEntries=100;constructor(e){this.id=e}getId(){return this.id}isRunning(){return this.running}getPort(){return this.port}getCollectionId(){return this.collection?.id??null}getStatus(){return{running:this.running,port:this.port}}setOnStatusChange(e){this.onStatusChange=e}setOnLogEntry(e){this.onLogEntry=e}setSwaggerEnabled(e){this.swaggerEnabled=e}setMaxLogEntries(e){this.maxLogEntries=e}addLog(e,A,r,n,s){this.onLogEntry&&this.onLogEntry({id:Mh.randomUUID(),timestamp:Date.now(),method:e,path:A,matched:r,routeName:s,responseStatus:n})}updateCollection(e){this.collection=e,this.engine?.updateCollection(e)}updateVariables(e){this.envVars=e,this.engine?.updateVariables(e)}proxy=null;tlsCerts;updateTlsConfig(e,A){this.proxy=e,this.tlsCerts=A,this.engine?.updateTlsConfig(e,A)}start(e,A,r){return xe(),new Promise((n,s)=>{if(this.running){s(new Error("MCP server already running"));return}this.port=e,this.collection=A,this.envVars=r,this.engine=new Kn(A,r,this.proxy,this.tlsCerts),this.sessionId=null,this.server=Gm.createServer((o,i)=>this.handleRequest(o,i)),this.server.on("error",o=>{let i=o.code==="EADDRINUSE"?`Port ${e} is already in use`:`Server error: ${o.message}`;this.cleanup(),this.emitStatus({running:!1,port:e,error:i}),s(new Error(i))}),this.server.listen(e,"127.0.0.1",()=>{this.running=!0,this.emitStatus({running:!0,port:e}),n()})})}stop(){return new Promise(e=>{if(!this.running||!this.server){e();return}this.server.close(()=>{this.cleanup(),this.emitStatus({running:!1,port:this.port}),e()})})}cleanup(){this.running=!1,this.server=null,this.sessionId=null}emitStatus(e){this.onStatusChange?.(e)}handleRequest(e,A){let r=(e.method||"GET").toUpperCase(),n=e.url||"/";if(r==="OPTIONS"){A.writeHead(204,{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, DELETE, OPTIONS","Access-Control-Allow-Headers":"*"}),A.end();return}if(n!=="/mcp"){if(this.swaggerEnabled&&n==="/_openapi.json"){let i=this.buildOpenApiDoc();A.writeHead(200,{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}),A.end(JSON.stringify(i,null,2));return}if(this.swaggerEnabled&&n==="/_swagger"){let i=`<!DOCTYPE html><html><head><title>MCP Server - Swagger</title><link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@5/swagger-ui.css"></head><body><div id="swagger-ui"></div><script src="https://unpkg.com/swagger-ui-dist@5/swagger-ui-bundle.js"></script><script>SwaggerUIBundle({url:'/_openapi.json',dom_id:'#swagger-ui'})</script></body></html>`;A.writeHead(200,{"Content-Type":"text/html","Access-Control-Allow-Origin":"*"}),A.end(i);return}let o=Buffer.from(JSON.stringify({error:"Not found. MCP endpoint is POST /mcp"}));A.writeHead(404,{"Content-Type":"application/json","Content-Length":String(o.byteLength),"Access-Control-Allow-Origin":"*"}),A.end(o);return}if(r==="GET"){let o=Buffer.from(JSON.stringify({error:"SSE not supported. Use POST for JSON-RPC."}));A.writeHead(405,{"Content-Type":"application/json","Content-Length":String(o.byteLength),"Access-Control-Allow-Origin":"*"}),A.end(o);return}if(r==="DELETE"){this.sessionId=null;let o=Buffer.from("{}");A.writeHead(200,{"Content-Type":"application/json","Content-Length":String(o.byteLength),"Access-Control-Allow-Origin":"*"}),A.end(o);return}if(r!=="POST"){let o=Buffer.from(JSON.stringify({error:"Method not allowed"}));A.writeHead(405,{"Content-Type":"application/json","Content-Length":String(o.byteLength),"Access-Control-Allow-Origin":"*"}),A.end(o);return}let s=[];e.on("data",o=>s.push(o)),e.on("end",()=>{let o=Buffer.concat(s).toString("utf-8");this.handleJsonRpc(o,A)})}async handleJsonRpc(e,A){let r;try{r=JSON.parse(e)}catch{this.sendJsonRpc(A,{jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}});return}if(r.method&&r.id===void 0){A.writeHead(202,{"Access-Control-Allow-Origin":"*"}),A.end();return}let n=r.id,s=r.method,o=r.params||{},i;try{switch(s){case"initialize":this.sessionId=Mh.randomUUID(),i={protocolVersion:wY,capabilities:{tools:{}},serverInfo:{name:this.collection?.name||"Open Post MCP",version:"1.0.0"}};break;case"ping":i={};break;case"tools/list":i={tools:this.engine?.listTools()||[]},this.addLog("JSON-RPC","tools/list",!0,200);break;case"tools/call":i=await(this.engine?.callTool(o.name,o.arguments||{})||Promise.reject(new Error("No collection loaded"))),this.addLog("JSON-RPC",`tools/call:${o.name||"?"}`,!0,i?.isError?400:200,o.name);break;default:this.sendJsonRpc(A,{jsonrpc:"2.0",id:n,error:{code:-32601,message:`Method not found: ${s}`}});return}}catch(l){this.sendJsonRpc(A,{jsonrpc:"2.0",id:n,error:{code:-32603,message:l instanceof Error?l.message:"Internal error"}});return}let a={"Content-Type":"application/json","Access-Control-Allow-Origin":"*"};this.sessionId&&(a["Mcp-Session-Id"]=this.sessionId),this.sendJsonRpc(A,{jsonrpc:"2.0",id:n,result:i},a)}sendJsonRpc(e,A,r){let n=JSON.stringify(A),s=Buffer.from(n,"utf-8");e.writeHead(200,{"Content-Type":"application/json","Content-Length":String(s.byteLength),"Access-Control-Allow-Origin":"*",...r}),e.end(s)}buildOpenApiDoc(){let e=this.engine?.listTools()||[],A={};for(let r of e)A[`/tools/${r.name}`]={post:{summary:r.description,requestBody:r.inputSchema?{content:{"application/json":{schema:r.inputSchema}}}:void 0,responses:{200:{description:"Tool result"}}}};return{openapi:"3.0.0",info:{title:`${this.collection?.name||"MCP Server"} - MCP Tools`,version:"1.0.0"},servers:[{url:`http://127.0.0.1:${this.port}`}],paths:A}}};var Vm=oe(require("fs")),Oa=oe(require("path"));function $n(t){let e=t.trim();if(!e.startsWith("curl ")&&!e.startsWith(`curl
168
+ `))return null;let A=e.replace(/\\\s*\n/g," ").replace(/\s+/g," "),r="GET",n="",s=[],o="",i={type:"none"},a=[],l=!1,c=!1,f=!1,d=RY(A);for(let p=0;p<d.length;p++){let u=d[p];if(u!=="curl"){if(u==="-X"||u==="--request"){let h=d[++p]?.toUpperCase();h&&(r=h,f=!0);continue}if(u==="-I"||u==="--head"){r="HEAD",f=!0;continue}if(u==="-G"||u==="--get"){c=!0;continue}if(u==="--url"){let h=d[++p];h&&(n=h.replace(/^['"]|['"]$/g,""));continue}if(u==="-H"||u==="--header"){let h=d[++p];if(h){let E=h.indexOf(":");E>0&&s.push({key:h.slice(0,E).trim(),value:h.slice(E+1).trim(),enabled:!0})}continue}if(u==="--json"){o=d[++p]||"",s.some(E=>E.key.toLowerCase()==="content-type")||s.push({key:"Content-Type",value:"application/json",enabled:!0}),s.some(E=>E.key.toLowerCase()==="accept")||s.push({key:"Accept",value:"application/json",enabled:!0}),r==="GET"&&!f&&(r="POST");continue}if(u==="-A"||u==="--user-agent"){let h=d[++p]||"";s.push({key:"User-Agent",value:h,enabled:!0});continue}if(u==="-e"||u==="--referer"){let h=d[++p]||"";s.push({key:"Referer",value:h,enabled:!0});continue}if(u==="-b"||u==="--cookie"){let h=d[++p]||"";s.push({key:"Cookie",value:h,enabled:!0});continue}if(u==="--oauth2-bearer"){i={type:"bearer",bearer:{token:d[++p]||""}};continue}if(u==="-F"||u==="--form"||u==="--form-string"){let h=d[++p]||"",E=u==="--form-string",B=h.indexOf("=");if(B>0){let Q=h.slice(0,B),D=h.slice(B+1);if(!E&&D.startsWith("@")){let m=D.slice(1).split(";"),R=m[0],y;for(let F=1;F<m.length;F++){let N=m[F];N.startsWith("filename=")&&(y=N.slice(9))}let U=y||Oa.basename(R),q=Oa.isAbsolute(R)&&Vm.existsSync(R);a.push({key:Q,value:q?U:"",enabled:!0,fieldType:"file",filePath:q?R:void 0,fileName:q?U:`? ${U}`})}else a.push({key:Q,value:D,enabled:!0,fieldType:"text"})}l=!0,r==="GET"&&(r="POST");continue}if(u==="-d"||u==="--data"||u==="--data-raw"||u==="--data-binary"||u==="--data-urlencode"){let h=d[++p]||"",E=(u==="-d"||u==="--data")&&h.startsWith("@")?`@${h.slice(1)}`:h;o=o?o+"&"+E:E,r==="GET"&&(r="POST");continue}if(u==="-u"||u==="--user"){let h=d[++p]||"",[E,...B]=h.split(":");i={type:"basic",basic:{username:E,password:B.join(":")}};continue}if(!(u==="-k"||u==="--insecure"||u==="-v"||u==="--verbose"||u==="-s"||u==="--silent"||u==="-S"||u==="--show-error"||u==="-L"||u==="--location"||u==="--compressed"||u==="-N"||u==="--no-buffer"||u==="-f"||u==="--fail"||u==="--fail-with-body"||u==="-g"||u==="--globoff"||u==="--raw"||u==="--tr-encoding"||u==="-0"||u==="--http1.0"||u==="--http1.1"||u==="--http2"||u==="--http3")){if(u==="-o"||u==="--output"||u==="--connect-timeout"||u==="--max-time"||u==="-w"||u==="--write-out"||u==="--retry"||u==="--retry-delay"||u==="--retry-max-time"||u==="--resolve"||u==="--interface"||u==="-C"||u==="--continue-at"||u==="-c"||u==="--cookie-jar"||u==="-D"||u==="--dump-header"||u==="--cert"||u==="--key"||u==="--cacert"||u==="-x"||u==="--proxy"||u==="--proxy-user"||u==="-T"||u==="--upload-file"||u==="--dns-servers"||u==="--limit-rate"||u==="-r"||u==="--range"||u==="--stderr"||u==="-E"||u==="--ciphers"||u==="--tlsv1.2"||u==="--tlsv1.3"||u==="--proto"){p++;continue}if(!u.startsWith("-")&&!n){n=u.replace(/^['"]|['"]$/g,"");continue}}}}if(!n)return null;if(c&&o){let p=n.includes("?")?"&":"?";n=n+p+o,o="",f||(r="GET")}let g=s.find(p=>p.key.toLowerCase()==="content-type")?.value||"",I={type:"none"};l&&a.length?I={type:"form-data",formDataFiles:a}:o&&(g.includes("application/json")||bY(o)?I={type:"json",raw:o}:g.includes("application/xml")||g.includes("text/xml")?I={type:"xml",raw:o}:g.includes("x-www-form-urlencoded")?I={type:"x-www-form-urlencoded",formData:o.split("&").map(u=>{let[h,...E]=u.split("=");return{key:decodeURIComponent(h),value:decodeURIComponent(E.join("=")),enabled:!0}})}:I={type:"raw",raw:o});let S=s.find(p=>p.key.toLowerCase()==="authorization");if(S&&i.type==="none"){let p=S.value;if(p.toLowerCase().startsWith("bearer "))i={type:"bearer",bearer:{token:p.slice(7).trim()}};else if(p.toLowerCase().startsWith("basic "))try{let u=atob(p.slice(6).trim()),[h,...E]=u.split(":");i={type:"basic",basic:{username:h,password:E.join(":")}}}catch{}}return{method:r,url:n,headers:s,body:I,auth:i}}function RY(t){let e=[],A=0;for(;A<t.length;){for(;A<t.length&&t[A]===" ";)A++;if(A>=t.length)break;let r="";for(;A<t.length&&t[A]!==" ";)if(t[A]==="'"||t[A]==='"'){let n=t[A];for(A++;A<t.length&&t[A]!==n;)r+=t[A],A++;A<t.length&&A++}else t[A]==="\\"&&A+1<t.length?(A++,r+=t[A],A++):(r+=t[A],A++);r&&e.push(r)}return e}function bY(t){try{return JSON.parse(t),!0}catch{return!1}}function n0(t){return typeof t>"u"||t===null}function NY(t){return typeof t=="object"&&t!==null}function kY(t){return Array.isArray(t)?t:n0(t)?[]:[t]}function FY(t,e){var A,r,n,s;if(e)for(s=Object.keys(e),A=0,r=s.length;A<r;A+=1)n=s[A],t[n]=e[n];return t}function UY(t,e){var A="",r;for(r=0;r<e;r+=1)A+=t;return A}function MY(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}var vY=n0,TY=NY,LY=kY,xY=UY,HY=MY,YY=FY,Ne={isNothing:vY,isObject:TY,toArray:LY,repeat:xY,isNegativeZero:HY,extend:YY};function s0(t,e){var A="",r=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(A+='in "'+t.mark.name+'" '),A+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(A+=`
169
+
170
+ `+t.mark.snippet),r+" "+A):r}function yo(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=s0(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}yo.prototype=Object.create(Error.prototype);yo.prototype.constructor=yo;yo.prototype.toString=function(e){return this.name+": "+s0(this,e)};var $e=yo;function vh(t,e,A,r,n){var s="",o="",i=Math.floor(n/2)-1;return r-e>i&&(s=" ... ",e=r-i+s.length),A-r>i&&(o=" ...",A=r+i-o.length),{str:s+t.slice(e,A).replace(/\t/g,"\u2192")+o,pos:r-e+s.length}}function Th(t,e){return Ne.repeat(" ",e-t.length)+t}function OY(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var A=/\r?\n|\r|\0/g,r=[0],n=[],s,o=-1;s=A.exec(t.buffer);)n.push(s.index),r.push(s.index+s[0].length),t.position<=s.index&&o<0&&(o=r.length-2);o<0&&(o=r.length-1);var i="",a,l,c=Math.min(t.line+e.linesAfter,n.length).toString().length,f=e.maxLength-(e.indent+c+3);for(a=1;a<=e.linesBefore&&!(o-a<0);a++)l=vh(t.buffer,r[o-a],n[o-a],t.position-(r[o]-r[o-a]),f),i=Ne.repeat(" ",e.indent)+Th((t.line-a+1).toString(),c)+" | "+l.str+`
171
+ `+i;for(l=vh(t.buffer,r[o],n[o],t.position,f),i+=Ne.repeat(" ",e.indent)+Th((t.line+1).toString(),c)+" | "+l.str+`
172
+ `,i+=Ne.repeat("-",e.indent+c+3+l.pos)+`^
173
+ `,a=1;a<=e.linesAfter&&!(o+a>=n.length);a++)l=vh(t.buffer,r[o+a],n[o+a],t.position-(r[o]-r[o+a]),f),i+=Ne.repeat(" ",e.indent)+Th((t.line+a+1).toString(),c)+" | "+l.str+`
174
+ `;return i.replace(/\n$/,"")}var GY=OY,VY=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],qY=["scalar","sequence","mapping"];function JY(t){var e={};return t!==null&&Object.keys(t).forEach(function(A){t[A].forEach(function(r){e[String(r)]=A})}),e}function PY(t,e){if(e=e||{},Object.keys(e).forEach(function(A){if(VY.indexOf(A)===-1)throw new $e('Unknown option "'+A+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(A){return A},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=JY(e.styleAliases||null),qY.indexOf(this.kind)===-1)throw new $e('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var He=PY;function qm(t,e){var A=[];return t[e].forEach(function(r){var n=A.length;A.forEach(function(s,o){s.tag===r.tag&&s.kind===r.kind&&s.multi===r.multi&&(n=o)}),A[n]=r}),A}function WY(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,A;function r(n){n.multi?(t.multi[n.kind].push(n),t.multi.fallback.push(n)):t[n.kind][n.tag]=t.fallback[n.tag]=n}for(e=0,A=arguments.length;e<A;e+=1)arguments[e].forEach(r);return t}function xh(t){return this.extend(t)}xh.prototype.extend=function(e){var A=[],r=[];if(e instanceof He)r.push(e);else if(Array.isArray(e))r=r.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(A=A.concat(e.implicit)),e.explicit&&(r=r.concat(e.explicit));else throw new $e("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");A.forEach(function(s){if(!(s instanceof He))throw new $e("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(s.loadKind&&s.loadKind!=="scalar")throw new $e("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(s.multi)throw new $e("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),r.forEach(function(s){if(!(s instanceof He))throw new $e("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var n=Object.create(xh.prototype);return n.implicit=(this.implicit||[]).concat(A),n.explicit=(this.explicit||[]).concat(r),n.compiledImplicit=qm(n,"implicit"),n.compiledExplicit=qm(n,"explicit"),n.compiledTypeMap=WY(n.compiledImplicit,n.compiledExplicit),n};var _Y=xh,jY=new He("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}}),ZY=new He("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}}),XY=new He("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}}),KY=new _Y({explicit:[jY,ZY,XY]});function zY(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function $Y(){return null}function eO(t){return t===null}var tO=new He("tag:yaml.org,2002:null",{kind:"scalar",resolve:zY,construct:$Y,predicate:eO,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function AO(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function rO(t){return t==="true"||t==="True"||t==="TRUE"}function nO(t){return Object.prototype.toString.call(t)==="[object Boolean]"}var sO=new He("tag:yaml.org,2002:bool",{kind:"scalar",resolve:AO,construct:rO,predicate:nO,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"});function oO(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function iO(t){return 48<=t&&t<=55}function aO(t){return 48<=t&&t<=57}function lO(t){if(t===null)return!1;var e=t.length,A=0,r=!1,n;if(!e)return!1;if(n=t[A],(n==="-"||n==="+")&&(n=t[++A]),n==="0"){if(A+1===e)return!0;if(n=t[++A],n==="b"){for(A++;A<e;A++)if(n=t[A],n!=="_"){if(n!=="0"&&n!=="1")return!1;r=!0}return r&&n!=="_"}if(n==="x"){for(A++;A<e;A++)if(n=t[A],n!=="_"){if(!oO(t.charCodeAt(A)))return!1;r=!0}return r&&n!=="_"}if(n==="o"){for(A++;A<e;A++)if(n=t[A],n!=="_"){if(!iO(t.charCodeAt(A)))return!1;r=!0}return r&&n!=="_"}}if(n==="_")return!1;for(;A<e;A++)if(n=t[A],n!=="_"){if(!aO(t.charCodeAt(A)))return!1;r=!0}return!(!r||n==="_")}function cO(t){var e=t,A=1,r;if(e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),r=e[0],(r==="-"||r==="+")&&(r==="-"&&(A=-1),e=e.slice(1),r=e[0]),e==="0")return 0;if(r==="0"){if(e[1]==="b")return A*parseInt(e.slice(2),2);if(e[1]==="x")return A*parseInt(e.slice(2),16);if(e[1]==="o")return A*parseInt(e.slice(2),8)}return A*parseInt(e,10)}function uO(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!Ne.isNegativeZero(t)}var gO=new He("tag:yaml.org,2002:int",{kind:"scalar",resolve:lO,construct:cO,predicate:uO,represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),hO=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function dO(t){return!(t===null||!hO.test(t)||t[t.length-1]==="_")}function EO(t){var e,A;return e=t.replace(/_/g,"").toLowerCase(),A=e[0]==="-"?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?A===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:A*parseFloat(e,10)}var fO=/^[-+]?[0-9]+e/;function IO(t,e){var A;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Ne.isNegativeZero(t))return"-0.0";return A=t.toString(10),fO.test(A)?A.replace("e",".e"):A}function CO(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||Ne.isNegativeZero(t))}var QO=new He("tag:yaml.org,2002:float",{kind:"scalar",resolve:dO,construct:EO,predicate:CO,represent:IO,defaultStyle:"lowercase"}),BO=KY.extend({implicit:[tO,sO,gO,QO]}),pO=BO,o0=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),i0=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function yO(t){return t===null?!1:o0.exec(t)!==null||i0.exec(t)!==null}function mO(t){var e,A,r,n,s,o,i,a=0,l=null,c,f,d;if(e=o0.exec(t),e===null&&(e=i0.exec(t)),e===null)throw new Error("Date resolve error");if(A=+e[1],r=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(A,r,n));if(s=+e[4],o=+e[5],i=+e[6],e[7]){for(a=e[7].slice(0,3);a.length<3;)a+="0";a=+a}return e[9]&&(c=+e[10],f=+(e[11]||0),l=(c*60+f)*6e4,e[9]==="-"&&(l=-l)),d=new Date(Date.UTC(A,r,n,s,o,i,a)),l&&d.setTime(d.getTime()-l),d}function SO(t){return t.toISOString()}var DO=new He("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:yO,construct:mO,instanceOf:Date,represent:SO});function wO(t){return t==="<<"||t===null}var RO=new He("tag:yaml.org,2002:merge",{kind:"scalar",resolve:wO}),Vh=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
175
+ \r`;function bO(t){if(t===null)return!1;var e,A,r=0,n=t.length,s=Vh;for(A=0;A<n;A++)if(e=s.indexOf(t.charAt(A)),!(e>64)){if(e<0)return!1;r+=6}return r%8===0}function NO(t){var e,A,r=t.replace(/[\r\n=]/g,""),n=r.length,s=Vh,o=0,i=[];for(e=0;e<n;e++)e%4===0&&e&&(i.push(o>>16&255),i.push(o>>8&255),i.push(o&255)),o=o<<6|s.indexOf(r.charAt(e));return A=n%4*6,A===0?(i.push(o>>16&255),i.push(o>>8&255),i.push(o&255)):A===18?(i.push(o>>10&255),i.push(o>>2&255)):A===12&&i.push(o>>4&255),new Uint8Array(i)}function kO(t){var e="",A=0,r,n,s=t.length,o=Vh;for(r=0;r<s;r++)r%3===0&&r&&(e+=o[A>>18&63],e+=o[A>>12&63],e+=o[A>>6&63],e+=o[A&63]),A=(A<<8)+t[r];return n=s%3,n===0?(e+=o[A>>18&63],e+=o[A>>12&63],e+=o[A>>6&63],e+=o[A&63]):n===2?(e+=o[A>>10&63],e+=o[A>>4&63],e+=o[A<<2&63],e+=o[64]):n===1&&(e+=o[A>>2&63],e+=o[A<<4&63],e+=o[64],e+=o[64]),e}function FO(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var UO=new He("tag:yaml.org,2002:binary",{kind:"scalar",resolve:bO,construct:NO,predicate:FO,represent:kO}),MO=Object.prototype.hasOwnProperty,vO=Object.prototype.toString;function TO(t){if(t===null)return!0;var e=[],A,r,n,s,o,i=t;for(A=0,r=i.length;A<r;A+=1){if(n=i[A],o=!1,vO.call(n)!=="[object Object]")return!1;for(s in n)if(MO.call(n,s))if(!o)o=!0;else return!1;if(!o)return!1;if(e.indexOf(s)===-1)e.push(s);else return!1}return!0}function LO(t){return t!==null?t:[]}var xO=new He("tag:yaml.org,2002:omap",{kind:"sequence",resolve:TO,construct:LO}),HO=Object.prototype.toString;function YO(t){if(t===null)return!0;var e,A,r,n,s,o=t;for(s=new Array(o.length),e=0,A=o.length;e<A;e+=1){if(r=o[e],HO.call(r)!=="[object Object]"||(n=Object.keys(r),n.length!==1))return!1;s[e]=[n[0],r[n[0]]]}return!0}function OO(t){if(t===null)return[];var e,A,r,n,s,o=t;for(s=new Array(o.length),e=0,A=o.length;e<A;e+=1)r=o[e],n=Object.keys(r),s[e]=[n[0],r[n[0]]];return s}var GO=new He("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:YO,construct:OO}),VO=Object.prototype.hasOwnProperty;function qO(t){if(t===null)return!0;var e,A=t;for(e in A)if(VO.call(A,e)&&A[e]!==null)return!1;return!0}function JO(t){return t!==null?t:{}}var PO=new He("tag:yaml.org,2002:set",{kind:"mapping",resolve:qO,construct:JO}),a0=pO.extend({implicit:[DO,RO],explicit:[UO,xO,GO,PO]}),lr=Object.prototype.hasOwnProperty,Ga=1,l0=2,c0=3,Va=4,Lh=1,WO=2,Jm=3,_O=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,jO=/[\x85\u2028\u2029]/,ZO=/[,\[\]\{\}]/,u0=/^(?:!|!!|![a-z\-]+!)$/i,g0=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Pm(t){return Object.prototype.toString.call(t)}function rA(t){return t===10||t===13}function Xr(t){return t===9||t===32}function et(t){return t===9||t===32||t===10||t===13}function ts(t){return t===44||t===91||t===93||t===123||t===125}function XO(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function KO(t){return t===120?2:t===117?4:t===85?8:0}function zO(t){return 48<=t&&t<=57?t-48:-1}function Wm(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?`
176
+ `:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function $O(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}function h0(t,e,A){e==="__proto__"?Object.defineProperty(t,e,{configurable:!0,enumerable:!0,writable:!0,value:A}):t[e]=A}var d0=new Array(256),E0=new Array(256);for(Zr=0;Zr<256;Zr++)d0[Zr]=Wm(Zr)?1:0,E0[Zr]=Wm(Zr);var Zr;function eG(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||a0,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function f0(t,e){var A={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return A.snippet=GY(A),new $e(e,A)}function G(t,e){throw f0(t,e)}function qa(t,e){t.onWarning&&t.onWarning.call(null,f0(t,e))}var _m={YAML:function(e,A,r){var n,s,o;e.version!==null&&G(e,"duplication of %YAML directive"),r.length!==1&&G(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),n===null&&G(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&G(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&qa(e,"unsupported YAML version of the document")},TAG:function(e,A,r){var n,s;r.length!==2&&G(e,"TAG directive accepts exactly two arguments"),n=r[0],s=r[1],u0.test(n)||G(e,"ill-formed tag handle (first argument) of the TAG directive"),lr.call(e.tagMap,n)&&G(e,'there is a previously declared suffix for "'+n+'" tag handle'),g0.test(s)||G(e,"ill-formed tag prefix (second argument) of the TAG directive");try{s=decodeURIComponent(s)}catch{G(e,"tag prefix is malformed: "+s)}e.tagMap[n]=s}};function ar(t,e,A,r){var n,s,o,i;if(e<A){if(i=t.input.slice(e,A),r)for(n=0,s=i.length;n<s;n+=1)o=i.charCodeAt(n),o===9||32<=o&&o<=1114111||G(t,"expected valid JSON character");else _O.test(i)&&G(t,"the stream contains non-printable characters");t.result+=i}}function jm(t,e,A,r){var n,s,o,i;for(Ne.isObject(A)||G(t,"cannot merge mappings; the provided source object is unacceptable"),n=Object.keys(A),o=0,i=n.length;o<i;o+=1)s=n[o],lr.call(e,s)||(h0(e,s,A[s]),r[s]=!0)}function As(t,e,A,r,n,s,o,i,a){var l,c;if(Array.isArray(n))for(n=Array.prototype.slice.call(n),l=0,c=n.length;l<c;l+=1)Array.isArray(n[l])&&G(t,"nested arrays are not supported inside keys"),typeof n=="object"&&Pm(n[l])==="[object Object]"&&(n[l]="[object Object]");if(typeof n=="object"&&Pm(n)==="[object Object]"&&(n="[object Object]"),n=String(n),e===null&&(e={}),r==="tag:yaml.org,2002:merge")if(Array.isArray(s))for(l=0,c=s.length;l<c;l+=1)jm(t,e,s[l],A);else jm(t,e,s,A);else!t.json&&!lr.call(A,n)&&lr.call(e,n)&&(t.line=o||t.line,t.lineStart=i||t.lineStart,t.position=a||t.position,G(t,"duplicated mapping key")),h0(e,n,s),delete A[n];return e}function qh(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):G(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function we(t,e,A){for(var r=0,n=t.input.charCodeAt(t.position);n!==0;){for(;Xr(n);)n===9&&t.firstTabInLine===-1&&(t.firstTabInLine=t.position),n=t.input.charCodeAt(++t.position);if(e&&n===35)do n=t.input.charCodeAt(++t.position);while(n!==10&&n!==13&&n!==0);if(rA(n))for(qh(t),n=t.input.charCodeAt(t.position),r++,t.lineIndent=0;n===32;)t.lineIndent++,n=t.input.charCodeAt(++t.position);else break}return A!==-1&&r!==0&&t.lineIndent<A&&qa(t,"deficient indentation"),r}function Wa(t){var e=t.position,A;return A=t.input.charCodeAt(e),!!((A===45||A===46)&&A===t.input.charCodeAt(e+1)&&A===t.input.charCodeAt(e+2)&&(e+=3,A=t.input.charCodeAt(e),A===0||et(A)))}function Jh(t,e){e===1?t.result+=" ":e>1&&(t.result+=Ne.repeat(`
177
+ `,e-1))}function tG(t,e,A){var r,n,s,o,i,a,l,c,f=t.kind,d=t.result,g;if(g=t.input.charCodeAt(t.position),et(g)||ts(g)||g===35||g===38||g===42||g===33||g===124||g===62||g===39||g===34||g===37||g===64||g===96||(g===63||g===45)&&(n=t.input.charCodeAt(t.position+1),et(n)||A&&ts(n)))return!1;for(t.kind="scalar",t.result="",s=o=t.position,i=!1;g!==0;){if(g===58){if(n=t.input.charCodeAt(t.position+1),et(n)||A&&ts(n))break}else if(g===35){if(r=t.input.charCodeAt(t.position-1),et(r))break}else{if(t.position===t.lineStart&&Wa(t)||A&&ts(g))break;if(rA(g))if(a=t.line,l=t.lineStart,c=t.lineIndent,we(t,!1,-1),t.lineIndent>=e){i=!0,g=t.input.charCodeAt(t.position);continue}else{t.position=o,t.line=a,t.lineStart=l,t.lineIndent=c;break}}i&&(ar(t,s,o,!1),Jh(t,t.line-a),s=o=t.position,i=!1),Xr(g)||(o=t.position+1),g=t.input.charCodeAt(++t.position)}return ar(t,s,o,!1),t.result?!0:(t.kind=f,t.result=d,!1)}function AG(t,e){var A,r,n;if(A=t.input.charCodeAt(t.position),A!==39)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(A=t.input.charCodeAt(t.position))!==0;)if(A===39)if(ar(t,r,t.position,!0),A=t.input.charCodeAt(++t.position),A===39)r=t.position,t.position++,n=t.position;else return!0;else rA(A)?(ar(t,r,n,!0),Jh(t,we(t,!1,e)),r=n=t.position):t.position===t.lineStart&&Wa(t)?G(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);G(t,"unexpected end of the stream within a single quoted scalar")}function rG(t,e){var A,r,n,s,o,i;if(i=t.input.charCodeAt(t.position),i!==34)return!1;for(t.kind="scalar",t.result="",t.position++,A=r=t.position;(i=t.input.charCodeAt(t.position))!==0;){if(i===34)return ar(t,A,t.position,!0),t.position++,!0;if(i===92){if(ar(t,A,t.position,!0),i=t.input.charCodeAt(++t.position),rA(i))we(t,!1,e);else if(i<256&&d0[i])t.result+=E0[i],t.position++;else if((o=KO(i))>0){for(n=o,s=0;n>0;n--)i=t.input.charCodeAt(++t.position),(o=XO(i))>=0?s=(s<<4)+o:G(t,"expected hexadecimal character");t.result+=$O(s),t.position++}else G(t,"unknown escape sequence");A=r=t.position}else rA(i)?(ar(t,A,r,!0),Jh(t,we(t,!1,e)),A=r=t.position):t.position===t.lineStart&&Wa(t)?G(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}G(t,"unexpected end of the stream within a double quoted scalar")}function nG(t,e){var A=!0,r,n,s,o=t.tag,i,a=t.anchor,l,c,f,d,g,I=Object.create(null),S,p,u,h;if(h=t.input.charCodeAt(t.position),h===91)c=93,g=!1,i=[];else if(h===123)c=125,g=!0,i={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=i),h=t.input.charCodeAt(++t.position);h!==0;){if(we(t,!0,e),h=t.input.charCodeAt(t.position),h===c)return t.position++,t.tag=o,t.anchor=a,t.kind=g?"mapping":"sequence",t.result=i,!0;A?h===44&&G(t,"expected the node content, but found ','"):G(t,"missed comma between flow collection entries"),p=S=u=null,f=d=!1,h===63&&(l=t.input.charCodeAt(t.position+1),et(l)&&(f=d=!0,t.position++,we(t,!0,e))),r=t.line,n=t.lineStart,s=t.position,rs(t,e,Ga,!1,!0),p=t.tag,S=t.result,we(t,!0,e),h=t.input.charCodeAt(t.position),(d||t.line===r)&&h===58&&(f=!0,h=t.input.charCodeAt(++t.position),we(t,!0,e),rs(t,e,Ga,!1,!0),u=t.result),g?As(t,i,I,p,S,u,r,n,s):f?i.push(As(t,null,I,p,S,u,r,n,s)):i.push(S),we(t,!0,e),h=t.input.charCodeAt(t.position),h===44?(A=!0,h=t.input.charCodeAt(++t.position)):A=!1}G(t,"unexpected end of the stream within a flow collection")}function sG(t,e){var A,r,n=Lh,s=!1,o=!1,i=e,a=0,l=!1,c,f;if(f=t.input.charCodeAt(t.position),f===124)r=!1;else if(f===62)r=!0;else return!1;for(t.kind="scalar",t.result="";f!==0;)if(f=t.input.charCodeAt(++t.position),f===43||f===45)Lh===n?n=f===43?Jm:WO:G(t,"repeat of a chomping mode identifier");else if((c=zO(f))>=0)c===0?G(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?G(t,"repeat of an indentation width identifier"):(i=e+c-1,o=!0);else break;if(Xr(f)){do f=t.input.charCodeAt(++t.position);while(Xr(f));if(f===35)do f=t.input.charCodeAt(++t.position);while(!rA(f)&&f!==0)}for(;f!==0;){for(qh(t),t.lineIndent=0,f=t.input.charCodeAt(t.position);(!o||t.lineIndent<i)&&f===32;)t.lineIndent++,f=t.input.charCodeAt(++t.position);if(!o&&t.lineIndent>i&&(i=t.lineIndent),rA(f)){a++;continue}if(t.lineIndent<i){n===Jm?t.result+=Ne.repeat(`
178
+ `,s?1+a:a):n===Lh&&s&&(t.result+=`
179
+ `);break}for(r?Xr(f)?(l=!0,t.result+=Ne.repeat(`
180
+ `,s?1+a:a)):l?(l=!1,t.result+=Ne.repeat(`
181
+ `,a+1)):a===0?s&&(t.result+=" "):t.result+=Ne.repeat(`
182
+ `,a):t.result+=Ne.repeat(`
183
+ `,s?1+a:a),s=!0,o=!0,a=0,A=t.position;!rA(f)&&f!==0;)f=t.input.charCodeAt(++t.position);ar(t,A,t.position,!1)}return!0}function Zm(t,e){var A,r=t.tag,n=t.anchor,s=[],o,i=!1,a;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=s),a=t.input.charCodeAt(t.position);a!==0&&(t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,G(t,"tab characters must not be used in indentation")),!(a!==45||(o=t.input.charCodeAt(t.position+1),!et(o))));){if(i=!0,t.position++,we(t,!0,-1)&&t.lineIndent<=e){s.push(null),a=t.input.charCodeAt(t.position);continue}if(A=t.line,rs(t,e,c0,!1,!0),s.push(t.result),we(t,!0,-1),a=t.input.charCodeAt(t.position),(t.line===A||t.lineIndent>e)&&a!==0)G(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return i?(t.tag=r,t.anchor=n,t.kind="sequence",t.result=s,!0):!1}function oG(t,e,A){var r,n,s,o,i,a,l=t.tag,c=t.anchor,f={},d=Object.create(null),g=null,I=null,S=null,p=!1,u=!1,h;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=f),h=t.input.charCodeAt(t.position);h!==0;){if(!p&&t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,G(t,"tab characters must not be used in indentation")),r=t.input.charCodeAt(t.position+1),s=t.line,(h===63||h===58)&&et(r))h===63?(p&&(As(t,f,d,g,I,null,o,i,a),g=I=S=null),u=!0,p=!0,n=!0):p?(p=!1,n=!0):G(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,h=r;else{if(o=t.line,i=t.lineStart,a=t.position,!rs(t,A,l0,!1,!0))break;if(t.line===s){for(h=t.input.charCodeAt(t.position);Xr(h);)h=t.input.charCodeAt(++t.position);if(h===58)h=t.input.charCodeAt(++t.position),et(h)||G(t,"a whitespace character is expected after the key-value separator within a block mapping"),p&&(As(t,f,d,g,I,null,o,i,a),g=I=S=null),u=!0,p=!1,n=!1,g=t.tag,I=t.result;else if(u)G(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=l,t.anchor=c,!0}else if(u)G(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=l,t.anchor=c,!0}if((t.line===s||t.lineIndent>e)&&(p&&(o=t.line,i=t.lineStart,a=t.position),rs(t,e,Va,!0,n)&&(p?I=t.result:S=t.result),p||(As(t,f,d,g,I,S,o,i,a),g=I=S=null),we(t,!0,-1),h=t.input.charCodeAt(t.position)),(t.line===s||t.lineIndent>e)&&h!==0)G(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return p&&As(t,f,d,g,I,null,o,i,a),u&&(t.tag=l,t.anchor=c,t.kind="mapping",t.result=f),u}function iG(t){var e,A=!1,r=!1,n,s,o;if(o=t.input.charCodeAt(t.position),o!==33)return!1;if(t.tag!==null&&G(t,"duplication of a tag property"),o=t.input.charCodeAt(++t.position),o===60?(A=!0,o=t.input.charCodeAt(++t.position)):o===33?(r=!0,n="!!",o=t.input.charCodeAt(++t.position)):n="!",e=t.position,A){do o=t.input.charCodeAt(++t.position);while(o!==0&&o!==62);t.position<t.length?(s=t.input.slice(e,t.position),o=t.input.charCodeAt(++t.position)):G(t,"unexpected end of the stream within a verbatim tag")}else{for(;o!==0&&!et(o);)o===33&&(r?G(t,"tag suffix cannot contain exclamation marks"):(n=t.input.slice(e-1,t.position+1),u0.test(n)||G(t,"named tag handle cannot contain such characters"),r=!0,e=t.position+1)),o=t.input.charCodeAt(++t.position);s=t.input.slice(e,t.position),ZO.test(s)&&G(t,"tag suffix cannot contain flow indicator characters")}s&&!g0.test(s)&&G(t,"tag name cannot contain such characters: "+s);try{s=decodeURIComponent(s)}catch{G(t,"tag name is malformed: "+s)}return A?t.tag=s:lr.call(t.tagMap,n)?t.tag=t.tagMap[n]+s:n==="!"?t.tag="!"+s:n==="!!"?t.tag="tag:yaml.org,2002:"+s:G(t,'undeclared tag handle "'+n+'"'),!0}function aG(t){var e,A;if(A=t.input.charCodeAt(t.position),A!==38)return!1;for(t.anchor!==null&&G(t,"duplication of an anchor property"),A=t.input.charCodeAt(++t.position),e=t.position;A!==0&&!et(A)&&!ts(A);)A=t.input.charCodeAt(++t.position);return t.position===e&&G(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function lG(t){var e,A,r;if(r=t.input.charCodeAt(t.position),r!==42)return!1;for(r=t.input.charCodeAt(++t.position),e=t.position;r!==0&&!et(r)&&!ts(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&G(t,"name of an alias node must contain at least one character"),A=t.input.slice(e,t.position),lr.call(t.anchorMap,A)||G(t,'unidentified alias "'+A+'"'),t.result=t.anchorMap[A],we(t,!0,-1),!0}function rs(t,e,A,r,n){var s,o,i,a=1,l=!1,c=!1,f,d,g,I,S,p;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,s=o=i=Va===A||c0===A,r&&we(t,!0,-1)&&(l=!0,t.lineIndent>e?a=1:t.lineIndent===e?a=0:t.lineIndent<e&&(a=-1)),a===1)for(;iG(t)||aG(t);)we(t,!0,-1)?(l=!0,i=s,t.lineIndent>e?a=1:t.lineIndent===e?a=0:t.lineIndent<e&&(a=-1)):i=!1;if(i&&(i=l||n),(a===1||Va===A)&&(Ga===A||l0===A?S=e:S=e+1,p=t.position-t.lineStart,a===1?i&&(Zm(t,p)||oG(t,p,S))||nG(t,S)?c=!0:(o&&sG(t,S)||AG(t,S)||rG(t,S)?c=!0:lG(t)?(c=!0,(t.tag!==null||t.anchor!==null)&&G(t,"alias node should not have any properties")):tG(t,S,Ga===A)&&(c=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):a===0&&(c=i&&Zm(t,p))),t.tag===null)t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);else if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&G(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),f=0,d=t.implicitTypes.length;f<d;f+=1)if(I=t.implicitTypes[f],I.resolve(t.result)){t.result=I.construct(t.result),t.tag=I.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else if(t.tag!=="!"){if(lr.call(t.typeMap[t.kind||"fallback"],t.tag))I=t.typeMap[t.kind||"fallback"][t.tag];else for(I=null,g=t.typeMap.multi[t.kind||"fallback"],f=0,d=g.length;f<d;f+=1)if(t.tag.slice(0,g[f].tag.length)===g[f].tag){I=g[f];break}I||G(t,"unknown tag !<"+t.tag+">"),t.result!==null&&I.kind!==t.kind&&G(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+I.kind+'", not "'+t.kind+'"'),I.resolve(t.result,t.tag)?(t.result=I.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):G(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||c}function cG(t){var e=t.position,A,r,n,s=!1,o;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(o=t.input.charCodeAt(t.position))!==0&&(we(t,!0,-1),o=t.input.charCodeAt(t.position),!(t.lineIndent>0||o!==37));){for(s=!0,o=t.input.charCodeAt(++t.position),A=t.position;o!==0&&!et(o);)o=t.input.charCodeAt(++t.position);for(r=t.input.slice(A,t.position),n=[],r.length<1&&G(t,"directive name must not be less than one character in length");o!==0;){for(;Xr(o);)o=t.input.charCodeAt(++t.position);if(o===35){do o=t.input.charCodeAt(++t.position);while(o!==0&&!rA(o));break}if(rA(o))break;for(A=t.position;o!==0&&!et(o);)o=t.input.charCodeAt(++t.position);n.push(t.input.slice(A,t.position))}o!==0&&qh(t),lr.call(_m,r)?_m[r](t,r,n):qa(t,'unknown document directive "'+r+'"')}if(we(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,we(t,!0,-1)):s&&G(t,"directives end mark is expected"),rs(t,t.lineIndent-1,Va,!1,!0),we(t,!0,-1),t.checkLineBreaks&&jO.test(t.input.slice(e,t.position))&&qa(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Wa(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,we(t,!0,-1));return}if(t.position<t.length-1)G(t,"end of the stream or a document separator is expected");else return}function I0(t,e){t=String(t),e=e||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=`
184
+ `),t.charCodeAt(0)===65279&&(t=t.slice(1)));var A=new eG(t,e),r=t.indexOf("\0");for(r!==-1&&(A.position=r,G(A,"null byte is not allowed in input")),A.input+="\0";A.input.charCodeAt(A.position)===32;)A.lineIndent+=1,A.position+=1;for(;A.position<A.length-1;)cG(A);return A.documents}function uG(t,e,A){e!==null&&typeof e=="object"&&typeof A>"u"&&(A=e,e=null);var r=I0(t,A);if(typeof e!="function")return r;for(var n=0,s=r.length;n<s;n+=1)e(r[n])}function gG(t,e){var A=I0(t,e);if(A.length!==0){if(A.length===1)return A[0];throw new $e("expected a single document in the stream, but found more")}}var hG=uG,dG=gG,C0={loadAll:hG,load:dG},Q0=Object.prototype.toString,B0=Object.prototype.hasOwnProperty,Ph=65279,EG=9,mo=10,fG=13,IG=32,CG=33,QG=34,Hh=35,BG=37,pG=38,yG=39,mG=42,p0=44,SG=45,Ja=58,DG=61,wG=62,RG=63,bG=64,y0=91,m0=93,NG=96,S0=123,kG=124,D0=125,Ye={};Ye[0]="\\0";Ye[7]="\\a";Ye[8]="\\b";Ye[9]="\\t";Ye[10]="\\n";Ye[11]="\\v";Ye[12]="\\f";Ye[13]="\\r";Ye[27]="\\e";Ye[34]='\\"';Ye[92]="\\\\";Ye[133]="\\N";Ye[160]="\\_";Ye[8232]="\\L";Ye[8233]="\\P";var FG=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],UG=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function MG(t,e){var A,r,n,s,o,i,a;if(e===null)return{};for(A={},r=Object.keys(e),n=0,s=r.length;n<s;n+=1)o=r[n],i=String(e[o]),o.slice(0,2)==="!!"&&(o="tag:yaml.org,2002:"+o.slice(2)),a=t.compiledTypeMap.fallback[o],a&&B0.call(a.styleAliases,i)&&(i=a.styleAliases[i]),A[o]=i;return A}function vG(t){var e,A,r;if(e=t.toString(16).toUpperCase(),t<=255)A="x",r=2;else if(t<=65535)A="u",r=4;else if(t<=4294967295)A="U",r=8;else throw new $e("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+A+Ne.repeat("0",r-e.length)+e}var TG=1,So=2;function LG(t){this.schema=t.schema||a0,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=Ne.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=MG(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.quotingType=t.quotingType==='"'?So:TG,this.forceQuotes=t.forceQuotes||!1,this.replacer=typeof t.replacer=="function"?t.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function Xm(t,e){for(var A=Ne.repeat(" ",e),r=0,n=-1,s="",o,i=t.length;r<i;)n=t.indexOf(`
185
+ `,r),n===-1?(o=t.slice(r),r=i):(o=t.slice(r,n+1),r=n+1),o.length&&o!==`
186
+ `&&(s+=A),s+=o;return s}function Yh(t,e){return`
187
+ `+Ne.repeat(" ",t.indent*e)}function xG(t,e){var A,r,n;for(A=0,r=t.implicitTypes.length;A<r;A+=1)if(n=t.implicitTypes[A],n.resolve(e))return!0;return!1}function Pa(t){return t===IG||t===EG}function Do(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==Ph||65536<=t&&t<=1114111}function Km(t){return Do(t)&&t!==Ph&&t!==fG&&t!==mo}function zm(t,e,A){var r=Km(t),n=r&&!Pa(t);return(A?r:r&&t!==p0&&t!==y0&&t!==m0&&t!==S0&&t!==D0)&&t!==Hh&&!(e===Ja&&!n)||Km(e)&&!Pa(e)&&t===Hh||e===Ja&&n}function HG(t){return Do(t)&&t!==Ph&&!Pa(t)&&t!==SG&&t!==RG&&t!==Ja&&t!==p0&&t!==y0&&t!==m0&&t!==S0&&t!==D0&&t!==Hh&&t!==pG&&t!==mG&&t!==CG&&t!==kG&&t!==DG&&t!==wG&&t!==yG&&t!==QG&&t!==BG&&t!==bG&&t!==NG}function YG(t){return!Pa(t)&&t!==Ja}function po(t,e){var A=t.charCodeAt(e),r;return A>=55296&&A<=56319&&e+1<t.length&&(r=t.charCodeAt(e+1),r>=56320&&r<=57343)?(A-55296)*1024+r-56320+65536:A}function w0(t){var e=/^\n* /;return e.test(t)}var R0=1,Oh=2,b0=3,N0=4,es=5;function OG(t,e,A,r,n,s,o,i){var a,l=0,c=null,f=!1,d=!1,g=r!==-1,I=-1,S=HG(po(t,0))&&YG(po(t,t.length-1));if(e||o)for(a=0;a<t.length;l>=65536?a+=2:a++){if(l=po(t,a),!Do(l))return es;S=S&&zm(l,c,i),c=l}else{for(a=0;a<t.length;l>=65536?a+=2:a++){if(l=po(t,a),l===mo)f=!0,g&&(d=d||a-I-1>r&&t[I+1]!==" ",I=a);else if(!Do(l))return es;S=S&&zm(l,c,i),c=l}d=d||g&&a-I-1>r&&t[I+1]!==" "}return!f&&!d?S&&!o&&!n(t)?R0:s===So?es:Oh:A>9&&w0(t)?es:o?s===So?es:Oh:d?N0:b0}function GG(t,e,A,r,n){t.dump=(function(){if(e.length===0)return t.quotingType===So?'""':"''";if(!t.noCompatMode&&(FG.indexOf(e)!==-1||UG.test(e)))return t.quotingType===So?'"'+e+'"':"'"+e+"'";var s=t.indent*Math.max(1,A),o=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-s),i=r||t.flowLevel>-1&&A>=t.flowLevel;function a(l){return xG(t,l)}switch(OG(e,i,t.indent,o,a,t.quotingType,t.forceQuotes&&!r,n)){case R0:return e;case Oh:return"'"+e.replace(/'/g,"''")+"'";case b0:return"|"+$m(e,t.indent)+e0(Xm(e,s));case N0:return">"+$m(e,t.indent)+e0(Xm(VG(e,o),s));case es:return'"'+qG(e)+'"';default:throw new $e("impossible error: invalid scalar style")}})()}function $m(t,e){var A=w0(t)?String(e):"",r=t[t.length-1]===`
188
+ `,n=r&&(t[t.length-2]===`
189
+ `||t===`
190
+ `),s=n?"+":r?"":"-";return A+s+`
191
+ `}function e0(t){return t[t.length-1]===`
192
+ `?t.slice(0,-1):t}function VG(t,e){for(var A=/(\n+)([^\n]*)/g,r=(function(){var l=t.indexOf(`
193
+ `);return l=l!==-1?l:t.length,A.lastIndex=l,t0(t.slice(0,l),e)})(),n=t[0]===`
194
+ `||t[0]===" ",s,o;o=A.exec(t);){var i=o[1],a=o[2];s=a[0]===" ",r+=i+(!n&&!s&&a!==""?`
195
+ `:"")+t0(a,e),n=s}return r}function t0(t,e){if(t===""||t[0]===" ")return t;for(var A=/ [^ ]/g,r,n=0,s,o=0,i=0,a="";r=A.exec(t);)i=r.index,i-n>e&&(s=o>n?o:i,a+=`
196
+ `+t.slice(n,s),n=s+1),o=i;return a+=`
197
+ `,t.length-n>e&&o>n?a+=t.slice(n,o)+`
198
+ `+t.slice(o+1):a+=t.slice(n),a.slice(1)}function qG(t){for(var e="",A=0,r,n=0;n<t.length;A>=65536?n+=2:n++)A=po(t,n),r=Ye[A],!r&&Do(A)?(e+=t[n],A>=65536&&(e+=t[n+1])):e+=r||vG(A);return e}function JG(t,e,A){var r="",n=t.tag,s,o,i;for(s=0,o=A.length;s<o;s+=1)i=A[s],t.replacer&&(i=t.replacer.call(A,String(s),i)),(yA(t,e,i,!1,!1)||typeof i>"u"&&yA(t,e,null,!1,!1))&&(r!==""&&(r+=","+(t.condenseFlow?"":" ")),r+=t.dump);t.tag=n,t.dump="["+r+"]"}function A0(t,e,A,r){var n="",s=t.tag,o,i,a;for(o=0,i=A.length;o<i;o+=1)a=A[o],t.replacer&&(a=t.replacer.call(A,String(o),a)),(yA(t,e+1,a,!0,!0,!1,!0)||typeof a>"u"&&yA(t,e+1,null,!0,!0,!1,!0))&&((!r||n!=="")&&(n+=Yh(t,e)),t.dump&&mo===t.dump.charCodeAt(0)?n+="-":n+="- ",n+=t.dump);t.tag=s,t.dump=n||"[]"}function PG(t,e,A){var r="",n=t.tag,s=Object.keys(A),o,i,a,l,c;for(o=0,i=s.length;o<i;o+=1)c="",r!==""&&(c+=", "),t.condenseFlow&&(c+='"'),a=s[o],l=A[a],t.replacer&&(l=t.replacer.call(A,a,l)),yA(t,e,a,!1,!1)&&(t.dump.length>1024&&(c+="? "),c+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),yA(t,e,l,!1,!1)&&(c+=t.dump,r+=c));t.tag=n,t.dump="{"+r+"}"}function WG(t,e,A,r){var n="",s=t.tag,o=Object.keys(A),i,a,l,c,f,d;if(t.sortKeys===!0)o.sort();else if(typeof t.sortKeys=="function")o.sort(t.sortKeys);else if(t.sortKeys)throw new $e("sortKeys must be a boolean or a function");for(i=0,a=o.length;i<a;i+=1)d="",(!r||n!=="")&&(d+=Yh(t,e)),l=o[i],c=A[l],t.replacer&&(c=t.replacer.call(A,l,c)),yA(t,e+1,l,!0,!0,!0)&&(f=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,f&&(t.dump&&mo===t.dump.charCodeAt(0)?d+="?":d+="? "),d+=t.dump,f&&(d+=Yh(t,e)),yA(t,e+1,c,!0,f)&&(t.dump&&mo===t.dump.charCodeAt(0)?d+=":":d+=": ",d+=t.dump,n+=d));t.tag=s,t.dump=n||"{}"}function r0(t,e,A){var r,n,s,o,i,a;for(n=A?t.explicitTypes:t.implicitTypes,s=0,o=n.length;s<o;s+=1)if(i=n[s],(i.instanceOf||i.predicate)&&(!i.instanceOf||typeof e=="object"&&e instanceof i.instanceOf)&&(!i.predicate||i.predicate(e))){if(A?i.multi&&i.representName?t.tag=i.representName(e):t.tag=i.tag:t.tag="?",i.represent){if(a=t.styleMap[i.tag]||i.defaultStyle,Q0.call(i.represent)==="[object Function]")r=i.represent(e,a);else if(B0.call(i.represent,a))r=i.represent[a](e,a);else throw new $e("!<"+i.tag+'> tag resolver accepts not "'+a+'" style');t.dump=r}return!0}return!1}function yA(t,e,A,r,n,s,o){t.tag=null,t.dump=A,r0(t,A,!1)||r0(t,A,!0);var i=Q0.call(t.dump),a=r,l;r&&(r=t.flowLevel<0||t.flowLevel>e);var c=i==="[object Object]"||i==="[object Array]",f,d;if(c&&(f=t.duplicates.indexOf(A),d=f!==-1),(t.tag!==null&&t.tag!=="?"||d||t.indent!==2&&e>0)&&(n=!1),d&&t.usedDuplicates[f])t.dump="*ref_"+f;else{if(c&&d&&!t.usedDuplicates[f]&&(t.usedDuplicates[f]=!0),i==="[object Object]")r&&Object.keys(t.dump).length!==0?(WG(t,e,t.dump,n),d&&(t.dump="&ref_"+f+t.dump)):(PG(t,e,t.dump),d&&(t.dump="&ref_"+f+" "+t.dump));else if(i==="[object Array]")r&&t.dump.length!==0?(t.noArrayIndent&&!o&&e>0?A0(t,e-1,t.dump,n):A0(t,e,t.dump,n),d&&(t.dump="&ref_"+f+t.dump)):(JG(t,e,t.dump),d&&(t.dump="&ref_"+f+" "+t.dump));else if(i==="[object String]")t.tag!=="?"&&GG(t,t.dump,e,s,a);else{if(i==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new $e("unacceptable kind of an object to dump "+i)}t.tag!==null&&t.tag!=="?"&&(l=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?l="!"+l:l.slice(0,18)==="tag:yaml.org,2002:"?l="!!"+l.slice(18):l="!<"+l+">",t.dump=l+" "+t.dump)}return!0}function _G(t,e){var A=[],r=[],n,s;for(Gh(t,A,r),n=0,s=r.length;n<s;n+=1)e.duplicates.push(A[r[n]]);e.usedDuplicates=new Array(s)}function Gh(t,e,A){var r,n,s;if(t!==null&&typeof t=="object")if(n=e.indexOf(t),n!==-1)A.indexOf(n)===-1&&A.push(n);else if(e.push(t),Array.isArray(t))for(n=0,s=t.length;n<s;n+=1)Gh(t[n],e,A);else for(r=Object.keys(t),n=0,s=r.length;n<s;n+=1)Gh(t[r[n]],e,A)}function jG(t,e){e=e||{};var A=new LG(e);A.noRefs||_G(t,A);var r=t;return A.replacer&&(r=A.replacer.call({"":r},"",r)),yA(A,0,r,!0,!0)?A.dump+`
199
+ `:""}var ZG=jG,XG={dump:ZG};function Wh(t,e){return function(){throw new Error("Function yaml."+t+" is removed in js-yaml 4. Use yaml."+e+" instead, which is now safe by default.")}}var k0=C0.load,fJ=C0.loadAll,IJ=XG.dump;var CJ=Wh("safeLoad","load"),QJ=Wh("safeLoadAll","loadAll"),BJ=Wh("safeDump","dump");function ns(t,e){let A;t.trim().startsWith("{")?A=JSON.parse(t):A=k0(t);let r=!!A.swagger&&A.swagger.startsWith("2"),n=A.components?.schemas||A.definitions||{},s=A.components?.securitySchemes||A.securityDefinitions||{},o="";A.servers&&A.servers.length>0?o=A.servers[0].url:A.host&&(o=`${A.schemes?.[0]||"https"}://${A.host}${A.basePath||""}`);let i=E=>{let B=E.replace("#/components/schemas/","").replace("#/definitions/","");return n[B]||{}},a=(E,B=0)=>{if(B>5)return null;if(E.$ref)return a(i(E.$ref),B+1);if(E.example!==void 0)return E.example;if(E.default!==void 0)return E.default;if(E.enum&&E.enum.length>0)return E.enum[0];if(E.allOf){let Q={};for(let D of E.allOf){let m=a(D,B+1);typeof m=="object"&&m!==null&&Object.assign(Q,m)}return Q}if(E.oneOf||E.anyOf){let Q=E.oneOf||E.anyOf||[];return Q.length>0?a(Q[0],B+1):null}switch(E.type){case"object":{let Q={};for(let[D,m]of Object.entries(E.properties||{}))Q[D]=a(m,B+1);return Q}case"array":return E.items?[a(E.items,B+1)]:[];case"string":return E.format==="date"?"2026-01-01":E.format==="date-time"?"2026-01-01T00:00:00Z":E.format==="email"?"user@example.com":E.format==="uri"||E.format==="url"?"https://example.com":E.format==="uuid"?"550e8400-e29b-41d4-a716-446655440000":"string";case"integer":return 0;case"number":return 0;case"boolean":return!0;default:if(E.properties){let Q={};for(let[D,m]of Object.entries(E.properties))Q[D]=a(m,B+1);return Q}return null}},c=(()=>{let E=Object.values(s)[0];if(!E)return{type:"none"};if(E.type==="http"&&E.scheme==="basic")return{type:"basic",basic:{username:"",password:""}};if(E.type==="http"&&E.scheme==="bearer")return{type:"bearer",bearer:{token:""}};if(E.type==="apiKey")return{type:"api-key",apiKey:{key:E.name||"X-API-Key",value:"",addTo:E.in==="query"?"query":"header"}};if(E.type==="oauth2"){let B=E.flows?.authorizationCode,Q=E.flows?.clientCredentials,D=B||Q;return{type:"oauth2",oauth2:{grantType:B?"authorization_code":"client_credentials",authUrl:B?.authorizationUrl||"",tokenUrl:D?.tokenUrl||"",clientId:"",clientSecret:"",scope:Object.keys(D?.scopes||{}).join(" ")}}}return{type:"none"}})(),f={},d=[],g=0,I=["get","post","put","patch","delete","head","options"];for(let[E,B]of Object.entries(A.paths||{}))for(let[Q,D]of Object.entries(B)){if(!I.includes(Q))continue;let m=D,R=Q.toUpperCase(),U=`{{base_url}}${E.replace(/\{(\w+)\}/g,"{{$1}}")}`,k=[...m.parameters||[],...B.parameters||[]],q=[],F=[],N=[];for(let T of k){let _=String(T.example??T.default??""),me={key:T.name,value:_,enabled:!!T.required};T.in==="query"?q.push(me):T.in==="header"?F.push(me):T.in==="path"&&N.push(me)}let M={type:"none"};if(m.requestBody?.content){let T=m.requestBody.content["application/json"],_=m.requestBody.content["multipart/form-data"],me=m.requestBody.content["application/x-www-form-urlencoded"];if(T?.schema){let L=T.example??a(T.schema);M={type:"json",raw:JSON.stringify(L,null,2)}}else if(_?.schema){let L=_.schema.properties||{};M={type:"form-data",formData:Object.keys(L).map(Se=>({key:Se,value:"",enabled:!0}))}}else if(me?.schema){let L=me.schema.properties||{};M={type:"x-www-form-urlencoded",formData:Object.keys(L).map(Se=>({key:Se,value:"",enabled:!0}))}}}else if(r){let T=k.find(_=>_.in==="body");if(T?.schema){let _=a(T.schema);M={type:"json",raw:JSON.stringify(_,null,2)}}}let H=m.summary||m.operationId||`${R} ${E}`,$={id:Date.now().toString()+Math.random().toString(36).slice(2,7),name:H,method:R,url:U,params:q,headers:F,body:M,auth:c};g++;let j=m.tags?.[0];j?(f[j]||(f[j]=[]),f[j].push($)):d.push($)}let S=Object.entries(f).map(([E,B])=>({id:Date.now().toString()+Math.random().toString(36).slice(2,7),name:E,requests:B,folders:[]})),p=A.info.title||e.replace(/\.(json|ya?ml)$/i,""),u={id:Date.now().toString(),name:p,folders:S,requests:d,variables:[]},h={name:p,variables:[{key:"base_url",value:o.replace(/\/$/,""),enabled:!0},...Array.from(new Set(Object.keys(A.paths||{}).flatMap(E=>[...E.matchAll(/\{(\w+)\}/g)].map(B=>B[1])))).map(E=>({key:E,value:"",enabled:!0}))]};return{collection:u,environment:h,requestCount:g}}function ss(t){if(t===null)return{type:"string",nullable:!0};if(Array.isArray(t))return{type:"array",items:t.length?ss(t[0]):{}};if(typeof t=="object"){let e={};for(let[A,r]of Object.entries(t))e[A]=ss(r);return{type:"object",properties:e}}return{type:typeof t=="number"?Number.isInteger(t)?"integer":"number":typeof t=="boolean"?"boolean":"string"}}var wo=[{name:"list_collections",description:"List all API collections (local and global) with name, id, request count, and folder count",inputSchema:{type:"object",properties:{},required:[]}},{name:"list_requests",description:"List requests in a collection or folder with method, name, and URL",inputSchema:{type:"object",properties:{collectionId:{type:"string",description:"Collection ID"},scope:{type:"string",enum:["local","global"],description:"Scope (default: local)"},folderPath:{type:"string",description:'Slash-separated folder path (e.g. "Users/Admin")'}},required:["collectionId"]}},{name:"list_environments",description:"List all environments with variables and active status",inputSchema:{type:"object",properties:{},required:[]}},{name:"get_request",description:"Get full request details including URL, method, headers, body, and auth",inputSchema:{type:"object",properties:{collectionId:{type:"string"},requestId:{type:"string"},scope:{type:"string",enum:["local","global"]}},required:["collectionId","requestId"]}},{name:"list_servers",description:"List all mock servers and MCP servers with status, ports, and route counts (HTTP transport only in stdio mode)",inputSchema:{type:"object",properties:{},required:[]}},{name:"create_collection",description:"Create a new API collection",inputSchema:{type:"object",properties:{name:{type:"string",description:"Collection name"},scope:{type:"string",enum:["local","global"]},description:{type:"string"}},required:["name"]}},{name:"create_request",description:"Create a new API request in a collection or folder",inputSchema:{type:"object",properties:{collectionId:{type:"string"},name:{type:"string"},method:{type:"string",description:"HTTP method (GET, POST, etc.)"},url:{type:"string"},scope:{type:"string",enum:["local","global"]},folderPath:{type:"string",description:"Slash-separated folder path"},headers:{type:"array",items:{type:"object",properties:{key:{type:"string"},value:{type:"string"}}}},body:{type:"string",description:"Request body content"},bodyType:{type:"string",enum:["none","json","raw","xml","graphql"],description:"Body type (default: none)"},auth:{type:"object",description:'Auth config with type and credentials, e.g. { type: "basic", basic: { username, password } }'},params:{type:"array",items:{type:"object",properties:{key:{type:"string"},value:{type:"string"}}},description:"Query parameters"}},required:["collectionId","name","method","url"]}},{name:"create_folder",description:"Create a folder in a collection",inputSchema:{type:"object",properties:{collectionId:{type:"string"},name:{type:"string"},scope:{type:"string",enum:["local","global"]},parentPath:{type:"string",description:"Slash-separated parent folder path"}},required:["collectionId","name"]}},{name:"create_environment",description:"Create an environment with variables",inputSchema:{type:"object",properties:{name:{type:"string"},variables:{type:"array",items:{type:"object",properties:{key:{type:"string"},value:{type:"string"}}}},scope:{type:"string",enum:["local","global"]}},required:["name"]}},{name:"create_mock_server",description:"Create a new mock server (requires VS Code)",inputSchema:{type:"object",properties:{name:{type:"string"},port:{type:"number"}}}},{name:"create_mock_route",description:"Add a route to a mock server (requires VS Code)",inputSchema:{type:"object",properties:{serverId:{type:"string"},method:{type:"string"},path:{type:"string",description:"Route path (e.g. /api/users)"},status:{type:"number",description:"Response status code (default: 200)"},body:{type:"string",description:"Response body"},headers:{type:"array",items:{type:"object",properties:{key:{type:"string"},value:{type:"string"}}}},name:{type:"string"}},required:["serverId","method","path"]}},{name:"start_mock_server",description:"Start a mock server (requires VS Code)",inputSchema:{type:"object",properties:{serverId:{type:"string"}},required:["serverId"]}},{name:"stop_mock_server",description:"Stop a mock server (requires VS Code)",inputSchema:{type:"object",properties:{serverId:{type:"string"}},required:["serverId"]}},{name:"restart_mock_server",description:"Restart a running mock server (requires VS Code)",inputSchema:{type:"object",properties:{serverId:{type:"string"}},required:["serverId"]}},{name:"start_mcp_server",description:"Start an MCP server for a collection (requires VS Code)",inputSchema:{type:"object",properties:{collectionId:{type:"string"},scope:{type:"string",enum:["local","global"]},port:{type:"number",description:"Port (default: 3200)"}},required:["collectionId"]}},{name:"stop_mcp_server",description:"Stop an MCP server (requires VS Code)",inputSchema:{type:"object",properties:{collectionId:{type:"string"}},required:["collectionId"]}},{name:"restart_mcp_server",description:"Restart a running MCP server (requires VS Code)",inputSchema:{type:"object",properties:{collectionId:{type:"string"},scope:{type:"string",enum:["local","global"]},port:{type:"number",description:"Port (default: 3200)"}},required:["collectionId"]}},{name:"run_collection",description:"Run all requests in a collection and return results",inputSchema:{type:"object",properties:{collectionId:{type:"string"},scope:{type:"string",enum:["local","global"]},mode:{type:"string",enum:["sequential","parallel"],description:"Run mode (default: sequential)"},maxConcurrency:{type:"number",description:"Max parallel requests (default: 5, only for parallel mode)"}},required:["collectionId"]}},{name:"update_collection",description:"Update a collection name, description, variables, auth, or scripts",inputSchema:{type:"object",properties:{collectionId:{type:"string"},scope:{type:"string",enum:["local","global"]},name:{type:"string"},description:{type:"string"},variables:{type:"array",items:{type:"object",properties:{key:{type:"string"},value:{type:"string"}}}},auth:{type:"object",description:"Auth config with type and credentials"},preRequestScript:{type:"string"},testScript:{type:"string"}},required:["collectionId"]}},{name:"update_request",description:"Update an existing API request",inputSchema:{type:"object",properties:{collectionId:{type:"string"},requestId:{type:"string"},scope:{type:"string",enum:["local","global"]},name:{type:"string"},method:{type:"string"},url:{type:"string"},headers:{type:"array",items:{type:"object",properties:{key:{type:"string"},value:{type:"string"}}}},body:{type:"string"},bodyType:{type:"string",enum:["none","json","raw","xml","graphql"]},auth:{type:"object"},preRequestScript:{type:"string"},testScript:{type:"string"},testRules:{type:"array",items:{type:"object",properties:{id:{type:"string"},source:{type:"string"},property:{type:"string"},operator:{type:"string"},expected:{type:"string"},enabled:{type:"boolean"}},required:["source","operator"]}},setVariables:{type:"array",items:{type:"object",properties:{id:{type:"string"},source:{type:"string"},property:{type:"string"},variableName:{type:"string"},enabled:{type:"boolean"}},required:["source","property","variableName"]}},mcpDescription:{type:"string"},mcpInputSchema:{type:"object"}},required:["collectionId","requestId"]}},{name:"update_environment",description:"Update an environment name, replace variables, or add/remove individual variables",inputSchema:{type:"object",properties:{environmentId:{type:"string"},scope:{type:"string",enum:["local","global"]},name:{type:"string"},variables:{type:"array",items:{type:"object",properties:{key:{type:"string"},value:{type:"string"}}}},addVariables:{type:"array",items:{type:"object",properties:{key:{type:"string"},value:{type:"string"}}}},removeVariables:{type:"array",items:{type:"string"}}},required:["environmentId"]}},{name:"update_mock_route",description:"Update a mock server route (requires VS Code)",inputSchema:{type:"object",properties:{serverId:{type:"string"},routeId:{type:"string"},method:{type:"string"},path:{type:"string"},name:{type:"string"},enabled:{type:"boolean"},status:{type:"number"},body:{type:"string"},headers:{type:"array",items:{type:"object",properties:{key:{type:"string"},value:{type:"string"}}}}},required:["serverId","routeId"]}},{name:"list_history",description:"List request/response history entries",inputSchema:{type:"object",properties:{scope:{type:"string",enum:["local","global"]},requestId:{type:"string"},urlPattern:{type:"string"},method:{type:"string"},limit:{type:"number"},offset:{type:"number"}},required:[]}},{name:"get_history_entry",description:"Get full details of a history entry",inputSchema:{type:"object",properties:{id:{type:"string"},scope:{type:"string",enum:["local","global"]},includeRequestBody:{type:"boolean"},includeResponseBody:{type:"boolean"},maxBodyLength:{type:"number"}},required:["id"]}},{name:"list_snapshots",description:"List response snapshots",inputSchema:{type:"object",properties:{requestId:{type:"string"}},required:[]}},{name:"get_snapshot",description:"Get snapshot details with contract variants",inputSchema:{type:"object",properties:{snapshotId:{type:"string"},includeRecords:{type:"boolean"},includeContractDetails:{type:"boolean"},maxRecords:{type:"number"}},required:["snapshotId"]}},{name:"run_request",description:"Execute a single API request with full pipeline",inputSchema:{type:"object",properties:{collectionId:{type:"string"},requestId:{type:"string"},scope:{type:"string",enum:["local","global"]},environmentId:{type:"string"},environmentScope:{type:"string",enum:["local","global"]},overrides:{type:"object",properties:{url:{type:"string"},headers:{type:"array",items:{type:"object",properties:{key:{type:"string"},value:{type:"string"}}}},body:{type:"string"},bodyType:{type:"string"}}},runTests:{type:"boolean"},runScripts:{type:"boolean"},extractVariables:{type:"boolean"},maxResponseBody:{type:"number"}},required:["collectionId","requestId"]}},{name:"import_curl",description:"Import a cURL command as a new request",inputSchema:{type:"object",properties:{curlString:{type:"string"},collectionId:{type:"string"},scope:{type:"string",enum:["local","global"]},folderPath:{type:"string"},name:{type:"string"}},required:["curlString","collectionId"]}},{name:"import_openapi",description:"Import an OpenAPI/Swagger spec",inputSchema:{type:"object",properties:{content:{type:"string"},fileName:{type:"string"},scope:{type:"string",enum:["local","global"]},createEnvironment:{type:"boolean"}},required:["content"]}},{name:"export_curl",description:"Generate cURL commands from collection requests",inputSchema:{type:"object",properties:{collectionId:{type:"string"},scope:{type:"string",enum:["local","global"]},requestIds:{type:"array",items:{type:"string"}},platform:{type:"string",enum:["unix","windows"]}},required:["collectionId"]}},{name:"export_openapi",description:"Generate an OpenAPI 3.0 spec from a collection",inputSchema:{type:"object",properties:{collectionId:{type:"string"},scope:{type:"string",enum:["local","global"]},requestIds:{type:"array",items:{type:"string"}},title:{type:"string"},version:{type:"string"}},required:["collectionId"]}},{name:"security_scan",description:"Run automated security probes against an API request",inputSchema:{type:"object",properties:{collectionId:{type:"string"},requestId:{type:"string"},scope:{type:"string",enum:["local","global"]},probes:{type:"array",items:{type:"string",enum:["injection","broken-auth","security-headers","information-disclosure","rate-limit","mass-assignment"]}},environmentId:{type:"string"},environmentScope:{type:"string",enum:["local","global"]},confirm:{type:"string"}},required:["collectionId","requestId","probes","confirm"]}}],zG={type:"string",description:"Absolute path to the workspace root. Required for local-scope operations in stdio mode."};for(let t of wo)t.inputSchema.properties&&"scope"in t.inputSchema.properties&&(t.inputSchema.properties.workspace=zG);var F0=new Set(["create_mock_server","create_mock_route","start_mock_server","stop_mock_server","restart_mock_server","start_mcp_server","stop_mcp_server","restart_mcp_server","update_mock_route","list_servers"]);var $G="2024-11-05",os=class{server=null;port=3199;running=!1;enabled=!0;transport="stdio";sessionId=null;deps;onStatusChange=null;constructor(e){this.deps=e}setOnStatusChange(e){this.onStatusChange=e}isRunning(){return this.running}getPort(){return this.port}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}getTransport(){return this.transport}setTransport(e){this.transport=e}getStatus(){return{running:this.running,port:this.port,enabled:this.enabled,transport:this.transport}}start(e){return xe(),new Promise((A,r)=>{if(this.running){r(new Error("Already running"));return}this.port=e,this.sessionId=null,this.server=U0.createServer((n,s)=>this.handleRequest(n,s)),this.server.on("error",n=>{let s=n.code==="EADDRINUSE"?`Port ${e} is already in use`:`Server error: ${n.message}`;this.cleanup(),this.emitStatus(s),r(new Error(s))}),this.server.listen(e,"127.0.0.1",()=>{this.running=!0,this.emitStatus(),A()})})}stop(){return new Promise(e=>{if(!this.running||!this.server){e();return}this.server.close(()=>{this.cleanup(),this.emitStatus(),e()})})}cleanup(){this.running=!1,this.server=null,this.sessionId=null}emitStatus(e){this.onStatusChange?.({running:this.running,port:this.port,enabled:this.enabled,transport:this.transport,error:e})}handleRequest(e,A){let r=(e.method||"GET").toUpperCase();if(r==="OPTIONS"){A.writeHead(204,{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, DELETE, OPTIONS","Access-Control-Allow-Headers":"*"}),A.end();return}if(e.url!=="/mcp"){A.writeHead(404,{"Content-Type":"application/json"}),A.end(JSON.stringify({error:"Not found. MCP endpoint is POST /mcp"}));return}if(r==="DELETE"){this.sessionId=null,A.writeHead(200,{"Content-Type":"application/json"}),A.end("{}");return}if(r!=="POST"){A.writeHead(405,{"Content-Type":"application/json"}),A.end(JSON.stringify({error:"Method not allowed"}));return}let n=[];e.on("data",s=>n.push(s)),e.on("end",()=>this.handleJsonRpc(Buffer.concat(n).toString("utf-8"),A))}async handleJsonRpc(e,A){let r;try{r=JSON.parse(e)}catch{this.sendRpc(A,{jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}});return}if(r.method&&r.id===void 0){A.writeHead(202,{"Access-Control-Allow-Origin":"*"}),A.end();return}if(r.method==="tools/call"&&!jr()){this.sendRpc(A,{jsonrpc:"2.0",id:r.id,error:{code:-32001,message:"License required. Activate a license in Open Post to use the Management MCP server."}});return}let{id:n,method:s,params:o={}}=r,i;try{switch(s){case"initialize":this.sessionId=tt.randomUUID(),i={protocolVersion:$G,capabilities:{tools:{}},serverInfo:{name:"Open Post Management",version:"1.0.0"},instructions:`Open Post Management MCP server. Local scope operations target workspace: ${this.deps.workspacePath||"none"}. Use scope "global" for cross-workspace data.`};break;case"ping":i={};break;case"tools/list":i={tools:wo};break;case"tools/call":i=await this.handleToolCall(o.name,o.arguments||{});break;default:this.sendRpc(A,{jsonrpc:"2.0",id:n,error:{code:-32601,message:`Method not found: ${s}`}});return}}catch(l){this.sendRpc(A,{jsonrpc:"2.0",id:n,error:{code:-32603,message:l instanceof Error?l.message:"Internal error"}});return}let a={"Content-Type":"application/json","Access-Control-Allow-Origin":"*"};this.sessionId&&(a["Mcp-Session-Id"]=this.sessionId),this.sendRpc(A,{jsonrpc:"2.0",id:n,result:i},a)}sendRpc(e,A,r){let n=Buffer.from(JSON.stringify(A),"utf-8");e.writeHead(200,{"Content-Type":"application/json","Content-Length":String(n.byteLength),"Access-Control-Allow-Origin":"*",...r}),e.end(n)}async handleToolCall(e,A){let r=p=>({content:[{type:"text",text:JSON.stringify(p,null,2)}]}),n=p=>({content:[{type:"text",text:p}],isError:!0}),s=this.deps,o=(p,u)=>p==="global"?null:s.workspacePath?u&&u!==s.workspacePath?`Workspace mismatch \u2014 this MCP server manages "${s.workspacePath}". You requested "${u}". Use scope: "global" for cross-workspace data, or connect to the MCP server running in the target workspace.`:null:'No workspace open \u2014 local scope operations are unavailable. Use scope: "global" instead.',i=p=>p==="global"?s.loadGlobalCollections():s.loadCollections(),a=(p,u)=>u==="global"?s.saveGlobalCollections(p):s.saveCollections(p),l=p=>{p==="global"?s.syncGlobal():s.syncLocal()},c=p=>p==="global"?s.loadGlobalEnvironments():s.loadEnvironments(),f=(p,u)=>u==="global"?s.saveGlobalEnvironments(p):s.saveEnvironments(p),d=p=>{let u=p.requests.length,h=E=>{for(let B of E)u+=B.requests.length,h(B.folders)};return h(p.folders),u},g=p=>{let u=p.folders.length,h=E=>{for(let B of E)u+=B.folders.length,h(B.folders)};return h(p.folders),u},I=(p,u)=>{if(!u)return p;let h=u.split("/").filter(Boolean),E=p;for(let B of h){let Q=E.folders.find(D=>D.name===B||D.id===B);if(!Q)return null;E=Q}return E},S=(p,u)=>{let h=p.requests.find(B=>B.id===u);if(h)return{request:h,folderPath:[]};let E=(B,Q)=>{for(let D of B){let m=D.requests.find(y=>y.id===u);if(m)return{request:m,folderPath:[...Q,D.id]};let R=E(D.folders,[...Q,D.id]);if(R)return R}return null};return E(p.folders,[])};try{if(["list_requests","get_request","create_collection","create_request","create_folder","create_environment","update_collection","update_request","update_environment","run_collection","start_mcp_server","stop_mcp_server","run_request","import_curl","import_openapi","security_scan"].includes(e)&&A.scope!=="global"){let u=o(A.scope,A.workspace);if(u)return n(u)}switch(e){case"list_collections":{let u=s.loadCollections().map(E=>({id:E.id,name:E.name,scope:"local",requests:d(E),folders:g(E)})),h=s.loadGlobalCollections().map(E=>({id:E.id,name:E.name,scope:"global",requests:d(E),folders:g(E)}));return r([...u,...h])}case"list_requests":{if(!A.collectionId)return n("collectionId is required");let h=i(A.scope).find(B=>B.id===A.collectionId);if(!h)return n(`Collection not found: ${A.collectionId}`);let E=I(h,A.folderPath);return E?r(E.requests.map(B=>({id:B.id,name:B.name,method:B.method,url:B.url}))):n(`Folder not found: ${A.folderPath}`)}case"list_environments":{let u=s.loadEnvironments().map(E=>({id:E.id,name:E.name,scope:"local",variables:E.variables,isActive:E.id===s.loadActiveEnvironmentId()})),h=s.loadGlobalEnvironments().map(E=>({id:E.id,name:E.name,scope:"global",variables:E.variables,isActive:E.id===s.loadGlobalActiveEnvironmentId()}));return r([...u,...h])}case"get_request":{if(!A.collectionId||!A.requestId)return n("collectionId and requestId are required");let h=i(A.scope).find(Q=>Q.id===A.collectionId);if(!h)return n(`Collection not found: ${A.collectionId}`);let E=null,B=(Q,D)=>{for(let m of D)if(m.id===A.requestId){E=m;return}for(let m of Q)E||B(m.folders,m.requests)};return B(h.folders,h.requests),E?r(E):n(`Request not found: ${A.requestId}`)}case"list_servers":{let u=s.mockServerManager.getConfigs().map(E=>({id:E.id,name:E.name,type:"mock",port:E.port,running:s.mockServerManager.getServerStatus(E.id).running,routes:E.routes.length})),h=s.loadMcpServers().map(E=>{let B=s.getMcpServers().get(E.id);return{id:E.id,name:E.name,type:"mcp",port:E.port,running:B?.isRunning()??!1,collectionId:E.collectionId,scope:E.scope}});return r([...u,...h])}case"create_collection":{if(!A.name)return n("name is required");let u={id:tt.randomUUID(),name:A.name,folders:[],requests:[],variables:[],description:A.description||""},h=i(A.scope);return h.push(u),a(h,A.scope),l(A.scope),r({id:u.id,name:u.name,scope:A.scope||"local",workspace:A.scope==="global"?"global":s.workspacePath})}case"create_request":{if(!A.collectionId||!A.name||!A.method||!A.url)return n("collectionId, name, method, and url are required");let u=i(A.scope),h=u.find(D=>D.id===A.collectionId);if(!h)return n(`Collection not found: ${A.collectionId}`);let E=I(h,A.folderPath);if(!E)return n(`Folder not found: ${A.folderPath}`);let B=(A.headers||[]).map(D=>({key:D.key,value:D.value,enabled:!0})),Q={id:tt.randomUUID(),name:A.name,method:A.method.toUpperCase(),url:A.url,params:(A.params||[]).map(D=>({key:D.key,value:D.value,enabled:!0})),headers:B,body:{type:A.bodyType||"none",raw:A.body},auth:A.auth||{type:"none"}};return A.preRequestScript&&(Q.preRequestScript=A.preRequestScript),A.testScript&&(Q.testScript=A.testScript),A.testRules&&(Q.testRules=(A.testRules||[]).map(D=>({id:D.id||tt.randomUUID(),source:D.source,property:D.property||"",operator:D.operator,expected:D.expected||"",enabled:D.enabled!==!1}))),A.setVariables&&(Q.setVariables=(A.setVariables||[]).map(D=>({id:D.id||tt.randomUUID(),source:D.source,property:D.property||"",variableName:D.variableName||"",enabled:D.enabled!==!1}))),A.mcpDescription&&(Q.mcpDescription=A.mcpDescription),A.mcpInputSchema&&(Q.mcpInputSchema=A.mcpInputSchema),E.requests.push(Q),a(u,A.scope),l(A.scope),r({id:Q.id,name:Q.name,method:Q.method,url:Q.url})}case"create_folder":{if(!A.collectionId||!A.name)return n("collectionId and name are required");let u=i(A.scope),h=u.find(Q=>Q.id===A.collectionId);if(!h)return n(`Collection not found: ${A.collectionId}`);let E=I(h,A.parentPath);if(!E)return n(`Parent folder not found: ${A.parentPath}`);let B={id:tt.randomUUID(),name:A.name,requests:[],folders:[]};return E.folders.push(B),a(u,A.scope),l(A.scope),r({id:B.id,name:B.name})}case"create_environment":{if(!A.name)return n("name is required");let u={id:tt.randomUUID(),name:A.name,variables:(A.variables||[]).map(E=>({key:E.key,value:E.value,enabled:!0}))},h=c(A.scope);return h.push(u),f(h,A.scope),l(A.scope),r({id:u.id,name:u.name,variables:u.variables.length})}case"create_mock_server":{let u=s.mockServerManager.createServer();return A.name&&s.mockServerManager.renameServer(u.id,A.name),A.port&&s.mockServerManager.updateSetting(u.id,"port",A.port),s.syncMockServers(),r({id:u.id,name:A.name||u.name,port:A.port||u.port})}case"create_mock_route":{if(!A.serverId||!A.method||!A.path)return n("serverId, method, and path are required");let u={id:tt.randomUUID(),method:A.method.toUpperCase(),path:A.path,enabled:!0,responseSource:"custom",name:A.name||`${A.method.toUpperCase()} ${A.path}`,response:{status:A.status||200,headers:(A.headers||[]).map(h=>({key:h.key,value:h.value,enabled:!0})),body:A.body||""}};return s.mockServerManager.addRoute(A.serverId,u),s.syncMockServers(),r({id:u.id,method:u.method,path:u.path})}case"start_mock_server":return A.serverId?(await s.mockServerManager.startServer(A.serverId),s.syncMockServers(),r({serverId:A.serverId,running:!0})):n("serverId is required");case"stop_mock_server":return A.serverId?(await s.mockServerManager.stopServer(A.serverId),s.syncMockServers(),r({serverId:A.serverId,running:!1})):n("serverId is required");case"restart_mock_server":return A.serverId?(await s.mockServerManager.stopServer(A.serverId),await s.mockServerManager.startServer(A.serverId),s.syncMockServers(),r({serverId:A.serverId,running:!0,restarted:!0,note:"Server restarted. AI clients connected to this mock server may need to reconnect to pick up changes."})):n("serverId is required");case"start_mcp_server":{if(!A.collectionId)return n("collectionId is required");let u=A.scope||"local",E=i(u).find(H=>H.id===A.collectionId);if(!E)return n(`Collection not found: ${A.collectionId}`);let B=s.getMcpServers(),Q=B.get(A.collectionId);Q?.isRunning()&&await Q.stop();let D=new zn(A.collectionId);B.set(A.collectionId,D);let m=A.port||3200,R=this.buildEnvVars();await D.start(m,E,R);let y=s.loadProxies?.()||[],U=s.loadDefaultProxyId?.()||null,k=U&&y.find(H=>H.id===U)||null,q;if(E.certificateConfig){let H=s.loadCertificates?.()||[];H.length&&(q=this.buildTlsCertsLocal(E.certificateConfig,H))}D.updateTlsConfig(k,q);let F=s.loadMcpServers(),N=F.findIndex(H=>H.id===A.collectionId),M={id:A.collectionId,name:E.name,collectionId:A.collectionId,scope:u,port:m,autoStart:!1,swaggerEnabled:!1,maxLogEntries:100};return N>=0?F[N]={...F[N],port:m}:F.push(M),s.saveMcpServers(F),r({collectionId:A.collectionId,port:m,running:!0})}case"stop_mcp_server":{if(!A.collectionId)return n("collectionId is required");let u=s.getMcpServers(),h=u.get(A.collectionId);return h&&(await h.stop(),u.delete(A.collectionId)),r({collectionId:A.collectionId,running:!1})}case"restart_mcp_server":{if(!A.collectionId)return n("collectionId is required");let u=s.getMcpServers(),h=u.get(A.collectionId);h&&(await h.stop(),u.delete(A.collectionId));let E=await this.handleToolCall("start_mcp_server",A);try{let B=JSON.parse(E.content[0].text);B.restarted=!0,B.note="MCP server restarted. AI clients connected to this server may need to reconnect or refresh their tool list to pick up changes.",E.content[0].text=JSON.stringify(B,null,2)}catch{}return E}case"run_collection":{if(!A.collectionId)return n("collectionId is required");let h=i(A.scope).find(L=>L.id===A.collectionId);if(!h)return n(`Collection not found: ${A.collectionId}`);let E=[],B=(L,Se,Ue)=>{for(let z of Se)E.push({request:z,folderPath:Ue});for(let z of L)B(z.folders,z.requests,[...Ue,z.id])};if(B(h.folders,h.requests,[]),E.length===0)return r({total:0,passed:0,failed:0,results:[]});let Q=await this.buildEnvVarsAsync(E.map(L=>L.request),{collectionId:A.collectionId,collectionScope:A.scope}),D=[],m=0,R=0,y=Date.now(),U=s.loadProxies?.()||[],k=s.loadDefaultProxyId?.()||null,q=s.loadCertificates?.()||[],F=async(L,Se)=>{let Ue=[];try{let z={...L.request,headers:[...L.request.headers],params:[...L.request.params]};if(z.inheritAuth&&(z.auth=ZA(h,L.folderPath,z)),z.inheritScripts){let ne=BA(h,L.folderPath,z);z.preRequestScript=ne.pre,z.testScript=ne.test}let Ro=tA(z,Se);for(let[ne,ur]of Object.entries(Ro.headers))z.headers.push({key:ne,value:ur,enabled:!0});for(let[ne,ur]of Object.entries(Ro.queryParams))z.params.push({key:ne,value:ur,enabled:!0});if(z.preRequestScript){let ne=ft(z.preRequestScript,{request:z,environment:Se});ne.updatedRequest&&(z=ne.updatedRequest),ne.environmentUpdates&&Object.assign(Se,ne.environmentUpdates),ne.logs.length&&Ue.push(...ne.logs)}let X=z.proxyId||k,he=X&&U.find(ne=>ne.id===X)||null,At;z.certificateConfig&&(z.certificateConfig.clientCertId||z.certificateConfig.privateKeyId||z.certificateConfig.caBundleId)&&q.length&&(At=this.buildTlsCertsLocal(z.certificateConfig,q));let pe=await Et(z,Se,!0,he,void 0,At),Re;z.testRules?.length&&(Re=Pr(z.testRules,pe));let xt;if(z.setVariables?.length&&(xt=QA(z.setVariables,pe),Object.keys(xt).length&&Object.assign(Se,xt)),z.testScript){let ne=ft(z.testScript,{request:z,response:pe,environment:Se});ne.environmentUpdates&&Object.assign(Se,ne.environmentUpdates),ne.logs.length&&Ue.push(...ne.logs)}let cr=Re?Re.every(ne=>ne.passed)&&pe.status<400:pe.status<400;cr?m++:R++,D.push({requestId:L.request.id,requestName:L.request.name,method:L.request.method,url:L.request.url,status:pe.status,time:pe.time,passed:cr,responseBody:pe.body?.slice(0,1e4),responseHeaders:pe.headers,testResults:Re,extractedVars:xt,scriptLogs:Ue.length?Ue:void 0})}catch(z){R++,D.push({requestId:L.request.id,requestName:L.request.name,method:L.request.method,url:L.request.url,status:0,time:0,passed:!1,error:z instanceof Error?z.message:"Unknown error",scriptLogs:Ue.length?Ue:void 0})}};if(A.mode==="parallel"){let L=A.maxConcurrency||5,Se=[...E],Ue=Array.from({length:Math.min(L,Se.length)},async()=>{for(;Se.length;)await F(Se.shift(),{...Q})});await Promise.all(Ue)}else for(let L of E)await F(L,Q);let N=Date.now()-y,M=A.scope||"local",H=s.maxCollectionRunHistory||5,$=s.loadCollectionRunHistory(M),j=D.map(L=>({requestId:L.requestId,requestName:L.requestName,method:L.method,url:L.url,status:L.status,time:L.time,passed:L.passed,responseBody:L.responseBody,responseHeaders:L.responseHeaders,error:L.error})),_=[{id:tt.randomUUID(),collectionId:A.collectionId,scope:M,timestamp:Date.now(),mode:A.mode||"sequential",total:E.length,passed:m,failed:R,time:N,results:j},...$.filter(L=>L.collectionId===A.collectionId)].slice(0,H),me=$.filter(L=>L.collectionId!==A.collectionId);return s.saveCollectionRunHistory(M,[..._,...me]),r({total:E.length,passed:m,failed:R,time:N,results:D.map(L=>({name:L.requestName,method:L.method,url:L.url,status:L.status,time:L.time,passed:L.passed,error:L.error,testResults:L.testResults,extractedVars:L.extractedVars,scriptLogs:L.scriptLogs}))})}case"update_collection":{if(!A.collectionId)return n("collectionId is required");let u=i(A.scope),h=u.find(E=>E.id===A.collectionId);return h?(A.name!==void 0&&(h.name=A.name),A.description!==void 0&&(h.description=A.description),A.variables!==void 0&&(h.variables=(A.variables||[]).map(E=>({key:E.key,value:E.value,enabled:E.enabled!==!1}))),A.auth!==void 0&&(h.auth=A.auth),A.preRequestScript!==void 0&&(h.preRequestScript=A.preRequestScript),A.testScript!==void 0&&(h.testScript=A.testScript),a(u,A.scope),l(A.scope),r({id:h.id,name:h.name})):n(`Collection not found: ${A.collectionId}`)}case"update_request":{if(!A.collectionId||!A.requestId)return n("collectionId and requestId are required");let u=i(A.scope),h=u.find(D=>D.id===A.collectionId);if(!h)return n(`Collection not found: ${A.collectionId}`);let E=null,B=(D,m)=>{for(let R of m)if(R.id===A.requestId){E=R;return}for(let R of D)E||B(R.folders,R.requests)};if(B(h.folders,h.requests),!E)return n(`Request not found: ${A.requestId}`);let Q=E;return A.name!==void 0&&(Q.name=A.name),A.method!==void 0&&(Q.method=A.method.toUpperCase()),A.url!==void 0&&(Q.url=A.url),A.headers!==void 0&&(Q.headers=(A.headers||[]).map(D=>({key:D.key,value:D.value,enabled:D.enabled!==!1}))),A.body!==void 0&&(Q.body={...Q.body,raw:A.body}),A.bodyType!==void 0&&(Q.body={...Q.body,type:A.bodyType}),A.auth!==void 0&&(Q.auth=A.auth),A.inheritAuth!==void 0&&(Q.inheritAuth=A.inheritAuth),A.preRequestScript!==void 0&&(Q.preRequestScript=A.preRequestScript),A.testScript!==void 0&&(Q.testScript=A.testScript),A.testRules!==void 0&&(Q.testRules=(A.testRules||[]).map(D=>({id:D.id||tt.randomUUID(),source:D.source,property:D.property||"",operator:D.operator,expected:D.expected||"",enabled:D.enabled!==!1}))),A.setVariables!==void 0&&(Q.setVariables=(A.setVariables||[]).map(D=>({id:D.id||tt.randomUUID(),source:D.source,property:D.property||"",variableName:D.variableName||"",enabled:D.enabled!==!1}))),A.mcpDescription!==void 0&&(Q.mcpDescription=A.mcpDescription),A.mcpInputSchema!==void 0&&(Q.mcpInputSchema=A.mcpInputSchema),a(u,A.scope),l(A.scope),r({id:Q.id,name:Q.name,method:Q.method,url:Q.url})}case"update_environment":{if(!A.environmentId)return n("environmentId is required");let u=c(A.scope),h=u.find(E=>E.id===A.environmentId);if(!h)return n(`Environment not found: ${A.environmentId}`);if(A.name!==void 0&&(h.name=A.name),A.variables!==void 0&&(h.variables=(A.variables||[]).map(E=>({key:E.key,value:E.value,enabled:E.enabled!==!1}))),A.addVariables)for(let E of A.addVariables){let B=h.variables.find(Q=>Q.key===E.key);B?B.value=E.value:h.variables.push({key:E.key,value:E.value,enabled:E.enabled!==!1})}return A.removeVariables&&(h.variables=h.variables.filter(E=>!A.removeVariables.includes(E.key))),f(u,A.scope),l(A.scope),r({id:h.id,name:h.name,variables:h.variables.length})}case"update_mock_route":{if(!A.serverId||!A.routeId)return n("serverId and routeId are required");let h=s.mockServerManager.getConfigs().find(B=>B.id===A.serverId);if(!h)return n(`Mock server not found: ${A.serverId}`);let E=h.routes.find(B=>B.id===A.routeId);return E?(A.method!==void 0&&(E.method=A.method.toUpperCase()),A.path!==void 0&&(E.path=A.path),A.name!==void 0&&(E.name=A.name),A.enabled!==void 0&&(E.enabled=A.enabled),A.status!==void 0&&(E.response.status=A.status),A.body!==void 0&&(E.response.body=A.body),A.headers!==void 0&&(E.response.headers=(A.headers||[]).map(B=>({key:B.key,value:B.value,enabled:!0}))),s.mockServerManager.updateRoute(A.serverId,E),s.syncMockServers(),r({id:E.id,method:E.method,path:E.path})):n(`Route not found: ${A.routeId}`)}case"list_history":{let u=Math.min(A.limit||50,200),h=A.offset||0,E=[];A.scope!=="global"&&E.push(...s.loadHistory().map(D=>({...D,scope:"local"}))),A.scope!=="local"&&E.push(...s.loadGlobalHistory().map(D=>({...D,scope:"global"}))),E.sort((D,m)=>m.timestamp-D.timestamp),A.requestId&&(E=E.filter(D=>D.request.id===A.requestId)),A.urlPattern&&(E=E.filter(D=>D.request.url.includes(A.urlPattern))),A.method&&(E=E.filter(D=>D.request.method.toUpperCase()===A.method.toUpperCase()));let B=E.length,Q=E.slice(h,h+u);return r({total:B,offset:h,limit:u,entries:Q.map(D=>({id:D.id,timestamp:D.timestamp,method:D.request.method,url:D.request.url,status:D.response.status,time:D.response.time,size:D.response.size,requestName:D.request.name,scope:D.scope}))})}case"get_history_entry":{if(!A.id)return n("id is required");let u=A.includeRequestBody===!0,h=A.includeResponseBody!==!1,E=A.maxBodyLength||1e4,B,Q="local";if(A.scope!=="global"&&(B=s.loadHistory().find(R=>R.id===A.id)),!B&&A.scope!=="local"&&(B=s.loadGlobalHistory().find(R=>R.id===A.id),Q="global"),!B)return n(`History entry not found: ${A.id}`);let D=B.request,m=B.response;return r({id:B.id,timestamp:B.timestamp,scope:Q,request:{method:D.method,url:D.url,headers:D.headers,authType:D.auth?.type,body:u?D.body?.raw?.slice(0,E):void 0},response:{status:m.status,statusText:m.statusText,headers:m.headers,body:h?m.body?.slice(0,E):void 0,time:m.time,size:m.size,cookies:m.cookies,testResults:m.testResults}})}case"list_snapshots":{let u=s.loadSnapshots();return A.requestId&&(u=u.filter(h=>h.baseRequest.id===A.requestId)),r(u.map(h=>({id:h.id,name:h.name,createdAt:h.createdAt,requestMethod:h.baseRequest.method,requestUrl:h.baseRequest.url,recordCount:h.records.length,contractBuckets:(h.responseContracts||[]).map(E=>({status:E.status,variantCount:E.variants.length,latestSignature:E.variants[E.variants.length-1]?.signature}))})))}case"get_snapshot":{if(!A.snapshotId)return n("snapshotId is required");let h=s.loadSnapshots().find(m=>m.id===A.snapshotId);if(!h)return n(`Snapshot not found: ${A.snapshotId}`);let E=A.includeContractDetails!==!1,B=A.includeRecords===!0,Q=A.maxRecords||10,D={id:h.id,name:h.name,createdAt:h.createdAt,baseRequest:{id:h.baseRequest.id,method:h.baseRequest.method,url:h.baseRequest.url,name:h.baseRequest.name},recordCount:h.records.length};return E&&(D.contractBuckets=(h.responseContracts||[]).map(m=>({status:m.status,variants:m.variants.map(R=>({signature:R.signature,summary:R.summary,firstSeen:R.firstSeen,lastSeen:R.lastSeen,occurrences:R.occurrences,sampleBody:R.sampleBody?.slice(0,2e3)}))}))),B&&(D.records=h.records.slice(-Q).map(m=>({timestamp:m.timestamp,status:m.response.status,time:m.response.time,bodyPreview:m.response.body?.slice(0,500)}))),r(D)}case"run_request":{if(!A.collectionId||!A.requestId)return n("collectionId and requestId are required");let h=i(A.scope).find(X=>X.id===A.collectionId);if(!h)return n(`Collection not found: ${A.collectionId}`);let E=S(h,A.requestId);if(!E)return n(`Request not found: ${A.requestId}`);let B=A.runTests!==!1,Q=A.runScripts!==!1,D=A.extractVariables!==!1,m=A.maxResponseBody||5e4,R=await this.buildEnvVarsAsync([E.request],{environmentId:A.environmentId,environmentScope:A.environmentScope,collectionId:A.collectionId,collectionScope:A.scope}),y={...E.request,headers:[...E.request.headers],params:[...E.request.params]};if(A.overrides&&(A.overrides.url&&(y.url=A.overrides.url),A.overrides.headers&&y.headers.push(...A.overrides.headers.map(X=>({key:X.key,value:X.value,enabled:!0}))),A.overrides.body&&(y.body={...y.body,raw:A.overrides.body}),A.overrides.bodyType&&(y.body={...y.body,type:A.overrides.bodyType})),y.inheritAuth&&(y.auth=ZA(h,E.folderPath,y)),y.inheritScripts){let X=BA(h,E.folderPath,y);y.preRequestScript=X.pre,y.testScript=X.test}let U=tA(y,R);for(let[X,he]of Object.entries(U.headers))y.headers.push({key:X,value:he,enabled:!0});for(let[X,he]of Object.entries(U.queryParams))y.params.push({key:X,value:he,enabled:!0});let k=[];if(Q&&y.preRequestScript){let X=ft(y.preRequestScript,{request:y,environment:R});X.updatedRequest&&(y=X.updatedRequest),X.environmentUpdates&&Object.assign(R,X.environmentUpdates),X.logs.length&&k.push(...X.logs)}let q=s.loadCookiesEnabled();if(q){let X=s.loadCookies(),he=y.url.replace(/\{\{(\w+)\}\}/g,(pe,Re)=>R[Re]??`{{${Re}}}`),At=Vn(X,he);if(At.length){let pe=y.headers.find(Re=>Re.enabled&&Re.key.toLowerCase()==="cookie");pe?pe.value=pe.value+"; "+XA(At):y.headers.push({key:"Cookie",value:XA(At),enabled:!0})}}let F=s.loadProxies?.()||[],N=s.loadDefaultProxyId?.()||null,M=y.proxyId||N,H=M&&F.find(X=>X.id===M)||null,$=s.loadCertificates?.()||[],j;y.certificateConfig&&(y.certificateConfig.clientCertId||y.certificateConfig.privateKeyId||y.certificateConfig.caBundleId)&&$.length&&(j=this.buildTlsCertsLocal(y.certificateConfig,$));let T=await Et(y,R,!0,H,void 0,j),_=T;if(y.auth?.type==="digest"&&_.status===401){let X=Object.entries(_.headers).find(([he])=>he.toLowerCase()==="www-authenticate");if(X&&X[1].toLowerCase().startsWith("digest")){let{username:he="",password:At=""}=y.auth.digest||{},pe=y.url.replace(/\{\{(\w+)\}\}/g,(ne,ur)=>R[ur]??`{{${ur}}}`),Re;try{let ne=new URL(pe);Re=ne.pathname+ne.search}catch{Re=pe}let xt=ne=>ne.replace(/\{\{(\w+)\}\}/g,(ur,_h)=>R[_h]??`{{${_h}}}`),cr=jA(X[1],xt(he),xt(At),y.method,Re);y.headers=y.headers.filter(ne=>ne.key.toLowerCase()!=="authorization"),y.headers.push({key:"Authorization",value:cr,enabled:!0}),T=await Et(y,R,!0,H,void 0,j),_=T}}let me=[];if(q&&_.setCookieHeaders?.length){let X=y.url.replace(/\{\{(\w+)\}\}/g,(he,At)=>R[At]??`{{${At}}}`);if(me=_.setCookieHeaders.map(he=>Gn(he,X)).filter(he=>he!==null),me.length){let he=s.loadCookies();s.saveCookies(qn(he,me))}}_.cookies=me,delete _.setCookieHeaders;let L;if(D&&y.setVariables?.length&&(L=QA(y.setVariables,_),Object.keys(L).length)){Object.assign(R,L);let X=A.environmentScope||"local",he=c(X),At=A.environmentId||(X==="global"?s.loadGlobalActiveEnvironmentId():s.loadActiveEnvironmentId()),pe=he.find(Re=>Re.id===At);if(pe){for(let[Re,xt]of Object.entries(L)){let cr=pe.variables.find(ne=>ne.key===Re);cr?cr.value=xt:pe.variables.push({key:Re,value:xt,enabled:!0})}f(he,X),l(X)}}let Se;if(B&&y.testRules?.length&&(Se=Pr(y.testRules,_)),Q&&y.testScript){let X=ft(y.testScript,{request:y,response:_,environment:R});X.environmentUpdates&&Object.assign(R,X.environmentUpdates),X.logs.length&&k.push(...X.logs)}let Ue=s.loadHistory(),{actualRequest:z,...Ro}=_;return Ue.push({id:Date.now().toString(),timestamp:Date.now(),request:y,response:Ro}),Ue.length>500&&Ue.splice(0,Ue.length-500),s.saveHistory(Ue),s.syncLocal(),r({requestName:y.name,method:y.method,resolvedUrl:y.url.replace(/\{\{(\w+)\}\}/g,(X,he)=>R[he]??`{{${he}}}`),status:_.status,statusText:_.statusText,time:_.time,size:_.size,responseHeaders:_.headers,responseBody:_.body?.slice(0,m),testResults:Se,extractedVariables:L,scriptLogs:k.length?k:void 0,cookies:me.length?me:void 0})}case"import_curl":{if(!A.curlString||!A.collectionId)return n("curlString and collectionId are required");let u=$n(A.curlString);if(!u)return n("Invalid cURL string");let h=i(A.scope),E=h.find(m=>m.id===A.collectionId);if(!E)return n(`Collection not found: ${A.collectionId}`);let B=I(E,A.folderPath);if(!B)return n(`Folder not found: ${A.folderPath}`);let Q=A.name;if(!Q)try{let m=new URL(u.url);Q=`${u.method} ${m.pathname}`}catch{Q=`${u.method} ${u.url}`}let D={id:tt.randomUUID(),name:Q,method:u.method,url:u.url,params:[],headers:u.headers,body:u.body,auth:u.auth};return B.requests.push(D),a(h,A.scope),l(A.scope),r({id:D.id,name:D.name,method:D.method,url:D.url})}case"import_openapi":{if(!A.content)return n("content is required");let u=A.fileName||"imported-spec",h=ns(A.content,u),E=i(A.scope);E.push(h.collection),a(E,A.scope),l(A.scope);let B={collectionId:h.collection.id,collectionName:h.collection.name,requestCount:h.requestCount};if(A.createEnvironment!==!1&&h.environment){let Q={id:tt.randomUUID(),name:h.environment.name,variables:h.environment.variables.map(m=>({key:m.key,value:m.value,enabled:!0}))},D=c(A.scope);D.push(Q),f(D,A.scope),l(A.scope),B.environmentId=Q.id,B.environmentName=Q.name}return r(B)}case"export_curl":{if(!A.collectionId)return n("collectionId is required");let h=i(A.scope).find(y=>y.id===A.collectionId);if(!h)return n(`Collection not found: ${A.collectionId}`);let E=A.platform||"unix",B=E==="windows"?'"':"'",Q=[],D=(y,U)=>{for(let k of U)Q.push(k);for(let k of y)D(k.folders,k.requests)};D(h.folders,h.requests);let R=(A.requestIds?Q.filter(y=>A.requestIds.includes(y.id)):Q).map(y=>{let U=[`curl -X ${y.method}`],k=y.url,q=(y.params||[]).filter(F=>F.enabled);if(q.length){let F=q.map(N=>`${encodeURIComponent(N.key)}=${encodeURIComponent(N.value)}`).join("&");k+=(k.includes("?")?"&":"?")+F}if(y.auth?.type==="basic"&&y.auth.basic)U.push(`-u ${B}${y.auth.basic.username||""}:${y.auth.basic.password||""}${B}`);else if(y.auth?.type==="bearer"&&y.auth.bearer)U.push(`-H ${B}Authorization: Bearer ${y.auth.bearer.token||""}${B}`);else if(y.auth?.type==="api-key"&&y.auth.apiKey){if(y.auth.apiKey.addTo==="header")U.push(`-H ${B}${y.auth.apiKey.key||"X-API-Key"}: ${y.auth.apiKey.value||""}${B}`);else if(y.auth.apiKey.addTo==="query"){let F=k.includes("?")?"&":"?";k+=`${F}${encodeURIComponent(y.auth.apiKey.key||"api_key")}=${encodeURIComponent(y.auth.apiKey.value||"")}`}}try{k=new URL(k).toString()}catch{}U.push(`${B}${k}${B}`);for(let F of(y.headers||[]).filter(N=>N.enabled))U.push(`-H ${B}${F.key}: ${F.value}${B}`);if(y.body.type==="form-data"){let F=y.body.formDataFiles||(y.body.formData||[]).map(N=>({...N,fieldType:"text"}));for(let N of F.filter(M=>M.enabled))U.push(N.fieldType==="file"?`-F ${B}${N.key}=@${N.filePath||N.fileName||"/path/to/file"}${B}`:`-F ${B}${N.key}=${N.value}${B}`)}else y.body.type==="binary"&&y.body.binaryPath?U.push(`--data-binary ${B}@${y.body.binaryPath}${B}`):y.body?.raw&&y.body.type!=="none"&&(y.body.type==="x-www-form-urlencoded"?U.push(`--data-urlencode ${B}${y.body.raw}${B}`):U.push(`-d ${B}${y.body.raw.replace(/'/g,E==="windows"?"'":"\\'")}${B}`));return{id:y.id,name:y.name,method:y.method,url:y.url,curl:U.join(` \\
200
+ `)}});return r({requests:R})}case"export_openapi":{if(!A.collectionId)return n("collectionId is required");let h=i(A.scope).find(k=>k.id===A.collectionId);if(!h)return n(`Collection not found: ${A.collectionId}`);let E=A.title||h.name,B=A.version||"1.0.0",Q=[],D=(k,q,F)=>{for(let N of q)Q.push({req:N,tag:F});for(let N of k)D(N.folders,N.requests,N.name)};D(h.folders,h.requests,h.name);let m=A.requestIds?Q.filter(k=>A.requestIds.includes(k.req.id)):Q,R={},y="";for(let{req:k,tag:q}of m){let F=k.url;try{let T=new URL(k.url.replace(/\{\{.*?\}\}/g,"placeholder"));y||(y=`${T.protocol}//${T.host}`),F=T.pathname}catch{}F=F.replace(/:(\w+)/g,"{$1}").replace(/\{\{(\w+)\}\}/g,"{$1}");let N=k.method.toLowerCase();R[F]||(R[F]={});let M={summary:k.name,tags:[q],responses:{200:{description:"Successful response"}}},H=[...F.matchAll(/\{(\w+)\}/g)].map(T=>T[1]);H.length&&(M.parameters=H.map(T=>({name:T,in:"path",required:!0,schema:{type:"string"}})));let $=(k.params||[]).filter(T=>T.enabled);if($.length){M.parameters||(M.parameters=[]);for(let T of $)M.parameters.push({name:T.key,in:"query",schema:{type:"string"},example:T.value})}let j=(k.headers||[]).filter(T=>T.enabled&&!["content-type","authorization","cookie"].includes(T.key.toLowerCase()));if(j.length){M.parameters||(M.parameters=[]);for(let T of j)M.parameters.push({name:T.key,in:"header",schema:{type:"string"},example:T.value})}if(k.body?.raw&&k.body.type!=="none"){let T=k.body.type==="json"?"application/json":k.body.type==="xml"?"application/xml":k.body.type==="x-www-form-urlencoded"?"application/x-www-form-urlencoded":"text/plain",_={};if(k.body.type==="json")try{let me=JSON.parse(k.body.raw);_.schema=ss(me),_.example=me}catch{_.schema={type:"string"}}else _.schema={type:"string"};M.requestBody={content:{[T]:_}}}R[F][N]=M}return r({openapi:"3.0.3",info:{title:E,version:B},servers:y?[{url:y}]:[],paths:R})}case"security_scan":{if(A.confirm!=="I am authorized to test this endpoint")return n('You must set confirm to exactly "I am authorized to test this endpoint"');if(!A.collectionId||!A.requestId)return n("collectionId and requestId are required");if(!A.probes||!A.probes.length)return n("probes array is required");let h=i(A.scope).find(F=>F.id===A.collectionId);if(!h)return n(`Collection not found: ${A.collectionId}`);let E=S(h,A.requestId);if(!E)return n(`Request not found: ${A.requestId}`);let B=this.buildEnvVars(A.environmentId?{environmentId:A.environmentId,environmentScope:A.environmentScope,collectionId:A.collectionId,collectionScope:A.scope}:{collectionId:A.collectionId,collectionScope:A.scope}),Q={...E.request,headers:[...E.request.headers],params:[...E.request.params]};Q.inheritAuth&&(Q.auth=ZA(h,E.folderPath,Q));let D=tA(Q,B);for(let[F,N]of Object.entries(D.headers))Q.headers.push({key:F,value:N,enabled:!0});for(let[F,N]of Object.entries(D.queryParams))Q.params.push({key:F,value:N,enabled:!0});let m=[],R=["injection","broken-auth","security-headers","information-disclosure","rate-limit","mass-assignment"],y=A.probes.filter(F=>R.includes(F)),U=async F=>{try{return await Et(F,B,!0)}catch{return null}},k=await U(Q);if(y.includes("injection")&&k){let F=["' OR 1=1--","<script>alert(1)</script>","{{7*7}}","${7*7}","; ls",`\r
201
+ Injected-Header: true`],N=["mysql","syntax error","ora-","pg_query","sqlite","sql server"];for(let M of(Q.params||[]).filter(H=>H.enabled))for(let H of F){let $={...Q,params:Q.params.map(_=>_.key===M.key?{..._,value:H}:_)},j=await U($);if(!j)continue;let T=(j.body||"").toLowerCase();T.includes(H.toLowerCase())&&m.push({probe:"injection",severity:"high",title:"Reflected input in response",detail:`Injecting ${JSON.stringify(H)} into param '${M.key}' was reflected`,evidence:j.body?.slice(0,200)}),N.some(_=>T.includes(_))&&m.push({probe:"injection",severity:"high",title:"SQL error string in response",detail:`Injecting ${JSON.stringify(H)} into param '${M.key}' caused SQL error`,evidence:j.body?.slice(0,200)}),j.status===500&&m.push({probe:"injection",severity:"medium",title:"Server error on injected input",detail:`Injecting ${JSON.stringify(H)} into param '${M.key}' caused 500`,evidence:void 0})}if(Q.body?.raw&&Q.body.type==="json")try{let M=JSON.parse(Q.body.raw);for(let H of Object.keys(M))for(let $ of F){let j={...Q,body:{...Q.body,raw:JSON.stringify({...M,[H]:$})}},T=await U(j);if(!T)continue;let _=(T.body||"").toLowerCase();N.some(me=>_.includes(me))&&m.push({probe:"injection",severity:"high",title:"SQL error string in response",detail:`Injecting ${JSON.stringify($)} into body field '${H}' caused SQL error`,evidence:T.body?.slice(0,200)}),T.status===500&&m.push({probe:"injection",severity:"medium",title:"Server error on injected input",detail:`Injecting ${JSON.stringify($)} into body field '${H}' caused 500`,evidence:void 0})}}catch{}}if(y.includes("broken-auth")&&k&&k.status>=200&&k.status<300){let F={...Q,headers:Q.headers.filter(T=>T.key.toLowerCase()!=="authorization")},N=await U(F);N&&N.status>=200&&N.status<300&&m.push({probe:"broken-auth",severity:"high",title:"Endpoint accessible without auth",detail:`Request returned ${N.status} without Authorization header`});let M={...Q,headers:Q.headers.map(T=>T.key.toLowerCase()==="authorization"?{...T,value:"Bearer invalidtoken"}:T)},H=await U(M);H&&H.status>=200&&H.status<300&&m.push({probe:"broken-auth",severity:"high",title:"Endpoint accepts invalid token",detail:`Request returned ${H.status} with invalid bearer token`});let $={...Q,headers:Q.headers.map(T=>T.key.toLowerCase()==="authorization"?{...T,value:"Bearer "}:T)},j=await U($);j&&j.status>=200&&j.status<300&&m.push({probe:"broken-auth",severity:"high",title:"Endpoint accepts empty token",detail:`Request returned ${j.status} with empty bearer token`})}if(y.includes("security-headers")&&k){let F=[["strict-transport-security","Strict-Transport-Security"],["x-content-type-options","X-Content-Type-Options"],["x-frame-options","X-Frame-Options"],["content-security-policy","Content-Security-Policy"]],N=Object.fromEntries(Object.entries(k.headers).map(([$,j])=>[$.toLowerCase(),j]));for(let[$,j]of F)N[$]||m.push({probe:"security-headers",severity:"low",title:`Missing ${j} header`,detail:`Response does not include ${j} header`});let M=N.server;M&&/\d+\.\d+/.test(M)&&m.push({probe:"security-headers",severity:"low",title:"Server header exposes version",detail:`Server header: ${M}`});let H=N["x-powered-by"];H&&m.push({probe:"security-headers",severity:"low",title:"X-Powered-By header present",detail:`X-Powered-By: ${H}`})}if(y.includes("information-disclosure")&&k){let F={...Q,body:{type:"json",raw:"{invalid json"}},N=await U(F);if(N){let M=N.body||"",H=["at ","Traceback","Exception","/usr/","C:\\","node_modules"];for(let $ of H)if(M.includes($)){m.push({probe:"information-disclosure",severity:"medium",title:"Stack trace or path in error response",detail:`Response contains '${$}'`,evidence:M.slice(0,300)});break}N.status>=400&&M.length>500&&m.push({probe:"information-disclosure",severity:"low",title:"Verbose error response",detail:`Error response body is ${M.length} characters`,evidence:M.slice(0,300)})}}if(y.includes("rate-limit")){let F=!1,N=!1;for(let M=0;M<20;M++){let H=await U(Q);if(!H)continue;if(H.status===429){F=!0;break}Object.keys(H.headers).filter(j=>j.toLowerCase().startsWith("x-ratelimit")||j.toLowerCase().startsWith("ratelimit")).length&&(N=!0)}F||m.push({probe:"rate-limit",severity:"medium",title:"No rate limiting detected",detail:"20 identical requests sent without receiving HTTP 429"}),N||m.push({probe:"rate-limit",severity:"low",title:"No rate limit headers",detail:"Response does not include X-RateLimit-* or RateLimit-* headers"})}if(y.includes("mass-assignment")&&k&&Q.body?.raw&&Q.body.type==="json")try{let F=JSON.parse(Q.body.raw),N={isAdmin:!0,role:"admin",__proto__:{},id:1},M={...Q,body:{...Q.body,raw:JSON.stringify({...F,...N})}};await U(M);let $={id:"scan-get",name:"scan-get",method:"GET",url:Q.url.replace(/\{\{(\w+)\}\}/g,(T,_)=>B[_]??`{{${_}}}`),params:[],headers:[...Q.headers],body:{type:"none"},auth:Q.auth},j=await U($);if(j?.body){let T=j.body.toLowerCase();(T.includes('"isadmin"')||T.includes('"role":"admin"'))&&m.push({probe:"mass-assignment",severity:"high",title:"Mass assignment vulnerability",detail:"Extra fields (isAdmin, role) appear in subsequent GET response",evidence:j.body.slice(0,300)})}}catch{}let q={high:0,medium:0,low:0,info:0};for(let F of m)q[F.severity]++;return r({target:{method:Q.method,url:Q.url},probesRun:y,findings:m,summary:q})}default:return n(`Unknown tool: ${e}`)}}catch(p){return n(p instanceof Error?p.message:"Internal error")}}buildEnvVars(e){let A={};if(e?.collectionId){let c=(e.collectionScope==="global"?this.deps.loadGlobalCollections():this.deps.loadCollections()).find(f=>f.id===e.collectionId);if(c)for(let f of(c.variables||[]).filter(d=>d.enabled))A[f.key]=f.value}let r=this.deps.loadGlobalEnvironments(),n=e?.environmentScope==="global"&&e?.environmentId?e.environmentId:this.deps.loadGlobalActiveEnvironmentId(),s=r.find(l=>l.id===n);if(s)for(let l of s.variables.filter(c=>c.enabled))A[l.key]=l.value;let o=this.deps.loadEnvironments(),i=e?.environmentScope!=="global"&&e?.environmentId?e.environmentId:this.deps.loadActiveEnvironmentId(),a=o.find(l=>l.id===i);if(a)for(let l of a.variables.filter(c=>c.enabled))A[l.key]=l.value;return A}async buildEnvVarsAsync(e,A){let r=this.buildEnvVars(A);if(this.deps.resolveSecretVariables){let n=new Set;for(let o of e){let i=a=>{for(let l of a.matchAll(/\{\{(\w+)\}\}/g))n.add(l[1])};i(o.url);for(let a of o.headers.filter(l=>l.enabled))i(a.key),i(a.value);o.body.raw&&i(o.body.raw)}let s=await this.deps.resolveSecretVariables([...n],r);Object.assign(r,s)}return r}buildTlsCertsLocal(e,A){let r=new Map(A.map(a=>[a.id,a])),n={},s=e.clientCertId?r.get(e.clientCertId):void 0,o=e.privateKeyId?r.get(e.privateKeyId):void 0,i=e.caBundleId?r.get(e.caBundleId):void 0;return s&&(s.format==="pfx"?(n.pfx=Buffer.from(s.data,"base64"),s.passphrase&&(n.passphrase=s.passphrase)):s.format==="der"?n.cert=Buffer.from(s.data,"base64"):n.cert=s.data),o&&(n.key=o.format==="der"?Buffer.from(o.data,"base64"):o.data,o.passphrase&&!n.passphrase&&(n.passphrase=o.passphrase)),i&&(n.ca=i.format==="der"?Buffer.from(i.data,"base64"):i.data),Object.keys(n).length?n:void 0}};var _a=class{fileStore;collections;environments;history;settings;snapshot;request;collectionRun;eventBus;logger;mockManager;vaultManager;mcpServers=new Map;managementMcp=null;constructor(e={}){this.fileStore=new Kr(e.workspace),this.logger=e.logger??Jn;let A=e.config??new sr;this.eventBus=new nr,va(()=>this.fileStore.loadLicenseKey(),r=>this.fileStore.saveLicenseKey(r)),this.collections=new $A(this.fileStore,this.logger,this.eventBus),this.environments=new er(this.fileStore,this.logger,this.eventBus),this.history=new tr(this.fileStore,this.logger,this.eventBus),this.settings=new Ar(this.fileStore,this.logger,this.eventBus),this.snapshot=new rr(this.fileStore,this.logger,this.eventBus),this.request=new KA(this.fileStore,A,this.logger,this.eventBus,(r,n)=>this.vaultManager.resolveSecretVariables(r,n)),this.collectionRun=new zA(this.request,this.fileStore,A,this.logger,this.eventBus),this.mockManager=new jn,this.mockManager.setStore({loadMockServers:()=>this.fileStore.loadMockServers(),saveMockServers:r=>this.fileStore.saveMockServers(r),loadMaxMockServers:()=>this.fileStore.loadMaxMockServers(),saveMaxMockServers:r=>this.fileStore.saveMaxMockServers(r),migrateLegacyMockConfig:()=>this.fileStore.migrateLegacyMockConfig()}),e.workspace&&this.mockManager.setWorkspacePath(e.workspace),this.vaultManager=new Xn,this.vaultManager.setStore({loadVaultProviders:()=>this.fileStore.loadVaultProviders(),saveVaultProviders:r=>this.fileStore.saveVaultProviders(r),loadSecretSets:()=>this.fileStore.loadSecretSets(),saveSecretSets:r=>this.fileStore.saveSecretSets(r),loadActiveSecretSetId:()=>this.fileStore.loadActiveSecretSetId(),saveActiveSecretSetId:r=>this.fileStore.saveActiveSecretSetId(r)})}activateLicense(e){let A=_n(e);return A.valid&&(this.fileStore.saveLicenseKey(e),Bo()),{valid:A.valid,expired:A.expired,expiry:A.payload?.exp??null}}deactivateLicense(){this.fileStore.saveLicenseKey(null),Bo()}isLicensed(){return jr()}getLicenseInfo(){return Ta()}listCollections(e="local"){return e==="global"?this.fileStore.loadGlobalCollections():this.fileStore.loadCollections()}createCollection(e,A="local"){return this.collections.create(e,A)}deleteCollection(e,A="local"){this.collections.delete(e,A)}findCollection(e,A){let r=n=>n.find(s=>s.name===e||s.id===e);if(!A||A==="local"){let n=r(this.fileStore.loadCollections());if(n)return n}if(!A||A==="global")return r(this.fileStore.loadGlobalCollections())}findRequest(e,A,r){let n=this.findCollection(e,r);if(!n)return;let s=r||(this.fileStore.loadCollections().some(a=>a.id===n.id)?"local":"global"),o=(a,l,c)=>{let f=a.find(d=>d.name===A||d.id===A);if(f)return{request:f,folderPath:c};for(let d of l){let g=o(d.requests,d.folders,[...c,d.id]);if(g)return g}},i=o(n.requests,n.folders,[]);if(i)return{...i,collection:n,scope:s}}listEnvironments(e="local"){return this.environments.load(e)}findEnvironment(e,A){let r=(n,s)=>{let o=n.find(i=>i.name===e||i.id===e);return o?{env:o,scope:s}:void 0};if(!A||A==="local"){let n=r(this.fileStore.loadEnvironments(),"local");if(n)return n}if(!A||A==="global")return r(this.fileStore.loadGlobalEnvironments(),"global")}setActiveEnvironment(e,A="local"){let r=this.findEnvironment(e,A);return r?(this.environments.setActiveId(r.env.id,r.scope),!0):!1}async runRequest(e,A,r={}){let n=this.findRequest(e,A,r.scope);if(!n)throw new Error(`Request "${A}" not found in collection "${e}"`);r.env&&this.setActiveEnvironment(r.env);let s=await this.request.execute({request:n.request,sourceCollectionId:n.collection.id,sourceScope:n.scope,sourceFolderPath:n.folderPath,sslVerification:r.sslVerification!==!1,proxyId:r.proxyId});s.cookiesToSave&&this.fileStore.saveCookies(s.cookiesToSave);let o={id:Date.now().toString()+Math.random().toString(36).slice(2),timestamp:Date.now(),request:n.request,response:s.response};return this.history.append(o,n.scope),{response:s.response,scriptLogs:s.scriptLogs,extractedVars:s.extractedVars,testResults:s.response.testResults}}async runCollection(e,A={}){let r=typeof e=="string"?this.findCollection(e,A.scope):e;if(!r)throw new Error(`Collection "${e}" not found`);let n=A.scope||(this.fileStore.loadCollections().some(s=>s.id===r.id)?"local":"global");return A.env&&this.setActiveEnvironment(A.env),this.collectionRun.run(r,{scope:n,mode:A.mode||"sequential",maxConcurrency:A.concurrency,onProgress:A.onProgress})}importCurl(e,A,r="local",n){let s=$n(e);if(!s)return null;let o=s;if(n)o.name=n;else if(!o.name)try{let i=new URL(o.url);o.name=`${o.method} ${i.pathname}`}catch{o.name=`${o.method} request`}if(A){let i=this.findCollection(A,r);i||(i=this.collections.create(A,r)),this.collections.saveRequest(i.id,r,s,[])}return s}importOpenApi(e,A="spec.yaml",r="local"){let n=ns(e,A),s=r==="global"?this.fileStore.loadGlobalCollections():this.fileStore.loadCollections();if(s.push(n.collection),r==="global"?this.fileStore.saveGlobalCollections(s):this.fileStore.saveCollections(s),n.environment?.variables?.length){let o={id:M0.randomUUID(),name:n.environment.name,variables:n.environment.variables},i=r==="global"?this.fileStore.loadGlobalEnvironments():this.fileStore.loadEnvironments();i.push(o),r==="global"?this.fileStore.saveGlobalEnvironments(i):this.fileStore.saveEnvironments(i)}return{collection:n.collection,requestCount:n.requestCount}}getMockManager(){return this.mockManager}async startMockServers(){await this.mockManager.loadAndAutoStart()}getMcpServers(){return this.mcpServers}async startManagementMcp(e={}){let A=e.port||3199,r={loadCollections:()=>this.fileStore.loadCollections(),saveCollections:n=>this.fileStore.saveCollections(n),loadGlobalCollections:()=>this.fileStore.loadGlobalCollections(),saveGlobalCollections:n=>this.fileStore.saveGlobalCollections(n),loadEnvironments:()=>this.fileStore.loadEnvironments(),saveEnvironments:n=>this.fileStore.saveEnvironments(n),loadGlobalEnvironments:()=>this.fileStore.loadGlobalEnvironments(),saveGlobalEnvironments:n=>this.fileStore.saveGlobalEnvironments(n),loadActiveEnvironmentId:()=>this.fileStore.loadActiveEnvironmentId(),loadGlobalActiveEnvironmentId:()=>this.fileStore.loadGlobalActiveEnvironmentId(),mockServerManager:this.mockManager,getMcpServers:()=>this.mcpServers,loadMcpServers:()=>this.fileStore.loadMcpServers(),saveMcpServers:n=>this.fileStore.saveMcpServers(n),syncLocal:()=>{},syncGlobal:()=>{},syncMockServers:()=>{},workspacePath:this.fileStore.getStoragePath()?.replace(/[/\\]\.openpost$/,"")||null,loadCollectionRunHistory:n=>this.fileStore.loadCollectionRunHistory(n),saveCollectionRunHistory:(n,s)=>this.fileStore.saveCollectionRunHistory(n,s),loadHistory:()=>this.fileStore.loadHistory(),saveHistory:n=>this.fileStore.saveHistory(n),loadGlobalHistory:()=>this.fileStore.loadGlobalHistory(),loadSnapshots:()=>this.fileStore.loadSnapshots(),saveSnapshots:n=>this.fileStore.saveSnapshots(n),loadCookies:()=>this.fileStore.loadCookies(),saveCookies:n=>this.fileStore.saveCookies(n),loadCookiesEnabled:()=>this.fileStore.loadCookiesEnabled(),loadProxies:()=>this.fileStore.loadProxies(),loadDefaultProxyId:()=>this.fileStore.loadDefaultProxyId(),resolveSecretVariables:(n,s)=>this.vaultManager.resolveSecretVariables(n,s)};return this.managementMcp=new os(r),await this.managementMcp.start(A),this.managementMcp}getVaultManager(){return this.vaultManager}async createVault(e){await this.vaultManager.createBuiltInVault(e)}async unlockVault(e){try{return await this.vaultManager.unlockBuiltInVault(e),!0}catch{return!1}}async dispose(){this.managementMcp&&(this.managementMcp.stop(),this.managementMcp=null),await this.mockManager.stopAll();for(let[,e]of this.mcpServers)e.stop();this.mcpServers.clear(),this.eventBus.removeAllListeners()}};Nh();var ja=class{fileStore;config;logger;eventBus;request;collectionRun;snapshot;collections;environments;history;settings;constructor(e){this.fileStore=e.fileStore,this.config=e.config??new sr,this.logger=e.logger??Jn,this.eventBus=e.eventBus??new nr,this.collections=new $A(this.fileStore,this.logger,this.eventBus),this.environments=new er(this.fileStore,this.logger,this.eventBus),this.history=new tr(this.fileStore,this.logger,this.eventBus),this.settings=new Ar(this.fileStore,this.logger,this.eventBus),this.snapshot=new rr(this.fileStore,this.logger,this.eventBus),this.request=new KA(this.fileStore,this.config,this.logger,this.eventBus),this.collectionRun=new zA(this.request,this.fileStore,this.config,this.logger,this.eventBus)}async dispose(){this.eventBus.removeAllListeners()}};0&&(module.exports={AppError,BuiltInVault,CollectionRunEngine,CollectionService,EnvironmentService,ErrorCode,HistoryService,ManagementMcpServer,McpServer,McpToolEngine,MockServer,MockServerManager,OpenPost,RequestEngine,SERVER_ONLY_TOOLS,ServiceContainer,SettingsService,SnapshotEngine,StandaloneFileStore,StaticConfigProvider,TOOL_DEFS,TypedEventBus,VaultManager,applyAuth,buildDigestAuthHeader,buildTlsCerts,cleanStaleEntries,createResponseSignature,evaluateTests,executeRequest,extractVariableNames,extractVariables,forceStopServer,generateOpenApiDoc,getLicenseInfo,getMatchingCookies,getRunningServers,inferJsonSchema,initLicenseStore,interpolateVariables,invalidateCache,isLicensed,isPortInUse,isServerRunning,mergeCookies,nullLogger,parseCurl,parseOpenApiSpec,parseSetCookieHeader,registerServer,requireLicense,resolveInheritedAuth,resolveInheritedCertificate,resolveInheritedScripts,runScript,serializeCookieHeader,stripComments,unregisterServer,verifyLicense});
202
+ /*! Bundled license information:
203
+
204
+ undici/lib/web/fetch/body.js:
205
+ (*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
206
+
207
+ undici/lib/web/websocket/frame.js:
208
+ (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
209
+
210
+ js-yaml/dist/js-yaml.mjs:
211
+ (*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT *)
212
+ */