lintpage 0.5.2 → 0.5.3
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.
- package/README.md +15 -2
- package/dist/cli.cjs +10 -10
- package/dist/cli.mjs +3 -3
- package/package.json +3 -3
package/dist/cli.cjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
const e=require(`./formatter-AOdVjmxi.cjs`);let t=require(`chalk`);t=e.l(t);let n=require(`cac`);n=e.l(n);let r=require(`dns/promises`);r=e.l(r);let i=require(`dns`),a=require(`net`),o=require(`async_hooks`),s=require(`fs`),c=require(`path`);var l=e.c(((e,t)=>{t.exports={kClose:Symbol(`close`),kDestroy:Symbol(`destroy`),kDispatch:Symbol(`dispatch`),kUrl:Symbol(`url`),kRequestOrigin:Symbol(`request origin`),kOriginless:Symbol(`originless`),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`),kHTTP2Options:Symbol(`http2 options`),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`),kHostAuthority:Symbol(`host authority`),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`)}})),u=e.c(((e,t)=>{let n=0,r=1e3;(r>>1)-1;let i,a=Symbol(`kFastTimer`),o=[];function s(){n+=499;let e=0,t=o.length;for(;e<t;){let r=o[e];r._state===0?(r._idleStart=n-499,r._state=1):r._state===1&&n>=r._idleStart+r._idleTimeout&&(r._state=-1,r._idleStart=-1,r._onTimeout(r._timerArg)),r._state===-1?(r._state=-2,--t!==0&&(o[e]=o[t])):++e}o.length=t,o.length!==0&&c()}function c(){i?.refresh?i.refresh():(clearTimeout(i),i=setTimeout(s,499),i?.unref())}var l=class{[a]=!0;_state=-2;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(e,t,n){this._onTimeout=e,this._idleTimeout=t,this._timerArg=n,this.refresh()}refresh(){this._state===-2&&o.push(this),(!i||o.length===1)&&c(),this._state=0}clear(){this._state=-1,this._idleStart=-1}};t.exports={setTimeout(e,t,n){return t<=r?setTimeout(e,t,n):new l(e,t,n)},clearTimeout(e){e[a]?e.clear():clearTimeout(e)},setFastTimeout(e,t,n){return new l(e,t,n)},clearFastTimeout(e){e.clear()},now(){return n},tick(e=0){n+=e-r+1,s(),s()},reset(){n=0,o.length=0,clearTimeout(i),i=null},kFastTimer:a}})),d=e.c(((e,t)=>{let n=Symbol.for(`undici.error.UND_ERR`);var r=class extends Error{constructor(e,t){super(e,t),this.name=`UndiciError`,this.code=`UND_ERR`}static[Symbol.hasInstance](e){return e&&e[n]===!0}get[n](){return!0}};let i=Symbol.for(`undici.error.UND_ERR_CONNECT_TIMEOUT`);var a=class extends r{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[i]===!0}get[i](){return!0}};let o=Symbol.for(`undici.error.UND_ERR_HEADERS_TIMEOUT`);var s=class extends r{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[o]===!0}get[o](){return!0}};let c=Symbol.for(`undici.error.UND_ERR_HEADERS_OVERFLOW`);var l=class extends r{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[c]===!0}get[c](){return!0}};let u=Symbol.for(`undici.error.UND_ERR_BODY_TIMEOUT`);var d=class extends r{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[u]===!0}get[u](){return!0}};let f=Symbol.for(`undici.error.UND_ERR_INVALID_ARG`);var p=class extends r{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[f]===!0}get[f](){return!0}};let m=Symbol.for(`undici.error.UND_ERR_INVALID_RETURN_VALUE`);var h=class extends r{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[m]===!0}get[m](){return!0}};let g=Symbol.for(`undici.error.UND_ERR_ABORT`);var _=class extends r{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[g]===!0}get[g](){return!0}};let v=Symbol.for(`undici.error.UND_ERR_ABORTED`);var y=class extends _{constructor(e){super(e),this.name=`AbortError`,this.message=e||`Request aborted`,this.code=`UND_ERR_ABORTED`}static[Symbol.hasInstance](e){return e&&e[v]===!0}get[v](){return!0}};let b=Symbol.for(`undici.error.UND_ERR_INFO`);var x=class extends r{constructor(e,t){super(e,t),this.name=`InformationalError`,this.message=e||`Request information`,this.code=`UND_ERR_INFO`}static[Symbol.hasInstance](e){return e&&e[b]===!0}get[b](){return!0}};let S=Symbol.for(`undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH`);var C=class extends r{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[S]===!0}get[S](){return!0}};let w=Symbol.for(`undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH`);var T=class extends r{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[w]===!0}get[w](){return!0}};let E=Symbol.for(`undici.error.UND_ERR_DESTROYED`);var D=class extends r{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[E]===!0}get[E](){return!0}};let O=Symbol.for(`undici.error.UND_ERR_CLOSED`);var k=class extends r{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[O]===!0}get[O](){return!0}};let A=Symbol.for(`undici.error.UND_ERR_SOCKET`);var j=class extends r{constructor(e,t){super(e),this.name=`SocketError`,this.message=e||`Socket error`,this.code=`UND_ERR_SOCKET`,this.socket=t}static[Symbol.hasInstance](e){return e&&e[A]===!0}get[A](){return!0}};let M=Symbol.for(`undici.error.UND_ERR_NOT_SUPPORTED`);var N=class extends r{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[M]===!0}get[M](){return!0}};let P=Symbol.for(`undici.error.UND_ERR_BPL_MISSING_UPSTREAM`);var F=class extends r{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[P]===!0}get[P](){return!0}};let I=Symbol.for(`undici.error.UND_ERR_HTTP_PARSER`);var L=class extends Error{constructor(e,t,n){super(e),this.name=`HTTPParserError`,this.code=t?`HPE_${t}`:void 0,this.data=n?n.toString():void 0}static[Symbol.hasInstance](e){return e&&e[I]===!0}get[I](){return!0}};let R=Symbol.for(`undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE`);var z=class extends r{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[R]===!0}get[R](){return!0}};let B=Symbol.for(`undici.error.UND_ERR_REQ_RETRY`);var V=class extends r{constructor(e,t,{headers:n,data:r}){super(e),this.name=`RequestRetryError`,this.message=e||`Request retry error`,this.code=`UND_ERR_REQ_RETRY`,this.statusCode=t,this.data=r,this.headers=n}static[Symbol.hasInstance](e){return e&&e[B]===!0}get[B](){return!0}};let ee=Symbol.for(`undici.error.UND_ERR_RESPONSE`);var H=class extends r{constructor(e,t,{headers:n,body:r}){super(e),this.name=`ResponseError`,this.message=e||`Response error`,this.code=`UND_ERR_RESPONSE`,this.statusCode=t,this.body=r,this.headers=n}static[Symbol.hasInstance](e){return e&&e[ee]===!0}get[ee](){return!0}};let U=Symbol.for(`undici.error.UND_ERR_PRX_TLS`);var W=class extends r{constructor(e,t,n={}){super(t,{cause:e,...n}),this.name=`SecureProxyConnectionError`,this.message=t||`Secure Proxy Connection failed`,this.code=`UND_ERR_PRX_TLS`,this.cause=e}static[Symbol.hasInstance](e){return e&&e[U]===!0}get[U](){return!0}};let te=Symbol.for(`undici.error.UND_ERR_PRX_CONN`);var G=class extends r{constructor(e,t,n={}){super(t,{cause:e,...n}),this.name=`ProxyConnectionError`,this.message=t||`Proxy Connection failed`,this.code=`UND_ERR_PRX_CONN`,this.cause=e}static[Symbol.hasInstance](e){return e&&e[te]===!0}get[te](){return!0}};let ne=Symbol.for(`undici.error.UND_ERR_MAX_ORIGINS_REACHED`);var K=class extends r{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[ne]===!0}get[ne](){return!0}},re=class extends r{constructor(e,t){super(e),this.name=`Socks5ProxyError`,this.message=e||`SOCKS5 proxy error`,this.code=t||`UND_ERR_SOCKS5`}};let q=Symbol.for(`undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED`);t.exports={AbortError:_,HTTPParserError:L,UndiciError:r,HeadersTimeoutError:s,HeadersOverflowError:l,BodyTimeoutError:d,RequestContentLengthMismatchError:C,ConnectTimeoutError:a,InvalidArgumentError:p,InvalidReturnValueError:h,RequestAbortedError:y,ClientDestroyedError:D,ClientClosedError:k,InformationalError:x,SocketError:j,NotSupportedError:N,ResponseContentLengthMismatchError:T,BalancedPoolMissingUpstreamError:F,ResponseExceededMaxSizeError:z,RequestRetryError:V,ResponseError:H,SecureProxyConnectionError:W,ProxyConnectionError:G,MaxOriginsReachedError:K,Socks5ProxyError:re,MessageSizeExceededError:class extends r{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[q]===!0}get[q](){return!0}}}})),f=e.c(((e,t)=>{let n=`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`.split(`.`),r={};Object.setPrototypeOf(r,null);for(let e=0;e<n.length;++e){let t=n[e],i=t.toLowerCase();r[t]=r[i]=i}t.exports={wellknownHeaderNames:n,headerNameLowerCasedRecord:r}})),p=e.c(((e,t)=>{let{wellknownHeaderNames:n,headerNameLowerCasedRecord:r}=f();var i=class e{value=null;left=null;middle=null;right=null;code;constructor(t,n,r){if(r===void 0||r>=t.length)throw TypeError(`Unreachable`);if((this.code=t.charCodeAt(r))>127)throw TypeError(`key must be ascii string`);t.length===++r?this.value=n:this.middle=new e(t,n,r)}add(t,n){let r=t.length;if(r===0)throw TypeError(`Unreachable`);let i=0,a=this;for(;;){let o=t.charCodeAt(i);if(o>127)throw TypeError(`key must be ascii string`);if(a.code===o)if(r===++i){a.value=n;break}else if(a.middle!==null)a=a.middle;else{a.middle=new e(t,n,i);break}else if(a.code<o)if(a.left!==null)a=a.left;else{a.left=new e(t,n,i);break}else if(a.right!==null)a=a.right;else{a.right=new e(t,n,i);break}}}search(e){let t=e.length,n=0,r=this;for(;r!==null&&n<t;){let i=e[n];for(i<=90&&i>=65&&(i|=32);r!==null;){if(i===r.code){if(t===++n)return r;r=r.middle;break}r=r.code<i?r.left:r.right}}return null}},a=class{node=null;insert(e,t){this.node===null?this.node=new i(e,t,0):this.node.add(e,t)}lookup(e){return this.node?.search(e)?.value??null}};let o=new a;for(let e=0;e<n.length;++e){let t=r[n[e]];o.insert(t,t)}t.exports={TernarySearchTree:a,tree:o}})),m=e.c(((e,t)=>{let n=require(`node:assert`),{kDestroyed:r,kBodyUsed:i,kListeners:a,kBody:o}=l(),{IncomingMessage:s}=require(`node:http`),c=require(`node:stream`),m=require(`node:net`),{stringify:h}=require(`node:querystring`),{EventEmitter:g,addAbortListener:_}=require(`node:events`),v=u(),{InvalidArgumentError:y,ConnectTimeoutError:b}=d(),{headerNameLowerCasedRecord:x}=f(),{tree:S}=p();var C=class{constructor(e){this[o]=e,this[i]=!1}async*[Symbol.asyncIterator](){n(!this[i],`disturbed`),this[i]=!0,yield*this[o]}};function w(){}function T(e){return E(e)?(B(e)===0&&e.on(`data`,function(){n(!1)}),typeof e.readableDidRead!=`boolean`&&(e[i]=!1,g.prototype.on.call(e,`data`,function(){this[i]=!0})),e):e&&typeof e.pipeTo==`function`?new C(e):e&&X(e)?e:e&&typeof e!=`string`&&!ArrayBuffer.isView(e)&&R(e)?new C(e):e}function E(e){return e&&typeof e==`object`&&typeof e.pipe==`function`&&typeof e.on==`function`}function D(e){return e instanceof Blob}function O(e){return e.includes(`?`)||e.includes(`#`)}function k(e,t){if(O(e))throw Error(`Query params cannot be passed when url already contains "?" or "#".`);let n=h(t);return n&&(e+=`?`+n),e}function A(e){let t=parseInt(e,10);return t===Number(e)&&t>=0&&t<=65535}function j(e){return e!=null&&e[0]===`h`&&e[1]===`t`&&e[2]===`t`&&e[3]===`p`&&(e[4]===`:`||e[4]===`s`&&e[5]===`:`)}function M(e){if(typeof e==`string`){if(e=new URL(e),!j(e.origin||e.protocol))throw new y("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!=`object`)throw new y(`Invalid URL: The URL argument must be a non-null object.`);if(!(e instanceof URL)){if(e.port!=null&&e.port!==``&&A(e.port)===!1)throw new y(`Invalid URL: port must be a valid integer or a string representation of an integer.`);if(e.path!=null&&typeof e.path!=`string`)throw new y(`Invalid URL path: the path must be a string or null/undefined.`);if(e.pathname!=null&&typeof e.pathname!=`string`)throw new y(`Invalid URL pathname: the pathname must be a string or null/undefined.`);if(e.hostname!=null&&typeof e.hostname!=`string`)throw new y(`Invalid URL hostname: the hostname must be a string or null/undefined.`);if(e.origin!=null&&typeof e.origin!=`string`)throw new y(`Invalid URL origin: the origin must be a string or null/undefined.`);if(!j(e.origin||e.protocol))throw new y("Invalid URL protocol: the URL must start with `http:` or `https:`.");let t=e.port==null?e.protocol===`https:`?443:80:e.port,n=e.origin==null?`${e.protocol||``}//${e.hostname||``}:${t}`:e.origin,r=e.path==null?`${e.pathname||``}${e.search||``}`:e.path;return n[n.length-1]===`/`&&(n=n.slice(0,n.length-1)),r&&r[0]!==`/`&&(r=`/${r}`),new URL(`${n}${r}`)}if(!j(e.origin||e.protocol))throw new y("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function N(e){if(e=M(e),e.pathname!==`/`||e.search||e.hash)throw new y(`invalid url`);return e}function P(e){if(e[0]===`[`){let t=e.indexOf(`]`);return n(t!==-1),e.substring(1,t)}let t=e.indexOf(`:`);return t===-1?e:e.substring(0,t)}function F(e){if(!e)return null;n(typeof e==`string`);let t=P(e);return m.isIP(t)?``:t}function I(e){return JSON.parse(JSON.stringify(e))}function L(e){return e!=null&&typeof e[Symbol.asyncIterator]==`function`}function R(e){return e!=null&&(typeof e[Symbol.iterator]==`function`||typeof e[Symbol.asyncIterator]==`function`)}function z(e){let t=Object.getPrototypeOf(e);return Object.hasOwn(e,Symbol.iterator)||t!=null&&t!==Object.prototype&&typeof e[Symbol.iterator]==`function`}function B(e){if(e==null)return 0;if(E(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}else if(D(e))return e.size==null?null:e.size;else if(q(e))return e.byteLength;return null}function V(e){return e&&!!(e.destroyed||e[r]||c.isDestroyed?.(e))}function ee(e,t){if(!(e==null||!E(e)||V(e))){if(typeof e.destroy==`function`){Object.getPrototypeOf(e).constructor===s&&(e.socket=null);try{e.destroy(t)}catch{}}else t&&queueMicrotask(()=>{e.emit(`error`,t)});e.destroyed!==!0&&(e[r]=!0)}}let H=/timeout=(\d+)/;function U(e){let t=e.match(H);return t?parseInt(t[1],10)*1e3:null}function W(e){return typeof e==`string`?x[e]??e.toLowerCase():S.lookup(e)??e.toString(`latin1`).toLowerCase()}function te(e){return S.lookup(e)??e.toString(`latin1`).toLowerCase()}function G(e,t){t===void 0&&(t={});for(let n=0;n<e.length;n+=2){let r=W(e[n]),i=t[r];if(i!==void 0)if(Object.hasOwn(t,r))typeof i==`string`&&(i=[i],t[r]=i),i.push(e[n+1].toString(`latin1`));else{let i=typeof e[n+1]==`string`?e[n+1]:Array.isArray(e[n+1])?e[n+1].map(e=>e.toString(`latin1`)):e[n+1].toString(`latin1`);r===`__proto__`?Object.defineProperty(t,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[r]=i}else{let i=typeof e[n+1]==`string`?e[n+1]:Array.isArray(e[n+1])?e[n+1].map(e=>e.toString(`latin1`)):e[n+1].toString(`latin1`);t[r]=i}}return t}function ne(e){if(e==null)return[];if(!Array.isArray(e)){let t=[];for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.push(n,`${e}`);else t.push(n,`${r}`);return t}let t=e.length,n=Array(t),r,i;for(let a=0;a<t;a+=2)r=e[a],i=e[a+1],typeof r!=`string`&&(r=r.toString()),typeof i!=`string`&&(i=i.toString(`latin1`)),n[a]=r,n[a+1]=i;return n}function K(e){let t=[];for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.push(Buffer.from(n,`latin1`),Buffer.from(`${e}`,`latin1`));else t.push(Buffer.from(n,`latin1`),Buffer.from(`${r}`,`latin1`));return t}function re(e){if(!Array.isArray(e))throw TypeError(`expected headers to be an array`);return e.map(e=>Buffer.from(e))}function q(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function ie(e,t,n){if(!e||typeof e!=`object`)throw new y(`handler must be an object`);if(typeof e.onRequestStart!=`function`)throw new y(`invalid onRequestStart method`);if(typeof e.onResponseError!=`function`)throw new y(`invalid onResponseError method`);if(typeof e.onBodySent!=`function`&&e.onBodySent!==void 0)throw new y(`invalid onBodySent method`);if(typeof e.onRequestSent!=`function`&&e.onRequestSent!==void 0)throw new y(`invalid onRequestSent method`);if(n||t===`CONNECT`){if(typeof e.onRequestUpgrade!=`function`)throw new y(`invalid onRequestUpgrade method`)}else{if(typeof e.onResponseStart!=`function`)throw new y(`invalid onResponseStart method`);if(typeof e.onResponseData!=`function`)throw new y(`invalid onResponseData method`);if(typeof e.onResponseEnd!=`function`)throw new y(`invalid onResponseEnd method`)}}function ae(e){return!!(e&&(c.isDisturbed(e)||e[i]))}function J(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}function Y(e){let t;return new ReadableStream({start(){t=e[Symbol.asyncIterator]()},pull(e){return t.next().then(({done:t,value:n})=>{if(t)return queueMicrotask(()=>{e.close(),e.byobRequest?.respond(0)});{let t=Buffer.isBuffer(n)?n:Buffer.from(n);return t.byteLength?e.enqueue(new Uint8Array(t)):this.pull(e)}})},cancel(){return t.return()},type:`bytes`})}function X(e){return e&&typeof e==`object`&&typeof e.append==`function`&&typeof e.delete==`function`&&typeof e.get==`function`&&typeof e.getAll==`function`&&typeof e.has==`function`&&typeof e.set==`function`&&e[Symbol.toStringTag]===`FormData`}function oe(e,t){return!e||`aborted`in e?_(e,t)[Symbol.dispose]:typeof e.addEventListener==`function`?(e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)):(e.once(`abort`,t),()=>e.removeListener(`abort`,t))}let Z=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 Q(e){return Z[e]===1}let se=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;function ce(e){if(e.length>=12)return se.test(e);if(e.length===0)return!1;for(let t=0;t<e.length;t++)if(Z[e.charCodeAt(t)]!==1)return!1;return!0}let le=/[^\t\x20-\x7e\x80-\xff]/;function ue(e){return!le.test(e)}let de=/^bytes (\d+)-(\d+)\/(\d+|\*)?$/;function fe(e){if(e==null||e===``)return{start:0,end:null,size:null};if(!e)return null;let t=de.exec(e);return t?{start:parseInt(t[1]),end:t[2]?parseInt(t[2]):null,size:t[3]&&t[3]!==`*`?parseInt(t[3]):null}:null}function pe(e,t,n){return(e[a]??=[]).push([t,n]),e.on(t,n),e}function me(e){if(e[a]!=null){for(let[t,n]of e[a])e.removeListener(t,n);e[a]=null}return e}function he(e,t,r){try{t.onResponseError(r),n(t.aborted)}catch(t){e.emit(`error`,t)}}let $=process.platform===`win32`?(e,t)=>{if(!t.timeout)return w;let n=null,r=null,i=v.setFastTimeout(()=>{n=setImmediate(()=>{r=setImmediate(()=>ge(e.deref(),t))})},t.timeout);return()=>{v.clearFastTimeout(i),clearImmediate(n),clearImmediate(r)}}:(e,t)=>{if(!t.timeout)return w;let n=null,r=v.setFastTimeout(()=>{n=setImmediate(()=>{ge(e.deref(),t)})},t.timeout);return()=>{v.clearFastTimeout(r),clearImmediate(n)}};function ge(e,t){if(e==null)return;let n=`Connect Timeout Error`;Array.isArray(e.autoSelectFamilyAttemptedAddresses)?n+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(`, `)},`:n+=` (attempted address: ${t.hostname}:${t.port},`,n+=` timeout: ${t.timeout}ms)`,ee(e,new b(n))}let _e=null,ve=null;function ye(e){if(e===_e)return ve;let t=be(e);return _e=e,ve=t,t}function be(e){if(e[0]===`h`&&e[1]===`t`&&e[2]===`t`&&e[3]===`p`)switch(e[4]){case`:`:return`http:`;case`s`:if(e[5]===`:`)return`https:`}return e.slice(0,e.indexOf(`:`)+1)}let xe={__proto__:null,enumerable:!0},Se={delete:`DELETE`,DELETE:`DELETE`,get:`GET`,GET:`GET`,head:`HEAD`,HEAD:`HEAD`,options:`OPTIONS`,OPTIONS:`OPTIONS`,post:`POST`,POST:`POST`,put:`PUT`,PUT:`PUT`,query:`QUERY`,QUERY:`QUERY`},Ce={...Se,patch:`patch`,PATCH:`PATCH`};Object.setPrototypeOf(Se,null),Object.setPrototypeOf(Ce,null),t.exports={kEnumerableProperty:xe,isDisturbed:ae,isBlobLike:D,parseOrigin:N,parseURL:M,getServerName:F,isStream:E,isIterable:R,hasSafeIterator:z,isAsyncIterable:L,isDestroyed:V,headerNameToString:W,bufferToLowerCasedHeaderName:te,addListener:pe,removeAllListeners:me,errorRequest:he,parseRawHeaders:ne,toRawHeaders:K,encodeRawHeaders:re,parseHeaders:G,parseKeepAliveTimeout:U,destroy:ee,bodyLength:B,deepClone:I,ReadableStreamFrom:Y,isBuffer:q,assertRequestHandler:ie,getSocketInfo:J,isFormDataLike:X,pathHasQueryOrFragment:O,serializePathWithQuery:k,addAbortListener:oe,isValidHTTPToken:ce,isValidHeaderValue:ue,isTokenCharCode:Q,parseRangeHeader:fe,normalizedMethodRecordsBase:Se,normalizedMethodRecords:Ce,isValidPort:A,isHttpOrHttpsPrefixed:j,safeHTTPMethods:Object.freeze([`GET`,`HEAD`,`OPTIONS`,`TRACE`]),wrapRequestBody:T,setupConnectTimeout:$,getProtocolFromUrlString:ye}})),h=e.c(((e,t)=>{let{kConnected:n,kPending:r,kRunning:i,kSize:a,kFree:o,kQueued:s}=l();t.exports={ClientStats:class{constructor(e){this.connected=e[n],this.pending=e[r],this.running=e[i],this.size=e[a]}},PoolStats:class{constructor(e){this.connected=e[n],this.free=e[o],this.pending=e[r],this.queued=e[s],this.running=e[i],this.size=e[a]}}}})),g=e.c(((e,t)=>{let n=require(`node:diagnostics_channel`),r=require(`node:util`),i=r.debuglog(`undici`),a=r.debuglog(`fetch`),o=r.debuglog(`websocket`),s={beforeConnect:n.channel(`undici:client:beforeConnect`),connected:n.channel(`undici:client:connected`),connectError:n.channel(`undici:client:connectError`),sendHeaders:n.channel(`undici:client:sendHeaders`),create:n.channel(`undici:request:create`),bodySent:n.channel(`undici:request:bodySent`),bodyChunkSent:n.channel(`undici:request:bodyChunkSent`),bodyChunkReceived:n.channel(`undici:request:bodyChunkReceived`),headers:n.channel(`undici:request:headers`),trailers:n.channel(`undici:request:trailers`),error:n.channel(`undici:request:error`),open:n.channel(`undici:websocket:open`),close:n.channel(`undici:websocket:close`),socketError:n.channel(`undici:websocket:socket_error`),ping:n.channel(`undici:websocket:ping`),pong:n.channel(`undici:websocket:pong`),proxyConnected:n.channel(`undici:proxy:connected`)},c=!1;function l(e=i){if(!c){if(s.beforeConnect.hasSubscribers||s.connected.hasSubscribers||s.connectError.hasSubscribers||s.sendHeaders.hasSubscribers){c=!0;return}c=!0,n.subscribe(`undici:client:beforeConnect`,t=>{let{connectParams:{version:n,protocol:r,port:i,host:a}}=t;e(`connecting to %s%s using %s%s`,a,i?`:${i}`:``,r,n)}),n.subscribe(`undici:client:connected`,t=>{let{connectParams:{version:n,protocol:r,port:i,host:a}}=t;e(`connected to %s%s using %s%s`,a,i?`:${i}`:``,r,n)}),n.subscribe(`undici:client:connectError`,t=>{let{connectParams:{version:n,protocol:r,port:i,host:a},error:o}=t;e(`connection to %s%s using %s%s errored - %s`,a,i?`:${i}`:``,r,n,o.message)}),n.subscribe(`undici:client:sendHeaders`,t=>{let{request:{method:n,path:r,origin:i}}=t;e(`sending request to %s %s%s`,n,i,r)})}}let u=!1;function d(e=i){if(!u){if(s.headers.hasSubscribers||s.trailers.hasSubscribers||s.error.hasSubscribers){u=!0;return}u=!0,n.subscribe(`undici:request:headers`,t=>{let{request:{method:n,path:r,origin:i},response:{statusCode:a}}=t;e(`received response to %s %s%s - HTTP %d`,n,i,r,a)}),n.subscribe(`undici:request:trailers`,t=>{let{request:{method:n,path:r,origin:i}}=t;e(`trailers received from %s %s%s`,n,i,r)}),n.subscribe(`undici:request:error`,t=>{let{request:{method:n,path:r,origin:i},error:a}=t;e(`request to %s %s%s errored - %s`,n,i,r,a.message)})}}let f=!1;function p(e=o){if(!f){if(s.open.hasSubscribers||s.close.hasSubscribers||s.socketError.hasSubscribers||s.ping.hasSubscribers||s.pong.hasSubscribers){f=!0;return}f=!0,n.subscribe(`undici:websocket:open`,t=>{if(t.address!=null){let{address:n,port:r}=t.address;e(`connection opened %s%s`,n,r?`:${r}`:``)}else e(`connection opened`)}),n.subscribe(`undici:websocket:close`,t=>{let{websocket:n,code:r,reason:i}=t;e(`closed connection to %s - %s %s`,n.url,r,i)}),n.subscribe(`undici:websocket:socket_error`,t=>{e(`connection errored - %s`,t.message)}),n.subscribe(`undici:websocket:ping`,t=>{e(`ping received`)}),n.subscribe(`undici:websocket:pong`,t=>{e(`pong received`)})}}(i.enabled||a.enabled)&&(l(a.enabled?a:i),d(a.enabled?a:i)),o.enabled&&(l(i.enabled?i:o),p(o)),t.exports={channels:s}})),_=e.c(((e,t)=>{let{InvalidArgumentError:n,NotSupportedError:r}=d(),i=require(`node:assert`),{isValidHTTPToken:a,isValidHeaderValue:o,isStream:s,destroy:c,isBuffer:l,isFormDataLike:u,isIterable:p,hasSafeIterator:h,isBlobLike:_,serializePathWithQuery:v,parseHeaders:y,assertRequestHandler:b,getServerName:x,normalizedMethodRecords:S,getProtocolFromUrlString:C}=m(),{channels:w}=g(),{headerNameLowerCasedRecord:T}=f(),E=/[^\u0021-\u00ff]/;function D(e){if(typeof e!=`string`||e.length===0)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return!0}let O=Symbol(`handler`),k=Symbol(`controller`),A=Symbol(`resume`);var j=class{#e=!1;#t=null;#n=!1;#r;[A]=null;rawHeaders=null;rawTrailers=null;constructor(e){this.#r=e}pause(){this.#e=!0}resume(){this.#e&&(this.#e=!1,this[A]?.())}abort(e){this.#n||(this.#n=!0,this.#t=e,this.#r(e))}get aborted(){return this.#n}get reason(){return this.#t}get paused(){return this.#e}},M=class{constructor(e,{path:t,method:r,body:i,headers:d,query:f,idempotent:m,blocking:g,upgrade:y,headersTimeout:T,bodyTimeout:D,reset:k,expectContinue:A,servername:j,throwOnError:M,maxRedirections:P,typeOfService:F},I){if(typeof t!=`string`)throw new n(`path must be a string`);if(t[0]!==`/`&&!(t.startsWith(`http://`)||t.startsWith(`https://`))&&r!==`CONNECT`)throw new n(`path must be an absolute URL or start with a slash`);if(E.test(t))throw new n(`invalid request path`);if(typeof r!=`string`)throw new n(`method must be a string`);if(S[r]===void 0&&!a(r))throw new n(`invalid request method`);if(y&&typeof y!=`string`)throw new n(`upgrade must be a string`);if(y&&!o(y))throw new n(`invalid upgrade header`);if(T!=null&&(!Number.isFinite(T)||T<0))throw new n(`invalid headersTimeout`);if(D!=null&&(!Number.isFinite(D)||D<0))throw new n(`invalid bodyTimeout`);if(k!=null&&typeof k!=`boolean`)throw new n(`invalid reset`);if(A!=null&&typeof A!=`boolean`)throw new n(`invalid expectContinue`);if(M!=null)throw new n(`invalid throwOnError`);if(P!=null&&P!==0)throw new n(`maxRedirections is not supported, use the redirect interceptor`);if(F!=null&&(!Number.isInteger(F)||F<0||F>255))throw new n(`typeOfService must be an integer between 0 and 255`);if(this.headersTimeout=T,this.bodyTimeout=D,this.method=r,this.typeOfService=F,this.abort=null,i==null)this.body=null;else if(s(i)){this.body=i;let e=this.body._readableState;(!e||!e.autoDestroy)&&(this.endHandler=function(){c(this)},this.body.on(`end`,this.endHandler)),this.errorHandler=e=>{this.abort?this.abort(e):this.error=e},this.body.on(`error`,this.errorHandler)}else if(l(i))this.body=i.byteLength?i:null;else if(ArrayBuffer.isView(i))this.body=i.buffer.byteLength?Buffer.from(i.buffer,i.byteOffset,i.byteLength):null;else if(i instanceof ArrayBuffer)this.body=i.byteLength?Buffer.from(i):null;else if(typeof i==`string`)this.body=i.length?Buffer.from(i):null;else if(u(i)||p(i)||_(i))this.body=i;else throw new n(`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=y||null,this.path=f?v(t,f):t,this.origin=e,this.protocol=C(e),this.idempotent=m??(r===`HEAD`||r===`GET`||r===`QUERY`),this.blocking=g??this.method!==`HEAD`,this.reset=k??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=A??!1,Array.isArray(d)){if(d.length%2!=0)throw new n(`headers array must be even`);for(let e=0;e<d.length;e+=2)N(this,d[e],d[e+1])}else if(d&&typeof d==`object`)if(h(d))for(let e of d){if(!Array.isArray(e)||e.length!==2)throw new n(`headers must be in key-value pair format`);N(this,e[0],e[1])}else{let e=Object.keys(d);for(let t=0;t<e.length;++t)N(this,e[t],d[e[t]])}else if(d!=null)throw new n(`headers must be an object or an array`);b(I,r,y),this.servername=j||x(this.host)||null,this[O]=I,w.create.hasSubscribers&&w.create.publish({request:this})}onBodySent(e){if(w.bodyChunkSent.hasSubscribers&&w.bodyChunkSent.publish({request:this,chunk:e}),this[O].onBodySent)try{return this[O].onBodySent(e)}catch(e){this.abort(e)}}onRequestSent(){if(w.bodySent.hasSubscribers&&w.bodySent.publish({request:this}),this[O].onRequestSent)try{return this[O].onRequestSent()}catch(e){this.abort(e)}}onRequestStart(e,t){if(i(!this.aborted),i(!this.completed),this[k]=new j(e),this.error){this[k].abort(this.error);return}return this.abort=e,this[O].onRequestStart(this[k],t)}onResponseStarted(){return this[O].onResponseStarted?.()}onResponseStart(e,t,n,r){i(!this.aborted),i(!this.completed),w.headers.hasSubscribers&&w.headers.publish({request:this,response:{statusCode:e,headers:t,statusText:r}});let a=this[k];a&&(a[A]=n,a.rawHeaders=t);let o=Array.isArray(t)?y(t):t;try{return this[O].onResponseStart?.(a,e,o,r),!a?.paused}catch(e){return this.abort(e),!1}}onResponseData(e){i(!this.aborted),i(!this.completed),w.bodyChunkReceived.hasSubscribers&&w.bodyChunkReceived.publish({request:this,chunk:e});let t=this[k];try{return this[O].onResponseData?.(t,e),!t?.paused}catch(e){return this.abort(e),!1}}onRequestUpgrade(e,t,n){i(!this.aborted),i(!this.completed);let r=this[k];r&&(r.rawHeaders=t);let a=Array.isArray(t)?y(t):t;return this[O].onRequestUpgrade?.(r,e,a,n)}onResponseEnd(e){this.onFinally(),i(!this.aborted),i(!this.completed),this.completed=!0,w.trailers.hasSubscribers&&w.trailers.publish({request:this,trailers:e});let t=this[k];t&&(t.rawTrailers=e);let n=Array.isArray(e)?y(e):e;try{return this[O].onResponseEnd?.(t,n)}catch(e){this.onResponseError(e)}}onResponseError(e){if(this.onFinally(),w.error.hasSubscribers&&w.error.publish({request:this,error:e}),this.aborted)return;this.aborted=!0;let t=this[k];return this[O].onResponseError?.(t,e)}onFinally(){this.errorHandler&&=(this.body.off(`error`,this.errorHandler),null),this.endHandler&&=(this.body.off(`end`,this.endHandler),null)}addHeader(e,t){return N(this,e,t),this}};function N(e,t,i){if(i&&typeof i==`object`&&!Array.isArray(i))throw new n(`invalid ${t} header`);if(i===void 0)return;let s=T[t];if(s===void 0&&(s=t.toLowerCase(),T[s]===void 0&&!a(s)))throw new n(`invalid header key`);if(Array.isArray(i)){let e=[];for(let r=0;r<i.length;r++)if(typeof i[r]==`string`){if(!o(i[r]))throw new n(`invalid ${t} header`);e.push(i[r])}else if(i[r]===null)e.push(``);else if(typeof i[r]==`object`)throw new n(`invalid ${t} header`);else{let a=`${i[r]}`;if(!o(a))throw new n(`invalid ${t} header`);e.push(a)}i=e}else if(typeof i==`string`){if(!o(i))throw new n(`invalid ${t} header`)}else if(i===null)i=``;else if(i=`${i}`,!o(i))throw new n(`invalid ${t} header`);if(s===`host`){if(e.host!==null)throw new n(`duplicate host header`);if(typeof i!=`string`)throw new n(`invalid host header`);e.host=i}else if(s===`content-length`){if(e.contentLength!==null)throw new n(`duplicate content-length header`);if(!D(i))throw new n(`invalid content-length header`);e.contentLength=parseInt(i,10)}else if(e.contentType===null&&s===`content-type`)e.contentType=i,e.headers.push(t,i);else if(s===`transfer-encoding`||s===`keep-alive`||s===`upgrade`)throw new n(`invalid ${s} header`);else if(s===`connection`){let t=typeof i==`string`?i:null;if(t===null)throw new n(`invalid connection header`);for(let r of t.toLowerCase().split(`,`)){let t=r.trim();if(!a(t))throw new n(`invalid connection header`);t===`close`&&(e.reset=!0)}}else if(s===`expect`)throw new r(`expect header not supported`);else e.headers.push(t,i)}t.exports=M})),v=e.c(((e,t)=>{let n=require(`node:events`),{kOriginless:r,kUrl:i}=l();t.exports=class extends n{dispatch(){throw Error(`not implemented`)}close(){throw Error(`not implemented`)}destroy(){throw Error(`not implemented`)}compose(...e){let t=Array.isArray(e[0])?e[0]:e,n=this[r]===!0?null:this[i]?.origin,a=this.dispatch.bind(this);for(let e of t)if(e!=null){if(typeof e!=`function`)throw TypeError(`invalid interceptor, expected function received ${typeof e}`);if(a=e(a,n),a==null||typeof a!=`function`||a.length!==2)throw TypeError(`invalid interceptor`)}let o=a,s=this;return a=function(e,t){return e&&typeof e==`object`&&!e.origin&&s[i]&&(e=Object.assign({},e,{origin:s[i].origin})),o(e,t)},new Proxy(this,{get:(e,t)=>t===`dispatch`?a:e[t]})}}})),y=e.c(((e,t)=>{let n=require(`node:buffer`),r=v(),{ClientDestroyedError:i,ClientClosedError:a,InvalidArgumentError:o}=d(),{kDestroy:s,kClose:c,kClosed:u,kDestroyed:f,kDispatch:p}=l(),m=Symbol(`onDestroyed`),h=Symbol(`onClosed`),g=Symbol(`webSocketOptions`),_=Symbol(`eventSourceOptions`);t.exports=class extends r{[f]=!1;[m]=null;[u]=!1;[h]=null;constructor(e){super(),this[g]=e?.webSocket??{},this[_]=e?.eventSource??{}}get webSocketOptions(){return{maxFragments:this[g].maxFragments??131072,maxPayloadSize:this[g].maxPayloadSize??128*1024*1024}}get eventSourceOptions(){return{maxEventSize:this[_].maxEventSize??n.kStringMaxLength}}get destroyed(){return this[f]}get closed(){return this[u]}close(e){if(e===void 0)return new Promise((e,t)=>{this.close((n,r)=>n?t(n):e(r))});if(typeof e!=`function`)throw new o(`invalid callback`);if(this[f]){let t=new i;queueMicrotask(()=>e(t,null));return}if(this[u]){this[h]?this[h].push(e):queueMicrotask(()=>e(null,null));return}this[u]=!0,this[h]??=[],this[h].push(e);let t=()=>{let e=this[h];this[h]=null;for(let t=0;t<e.length;t++)e[t](null,null)};this[c]().then(()=>this.destroy()).then(()=>queueMicrotask(t))}destroy(e,t){if(typeof e==`function`&&(t=e,e=null),t===void 0)return new Promise((t,n)=>{this.destroy(e,(e,r)=>e?n(e):t(r))});if(typeof t!=`function`)throw new o(`invalid callback`);if(this[f]){this[m]?this[m].push(t):queueMicrotask(()=>t(null,null));return}e||=new i,this[f]=!0,this[m]??=[],this[m].push(t);let n=()=>{let e=this[m];this[m]=null;for(let t=0;t<e.length;t++)e[t](null,null)};this[s](e).then(()=>queueMicrotask(n))}dispatch(e,t){if(!t||typeof t!=`object`)throw new o(`handler must be an object`);try{if(!e||typeof e!=`object`)throw new o(`opts must be an object.`);if(e.dispatcher)throw new o(`opts.dispatcher is not supported by instance methods. Pass opts.dispatcher to the top-level undici functions or call the dispatcher instance method directly.`);if(this[f]||this[m])throw new i;if(this[u])throw new a;return this[p](e,t)}catch(e){if(typeof t.onResponseError!=`function`)throw e;return t.onResponseError(null,e),!1}}}})),b=e.c(((e,t)=>{let n=require(`node:net`),r=require(`node:assert`),i=m(),{InvalidArgumentError:a,ConnectTimeoutError:o}=d(),s,c=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map,this._sessionRegistry=new FinalizationRegistry(e=>{if(this._sessionCache.size<this._maxCachedSessions)return;let t=this._sessionCache.get(e);t!==void 0&&t.deref()===void 0&&this._sessionCache.delete(e)})}get(e){let t=this._sessionCache.get(e);return t?t.deref():null}set(e,t){if(this._maxCachedSessions!==0){if(this._sessionCache.has(e))this._sessionCache.delete(e);else if(this._sessionCache.size>=this._maxCachedSessions){for(let[e,t]of this._sessionCache)if(t.deref()===void 0){this._sessionCache.delete(e);return}let e=this._sessionCache.keys().next();e.done||this._sessionCache.delete(e.value)}this._sessionCache.set(e,new WeakRef(t)),this._sessionRegistry.register(t,e)}}};function l({allowH2:e,preferH2:t,useH2c:o,maxCachedSessions:l,socketPath:d,timeout:f,session:p,...m}){if(l!=null&&(!Number.isInteger(l)||l<0))throw new a(`maxCachedSessions must be a positive integer or zero`);let h={path:d,...m},g=new c(l??100);return f??=1e4,e??=!0,function({hostname:a,host:c,protocol:l,port:d,servername:m,localAddress:_,httpSocket:v},y){let b;if(l===`https:`){s||=require(`node:tls`),m=m||h.servername||i.getServerName(c)||null;let n=m||a;r(n);let o=p||g.get(n)||null;d||=443,b=s.connect({highWaterMark:16384,...h,servername:m,session:o,localAddress:_,ALPNProtocols:e?t?[`h2`,`http/1.1`]:[`http/1.1`,`h2`]:[`http/1.1`],socket:v,port:d,host:a}),b.on(`session`,function(e){g.set(n,e)})}else{r(!v,`httpSocket can only be sent on TLS update`),d||=80;let e={highWaterMark:64*1024,...h,localAddress:_,port:d,host:a},t=n.isIP(a);t!==0&&m&&m!==a&&(e.host=m,e.lookup=(e,n,r)=>{n.all?r(null,[{address:a,family:t}]):r(null,a,t)}),b=n.connect(e),o===!0&&(b.alpnProtocol=`h2`)}if(h.keepAlive==null||h.keepAlive){let e=h.keepAliveInitialDelay===void 0?6e4:h.keepAliveInitialDelay;b.setKeepAlive(!0,e)}let x=i.setupConnectTimeout(new WeakRef(b),{timeout:f,hostname:a,port:d});return b.setNoDelay(!0).once(l===`https:`?`secureConnect`:`connect`,function(){if(queueMicrotask(x),y){let e=y;y=null,e(null,this)}}).on(`error`,function(e){if(queueMicrotask(x),y){let t=y;y=null,t(u(e,this,{timeout:f,hostname:a,port:d}))}}),b}}function u(e,t,n){if(e instanceof AggregateError&&(e.code===`ETIMEDOUT`||e.errors.some(e=>e!=null&&e.code===`ETIMEDOUT`))){let r=`Connect Timeout Error`;Array.isArray(t.autoSelectFamilyAttemptedAddresses)?r+=` (attempted addresses: ${t.autoSelectFamilyAttemptedAddresses.join(`, `)},`:r+=` (attempted address: ${n.hostname}:${n.port},`,r+=` timeout: ${n.timeout}ms)`;let i=new o(r);return i.cause=e,i}return e}t.exports=l})),x=e.c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.enumToMap=t;function t(e,t=[],n=[]){let r=(t?.length??0)===0,i=(n?.length??0)===0;return Object.fromEntries(Object.entries(e).filter(([,e])=>typeof e==`number`&&(r||t.includes(e))&&(i||!n.includes(e))))}})),S=e.c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.SPECIAL_HEADERS=e.MINOR=e.MAJOR=e.HTAB_SP_VCHAR_OBS_TEXT=e.QUOTED_STRING=e.CONNECTION_TOKEN_CHARS=e.HEADER_CHARS=e.TOKEN=e.HEX=e.URL_CHAR=e.USERINFO_CHARS=e.MARK=e.ALPHANUM=e.NUM=e.HEX_MAP=e.NUM_MAP=e.ALPHA=e.STATUSES_HTTP=e.H_METHOD_MAP=e.METHOD_MAP=e.METHODS_RTSP=e.METHODS_ICE=e.METHODS_HTTP=e.HEADER_STATE=e.FINISH=e.STATUSES=e.METHODS=e.LENIENT_FLAGS=e.FLAGS=e.TYPE=e.ERROR=void 0;let t=x();e.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},e.TYPE={BOTH:0,REQUEST:1,RESPONSE:2},e.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},e.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},e.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},e.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},e.FINISH={SAFE:0,SAFE_WITH_CB:1,UNSAFE:2},e.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},e.METHODS_HTTP=[e.METHODS.DELETE,e.METHODS.GET,e.METHODS.HEAD,e.METHODS.POST,e.METHODS.PUT,e.METHODS.CONNECT,e.METHODS.OPTIONS,e.METHODS.TRACE,e.METHODS.COPY,e.METHODS.LOCK,e.METHODS.MKCOL,e.METHODS.MOVE,e.METHODS.PROPFIND,e.METHODS.PROPPATCH,e.METHODS.SEARCH,e.METHODS.UNLOCK,e.METHODS.BIND,e.METHODS.REBIND,e.METHODS.UNBIND,e.METHODS.ACL,e.METHODS.REPORT,e.METHODS.MKACTIVITY,e.METHODS.CHECKOUT,e.METHODS.MERGE,e.METHODS[`M-SEARCH`],e.METHODS.NOTIFY,e.METHODS.SUBSCRIBE,e.METHODS.UNSUBSCRIBE,e.METHODS.PATCH,e.METHODS.PURGE,e.METHODS.MKCALENDAR,e.METHODS.LINK,e.METHODS.UNLINK,e.METHODS.PRI,e.METHODS.SOURCE,e.METHODS.QUERY],e.METHODS_ICE=[e.METHODS.SOURCE],e.METHODS_RTSP=[e.METHODS.OPTIONS,e.METHODS.DESCRIBE,e.METHODS.ANNOUNCE,e.METHODS.SETUP,e.METHODS.PLAY,e.METHODS.PAUSE,e.METHODS.TEARDOWN,e.METHODS.GET_PARAMETER,e.METHODS.SET_PARAMETER,e.METHODS.REDIRECT,e.METHODS.RECORD,e.METHODS.FLUSH,e.METHODS.GET,e.METHODS.POST],e.METHOD_MAP=(0,t.enumToMap)(e.METHODS),e.H_METHOD_MAP=Object.fromEntries(Object.entries(e.METHODS).filter(([e])=>e.startsWith(`H`))),e.STATUSES_HTTP=[e.STATUSES.CONTINUE,e.STATUSES.SWITCHING_PROTOCOLS,e.STATUSES.PROCESSING,e.STATUSES.EARLY_HINTS,e.STATUSES.RESPONSE_IS_STALE,e.STATUSES.REVALIDATION_FAILED,e.STATUSES.DISCONNECTED_OPERATION,e.STATUSES.HEURISTIC_EXPIRATION,e.STATUSES.MISCELLANEOUS_WARNING,e.STATUSES.OK,e.STATUSES.CREATED,e.STATUSES.ACCEPTED,e.STATUSES.NON_AUTHORITATIVE_INFORMATION,e.STATUSES.NO_CONTENT,e.STATUSES.RESET_CONTENT,e.STATUSES.PARTIAL_CONTENT,e.STATUSES.MULTI_STATUS,e.STATUSES.ALREADY_REPORTED,e.STATUSES.TRANSFORMATION_APPLIED,e.STATUSES.IM_USED,e.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,e.STATUSES.MULTIPLE_CHOICES,e.STATUSES.MOVED_PERMANENTLY,e.STATUSES.FOUND,e.STATUSES.SEE_OTHER,e.STATUSES.NOT_MODIFIED,e.STATUSES.USE_PROXY,e.STATUSES.SWITCH_PROXY,e.STATUSES.TEMPORARY_REDIRECT,e.STATUSES.PERMANENT_REDIRECT,e.STATUSES.BAD_REQUEST,e.STATUSES.UNAUTHORIZED,e.STATUSES.PAYMENT_REQUIRED,e.STATUSES.FORBIDDEN,e.STATUSES.NOT_FOUND,e.STATUSES.METHOD_NOT_ALLOWED,e.STATUSES.NOT_ACCEPTABLE,e.STATUSES.PROXY_AUTHENTICATION_REQUIRED,e.STATUSES.REQUEST_TIMEOUT,e.STATUSES.CONFLICT,e.STATUSES.GONE,e.STATUSES.LENGTH_REQUIRED,e.STATUSES.PRECONDITION_FAILED,e.STATUSES.PAYLOAD_TOO_LARGE,e.STATUSES.URI_TOO_LONG,e.STATUSES.UNSUPPORTED_MEDIA_TYPE,e.STATUSES.RANGE_NOT_SATISFIABLE,e.STATUSES.EXPECTATION_FAILED,e.STATUSES.IM_A_TEAPOT,e.STATUSES.PAGE_EXPIRED,e.STATUSES.ENHANCE_YOUR_CALM,e.STATUSES.MISDIRECTED_REQUEST,e.STATUSES.UNPROCESSABLE_ENTITY,e.STATUSES.LOCKED,e.STATUSES.FAILED_DEPENDENCY,e.STATUSES.TOO_EARLY,e.STATUSES.UPGRADE_REQUIRED,e.STATUSES.PRECONDITION_REQUIRED,e.STATUSES.TOO_MANY_REQUESTS,e.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,e.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,e.STATUSES.LOGIN_TIMEOUT,e.STATUSES.NO_RESPONSE,e.STATUSES.RETRY_WITH,e.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,e.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,e.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,e.STATUSES.INVALID_X_FORWARDED_FOR,e.STATUSES.REQUEST_HEADER_TOO_LARGE,e.STATUSES.SSL_CERTIFICATE_ERROR,e.STATUSES.SSL_CERTIFICATE_REQUIRED,e.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,e.STATUSES.INVALID_TOKEN,e.STATUSES.CLIENT_CLOSED_REQUEST,e.STATUSES.INTERNAL_SERVER_ERROR,e.STATUSES.NOT_IMPLEMENTED,e.STATUSES.BAD_GATEWAY,e.STATUSES.SERVICE_UNAVAILABLE,e.STATUSES.GATEWAY_TIMEOUT,e.STATUSES.HTTP_VERSION_NOT_SUPPORTED,e.STATUSES.VARIANT_ALSO_NEGOTIATES,e.STATUSES.INSUFFICIENT_STORAGE,e.STATUSES.LOOP_DETECTED,e.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,e.STATUSES.NOT_EXTENDED,e.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,e.STATUSES.WEB_SERVER_UNKNOWN_ERROR,e.STATUSES.WEB_SERVER_IS_DOWN,e.STATUSES.CONNECTION_TIMEOUT,e.STATUSES.ORIGIN_IS_UNREACHABLE,e.STATUSES.TIMEOUT_OCCURED,e.STATUSES.SSL_HANDSHAKE_FAILED,e.STATUSES.INVALID_SSL_CERTIFICATE,e.STATUSES.RAILGUN_ERROR,e.STATUSES.SITE_IS_OVERLOADED,e.STATUSES.SITE_IS_FROZEN,e.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,e.STATUSES.NETWORK_READ_TIMEOUT,e.STATUSES.NETWORK_CONNECT_TIMEOUT],e.ALPHA=[];for(let t=65;t<=90;t++)e.ALPHA.push(String.fromCharCode(t)),e.ALPHA.push(String.fromCharCode(t+32));e.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9},e.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},e.NUM=[`0`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`],e.ALPHANUM=e.ALPHA.concat(e.NUM),e.MARK=[`-`,`_`,`.`,`!`,`~`,`*`,`'`,`(`,`)`],e.USERINFO_CHARS=e.ALPHANUM.concat(e.MARK).concat([`%`,`;`,`:`,`&`,`=`,`+`,`$`,`,`]),e.URL_CHAR=`!"$%&'()*+,-./:;<=>@[\\]^_\`{|}~`.split(``).concat(e.ALPHANUM),e.HEX=e.NUM.concat([`a`,`b`,`c`,`d`,`e`,`f`,`A`,`B`,`C`,`D`,`E`,`F`]),e.TOKEN=[`!`,`#`,`$`,`%`,`&`,`'`,`*`,`+`,`-`,`.`,`^`,`_`,"`",`|`,`~`].concat(e.ALPHANUM),e.HEADER_CHARS=[` `];for(let t=32;t<=255;t++)t!==127&&e.HEADER_CHARS.push(t);e.CONNECTION_TOKEN_CHARS=e.HEADER_CHARS.filter(e=>e!==44),e.QUOTED_STRING=[` `,` `];for(let t=33;t<=255;t++)t!==34&&t!==92&&e.QUOTED_STRING.push(t);e.HTAB_SP_VCHAR_OBS_TEXT=[` `,` `];for(let t=33;t<=126;t++)e.HTAB_SP_VCHAR_OBS_TEXT.push(t);for(let t=128;t<=255;t++)e.HTAB_SP_VCHAR_OBS_TEXT.push(t);e.MAJOR=e.NUM_MAP,e.MINOR=e.MAJOR,e.SPECIAL_HEADERS={connection:e.HEADER_STATE.CONNECTION,"content-length":e.HEADER_STATE.CONTENT_LENGTH,"proxy-connection":e.HEADER_STATE.CONNECTION,"transfer-encoding":e.HEADER_STATE.TRANSFER_ENCODING,upgrade:e.HEADER_STATE.UPGRADE},e.default={ERROR:e.ERROR,TYPE:e.TYPE,FLAGS:e.FLAGS,LENIENT_FLAGS:e.LENIENT_FLAGS,METHODS:e.METHODS,STATUSES:e.STATUSES,FINISH:e.FINISH,HEADER_STATE:e.HEADER_STATE,ALPHA:e.ALPHA,NUM_MAP:e.NUM_MAP,HEX_MAP:e.HEX_MAP,NUM:e.NUM,ALPHANUM:e.ALPHANUM,MARK:e.MARK,USERINFO_CHARS:e.USERINFO_CHARS,URL_CHAR:e.URL_CHAR,HEX:e.HEX,TOKEN:e.TOKEN,HEADER_CHARS:e.HEADER_CHARS,CONNECTION_TOKEN_CHARS:e.CONNECTION_TOKEN_CHARS,QUOTED_STRING:e.QUOTED_STRING,HTAB_SP_VCHAR_OBS_TEXT:e.HTAB_SP_VCHAR_OBS_TEXT,MAJOR:e.MAJOR,MINOR:e.MINOR,SPECIAL_HEADERS:e.SPECIAL_HEADERS,METHODS_HTTP:e.METHODS_HTTP,METHODS_ICE:e.METHODS_ICE,METHODS_RTSP:e.METHODS_RTSP,METHOD_MAP:e.METHOD_MAP,H_METHOD_MAP:e.H_METHOD_MAP,STATUSES_HTTP:e.STATUSES_HTTP}})),C=e.c(((e,t)=>{let{Buffer:n}=require(`node:buffer`),r;Object.defineProperty(t,`exports`,{get:()=>r||=n.from(`AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAygCHCICQQJrDvwBAfkBAgMEBQYHCAkKCwwNDg8QERL4ARP3ARQV9gEWF/UBGBkaGxwdHh8g/QH7ASH0ASIjJCUmJygpKivzASwtLi8wMTLyAfEBMzTwAe8BNTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5P+gFQUVJT7gHtAVTsAVXrAVZXWFla6gFbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHpAegBzwHnAdAB5gHRAdIB0wHUAeUB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMBAPwBC0EADOMBC0EODOIBC0ENDOEBC0EPDOABC0EQDN8BC0ETDN4BC0EUDN0BC0EVDNwBC0EWDNsBC0EXDNoBC0EYDNkBC0EZDNgBC0EaDNcBC0EbDNYBC0EcDNUBC0EdDNQBC0EeDNMBC0EfDNIBC0EgDNEBC0EhDNABC0EIDM8BC0EiDM4BC0EkDM0BC0EjDMwBC0EHDMsBC0ElDMoBC0EmDMkBC0EnDMgBC0EoDMcBC0ESDMYBC0ERDMUBC0EpDMQBC0EqDMMBC0ErDMIBC0EsDMEBC0HeAQzAAQtBLgy/AQtBLwy+AQtBMAy9AQtBMQy8AQtBMgy7AQtBMwy6AQtBNAy5AQtB3wEMuAELQTUMtwELQTkMtgELQQwMtQELQTYMtAELQTcMswELQTgMsgELQT4MsQELQToMsAELQeABDK8BC0ELDK4BC0E/DK0BC0E7DKwBC0EKDKsBC0E8DKoBC0E9DKkBC0HhAQyoAQtBwQAMpwELQcAADKYBC0HCAAylAQtBCQykAQtBLQyjAQtBwwAMogELQcQADKEBC0HFAAygAQtBxgAMnwELQccADJ4BC0HIAAydAQtByQAMnAELQcoADJsBC0HLAAyaAQtBzAAMmQELQc0ADJgBC0HOAAyXAQtBzwAMlgELQdAADJUBC0HRAAyUAQtB0gAMkwELQdMADJIBC0HVAAyRAQtB1AAMkAELQdYADI8BC0HXAAyOAQtB2AAMjQELQdkADIwBC0HaAAyLAQtB2wAMigELQdwADIkBC0HdAAyIAQtB3gAMhwELQd8ADIYBC0HgAAyFAQtB4QAMhAELQeIADIMBC0HjAAyCAQtB5AAMgQELQeUADIABC0HiAQx/C0HmAAx+C0HnAAx9C0EGDHwLQegADHsLQQUMegtB6QAMeQtBBAx4C0HqAAx3C0HrAAx2C0HsAAx1C0HtAAx0C0EDDHMLQe4ADHILQe8ADHELQfAADHALQfIADG8LQfEADG4LQfMADG0LQfQADGwLQfUADGsLQfYADGoLQQIMaQtB9wAMaAtB+AAMZwtB+QAMZgtB+gAMZQtB+wAMZAtB/AAMYwtB/QAMYgtB/gAMYQtB/wAMYAtBgAEMXwtBgQEMXgtBggEMXQtBgwEMXAtBhAEMWwtBhQEMWgtBhgEMWQtBhwEMWAtBiAEMVwtBiQEMVgtBigEMVQtBiwEMVAtBjAEMUwtBjQEMUgtBjgEMUQtBjwEMUAtBkAEMTwtBkQEMTgtBkgEMTQtBkwEMTAtBlAEMSwtBlQEMSgtBlgEMSQtBlwEMSAtBmAEMRwtBmQEMRgtBmgEMRQtBmwEMRAtBnAEMQwtBnQEMQgtBngEMQQtBnwEMQAtBoAEMPwtBoQEMPgtBogEMPQtBowEMPAtBpAEMOwtBpQEMOgtBpgEMOQtBpwEMOAtBqAEMNwtBqQEMNgtBqgEMNQtBqwEMNAtBrAEMMwtBrQEMMgtBrgEMMQtBrwEMMAtBsAEMLwtBsQEMLgtBsgEMLQtBswEMLAtBtAEMKwtBtQEMKgtBtgEMKQtBtwEMKAtBuAEMJwtBuQEMJgtBugEMJQtBuwEMJAtBvAEMIwtBvQEMIgtBvgEMIQtBvwEMIAtBwAEMHwtBwQEMHgtBwgEMHQtBAQwcC0HDAQwbC0HEAQwaC0HFAQwZC0HGAQwYC0HHAQwXC0HIAQwWC0HJAQwVC0HKAQwUC0HLAQwTC0HMAQwSC0HNAQwRC0HOAQwQC0HPAQwPC0HQAQwOC0HRAQwNC0HSAQwMC0HTAQwLC0HUAQwKC0HVAQwJC0HWAQwIC0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/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+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsgA0EANgIcIAMgATYCFCADQeULNgIQIANBETYCDEEAIQIMfQtBACEAAkAgAygCOCICRQ0AIAIoAlwiAkUNACADIAIRAAAhAAsgAEUNWSAAQRVHDQEgA0EFNgIcIAMgATYCFCADQZsbNgIQIANBFTYCDEEAIQIMfAtBywAhAgxiC0EAIQIgA0EANgIcIAMgATYCFCADQZAONgIQIANBFDYCDAx6CyADIAMvATJBgAFyOwEyDDsLIAEgBEcEQCADQRE2AgggAyABNgIEQcoAIQIMYAtB1wAhAgx4CyABIARGBEBB1gAhAgx4CwJAAkACQAJAIAEtAAAiAEEgciAAIABBwQBrQf8BcUEaSRtB/wFxQeMAaw4TAEBAQEBAQEBAQEBAQAFAQEACA0ALIAFBAWohAUHGACECDGELIAFBAWohAUHHACECDGALIAFBAWohAUHIACECDF8LIAFBAWohAUHJACECDF4LQdUAIQIgBCABIgBGDXYgBCABayADKAIAIgFqIQYgACABa0EFaiEHA0AgAUGQyABqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0IQQQgAUEFRg0KGiABQQFqIQEgBCAAQQFqIgBHDQALIAMgBjYCAAx2C0HUACECIAQgASIARg11IAQgAWsgAygCACIBaiEGIAAgAWtBD2ohBwNAIAFBgMgAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNB0EDIAFBD0YNCRogAUEBaiEBIAQgAEEBaiIARw0ACyADIAY2AgAMdQtB0wAhAiAEIAEiAEYNdCAEIAFrIAMoAgAiAWohBiAAIAFrQQ5qIQcDQCABQeLHAGotAAAgAC0AACIFQSByIAUgBUHBAGtB/wFxQRpJG0H/AXFHDQYgAUEORg0HIAFBAWohASAEIABBAWoiAEcNAAsgAyAGNgIADHQLQdIAIQIgBCABIgBGDXMgBCABayADKAIAIgFqIQUgACABa0EBaiEGA0AgAUHgxwBqLQAAIAAtAAAiB0EgciAHIAdBwQBrQf8BcUEaSRtB/wFxRw0FIAFBAUYNAiABQQFqIQEgBCAAQQFqIgBHDQALIAMgBTYCAAxzCyABIARGBEBB0QAhAgxzCwJAAkAgAS0AACIAQSByIAAgAEHBAGtB/wFxQRpJG0H/AXFB7gBrDgcAOTk5OTkBOQsgAUEBaiEBQcMAIQIMWgsgAUEBaiEBQcQAIQIMWQsgA0EANgIAIAZBAWohAUHFACECDFgLQdAAIQIgBCABIgBGDXAgBCABayADKAIAIgFqIQYgACABa0EJaiEHA0AgAUHWxwBqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0CQQIgAUEJRg0EGiABQQFqIQEgBCAAQQFqIgBHDQALIAMgBjYCAAxwC0HPACECIAQgASIARg1vIAQgAWsgAygCACIBaiEGIAAgAWtBBWohBwNAIAFB0McAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNASABQQVGDQIgAUEBaiEBIAQgAEEBaiIARw0ACyADIAY2AgAMbwsgACEBIANBADYCAAwzC0EBCzoALCADQQA2AgAgB0EBaiEBC0EtIQIMUgsCQANAIAEtAABB0MUAai0AAEEBRw0BIAQgAUEBaiIBRw0AC0HNACECDGsLQcIAIQIMUQsgASAERgRAQcwAIQIMagsgAS0AAEE6RgRAIAMoAgQhACADQQA2AgQgAyAAIAEQMCIARQ0zIANBywA2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMagsgA0EANgIcIAMgATYCFCADQecRNgIQIANBCjYCDEEAIQIMaQsCQAJAIAMtACxBAmsOAgABJwsgA0Ezai0AAEECcUUNJiADLQAuQQJxDSYgA0EANgIcIAMgATYCFCADQaYUNgIQIANBCzYCDEEAIQIMaQsgAy0AMkEgcUUNJSADLQAuQQJxDSUgA0EANgIcIAMgATYCFCADQb0TNgIQIANBDzYCDEEAIQIMaAtBACEAAkAgAygCOCICRQ0AIAIoAkgiAkUNACADIAIRAAAhAAsgAEUEQEHBACECDE8LIABBFUcEQCADQQA2AhwgAyABNgIUIANBpg82AhAgA0EcNgIMQQAhAgxoCyADQcoANgIcIAMgATYCFCADQYUcNgIQIANBFTYCDEEAIQIMZwsgASAERwRAA0AgAS0AAEHAwQBqLQAAQQFHDRcgBCABQQFqIgFHDQALQcQAIQIMZwtBxAAhAgxmCyABIARHBEADQAJAIAEtAAAiAEEgciAAIABBwQBrQf8BcUEaSRtB/wFxIgBBCUYNACAAQSBGDQACQAJAAkACQCAAQeMAaw4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUE2IQIMUgsgAUEBaiEBQTchAgxRCyABQQFqIQFBOCECDFALDBULIAQgAUEBaiIBRw0AC0E8IQIMZgtBPCECDGULIAEgBEYEQEHIACECDGULIANBEjYCCCADIAE2AgQCQAJAAkACQAJAIAMtACxBAWsOBBQAAQIJCyADLQAyQSBxDQNB4AEhAgxPCwJAIAMvATIiAEEIcUUNACADLQAoQQFHDQAgAy0ALkEIcUUNAgsgAyAAQff7A3FBgARyOwEyDAsLIAMgAy8BMkEQcjsBMgwECyADQQA2AgQgAyABIAEQMSIABEAgA0HBADYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgxmCyABQQFqIQEMWAsgA0EANgIcIAMgATYCFCADQfQTNgIQIANBBDYCDEEAIQIMZAtBxwAhAiABIARGDWMgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCAAQcDFAGotAAAgAS0AAEEgckcNASAAQQZGDUogAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMZAsgA0EANgIADAULAkAgASAERwRAA0AgAS0AAEHAwwBqLQAAIgBBAUcEQCAAQQJHDQMgAUEBaiEBDAULIAQgAUEBaiIBRw0AC0HFACECDGQLQcUAIQIMYwsLIANBADoALAwBC0ELIQIMRwtBPyECDEYLAkACQANAIAEtAAAiAEEgRwRAAkAgAEEKaw4EAwUFAwALIABBLEYNAwwECyAEIAFBAWoiAUcNAAtBxgAhAgxgCyADQQg6ACwMDgsgAy0AKEEBRw0CIAMtAC5BCHENAiADKAIEIQAgA0EANgIEIAMgACABEDEiAARAIANBwgA2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMXwsgAUEBaiEBDFALQTshAgxECwJAA0AgAS0AACIAQSBHIABBCUdxDQEgBCABQQFqIgFHDQALQcMAIQIMXQsLQTwhAgxCCwJAAkAgASAERwRAA0AgAS0AACIAQSBHBEAgAEEKaw4EAwQEAwQLIAQgAUEBaiIBRw0AC0E/IQIMXQtBPyECDFwLIAMgAy8BMkEgcjsBMgwKCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNTiADQT42AhwgAyABNgIUIAMgADYCDEEAIQIMWgsCQCABIARHBEADQCABLQAAQcDDAGotAAAiAEEBRwRAIABBAkYNAwwMCyAEIAFBAWoiAUcNAAtBNyECDFsLQTchAgxaCyABQQFqIQEMBAtBOyECIAQgASIARg1YIAQgAWsgAygCACIBaiEGIAAgAWtBBWohBwJAA0AgAUGQyABqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0BIAFBBUYEQEEHIQEMPwsgAUEBaiEBIAQgAEEBaiIARw0ACyADIAY2AgAMWQsgA0EANgIAIAAhAQwFC0E6IQIgBCABIgBGDVcgBCABayADKAIAIgFqIQYgACABa0EIaiEHAkADQCABQbTBAGotAAAgAC0AACIFQSByIAUgBUHBAGtB/wFxQRpJG0H/AXFHDQEgAUEIRgRAQQUhAQw+CyABQQFqIQEgBCAAQQFqIgBHDQALIAMgBjYCAAxYCyADQQA2AgAgACEBDAQLQTkhAiAEIAEiAEYNViAEIAFrIAMoAgAiAWohBiAAIAFrQQNqIQcCQANAIAFBsMEAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNASABQQNGBEBBBiEBDD0LIAFBAWohASAEIABBAWoiAEcNAAsgAyAGNgIADFcLIANBADYCACAAIQEMAwsCQANAIAEtAAAiAEEgRwRAIABBCmsOBAcEBAcCCyAEIAFBAWoiAUcNAAtBOCECDFYLIABBLEcNASABQQFqIQBBASEBAkACQAJAAkACQCADLQAsQQVrDgQDAQIEAAsgACEBDAQLQQIhAQwBC0EEIQELIANBAToALCADIAMvATIgAXI7ATIgACEBDAELIAMgAy8BMkEIcjsBMiAAIQELQT4hAgw7CyADQQA6ACwLQTkhAgw5CyABIARGBEBBNiECDFILAkACQAJAAkACQCABLQAAQQprDgQAAgIBAgsgAygCBCEAIANBADYCBCADIAAgARAxIgBFDQIgA0EzNgIcIAMgATYCFCADIAA2AgxBACECDFULIAMoAgQhACADQQA2AgQgAyAAIAEQMSIARQRAIAFBAWohAQwGCyADQTI2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMVAsgAy0ALkEBcQRAQd8BIQIMOwsgAygCBCEAIANBADYCBCADIAAgARAxIgANAQxJC0E0IQIMOQsgA0E1NgIcIAMgATYCFCADIAA2AgxBACECDFELQTUhAgw3CyADQS9qLQAAQQFxDQAgA0EANgIcIAMgATYCFCADQesWNgIQIANBGTYCDEEAIQIMTwtBMyECDDULIAEgBEYEQEEyIQIMTgsCQCABLQAAQQpGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GSFzYCECADQQM2AgxBACECDE4LQTIhAgw0CyABIARGBEBBMSECDE0LAkAgAS0AACIAQQlGDQAgAEEgRg0AQQEhAgJAIAMtACxBBWsOBAYEBQANCyADIAMvATJBCHI7ATIMDAsgAy0ALkEBcUUNASADLQAsQQhHDQAgA0EAOgAsC0E9IQIMMgsgA0EANgIcIAMgATYCFCADQcIWNgIQIANBCjYCDEEAIQIMSgtBAiECDAELQQQhAgsgA0EBOgAsIAMgAy8BMiACcjsBMgwGCyABIARGBEBBMCECDEcLIAEtAABBCkYEQCABQQFqIQEMAQsgAy0ALkEBcQ0AIANBADYCHCADIAE2AhQgA0HcKDYCECADQQI2AgxBACECDEYLQTAhAgwsCyABQQFqIQFBMSECDCsLIAEgBEYEQEEvIQIMRAsgAS0AACIAQQlHIABBIEdxRQRAIAFBAWohASADLQAuQQFxDQEgA0EANgIcIAMgATYCFCADQZcQNgIQIANBCjYCDEEAIQIMRAtBASECAkACQAJAAkACQAJAIAMtACxBAmsOBwUEBAMBAgAECyADIAMvATJBCHI7ATIMAwtBAiECDAELQQQhAgsgA0EBOgAsIAMgAy8BMiACcjsBMgtBLyECDCsLIANBADYCHCADIAE2AhQgA0GEEzYCECADQQs2AgxBACECDEMLQeEBIQIMKQsgASAERgRAQS4hAgxCCyADQQA2AgQgA0ESNgIIIAMgASABEDEiAA0BC0EuIQIMJwsgA0EtNgIcIAMgATYCFCADIAA2AgxBACECDD8LQQAhAAJAIAMoAjgiAkUNACACKAJMIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2AA2AhwgAyABNgIUIANBsxs2AhAgA0EVNgIMQQAhAgw+C0HMACECDCQLIANBADYCHCADIAE2AhQgA0GzDjYCECADQR02AgxBACECDDwLIAEgBEYEQEHOACECDDwLIAEtAAAiAEEgRg0CIABBOkYNAQsgA0EAOgAsQQkhAgwhCyADKAIEIQAgA0EANgIEIAMgACABEDAiAA0BDAILIAMtAC5BAXEEQEHeASECDCALIAMoAgQhACADQQA2AgQgAyAAIAEQMCIARQ0CIANBKjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgw4CyADQcsANgIcIAMgADYCDCADIAFBAWo2AhRBACECDDcLIAFBAWohAUHAACECDB0LIAFBAWohAQwsCyABIARGBEBBKyECDDULAkAgAS0AAEEKRgRAIAFBAWohAQwBCyADLQAuQcAAcUUNBgsgAy0AMkGAAXEEQEEAIQACQCADKAI4IgJFDQAgAigCXCICRQ0AIAMgAhEAACEACyAARQ0SIABBFUYEQCADQQU2AhwgAyABNgIUIANBmxs2AhAgA0EVNgIMQQAhAgw2CyADQQA2AhwgAyABNgIUIANBkA42AhAgA0EUNgIMQQAhAgw1CyADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALIAAOFgIBAAQEBAQEBAQEBAQEBAQEBAQEBAMECyADQQE6ADALIAIgAi8BAEHAAHI7AQALQSshAgwYCyADQSk2AhwgAyABNgIUIANBrBk2AhAgA0EVNgIMQQAhAgwwCyADQQA2AhwgAyABNgIUIANB5Qs2AhAgA0ERNgIMQQAhAgwvCyADQQA2AhwgAyABNgIUIANBpQs2AhAgA0ECNgIMQQAhAgwuC0EBIQcgAy8BMiIFQQhxRQRAIAMpAyBCAFIhBwsCQCADLQAwBEBBASEAIAMtAClBBUYNASAFQcAAcUUgB3FFDQELAkAgAy0AKCICQQJGBEBBASEAIAMvATQiBkHlAEYNAkEAIQAgBUHAAHENAiAGQeQARg0CIAZB5gBrQQJJDQIgBkHMAUYNAiAGQbACRg0CDAELQQAhACAFQcAAcQ0BC0ECIQAgBUEIcQ0AIAVBgARxBEACQCACQQFHDQAgAy0ALkEKcQ0AQQUhAAwCC0EEIQAMAQsgBUEgcUUEQCADEDZBAEdBAnQhAAwBC0EAQQMgAykDIFAbIQALIABBAWsOBQIABwEDBAtBESECDBMLIANBAToAMQwpC0EAIQICQCADKAI4IgBFDQAgACgCMCIARQ0AIAMgABEAACECCyACRQ0mIAJBFUYEQCADQQM2AhwgAyABNgIUIANB0hs2AhAgA0EVNgIMQQAhAgwrC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAwqCyADQQA2AhwgAyABNgIUIANB+SA2AhAgA0EPNgIMQQAhAgwpC0EAIQACQCADKAI4IgJFDQAgAigCMCICRQ0AIAMgAhEAACEACyAADQELQQ4hAgwOCyAAQRVGBEAgA0ECNgIcIAMgATYCFCADQdIbNgIQIANBFTYCDEEAIQIMJwsgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDEEAIQIMJgtBKiECDAwLIAEgBEcEQCADQQk2AgggAyABNgIEQSkhAgwMC0EmIQIMJAsgAyADKQMgIgwgBCABa60iCn0iC0IAIAsgDFgbNwMgIAogDFQEQEElIQIMJAsgAygCBCEAIANBADYCBCADIAAgASAMp2oiARAyIgBFDQAgA0EFNgIcIAMgATYCFCADIAA2AgxBACECDCMLQQ8hAgwJC0IAIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AAEEwaw43FxYAAQIDBAUGBxQUFBQUFBQICQoLDA0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFA4PEBESExQLQgIhCgwWC0IDIQoMFQtCBCEKDBQLQgUhCgwTC0IGIQoMEgtCByEKDBELQgghCgwQC0IJIQoMDwtCCiEKDA4LQgshCgwNC0IMIQoMDAtCDSEKDAsLQg4hCgwKC0IPIQoMCQtCCiEKDAgLQgshCgwHC0IMIQoMBgtCDSEKDAULQg4hCgwEC0IPIQoMAwsgA0EANgIcIAMgATYCFCADQZ8VNgIQIANBDDYCDEEAIQIMIQsgASAERgRAQSIhAgwhC0IAIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEtAABBMGsONxUUAAECAwQFBgcWFhYWFhYWCAkKCwwNFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYODxAREhMWC0ICIQoMFAtCAyEKDBMLQgQhCgwSC0IFIQoMEQtCBiEKDBALQgchCgwPC0IIIQoMDgtCCSEKDA0LQgohCgwMC0ILIQoMCwtCDCEKDAoLQg0hCgwJC0IOIQoMCAtCDyEKDAcLQgohCgwGC0ILIQoMBQtCDCEKDAQLQg0hCgwDC0IOIQoMAgtCDyEKDAELQgEhCgsgAUEBaiEBIAMpAyAiC0L//////////w9YBEAgAyALQgSGIAqENwMgDAILIANBADYCHCADIAE2AhQgA0G1CTYCECADQQw2AgxBACECDB4LQSchAgwEC0EoIQIMAwsgAyABOgAsIANBADYCACAHQQFqIQFBDCECDAILIANBADYCACAGQQFqIQFBCiECDAELIAFBAWohAUEIIQIMAAsAC0EAIQIgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDAwXC0EAIQIgA0EANgIcIAMgATYCFCADQYMRNgIQIANBCTYCDAwWC0EAIQIgA0EANgIcIAMgATYCFCADQd8KNgIQIANBCTYCDAwVC0EAIQIgA0EANgIcIAMgATYCFCADQe0QNgIQIANBCTYCDAwUC0EAIQIgA0EANgIcIAMgATYCFCADQdIRNgIQIANBCTYCDAwTC0EAIQIgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDAwSC0EAIQIgA0EANgIcIAMgATYCFCADQYMRNgIQIANBCTYCDAwRC0EAIQIgA0EANgIcIAMgATYCFCADQd8KNgIQIANBCTYCDAwQC0EAIQIgA0EANgIcIAMgATYCFCADQe0QNgIQIANBCTYCDAwPC0EAIQIgA0EANgIcIAMgATYCFCADQdIRNgIQIANBCTYCDAwOC0EAIQIgA0EANgIcIAMgATYCFCADQbkXNgIQIANBDzYCDAwNC0EAIQIgA0EANgIcIAMgATYCFCADQbkXNgIQIANBDzYCDAwMC0EAIQIgA0EANgIcIAMgATYCFCADQZkTNgIQIANBCzYCDAwLC0EAIQIgA0EANgIcIAMgATYCFCADQZ0JNgIQIANBCzYCDAwKC0EAIQIgA0EANgIcIAMgATYCFCADQZcQNgIQIANBCjYCDAwJC0EAIQIgA0EANgIcIAMgATYCFCADQbEQNgIQIANBCjYCDAwIC0EAIQIgA0EANgIcIAMgATYCFCADQbsdNgIQIANBAjYCDAwHC0EAIQIgA0EANgIcIAMgATYCFCADQZYWNgIQIANBAjYCDAwGC0EAIQIgA0EANgIcIAMgATYCFCADQfkYNgIQIANBAjYCDAwFC0EAIQIgA0EANgIcIAMgATYCFCADQcQYNgIQIANBAjYCDAwECyADQQI2AhwgAyABNgIUIANBqR42AhAgA0EWNgIMQQAhAgwDC0HeACECIAEgBEYNAiAJQQhqIQcgAygCACEFAkACQCABIARHBEAgBUGWyABqIQggBCAFaiABayEGIAVBf3NBCmoiBSABaiEAA0AgAS0AACAILQAARwRAQQIhCAwDCyAFRQRAQQAhCCAAIQEMAwsgBUEBayEFIAhBAWohCCAEIAFBAWoiAUcNAAsgBiEFIAQhAQsgB0EBNgIAIAMgBTYCAAwBCyADQQA2AgAgByAINgIACyAHIAE2AgQgCSgCDCEAAkACQCAJKAIIQQFrDgIEAQALIANBADYCHCADQcIeNgIQIANBFzYCDCADIABBAWo2AhRBACECDAMLIANBADYCHCADIAA2AhQgA0HXHjYCECADQQk2AgxBACECDAILIAEgBEYEQEEoIQIMAgsgA0EJNgIIIAMgATYCBEEnIQIMAQsgASAERgRAQQEhAgwBCwNAAkACQAJAIAEtAABBCmsOBAABAQABCyABQQFqIQEMAQsgAUEBaiEBIAMtAC5BIHENAEEAIQIgA0EANgIcIAMgATYCFCADQaEhNgIQIANBBTYCDAwCC0EBIQIgASAERw0ACwsgCUEQaiQAIAJFBEAgAygCDCEADAELIAMgAjYCHEEAIQAgAygCBCIBRQ0AIAMgASAEIAMoAggRAQAiAUUNACADIAQ2AhQgAyABNgIMIAEhAAsgAAu+AgECfyAAQQA6AAAgAEHkAGoiAUEBa0EAOgAAIABBADoAAiAAQQA6AAEgAUEDa0EAOgAAIAFBAmtBADoAACAAQQA6AAMgAUEEa0EAOgAAQQAgAGtBA3EiASAAaiIAQQA2AgBB5AAgAWtBfHEiAiAAaiIBQQRrQQA2AgACQCACQQlJDQAgAEEANgIIIABBADYCBCABQQhrQQA2AgAgAUEMa0EANgIAIAJBGUkNACAAQQA2AhggAEEANgIUIABBADYCECAAQQA2AgwgAUEQa0EANgIAIAFBFGtBADYCACABQRhrQQA2AgAgAUEca0EANgIAIAIgAEEEcUEYciICayIBQSBJDQAgACACaiEAA0AgAEIANwMYIABCADcDECAAQgA3AwggAEIANwMAIABBIGohACABQSBrIgFBH0sNAAsLC1YBAX8CQCAAKAIMDQACQAJAAkACQCAALQAxDgMBAAMCCyAAKAI4IgFFDQAgASgCMCIBRQ0AIAAgAREAACIBDQMLQQAPCwALIABByhk2AhBBDiEBCyABCxoAIAAoAgxFBEAgAEHeHzYCECAAQRU2AgwLCxQAIAAoAgxBFUYEQCAAQQA2AgwLCxQAIAAoAgxBFkYEQCAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsrAAJAIABBJ08NAEL//////wkgAK2IQgGDUA0AIABBAnRB0DhqKAIADwsACxcAIABBL08EQAALIABBAnRB7DlqKAIAC78JAQF/QfQtIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQeQAaw70A2NiAAFhYWFhYWECAwQFYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQYHCAkKCwwNDg9hYWFhYRBhYWFhYWFhYWFhYRFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWESExQVFhcYGRobYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1NmE3ODk6YWFhYWFhYWE7YWFhPGFhYWE9Pj9hYWFhYWFhYUBhYUFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFCQ0RFRkdISUpLTE1OT1BRUlNhYWFhYWFhYVRVVldYWVpbYVxdYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYV9gYQtB6iwPC0GYJg8LQe0xDwtBoDcPC0HJKQ8LQbQpDwtBli0PC0HrKw8LQaI1DwtB2zQPC0HgKQ8LQeMkDwtB1SQPC0HuJA8LQeYlDwtByjQPC0HQNw8LQao1DwtB9SwPC0H2Jg8LQYIiDwtB8jMPC0G+KA8LQec3DwtBzSEPC0HAIQ8LQbglDwtByyUPC0GWJA8LQY80DwtBzTUPC0HdKg8LQe4zDwtBnDQPC0GeMQ8LQfQ1DwtB5SIPC0GvJQ8LQZkxDwtBsjYPC0H5Ng8LQcQyDwtB3SwPC0GCMQ8LQcExDwtBjTcPC0HJJA8LQew2DwtB5yoPC0HIIw8LQeIhDwtByTcPC0GlIg8LQZQiDwtB2zYPC0HeNQ8LQYYmDwtBvCsPC0GLMg8LQaAjDwtB9jAPC0GALA8LQYkrDwtBpCYPC0HyIw8LQYEoDwtBqzIPC0HrJw8LQcI2DwtBoiQPC0HPKg8LQdwjDwtBhycPC0HkNA8LQbciDwtBrTEPC0HVIg8LQa80DwtB3iYPC0HWMg8LQfQ0DwtBgTgPC0H0Nw8LQZI2DwtBnScPC0GCKQ8LQY0jDwtB1zEPC0G9NQ8LQbQ3DwtB2DAPC0G2Jw8LQZo4DwtBpyoPC0HEJw8LQa4jDwtB9SIPCwALQcomIQELIAELFwAgACAALwEuQf7/A3EgAUEAR3I7AS4LGgAgACAALwEuQf3/A3EgAUEAR0EBdHI7AS4LGgAgACAALwEuQfv/A3EgAUEAR0ECdHI7AS4LGgAgACAALwEuQff/A3EgAUEAR0EDdHI7AS4LGgAgACAALwEuQe//A3EgAUEAR0EEdHI7AS4LGgAgACAALwEuQd//A3EgAUEAR0EFdHI7AS4LGgAgACAALwEuQb//A3EgAUEAR0EGdHI7AS4LGgAgACAALwEuQf/+A3EgAUEAR0EHdHI7AS4LGgAgACAALwEuQf/9A3EgAUEAR0EIdHI7AS4LGgAgACAALwEuQf/7A3EgAUEAR0EJdHI7AS4LPgECfwJAIAAoAjgiA0UNACADKAIEIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEHhEjYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIIIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEH8ETYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIMIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEHsCjYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIQIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEH6HjYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIUIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEHLEDYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIYIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEG3HzYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIcIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEG/FTYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIsIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEH+CDYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIgIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEGMHTYCEEEYIQQLIAQLPgECfwJAIAAoAjgiA0UNACADKAIkIgNFDQAgACABIAIgAWsgAxEBACIEQX9HDQAgAEHmFTYCEEEYIQQLIAQLOAAgAAJ/IAAvATJBFHFBFEYEQEEBIAAtAChBAUYNARogAC8BNEHlAEYMAQsgAC0AKUEFRgs6ADALWQECfwJAIAAtAChBAUYNACAALwE0IgFB5ABrQeQASQ0AIAFBzAFGDQAgAUGwAkYNACAALwEyIgBBwABxDQBBASECIABBiARxQYAERg0AIABBKHFFIQILIAILjAEBAn8CQAJAAkAgAC0AKkUNACAALQArRQ0AIAAvATIiAUECcUUNAQwCCyAALwEyIgFBAXFFDQELQQEhAiAALQAoQQFGDQAgAC8BNCIAQeQAa0HkAEkNACAAQcwBRg0AIABBsAJGDQAgAUHAAHENAEEAIQIgAUGIBHFBgARGDQAgAUEocUEARyECCyACC1cAIABBGGpCADcDACAAQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEH9ATYCHAsGACAAEDoLmi0BC38jAEEQayIKJABB3NUAKAIAIglFBEBBnNkAKAIAIgVFBEBBqNkAQn83AgBBoNkAQoCAhICAgMAANwIAQZzZACAKQQhqQXBxQdiq1aoFcyIFNgIAQbDZAEEANgIAQYDZAEEANgIAC0GE2QBBwNkENgIAQdTVAEHA2QQ2AgBB6NUAIAU2AgBB5NUAQX82AgBBiNkAQcCmAzYCAANAIAFBgNYAaiABQfTVAGoiAjYCACACIAFB7NUAaiIDNgIAIAFB+NUAaiADNgIAIAFBiNYAaiABQfzVAGoiAzYCACADIAI2AgAgAUGQ1gBqIAFBhNYAaiICNgIAIAIgAzYCACABQYzWAGogAjYCACABQSBqIgFBgAJHDQALQczZBEGBpgM2AgBB4NUAQazZACgCADYCAEHQ1QBBgKYDNgIAQdzVAEHI2QQ2AgBBzP8HQTg2AgBByNkEIQkLAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAU0EQEHE1QAoAgAiBkEQIABBE2pBcHEgAEELSRsiBEEDdiIAdiIBQQNxBEACQCABQQFxIAByQQFzIgJBA3QiAEHs1QBqIgEgAEH01QBqKAIAIgAoAggiA0YEQEHE1QAgBkF+IAJ3cTYCAAwBCyABIAM2AgggAyABNgIMCyAAQQhqIQEgACACQQN0IgJBA3I2AgQgACACaiIAIAAoAgRBAXI2AgQMEQtBzNUAKAIAIgggBE8NASABBEACQEECIAB0IgJBACACa3IgASAAdHFoIgBBA3QiAkHs1QBqIgEgAkH01QBqKAIAIgIoAggiA0YEQEHE1QAgBkF+IAB3cSIGNgIADAELIAEgAzYCCCADIAE2AgwLIAIgBEEDcjYCBCAAQQN0IgAgBGshBSAAIAJqIAU2AgAgAiAEaiIEIAVBAXI2AgQgCARAIAhBeHFB7NUAaiEAQdjVACgCACEDAn9BASAIQQN2dCIBIAZxRQRAQcTVACABIAZyNgIAIAAMAQsgACgCCAsiASADNgIMIAAgAzYCCCADIAA2AgwgAyABNgIICyACQQhqIQFB2NUAIAQ2AgBBzNUAIAU2AgAMEQtByNUAKAIAIgtFDQEgC2hBAnRB9NcAaigCACIAKAIEQXhxIARrIQUgACECA0ACQCACKAIQIgFFBEAgAkEUaigCACIBRQ0BCyABKAIEQXhxIARrIgMgBUkhAiADIAUgAhshBSABIAAgAhshACABIQIMAQsLIAAoAhghCSAAKAIMIgMgAEcEQEHU1QAoAgAaIAMgACgCCCIBNgIIIAEgAzYCDAwQCyAAQRRqIgIoAgAiAUUEQCAAKAIQIgFFDQMgAEEQaiECCwNAIAIhByABIgNBFGoiAigCACIBDQAgA0EQaiECIAMoAhAiAQ0ACyAHQQA2AgAMDwtBfyEEIABBv39LDQAgAEETaiIBQXBxIQRByNUAKAIAIghFDQBBACAEayEFAkACQAJAAn9BACAEQYACSQ0AGkEfIARB////B0sNABogBEEmIAFBCHZnIgBrdkEBcSAAQQF0a0E+agsiBkECdEH01wBqKAIAIgJFBEBBACEBQQAhAwwBC0EAIQEgBEEZIAZBAXZrQQAgBkEfRxt0IQBBACEDA0ACQCACKAIEQXhxIARrIgcgBU8NACACIQMgByIFDQBBACEFIAIhAQwDCyABIAJBFGooAgAiByAHIAIgAEEddkEEcWpBEGooAgAiAkYbIAEgBxshASAAQQF0IQAgAg0ACwsgASADckUEQEEAIQNBAiAGdCIAQQAgAGtyIAhxIgBFDQMgAGhBAnRB9NcAaigCACEBCyABRQ0BCwNAIAEoAgRBeHEgBGsiAiAFSSEAIAIgBSAAGyEFIAEgAyAAGyEDIAEoAhAiAAR/IAAFIAFBFGooAgALIgENAAsLIANFDQAgBUHM1QAoAgAgBGtPDQAgAygCGCEHIAMgAygCDCIARwRAQdTVACgCABogACADKAIIIgE2AgggASAANgIMDA4LIANBFGoiAigCACIBRQRAIAMoAhAiAUUNAyADQRBqIQILA0AgAiEGIAEiAEEUaiICKAIAIgENACAAQRBqIQIgACgCECIBDQALIAZBADYCAAwNC0HM1QAoAgAiAyAETwRAQdjVACgCACEBAkAgAyAEayICQRBPBEAgASAEaiIAIAJBAXI2AgQgASADaiACNgIAIAEgBEEDcjYCBAwBCyABIANBA3I2AgQgASADaiIAIAAoAgRBAXI2AgRBACEAQQAhAgtBzNUAIAI2AgBB2NUAIAA2AgAgAUEIaiEBDA8LQdDVACgCACIDIARLBEAgBCAJaiIAIAMgBGsiAUEBcjYCBEHc1QAgADYCAEHQ1QAgATYCACAJIARBA3I2AgQgCUEIaiEBDA8LQQAhASAEAn9BnNkAKAIABEBBpNkAKAIADAELQajZAEJ/NwIAQaDZAEKAgISAgIDAADcCAEGc2QAgCkEMakFwcUHYqtWqBXM2AgBBsNkAQQA2AgBBgNkAQQA2AgBBgIAECyIAIARBxwBqIgVqIgZBACAAayIHcSICTwRAQbTZAEEwNgIADA8LAkBB/NgAKAIAIgFFDQBB9NgAKAIAIgggAmohACAAIAFNIAAgCEtxDQBBACEBQbTZAEEwNgIADA8LQYDZAC0AAEEEcQ0EAkACQCAJBEBBhNkAIQEDQCABKAIAIgAgCU0EQCAAIAEoAgRqIAlLDQMLIAEoAggiAQ0ACwtBABA7IgBBf0YNBSACIQZBoNkAKAIAIgFBAWsiAyAAcQRAIAIgAGsgACADakEAIAFrcWohBgsgBCAGTw0FIAZB/v///wdLDQVB/NgAKAIAIgMEQEH02AAoAgAiByAGaiEBIAEgB00NBiABIANLDQYLIAYQOyIBIABHDQEMBwsgBiADayAHcSIGQf7///8HSw0EIAYQOyEAIAAgASgCACABKAIEakYNAyAAIQELAkAgBiAEQcgAak8NACABQX9GDQBBpNkAKAIAIgAgBSAGa2pBACAAa3EiAEH+////B0sEQCABIQAMBwsgABA7QX9HBEAgACAGaiEGIAEhAAwHC0EAIAZrEDsaDAQLIAEiAEF/Rw0FDAMLQQAhAwwMC0EAIQAMCgsgAEF/Rw0CC0GA2QBBgNkAKAIAQQRyNgIACyACQf7///8HSw0BIAIQOyEAQQAQOyEBIABBf0YNASABQX9GDQEgACABTw0BIAEgAGsiBiAEQThqTQ0BC0H02ABB9NgAKAIAIAZqIgE2AgBB+NgAKAIAIAFJBEBB+NgAIAE2AgALAkACQAJAQdzVACgCACICBEBBhNkAIQEDQCAAIAEoAgAiAyABKAIEIgVqRg0CIAEoAggiAQ0ACwwCC0HU1QAoAgAiAUEARyAAIAFPcUUEQEHU1QAgADYCAAtBACEBQYjZACAGNgIAQYTZACAANgIAQeTVAEF/NgIAQejVAEGc2QAoAgA2AgBBkNkAQQA2AgADQCABQYDWAGogAUH01QBqIgI2AgAgAiABQezVAGoiAzYCACABQfjVAGogAzYCACABQYjWAGogAUH81QBqIgM2AgAgAyACNgIAIAFBkNYAaiABQYTWAGoiAjYCACACIAM2AgAgAUGM1gBqIAI2AgAgAUEgaiIBQYACRw0AC0F4IABrQQ9xIgEgAGoiAiAGQThrIgMgAWsiAUEBcjYCBEHg1QBBrNkAKAIANgIAQdDVACABNgIAQdzVACACNgIAIAAgA2pBODYCBAwCCyAAIAJNDQAgAiADSQ0AIAEoAgxBCHENAEF4IAJrQQ9xIgAgAmoiA0HQ1QAoAgAgBmoiByAAayIAQQFyNgIEIAEgBSAGajYCBEHg1QBBrNkAKAIANgIAQdDVACAANgIAQdzVACADNgIAIAIgB2pBODYCBAwBCyAAQdTVACgCAEkEQEHU1QAgADYCAAsgACAGaiEDQYTZACEBAkACQAJAA0AgAyABKAIARwRAIAEoAggiAQ0BDAILCyABLQAMQQhxRQ0BC0GE2QAhAQNAIAEoAgAiAyACTQRAIAMgASgCBGoiBSACSw0DCyABKAIIIQEMAAsACyABIAA2AgAgASABKAIEIAZqNgIEIABBeCAAa0EPcWoiCSAEQQNyNgIEIANBeCADa0EPcWoiBiAEIAlqIgRrIQEgAiAGRgRAQdzVACAENgIAQdDVAEHQ1QAoAgAgAWoiADYCACAEIABBAXI2AgQMCAtB2NUAKAIAIAZGBEBB2NUAIAQ2AgBBzNUAQczVACgCACABaiIANgIAIAQgAEEBcjYCBCAAIARqIAA2AgAMCAsgBigCBCIFQQNxQQFHDQYgBUF4cSEIIAVB/wFNBEAgBUEDdiEDIAYoAggiACAGKAIMIgJGBEBBxNUAQcTVACgCAEF+IAN3cTYCAAwHCyACIAA2AgggACACNgIMDAYLIAYoAhghByAGIAYoAgwiAEcEQCAAIAYoAggiAjYCCCACIAA2AgwMBQsgBkEUaiICKAIAIgVFBEAgBigCECIFRQ0EIAZBEGohAgsDQCACIQMgBSIAQRRqIgIoAgAiBQ0AIABBEGohAiAAKAIQIgUNAAsgA0EANgIADAQLQXggAGtBD3EiASAAaiIHIAZBOGsiAyABayIBQQFyNgIEIAAgA2pBODYCBCACIAVBNyAFa0EPcWpBP2siAyADIAJBEGpJGyIDQSM2AgRB4NUAQazZACgCADYCAEHQ1QAgATYCAEHc1QAgBzYCACADQRBqQYzZACkCADcCACADQYTZACkCADcCCEGM2QAgA0EIajYCAEGI2QAgBjYCAEGE2QAgADYCAEGQ2QBBADYCACADQSRqIQEDQCABQQc2AgAgBSABQQRqIgFLDQALIAIgA0YNACADIAMoAgRBfnE2AgQgAyADIAJrIgU2AgAgAiAFQQFyNgIEIAVB/wFNBEAgBUF4cUHs1QBqIQACf0HE1QAoAgAiAUEBIAVBA3Z0IgNxRQRAQcTVACABIANyNgIAIAAMAQsgACgCCAsiASACNgIMIAAgAjYCCCACIAA2AgwgAiABNgIIDAELQR8hASAFQf///wdNBEAgBUEmIAVBCHZnIgBrdkEBcSAAQQF0a0E+aiEBCyACIAE2AhwgAkIANwIQIAFBAnRB9NcAaiEAQcjVACgCACIDQQEgAXQiBnFFBEAgACACNgIAQcjVACADIAZyNgIAIAIgADYCGCACIAI2AgggAiACNgIMDAELIAVBGSABQQF2a0EAIAFBH0cbdCEBIAAoAgAhAwJAA0AgAyIAKAIEQXhxIAVGDQEgAUEddiEDIAFBAXQhASAAIANBBHFqQRBqIgYoAgAiAw0ACyAGIAI2AgAgAiAANgIYIAIgAjYCDCACIAI2AggMAQsgACgCCCIBIAI2AgwgACACNgIIIAJBADYCGCACIAA2AgwgAiABNgIIC0HQ1QAoAgAiASAETQ0AQdzVACgCACIAIARqIgIgASAEayIBQQFyNgIEQdDVACABNgIAQdzVACACNgIAIAAgBEEDcjYCBCAAQQhqIQEMCAtBACEBQbTZAEEwNgIADAcLQQAhAAsgB0UNAAJAIAYoAhwiAkECdEH01wBqIgMoAgAgBkYEQCADIAA2AgAgAA0BQcjVAEHI1QAoAgBBfiACd3E2AgAMAgsgB0EQQRQgBygCECAGRhtqIAA2AgAgAEUNAQsgACAHNgIYIAYoAhAiAgRAIAAgAjYCECACIAA2AhgLIAZBFGooAgAiAkUNACAAQRRqIAI2AgAgAiAANgIYCyABIAhqIQEgBiAIaiIGKAIEIQULIAYgBUF+cTYCBCABIARqIAE2AgAgBCABQQFyNgIEIAFB/wFNBEAgAUF4cUHs1QBqIQACf0HE1QAoAgAiAkEBIAFBA3Z0IgFxRQRAQcTVACABIAJyNgIAIAAMAQsgACgCCAsiASAENgIMIAAgBDYCCCAEIAA2AgwgBCABNgIIDAELQR8hBSABQf///wdNBEAgAUEmIAFBCHZnIgBrdkEBcSAAQQF0a0E+aiEFCyAEIAU2AhwgBEIANwIQIAVBAnRB9NcAaiEAQcjVACgCACICQQEgBXQiA3FFBEAgACAENgIAQcjVACACIANyNgIAIAQgADYCGCAEIAQ2AgggBCAENgIMDAELIAFBGSAFQQF2a0EAIAVBH0cbdCEFIAAoAgAhAAJAA0AgACICKAIEQXhxIAFGDQEgBUEddiEAIAVBAXQhBSACIABBBHFqQRBqIgMoAgAiAA0ACyADIAQ2AgAgBCACNgIYIAQgBDYCDCAEIAQ2AggMAQsgAigCCCIAIAQ2AgwgAiAENgIIIARBADYCGCAEIAI2AgwgBCAANgIICyAJQQhqIQEMAgsCQCAHRQ0AAkAgAygCHCIBQQJ0QfTXAGoiAigCACADRgRAIAIgADYCACAADQFByNUAIAhBfiABd3EiCDYCAAwCCyAHQRBBFCAHKAIQIANGG2ogADYCACAARQ0BCyAAIAc2AhggAygCECIBBEAgACABNgIQIAEgADYCGAsgA0EUaigCACIBRQ0AIABBFGogATYCACABIAA2AhgLAkAgBUEPTQRAIAMgBCAFaiIAQQNyNgIEIAAgA2oiACAAKAIEQQFyNgIEDAELIAMgBGoiAiAFQQFyNgIEIAMgBEEDcjYCBCACIAVqIAU2AgAgBUH/AU0EQCAFQXhxQezVAGohAAJ/QcTVACgCACIBQQEgBUEDdnQiBXFFBEBBxNUAIAEgBXI2AgAgAAwBCyAAKAIICyIBIAI2AgwgACACNgIIIAIgADYCDCACIAE2AggMAQtBHyEBIAVB////B00EQCAFQSYgBUEIdmciAGt2QQFxIABBAXRrQT5qIQELIAIgATYCHCACQgA3AhAgAUECdEH01wBqIQBBASABdCIEIAhxRQRAIAAgAjYCAEHI1QAgBCAIcjYCACACIAA2AhggAiACNgIIIAIgAjYCDAwBCyAFQRkgAUEBdmtBACABQR9HG3QhASAAKAIAIQQCQANAIAQiACgCBEF4cSAFRg0BIAFBHXYhBCABQQF0IQEgACAEQQRxakEQaiIGKAIAIgQNAAsgBiACNgIAIAIgADYCGCACIAI2AgwgAiACNgIIDAELIAAoAggiASACNgIMIAAgAjYCCCACQQA2AhggAiAANgIMIAIgATYCCAsgA0EIaiEBDAELAkAgCUUNAAJAIAAoAhwiAUECdEH01wBqIgIoAgAgAEYEQCACIAM2AgAgAw0BQcjVACALQX4gAXdxNgIADAILIAlBEEEUIAkoAhAgAEYbaiADNgIAIANFDQELIAMgCTYCGCAAKAIQIgEEQCADIAE2AhAgASADNgIYCyAAQRRqKAIAIgFFDQAgA0EUaiABNgIAIAEgAzYCGAsCQCAFQQ9NBEAgACAEIAVqIgFBA3I2AgQgACABaiIBIAEoAgRBAXI2AgQMAQsgACAEaiIHIAVBAXI2AgQgACAEQQNyNgIEIAUgB2ogBTYCACAIBEAgCEF4cUHs1QBqIQFB2NUAKAIAIQMCf0EBIAhBA3Z0IgIgBnFFBEBBxNUAIAIgBnI2AgAgAQwBCyABKAIICyICIAM2AgwgASADNgIIIAMgATYCDCADIAI2AggLQdjVACAHNgIAQczVACAFNgIACyAAQQhqIQELIApBEGokACABC0MAIABFBEA/AEEQdA8LAkAgAEH//wNxDQAgAEEASA0AIABBEHZAACIAQX9GBEBBtNkAQTA2AgBBfw8LIABBEHQPCwALC5lCIgBBgAgLDQEAAAAAAAAAAgAAAAMAQZgICwUEAAAABQBBqAgLCQYAAAAHAAAACABB5AgLwjJJbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==`,`base64`)})})),w=e.c(((e,t)=>{let{Buffer:n}=require(`node:buffer`),r;Object.defineProperty(t,`exports`,{get:()=>r||=n.from(`AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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DAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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A0EXNgIcIAMgADYCDCADIAFBAWo2AhQM+AILIABBFUYNI0EAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAz3AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwdCyADQRk2AhwgAyAANgIMIAMgAUEBajYCFAz2AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQzvAgsgA0EaNgIcIAMgADYCDCADIAFBAWo2AhQM9QILIABBFUYNH0EAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAz0AgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDBsLIANBHDYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgzzAgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDOsCCyADQR02AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8gILIABBO0cNASABQQFqIQELQSYhAgzXAgtBACECIANBADYCHCADIAE2AhQgA0GfFTYCECADQQw2AgwM7wILIAEgBEcEQANAIAEtAABBIEcNhAIgBCABQQFqIgFHDQALQSwhAgzvAgtBLCECDO4CCyABIARGBEBBNCECDO4CCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtBNCECDO8CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNnwIgA0EyNgIcIAMgATYCFCADIAA2AgxBACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUEQCABQQFqIQEMnwILIANBMjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgztAgsgASAERwRAAkADQCABLQAAQTBrIgBB/wFxQQpPBEBBOiECDNcCCyADKQMgIgtCmbPmzJmz5swZVg0BIAMgC0IKfiIKNwMgIAogAK1C/wGDIgtCf4VWDQEgAyAKIAt8NwMgIAQgAUEBaiIBRw0AC0HAACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABQQFqIgEQMSIADRcM4gILQcAAIQIM7AILIAEgBEYEQEHJACECDOwCCwJAA0ACQCABLQAAQQlrDhgAAqICogKpAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAgCiAgsgBCABQQFqIgFHDQALQckAIQIM7AILIAFBAWohASADQS9qLQAAQQFxDaUCIANBADYCHCADIAE2AhQgA0GXEDYCECADQQo2AgxBACECDOsCCyABIARHBEADQCABLQAAQSBHDRUgBCABQQFqIgFHDQALQfgAIQIM6wILQfgAIQIM6gILIANBAjoAKAw4C0EAIQIgA0EANgIcIANBvws2AhAgA0ECNgIMIAMgAUEBajYCFAzoAgtBACECDM4CC0ENIQIMzQILQRMhAgzMAgtBFSECDMsCC0EWIQIMygILQRghAgzJAgtBGSECDMgCC0EaIQIMxwILQRshAgzGAgtBHCECDMUCC0EdIQIMxAILQR4hAgzDAgtBHyECDMICC0EgIQIMwQILQSIhAgzAAgtBIyECDL8CC0ElIQIMvgILQeUAIQIMvQILIANBPTYCHCADIAE2AhQgAyAANgIMQQAhAgzVAgsgA0EbNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIM1AILIANBIDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNMCCyADQRM2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzSAgsgA0ELNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0QILIANBEDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNACCyADQSA2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzPAgsgA0ELNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzgILIANBDDYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM0CC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAzMAgsCQANAAkAgAS0AAEEKaw4EAAICAAILIAQgAUEBaiIBRw0AC0H9ASECDMwCCwJAAkAgAy0ANkEBRw0AQQAhAAJAIAMoAjgiAkUNACACKAJgIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB/AE2AhwgAyABNgIUIANB3Bk2AhAgA0EVNgIMQQAhAgzNAgtB3AEhAgyzAgsgA0EANgIcIAMgATYCFCADQfkLNgIQIANBHzYCDEEAIQIMywILAkACQCADLQAoQQFrDgIEAQALQdsBIQIMsgILQdQBIQIMsQILIANBAjoAMUEAIQACQCADKAI4IgJFDQAgAigCACICRQ0AIAMgAhEAACEACyAARQRAQd0BIQIMsQILIABBFUcEQCADQQA2AhwgAyABNgIUIANBtAw2AhAgA0EQNgIMQQAhAgzKAgsgA0H7ATYCHCADIAE2AhQgA0GBGjYCECADQRU2AgxBACECDMkCCyABIARGBEBB+gEhAgzJAgsgAS0AAEHIAEYNASADQQE6ACgLQcABIQIMrgILQdoBIQIMrQILIAEgBEcEQCADQQw2AgggAyABNgIEQdkBIQIMrQILQfkBIQIMxQILIAEgBEYEQEH4ASECDMUCCyABLQAAQcgARw0EIAFBAWohAUHYASECDKsCCyABIARGBEBB9wEhAgzEAgsCQAJAIAEtAABBxQBrDhAABQUFBQUFBQUFBQUFBQUBBQsgAUEBaiEBQdYBIQIMqwILIAFBAWohAUHXASECDKoCC0H2ASECIAEgBEYNwgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABButUAai0AAEcNAyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMwwILIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgBFBEBB4wEhAgyqAgsgA0H1ATYCHCADIAE2AhQgAyAANgIMQQAhAgzCAgtB9AEhAiABIARGDcECIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjVAGotAABHDQIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMICCyADQYEEOwEoIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgANAwwCCyADQQA2AgALQQAhAiADQQA2AhwgAyABNgIUIANB5R82AhAgA0EINgIMDL8CC0HVASECDKUCCyADQfMBNgIcIAMgATYCFCADIAA2AgxBACECDL0CC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ1uIABBFUcEQCADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgy9AgsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDLwCCyABIARHBEAgA0ENNgIIIAMgATYCBEHTASECDKMCC0HyASECDLsCCyABIARGBEBB8QEhAgy7AgsCQAJAAkAgAS0AAEHIAGsOCwABCAgICAgICAgCCAsgAUEBaiEBQdABIQIMowILIAFBAWohAUHRASECDKICCyABQQFqIQFB0gEhAgyhAgtB8AEhAiABIARGDbkCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEG11QBqLQAARw0EIABBAkYNAyAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy5AgtB7wEhAiABIARGDbgCIAMoAgAiACAEIAFraiEGIAEgAGtBAWohBQNAIAEtAAAgAEGz1QBqLQAARw0DIABBAUYNAiAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy4AgtB7gEhAiABIARGDbcCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEGw1QBqLQAARw0CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy3AgsgAygCBCEAIANCADcDACADIAAgBUEBaiIBECsiAEUNAiADQewBNgIcIAMgATYCFCADIAA2AgxBACECDLYCCyADQQA2AgALIAMoAgQhACADQQA2AgQgAyAAIAEQKyIARQ2cAiADQe0BNgIcIAMgATYCFCADIAA2AgxBACECDLQCC0HPASECDJoCC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMtAILQc4BIQIMmgILIANB6wE2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyyAgsgASAERgRAQesBIQIMsgILIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMsQILQc0BIQIMlwILIAEgBEcEQCADQQ42AgggAyABNgIEQcwBIQIMlwILQeoBIQIMrwILIAEgBEYEQEHpASECDK8CCyABLQAAQTBrIgBB/wFxQQpJBEAgAyAAOgAqIAFBAWohAUHLASECDJYCCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNlwIgA0HoATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgASAERgRAQecBIQIMrgILAkAgAS0AAEEuRgRAIAFBAWohAQwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmAIgA0HmATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgtBygEhAgyUAgsgASAERgRAQeUBIQIMrQILQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIBNgIcIAMgATYCFCADIAA2AgxBACECDK8CCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmgIgA0HjATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5AE2AhwgAyABNgIUIAMgADYCDAytAgtByQEhAgyTAgtBACEAAkAgAygCOCICRQ0AIAIoAkQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GkDTYCECADQSE2AgxBACECDK0CC0HIASECDJMCCyADQeEBNgIcIAMgATYCFCADQdAaNgIQIANBFTYCDEEAIQIMqwILIAEgBEYEQEHhASECDKsCCwJAIAEtAABBIEYEQCADQQA7ATQgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GZETYCECADQQk2AgxBACECDKsCC0HHASECDJECCyABIARGBEBB4AEhAgyqAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKsCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyqAgtBxgEhAgyQAgsgASAERgRAQd8BIQIMqQILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyqAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqQILQcUBIQIMjwILIAEgBEYEQEHeASECDKgCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqQILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKgCC0HEASECDI4CCyABIARGBEBB3QEhAgynAgsCQAJAAkACQCABLQAAQQprDhcCAwMAAwMDAwMDAwMDAwMDAwMDAwMDAQMLIAFBAWoMBQsgAUEBaiEBQcMBIQIMjwILIAFBAWohASADQS9qLQAAQQFxDQggA0EANgIcIAMgATYCFCADQY0LNgIQIANBDTYCDEEAIQIMpwILIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKYCCyABIARHBEAgA0EPNgIIIAMgATYCBEEBIQIMjQILQdwBIQIMpQILAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0HbASECDKYCCyADKAIEIQAgA0EANgIEIAMgACABEC0iAEUEQCABQQFqIQEMBAsgA0HaATYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgylAgsgAygCBCEAIANBADYCBCADIAAgARAtIgANASABQQFqCyEBQcEBIQIMigILIANB2QE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMogILQcIBIQIMiAILIANBL2otAABBAXENASADQQA2AhwgAyABNgIUIANB5Bw2AhAgA0EZNgIMQQAhAgygAgsgASAERgRAQdkBIQIMoAILAkACQAJAIAEtAABBCmsOBAECAgACCyABQQFqIQEMAgsgAUEBaiEBDAELIAMtAC5BwABxRQ0BC0EAIQACQCADKAI4IgJFDQAgAigCPCICRQ0AIAMgAhEAACEACyAARQ2gASAAQRVGBEAgA0HZADYCHCADIAE2AhQgA0G3GjYCECADQRU2AgxBACECDJ8CCyADQQA2AhwgAyABNgIUIANBgA02AhAgA0EbNgIMQQAhAgyeAgsgA0EANgIcIAMgATYCFCADQdwoNgIQIANBAjYCDEEAIQIMnQILIAEgBEcEQCADQQw2AgggAyABNgIEQb8BIQIMhAILQdgBIQIMnAILIAEgBEYEQEHXASECDJwCCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AAEHBAGsOFQABAgNaBAUGWlpaBwgJCgsMDQ4PEFoLIAFBAWohAUH7ACECDJICCyABQQFqIQFB/AAhAgyRAgsgAUEBaiEBQYEBIQIMkAILIAFBAWohAUGFASECDI8CCyABQQFqIQFBhgEhAgyOAgsgAUEBaiEBQYkBIQIMjQILIAFBAWohAUGKASECDIwCCyABQQFqIQFBjQEhAgyLAgsgAUEBaiEBQZYBIQIMigILIAFBAWohAUGXASECDIkCCyABQQFqIQFBmAEhAgyIAgsgAUEBaiEBQaUBIQIMhwILIAFBAWohAUGmASECDIYCCyABQQFqIQFBrAEhAgyFAgsgAUEBaiEBQbQBIQIMhAILIAFBAWohAUG3ASECDIMCCyABQQFqIQFBvgEhAgyCAgsgASAERgRAQdYBIQIMmwILIAEtAABBzgBHDUggAUEBaiEBQb0BIQIMgQILIAEgBEYEQEHVASECDJoCCwJAAkACQCABLQAAQcIAaw4SAEpKSkpKSkpKSgFKSkpKSkoCSgsgAUEBaiEBQbgBIQIMggILIAFBAWohAUG7ASECDIECCyABQQFqIQFBvAEhAgyAAgtB1AEhAiABIARGDZgCIAMoAgAiACAEIAFraiEFIAEgAGtBB2ohBgJAA0AgAS0AACAAQajVAGotAABHDUUgAEEHRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJkCCyADQQA2AgAgBkEBaiEBQRsMRQsgASAERgRAQdMBIQIMmAILAkACQCABLQAAQckAaw4HAEdHR0dHAUcLIAFBAWohAUG5ASECDP8BCyABQQFqIQFBugEhAgz+AQtB0gEhAiABIARGDZYCIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQabVAGotAABHDUMgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJcCCyADQQA2AgAgBkEBaiEBQQ8MQwtB0QEhAiABIARGDZUCIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQaTVAGotAABHDUIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYCCyADQQA2AgAgBkEBaiEBQSAMQgtB0AEhAiABIARGDZQCIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDUEgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJUCCyADQQA2AgAgBkEBaiEBQRIMQQsgASAERgRAQc8BIQIMlAILAkACQCABLQAAQcUAaw4OAENDQ0NDQ0NDQ0NDQwFDCyABQQFqIQFBtQEhAgz7AQsgAUEBaiEBQbYBIQIM+gELQc4BIQIgASAERg2SAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGe1QBqLQAARw0/IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyTAgsgA0EANgIAIAZBAWohAUEHDD8LQc0BIQIgASAERg2RAiADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGY1QBqLQAARw0+IABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAySAgsgA0EANgIAIAZBAWohAUEoDD4LIAEgBEYEQEHMASECDJECCwJAAkACQCABLQAAQcUAaw4RAEFBQUFBQUFBQQFBQUFBQQJBCyABQQFqIQFBsQEhAgz5AQsgAUEBaiEBQbIBIQIM+AELIAFBAWohAUGzASECDPcBC0HLASECIAEgBEYNjwIgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBkdUAai0AAEcNPCAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMkAILIANBADYCACAGQQFqIQFBGgw8C0HKASECIAEgBEYNjgIgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBjdUAai0AAEcNOyAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMjwILIANBADYCACAGQQFqIQFBIQw7CyABIARGBEBByQEhAgyOAgsCQAJAIAEtAABBwQBrDhQAPT09PT09PT09PT09PT09PT09AT0LIAFBAWohAUGtASECDPUBCyABQQFqIQFBsAEhAgz0AQsgASAERgRAQcgBIQIMjQILAkACQCABLQAAQdUAaw4LADw8PDw8PDw8PAE8CyABQQFqIQFBrgEhAgz0AQsgAUEBaiEBQa8BIQIM8wELQccBIQIgASAERg2LAiADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw04IABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyMAgsgA0EANgIAIAZBAWohAUEqDDgLIAEgBEYEQEHGASECDIsCCyABLQAAQdAARw04IAFBAWohAUElDDcLQcUBIQIgASAERg2JAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGB1QBqLQAARw02IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyKAgsgA0EANgIAIAZBAWohAUEODDYLIAEgBEYEQEHEASECDIkCCyABLQAAQcUARw02IAFBAWohAUGrASECDO8BCyABIARGBEBBwwEhAgyIAgsCQAJAAkACQCABLQAAQcIAaw4PAAECOTk5OTk5OTk5OTkDOQsgAUEBaiEBQacBIQIM8QELIAFBAWohAUGoASECDPABCyABQQFqIQFBqQEhAgzvAQsgAUEBaiEBQaoBIQIM7gELQcIBIQIgASAERg2GAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEH51ABqLQAARw0yIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyGAgsgA0EANgIAIAZBAWohAUErDDILQcABIQIgASAERg2EAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH21ABqLQAARw0xIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyFAgsgA0EANgIAIAZBAWohAUEsDDELQb8BIQIgASAERg2DAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0wIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyEAgsgA0EANgIAIAZBAWohAUERDDALQb4BIQIgASAERg2CAiADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEHy1ABqLQAARw0vIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyDAgsgA0EANgIAIAZBAWohAUEuDC8LIAEgBEYEQEG9ASECDIICCwJAAkACQAJAAkAgAS0AAEHBAGsOFQA0NDQ0NDQ0NDQ0ATQ0AjQ0AzQ0BDQLIAFBAWohAUGbASECDOwBCyABQQFqIQFBnAEhAgzrAQsgAUEBaiEBQZ0BIQIM6gELIAFBAWohAUGiASECDOkBCyABQQFqIQFBpAEhAgzoAQsgASAERgRAQbwBIQIMgQILAkACQCABLQAAQdIAaw4DADABMAsgAUEBaiEBQaMBIQIM6AELIAFBAWohAUEEDC0LQbsBIQIgASAERg3/ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHw1ABqLQAARw0sIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyAAgsgA0EANgIAIAZBAWohAUEdDCwLIAEgBEYEQEG6ASECDP8BCwJAAkAgAS0AAEHJAGsOBwEuLi4uLgAuCyABQQFqIQFBoQEhAgzmAQsgAUEBaiEBQSIMKwsgASAERgRAQbkBIQIM/gELIAEtAABB0ABHDSsgAUEBaiEBQaABIQIM5AELIAEgBEYEQEG4ASECDP0BCwJAAkAgAS0AAEHGAGsOCwAsLCwsLCwsLCwBLAsgAUEBaiEBQZ4BIQIM5AELIAFBAWohAUGfASECDOMBC0G3ASECIAEgBEYN+wEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABB7NQAai0AAEcNKCAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM/AELIANBADYCACAGQQFqIQFBDQwoC0G2ASECIAEgBEYN+gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBodUAai0AAEcNJyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM+wELIANBADYCACAGQQFqIQFBDAwnC0G1ASECIAEgBEYN+QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB6tQAai0AAEcNJiAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM+gELIANBADYCACAGQQFqIQFBAwwmC0G0ASECIAEgBEYN+AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB6NQAai0AAEcNJSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM+QELIANBADYCACAGQQFqIQFBJgwlCyABIARGBEBBswEhAgz4AQsCQAJAIAEtAABB1ABrDgIAAScLIAFBAWohAUGZASECDN8BCyABQQFqIQFBmgEhAgzeAQtBsgEhAiABIARGDfYBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQebUAGotAABHDSMgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPcBCyADQQA2AgAgBkEBaiEBQScMIwtBsQEhAiABIARGDfUBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQeTUAGotAABHDSIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPYBCyADQQA2AgAgBkEBaiEBQRwMIgtBsAEhAiABIARGDfQBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQd7UAGotAABHDSEgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPUBCyADQQA2AgAgBkEBaiEBQQYMIQtBrwEhAiABIARGDfMBIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQdnUAGotAABHDSAgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPQBCyADQQA2AgAgBkEBaiEBQRkMIAsgASAERgRAQa4BIQIM8wELAkACQAJAAkAgAS0AAEEtaw4jACQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkASQkJCQkAiQkJAMkCyABQQFqIQFBjgEhAgzcAQsgAUEBaiEBQY8BIQIM2wELIAFBAWohAUGUASECDNoBCyABQQFqIQFBlQEhAgzZAQtBrQEhAiABIARGDfEBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQdfUAGotAABHDR4gAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPIBCyADQQA2AgAgBkEBaiEBQQsMHgsgASAERgRAQawBIQIM8QELAkACQCABLQAAQcEAaw4DACABIAsgAUEBaiEBQZABIQIM2AELIAFBAWohAUGTASECDNcBCyABIARGBEBBqwEhAgzwAQsCQAJAIAEtAABBwQBrDg8AHx8fHx8fHx8fHx8fHwEfCyABQQFqIQFBkQEhAgzXAQsgAUEBaiEBQZIBIQIM1gELIAEgBEYEQEGqASECDO8BCyABLQAAQcwARw0cIAFBAWohAUEKDBsLQakBIQIgASAERg3tASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHR1ABqLQAARw0aIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzuAQsgA0EANgIAIAZBAWohAUEeDBoLQagBIQIgASAERg3sASADKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEHK1ABqLQAARw0ZIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAztAQsgA0EANgIAIAZBAWohAUEVDBkLQacBIQIgASAERg3rASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHH1ABqLQAARw0YIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==`,`base64`)})})),T=e.c(((e,t)=>{let n=[`GET`,`HEAD`,`POST`],r=new Set(n),i=[101,204,205,304],a=[301,302,303,307,308],o=new Set(a),s=`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`.split(`.`),c=new Set(s),l=[`no-referrer`,`no-referrer-when-downgrade`,`same-origin`,`origin`,`strict-origin`,`origin-when-cross-origin`,`strict-origin-when-cross-origin`,`unsafe-url`],u=[``,...l],d=new Set(l),f=[`follow`,`manual`,`error`],p=[`GET`,`HEAD`,`OPTIONS`,`TRACE`,`QUERY`],m=new Set(p),h=[`navigate`,`same-origin`,`no-cors`,`cors`],g=[`omit`,`same-origin`,`include`],_=[`default`,`no-store`,`reload`,`no-cache`,`force-cache`,`only-if-cached`],v=[`content-encoding`,`content-language`,`content-location`,`content-type`,`content-length`],y=[`half`],b=[`CONNECT`,`TRACE`,`TRACK`],x=new Set(b),S=[`audio`,`audioworklet`,`font`,`image`,`manifest`,`paintworklet`,`script`,`style`,`track`,`video`,`xslt`,``];t.exports={subresource:S,forbiddenMethods:b,requestBodyHeader:v,referrerPolicy:u,requestRedirect:f,requestMode:h,requestCredentials:g,requestCache:_,redirectStatus:a,corsSafeListedMethods:n,nullBodyStatus:i,safeMethods:p,badPorts:s,requestDuplex:y,subresourceSet:new Set(S),badPortsSet:c,redirectStatusSet:o,corsSafeListedMethodsSet:r,safeMethodsSet:m,forbiddenMethodsSet:x,referrerPolicyTokens:d}})),E=e.c(((e,t)=>{let n=Symbol.for(`undici.globalOrigin.1`);function r(){return globalThis[n]}function i(e){if(e===void 0){Object.defineProperty(globalThis,n,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!==`http:`&&t.protocol!==`https:`)throw TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,n,{value:t,writable:!0,enumerable:!1,configurable:!1})}t.exports={getGlobalOrigin:r,setGlobalOrigin:i}})),D=e.c(((e,t)=>{let n=new TextDecoder;function r(e){return e.length===0?``:(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),n.decode(e))}t.exports={utf8DecodeBytes:r}})),O=e.c(((e,t)=>{let n=require(`node:assert`),{utf8DecodeBytes:r}=D();function i(e,t,n){let r=``;for(;n.position<t.length&&e(t[n.position]);)r+=t[n.position],n.position++;return r}function a(e,t,n){let r=t.indexOf(e,n.position),i=n.position;return r===-1?(n.position=t.length,t.slice(i)):(n.position=r,t.slice(i,n.position))}let o=/[\u0009\u000A\u000C\u000D\u0020]/g;function s(e){e=e.replace(o,``);let t=e.length;if(t%4==0&&e.charCodeAt(t-1)===61&&(--t,e.charCodeAt(t-1)===61&&--t),t%4==1||/[^+/0-9A-Za-z]/.test(e.length===t?e:e.substring(0,t)))return`failure`;let n=Buffer.from(e,`base64`);return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}function c(e){return e===9||e===10||e===12||e===13||e===32}function l(e){let t=e.length;if(65535>t)return String.fromCharCode.apply(null,e);let n=``,r=0,i=65535;for(;r<t;)r+i>t&&(i=t-r),n+=String.fromCharCode.apply(null,e.subarray(r,r+=i));return n}let u=/[^\x00-\xFF]/;function d(e){return n(!u.test(e)),e}function f(e){return JSON.parse(r(e))}function p(e,t=!0,n=!0){return m(e,t,n,c)}function m(e,t,n,r){let i=0,a=e.length-1;if(t)for(;i<e.length&&r(e.charCodeAt(i));)i++;if(n)for(;a>0&&r(e.charCodeAt(a));)a--;return i===0&&a===e.length-1?e:e.slice(i,a+1)}function h(e){let t=JSON.stringify(e);if(t===void 0)throw TypeError(`Value is not JSON serializable`);return n(typeof t==`string`),t}t.exports={collectASequenceOfCodePoints:i,collectASequenceOfCodePointsFast:a,forgivingBase64:s,isASCIIWhitespace:c,isomorphicDecode:l,isomorphicEncode:d,parseJSONFromBytes:f,removeASCIIWhitespace:p,removeChars:m,serializeJavascriptValueToJSONString:h}})),k=e.c(((e,t)=>{let n=require(`node:assert`),{forgivingBase64:r,collectASequenceOfCodePoints:i,collectASequenceOfCodePointsFast:a,isomorphicDecode:o,removeASCIIWhitespace:s,removeChars:c}=O(),l=new TextEncoder,u=/^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u,d=/[\u000A\u000D\u0009\u0020]/u,f=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;function p(e){n(e.protocol===`data:`);let t=m(e,!0);t=t.slice(5);let i={position:0},c=a(`,`,t,i),l=c.length;if(c=s(c,!0,!0),i.position>=t.length)return`failure`;i.position++;let u=h(t.slice(l+1));if(/;(?:\u0020*)base64$/iu.test(c)){if(u=r(o(u)),u===`failure`)return`failure`;c=c.slice(0,-6),c=c.replace(/(\u0020+)$/u,``),c=c.slice(0,-1)}c.startsWith(`;`)&&(c=`text/plain`+c);let d=y(c);return d===`failure`&&(d=y(`text/plain;charset=US-ASCII`)),{mimeType:d,body:u}}function m(e,t=!1){if(!t)return e.href;let n=e.href,r=e.hash.length,i=r===0?n:n.substring(0,n.length-r);return!r&&n.endsWith(`#`)?i.slice(0,-1):i}function h(e){return v(l.encode(e))}function g(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function _(e){return e>=48&&e<=57?e-48:(e&223)-55}function v(e){let t=e.length,n=new Uint8Array(t),r=0,i=0;for(;i<t;){let t=e[i];t===37?t===37&&!(g(e[i+1])&&g(e[i+2]))?n[r++]=37:(n[r++]=_(e[i+1])<<4|_(e[i+2]),i+=2):n[r++]=t,++i}return t===r?n:n.subarray(0,r)}function y(e){e=C(e,!0,!0);let t={position:0},n=a(`/`,e,t);if(n.length===0||!u.test(n)||t.position>=e.length)return`failure`;t.position++;let r=a(`;`,e,t);if(r=C(r,!1,!0),r.length===0||!u.test(r))return`failure`;let o=n.toLowerCase(),s=r.toLowerCase(),c={type:o,subtype:s,parameters:new Map,essence:`${o}/${s}`};for(;t.position<e.length;){t.position++,i(e=>d.test(e),e,t);let n=i(e=>e!==`;`&&e!==`=`,e,t);if(n=n.toLowerCase(),t.position<e.length){if(e[t.position]===`;`)continue;t.position++}if(t.position>=e.length)break;let r=null;if(e[t.position]===`"`)r=b(e,t,!0),a(`;`,e,t);else if(r=a(`;`,e,t),r=C(r,!1,!0),r.length===0)continue;n.length!==0&&u.test(n)&&(r.length===0||f.test(r))&&!c.parameters.has(n)&&c.parameters.set(n,r)}return c}function b(e,t,r=!1){let a=t.position,o=``;for(n(e[t.position]===`"`),t.position++;o+=i(e=>e!==`"`&&e!==`\\`,e,t),!(t.position>=e.length);){let r=e[t.position];if(t.position++,r===`\\`){if(t.position>=e.length){o+=`\\`;break}o+=e[t.position],t.position++}else{n(r===`"`);break}}return r?o:e.slice(a,t.position)}function x(e){n(e!==`failure`);let{parameters:t,essence:r}=e,i=r;for(let[e,n]of t.entries())i+=`;`,i+=e,i+=`=`,u.test(n)||(n=n.replace(/[\\"]/gu,`\\$&`),n=`"`+n,n+=`"`),i+=n;return i}function S(e){return e===13||e===10||e===9||e===32}function C(e,t=!0,n=!0){return c(e,t,n,S)}function w(e){switch(e.essence){case`application/ecmascript`:case`application/javascript`:case`application/x-ecmascript`:case`application/x-javascript`:case`text/ecmascript`:case`text/javascript`:case`text/javascript1.0`:case`text/javascript1.1`:case`text/javascript1.2`:case`text/javascript1.3`:case`text/javascript1.4`:case`text/javascript1.5`:case`text/jscript`:case`text/livescript`:case`text/x-ecmascript`:case`text/x-javascript`:return`text/javascript`;case`application/json`:case`text/json`:return`application/json`;case`image/svg+xml`:return`image/svg+xml`;case`text/xml`:case`application/xml`:return`application/xml`}return e.subtype.endsWith(`+json`)?`application/json`:e.subtype.endsWith(`+xml`)?`application/xml`:``}t.exports={dataURLProcessor:p,URLSerializer:m,stringPercentDecode:h,parseMIMEType:y,collectAnHTTPQuotedString:b,serializeAMimeType:x,removeHTTPWhitespace:C,minimizeSupportedMimeType:w,HTTP_TOKEN_CODEPOINTS:u}})),A=e.c(((e,t)=>{let n=require(`node:assert`),{types:r,inspect:i}=require(`node:util`),{markAsUncloneable:a}=require(`node:worker_threads`),o=Function.call.bind(Function.prototype[Symbol.hasInstance]),s={converters:{},util:{},errors:{},is:{}};s.errors.exception=function(e){return TypeError(`${e.header}: ${e.message}`)},s.errors.conversionFailed=function(e){let t=e.types.length===1?``:` one of`,n=`${e.argument} could not be converted to${t}: ${e.types.join(`, `)}.`;return s.errors.exception({header:e.prefix,message:n})},s.errors.invalidArgument=function(e){return s.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})},s.brandCheck=function(e,t){if(!o(t,e)){let e=TypeError(`Illegal invocation`);throw e.code=`ERR_INVALID_THIS`,e}},s.brandCheckMultiple=function(e){let t=e.map(e=>s.util.MakeTypeAssertion(e));return e=>{if(t.every(t=>!t(e))){let e=TypeError(`Illegal invocation`);throw e.code=`ERR_INVALID_THIS`,e}}},s.argumentLengthCheck=function({length:e},t,n){if(e<t)throw s.errors.exception({message:`${t} argument${t===1?``:`s`} required, but${e?` only`:``} ${e} found.`,header:n})},s.illegalConstructor=function(){throw s.errors.exception({header:`TypeError`,message:`Illegal constructor`})},s.util.MakeTypeAssertion=function(e){return t=>o(e,t)},s.util.Type=function(e){switch(typeof e){case`undefined`:return 1;case`boolean`:return 2;case`string`:return 3;case`symbol`:return 4;case`number`:return 5;case`bigint`:return 6;case`function`:case`object`:return e===null?7:8}},s.util.Types={UNDEFINED:1,BOOLEAN:2,STRING:3,SYMBOL:4,NUMBER:5,BIGINT:6,NULL:7,OBJECT:8},s.util.TypeValueToString=function(e){switch(s.util.Type(e)){case 1:return`Undefined`;case 2:return`Boolean`;case 3:return`String`;case 4:return`Symbol`;case 5:return`Number`;case 6:return`BigInt`;case 7:return`Null`;case 8:return`Object`}},s.util.markAsUncloneable=a,s.util.ConvertToInt=function(e,t,n,r){let i,a;t===64?(i=2**53-1,a=n===`unsigned`?0:-9007199254740991):n===`unsigned`?(a=0,i=2**t-1):(a=-(2**(t-1)),i=2**(t-1)-1);let o=Number(e);if(o===0&&(o=0),s.util.HasFlag(r,s.attributes.EnforceRange)){if(Number.isNaN(o)||o===1/0||o===-1/0)throw s.errors.exception({header:`Integer conversion`,message:`Could not convert ${s.util.Stringify(e)} to an integer.`});if(o=s.util.IntegerPart(o),o<a||o>i)throw s.errors.exception({header:`Integer conversion`,message:`Value must be between ${a}-${i}, got ${o}.`});return o}return!Number.isNaN(o)&&s.util.HasFlag(r,s.attributes.Clamp)?(o=Math.min(Math.max(o,a),i),o=Math.floor(o)%2==0?Math.floor(o):Math.ceil(o),o):Number.isNaN(o)||o===0&&Object.is(0,o)||o===1/0||o===-1/0?0:(o=s.util.IntegerPart(o),o%=2**t,n===`signed`&&o>=2**(t-1)?o-2**t:o)},s.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t},s.util.Stringify=function(e){switch(s.util.Type(e)){case 4:return`Symbol(${e.description})`;case 8:return i(e);case 3:return`"${e}"`;case 6:return`${e}n`;default:return`${e}`}},s.util.IsResizableArrayBuffer=function(e){if(r.isArrayBuffer(e))return e.resizable;if(r.isSharedArrayBuffer(e))return e.growable;throw s.errors.exception({header:`IsResizableArrayBuffer`,message:`"${s.util.Stringify(e)}" is not an array buffer.`})},s.util.HasFlag=function(e,t){return typeof e==`number`&&(e&t)===t},s.sequenceConverter=function(e){return(t,n,r,i)=>{if(s.util.Type(t)!==8)throw s.errors.exception({header:n,message:`${r} (${s.util.Stringify(t)}) is not iterable.`});let a=typeof i==`function`?i():t?.[Symbol.iterator]?.(),o=[],c=0;if(a===void 0||typeof a.next!=`function`)throw s.errors.exception({header:n,message:`${r} is not iterable.`});for(;;){let{done:t,value:i}=a.next();if(t)break;o.push(e(i,n,`${r}[${c++}]`))}return o}},s.recordConverter=function(e,t){return(n,i,a)=>{if(s.util.Type(n)!==8)throw s.errors.exception({header:i,message:`${a} ("${s.util.TypeValueToString(n)}") is not an Object.`});let o={};if(!r.isProxy(n)){let r=[...Object.getOwnPropertyNames(n),...Object.getOwnPropertySymbols(n)];for(let c of r){let r=s.util.Stringify(c),l=e(c,i,`Key ${r} in ${a}`);o[l]=t(n[c],i,`${a}[${r}]`)}return o}let c=Reflect.ownKeys(n);for(let r of c)if(Reflect.getOwnPropertyDescriptor(n,r)?.enumerable){let s=e(r,i,a);o[s]=t(n[r],i,a)}return o}},s.interfaceConverter=function(e,t){return(n,r,i)=>{if(!e(n))throw s.errors.exception({header:r,message:`Expected ${i} ("${s.util.Stringify(n)}") to be an instance of ${t}.`});return n}},s.dictionaryConverter=function(e){return e.sort((e,t)=>(e.key>t.key)-(e.key<t.key)),(t,n,r)=>{let i={};if(t!=null&&s.util.Type(t)!==8)throw s.errors.exception({header:n,message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let a of e){let{key:e,defaultValue:o,required:c,converter:l}=a;if(c===!0&&(t==null||!Object.hasOwn(t,e)))throw s.errors.exception({header:n,message:`Missing required key "${e}".`});let u=t?.[e],d=o!==void 0;if(d&&u===void 0&&(u=o()),c||d||u!==void 0){if(u=l(u,n,`${r}.${e}`),a.allowedValues&&!a.allowedValues.includes(u))throw s.errors.exception({header:n,message:`${u} is not an accepted type. Expected one of ${a.allowedValues.join(`, `)}.`});i[e]=u}}return i}},s.nullableConverter=function(e){return(t,n,r)=>t===null?t:e(t,n,r)},s.is.USVString=function(e){return typeof e==`string`&&e.isWellFormed()},s.is.ReadableStream=s.util.MakeTypeAssertion(ReadableStream),s.is.Blob=s.util.MakeTypeAssertion(Blob),s.is.URLSearchParams=s.util.MakeTypeAssertion(URLSearchParams),s.is.File=s.util.MakeTypeAssertion(File),s.is.URL=s.util.MakeTypeAssertion(URL),s.is.AbortSignal=s.util.MakeTypeAssertion(AbortSignal),s.is.MessagePort=s.util.MakeTypeAssertion(MessagePort),s.is.BufferSource=function(e){return r.isArrayBuffer(e)||ArrayBuffer.isView(e)&&r.isArrayBuffer(e.buffer)},s.util.getCopyOfBytesHeldByBufferSource=function(e){let t=e,i=t,a=0,o=0;if(r.isTypedArray(t)||r.isDataView(t)?(i=t.buffer,a=t.byteOffset,o=t.byteLength):(n(r.isAnyArrayBuffer(t)),o=t.byteLength),i.detached)return new Uint8Array;let s=new Uint8Array(o),c=new Uint8Array(i,a,o);return s.set(c),s},s.converters.DOMString=function(e,t,n,r){if(e===null&&s.util.HasFlag(r,s.attributes.LegacyNullToEmptyString))return``;if(typeof e==`symbol`)throw s.errors.exception({header:t,message:`${n} is a symbol, which cannot be converted to a DOMString.`});return String(e)},s.converters.ByteString=function(e,t,n){if(typeof e==`symbol`)throw s.errors.exception({header:t,message:`${n} is a symbol, which cannot be converted to a ByteString.`});let r=String(e);for(let e=0;e<r.length;e++)if(r.charCodeAt(e)>255)throw TypeError(`Cannot convert argument to a ByteString because the character at index ${e} has a value of ${r.charCodeAt(e)} which is greater than 255.`);return r},s.converters.USVString=function(e){return typeof e==`string`?e.toWellFormed():`${e}`.toWellFormed()},s.converters.boolean=function(e){return!!e},s.converters.any=function(e){return e},s.converters[`long long`]=function(e,t,n){return s.util.ConvertToInt(e,64,`signed`,0,t,n)},s.converters[`unsigned long long`]=function(e,t,n){return s.util.ConvertToInt(e,64,`unsigned`,0,t,n)},s.converters[`unsigned long`]=function(e,t,n){return s.util.ConvertToInt(e,32,`unsigned`,0,t,n)},s.converters[`unsigned short`]=function(e,t,n,r){return s.util.ConvertToInt(e,16,`unsigned`,r,t,n)},s.converters.ArrayBuffer=function(e,t,n,i){if(s.util.Type(e)!==8||!r.isArrayBuffer(e))throw s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`ArrayBuffer`]});if(!s.util.HasFlag(i,s.attributes.AllowResizable)&&s.util.IsResizableArrayBuffer(e))throw s.errors.exception({header:t,message:`${n} cannot be a resizable ArrayBuffer.`});return e},s.converters.SharedArrayBuffer=function(e,t,n,i){if(s.util.Type(e)!==8||!r.isSharedArrayBuffer(e))throw s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`SharedArrayBuffer`]});if(!s.util.HasFlag(i,s.attributes.AllowResizable)&&s.util.IsResizableArrayBuffer(e))throw s.errors.exception({header:t,message:`${n} cannot be a resizable SharedArrayBuffer.`});return e},s.converters.TypedArray=function(e,t,n,i,a){if(s.util.Type(e)!==8||!r.isTypedArray(e)||e.constructor.name!==t.name)throw s.errors.conversionFailed({prefix:n,argument:`${i} ("${s.util.Stringify(e)}")`,types:[t.name]});if(!s.util.HasFlag(a,s.attributes.AllowShared)&&r.isSharedArrayBuffer(e.buffer))throw s.errors.exception({header:n,message:`${i} cannot be a view on a shared array buffer.`});if(!s.util.HasFlag(a,s.attributes.AllowResizable)&&s.util.IsResizableArrayBuffer(e.buffer))throw s.errors.exception({header:n,message:`${i} cannot be a view on a resizable array buffer.`});return e},s.converters.DataView=function(e,t,n,i){if(s.util.Type(e)!==8||!r.isDataView(e))throw s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`DataView`]});if(!s.util.HasFlag(i,s.attributes.AllowShared)&&r.isSharedArrayBuffer(e.buffer))throw s.errors.exception({header:t,message:`${n} cannot be a view on a shared array buffer.`});if(!s.util.HasFlag(i,s.attributes.AllowResizable)&&s.util.IsResizableArrayBuffer(e.buffer))throw s.errors.exception({header:t,message:`${n} cannot be a view on a resizable array buffer.`});return e},s.converters.ArrayBufferView=function(e,t,n,i){if(s.util.Type(e)!==8||!r.isArrayBufferView(e))throw s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`ArrayBufferView`]});if(!s.util.HasFlag(i,s.attributes.AllowShared)&&r.isSharedArrayBuffer(e.buffer))throw s.errors.exception({header:t,message:`${n} cannot be a view on a shared array buffer.`});if(!s.util.HasFlag(i,s.attributes.AllowResizable)&&s.util.IsResizableArrayBuffer(e.buffer))throw s.errors.exception({header:t,message:`${n} cannot be a view on a resizable array buffer.`});return e},s.converters.BufferSource=function(e,t,n,i){if(r.isArrayBuffer(e))return s.converters.ArrayBuffer(e,t,n,i);if(r.isArrayBufferView(e))return i&=~s.attributes.AllowShared,s.converters.ArrayBufferView(e,t,n,i);throw r.isSharedArrayBuffer(e)?s.errors.exception({header:t,message:`${n} cannot be a SharedArrayBuffer.`}):s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`ArrayBuffer`,`ArrayBufferView`]})},s.converters.AllowSharedBufferSource=function(e,t,n,i){if(r.isArrayBuffer(e))return s.converters.ArrayBuffer(e,t,n,i);if(r.isSharedArrayBuffer(e))return s.converters.SharedArrayBuffer(e,t,n,i);if(r.isArrayBufferView(e))return i|=s.attributes.AllowShared,s.converters.ArrayBufferView(e,t,n,i);throw s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`ArrayBuffer`,`SharedArrayBuffer`,`ArrayBufferView`]})},s.converters[`sequence<ByteString>`]=s.sequenceConverter(s.converters.ByteString),s.converters[`sequence<sequence<ByteString>>`]=s.sequenceConverter(s.converters[`sequence<ByteString>`]),s.converters[`record<ByteString, ByteString>`]=s.recordConverter(s.converters.ByteString,s.converters.ByteString),s.converters.Blob=s.interfaceConverter(s.is.Blob,`Blob`),s.converters.AbortSignal=s.interfaceConverter(s.is.AbortSignal,`AbortSignal`),s.converters.EventHandlerNonNull=function(e){return s.util.Type(e)===8?typeof e==`function`?e:()=>{}:null},s.attributes={Clamp:1,EnforceRange:2,AllowShared:4,AllowResizable:8,LegacyNullToEmptyString:16},t.exports={webidl:s}})),j=e.c(((e,t)=>{let{Transform:n}=require(`node:stream`),r=require(`node:zlib`),{redirectStatusSet:i,referrerPolicyTokens:a,badPortsSet:o}=T(),{getGlobalOrigin:s}=E(),{collectAnHTTPQuotedString:c,parseMIMEType:l}=k(),{performance:u}=require(`node:perf_hooks`),{ReadableStreamFrom:d,isValidHTTPToken:f,normalizedMethodRecordsBase:p}=m(),h=require(`node:assert`),{isUint8Array:g}=require(`node:util/types`),{webidl:_}=A(),{isomorphicEncode:v,collectASequenceOfCodePoints:y,removeChars:b}=O();function x(e){let t=e.urlList,n=t.length;return n===0?null:t[n-1].toString()}function S(e,t){if(!i.has(e.status))return null;let n=e.headersList.get(`location`,!0);return n!==null&&F(n)&&(C(n)||(n=w(n)),n=new URL(n,x(e))),n&&!n.hash&&(n.hash=t),n}function C(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n>126||n<32)return!1}return!0}function w(e){return Buffer.from(e,`binary`).toString(`utf8`)}function D(e){return e.urlList[e.urlList.length-1]}function j(e){let t=D(e);return $(t)&&o.has(t.port)?`blocked`:`allowed`}function M(e){return e instanceof Error||e?.constructor?.name===`Error`||e?.constructor?.name===`DOMException`}function N(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(!(n===9||n>=32&&n<=126||n>=128&&n<=255))return!1}return!0}let P=f;function F(e){return(e[0]===` `||e[0]===` `||e[e.length-1]===` `||e[e.length-1]===` `||e.includes(`
|
|
2
|
-
`)||e.includes(`\r`)||e.includes(`\0`))===!1}function I(e){let t=(e.headersList.get(`referrer-policy`,!0)??``).split(`,`),n=``;if(t.length)for(let e=t.length;e!==0;e--){let r=t[e-1].trim();if(a.has(r)){n=r;break}}return n}function L(e,t){let n=I(t);n!==``&&(e.referrerPolicy=n)}function R(){return`allowed`}function z(){return`success`}function B(){return`success`}function V(e){if(!Y(D(e)))return;let t=null;t=e.mode,e.headersList.set(`sec-fetch-mode`,t,!0)}function ee(e){let t=e.origin;if(!(t===`client`||t===void 0)){if(e.responseTainting===`cors`||e.mode===`websocket`)e.headersList.append(`origin`,t,!0);else if(e.method!==`GET`&&e.method!==`HEAD`){switch(e.referrerPolicy){case`no-referrer`:t=null;break;case`no-referrer-when-downgrade`:case`strict-origin`:case`strict-origin-when-cross-origin`:e.origin&&he(e.origin)&&!he(D(e))&&(t=null);break;case`same-origin`:oe(e,D(e))||(t=null);break;default:}e.headersList.append(`origin`,t,!0)}}}function H(e,t){return e}function U(e,t,n){return!e?.startTime||e.startTime<t?{domainLookupStartTime:t,domainLookupEndTime:t,connectionStartTime:t,connectionEndTime:t,secureConnectionStartTime:t,ALPNNegotiatedProtocol:e?.ALPNNegotiatedProtocol}:{domainLookupStartTime:H(e.domainLookupStartTime,n),domainLookupEndTime:H(e.domainLookupEndTime,n),connectionStartTime:H(e.connectionStartTime,n),connectionEndTime:H(e.connectionEndTime,n),secureConnectionStartTime:H(e.secureConnectionStartTime,n),ALPNNegotiatedProtocol:e.ALPNNegotiatedProtocol}}function W(e){return H(u.now(),e)}function te(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function G(){return{referrerPolicy:`strict-origin-when-cross-origin`}}function ne(e){return{referrerPolicy:e.referrerPolicy}}function K(e){let t=e.referrerPolicy;h(t);let n=null;if(e.referrer===`client`){let e=s();if(!e||e.origin===`null`)return`no-referrer`;n=new URL(e)}else _.is.URL(e.referrer)&&(n=e.referrer);let r=re(n),i=re(n,!0);switch(r.toString().length>4096&&(r=i),t){case`no-referrer`:return`no-referrer`;case`origin`:return i??re(n,!0);case`unsafe-url`:return r;case`strict-origin`:{let t=D(e);return Y(r)&&!Y(t)?`no-referrer`:i}case`strict-origin-when-cross-origin`:{let t=D(e);return oe(r,t)?r:Y(r)&&!Y(t)?`no-referrer`:i}case`same-origin`:return oe(e,r)?r:`no-referrer`;case`origin-when-cross-origin`:return oe(e,r)?r:i;case`no-referrer-when-downgrade`:{let t=D(e);return Y(r)&&!Y(t)?`no-referrer`:r}}}function re(e,t=!1){return h(_.is.URL(e)),e=new URL(e),me(e)?`no-referrer`:(e.username=``,e.password=``,e.hash=``,t===!0&&(e.pathname=``,e.search=``),e)}let q=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)$/),ie=RegExp.prototype.test.bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/);function ae(e){return e.includes(`:`)?(e[0]===`[`&&e[e.length-1]===`]`&&(e=e.slice(1,-1)),ie(e)):q(e)}function J(e){return e==null||e===`null`?!1:(e=new URL(e),!!(e.protocol===`https:`||e.protocol===`wss:`||ae(e.hostname)||e.hostname===`localhost`||e.hostname===`localhost.`||e.hostname.endsWith(`.localhost`)||e.hostname.endsWith(`.localhost.`)||e.protocol===`file:`))}function Y(e){return _.is.URL(e)?e.href===`about:blank`||e.href===`about:srcdoc`||e.protocol===`data:`||e.protocol===`blob:`?!0:J(e.origin):!1}function X(e){}function oe(e,t){return e.origin===t.origin&&e.origin===`null`||e.protocol===t.protocol&&e.hostname===t.hostname&&e.port===t.port}function Z(e){return e.controller.state===`aborted`}function Q(e){return e.controller.state===`aborted`||e.controller.state===`terminated`}function se(e){return p[e.toLowerCase()]??e}let ce=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function le(e,t,n=0,r=1){class i{#e;#t;#n;constructor(e,t){this.#e=e,this.#t=t,this.#n=0}next(){if(typeof this!=`object`||this===null||!(#e in this))throw TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let i=this.#n,a=t(this.#e);if(i>=a.length)return{value:void 0,done:!0};let{[n]:o,[r]:s}=a[i];this.#n=i+1;let c;switch(this.#t){case`key`:c=o;break;case`value`:c=s;break;case`key+value`:c=[o,s];break}return{value:c,done:!1}}}return delete i.prototype.constructor,Object.setPrototypeOf(i.prototype,ce),Object.defineProperties(i.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(e,t){return new i(e,t)}}function ue(e,t,n,r=0,i=1){let a=le(e,n,r,i),o={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return _.brandCheck(this,t),a(this,`key`)}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return _.brandCheck(this,t),a(this,`value`)}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return _.brandCheck(this,t),a(this,`key+value`)}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(n,r=globalThis){if(_.brandCheck(this,t),_.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof n!=`function`)throw TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:e,1:t}of a(this,`key+value`))n.call(r,t,e,this)}}};return Object.defineProperties(t.prototype,{...o,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:o.entries.value}})}function de(e,t,n){let r=t,i=n;try{pe(e.stream.getReader(),r,i)}catch(e){i(e)}}function fe(e){try{e.close(),e.byobRequest?.respond(0)}catch(e){if(!e.message.includes(`Controller is already closed`)&&!e.message.includes(`ReadableStream is already closed`))throw e}}async function pe(e,t,n){try{let r=[],i=0;do{let{done:a,value:o}=await e.read();if(a){t(Buffer.concat(r,i));return}if(!g(o)){n(TypeError(`Received non-Uint8Array chunk`));return}r.push(o),i+=o.length}while(!0)}catch(e){n(e)}}function me(e){h(`protocol`in e);let t=e.protocol;return t===`about:`||t===`blob:`||t===`data:`}function he(e){return typeof e==`string`&&e[5]===`:`&&e[0]===`h`&&e[1]===`t`&&e[2]===`t`&&e[3]===`p`&&e[4]===`s`||e.protocol===`https:`}function $(e){h(`protocol`in e);let t=e.protocol;return t===`http:`||t===`https:`}function ge(e,t){let n=e;if(!n.startsWith(`bytes`))return`failure`;let r={position:5};if(t&&y(e=>e===` `||e===` `,n,r),n.charCodeAt(r.position)!==61)return`failure`;r.position++,t&&y(e=>e===` `||e===` `,n,r);let i=y(e=>{let t=e.charCodeAt(0);return t>=48&&t<=57},n,r),a=i.length?Number(i):null;if(t&&y(e=>e===` `||e===` `,n,r),n.charCodeAt(r.position)!==45)return`failure`;r.position++,t&&y(e=>e===` `||e===` `,n,r);let o=y(e=>{let t=e.charCodeAt(0);return t>=48&&t<=57},n,r),s=o.length?Number(o):null;return r.position<n.length||s===null&&a===null||a!==null&&s!==null&&a>s?`failure`:{rangeStartValue:a,rangeEndValue:s}}function _e(e,t,n){let r=`bytes `;return r+=v(`${e}`),r+=`-`,r+=v(`${t}`),r+=`/`,r+=v(`${n}`),r}var ve=class extends n{#e;constructor(e){super(),this.#e=e}_transform(e,t,n){if(!this._inflateStream){if(e.length===0){n();return}this._inflateStream=(e[0]&15)==8?r.createInflate(this.#e):r.createInflateRaw(this.#e),this._inflateStream.on(`data`,this.push.bind(this)),this._inflateStream.on(`end`,()=>this.push(null)),this._inflateStream.on(`error`,e=>this.destroy(e))}this._inflateStream.write(e,t,n)}_final(e){this._inflateStream&&=(this._inflateStream.end(),null),e()}};function ye(e){return new ve(e)}function be(e){let t=null,n=null,r=null,i=Se(`content-type`,e);if(i===null)return`failure`;for(let e of i){let i=l(e);i===`failure`||i.essence===`*/*`||(r=i,r.essence===n?!r.parameters.has(`charset`)&&t!==null&&r.parameters.set(`charset`,t):(t=null,r.parameters.has(`charset`)&&(t=r.parameters.get(`charset`)),n=r.essence))}return r??`failure`}function xe(e){let t=e,n={position:0},r=[],i=``;for(;n.position<t.length;){if(i+=y(e=>e!==`"`&&e!==`,`,t,n),n.position<t.length)if(t.charCodeAt(n.position)===34){if(i+=c(t,n),n.position<t.length)continue}else h(t.charCodeAt(n.position)===44),n.position++;i=b(i,!0,!0,e=>e===9||e===32),r.push(i),i=``}return r}function Se(e,t){let n=t.get(e,!0);return n===null?null:xe(n)}function Ce(e){return!1}function we(e){return!!(e.username||e.password)}function Te(e){return e!=null&&e!==`client`&&e!==`no-traversable`}var Ee=class{get baseUrl(){return s()}get origin(){return this.baseUrl?.origin}policyContainer=G()};t.exports={isAborted:Z,isCancelled:Q,isValidEncodedURL:C,ReadableStreamFrom:d,tryUpgradeRequestToAPotentiallyTrustworthyURL:X,clampAndCoarsenConnectionTimingInfo:U,coarsenedSharedCurrentTime:W,determineRequestsReferrer:K,makePolicyContainer:G,clonePolicyContainer:ne,appendFetchMetadata:V,appendRequestOriginHeader:ee,TAOCheck:B,corsCheck:z,crossOriginResourcePolicyCheck:R,createOpaqueTimingInfo:te,setRequestReferrerPolicyOnRedirect:L,isValidHTTPToken:f,requestBadPort:j,requestCurrentURL:D,responseURL:x,responseLocationURL:S,isURLPotentiallyTrustworthy:Y,isValidReasonPhrase:N,sameOrigin:oe,normalizeMethod:se,iteratorMixin:ue,createIterator:le,isValidHeaderName:P,isValidHeaderValue:F,isErrorLike:M,fullyReadBody:de,readableStreamClose:fe,urlIsLocal:me,urlHasHttpsScheme:he,urlIsHttpHttpsScheme:$,readAllBytes:pe,simpleRangeHeaderValue:ge,buildContentRange:_e,createInflate:ye,extractMimeType:be,getDecodeSplit:Se,environmentSettingsObject:new class{settingsObject=new Ee},isOriginIPPotentiallyTrustworthy:ae,hasAuthenticationEntry:Ce,includesCredentials:we,isTraversableNavigable:Te}})),M=e.c(((e,t)=>{let n={__proto__:null,"node:crypto":()=>require(`node:crypto`),"node:sqlite":()=>require(`node:sqlite`)};function r(e){try{return n[e](),!0}catch(e){if(e.code!==`ERR_UNKNOWN_BUILTIN_MODULE`&&e.code!==`ERR_NO_CRYPTO`)throw e;return!1}}let i=[`crypto`,`sqlite`];function a(e){if(i.includes(e))return r(`node:${e}`);throw TypeError(`unknown feature: ${e}`)}let o=new class{#e=new Map;clear(){this.#e.clear()}has(e){return this.#e.get(e)??this.#t(e)}set(e,t){if(i.includes(e)===!1)throw TypeError(`unknown feature: ${e}`);this.#e.set(e,t)}#t(e){let t=a(e);return this.#e.set(e,t),t}};t.exports.runtimeFeatures=o,t.exports.default=o})),N=e.c(((e,t)=>{let{iteratorMixin:n}=j(),{kEnumerableProperty:r}=m(),{webidl:i}=A(),a=require(`node:util`),{runtimeFeatures:o}=M(),s=o.has(`crypto`)?require(`node:crypto`).randomInt:e=>Math.floor(Math.random()*e);var c=class e{#e=[];#t=null;constructor(e=void 0){if(i.util.markAsUncloneable(this),e!==void 0)throw i.errors.conversionFailed({prefix:`FormData constructor`,argument:`Argument 1`,types:[`undefined`]})}append(t,n,r=void 0){i.brandCheck(this,e);let a=`FormData.append`;i.argumentLengthCheck(arguments,2,a),t=i.converters.USVString(t),arguments.length===3||i.is.Blob(n)?(n=i.converters.Blob(n,a,`value`),r!==void 0&&(r=i.converters.USVString(r))):n=i.converters.USVString(n);let o=f(t,n,r);this.#e.push(o)}delete(t){i.brandCheck(this,e),i.argumentLengthCheck(arguments,1,`FormData.delete`),t=i.converters.USVString(t),this.#e=this.#e.filter(e=>e.name!==t)}get(t){i.brandCheck(this,e),i.argumentLengthCheck(arguments,1,`FormData.get`),t=i.converters.USVString(t);let n=this.#e.findIndex(e=>e.name===t);return n===-1?null:this.#e[n].value}getAll(t){return i.brandCheck(this,e),i.argumentLengthCheck(arguments,1,`FormData.getAll`),t=i.converters.USVString(t),this.#e.filter(e=>e.name===t).map(e=>e.value)}has(t){return i.brandCheck(this,e),i.argumentLengthCheck(arguments,1,`FormData.has`),t=i.converters.USVString(t),this.#e.findIndex(e=>e.name===t)!==-1}set(t,n,r=void 0){i.brandCheck(this,e);let a=`FormData.set`;i.argumentLengthCheck(arguments,2,a),t=i.converters.USVString(t),arguments.length===3||i.is.Blob(n)?(n=i.converters.Blob(n,a,`value`),r!==void 0&&(r=i.converters.USVString(r))):n=i.converters.USVString(n);let o=f(t,n,r),s=this.#e.findIndex(e=>e.name===t);s===-1?this.#e.push(o):this.#e=[...this.#e.slice(0,s),o,...this.#e.slice(s+1).filter(e=>e.name!==t)]}[a.inspect.custom](e,t){let n=this.#e.reduce((e,t)=>(e[t.name]?Array.isArray(e[t.name])?e[t.name].push(t.value):e[t.name]=[e[t.name],t.value]:e[t.name]=t.value,e),{__proto__:null});t.depth??=e,t.colors??=!0;let r=a.formatWithOptions(t,n);return`FormData ${r.slice(r.indexOf(`]`)+2)}`}static getFormDataState(e){return e.#e}static setFormDataState(e,t){e.#e=t}static getFormDataBoundary(e){return e.#t??=`----formdata-undici-0${`${s(1e11)}`.padStart(11,`0`)}`}};let{getFormDataState:l,setFormDataState:u,getFormDataBoundary:d}=c;Reflect.deleteProperty(c,`getFormDataState`),Reflect.deleteProperty(c,`setFormDataState`),Reflect.deleteProperty(c,`getFormDataBoundary`),n(`FormData`,c,l,`name`,`value`),Object.defineProperties(c.prototype,{append:r,delete:r,get:r,getAll:r,has:r,set:r,[Symbol.toStringTag]:{value:`FormData`,configurable:!0}});function f(e,t,n){if(typeof t!=`string`&&(i.is.File(t)||(t=new File([t],`blob`,{type:t.type})),n!==void 0)){let e={type:t.type,lastModified:t.lastModified};t=new File([t],n,e)}return{name:e,value:t}}i.is.FormData=i.util.MakeTypeAssertion(c),t.exports={FormData:c,makeEntry:f,setFormDataState:u,getFormDataBoundary:d}})),P=e.c(((e,t)=>{let{bufferToLowerCasedHeaderName:n}=m(),{HTTP_TOKEN_CODEPOINTS:r}=k(),{makeEntry:i}=N(),{webidl:a}=A(),o=require(`node:assert`),{isomorphicDecode:s}=O(),c=Buffer.from(`--`),l=new TextDecoder,u=new TextDecoder(`utf-8`,{ignoreBOM:!0});function d(e){for(let t=0;t<e.length;++t)if(e.charCodeAt(t)&-128)return!1;return!0}function f(e){let t=e.length;if(t<27||t>70)return!1;for(let n=0;n<t;++n){let t=e.charCodeAt(n);if(!(t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||t===39||t===45||t===95))return!1}return!0}function p(e,t){o(t!==`failure`&&t.essence===`multipart/form-data`);let n=t.parameters.get(`boundary`);if(n===void 0)throw b(`missing boundary in content-type header`);let r=Buffer.from(`--${n}`,`utf8`),s=[],l={position:0},f=e.indexOf(r);if(f===-1)throw b(`no boundary found in multipart body`);for(l.position=f;;){if(e.subarray(l.position,l.position+r.length).equals(r))l.position+=r.length;else throw b(`expected a value starting with -- and the boundary`);if(y(e,c,l))return s;if(e[l.position]!==13||e[l.position+1]!==10)throw b(`expected CRLF`);l.position+=2;let{name:t,filename:n,contentType:f,encoding:p}=g(e,l);l.position+=2;let m;{let t=e.indexOf(r.subarray(2),l.position);if(t===-1)throw b(`expected boundary after body`);m=e.subarray(l.position,t-4),l.position+=m.length,p===`base64`&&(m=Buffer.from(m.toString(),`base64`))}if(e[l.position]!==13||e[l.position+1]!==10)throw b(`expected CRLF`);l.position+=2;let h;n===null?h=u.decode(Buffer.from(m)):(f??=`text/plain`,d(f)||(f=``),h=new File([m],n,{type:f})),o(a.is.USVString(t)),o(typeof h==`string`&&a.is.USVString(h)||a.is.File(h)),s.push(i(t,h,n))}}function h(e,t){e[t.position]===59&&t.position++,_(e=>e===32||e===9,e,t);let n=_(e=>C(e)&&e!==61&&e!==42,e,t);if(n.length===0)return null;let r=n.toString(`ascii`).toLowerCase(),i=e[t.position]===42;if(i&&t.position++,e[t.position]!==61)return null;t.position++,_(e=>e===32||e===9,e,t);let a;if(i){let n=_(e=>e!==32&&e!==13&&e!==10&&e!==59,e,t);if(n[0]!==117&&n[0]!==85||n[1]!==116&&n[1]!==84||n[2]!==102&&n[2]!==70||n[3]!==45||n[4]!==56)throw b(`unknown encoding, expected utf-8''`);a=decodeURIComponent(l.decode(n.subarray(7)))}else if(e[t.position]===34){t.position++;let n=_(e=>e!==10&&e!==13&&e!==34,e,t);if(e[t.position]!==34)throw b(`Closing quote not found`);t.position++,a=l.decode(n).replace(/%0A/gi,`
|
|
1
|
+
const e=require(`./formatter-AOdVjmxi.cjs`);let t=require(`chalk`);t=e.l(t);let n=require(`cac`);n=e.l(n);let r=require(`dns/promises`);r=e.l(r);let i=require(`dns`),a=require(`net`),o=require(`async_hooks`),s=require(`fs`),c=require(`path`);var l=e.c(((e,t)=>{t.exports={kClose:Symbol(`close`),kDestroy:Symbol(`destroy`),kDispatch:Symbol(`dispatch`),kUrl:Symbol(`url`),kRequestOrigin:Symbol(`request origin`),kOriginless:Symbol(`originless`),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`),kHTTP2Options:Symbol(`http2 options`),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`),kHostAuthority:Symbol(`host authority`),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`)}})),u=e.c(((e,t)=>{let n=0,r=1e3;(r>>1)-1;let i,a=Symbol(`kFastTimer`),o=[];function s(){n+=499;let e=0,t=o.length;for(;e<t;){let r=o[e];r._state===0?(r._idleStart=n-499,r._state=1):r._state===1&&n>=r._idleStart+r._idleTimeout&&(r._state=-1,r._idleStart=-1,r._onTimeout(r._timerArg)),r._state===-1?(r._state=-2,--t!==0&&(o[e]=o[t])):++e}o.length=t,o.length!==0&&c()}function c(){i?.refresh?i.refresh():(clearTimeout(i),i=setTimeout(s,499),i?.unref())}var l=class{[a]=!0;_state=-2;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(e,t,n){this._onTimeout=e,this._idleTimeout=t,this._timerArg=n,this.refresh()}refresh(){this._state===-2&&o.push(this),(!i||o.length===1)&&c(),this._state=0}clear(){this._state=-1,this._idleStart=-1}};t.exports={setTimeout(e,t,n){return t<=r?setTimeout(e,t,n):new l(e,t,n)},clearTimeout(e){e[a]?e.clear():clearTimeout(e)},setFastTimeout(e,t,n){return new l(e,t,n)},clearFastTimeout(e){e.clear()},now(){return n},tick(e=0){n+=e-r+1,s(),s()},reset(){n=0,o.length=0,clearTimeout(i),i=null},kFastTimer:a}})),d=e.c(((e,t)=>{let n=Symbol.for(`undici.error.UND_ERR`);var r=class extends Error{constructor(e,t){super(e,t),this.name=`UndiciError`,this.code=`UND_ERR`}static[Symbol.hasInstance](e){return e&&e[n]===!0}get[n](){return!0}};let i=Symbol.for(`undici.error.UND_ERR_CONNECT_TIMEOUT`);var a=class extends r{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[i]===!0}get[i](){return!0}};let o=Symbol.for(`undici.error.UND_ERR_HEADERS_TIMEOUT`);var s=class extends r{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[o]===!0}get[o](){return!0}};let c=Symbol.for(`undici.error.UND_ERR_HEADERS_OVERFLOW`);var l=class extends r{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[c]===!0}get[c](){return!0}};let u=Symbol.for(`undici.error.UND_ERR_BODY_TIMEOUT`);var d=class extends r{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[u]===!0}get[u](){return!0}};let f=Symbol.for(`undici.error.UND_ERR_INVALID_ARG`);var p=class extends r{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[f]===!0}get[f](){return!0}};let m=Symbol.for(`undici.error.UND_ERR_INVALID_RETURN_VALUE`);var h=class extends r{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[m]===!0}get[m](){return!0}};let g=Symbol.for(`undici.error.UND_ERR_ABORT`);var _=class extends r{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[g]===!0}get[g](){return!0}};let v=Symbol.for(`undici.error.UND_ERR_ABORTED`);var y=class extends _{constructor(e){super(e),this.name=`AbortError`,this.message=e||`Request aborted`,this.code=`UND_ERR_ABORTED`}static[Symbol.hasInstance](e){return e&&e[v]===!0}get[v](){return!0}};let b=Symbol.for(`undici.error.UND_ERR_INFO`);var x=class extends r{constructor(e,t){super(e,t),this.name=`InformationalError`,this.message=e||`Request information`,this.code=`UND_ERR_INFO`}static[Symbol.hasInstance](e){return e&&e[b]===!0}get[b](){return!0}};let S=Symbol.for(`undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH`);var C=class extends r{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[S]===!0}get[S](){return!0}};let w=Symbol.for(`undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH`);var T=class extends r{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[w]===!0}get[w](){return!0}};let E=Symbol.for(`undici.error.UND_ERR_DESTROYED`);var D=class extends r{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[E]===!0}get[E](){return!0}};let O=Symbol.for(`undici.error.UND_ERR_CLOSED`);var k=class extends r{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[O]===!0}get[O](){return!0}};let A=Symbol.for(`undici.error.UND_ERR_SOCKET`);var j=class extends r{constructor(e,t){super(e),this.name=`SocketError`,this.message=e||`Socket error`,this.code=`UND_ERR_SOCKET`,this.socket=t}static[Symbol.hasInstance](e){return e&&e[A]===!0}get[A](){return!0}};let M=Symbol.for(`undici.error.UND_ERR_NOT_SUPPORTED`);var N=class extends r{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[M]===!0}get[M](){return!0}};let P=Symbol.for(`undici.error.UND_ERR_BPL_MISSING_UPSTREAM`);var F=class extends r{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[P]===!0}get[P](){return!0}};let I=Symbol.for(`undici.error.UND_ERR_HTTP_PARSER`);var L=class extends Error{constructor(e,t,n){super(e),this.name=`HTTPParserError`,this.code=t?`HPE_${t}`:void 0,this.data=n?n.toString():void 0}static[Symbol.hasInstance](e){return e&&e[I]===!0}get[I](){return!0}};let R=Symbol.for(`undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE`);var z=class extends r{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[R]===!0}get[R](){return!0}};let B=Symbol.for(`undici.error.UND_ERR_REQ_RETRY`);var V=class extends r{constructor(e,t,{headers:n,data:r}){super(e),this.name=`RequestRetryError`,this.message=e||`Request retry error`,this.code=`UND_ERR_REQ_RETRY`,this.statusCode=t,this.data=r,this.headers=n}static[Symbol.hasInstance](e){return e&&e[B]===!0}get[B](){return!0}};let ee=Symbol.for(`undici.error.UND_ERR_RESPONSE`);var H=class extends r{constructor(e,t,{headers:n,body:r}){super(e),this.name=`ResponseError`,this.message=e||`Response error`,this.code=`UND_ERR_RESPONSE`,this.statusCode=t,this.body=r,this.headers=n}static[Symbol.hasInstance](e){return e&&e[ee]===!0}get[ee](){return!0}};let U=Symbol.for(`undici.error.UND_ERR_PRX_TLS`);var W=class extends r{constructor(e,t,n={}){super(t,{cause:e,...n}),this.name=`SecureProxyConnectionError`,this.message=t||`Secure Proxy Connection failed`,this.code=`UND_ERR_PRX_TLS`,this.cause=e}static[Symbol.hasInstance](e){return e&&e[U]===!0}get[U](){return!0}};let te=Symbol.for(`undici.error.UND_ERR_PRX_CONN`);var ne=class extends r{constructor(e,t,n={}){super(t,{cause:e,...n}),this.name=`ProxyConnectionError`,this.message=t||`Proxy Connection failed`,this.code=`UND_ERR_PRX_CONN`,this.cause=e}static[Symbol.hasInstance](e){return e&&e[te]===!0}get[te](){return!0}};let re=Symbol.for(`undici.error.UND_ERR_MAX_ORIGINS_REACHED`);var G=class extends r{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[re]===!0}get[re](){return!0}},ie=class extends r{constructor(e,t){super(e),this.name=`Socks5ProxyError`,this.message=e||`SOCKS5 proxy error`,this.code=t||`UND_ERR_SOCKS5`}};let K=Symbol.for(`undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED`);t.exports={AbortError:_,HTTPParserError:L,UndiciError:r,HeadersTimeoutError:s,HeadersOverflowError:l,BodyTimeoutError:d,RequestContentLengthMismatchError:C,ConnectTimeoutError:a,InvalidArgumentError:p,InvalidReturnValueError:h,RequestAbortedError:y,ClientDestroyedError:D,ClientClosedError:k,InformationalError:x,SocketError:j,NotSupportedError:N,ResponseContentLengthMismatchError:T,BalancedPoolMissingUpstreamError:F,ResponseExceededMaxSizeError:z,RequestRetryError:V,ResponseError:H,SecureProxyConnectionError:W,ProxyConnectionError:ne,MaxOriginsReachedError:G,Socks5ProxyError:ie,MessageSizeExceededError:class extends r{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[K]===!0}get[K](){return!0}}}})),f=e.c(((e,t)=>{let n=`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`.split(`.`),r={};Object.setPrototypeOf(r,null);for(let e=0;e<n.length;++e){let t=n[e],i=t.toLowerCase();r[t]=r[i]=i}t.exports={wellknownHeaderNames:n,headerNameLowerCasedRecord:r}})),p=e.c(((e,t)=>{let{wellknownHeaderNames:n,headerNameLowerCasedRecord:r}=f();var i=class e{value=null;left=null;middle=null;right=null;code;constructor(t,n,r){if(r===void 0||r>=t.length)throw TypeError(`Unreachable`);if((this.code=t.charCodeAt(r))>127)throw TypeError(`key must be ascii string`);t.length===++r?this.value=n:this.middle=new e(t,n,r)}add(t,n){let r=t.length;if(r===0)throw TypeError(`Unreachable`);let i=0,a=this;for(;;){let o=t.charCodeAt(i);if(o>127)throw TypeError(`key must be ascii string`);if(a.code===o)if(r===++i){a.value=n;break}else if(a.middle!==null)a=a.middle;else{a.middle=new e(t,n,i);break}else if(a.code<o)if(a.left!==null)a=a.left;else{a.left=new e(t,n,i);break}else if(a.right!==null)a=a.right;else{a.right=new e(t,n,i);break}}}search(e){let t=e.length,n=0,r=this;for(;r!==null&&n<t;){let i=e[n];for(i<=90&&i>=65&&(i|=32);r!==null;){if(i===r.code){if(t===++n)return r;r=r.middle;break}r=r.code<i?r.left:r.right}}return null}},a=class{node=null;insert(e,t){this.node===null?this.node=new i(e,t,0):this.node.add(e,t)}lookup(e){return this.node?.search(e)?.value??null}};let o=new a;for(let e=0;e<n.length;++e){let t=r[n[e]];o.insert(t,t)}t.exports={TernarySearchTree:a,tree:o}})),m=e.c(((e,t)=>{let n=require(`node:assert`),{kDestroyed:r,kBodyUsed:i,kListeners:a,kBody:o}=l(),{IncomingMessage:s}=require(`node:http`),c=require(`node:stream`),m=require(`node:net`),{stringify:h}=require(`node:querystring`),{EventEmitter:g,addAbortListener:_}=require(`node:events`),v=u(),{InvalidArgumentError:y,ConnectTimeoutError:b}=d(),{headerNameLowerCasedRecord:x}=f(),{tree:S}=p();var C=class{constructor(e){this[o]=e,this[i]=!1}async*[Symbol.asyncIterator](){n(!this[i],`disturbed`),this[i]=!0,yield*this[o]}};function w(){}function T(e){return E(e)?(B(e)===0&&e.on(`data`,function(){n(!1)}),typeof e.readableDidRead!=`boolean`&&(e[i]=!1,g.prototype.on.call(e,`data`,function(){this[i]=!0})),e):e&&typeof e.pipeTo==`function`?new C(e):e&&Y(e)?e:e&&typeof e!=`string`&&!ArrayBuffer.isView(e)&&R(e)?new C(e):e}function E(e){return e&&typeof e==`object`&&typeof e.pipe==`function`&&typeof e.on==`function`}function D(e){return e instanceof Blob}function O(e){return e.includes(`?`)||e.includes(`#`)}function k(e,t){if(O(e))throw Error(`Query params cannot be passed when url already contains "?" or "#".`);let n=h(t);return n&&(e+=`?`+n),e}function A(e){let t=parseInt(e,10);return t===Number(e)&&t>=0&&t<=65535}function j(e){return e!=null&&e[0]===`h`&&e[1]===`t`&&e[2]===`t`&&e[3]===`p`&&(e[4]===`:`||e[4]===`s`&&e[5]===`:`)}function M(e){if(typeof e==`string`){if(e=new URL(e),!j(e.origin||e.protocol))throw new y("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!=`object`)throw new y(`Invalid URL: The URL argument must be a non-null object.`);if(!(e instanceof URL)){if(e.port!=null&&e.port!==``&&A(e.port)===!1)throw new y(`Invalid URL: port must be a valid integer or a string representation of an integer.`);if(e.path!=null&&typeof e.path!=`string`)throw new y(`Invalid URL path: the path must be a string or null/undefined.`);if(e.pathname!=null&&typeof e.pathname!=`string`)throw new y(`Invalid URL pathname: the pathname must be a string or null/undefined.`);if(e.hostname!=null&&typeof e.hostname!=`string`)throw new y(`Invalid URL hostname: the hostname must be a string or null/undefined.`);if(e.origin!=null&&typeof e.origin!=`string`)throw new y(`Invalid URL origin: the origin must be a string or null/undefined.`);if(!j(e.origin||e.protocol))throw new y("Invalid URL protocol: the URL must start with `http:` or `https:`.");let t=e.port==null?e.protocol===`https:`?443:80:e.port,n=e.origin==null?`${e.protocol||``}//${e.hostname||``}:${t}`:e.origin,r=e.path==null?`${e.pathname||``}${e.search||``}`:e.path;return n[n.length-1]===`/`&&(n=n.slice(0,n.length-1)),r&&r[0]!==`/`&&(r=`/${r}`),new URL(`${n}${r}`)}if(!j(e.origin||e.protocol))throw new y("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function N(e){if(e=M(e),e.pathname!==`/`||e.search||e.hash)throw new y(`invalid url`);return e}function P(e){if(e[0]===`[`){let t=e.indexOf(`]`);return n(t!==-1),e.substring(1,t)}let t=e.indexOf(`:`);return t===-1?e:e.substring(0,t)}function F(e){if(!e)return null;n(typeof e==`string`);let t=P(e);return m.isIP(t)?``:t}function I(e){return JSON.parse(JSON.stringify(e))}function L(e){return e!=null&&typeof e[Symbol.asyncIterator]==`function`}function R(e){return e!=null&&(typeof e[Symbol.iterator]==`function`||typeof e[Symbol.asyncIterator]==`function`)}function z(e){let t=Object.getPrototypeOf(e);return Object.hasOwn(e,Symbol.iterator)||t!=null&&t!==Object.prototype&&typeof e[Symbol.iterator]==`function`}function B(e){if(e==null)return 0;if(E(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}else if(D(e))return e.size==null?null:e.size;else if(K(e))return e.byteLength;return null}function V(e){return e&&!!(e.destroyed||e[r]||c.isDestroyed?.(e))}function ee(e,t){if(!(e==null||!E(e)||V(e))){if(typeof e.destroy==`function`){Object.getPrototypeOf(e).constructor===s&&(e.socket=null);try{e.destroy(t)}catch{}}else t&&queueMicrotask(()=>{e.emit(`error`,t)});e.destroyed!==!0&&(e[r]=!0)}}let H=/timeout=(\d+)/;function U(e){let t=e.match(H);return t?parseInt(t[1],10)*1e3:null}function W(e){return typeof e==`string`?x[e]??e.toLowerCase():S.lookup(e)??e.toString(`latin1`).toLowerCase()}function te(e){return S.lookup(e)??e.toString(`latin1`).toLowerCase()}function ne(e,t){t===void 0&&(t={});for(let n=0;n<e.length;n+=2){let r=W(e[n]),i=t[r];if(i!==void 0)if(Object.hasOwn(t,r))typeof i==`string`&&(i=[i],t[r]=i),i.push(e[n+1].toString(`latin1`));else{let i=typeof e[n+1]==`string`?e[n+1]:Array.isArray(e[n+1])?e[n+1].map(e=>e.toString(`latin1`)):e[n+1].toString(`latin1`);r===`__proto__`?Object.defineProperty(t,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[r]=i}else{let i=typeof e[n+1]==`string`?e[n+1]:Array.isArray(e[n+1])?e[n+1].map(e=>e.toString(`latin1`)):e[n+1].toString(`latin1`);t[r]=i}}return t}function re(e){if(e==null)return[];if(!Array.isArray(e)){let t=[];for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.push(n,`${e}`);else t.push(n,`${r}`);return t}let t=e.length,n=Array(t),r,i;for(let a=0;a<t;a+=2)r=e[a],i=e[a+1],typeof r!=`string`&&(r=r.toString()),typeof i!=`string`&&(i=i.toString(`latin1`)),n[a]=r,n[a+1]=i;return n}function G(e){let t=[];for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.push(Buffer.from(n,`latin1`),Buffer.from(`${e}`,`latin1`));else t.push(Buffer.from(n,`latin1`),Buffer.from(`${r}`,`latin1`));return t}function ie(e){if(!Array.isArray(e))throw TypeError(`expected headers to be an array`);return e.map(e=>Buffer.from(e))}function K(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function ae(e,t,n){if(!e||typeof e!=`object`)throw new y(`handler must be an object`);if(typeof e.onRequestStart!=`function`)throw new y(`invalid onRequestStart method`);if(typeof e.onResponseError!=`function`)throw new y(`invalid onResponseError method`);if(typeof e.onBodySent!=`function`&&e.onBodySent!==void 0)throw new y(`invalid onBodySent method`);if(typeof e.onRequestSent!=`function`&&e.onRequestSent!==void 0)throw new y(`invalid onRequestSent method`);if(n||t===`CONNECT`){if(typeof e.onRequestUpgrade!=`function`)throw new y(`invalid onRequestUpgrade method`)}else{if(typeof e.onResponseStart!=`function`)throw new y(`invalid onResponseStart method`);if(typeof e.onResponseData!=`function`)throw new y(`invalid onResponseData method`);if(typeof e.onResponseEnd!=`function`)throw new y(`invalid onResponseEnd method`)}}function oe(e){return!!(e&&(c.isDisturbed(e)||e[i]))}function q(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}function J(e){let t;return new ReadableStream({start(){t=e[Symbol.asyncIterator]()},pull(e){return t.next().then(({done:t,value:n})=>{if(t)return queueMicrotask(()=>{e.close(),e.byobRequest?.respond(0)});{let t=Buffer.isBuffer(n)?n:Buffer.from(n);return t.byteLength?e.enqueue(new Uint8Array(t)):this.pull(e)}})},cancel(){return t.return()},type:`bytes`})}function Y(e){return e&&typeof e==`object`&&typeof e.append==`function`&&typeof e.delete==`function`&&typeof e.get==`function`&&typeof e.getAll==`function`&&typeof e.has==`function`&&typeof e.set==`function`&&e[Symbol.toStringTag]===`FormData`}function se(e,t){return!e||`aborted`in e?_(e,t)[Symbol.dispose]:typeof e.addEventListener==`function`?(e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)):(e.once(`abort`,t),()=>e.removeListener(`abort`,t))}let X=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 Z(e){return X[e]===1}let ce=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;function le(e){if(e.length>=12)return ce.test(e);if(e.length===0)return!1;for(let t=0;t<e.length;t++)if(X[e.charCodeAt(t)]!==1)return!1;return!0}let Q=/[^\t\x20-\x7e\x80-\xff]/;function ue(e){return!Q.test(e)}let de=/^bytes (\d+)-(\d+)\/(\d+|\*)?$/;function fe(e){if(e==null||e===``)return{start:0,end:null,size:null};if(!e)return null;let t=de.exec(e);return t?{start:parseInt(t[1]),end:t[2]?parseInt(t[2]):null,size:t[3]&&t[3]!==`*`?parseInt(t[3]):null}:null}function pe(e,t,n){return(e[a]??=[]).push([t,n]),e.on(t,n),e}function me(e){if(e[a]!=null){for(let[t,n]of e[a])e.removeListener(t,n);e[a]=null}return e}function he(e,t,r){try{t.onResponseError(r),n(t.aborted)}catch(t){e.emit(`error`,t)}}let $=process.platform===`win32`?(e,t)=>{if(!t.timeout)return w;let n=null,r=null,i=v.setFastTimeout(()=>{n=setImmediate(()=>{r=setImmediate(()=>ge(e.deref(),t))})},t.timeout);return()=>{v.clearFastTimeout(i),clearImmediate(n),clearImmediate(r)}}:(e,t)=>{if(!t.timeout)return w;let n=null,r=v.setFastTimeout(()=>{n=setImmediate(()=>{ge(e.deref(),t)})},t.timeout);return()=>{v.clearFastTimeout(r),clearImmediate(n)}};function ge(e,t){if(e==null)return;let n=`Connect Timeout Error`;Array.isArray(e.autoSelectFamilyAttemptedAddresses)?n+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(`, `)},`:n+=` (attempted address: ${t.hostname}:${t.port},`,n+=` timeout: ${t.timeout}ms)`,ee(e,new b(n))}let _e=null,ve=null;function ye(e){if(e===_e)return ve;let t=be(e);return _e=e,ve=t,t}function be(e){if(e[0]===`h`&&e[1]===`t`&&e[2]===`t`&&e[3]===`p`)switch(e[4]){case`:`:return`http:`;case`s`:if(e[5]===`:`)return`https:`}return e.slice(0,e.indexOf(`:`)+1)}let xe={__proto__:null,enumerable:!0},Se={delete:`DELETE`,DELETE:`DELETE`,get:`GET`,GET:`GET`,head:`HEAD`,HEAD:`HEAD`,options:`OPTIONS`,OPTIONS:`OPTIONS`,post:`POST`,POST:`POST`,put:`PUT`,PUT:`PUT`,query:`QUERY`,QUERY:`QUERY`},Ce={...Se,patch:`patch`,PATCH:`PATCH`};Object.setPrototypeOf(Se,null),Object.setPrototypeOf(Ce,null),t.exports={kEnumerableProperty:xe,isDisturbed:oe,isBlobLike:D,parseOrigin:N,parseURL:M,getServerName:F,isStream:E,isIterable:R,hasSafeIterator:z,isAsyncIterable:L,isDestroyed:V,headerNameToString:W,bufferToLowerCasedHeaderName:te,addListener:pe,removeAllListeners:me,errorRequest:he,parseRawHeaders:re,toRawHeaders:G,encodeRawHeaders:ie,parseHeaders:ne,parseKeepAliveTimeout:U,destroy:ee,bodyLength:B,deepClone:I,ReadableStreamFrom:J,isBuffer:K,assertRequestHandler:ae,getSocketInfo:q,isFormDataLike:Y,pathHasQueryOrFragment:O,serializePathWithQuery:k,addAbortListener:se,isValidHTTPToken:le,isValidHeaderValue:ue,isTokenCharCode:Z,parseRangeHeader:fe,normalizedMethodRecordsBase:Se,normalizedMethodRecords:Ce,isValidPort:A,isHttpOrHttpsPrefixed:j,safeHTTPMethods:Object.freeze([`GET`,`HEAD`,`OPTIONS`,`TRACE`]),wrapRequestBody:T,setupConnectTimeout:$,getProtocolFromUrlString:ye}})),h=e.c(((e,t)=>{let{kConnected:n,kPending:r,kRunning:i,kSize:a,kFree:o,kQueued:s}=l();t.exports={ClientStats:class{constructor(e){this.connected=e[n],this.pending=e[r],this.running=e[i],this.size=e[a]}},PoolStats:class{constructor(e){this.connected=e[n],this.free=e[o],this.pending=e[r],this.queued=e[s],this.running=e[i],this.size=e[a]}}}})),g=e.c(((e,t)=>{let n=require(`node:diagnostics_channel`),r=require(`node:util`),i=r.debuglog(`undici`),a=r.debuglog(`fetch`),o=r.debuglog(`websocket`),s={beforeConnect:n.channel(`undici:client:beforeConnect`),connected:n.channel(`undici:client:connected`),connectError:n.channel(`undici:client:connectError`),sendHeaders:n.channel(`undici:client:sendHeaders`),create:n.channel(`undici:request:create`),bodySent:n.channel(`undici:request:bodySent`),bodyChunkSent:n.channel(`undici:request:bodyChunkSent`),bodyChunkReceived:n.channel(`undici:request:bodyChunkReceived`),headers:n.channel(`undici:request:headers`),trailers:n.channel(`undici:request:trailers`),error:n.channel(`undici:request:error`),open:n.channel(`undici:websocket:open`),close:n.channel(`undici:websocket:close`),socketError:n.channel(`undici:websocket:socket_error`),ping:n.channel(`undici:websocket:ping`),pong:n.channel(`undici:websocket:pong`),proxyConnected:n.channel(`undici:proxy:connected`)},c=!1;function l(e=i){if(!c){if(s.beforeConnect.hasSubscribers||s.connected.hasSubscribers||s.connectError.hasSubscribers||s.sendHeaders.hasSubscribers){c=!0;return}c=!0,n.subscribe(`undici:client:beforeConnect`,t=>{let{connectParams:{version:n,protocol:r,port:i,host:a}}=t;e(`connecting to %s%s using %s%s`,a,i?`:${i}`:``,r,n)}),n.subscribe(`undici:client:connected`,t=>{let{connectParams:{version:n,protocol:r,port:i,host:a}}=t;e(`connected to %s%s using %s%s`,a,i?`:${i}`:``,r,n)}),n.subscribe(`undici:client:connectError`,t=>{let{connectParams:{version:n,protocol:r,port:i,host:a},error:o}=t;e(`connection to %s%s using %s%s errored - %s`,a,i?`:${i}`:``,r,n,o.message)}),n.subscribe(`undici:client:sendHeaders`,t=>{let{request:{method:n,path:r,origin:i}}=t;e(`sending request to %s %s%s`,n,i,r)})}}let u=!1;function d(e=i){if(!u){if(s.headers.hasSubscribers||s.trailers.hasSubscribers||s.error.hasSubscribers){u=!0;return}u=!0,n.subscribe(`undici:request:headers`,t=>{let{request:{method:n,path:r,origin:i},response:{statusCode:a}}=t;e(`received response to %s %s%s - HTTP %d`,n,i,r,a)}),n.subscribe(`undici:request:trailers`,t=>{let{request:{method:n,path:r,origin:i}}=t;e(`trailers received from %s %s%s`,n,i,r)}),n.subscribe(`undici:request:error`,t=>{let{request:{method:n,path:r,origin:i},error:a}=t;e(`request to %s %s%s errored - %s`,n,i,r,a.message)})}}let f=!1;function p(e=o){if(!f){if(s.open.hasSubscribers||s.close.hasSubscribers||s.socketError.hasSubscribers||s.ping.hasSubscribers||s.pong.hasSubscribers){f=!0;return}f=!0,n.subscribe(`undici:websocket:open`,t=>{if(t.address!=null){let{address:n,port:r}=t.address;e(`connection opened %s%s`,n,r?`:${r}`:``)}else e(`connection opened`)}),n.subscribe(`undici:websocket:close`,t=>{let{websocket:n,code:r,reason:i}=t;e(`closed connection to %s - %s %s`,n.url,r,i)}),n.subscribe(`undici:websocket:socket_error`,t=>{e(`connection errored - %s`,t.message)}),n.subscribe(`undici:websocket:ping`,t=>{e(`ping received`)}),n.subscribe(`undici:websocket:pong`,t=>{e(`pong received`)})}}(i.enabled||a.enabled)&&(l(a.enabled?a:i),d(a.enabled?a:i)),o.enabled&&(l(i.enabled?i:o),p(o)),t.exports={channels:s}})),_=e.c(((e,t)=>{let{InvalidArgumentError:n,NotSupportedError:r}=d(),i=require(`node:assert`),{isValidHTTPToken:a,isValidHeaderValue:o,isStream:s,destroy:c,isBuffer:l,isFormDataLike:u,isIterable:p,hasSafeIterator:h,isBlobLike:_,serializePathWithQuery:v,parseHeaders:y,assertRequestHandler:b,getServerName:x,normalizedMethodRecords:S,getProtocolFromUrlString:C}=m(),{channels:w}=g(),{headerNameLowerCasedRecord:T}=f(),E=/[^\u0021-\u00ff]/;function D(e){if(typeof e!=`string`||e.length===0)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return!0}let O=Symbol(`handler`),k=Symbol(`controller`),A=Symbol(`resume`);var j=class{#e=!1;#t=null;#n=!1;#r;[A]=null;rawHeaders=null;rawTrailers=null;constructor(e){this.#r=e}pause(){this.#e=!0}resume(){this.#e&&(this.#e=!1,this[A]?.())}abort(e){this.#n||(this.#n=!0,this.#t=e,this.#r(e))}get aborted(){return this.#n}get reason(){return this.#t}get paused(){return this.#e}},M=class{constructor(e,{path:t,method:r,body:i,headers:d,query:f,idempotent:m,blocking:g,upgrade:y,headersTimeout:T,bodyTimeout:D,reset:k,expectContinue:A,servername:j,throwOnError:M,maxRedirections:P,typeOfService:F},I){if(typeof t!=`string`)throw new n(`path must be a string`);if(t[0]!==`/`&&!(t.startsWith(`http://`)||t.startsWith(`https://`))&&r!==`CONNECT`)throw new n(`path must be an absolute URL or start with a slash`);if(E.test(t))throw new n(`invalid request path`);if(typeof r!=`string`)throw new n(`method must be a string`);if(S[r]===void 0&&!a(r))throw new n(`invalid request method`);if(y&&typeof y!=`string`)throw new n(`upgrade must be a string`);if(y&&!o(y))throw new n(`invalid upgrade header`);if(T!=null&&(!Number.isFinite(T)||T<0))throw new n(`invalid headersTimeout`);if(D!=null&&(!Number.isFinite(D)||D<0))throw new n(`invalid bodyTimeout`);if(k!=null&&typeof k!=`boolean`)throw new n(`invalid reset`);if(A!=null&&typeof A!=`boolean`)throw new n(`invalid expectContinue`);if(M!=null)throw new n(`invalid throwOnError`);if(P!=null&&P!==0)throw new n(`maxRedirections is not supported, use the redirect interceptor`);if(F!=null&&(!Number.isInteger(F)||F<0||F>255))throw new n(`typeOfService must be an integer between 0 and 255`);if(this.headersTimeout=T,this.bodyTimeout=D,this.method=r,this.typeOfService=F,this.abort=null,i==null)this.body=null;else if(s(i)){this.body=i;let e=this.body._readableState;(!e||!e.autoDestroy)&&(this.endHandler=function(){c(this)},this.body.on(`end`,this.endHandler)),this.errorHandler=e=>{this.abort?this.abort(e):this.error=e},this.body.on(`error`,this.errorHandler)}else if(l(i))this.body=i.byteLength?i:null;else if(ArrayBuffer.isView(i))this.body=i.buffer.byteLength?Buffer.from(i.buffer,i.byteOffset,i.byteLength):null;else if(i instanceof ArrayBuffer)this.body=i.byteLength?Buffer.from(i):null;else if(typeof i==`string`)this.body=i.length?Buffer.from(i):null;else if(u(i)||p(i)||_(i))this.body=i;else throw new n(`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=y||null,this.path=f?v(t,f):t,this.origin=e,this.protocol=C(e),this.idempotent=m??(r===`HEAD`||r===`GET`||r===`QUERY`),this.blocking=g??this.method!==`HEAD`,this.reset=k??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=A??!1,Array.isArray(d)){if(d.length%2!=0)throw new n(`headers array must be even`);for(let e=0;e<d.length;e+=2)N(this,d[e],d[e+1])}else if(d&&typeof d==`object`)if(h(d))for(let e of d){if(!Array.isArray(e)||e.length!==2)throw new n(`headers must be in key-value pair format`);N(this,e[0],e[1])}else{let e=Object.keys(d);for(let t=0;t<e.length;++t)N(this,e[t],d[e[t]])}else if(d!=null)throw new n(`headers must be an object or an array`);b(I,r,y),this.servername=j||x(this.host)||null,this[O]=I,w.create.hasSubscribers&&w.create.publish({request:this})}onBodySent(e){if(w.bodyChunkSent.hasSubscribers&&w.bodyChunkSent.publish({request:this,chunk:e}),this[O].onBodySent)try{return this[O].onBodySent(e)}catch(e){this.abort(e)}}onRequestSent(){if(w.bodySent.hasSubscribers&&w.bodySent.publish({request:this}),this[O].onRequestSent)try{return this[O].onRequestSent()}catch(e){this.abort(e)}}onRequestStart(e,t){if(i(!this.aborted),i(!this.completed),this[k]=new j(e),this.error){this[k].abort(this.error);return}return this.abort=e,this[O].onRequestStart(this[k],t)}onResponseStarted(){return this[O].onResponseStarted?.()}onResponseStart(e,t,n,r){i(!this.aborted),i(!this.completed),w.headers.hasSubscribers&&w.headers.publish({request:this,response:{statusCode:e,headers:t,statusText:r}});let a=this[k];a&&(a[A]=n,a.rawHeaders=t);let o=Array.isArray(t)?y(t):t;try{return this[O].onResponseStart?.(a,e,o,r),!a?.paused}catch(e){return this.abort(e),!1}}onResponseData(e){i(!this.aborted),i(!this.completed),w.bodyChunkReceived.hasSubscribers&&w.bodyChunkReceived.publish({request:this,chunk:e});let t=this[k];try{return this[O].onResponseData?.(t,e),!t?.paused}catch(e){return this.abort(e),!1}}onRequestUpgrade(e,t,n){i(!this.aborted),i(!this.completed);let r=this[k];r&&(r.rawHeaders=t);let a=Array.isArray(t)?y(t):t;return this[O].onRequestUpgrade?.(r,e,a,n)}onResponseEnd(e){this.onFinally(),i(!this.aborted),i(!this.completed),this.completed=!0,w.trailers.hasSubscribers&&w.trailers.publish({request:this,trailers:e});let t=this[k];t&&(t.rawTrailers=e);let n=Array.isArray(e)?y(e):e;try{return this[O].onResponseEnd?.(t,n)}catch(e){this.onResponseError(e)}}onResponseError(e){if(this.onFinally(),w.error.hasSubscribers&&w.error.publish({request:this,error:e}),this.aborted)return;this.aborted=!0;let t=this[k];return this[O].onResponseError?.(t,e)}onFinally(){this.errorHandler&&=(this.body.off(`error`,this.errorHandler),null),this.endHandler&&=(this.body.off(`end`,this.endHandler),null)}addHeader(e,t){return N(this,e,t),this}};function N(e,t,i){if(i&&typeof i==`object`&&!Array.isArray(i))throw new n(`invalid ${t} header`);if(i===void 0)return;let s=T[t];if(s===void 0&&(s=t.toLowerCase(),T[s]===void 0&&!a(s)))throw new n(`invalid header key`);if(Array.isArray(i)){let e=[];for(let r=0;r<i.length;r++)if(typeof i[r]==`string`){if(!o(i[r]))throw new n(`invalid ${t} header`);e.push(i[r])}else if(i[r]===null)e.push(``);else if(typeof i[r]==`object`)throw new n(`invalid ${t} header`);else{let a=`${i[r]}`;if(!o(a))throw new n(`invalid ${t} header`);e.push(a)}i=e}else if(typeof i==`string`){if(!o(i))throw new n(`invalid ${t} header`)}else if(i===null)i=``;else if(i=`${i}`,!o(i))throw new n(`invalid ${t} header`);if(s===`host`){if(e.host!==null)throw new n(`duplicate host header`);if(typeof i!=`string`)throw new n(`invalid host header`);e.host=i}else if(s===`content-length`){if(e.contentLength!==null)throw new n(`duplicate content-length header`);if(!D(i))throw new n(`invalid content-length header`);e.contentLength=parseInt(i,10)}else if(e.contentType===null&&s===`content-type`)e.contentType=i,e.headers.push(t,i);else if(s===`transfer-encoding`||s===`keep-alive`||s===`upgrade`)throw new n(`invalid ${s} header`);else if(s===`connection`){let t=typeof i==`string`?i:null;if(t===null)throw new n(`invalid connection header`);for(let r of t.toLowerCase().split(`,`)){let t=r.trim();if(!a(t))throw new n(`invalid connection header`);t===`close`&&(e.reset=!0)}}else if(s===`expect`)throw new r(`expect header not supported`);else e.headers.push(t,i)}t.exports=M})),v=e.c(((e,t)=>{let n=require(`node:events`),{kOriginless:r,kUrl:i}=l();t.exports=class extends n{dispatch(){throw Error(`not implemented`)}close(){throw Error(`not implemented`)}destroy(){throw Error(`not implemented`)}compose(...e){let t=Array.isArray(e[0])?e[0]:e,n=this[r]===!0?null:this[i]?.origin,a=this.dispatch.bind(this);for(let e of t)if(e!=null){if(typeof e!=`function`)throw TypeError(`invalid interceptor, expected function received ${typeof e}`);if(a=e(a,n),a==null||typeof a!=`function`||a.length!==2)throw TypeError(`invalid interceptor`)}let o=a,s=this;return a=function(e,t){return e&&typeof e==`object`&&!e.origin&&s[i]&&(e=Object.assign({},e,{origin:s[i].origin})),o(e,t)},new Proxy(this,{get:(e,t)=>t===`dispatch`?a:e[t]})}}})),y=e.c(((e,t)=>{let n=require(`node:buffer`),r=v(),{ClientDestroyedError:i,ClientClosedError:a,InvalidArgumentError:o}=d(),{kDestroy:s,kClose:c,kClosed:u,kDestroyed:f,kDispatch:p}=l(),m=Symbol(`onDestroyed`),h=Symbol(`onClosed`),g=Symbol(`webSocketOptions`),_=Symbol(`eventSourceOptions`);t.exports=class extends r{[f]=!1;[m]=null;[u]=!1;[h]=null;constructor(e){super(),this[g]=e?.webSocket??{},this[_]=e?.eventSource??{}}get webSocketOptions(){return{maxFragments:this[g].maxFragments??131072,maxPayloadSize:this[g].maxPayloadSize??128*1024*1024}}get eventSourceOptions(){return{maxEventSize:this[_].maxEventSize??n.kStringMaxLength}}get destroyed(){return this[f]}get closed(){return this[u]}close(e){if(e===void 0)return new Promise((e,t)=>{this.close((n,r)=>n?t(n):e(r))});if(typeof e!=`function`)throw new o(`invalid callback`);if(this[f]){let t=new i;queueMicrotask(()=>e(t,null));return}if(this[u]){this[h]?this[h].push(e):queueMicrotask(()=>e(null,null));return}this[u]=!0,this[h]??=[],this[h].push(e);let t=()=>{let e=this[h];this[h]=null;for(let t=0;t<e.length;t++)e[t](null,null)};this[c]().then(()=>this.destroy()).then(()=>queueMicrotask(t))}destroy(e,t){if(typeof e==`function`&&(t=e,e=null),t===void 0)return new Promise((t,n)=>{this.destroy(e,(e,r)=>e?n(e):t(r))});if(typeof t!=`function`)throw new o(`invalid callback`);if(this[f]){this[m]?this[m].push(t):queueMicrotask(()=>t(null,null));return}e||=new i,this[f]=!0,this[m]??=[],this[m].push(t);let n=()=>{let e=this[m];this[m]=null;for(let t=0;t<e.length;t++)e[t](null,null)};this[s](e).then(()=>queueMicrotask(n))}dispatch(e,t){if(!t||typeof t!=`object`)throw new o(`handler must be an object`);try{if(!e||typeof e!=`object`)throw new o(`opts must be an object.`);if(e.dispatcher)throw new o(`opts.dispatcher is not supported by instance methods. Pass opts.dispatcher to the top-level undici functions or call the dispatcher instance method directly.`);if(this[f]||this[m])throw new i;if(this[u])throw new a;return this[p](e,t)}catch(e){if(typeof t.onResponseError!=`function`)throw e;return t.onResponseError(null,e),!1}}}})),b=e.c(((e,t)=>{let n=require(`node:net`),r=require(`node:assert`),i=m(),{InvalidArgumentError:a,ConnectTimeoutError:o}=d(),s,c=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map,this._sessionRegistry=new FinalizationRegistry(e=>{if(this._sessionCache.size<this._maxCachedSessions)return;let t=this._sessionCache.get(e);t!==void 0&&t.deref()===void 0&&this._sessionCache.delete(e)})}get(e){let t=this._sessionCache.get(e);return t?t.deref():null}set(e,t){if(this._maxCachedSessions!==0){if(this._sessionCache.has(e))this._sessionCache.delete(e);else if(this._sessionCache.size>=this._maxCachedSessions){for(let[e,t]of this._sessionCache)if(t.deref()===void 0){this._sessionCache.delete(e);return}let e=this._sessionCache.keys().next();e.done||this._sessionCache.delete(e.value)}this._sessionCache.set(e,new WeakRef(t)),this._sessionRegistry.register(t,e)}}};function l({allowH2:e,preferH2:t,useH2c:o,maxCachedSessions:l,socketPath:d,timeout:f,session:p,...m}){if(l!=null&&(!Number.isInteger(l)||l<0))throw new a(`maxCachedSessions must be a positive integer or zero`);let h={path:d,...m},g=new c(l??100);return f??=1e4,e??=!0,function({hostname:a,host:c,protocol:l,port:d,servername:m,localAddress:_,httpSocket:v},y){let b;if(l===`https:`){s||=require(`node:tls`),m=m||h.servername||i.getServerName(c)||null;let n=m||a;r(n);let o=p||g.get(n)||null;d||=443,b=s.connect({highWaterMark:16384,...h,servername:m,session:o,localAddress:_,ALPNProtocols:e?t?[`h2`,`http/1.1`]:[`http/1.1`,`h2`]:[`http/1.1`],socket:v,port:d,host:a}),b.on(`session`,function(e){g.set(n,e)})}else{r(!v,`httpSocket can only be sent on TLS update`),d||=80;let e={highWaterMark:64*1024,...h,localAddress:_,port:d,host:a},t=n.isIP(a);t!==0&&m&&m!==a&&(e.host=m,e.lookup=(e,n,r)=>{n.all?r(null,[{address:a,family:t}]):r(null,a,t)}),b=n.connect(e),o===!0&&(b.alpnProtocol=`h2`)}if(h.keepAlive==null||h.keepAlive){let e=h.keepAliveInitialDelay===void 0?6e4:h.keepAliveInitialDelay;b.setKeepAlive(!0,e)}let x=i.setupConnectTimeout(new WeakRef(b),{timeout:f,hostname:a,port:d});return b.setNoDelay(!0).once(l===`https:`?`secureConnect`:`connect`,function(){if(queueMicrotask(x),y){let e=y;y=null,e(null,this)}}).on(`error`,function(e){if(queueMicrotask(x),y){let t=y;y=null,t(u(e,this,{timeout:f,hostname:a,port:d}))}}),b}}function u(e,t,n){if(e instanceof AggregateError&&(e.code===`ETIMEDOUT`||e.errors.some(e=>e!=null&&e.code===`ETIMEDOUT`))){let r=`Connect Timeout Error`;Array.isArray(t.autoSelectFamilyAttemptedAddresses)?r+=` (attempted addresses: ${t.autoSelectFamilyAttemptedAddresses.join(`, `)},`:r+=` (attempted address: ${n.hostname}:${n.port},`,r+=` timeout: ${n.timeout}ms)`;let i=new o(r);return i.cause=e,i}return e}t.exports=l})),x=e.c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.enumToMap=t;function t(e,t=[],n=[]){let r=(t?.length??0)===0,i=(n?.length??0)===0;return Object.fromEntries(Object.entries(e).filter(([,e])=>typeof e==`number`&&(r||t.includes(e))&&(i||!n.includes(e))))}})),S=e.c((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.SPECIAL_HEADERS=e.MINOR=e.MAJOR=e.HTAB_SP_VCHAR_OBS_TEXT=e.QUOTED_STRING=e.CONNECTION_TOKEN_CHARS=e.HEADER_CHARS=e.TOKEN=e.HEX=e.URL_CHAR=e.USERINFO_CHARS=e.MARK=e.ALPHANUM=e.NUM=e.HEX_MAP=e.NUM_MAP=e.ALPHA=e.STATUSES_HTTP=e.H_METHOD_MAP=e.METHOD_MAP=e.METHODS_RTSP=e.METHODS_ICE=e.METHODS_HTTP=e.HEADER_STATE=e.FINISH=e.STATUSES=e.METHODS=e.LENIENT_FLAGS=e.FLAGS=e.TYPE=e.ERROR=void 0;let t=x();e.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},e.TYPE={BOTH:0,REQUEST:1,RESPONSE:2},e.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},e.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},e.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},e.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},e.FINISH={SAFE:0,SAFE_WITH_CB:1,UNSAFE:2},e.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},e.METHODS_HTTP=[e.METHODS.DELETE,e.METHODS.GET,e.METHODS.HEAD,e.METHODS.POST,e.METHODS.PUT,e.METHODS.CONNECT,e.METHODS.OPTIONS,e.METHODS.TRACE,e.METHODS.COPY,e.METHODS.LOCK,e.METHODS.MKCOL,e.METHODS.MOVE,e.METHODS.PROPFIND,e.METHODS.PROPPATCH,e.METHODS.SEARCH,e.METHODS.UNLOCK,e.METHODS.BIND,e.METHODS.REBIND,e.METHODS.UNBIND,e.METHODS.ACL,e.METHODS.REPORT,e.METHODS.MKACTIVITY,e.METHODS.CHECKOUT,e.METHODS.MERGE,e.METHODS[`M-SEARCH`],e.METHODS.NOTIFY,e.METHODS.SUBSCRIBE,e.METHODS.UNSUBSCRIBE,e.METHODS.PATCH,e.METHODS.PURGE,e.METHODS.MKCALENDAR,e.METHODS.LINK,e.METHODS.UNLINK,e.METHODS.PRI,e.METHODS.SOURCE,e.METHODS.QUERY],e.METHODS_ICE=[e.METHODS.SOURCE],e.METHODS_RTSP=[e.METHODS.OPTIONS,e.METHODS.DESCRIBE,e.METHODS.ANNOUNCE,e.METHODS.SETUP,e.METHODS.PLAY,e.METHODS.PAUSE,e.METHODS.TEARDOWN,e.METHODS.GET_PARAMETER,e.METHODS.SET_PARAMETER,e.METHODS.REDIRECT,e.METHODS.RECORD,e.METHODS.FLUSH,e.METHODS.GET,e.METHODS.POST],e.METHOD_MAP=(0,t.enumToMap)(e.METHODS),e.H_METHOD_MAP=Object.fromEntries(Object.entries(e.METHODS).filter(([e])=>e.startsWith(`H`))),e.STATUSES_HTTP=[e.STATUSES.CONTINUE,e.STATUSES.SWITCHING_PROTOCOLS,e.STATUSES.PROCESSING,e.STATUSES.EARLY_HINTS,e.STATUSES.RESPONSE_IS_STALE,e.STATUSES.REVALIDATION_FAILED,e.STATUSES.DISCONNECTED_OPERATION,e.STATUSES.HEURISTIC_EXPIRATION,e.STATUSES.MISCELLANEOUS_WARNING,e.STATUSES.OK,e.STATUSES.CREATED,e.STATUSES.ACCEPTED,e.STATUSES.NON_AUTHORITATIVE_INFORMATION,e.STATUSES.NO_CONTENT,e.STATUSES.RESET_CONTENT,e.STATUSES.PARTIAL_CONTENT,e.STATUSES.MULTI_STATUS,e.STATUSES.ALREADY_REPORTED,e.STATUSES.TRANSFORMATION_APPLIED,e.STATUSES.IM_USED,e.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,e.STATUSES.MULTIPLE_CHOICES,e.STATUSES.MOVED_PERMANENTLY,e.STATUSES.FOUND,e.STATUSES.SEE_OTHER,e.STATUSES.NOT_MODIFIED,e.STATUSES.USE_PROXY,e.STATUSES.SWITCH_PROXY,e.STATUSES.TEMPORARY_REDIRECT,e.STATUSES.PERMANENT_REDIRECT,e.STATUSES.BAD_REQUEST,e.STATUSES.UNAUTHORIZED,e.STATUSES.PAYMENT_REQUIRED,e.STATUSES.FORBIDDEN,e.STATUSES.NOT_FOUND,e.STATUSES.METHOD_NOT_ALLOWED,e.STATUSES.NOT_ACCEPTABLE,e.STATUSES.PROXY_AUTHENTICATION_REQUIRED,e.STATUSES.REQUEST_TIMEOUT,e.STATUSES.CONFLICT,e.STATUSES.GONE,e.STATUSES.LENGTH_REQUIRED,e.STATUSES.PRECONDITION_FAILED,e.STATUSES.PAYLOAD_TOO_LARGE,e.STATUSES.URI_TOO_LONG,e.STATUSES.UNSUPPORTED_MEDIA_TYPE,e.STATUSES.RANGE_NOT_SATISFIABLE,e.STATUSES.EXPECTATION_FAILED,e.STATUSES.IM_A_TEAPOT,e.STATUSES.PAGE_EXPIRED,e.STATUSES.ENHANCE_YOUR_CALM,e.STATUSES.MISDIRECTED_REQUEST,e.STATUSES.UNPROCESSABLE_ENTITY,e.STATUSES.LOCKED,e.STATUSES.FAILED_DEPENDENCY,e.STATUSES.TOO_EARLY,e.STATUSES.UPGRADE_REQUIRED,e.STATUSES.PRECONDITION_REQUIRED,e.STATUSES.TOO_MANY_REQUESTS,e.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,e.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,e.STATUSES.LOGIN_TIMEOUT,e.STATUSES.NO_RESPONSE,e.STATUSES.RETRY_WITH,e.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,e.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,e.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,e.STATUSES.INVALID_X_FORWARDED_FOR,e.STATUSES.REQUEST_HEADER_TOO_LARGE,e.STATUSES.SSL_CERTIFICATE_ERROR,e.STATUSES.SSL_CERTIFICATE_REQUIRED,e.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,e.STATUSES.INVALID_TOKEN,e.STATUSES.CLIENT_CLOSED_REQUEST,e.STATUSES.INTERNAL_SERVER_ERROR,e.STATUSES.NOT_IMPLEMENTED,e.STATUSES.BAD_GATEWAY,e.STATUSES.SERVICE_UNAVAILABLE,e.STATUSES.GATEWAY_TIMEOUT,e.STATUSES.HTTP_VERSION_NOT_SUPPORTED,e.STATUSES.VARIANT_ALSO_NEGOTIATES,e.STATUSES.INSUFFICIENT_STORAGE,e.STATUSES.LOOP_DETECTED,e.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,e.STATUSES.NOT_EXTENDED,e.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,e.STATUSES.WEB_SERVER_UNKNOWN_ERROR,e.STATUSES.WEB_SERVER_IS_DOWN,e.STATUSES.CONNECTION_TIMEOUT,e.STATUSES.ORIGIN_IS_UNREACHABLE,e.STATUSES.TIMEOUT_OCCURED,e.STATUSES.SSL_HANDSHAKE_FAILED,e.STATUSES.INVALID_SSL_CERTIFICATE,e.STATUSES.RAILGUN_ERROR,e.STATUSES.SITE_IS_OVERLOADED,e.STATUSES.SITE_IS_FROZEN,e.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,e.STATUSES.NETWORK_READ_TIMEOUT,e.STATUSES.NETWORK_CONNECT_TIMEOUT],e.ALPHA=[];for(let t=65;t<=90;t++)e.ALPHA.push(String.fromCharCode(t)),e.ALPHA.push(String.fromCharCode(t+32));e.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9},e.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},e.NUM=[`0`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`],e.ALPHANUM=e.ALPHA.concat(e.NUM),e.MARK=[`-`,`_`,`.`,`!`,`~`,`*`,`'`,`(`,`)`],e.USERINFO_CHARS=e.ALPHANUM.concat(e.MARK).concat([`%`,`;`,`:`,`&`,`=`,`+`,`$`,`,`]),e.URL_CHAR=`!"$%&'()*+,-./:;<=>@[\\]^_\`{|}~`.split(``).concat(e.ALPHANUM),e.HEX=e.NUM.concat([`a`,`b`,`c`,`d`,`e`,`f`,`A`,`B`,`C`,`D`,`E`,`F`]),e.TOKEN=[`!`,`#`,`$`,`%`,`&`,`'`,`*`,`+`,`-`,`.`,`^`,`_`,"`",`|`,`~`].concat(e.ALPHANUM),e.HEADER_CHARS=[` `];for(let t=32;t<=255;t++)t!==127&&e.HEADER_CHARS.push(t);e.CONNECTION_TOKEN_CHARS=e.HEADER_CHARS.filter(e=>e!==44),e.QUOTED_STRING=[` `,` `];for(let t=33;t<=255;t++)t!==34&&t!==92&&e.QUOTED_STRING.push(t);e.HTAB_SP_VCHAR_OBS_TEXT=[` `,` `];for(let t=33;t<=126;t++)e.HTAB_SP_VCHAR_OBS_TEXT.push(t);for(let t=128;t<=255;t++)e.HTAB_SP_VCHAR_OBS_TEXT.push(t);e.MAJOR=e.NUM_MAP,e.MINOR=e.MAJOR,e.SPECIAL_HEADERS={connection:e.HEADER_STATE.CONNECTION,"content-length":e.HEADER_STATE.CONTENT_LENGTH,"proxy-connection":e.HEADER_STATE.CONNECTION,"transfer-encoding":e.HEADER_STATE.TRANSFER_ENCODING,upgrade:e.HEADER_STATE.UPGRADE},e.default={ERROR:e.ERROR,TYPE:e.TYPE,FLAGS:e.FLAGS,LENIENT_FLAGS:e.LENIENT_FLAGS,METHODS:e.METHODS,STATUSES:e.STATUSES,FINISH:e.FINISH,HEADER_STATE:e.HEADER_STATE,ALPHA:e.ALPHA,NUM_MAP:e.NUM_MAP,HEX_MAP:e.HEX_MAP,NUM:e.NUM,ALPHANUM:e.ALPHANUM,MARK:e.MARK,USERINFO_CHARS:e.USERINFO_CHARS,URL_CHAR:e.URL_CHAR,HEX:e.HEX,TOKEN:e.TOKEN,HEADER_CHARS:e.HEADER_CHARS,CONNECTION_TOKEN_CHARS:e.CONNECTION_TOKEN_CHARS,QUOTED_STRING:e.QUOTED_STRING,HTAB_SP_VCHAR_OBS_TEXT:e.HTAB_SP_VCHAR_OBS_TEXT,MAJOR:e.MAJOR,MINOR:e.MINOR,SPECIAL_HEADERS:e.SPECIAL_HEADERS,METHODS_HTTP:e.METHODS_HTTP,METHODS_ICE:e.METHODS_ICE,METHODS_RTSP:e.METHODS_RTSP,METHOD_MAP:e.METHOD_MAP,H_METHOD_MAP:e.H_METHOD_MAP,STATUSES_HTTP:e.STATUSES_HTTP}})),C=e.c(((e,t)=>{let{Buffer:n}=require(`node:buffer`),r;Object.defineProperty(t,`exports`,{get:()=>r||=n.from(`AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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C0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAg7jAQABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEjJCUnKCmeA5sDmgORA4oDgwOAA/0C+wL4AvIC8QLvAu0C6ALnAuYC5QLkAtwC2wLaAtkC2ALXAtYC1QLPAs4CzALLAsoCyQLIAscCxgLEAsMCvgK8AroCuQK4ArcCtgK1ArQCswKyArECsAKuAq0CqQKoAqcCpgKlAqQCowKiAqECoAKfApgCkAKMAosCigKBAv4B/QH8AfsB+gH5AfgB9wH1AfMB8AHrAekB6AHnAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHaAdkB2AHXAdYB1QHUAdMB0gHRAdABzwHOAc0BzAHLAcoByQHIAccBxgHFAcQBwwHCAcEBwAG/Ab4BvQG8AbsBugG5AbgBtwG2AbUBtAGzAbIBsQGwAa8BrgGtAawBqwGqAakBqAGnAaYBpQGkAaMBogGfAZ4BmQGYAZcBlgGVAZQBkwGSAZEBkAGPAY0BjAGHAYYBhQGEAYMBggF9fHt6eXZ1dFBRUlNUVQsgASAERw1yQf0BIQIMvgMLIAEgBEcNmAFB2wEhAgy9AwsgASAERw3xAUGOASECDLwDCyABIARHDfwBQYQBIQIMuwMLIAEgBEcNigJB/wAhAgy6AwsgASAERw2RAkH9ACECDLkDCyABIARHDZQCQfsAIQIMuAMLIAEgBEcNHkEeIQIMtwMLIAEgBEcNGUEYIQIMtgMLIAEgBEcNygJBzQAhAgy1AwsgASAERw3VAkHGACECDLQDCyABIARHDdYCQcMAIQIMswMLIAEgBEcN3AJBOCECDLIDCyADLQAwQQFGDa0DDIkDC0EAIQACQAJAAkAgAy0AKkUNACADLQArRQ0AIAMvATIiAkECcUUNAQwCCyADLwEyIgJBAXFFDQELQQEhACADLQAoQQFGDQAgAy8BNCIGQeQAa0HkAEkNACAGQcwBRg0AIAZBsAJGDQAgAkHAAHENAEEAIQAgAkGIBHFBgARGDQAgAkEocUEARyEACyADQQA7ATIgA0EAOgAxAkAgAEUEQCADQQA6ADEgAy0ALkEEcQ0BDLEDCyADQgA3AyALIANBADoAMSADQQE6ADYMSAtBACEAAkAgAygCOCICRQ0AIAIoAjAiAkUNACADIAIRAAAhAAsgAEUNSCAAQRVHDWIgA0EENgIcIAMgATYCFCADQdIbNgIQIANBFTYCDEEAIQIMrwMLIAEgBEYEQEEGIQIMrwMLIAEtAABBCkcNGSABQQFqIQEMGgsgA0IANwMgQRIhAgyUAwsgASAERw2KA0EjIQIMrAMLIAEgBEYEQEEHIQIMrAMLAkACQCABLQAAQQprDgQBGBgAGAsgAUEBaiEBQRAhAgyTAwsgAUEBaiEBIANBL2otAABBAXENF0EAIQIgA0EANgIcIAMgATYCFCADQZkgNgIQIANBGTYCDAyrAwsgAyADKQMgIgwgBCABa60iCn0iC0IAIAsgDFgbNwMgIAogDFoNGEEIIQIMqgMLIAEgBEcEQCADQQk2AgggAyABNgIEQRQhAgyRAwtBCSECDKkDCyADKQMgUA2uAgxDCyABIARGBEBBCyECDKgDCyABLQAAQQpHDRYgAUEBaiEBDBcLIANBL2otAABBAXFFDRkMJgtBACEAAkAgAygCOCICRQ0AIAIoAlAiAkUNACADIAIRAAAhAAsgAA0ZDEILQQAhAAJAIAMoAjgiAkUNACACKAJQIgJFDQAgAyACEQAAIQALIAANGgwkC0EAIQACQCADKAI4IgJFDQAgAigCUCICRQ0AIAMgAhEAACEACyAADRsMMgsgA0Evai0AAEEBcUUNHAwiC0EAIQACQCADKAI4IgJFDQAgAigCVCICRQ0AIAMgAhEAACEACyAADRwMQgtBACEAAkAgAygCOCICRQ0AIAIoAlQiAkUNACADIAIRAAAhAAsgAA0dDCALIAEgBEYEQEETIQIMoAMLAkAgAS0AACIAQQprDgQfIyMAIgsgAUEBaiEBDB8LQQAhAAJAIAMoAjgiAkUNACACKAJUIgJFDQAgAyACEQAAIQALIAANIgxCCyABIARGBEBBFiECDJ4DCyABLQAAQcDBAGotAABBAUcNIwyDAwsCQANAIAEtAABBsDtqLQAAIgBBAUcEQAJAIABBAmsOAgMAJwsgAUEBaiEBQSEhAgyGAwsgBCABQQFqIgFHDQALQRghAgydAwsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAFBAWoiARA0IgANIQxBC0EAIQACQCADKAI4IgJFDQAgAigCVCICRQ0AIAMgAhEAACEACyAADSMMKgsgASAERgRAQRwhAgybAwsgA0EKNgIIIAMgATYCBEEAIQACQCADKAI4IgJFDQAgAigCUCICRQ0AIAMgAhEAACEACyAADSVBJCECDIEDCyABIARHBEADQCABLQAAQbA9ai0AACIAQQNHBEAgAEEBaw4FGBomggMlJgsgBCABQQFqIgFHDQALQRshAgyaAwtBGyECDJkDCwNAIAEtAABBsD9qLQAAIgBBA0cEQCAAQQFrDgUPEScTJicLIAQgAUEBaiIBRw0AC0EeIQIMmAMLIAEgBEcEQCADQQs2AgggAyABNgIEQQchAgz/AgtBHyECDJcDCyABIARGBEBBICECDJcDCwJAIAEtAABBDWsOFC4/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8APwtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQMlgMLIANBL2ohAgNAIAEgBEYEQEEhIQIMlwMLAkACQAJAIAEtAAAiAEEJaw4YAgApKQEpKSkpKSkpKSkpKSkpKSkpKSkCJwsgAUEBaiEBIANBL2otAABBAXFFDQoMGAsgAUEBaiEBDBcLIAFBAWohASACLQAAQQJxDQALQQAhAiADQQA2AhwgAyABNgIUIANBnxU2AhAgA0EMNgIMDJUDCyADLQAuQYABcUUNAQtBACEAAkAgAygCOCICRQ0AIAIoAlwiAkUNACADIAIRAAAhAAsgAEUN5gIgAEEVRgRAIANBJDYCHCADIAE2AhQgA0GbGzYCECADQRU2AgxBACECDJQDC0EAIQIgA0EANgIcIAMgATYCFCADQZAONgIQIANBFDYCDAyTAwtBACECIANBADYCHCADIAE2AhQgA0G+IDYCECADQQI2AgwMkgMLIAMoAgQhAEEAIQIgA0EANgIEIAMgACABIAynaiIBEDIiAEUNKyADQQc2AhwgAyABNgIUIAMgADYCDAyRAwsgAy0ALkHAAHFFDQELQQAhAAJAIAMoAjgiAkUNACACKAJYIgJFDQAgAyACEQAAIQALIABFDSsgAEEVRgRAIANBCjYCHCADIAE2AhQgA0HrGTYCECADQRU2AgxBACECDJADC0EAIQIgA0EANgIcIAMgATYCFCADQZMMNgIQIANBEzYCDAyPAwtBACECIANBADYCHCADIAE2AhQgA0GCFTYCECADQQI2AgwMjgMLQQAhAiADQQA2AhwgAyABNgIUIANB3RQ2AhAgA0EZNgIMDI0DC0EAIQIgA0EANgIcIAMgATYCFCADQeYdNgIQIANBGTYCDAyMAwsgAEEVRg09QQAhAiADQQA2AhwgAyABNgIUIANB0A82AhAgA0EiNgIMDIsDCyADKAIEIQBBACECIANBADYCBCADIAAgARAzIgBFDSggA0ENNgIcIAMgATYCFCADIAA2AgwMigMLIABBFUYNOkEAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAyJAwsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQMyIARQRAIAFBAWohAQwoCyADQQ42AhwgAyAANgIMIAMgAUEBajYCFAyIAwsgAEEVRg03QQAhAiADQQA2AhwgAyABNgIUIANB0A82AhAgA0EiNgIMDIcDCyADKAIEIQBBACECIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDCcLIANBDzYCHCADIAA2AgwgAyABQQFqNgIUDIYDC0EAIQIgA0EANgIcIAMgATYCFCADQeIXNgIQIANBGTYCDAyFAwsgAEEVRg0zQQAhAiADQQA2AhwgAyABNgIUIANB1gw2AhAgA0EjNgIMDIQDCyADKAIEIQBBACECIANBADYCBCADIAAgARA0IgBFDSUgA0ERNgIcIAMgATYCFCADIAA2AgwMgwMLIABBFUYNMEEAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAyCAwsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwlCyADQRI2AhwgAyAANgIMIAMgAUEBajYCFAyBAwsgA0Evai0AAEEBcUUNAQtBFyECDOYCC0EAIQIgA0EANgIcIAMgATYCFCADQeIXNgIQIANBGTYCDAz+AgsgAEE7Rw0AIAFBAWohAQwMC0EAIQIgA0EANgIcIAMgATYCFCADQZIYNgIQIANBAjYCDAz8AgsgAEEVRg0oQQAhAiADQQA2AhwgAyABNgIUIANB1gw2AhAgA0EjNgIMDPsCCyADQRQ2AhwgAyABNgIUIAMgADYCDAz6AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQz1AgsgA0EVNgIcIAMgADYCDCADIAFBAWo2AhQM+QILIAMoAgQhAEEAIQIgA0EANgIEIAMgACABEDQiAEUEQCABQQFqIQEM8wILIANBFzYCHCADIAA2AgwgAyABQQFqNgIUDPgCCyAAQRVGDSNBACECIANBADYCHCADIAE2AhQgA0HWDDYCECADQSM2AgwM9wILIAMoAgQhAEEAIQIgA0EANgIEIAMgACABEDQiAEUEQCABQQFqIQEMHQsgA0EZNgIcIAMgADYCDCADIAFBAWo2AhQM9gILIAMoAgQhAEEAIQIgA0EANgIEIAMgACABEDQiAEUEQCABQQFqIQEM7wILIANBGjYCHCADIAA2AgwgAyABQQFqNgIUDPUCCyAAQRVGDR9BACECIANBADYCHCADIAE2AhQgA0HQDzYCECADQSI2AgwM9AILIAMoAgQhACADQQA2AgQgAyAAIAEQMyIARQRAIAFBAWohAQwbCyADQRw2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8wILIAMoAgQhACADQQA2AgQgAyAAIAEQMyIARQRAIAFBAWohAQzrAgsgA0EdNgIcIAMgADYCDCADIAFBAWo2AhRBACECDPICCyAAQTtHDQEgAUEBaiEBC0EmIQIM1wILQQAhAiADQQA2AhwgAyABNgIUIANBnxU2AhAgA0EMNgIMDO8CCyABIARHBEADQCABLQAAQSBHDYQCIAQgAUEBaiIBRw0AC0EsIQIM7wILQSwhAgzuAgsgASAERgRAQTQhAgzuAgsCQAJAA0ACQCABLQAAQQprDgQCAAADAAsgBCABQQFqIgFHDQALQTQhAgzvAgsgAygCBCEAIANBADYCBCADIAAgARAxIgBFDZ8CIANBMjYCHCADIAE2AhQgAyAANgIMQQAhAgzuAgsgAygCBCEAIANBADYCBCADIAAgARAxIgBFBEAgAUEBaiEBDJ8CCyADQTI2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM7QILIAEgBEcEQAJAA0AgAS0AAEEwayIAQf8BcUEKTwRAQTohAgzXAgsgAykDICILQpmz5syZs+bMGVYNASADIAtCCn4iCjcDICAKIACtQv8BgyILQn+FVg0BIAMgCiALfDcDICAEIAFBAWoiAUcNAAtBwAAhAgzuAgsgAygCBCEAIANBADYCBCADIAAgAUEBaiIBEDEiAA0XDOICC0HAACECDOwCCyABIARGBEBByQAhAgzsAgsCQANAAkAgAS0AAEEJaw4YAAKiAqICqQKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogIAogILIAQgAUEBaiIBRw0AC0HJACECDOwCCyABQQFqIQEgA0Evai0AAEEBcQ2lAiADQQA2AhwgAyABNgIUIANBlxA2AhAgA0EKNgIMQQAhAgzrAgsgASAERwRAA0AgAS0AAEEgRw0VIAQgAUEBaiIBRw0AC0H4ACECDOsCC0H4ACECDOoCCyADQQI6ACgMOAtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQM6AILQQAhAgzOAgtBDSECDM0CC0ETIQIMzAILQRUhAgzLAgtBFiECDMoCC0EYIQIMyQILQRkhAgzIAgtBGiECDMcCC0EbIQIMxgILQRwhAgzFAgtBHSECDMQCC0EeIQIMwwILQR8hAgzCAgtBICECDMECC0EiIQIMwAILQSMhAgy/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/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==`,`base64`)})})),w=e.c(((e,t)=>{let{Buffer:n}=require(`node:buffer`),r;Object.defineProperty(t,`exports`,{get:()=>r||=n.from(`AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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DAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/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+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEH51ABqLQAARw0yIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyGAgsgA0EANgIAIAZBAWohAUErDDILQcABIQIgASAERg2EAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH21ABqLQAARw0xIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyFAgsgA0EANgIAIAZBAWohAUEsDDELQb8BIQIgASAERg2DAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0wIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyEAgsgA0EANgIAIAZBAWohAUERDDALQb4BIQIgASAERg2CAiADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEHy1ABqLQAARw0vIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyDAgsgA0EANgIAIAZBAWohAUEuDC8LIAEgBEYEQEG9ASECDIICCwJAAkACQAJAAkAgAS0AAEHBAGsOFQA0NDQ0NDQ0NDQ0ATQ0AjQ0AzQ0BDQLIAFBAWohAUGbASECDOwBCyABQQFqIQFBnAEhAgzrAQsgAUEBaiEBQZ0BIQIM6gELIAFBAWohAUGiASECDOkBCyABQQFqIQFBpAEhAgzoAQsgASAERgRAQbwBIQIMgQILAkACQCABLQAAQdIAaw4DADABMAsgAUEBaiEBQaMBIQIM6AELIAFBAWohAUEEDC0LQbsBIQIgASAERg3/ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHw1ABqLQAARw0sIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyAAgsgA0EANgIAIAZBAWohAUEdDCwLIAEgBEYEQEG6ASECDP8BCwJAAkAgAS0AAEHJAGsOBwEuLi4uLgAuCyABQQFqIQFBoQEhAgzmAQsgAUEBaiEBQSIMKwsgASAERgRAQbkBIQIM/gELIAEtAABB0ABHDSsgAUEBaiEBQaABIQIM5AELIAEgBEYEQEG4ASECDP0BCwJAAkAgAS0AAEHGAGsOCwAsLCwsLCwsLCwBLAsgAUEBaiEBQZ4BIQIM5AELIAFBAWohAUGfASECDOMBC0G3ASECIAEgBEYN+wEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABB7NQAai0AAEcNKCAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM/AELIANBADYCACAGQQFqIQFBDQwoC0G2ASECIAEgBEYN+gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBodUAai0AAEcNJyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM+wELIANBADYCACAGQQFqIQFBDAwnC0G1ASECIAEgBEYN+QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB6tQAai0AAEcNJiAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM+gELIANBADYCACAGQQFqIQFBAwwmC0G0ASECIAEgBEYN+AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB6NQAai0AAEcNJSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM+QELIANBADYCACAGQQFqIQFBJgwlCyABIARGBEBBswEhAgz4AQsCQAJAIAEtAABB1ABrDgIAAScLIAFBAWohAUGZASECDN8BCyABQQFqIQFBmgEhAgzeAQtBsgEhAiABIARGDfYBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQebUAGotAABHDSMgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPcBCyADQQA2AgAgBkEBaiEBQScMIwtBsQEhAiABIARGDfUBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQeTUAGotAABHDSIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPYBCyADQQA2AgAgBkEBaiEBQRwMIgtBsAEhAiABIARGDfQBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQd7UAGotAABHDSEgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPUBCyADQQA2AgAgBkEBaiEBQQYMIQtBrwEhAiABIARGDfMBIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQdnUAGotAABHDSAgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPQBCyADQQA2AgAgBkEBaiEBQRkMIAsgASAERgRAQa4BIQIM8wELAkACQAJAAkAgAS0AAEEtaw4jACQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkASQkJCQkAiQkJAMkCyABQQFqIQFBjgEhAgzcAQsgAUEBaiEBQY8BIQIM2wELIAFBAWohAUGUASECDNoBCyABQQFqIQFBlQEhAgzZAQtBrQEhAiABIARGDfEBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQdfUAGotAABHDR4gAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPIBCyADQQA2AgAgBkEBaiEBQQsMHgsgASAERgRAQawBIQIM8QELAkACQCABLQAAQcEAaw4DACABIAsgAUEBaiEBQZABIQIM2AELIAFBAWohAUGTASECDNcBCyABIARGBEBBqwEhAgzwAQsCQAJAIAEtAABBwQBrDg8AHx8fHx8fHx8fHx8fHwEfCyABQQFqIQFBkQEhAgzXAQsgAUEBaiEBQZIBIQIM1gELIAEgBEYEQEGqASECDO8BCyABLQAAQcwARw0cIAFBAWohAUEKDBsLQakBIQIgASAERg3tASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHR1ABqLQAARw0aIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzuAQsgA0EANgIAIAZBAWohAUEeDBoLQagBIQIgASAERg3sASADKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEHK1ABqLQAARw0ZIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAztAQsgA0EANgIAIAZBAWohAUEVDBkLQacBIQIgASAERg3rASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHH1ABqLQAARw0YIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==`,`base64`)})})),T=e.c(((e,t)=>{let n=[`GET`,`HEAD`,`POST`],r=new Set(n),i=[101,204,205,304],a=[301,302,303,307,308],o=new Set(a),s=`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`.split(`.`),c=new Set(s),l=[`no-referrer`,`no-referrer-when-downgrade`,`same-origin`,`origin`,`strict-origin`,`origin-when-cross-origin`,`strict-origin-when-cross-origin`,`unsafe-url`],u=[``,...l],d=new Set(l),f=[`follow`,`manual`,`error`],p=[`GET`,`HEAD`,`OPTIONS`,`TRACE`,`QUERY`],m=new Set(p),h=[`navigate`,`same-origin`,`no-cors`,`cors`],g=[`omit`,`same-origin`,`include`],_=[`default`,`no-store`,`reload`,`no-cache`,`force-cache`,`only-if-cached`],v=[`content-encoding`,`content-language`,`content-location`,`content-type`,`content-length`],y=[`half`],b=[`CONNECT`,`TRACE`,`TRACK`],x=new Set(b),S=[`audio`,`audioworklet`,`font`,`image`,`manifest`,`paintworklet`,`script`,`style`,`track`,`video`,`xslt`,``];t.exports={subresource:S,forbiddenMethods:b,requestBodyHeader:v,referrerPolicy:u,requestRedirect:f,requestMode:h,requestCredentials:g,requestCache:_,redirectStatus:a,corsSafeListedMethods:n,nullBodyStatus:i,safeMethods:p,badPorts:s,requestDuplex:y,subresourceSet:new Set(S),badPortsSet:c,redirectStatusSet:o,corsSafeListedMethodsSet:r,safeMethodsSet:m,forbiddenMethodsSet:x,referrerPolicyTokens:d}})),E=e.c(((e,t)=>{let n=Symbol.for(`undici.globalOrigin.1`);function r(){return globalThis[n]}function i(e){if(e===void 0){Object.defineProperty(globalThis,n,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!==`http:`&&t.protocol!==`https:`)throw TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,n,{value:t,writable:!0,enumerable:!1,configurable:!1})}t.exports={getGlobalOrigin:r,setGlobalOrigin:i}})),D=e.c(((e,t)=>{let n=new TextDecoder;function r(e){return e.length===0?``:(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),n.decode(e))}t.exports={utf8DecodeBytes:r}})),O=e.c(((e,t)=>{let n=require(`node:assert`),{utf8DecodeBytes:r}=D();function i(e,t,n){let r=``;for(;n.position<t.length&&e(t[n.position]);)r+=t[n.position],n.position++;return r}function a(e,t,n){let r=t.indexOf(e,n.position),i=n.position;return r===-1?(n.position=t.length,t.slice(i)):(n.position=r,t.slice(i,n.position))}let o=/[\u0009\u000A\u000C\u000D\u0020]/g;function s(e){e=e.replace(o,``);let t=e.length;if(t%4==0&&e.charCodeAt(t-1)===61&&(--t,e.charCodeAt(t-1)===61&&--t),t%4==1||/[^+/0-9A-Za-z]/.test(e.length===t?e:e.substring(0,t)))return`failure`;let n=Buffer.from(e,`base64`);return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}function c(e){return e===9||e===10||e===12||e===13||e===32}function l(e){let t=e.length;if(65535>t)return String.fromCharCode.apply(null,e);let n=``,r=0,i=65535;for(;r<t;)r+i>t&&(i=t-r),n+=String.fromCharCode.apply(null,e.subarray(r,r+=i));return n}let u=/[^\x00-\xFF]/;function d(e){return n(!u.test(e)),e}function f(e){return JSON.parse(r(e))}function p(e,t=!0,n=!0){return m(e,t,n,c)}function m(e,t,n,r){let i=0,a=e.length-1;if(t)for(;i<e.length&&r(e.charCodeAt(i));)i++;if(n)for(;a>0&&r(e.charCodeAt(a));)a--;return i===0&&a===e.length-1?e:e.slice(i,a+1)}function h(e){let t=JSON.stringify(e);if(t===void 0)throw TypeError(`Value is not JSON serializable`);return n(typeof t==`string`),t}t.exports={collectASequenceOfCodePoints:i,collectASequenceOfCodePointsFast:a,forgivingBase64:s,isASCIIWhitespace:c,isomorphicDecode:l,isomorphicEncode:d,parseJSONFromBytes:f,removeASCIIWhitespace:p,removeChars:m,serializeJavascriptValueToJSONString:h}})),k=e.c(((e,t)=>{let n=require(`node:assert`),{forgivingBase64:r,collectASequenceOfCodePoints:i,collectASequenceOfCodePointsFast:a,isomorphicDecode:o,removeASCIIWhitespace:s,removeChars:c}=O(),l=new TextEncoder,u=/^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u,d=/[\u000A\u000D\u0009\u0020]/u,f=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;function p(e){n(e.protocol===`data:`);let t=m(e,!0);t=t.slice(5);let i={position:0},c=a(`,`,t,i),l=c.length;if(c=s(c,!0,!0),i.position>=t.length)return`failure`;i.position++;let u=h(t.slice(l+1));if(/;(?:\u0020*)base64$/iu.test(c)){if(u=r(o(u)),u===`failure`)return`failure`;c=c.slice(0,-6),c=c.replace(/(\u0020+)$/u,``),c=c.slice(0,-1)}c.startsWith(`;`)&&(c=`text/plain`+c);let d=y(c);return d===`failure`&&(d=y(`text/plain;charset=US-ASCII`)),{mimeType:d,body:u}}function m(e,t=!1){if(!t)return e.href;let n=e.href,r=e.hash.length,i=r===0?n:n.substring(0,n.length-r);return!r&&n.endsWith(`#`)?i.slice(0,-1):i}function h(e){return v(l.encode(e))}function g(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function _(e){return e>=48&&e<=57?e-48:(e&223)-55}function v(e){let t=e.length,n=new Uint8Array(t),r=0,i=0;for(;i<t;){let t=e[i];t===37?t===37&&!(g(e[i+1])&&g(e[i+2]))?n[r++]=37:(n[r++]=_(e[i+1])<<4|_(e[i+2]),i+=2):n[r++]=t,++i}return t===r?n:n.subarray(0,r)}function y(e){e=C(e,!0,!0);let t={position:0},n=a(`/`,e,t);if(n.length===0||!u.test(n)||t.position>=e.length)return`failure`;t.position++;let r=a(`;`,e,t);if(r=C(r,!1,!0),r.length===0||!u.test(r))return`failure`;let o=n.toLowerCase(),s=r.toLowerCase(),c={type:o,subtype:s,parameters:new Map,essence:`${o}/${s}`};for(;t.position<e.length;){t.position++,i(e=>d.test(e),e,t);let n=i(e=>e!==`;`&&e!==`=`,e,t);if(n=n.toLowerCase(),t.position<e.length){if(e[t.position]===`;`)continue;t.position++}if(t.position>=e.length)break;let r=null;if(e[t.position]===`"`)r=b(e,t,!0),a(`;`,e,t);else if(r=a(`;`,e,t),r=C(r,!1,!0),r.length===0)continue;n.length!==0&&u.test(n)&&(r.length===0||f.test(r))&&!c.parameters.has(n)&&c.parameters.set(n,r)}return c}function b(e,t,r=!1){let a=t.position,o=``;for(n(e[t.position]===`"`),t.position++;o+=i(e=>e!==`"`&&e!==`\\`,e,t),!(t.position>=e.length);){let r=e[t.position];if(t.position++,r===`\\`){if(t.position>=e.length){o+=`\\`;break}o+=e[t.position],t.position++}else{n(r===`"`);break}}return r?o:e.slice(a,t.position)}function x(e){n(e!==`failure`);let{parameters:t,essence:r}=e,i=r;for(let[e,n]of t.entries())i+=`;`,i+=e,i+=`=`,u.test(n)||(n=n.replace(/[\\"]/gu,`\\$&`),n=`"`+n,n+=`"`),i+=n;return i}function S(e){return e===13||e===10||e===9||e===32}function C(e,t=!0,n=!0){return c(e,t,n,S)}function w(e){switch(e.essence){case`application/ecmascript`:case`application/javascript`:case`application/x-ecmascript`:case`application/x-javascript`:case`text/ecmascript`:case`text/javascript`:case`text/javascript1.0`:case`text/javascript1.1`:case`text/javascript1.2`:case`text/javascript1.3`:case`text/javascript1.4`:case`text/javascript1.5`:case`text/jscript`:case`text/livescript`:case`text/x-ecmascript`:case`text/x-javascript`:return`text/javascript`;case`application/json`:case`text/json`:return`application/json`;case`image/svg+xml`:return`image/svg+xml`;case`text/xml`:case`application/xml`:return`application/xml`}return e.subtype.endsWith(`+json`)?`application/json`:e.subtype.endsWith(`+xml`)?`application/xml`:``}t.exports={dataURLProcessor:p,URLSerializer:m,stringPercentDecode:h,parseMIMEType:y,collectAnHTTPQuotedString:b,serializeAMimeType:x,removeHTTPWhitespace:C,minimizeSupportedMimeType:w,HTTP_TOKEN_CODEPOINTS:u}})),A=e.c(((e,t)=>{let n=require(`node:assert`),{types:r,inspect:i}=require(`node:util`),{markAsUncloneable:a}=require(`node:worker_threads`),o=Function.call.bind(Function.prototype[Symbol.hasInstance]),s={converters:{},util:{},errors:{},is:{}};s.errors.exception=function(e){return TypeError(`${e.header}: ${e.message}`)},s.errors.conversionFailed=function(e){let t=e.types.length===1?``:` one of`,n=`${e.argument} could not be converted to${t}: ${e.types.join(`, `)}.`;return s.errors.exception({header:e.prefix,message:n})},s.errors.invalidArgument=function(e){return s.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})},s.brandCheck=function(e,t){if(!o(t,e)){let e=TypeError(`Illegal invocation`);throw e.code=`ERR_INVALID_THIS`,e}},s.brandCheckMultiple=function(e){let t=e.map(e=>s.util.MakeTypeAssertion(e));return e=>{if(t.every(t=>!t(e))){let e=TypeError(`Illegal invocation`);throw e.code=`ERR_INVALID_THIS`,e}}},s.argumentLengthCheck=function({length:e},t,n){if(e<t)throw s.errors.exception({message:`${t} argument${t===1?``:`s`} required, but${e?` only`:``} ${e} found.`,header:n})},s.illegalConstructor=function(){throw s.errors.exception({header:`TypeError`,message:`Illegal constructor`})},s.util.MakeTypeAssertion=function(e){return t=>o(e,t)},s.util.Type=function(e){switch(typeof e){case`undefined`:return 1;case`boolean`:return 2;case`string`:return 3;case`symbol`:return 4;case`number`:return 5;case`bigint`:return 6;case`function`:case`object`:return e===null?7:8}},s.util.Types={UNDEFINED:1,BOOLEAN:2,STRING:3,SYMBOL:4,NUMBER:5,BIGINT:6,NULL:7,OBJECT:8},s.util.TypeValueToString=function(e){switch(s.util.Type(e)){case 1:return`Undefined`;case 2:return`Boolean`;case 3:return`String`;case 4:return`Symbol`;case 5:return`Number`;case 6:return`BigInt`;case 7:return`Null`;case 8:return`Object`}},s.util.markAsUncloneable=a,s.util.ConvertToInt=function(e,t,n,r){let i,a;t===64?(i=2**53-1,a=n===`unsigned`?0:-9007199254740991):n===`unsigned`?(a=0,i=2**t-1):(a=-(2**(t-1)),i=2**(t-1)-1);let o=Number(e);if(o===0&&(o=0),s.util.HasFlag(r,s.attributes.EnforceRange)){if(Number.isNaN(o)||o===1/0||o===-1/0)throw s.errors.exception({header:`Integer conversion`,message:`Could not convert ${s.util.Stringify(e)} to an integer.`});if(o=s.util.IntegerPart(o),o<a||o>i)throw s.errors.exception({header:`Integer conversion`,message:`Value must be between ${a}-${i}, got ${o}.`});return o}return!Number.isNaN(o)&&s.util.HasFlag(r,s.attributes.Clamp)?(o=Math.min(Math.max(o,a),i),o=Math.floor(o)%2==0?Math.floor(o):Math.ceil(o),o):Number.isNaN(o)||o===0&&Object.is(0,o)||o===1/0||o===-1/0?0:(o=s.util.IntegerPart(o),o%=2**t,n===`signed`&&o>=2**(t-1)?o-2**t:o)},s.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t},s.util.Stringify=function(e){switch(s.util.Type(e)){case 4:return`Symbol(${e.description})`;case 8:return i(e);case 3:return`"${e}"`;case 6:return`${e}n`;default:return`${e}`}},s.util.IsResizableArrayBuffer=function(e){if(r.isArrayBuffer(e))return e.resizable;if(r.isSharedArrayBuffer(e))return e.growable;throw s.errors.exception({header:`IsResizableArrayBuffer`,message:`"${s.util.Stringify(e)}" is not an array buffer.`})},s.util.HasFlag=function(e,t){return typeof e==`number`&&(e&t)===t},s.sequenceConverter=function(e){return(t,n,r,i)=>{if(s.util.Type(t)!==8)throw s.errors.exception({header:n,message:`${r} (${s.util.Stringify(t)}) is not iterable.`});let a=typeof i==`function`?i():t?.[Symbol.iterator]?.(),o=[],c=0;if(a===void 0||typeof a.next!=`function`)throw s.errors.exception({header:n,message:`${r} is not iterable.`});for(;;){let{done:t,value:i}=a.next();if(t)break;o.push(e(i,n,`${r}[${c++}]`))}return o}},s.recordConverter=function(e,t){return(n,i,a)=>{if(s.util.Type(n)!==8)throw s.errors.exception({header:i,message:`${a} ("${s.util.TypeValueToString(n)}") is not an Object.`});let o={};if(!r.isProxy(n)){let r=[...Object.getOwnPropertyNames(n),...Object.getOwnPropertySymbols(n)];for(let c of r){let r=s.util.Stringify(c),l=e(c,i,`Key ${r} in ${a}`);o[l]=t(n[c],i,`${a}[${r}]`)}return o}let c=Reflect.ownKeys(n);for(let r of c)if(Reflect.getOwnPropertyDescriptor(n,r)?.enumerable){let s=e(r,i,a);o[s]=t(n[r],i,a)}return o}},s.interfaceConverter=function(e,t){return(n,r,i)=>{if(!e(n))throw s.errors.exception({header:r,message:`Expected ${i} ("${s.util.Stringify(n)}") to be an instance of ${t}.`});return n}},s.dictionaryConverter=function(e){return e.sort((e,t)=>(e.key>t.key)-(e.key<t.key)),(t,n,r)=>{let i={};if(t!=null&&s.util.Type(t)!==8)throw s.errors.exception({header:n,message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let a of e){let{key:e,defaultValue:o,required:c,converter:l}=a;if(c===!0&&(t==null||!Object.hasOwn(t,e)))throw s.errors.exception({header:n,message:`Missing required key "${e}".`});let u=t?.[e],d=o!==void 0;if(d&&u===void 0&&(u=o()),c||d||u!==void 0){if(u=l(u,n,`${r}.${e}`),a.allowedValues&&!a.allowedValues.includes(u))throw s.errors.exception({header:n,message:`${u} is not an accepted type. Expected one of ${a.allowedValues.join(`, `)}.`});i[e]=u}}return i}},s.nullableConverter=function(e){return(t,n,r)=>t===null?t:e(t,n,r)},s.is.USVString=function(e){return typeof e==`string`&&e.isWellFormed()},s.is.ReadableStream=s.util.MakeTypeAssertion(ReadableStream),s.is.Blob=s.util.MakeTypeAssertion(Blob),s.is.URLSearchParams=s.util.MakeTypeAssertion(URLSearchParams),s.is.File=s.util.MakeTypeAssertion(File),s.is.URL=s.util.MakeTypeAssertion(URL),s.is.AbortSignal=s.util.MakeTypeAssertion(AbortSignal),s.is.MessagePort=s.util.MakeTypeAssertion(MessagePort),s.is.BufferSource=function(e){return r.isArrayBuffer(e)||ArrayBuffer.isView(e)&&r.isArrayBuffer(e.buffer)},s.util.getCopyOfBytesHeldByBufferSource=function(e){let t=e,i=t,a=0,o=0;if(r.isTypedArray(t)||r.isDataView(t)?(i=t.buffer,a=t.byteOffset,o=t.byteLength):(n(r.isAnyArrayBuffer(t)),o=t.byteLength),i.detached)return new Uint8Array;let s=new Uint8Array(o),c=new Uint8Array(i,a,o);return s.set(c),s},s.converters.DOMString=function(e,t,n,r){if(e===null&&s.util.HasFlag(r,s.attributes.LegacyNullToEmptyString))return``;if(typeof e==`symbol`)throw s.errors.exception({header:t,message:`${n} is a symbol, which cannot be converted to a DOMString.`});return String(e)},s.converters.ByteString=function(e,t,n){if(typeof e==`symbol`)throw s.errors.exception({header:t,message:`${n} is a symbol, which cannot be converted to a ByteString.`});let r=String(e);for(let e=0;e<r.length;e++)if(r.charCodeAt(e)>255)throw TypeError(`Cannot convert argument to a ByteString because the character at index ${e} has a value of ${r.charCodeAt(e)} which is greater than 255.`);return r},s.converters.USVString=function(e){return typeof e==`string`?e.toWellFormed():`${e}`.toWellFormed()},s.converters.boolean=function(e){return!!e},s.converters.any=function(e){return e},s.converters[`long long`]=function(e,t,n){return s.util.ConvertToInt(e,64,`signed`,0,t,n)},s.converters[`unsigned long long`]=function(e,t,n){return s.util.ConvertToInt(e,64,`unsigned`,0,t,n)},s.converters[`unsigned long`]=function(e,t,n){return s.util.ConvertToInt(e,32,`unsigned`,0,t,n)},s.converters[`unsigned short`]=function(e,t,n,r){return s.util.ConvertToInt(e,16,`unsigned`,r,t,n)},s.converters.ArrayBuffer=function(e,t,n,i){if(s.util.Type(e)!==8||!r.isArrayBuffer(e))throw s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`ArrayBuffer`]});if(!s.util.HasFlag(i,s.attributes.AllowResizable)&&s.util.IsResizableArrayBuffer(e))throw s.errors.exception({header:t,message:`${n} cannot be a resizable ArrayBuffer.`});return e},s.converters.SharedArrayBuffer=function(e,t,n,i){if(s.util.Type(e)!==8||!r.isSharedArrayBuffer(e))throw s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`SharedArrayBuffer`]});if(!s.util.HasFlag(i,s.attributes.AllowResizable)&&s.util.IsResizableArrayBuffer(e))throw s.errors.exception({header:t,message:`${n} cannot be a resizable SharedArrayBuffer.`});return e},s.converters.TypedArray=function(e,t,n,i,a){if(s.util.Type(e)!==8||!r.isTypedArray(e)||e.constructor.name!==t.name)throw s.errors.conversionFailed({prefix:n,argument:`${i} ("${s.util.Stringify(e)}")`,types:[t.name]});if(!s.util.HasFlag(a,s.attributes.AllowShared)&&r.isSharedArrayBuffer(e.buffer))throw s.errors.exception({header:n,message:`${i} cannot be a view on a shared array buffer.`});if(!s.util.HasFlag(a,s.attributes.AllowResizable)&&s.util.IsResizableArrayBuffer(e.buffer))throw s.errors.exception({header:n,message:`${i} cannot be a view on a resizable array buffer.`});return e},s.converters.DataView=function(e,t,n,i){if(s.util.Type(e)!==8||!r.isDataView(e))throw s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`DataView`]});if(!s.util.HasFlag(i,s.attributes.AllowShared)&&r.isSharedArrayBuffer(e.buffer))throw s.errors.exception({header:t,message:`${n} cannot be a view on a shared array buffer.`});if(!s.util.HasFlag(i,s.attributes.AllowResizable)&&s.util.IsResizableArrayBuffer(e.buffer))throw s.errors.exception({header:t,message:`${n} cannot be a view on a resizable array buffer.`});return e},s.converters.ArrayBufferView=function(e,t,n,i){if(s.util.Type(e)!==8||!r.isArrayBufferView(e))throw s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`ArrayBufferView`]});if(!s.util.HasFlag(i,s.attributes.AllowShared)&&r.isSharedArrayBuffer(e.buffer))throw s.errors.exception({header:t,message:`${n} cannot be a view on a shared array buffer.`});if(!s.util.HasFlag(i,s.attributes.AllowResizable)&&s.util.IsResizableArrayBuffer(e.buffer))throw s.errors.exception({header:t,message:`${n} cannot be a view on a resizable array buffer.`});return e},s.converters.BufferSource=function(e,t,n,i){if(r.isArrayBuffer(e))return s.converters.ArrayBuffer(e,t,n,i);if(r.isArrayBufferView(e))return i&=~s.attributes.AllowShared,s.converters.ArrayBufferView(e,t,n,i);throw r.isSharedArrayBuffer(e)?s.errors.exception({header:t,message:`${n} cannot be a SharedArrayBuffer.`}):s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`ArrayBuffer`,`ArrayBufferView`]})},s.converters.AllowSharedBufferSource=function(e,t,n,i){if(r.isArrayBuffer(e))return s.converters.ArrayBuffer(e,t,n,i);if(r.isSharedArrayBuffer(e))return s.converters.SharedArrayBuffer(e,t,n,i);if(r.isArrayBufferView(e))return i|=s.attributes.AllowShared,s.converters.ArrayBufferView(e,t,n,i);throw s.errors.conversionFailed({prefix:t,argument:`${n} ("${s.util.Stringify(e)}")`,types:[`ArrayBuffer`,`SharedArrayBuffer`,`ArrayBufferView`]})},s.converters[`sequence<ByteString>`]=s.sequenceConverter(s.converters.ByteString),s.converters[`sequence<sequence<ByteString>>`]=s.sequenceConverter(s.converters[`sequence<ByteString>`]),s.converters[`record<ByteString, ByteString>`]=s.recordConverter(s.converters.ByteString,s.converters.ByteString),s.converters.Blob=s.interfaceConverter(s.is.Blob,`Blob`),s.converters.AbortSignal=s.interfaceConverter(s.is.AbortSignal,`AbortSignal`),s.converters.EventHandlerNonNull=function(e){return s.util.Type(e)===8?typeof e==`function`?e:()=>{}:null},s.attributes={Clamp:1,EnforceRange:2,AllowShared:4,AllowResizable:8,LegacyNullToEmptyString:16},t.exports={webidl:s}})),j=e.c(((e,t)=>{let{Transform:n}=require(`node:stream`),r=require(`node:zlib`),{redirectStatusSet:i,referrerPolicyTokens:a,badPortsSet:o}=T(),{getGlobalOrigin:s}=E(),{collectAnHTTPQuotedString:c,parseMIMEType:l}=k(),{performance:u}=require(`node:perf_hooks`),{ReadableStreamFrom:d,isValidHTTPToken:f,normalizedMethodRecordsBase:p}=m(),h=require(`node:assert`),{isUint8Array:g}=require(`node:util/types`),{webidl:_}=A(),{isomorphicEncode:v,collectASequenceOfCodePoints:y,removeChars:b}=O();function x(e){let t=e.urlList,n=t.length;return n===0?null:t[n-1].toString()}function S(e,t){if(!i.has(e.status))return null;let n=e.headersList.get(`location`,!0);return n!==null&&F(n)&&(C(n)||(n=w(n)),n=new URL(n,x(e))),n&&!n.hash&&(n.hash=t),n}function C(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n>126||n<32)return!1}return!0}function w(e){return Buffer.from(e,`binary`).toString(`utf8`)}function D(e){return e.urlList[e.urlList.length-1]}function j(e){let t=D(e);return $(t)&&o.has(t.port)?`blocked`:`allowed`}function M(e){return e instanceof Error||e?.constructor?.name===`Error`||e?.constructor?.name===`DOMException`}function N(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(!(n===9||n>=32&&n<=126||n>=128&&n<=255))return!1}return!0}let P=f;function F(e){return(e[0]===` `||e[0]===` `||e[e.length-1]===` `||e[e.length-1]===` `||e.includes(`
|
|
2
|
+
`)||e.includes(`\r`)||e.includes(`\0`))===!1}function I(e){let t=(e.headersList.get(`referrer-policy`,!0)??``).split(`,`),n=``;if(t.length)for(let e=t.length;e!==0;e--){let r=t[e-1].trim();if(a.has(r)){n=r;break}}return n}function L(e,t){let n=I(t);n!==``&&(e.referrerPolicy=n)}function R(){return`allowed`}function z(){return`success`}function B(){return`success`}function V(e){if(!J(D(e)))return;let t=null;t=e.mode,e.headersList.set(`sec-fetch-mode`,t,!0)}function ee(e){let t=e.origin;if(!(t===`client`||t===void 0)){if(e.responseTainting===`cors`||e.mode===`websocket`)e.headersList.append(`origin`,t,!0);else if(e.method!==`GET`&&e.method!==`HEAD`){switch(e.referrerPolicy){case`no-referrer`:t=null;break;case`no-referrer-when-downgrade`:case`strict-origin`:case`strict-origin-when-cross-origin`:e.origin&&he(e.origin)&&!he(D(e))&&(t=null);break;case`same-origin`:se(e,D(e))||(t=null);break;default:}e.headersList.append(`origin`,t,!0)}}}function H(e,t){return e}function U(e,t,n){return!e?.startTime||e.startTime<t?{domainLookupStartTime:t,domainLookupEndTime:t,connectionStartTime:t,connectionEndTime:t,secureConnectionStartTime:t,ALPNNegotiatedProtocol:e?.ALPNNegotiatedProtocol}:{domainLookupStartTime:H(e.domainLookupStartTime,n),domainLookupEndTime:H(e.domainLookupEndTime,n),connectionStartTime:H(e.connectionStartTime,n),connectionEndTime:H(e.connectionEndTime,n),secureConnectionStartTime:H(e.secureConnectionStartTime,n),ALPNNegotiatedProtocol:e.ALPNNegotiatedProtocol}}function W(e){return H(u.now(),e)}function te(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function ne(){return{referrerPolicy:`strict-origin-when-cross-origin`}}function re(e){return{referrerPolicy:e.referrerPolicy}}function G(e){let t=e.referrerPolicy;h(t);let n=null;if(e.referrer===`client`){let e=s();if(!e||e.origin===`null`)return`no-referrer`;n=new URL(e)}else _.is.URL(e.referrer)&&(n=e.referrer);let r=ie(n),i=ie(n,!0);switch(r.toString().length>4096&&(r=i),t){case`no-referrer`:return`no-referrer`;case`origin`:return i??ie(n,!0);case`unsafe-url`:return r;case`strict-origin`:{let t=D(e);return J(r)&&!J(t)?`no-referrer`:i}case`strict-origin-when-cross-origin`:{let t=D(e);return se(r,t)?r:J(r)&&!J(t)?`no-referrer`:i}case`same-origin`:return se(e,r)?r:`no-referrer`;case`origin-when-cross-origin`:return se(e,r)?r:i;case`no-referrer-when-downgrade`:{let t=D(e);return J(r)&&!J(t)?`no-referrer`:r}}}function ie(e,t=!1){return h(_.is.URL(e)),e=new URL(e),me(e)?`no-referrer`:(e.username=``,e.password=``,e.hash=``,t===!0&&(e.pathname=``,e.search=``),e)}let K=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)$/),ae=RegExp.prototype.test.bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/);function oe(e){return e.includes(`:`)?(e[0]===`[`&&e[e.length-1]===`]`&&(e=e.slice(1,-1)),ae(e)):K(e)}function q(e){return e==null||e===`null`?!1:(e=new URL(e),!!(e.protocol===`https:`||e.protocol===`wss:`||oe(e.hostname)||e.hostname===`localhost`||e.hostname===`localhost.`||e.hostname.endsWith(`.localhost`)||e.hostname.endsWith(`.localhost.`)||e.protocol===`file:`))}function J(e){return _.is.URL(e)?e.href===`about:blank`||e.href===`about:srcdoc`||e.protocol===`data:`||e.protocol===`blob:`?!0:q(e.origin):!1}function Y(e){}function se(e,t){return e.origin===t.origin&&e.origin===`null`||e.protocol===t.protocol&&e.hostname===t.hostname&&e.port===t.port}function X(e){return e.controller.state===`aborted`}function Z(e){return e.controller.state===`aborted`||e.controller.state===`terminated`}function ce(e){return p[e.toLowerCase()]??e}let le=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function Q(e,t,n=0,r=1){class i{#e;#t;#n;constructor(e,t){this.#e=e,this.#t=t,this.#n=0}next(){if(typeof this!=`object`||this===null||!(#e in this))throw TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let i=this.#n,a=t(this.#e);if(i>=a.length)return{value:void 0,done:!0};let{[n]:o,[r]:s}=a[i];this.#n=i+1;let c;switch(this.#t){case`key`:c=o;break;case`value`:c=s;break;case`key+value`:c=[o,s];break}return{value:c,done:!1}}}return delete i.prototype.constructor,Object.setPrototypeOf(i.prototype,le),Object.defineProperties(i.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(e,t){return new i(e,t)}}function ue(e,t,n,r=0,i=1){let a=Q(e,n,r,i),o={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return _.brandCheck(this,t),a(this,`key`)}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return _.brandCheck(this,t),a(this,`value`)}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return _.brandCheck(this,t),a(this,`key+value`)}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(n,r=globalThis){if(_.brandCheck(this,t),_.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof n!=`function`)throw TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:e,1:t}of a(this,`key+value`))n.call(r,t,e,this)}}};return Object.defineProperties(t.prototype,{...o,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:o.entries.value}})}function de(e,t,n){let r=t,i=n;try{pe(e.stream.getReader(),r,i)}catch(e){i(e)}}function fe(e){try{e.close(),e.byobRequest?.respond(0)}catch(e){if(!e.message.includes(`Controller is already closed`)&&!e.message.includes(`ReadableStream is already closed`))throw e}}async function pe(e,t,n){try{let r=[],i=0;do{let{done:a,value:o}=await e.read();if(a){t(Buffer.concat(r,i));return}if(!g(o)){n(TypeError(`Received non-Uint8Array chunk`));return}r.push(o),i+=o.length}while(!0)}catch(e){n(e)}}function me(e){h(`protocol`in e);let t=e.protocol;return t===`about:`||t===`blob:`||t===`data:`}function he(e){return typeof e==`string`&&e[5]===`:`&&e[0]===`h`&&e[1]===`t`&&e[2]===`t`&&e[3]===`p`&&e[4]===`s`||e.protocol===`https:`}function $(e){h(`protocol`in e);let t=e.protocol;return t===`http:`||t===`https:`}function ge(e,t){let n=e;if(!n.startsWith(`bytes`))return`failure`;let r={position:5};if(t&&y(e=>e===` `||e===` `,n,r),n.charCodeAt(r.position)!==61)return`failure`;r.position++,t&&y(e=>e===` `||e===` `,n,r);let i=y(e=>{let t=e.charCodeAt(0);return t>=48&&t<=57},n,r),a=i.length?Number(i):null;if(t&&y(e=>e===` `||e===` `,n,r),n.charCodeAt(r.position)!==45)return`failure`;r.position++,t&&y(e=>e===` `||e===` `,n,r);let o=y(e=>{let t=e.charCodeAt(0);return t>=48&&t<=57},n,r),s=o.length?Number(o):null;return r.position<n.length||s===null&&a===null||a!==null&&s!==null&&a>s?`failure`:{rangeStartValue:a,rangeEndValue:s}}function _e(e,t,n){let r=`bytes `;return r+=v(`${e}`),r+=`-`,r+=v(`${t}`),r+=`/`,r+=v(`${n}`),r}var ve=class extends n{#e;constructor(e){super(),this.#e=e}_transform(e,t,n){if(!this._inflateStream){if(e.length===0){n();return}this._inflateStream=(e[0]&15)==8?r.createInflate(this.#e):r.createInflateRaw(this.#e),this._inflateStream.on(`data`,this.push.bind(this)),this._inflateStream.on(`end`,()=>this.push(null)),this._inflateStream.on(`error`,e=>this.destroy(e))}this._inflateStream.write(e,t,n)}_final(e){this._inflateStream&&=(this._inflateStream.end(),null),e()}};function ye(e){return new ve(e)}function be(e){let t=null,n=null,r=null,i=Se(`content-type`,e);if(i===null)return`failure`;for(let e of i){let i=l(e);i===`failure`||i.essence===`*/*`||(r=i,r.essence===n?!r.parameters.has(`charset`)&&t!==null&&r.parameters.set(`charset`,t):(t=null,r.parameters.has(`charset`)&&(t=r.parameters.get(`charset`)),n=r.essence))}return r??`failure`}function xe(e){let t=e,n={position:0},r=[],i=``;for(;n.position<t.length;){if(i+=y(e=>e!==`"`&&e!==`,`,t,n),n.position<t.length)if(t.charCodeAt(n.position)===34){if(i+=c(t,n),n.position<t.length)continue}else h(t.charCodeAt(n.position)===44),n.position++;i=b(i,!0,!0,e=>e===9||e===32),r.push(i),i=``}return r}function Se(e,t){let n=t.get(e,!0);return n===null?null:xe(n)}function Ce(e){return!1}function we(e){return!!(e.username||e.password)}function Te(e){return e!=null&&e!==`client`&&e!==`no-traversable`}var Ee=class{get baseUrl(){return s()}get origin(){return this.baseUrl?.origin}policyContainer=ne()};t.exports={isAborted:X,isCancelled:Z,isValidEncodedURL:C,ReadableStreamFrom:d,tryUpgradeRequestToAPotentiallyTrustworthyURL:Y,clampAndCoarsenConnectionTimingInfo:U,coarsenedSharedCurrentTime:W,determineRequestsReferrer:G,makePolicyContainer:ne,clonePolicyContainer:re,appendFetchMetadata:V,appendRequestOriginHeader:ee,TAOCheck:B,corsCheck:z,crossOriginResourcePolicyCheck:R,createOpaqueTimingInfo:te,setRequestReferrerPolicyOnRedirect:L,isValidHTTPToken:f,requestBadPort:j,requestCurrentURL:D,responseURL:x,responseLocationURL:S,isURLPotentiallyTrustworthy:J,isValidReasonPhrase:N,sameOrigin:se,normalizeMethod:ce,iteratorMixin:ue,createIterator:Q,isValidHeaderName:P,isValidHeaderValue:F,isErrorLike:M,fullyReadBody:de,readableStreamClose:fe,urlIsLocal:me,urlHasHttpsScheme:he,urlIsHttpHttpsScheme:$,readAllBytes:pe,simpleRangeHeaderValue:ge,buildContentRange:_e,createInflate:ye,extractMimeType:be,getDecodeSplit:Se,environmentSettingsObject:new class{settingsObject=new Ee},isOriginIPPotentiallyTrustworthy:oe,hasAuthenticationEntry:Ce,includesCredentials:we,isTraversableNavigable:Te}})),M=e.c(((e,t)=>{let n={__proto__:null,"node:crypto":()=>require(`node:crypto`),"node:sqlite":()=>require(`node:sqlite`)};function r(e){try{return n[e](),!0}catch(e){if(e.code!==`ERR_UNKNOWN_BUILTIN_MODULE`&&e.code!==`ERR_NO_CRYPTO`)throw e;return!1}}let i=[`crypto`,`sqlite`];function a(e){if(i.includes(e))return r(`node:${e}`);throw TypeError(`unknown feature: ${e}`)}let o=new class{#e=new Map;clear(){this.#e.clear()}has(e){return this.#e.get(e)??this.#t(e)}set(e,t){if(i.includes(e)===!1)throw TypeError(`unknown feature: ${e}`);this.#e.set(e,t)}#t(e){let t=a(e);return this.#e.set(e,t),t}};t.exports.runtimeFeatures=o,t.exports.default=o})),N=e.c(((e,t)=>{let{iteratorMixin:n}=j(),{kEnumerableProperty:r}=m(),{webidl:i}=A(),a=require(`node:util`),{runtimeFeatures:o}=M(),s=o.has(`crypto`)?require(`node:crypto`).randomInt:e=>Math.floor(Math.random()*e);var c=class e{#e=[];#t=null;constructor(e=void 0){if(i.util.markAsUncloneable(this),e!==void 0)throw i.errors.conversionFailed({prefix:`FormData constructor`,argument:`Argument 1`,types:[`undefined`]})}append(t,n,r=void 0){i.brandCheck(this,e);let a=`FormData.append`;i.argumentLengthCheck(arguments,2,a),t=i.converters.USVString(t),arguments.length===3||i.is.Blob(n)?(n=i.converters.Blob(n,a,`value`),r!==void 0&&(r=i.converters.USVString(r))):n=i.converters.USVString(n);let o=f(t,n,r);this.#e.push(o)}delete(t){i.brandCheck(this,e),i.argumentLengthCheck(arguments,1,`FormData.delete`),t=i.converters.USVString(t),this.#e=this.#e.filter(e=>e.name!==t)}get(t){i.brandCheck(this,e),i.argumentLengthCheck(arguments,1,`FormData.get`),t=i.converters.USVString(t);let n=this.#e.findIndex(e=>e.name===t);return n===-1?null:this.#e[n].value}getAll(t){return i.brandCheck(this,e),i.argumentLengthCheck(arguments,1,`FormData.getAll`),t=i.converters.USVString(t),this.#e.filter(e=>e.name===t).map(e=>e.value)}has(t){return i.brandCheck(this,e),i.argumentLengthCheck(arguments,1,`FormData.has`),t=i.converters.USVString(t),this.#e.findIndex(e=>e.name===t)!==-1}set(t,n,r=void 0){i.brandCheck(this,e);let a=`FormData.set`;i.argumentLengthCheck(arguments,2,a),t=i.converters.USVString(t),arguments.length===3||i.is.Blob(n)?(n=i.converters.Blob(n,a,`value`),r!==void 0&&(r=i.converters.USVString(r))):n=i.converters.USVString(n);let o=f(t,n,r),s=this.#e.findIndex(e=>e.name===t);s===-1?this.#e.push(o):this.#e=[...this.#e.slice(0,s),o,...this.#e.slice(s+1).filter(e=>e.name!==t)]}[a.inspect.custom](e,t){let n=this.#e.reduce((e,t)=>(e[t.name]?Array.isArray(e[t.name])?e[t.name].push(t.value):e[t.name]=[e[t.name],t.value]:e[t.name]=t.value,e),{__proto__:null});t.depth??=e,t.colors??=!0;let r=a.formatWithOptions(t,n);return`FormData ${r.slice(r.indexOf(`]`)+2)}`}static getFormDataState(e){return e.#e}static setFormDataState(e,t){e.#e=t}static getFormDataBoundary(e){return e.#t??=`----formdata-undici-0${`${s(1e11)}`.padStart(11,`0`)}`}};let{getFormDataState:l,setFormDataState:u,getFormDataBoundary:d}=c;Reflect.deleteProperty(c,`getFormDataState`),Reflect.deleteProperty(c,`setFormDataState`),Reflect.deleteProperty(c,`getFormDataBoundary`),n(`FormData`,c,l,`name`,`value`),Object.defineProperties(c.prototype,{append:r,delete:r,get:r,getAll:r,has:r,set:r,[Symbol.toStringTag]:{value:`FormData`,configurable:!0}});function f(e,t,n){if(typeof t!=`string`&&(i.is.File(t)||(t=new File([t],`blob`,{type:t.type})),n!==void 0)){let e={type:t.type,lastModified:t.lastModified};t=new File([t],n,e)}return{name:e,value:t}}i.is.FormData=i.util.MakeTypeAssertion(c),t.exports={FormData:c,makeEntry:f,setFormDataState:u,getFormDataBoundary:d}})),P=e.c(((e,t)=>{let{bufferToLowerCasedHeaderName:n}=m(),{HTTP_TOKEN_CODEPOINTS:r}=k(),{makeEntry:i}=N(),{webidl:a}=A(),o=require(`node:assert`),{isomorphicDecode:s}=O(),c=Buffer.from(`--`),l=new TextDecoder,u=new TextDecoder(`utf-8`,{ignoreBOM:!0});function d(e){for(let t=0;t<e.length;++t)if(e.charCodeAt(t)&-128)return!1;return!0}function f(e){let t=e.length;if(t<27||t>70)return!1;for(let n=0;n<t;++n){let t=e.charCodeAt(n);if(!(t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||t===39||t===45||t===95))return!1}return!0}function p(e,t){o(t!==`failure`&&t.essence===`multipart/form-data`);let n=t.parameters.get(`boundary`);if(n===void 0)throw b(`missing boundary in content-type header`);let r=Buffer.from(`--${n}`,`utf8`),s=[],l={position:0},f=e.indexOf(r);if(f===-1)throw b(`no boundary found in multipart body`);for(l.position=f;;){if(e.subarray(l.position,l.position+r.length).equals(r))l.position+=r.length;else throw b(`expected a value starting with -- and the boundary`);if(y(e,c,l))return s;if(e[l.position]!==13||e[l.position+1]!==10)throw b(`expected CRLF`);l.position+=2;let{name:t,filename:n,contentType:f,encoding:p}=g(e,l);l.position+=2;let m;{let t=e.indexOf(r.subarray(2),l.position);if(t===-1)throw b(`expected boundary after body`);m=e.subarray(l.position,t-4),l.position+=m.length,p===`base64`&&(m=Buffer.from(m.toString(),`base64`))}if(e[l.position]!==13||e[l.position+1]!==10)throw b(`expected CRLF`);l.position+=2;let h;n===null?h=u.decode(Buffer.from(m)):(f??=`text/plain`,d(f)||(f=``),h=new File([m],n,{type:f})),o(a.is.USVString(t)),o(typeof h==`string`&&a.is.USVString(h)||a.is.File(h)),s.push(i(t,h,n))}}function h(e,t){e[t.position]===59&&t.position++,_(e=>e===32||e===9,e,t);let n=_(e=>C(e)&&e!==61&&e!==42,e,t);if(n.length===0)return null;let r=n.toString(`ascii`).toLowerCase(),i=e[t.position]===42;if(i&&t.position++,e[t.position]!==61)return null;t.position++,_(e=>e===32||e===9,e,t);let a;if(i){let n=_(e=>e!==32&&e!==13&&e!==10&&e!==59,e,t);if(n[0]!==117&&n[0]!==85||n[1]!==116&&n[1]!==84||n[2]!==102&&n[2]!==70||n[3]!==45||n[4]!==56)throw b(`unknown encoding, expected utf-8''`);a=decodeURIComponent(l.decode(n.subarray(7)))}else if(e[t.position]===34){t.position++;let n=_(e=>e!==10&&e!==13&&e!==34,e,t);if(e[t.position]!==34)throw b(`Closing quote not found`);t.position++,a=l.decode(n).replace(/%0A/gi,`
|
|
3
3
|
`).replace(/%0D/gi,`\r`).replace(/%22/g,`"`)}else{let n=_(e=>C(e)&&e!==59,e,t);a=l.decode(n)}return{name:r,value:a,extended:i}}function g(e,t){let i=null,a=null,o=null,c=null;for(;;){if(e[t.position]===13&&e[t.position+1]===10){if(i===null)throw b(`header name is null`);return{name:i,filename:a,contentType:o,encoding:c}}let l=_(e=>e!==10&&e!==13&&e!==58,e,t);if(l=v(l,!0,!0,e=>e===9||e===32),!r.test(l.toString()))throw b(`header name does not match the field-name token production`);if(e[t.position]!==58)throw b(`expected :`);switch(t.position++,_(e=>e===32||e===9,e,t),n(l)){case`content-disposition`:{i=a=null;let n=!1;if(_(e=>C(e),e,t).toString(`ascii`).toLowerCase()!==`form-data`)throw b(`expected form-data for content-disposition header`);for(;t.position<e.length&&(e[t.position]!==13||e[t.position+1]!==10);){let r=h(e,t);if(!r)break;r.name===`name`?i=r.value:r.name===`filename`&&(r.extended?(a=r.value,n=!0):n||(a=r.value))}if(i===null)throw b(`name attribute is required in content-disposition header`);break}case`content-type`:{let n=_(e=>e!==10&&e!==13,e,t);n=v(n,!1,!0,e=>e===9||e===32),o=s(n);break}case`content-transfer-encoding`:{let n=_(e=>e!==10&&e!==13,e,t);n=v(n,!1,!0,e=>e===9||e===32),c=s(n);break}default:_(e=>e!==10&&e!==13,e,t)}if(e[t.position]!==13||e[t.position+1]!==10)throw b(`expected CRLF`);t.position+=2}}function _(e,t,n){let r=n.position;for(;r<t.length&&e(t[r]);)++r;return t.subarray(n.position,n.position=r)}function v(e,t,n,r){let i=0,a=e.length-1;if(t)for(;i<e.length&&r(e[i]);)i++;if(n)for(;a>0&&r(e[a]);)a--;return i===0&&a===e.length-1?e:e.subarray(i,a+1)}function y(e,t,n){if(e.length<t.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[n.position+r])return!1;return!0}function b(e){return TypeError(`Failed to parse body as FormData.`,{cause:TypeError(e)})}function x(e){return e<=31||e===127}function S(e){return e===40||e===41||e===60||e===62||e===64||e===44||e===59||e===58||e===92||e===34||e===47||e===91||e===93||e===63||e===61}function C(e){return e<=127&&e!==32&&e!==9&&!x(e)&&!S(e)}t.exports={multipartFormDataParser:p,validateBoundary:f}})),F=e.c(((e,t)=>{let n=m(),{ReadableStreamFrom:r,readableStreamClose:i,fullyReadBody:a,extractMimeType:o}=j(),{FormData:s,setFormDataState:c,getFormDataBoundary:l}=N(),{webidl:u}=A(),d=require(`node:assert`),{isErrored:f,isDisturbed:p}=require(`node:stream`),{isUint8Array:h}=require(`node:util/types`),{serializeAMimeType:g}=k(),{multipartFormDataParser:_}=P(),{parseJSONFromBytes:v}=O(),{utf8DecodeBytes:y}=D(),{ReadableStreamTee:b}=require(`node:stream/web`),x=new TextEncoder;function S(){}let C=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&!p(t)&&!f(t)&&t.cancel(`Response object has been garbage collected`).catch(S)});function w(e,t=!1){let a=null,o=null;a=u.is.ReadableStream(e)?e:u.is.Blob(e)?e.stream():new ReadableStream({pull(){},start(e){o=e},cancel(){},type:`bytes`}),d(u.is.ReadableStream(a));let s=null,c=null,p=null,m=null;if(typeof e==`string`)c=e,m=`text/plain;charset=UTF-8`;else if(u.is.URLSearchParams(e))c=e.toString(),m=`application/x-www-form-urlencoded;charset=UTF-8`;else if(u.is.BufferSource(e))c=u.util.getCopyOfBytesHeldByBufferSource(e);else if(u.is.FormData(e)){let t=l(e),n=`--${t}\r\nContent-Disposition: form-data`,r=e=>e.replace(/\n/g,`%0A`).replace(/\r/g,`%0D`).replace(/"/g,`%22`),i=e=>e.replace(/\r?\n|\r/g,`\r
|
|
4
4
|
`),a=[],o=new Uint8Array([13,10]);p=0;let u=!1;for(let[t,s]of e)if(typeof s==`string`){let e=x.encode(n+`; name="${r(i(t))}"\r\n\r\n${i(s)}\r\n`);a.push(e),p+=e.byteLength}else{let e=x.encode(`${n}; name="${r(i(t))}"`+(s.name?`; filename="${r(s.name)}"`:``)+`\r
|
|
5
|
-
Content-Type: ${s.type||`application/octet-stream`}\r\n\r\n`);a.push(e,s,o),typeof s.size==`number`?p+=e.byteLength+s.size+o.byteLength:u=!0}let d=x.encode(`--${t}--\r\n`);a.push(d),p+=d.byteLength,u&&(p=null),c=e,s=async function*(){for(let e of a)e.stream?yield*e.stream():yield e},m=`multipart/form-data; boundary=${t}`}else if(u.is.Blob(e))c=e,p=e.size,e.type&&(m=e.type);else if(typeof e[Symbol.asyncIterator]==`function`){if(t)throw TypeError(`keepalive`);if(n.isDisturbed(e)||e.locked)throw TypeError(`Response body object should not be disturbed or locked`);a=u.is.ReadableStream(e)?e:r(e)}return(typeof c==`string`||h(c))&&(s=()=>(p=typeof c==`string`?Buffer.byteLength(c):c.length,c)),s!=null&&(async()=>{let e=s(),t=e?.[Symbol.asyncIterator]?.();if(t)for await(let e of t){if(f(a))break;e.length&&o.enqueue(new Uint8Array(e))}else e?.length&&!f(a)&&o.enqueue(typeof e==`string`?x.encode(e):new Uint8Array(e));queueMicrotask(()=>i(o))})(),[{stream:a,source:c,length:p},m]}function T(e,t=!1){return u.is.ReadableStream(e)&&(d(!n.isDisturbed(e),`The body has already been consumed.`),d(!e.locked,`The stream is locked.`)),w(e,t)}function E(e){let{0:t,1:n}=b?.(e.stream,!0)??e.stream.tee();return e.stream=t,{stream:n,length:e.length,source:e.source}}function M(e,t){return{blob(){return I(this,e=>{let n=R(t(this));return n===null?n=``:n&&=g(n),new Blob([e],{type:n})},e,t)},arrayBuffer(){return I(this,e=>new Uint8Array(e).buffer,e,t)},text(){return I(this,y,e,t)},json(){return I(this,v,e,t)},formData(){return I(this,e=>{let n=R(t(this));if(n!==null)switch(n.essence){case`multipart/form-data`:{let t=_(e,n),r=new s;return c(r,t),r}case`application/x-www-form-urlencoded`:{let t=new URLSearchParams(e.toString()),n=new s;for(let[e,r]of t)n.append(e,r);return n}}throw TypeError(`Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".`)},e,t)},bytes(){return I(this,e=>new Uint8Array(e),e,t)},textStream(){let e=t(this);if(L(e))throw TypeError(`Body is unusable: Body has already been read`);if(e.body==null){let e,t=new ReadableStream({start:t=>{e=t},pull:()=>Promise.resolve(),cancel:()=>Promise.resolve()},{size:()=>1});return e.close(),t}let n=e.body.stream,r=new TextDecoderStream(`UTF-8`);return n.pipeThrough(r)}}}function F(e,t){Object.assign(e.prototype,M(e,t))}function I(e,t,n,r){try{u.brandCheck(e,n)}catch(e){return Promise.reject(e)}if(e=r(e),L(e))return Promise.reject(TypeError(`Body is unusable: Body has already been read`));let i=Promise.withResolvers(),o=i.reject,s=e=>{try{i.resolve(t(e))}catch(e){o(e)}};return e.body==null?(s(Buffer.allocUnsafe(0)),i.promise):(a(e.body,s,o),i.promise)}function L(e){let t=e.body;return t!=null&&(t.stream.locked||n.isDisturbed(t.stream))}function R(e){let t=e.headersList,n=o(t);return n===`failure`?null:n}t.exports={extractBody:w,safelyExtractBody:T,cloneBody:E,mixinBody:F,streamRegistry:C,bodyUnusable:L}})),I=e.c(((e,t)=>{let n=require(`node:assert`),r=m(),{channels:i}=g(),a=u(),{RequestContentLengthMismatchError:o,ResponseContentLengthMismatchError:s,RequestAbortedError:c,InvalidArgumentError:f,HeadersTimeoutError:p,HeadersOverflowError:h,SocketError:_,InformationalError:v,BodyTimeoutError:y,HTTPParserError:b,ResponseExceededMaxSizeError:x}=d(),{kUrl:T,kReset:E,kClient:D,kParser:O,kBlocking:k,kRunning:A,kPending:j,kSize:M,kWriting:N,kQueue:P,kNoRef:I,kKeepAliveDefaultTimeout:L,kHostHeader:R,kPendingIdx:z,kRunningIdx:B,kError:V,kPipelining:ee,kSocket:H,kKeepAliveTimeoutValue:U,kMaxHeadersSize:W,kKeepAliveMaxTimeout:te,kKeepAliveTimeoutThreshold:G,kHeadersTimeout:ne,kBodyTimeout:K,kStrictContentLength:re,kMaxRequests:q,kCounter:ie,kMaxResponseSize:ae,kOnError:J,kResume:Y,kHTTPContext:X,kClosed:oe}=l(),Z=S(),Q=Buffer.alloc(0),se=Buffer[Symbol.species],ce=r.removeAllListeners,le=Symbol(`kIdleSocketValidation`),ue=Symbol(`kIdleSocketValidationTimeout`),de=Symbol(`kSocketUsed`),fe=Symbol(`kTypeOfService`),pe;function me(){let e=process.env.JEST_WORKER_ID?C():void 0,t,r=process.arch!==`ppc64`;if(process.env.UNDICI_NO_WASM_SIMD===`1`?r=!1:process.env.UNDICI_NO_WASM_SIMD===`0`&&(r=!0),r)try{t=new WebAssembly.Module(w())}catch{}return t||=new WebAssembly.Module(e||C()),new WebAssembly.Instance(t,{env:{wasm_on_url:(e,t,n)=>0,wasm_on_status:(e,t,r)=>{n($.ptr===e);let i=t-ve+ge.byteOffset;return $.onStatus(new se(ge.buffer,i,r))},wasm_on_message_begin:e=>(n($.ptr===e),$.onMessageBegin()),wasm_on_header_field:(e,t,r)=>{n($.ptr===e);let i=t-ve+ge.byteOffset;return $.onHeaderField(new se(ge.buffer,i,r))},wasm_on_header_value:(e,t,r)=>{n($.ptr===e);let i=t-ve+ge.byteOffset;return $.onHeaderValue(new se(ge.buffer,i,r))},wasm_on_headers_complete:(e,t,r,i)=>(n($.ptr===e),$.onHeadersComplete(t,r===1,i===1)),wasm_on_body:(e,t,r)=>{n($.ptr===e);let i=t-ve+ge.byteOffset;return $.onBody(new se(ge.buffer,i,r))},wasm_on_message_complete:e=>(n($.ptr===e),$.onMessageComplete())}})}let he=null,$=null,ge=null,_e=0,ve=null,ye=null;var be=class{constructor(e,t,{exports:n}){this.llhttp=n,this.ptr=this.llhttp.llhttp_alloc(Z.TYPE.RESPONSE),this.client=e,this.socket=t,this.timeout=null,this.timeoutWeakRef=new WeakRef(this),this.timeoutValue=null,this.timeoutType=null,this.statusCode=0,this.statusText=``,this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=e[W],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive=``,this.contentLength=-1,this.connectionKeepAlive=!1,this.maxResponseSize=e[ae]}setTimeout(e,t){e!==this.timeoutValue||t&1^this.timeoutType&1?(this.timeout&&=(a.clearTimeout(this.timeout),null),e&&(t&1?this.timeout=a.setFastTimeout(xe,e,this.timeoutWeakRef):(this.timeout=setTimeout(xe,e,this.timeoutWeakRef),this.timeout?.unref())),this.timeoutValue=e):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=t}resume(){this.socket.destroyed||!this.paused||(n(this.ptr!=null),n($===null),this.llhttp.llhttp_resume(this.ptr),n(this.timeoutType===5),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||Q),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let e=this.socket.read();if(e===null)break;this.execute(e)}}execute(e){n($===null),n(this.ptr!=null),n(!this.paused);let{socket:t,llhttp:i}=this;e.length>_e&&(ve&&i.free(ve),_e=Math.ceil(e.length/4096)*4096,ve=i.malloc(_e)),(ye===null||ye.buffer!==i.memory.buffer||ye.byteOffset!==ve||ye.byteLength!==_e)&&(ye=new Uint8Array(i.memory.buffer,ve,_e)),ye.set(e);try{let n;try{ge=e,$=this,n=i.llhttp_execute(this.ptr,ve,e.length)}finally{$=null,ge=null}if(n!==Z.ERROR.OK){let r=e.subarray(i.llhttp_get_error_pos(this.ptr)-ve);if(n===Z.ERROR.PAUSED_UPGRADE)this.onUpgrade(r);else if(n===Z.ERROR.PAUSED)this.paused=!0,t.unshift(r);else throw this.createError(n,r)}}catch(e){r.destroy(t,e)}}finish(){n($===null),n(this.ptr!=null);let{llhttp:e}=this;if(this.paused){let t;do e.llhttp_resume(this.ptr),this.paused=!1,t=this.socket.read()||Q,this.execute(t);while(this.paused&&t.length>0);this.paused&&=(e.llhttp_resume(this.ptr),!1)}let t;try{$=this,t=e.llhttp_finish(this.ptr)}finally{$=null}return t===Z.ERROR.OK?null:t===Z.ERROR.PAUSED||t===Z.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(t,Q)}createError(e,t){let{llhttp:n,contentLength:r,bytesRead:i}=this;if(r!==-1&&i!==r)return new s;let a=n.llhttp_get_error_reason(this.ptr),o=``;if(a){let e=new Uint8Array(n.memory.buffer,a).indexOf(0);o=`Response does not match the HTTP/1.1 protocol (`+Buffer.from(n.memory.buffer,a,e).toString()+`)`}return new b(o,Z.ERROR[e],t)}destroy(){n($===null),n(this.ptr!=null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&a.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:t}=this;if(e.destroyed)return-1;if(t[A]===0)return r.destroy(e,new _(`bad response`,r.getSocketInfo(e))),-1;let n=t[P][t[B]];return n?(n.onResponseStarted(),0):-1}onHeaderField(e){let t=this.headers.length;return t&1?this.headers[t-1]=Buffer.concat([this.headers[t-1],e]):this.headers.push(e),this.trackHeader(e.length),0}onHeaderValue(e){let t=this.headers.length;(t&1)==1?(this.headers.push(e),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]);let n=this.headers[t-2];if(n.length===10){let i=r.bufferToLowerCasedHeaderName(n);i===`keep-alive`?this.keepAlive+=e.toString():i===`connection`&&(this.connectionKeepAlive=this.headers[t-1].length===10&&r.bufferToLowerCasedHeaderName(this.headers[t-1])===`keep-alive`)}else if(n.length===14&&r.bufferToLowerCasedHeaderName(n)===`content-length`){this.contentLength===-1&&(this.contentLength=0);for(let t=0;t<e.length;t++)this.contentLength=this.contentLength*10+(e[t]-48)}return this.trackHeader(e.length),0}trackHeader(e){this.headersSize+=e,this.headersSize>=this.headersMaxSize&&r.destroy(this.socket,new h)}onUpgrade(e){let{upgrade:t,client:i,socket:a,headers:o,statusCode:s}=this;n(t),n(i[H]===a),n(!a.destroyed),n(!this.paused),n((o.length&1)==0);let c=i[P][i[B]];n(c),n(c.upgrade||c.method===`CONNECT`),this.statusCode=0,this.statusText=``,this.shouldKeepAlive=!1,this.headers=[],this.headersSize=0,a.unshift(e),a[O].destroy(),a[O]=null,a[D]=null,a[V]=null,ce(a),i[H]=null,i[X]=null,i[P][i[B]++]=null,i.emit(`disconnect`,i[T],[i],new v(`upgrade`));try{c.onRequestUpgrade(s,o,a)}catch(e){r.destroy(a,e)}i[Y]()}onHeadersComplete(e,t,i){let{client:a,socket:o,headers:s,statusText:c}=this;if(o.destroyed)return-1;if(a[A]===0)return r.destroy(o,new _(`bad response`,r.getSocketInfo(o))),-1;let l=a[P][a[B]];if(!l)return-1;if(n(!this.upgrade),n(this.statusCode<200),e===100)return r.destroy(o,new _(`bad response`,r.getSocketInfo(o))),-1;if(t&&!l.upgrade)return r.destroy(o,new _(`bad upgrade`,r.getSocketInfo(o))),-1;if(n(this.timeoutType===3),this.statusCode=e,this.shouldKeepAlive=i||l.method===`HEAD`&&!o[E]&&this.connectionKeepAlive,this.statusCode>=200){let e=l.bodyTimeout==null?a[K]:l.bodyTimeout;this.setTimeout(e,5)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(l.method===`CONNECT`||t)return n(a[A]===1),this.upgrade=!0,2;if(n((this.headers.length&1)==0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&a[ee]){let e=this.keepAlive?r.parseKeepAliveTimeout(this.keepAlive):null;if(e!=null){let t=Math.min(e-a[G],a[te]);t<=0?o[E]=!0:a[U]=t}else a[U]=a[L]}else o[E]=!0;let u=l.onResponseStart(e,s,this.resume,c)===!1;return l.aborted?-1:l.method===`HEAD`||e<200?1:(o[k]&&(o[k]=!1,a[Y]()),u?Z.ERROR.PAUSED:0)}onBody(e){let{client:t,socket:i,statusCode:a,maxResponseSize:o}=this;if(i.destroyed)return-1;let s=t[P][t[B]];return n(s),n(this.timeoutType===5),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),n(a>=200),o>-1&&this.bytesRead+e.length>o?(r.destroy(i,new x),-1):(this.bytesRead+=e.length,s.onResponseData(e)===!1?Z.ERROR.PAUSED:0)}onMessageComplete(){let{client:e,socket:t,statusCode:i,upgrade:a,headers:o,contentLength:c,bytesRead:l,shouldKeepAlive:u}=this;if(t.destroyed&&(!i||u))return-1;if(a)return 0;n(i>=100),n((this.headers.length&1)==0);let d=e[P][e[B]];return n(d),this.statusCode=0,this.statusText=``,this.bytesRead=0,this.contentLength=-1,this.keepAlive=``,this.connectionKeepAlive=!1,this.headers=[],this.headersSize=0,i<200?0:d.method!==`HEAD`&&c!==-1&&l!==c?(r.destroy(t,new s),-1):(d.onResponseEnd(o),e[P][e[B]++]=null,t[de]=e[j]===0,t[N]?(n(e[A]===0),r.destroy(t,new v(`reset`)),Z.ERROR.PAUSED):u?t[E]&&e[A]===0?(r.destroy(t,new v(`reset`)),Z.ERROR.PAUSED):(e[ee]==null||e[ee]===1?setImmediate(e[Y]):e[Y](),0):(r.destroy(t,new v(`reset`)),Z.ERROR.PAUSED))}};function xe(e){let t=e.deref();if(!t)return;let{socket:i,timeoutType:a,client:o,paused:s}=t;a===3?(!i[N]||i.writableNeedDrain||o[A]>1)&&(n(!s,`cannot be paused while waiting for headers`),r.destroy(i,new p)):a===5?s||r.destroy(i,new y):a===8&&(n(o[A]===0&&o[U]),r.destroy(i,new v(`socket idle timeout`)))}function Se(e,t){if(e[H]=t,he||=me(),t.errored)throw t.errored;if(t.destroyed)throw new _(`destroyed`);return t[I]=!1,t[N]=!1,t[E]=!1,t[k]=!1,t[le]=0,t[ue]=null,t[de]=!1,t[O]=new be(e,t,he),r.addListener(t,`error`,Ce),r.addListener(t,`readable`,we),r.addListener(t,`end`,Te),r.addListener(t,`close`,Ee),t[oe]=!1,t.on(`close`,De),{version:`h1`,defaultPipelining:1,write(t){return Ne(e,t)},resume(){Ae(e)},destroy(e,n){t[oe]?queueMicrotask(n):(t.on(`close`,n),t.destroy(e))},get destroyed(){return t.destroyed},busy(n){return!!(t[N]||t[E]||t[k]||t[le]===1||n&&(e[A]>0&&!n.idempotent||e[A]>0&&(n.upgrade||n.method===`CONNECT`)||e[A]>0&&r.bodyLength(n.body)!==0&&(r.isStream(n.body)||r.isAsyncIterable(n.body)||r.isFormDataLike(n.body))))}}}function Ce(e){n(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`);let t=this[O];if(e.code===`ECONNRESET`&&t.statusCode&&!t.shouldKeepAlive){let e=t.finish();e&&(this[V]=e,this[D][J](e));return}this[V]=e,this[D][J](e)}function we(){this[O]?.readMore()}function Te(){let e=this[O];if(e.statusCode&&!e.shouldKeepAlive){let t=e.finish();t&&r.destroy(this,t);return}r.destroy(this,new _(`other side closed`,r.getSocketInfo(this)))}function Ee(){let e=this[O];Oe(this),e&&(!this[V]&&e.statusCode&&!e.shouldKeepAlive&&(this[V]=e.finish()||this[V]),this[O].destroy(),this[O]=null);let t=this[V]||new _(`closed`,r.getSocketInfo(this)),i=this[D];if(i[H]=null,i[X]=null,i.destroyed){n(i[j]===0);let e=i[P].splice(i[B]);for(let n=0;n<e.length;n++){let a=e[n];r.errorRequest(i,a,t)}}else if(i[A]>0&&t.code!==`UND_ERR_INFO`){let e=i[P][i[B]];i[P][i[B]++]=null,r.errorRequest(i,e,t)}i[z]=i[B],n(i[A]===0),i.emit(`disconnect`,i[T],[i],t),i[Y]()}function De(){this[oe]=!0}function Oe(e){e[ue]&&(clearImmediate(e[ue]),e[ue]=null),e[le]=0}function ke(e,t){t[le]=1,t[ue]=setImmediate(()=>{t[ue]=null,t[le]=2,e[H]===t&&!t.destroyed&&e[Y]()})}function Ae(e){let t=e[H];if(t&&!t.destroyed){if(e[M]===0?!t[I]&&t.unref&&(t.unref(),t[I]=!0):t[I]&&t.ref&&(t.ref(),t[I]=!1),e[A]===0&&e[j]>0&&t[de]){if(t[le]===0)return ke(e,t),t[O].readMore(),t.destroyed,void 0;if(t[le]===1)return t[O].readMore(),t.destroyed,void 0}if(e[A]===0&&(t[O].readMore(),t.destroyed))return;if(e[M]===0)t[O].timeoutType!==8&&t[O].setTimeout(e[U],8);else if(e[A]>0&&t[O].statusCode<200&&t[O].timeoutType!==3){let n=e[P][e[B]],r=n.headersTimeout==null?e[ne]:n.headersTimeout;t[O].setTimeout(r,3)}}}function je(e){return e!==`GET`&&e!==`HEAD`&&e!==`OPTIONS`&&e!==`TRACE`&&e!==`CONNECT`}function Me(e,t){if(typeof e.setTypeOfService!=`function`)return;let n=t.typeOfService;if(n!==void 0&&e[fe]!==n)try{e.setTypeOfService(n),e[fe]=n}catch{}}function Ne(e,t){let{method:a,path:s,host:l,upgrade:u,blocking:d,reset:p}=t,{body:m,headers:h,contentLength:g}=t,_=a===`PUT`||a===`POST`||a===`PATCH`||a===`QUERY`||a===`PROPFIND`||a===`PROPPATCH`;if(r.isFormDataLike(m)){pe||=F().extractBody;let[e,n]=pe(m);t.contentType??h.push(`content-type`,n),m=e.stream,g=e.length}else if(r.isBlobLike(m)&&t.contentType==null){let n=m.type;if(n){let i=`${n}`;if(!r.isValidHeaderValue(i))return r.errorRequest(e,t,new f(`invalid content-type header`)),!1;h.push(`content-type`,i)}}m&&typeof m.read==`function`&&m.read(0);let y=r.bodyLength(m);if(g=y??g,g===null&&(g=t.contentLength),g===0&&!_&&(g=null),je(a)&&g>0&&t.contentLength!==null&&t.contentLength!==g){if(e[re])return r.errorRequest(e,t,new o),!1;process.emitWarning(new o)}let b=e[H];Oe(b);let x=n=>{t.aborted||t.completed||(r.errorRequest(e,t,n||new c),r.destroy(m),r.destroy(b,new v(`aborted`)))};try{t.onRequestStart(x,null)}catch(n){r.errorRequest(e,t,n)}if(t.aborted)return!1;a===`HEAD`&&(b[E]=!0),(u||a===`CONNECT`)&&(b[E]=!0),p!=null&&(b[E]=p),e[q]&&++b[ie]>=e[q]&&(b[E]=!0),d&&(b[k]=!0),Me(b,t);let S=`${a} ${s} HTTP/1.1\r\n`;if(typeof l==`string`?S+=`host: ${l}\r\n`:S+=e[R],u?S+=`connection: upgrade\r\nupgrade: ${u}\r\n`:e[ee]&&!b[E]?S+=`connection: keep-alive\r
|
|
5
|
+
Content-Type: ${s.type||`application/octet-stream`}\r\n\r\n`);a.push(e,s,o),typeof s.size==`number`?p+=e.byteLength+s.size+o.byteLength:u=!0}let d=x.encode(`--${t}--\r\n`);a.push(d),p+=d.byteLength,u&&(p=null),c=e,s=async function*(){for(let e of a)e.stream?yield*e.stream():yield e},m=`multipart/form-data; boundary=${t}`}else if(u.is.Blob(e))c=e,p=e.size,e.type&&(m=e.type);else if(typeof e[Symbol.asyncIterator]==`function`){if(t)throw TypeError(`keepalive`);if(n.isDisturbed(e)||e.locked)throw TypeError(`Response body object should not be disturbed or locked`);a=u.is.ReadableStream(e)?e:r(e)}return(typeof c==`string`||h(c))&&(s=()=>(p=typeof c==`string`?Buffer.byteLength(c):c.length,c)),s!=null&&(async()=>{let e=s(),t=e?.[Symbol.asyncIterator]?.();if(t)for await(let e of t){if(f(a))break;e.length&&o.enqueue(new Uint8Array(e))}else e?.length&&!f(a)&&o.enqueue(typeof e==`string`?x.encode(e):new Uint8Array(e));queueMicrotask(()=>i(o))})(),[{stream:a,source:c,length:p},m]}function T(e,t=!1){return u.is.ReadableStream(e)&&(d(!n.isDisturbed(e),`The body has already been consumed.`),d(!e.locked,`The stream is locked.`)),w(e,t)}function E(e){let{0:t,1:n}=b?.(e.stream,!0)??e.stream.tee();return e.stream=t,{stream:n,length:e.length,source:e.source}}function M(e,t){return{blob(){return I(this,e=>{let n=R(t(this));return n===null?n=``:n&&=g(n),new Blob([e],{type:n})},e,t)},arrayBuffer(){return I(this,e=>new Uint8Array(e).buffer,e,t)},text(){return I(this,y,e,t)},json(){return I(this,v,e,t)},formData(){return I(this,e=>{let n=R(t(this));if(n!==null)switch(n.essence){case`multipart/form-data`:{let t=_(e,n),r=new s;return c(r,t),r}case`application/x-www-form-urlencoded`:{let t=new URLSearchParams(e.toString()),n=new s;for(let[e,r]of t)n.append(e,r);return n}}throw TypeError(`Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".`)},e,t)},bytes(){return I(this,e=>new Uint8Array(e),e,t)},textStream(){let e=t(this);if(L(e))throw TypeError(`Body is unusable: Body has already been read`);if(e.body==null){let e,t=new ReadableStream({start:t=>{e=t},pull:()=>Promise.resolve(),cancel:()=>Promise.resolve()},{size:()=>1});return e.close(),t}let n=e.body.stream,r=new TextDecoderStream(`UTF-8`);return n.pipeThrough(r)}}}function F(e,t){Object.assign(e.prototype,M(e,t))}function I(e,t,n,r){try{u.brandCheck(e,n)}catch(e){return Promise.reject(e)}if(e=r(e),L(e))return Promise.reject(TypeError(`Body is unusable: Body has already been read`));let i=Promise.withResolvers(),o=i.reject,s=e=>{try{i.resolve(t(e))}catch(e){o(e)}};return e.body==null?(s(Buffer.allocUnsafe(0)),i.promise):(a(e.body,s,o),i.promise)}function L(e){let t=e.body;return t!=null&&(t.stream.locked||n.isDisturbed(t.stream))}function R(e){let t=e.headersList,n=o(t);return n===`failure`?null:n}t.exports={extractBody:w,safelyExtractBody:T,cloneBody:E,mixinBody:F,streamRegistry:C,bodyUnusable:L}})),I=e.c(((e,t)=>{let n=require(`node:assert`),r=m(),{channels:i}=g(),a=u(),{RequestContentLengthMismatchError:o,ResponseContentLengthMismatchError:s,RequestAbortedError:c,InvalidArgumentError:f,HeadersTimeoutError:p,HeadersOverflowError:h,SocketError:_,InformationalError:v,BodyTimeoutError:y,HTTPParserError:b,ResponseExceededMaxSizeError:x}=d(),{kUrl:T,kReset:E,kClient:D,kParser:O,kBlocking:k,kRunning:A,kPending:j,kSize:M,kWriting:N,kQueue:P,kNoRef:I,kKeepAliveDefaultTimeout:L,kHostHeader:R,kPendingIdx:z,kRunningIdx:B,kError:V,kPipelining:ee,kSocket:H,kKeepAliveTimeoutValue:U,kMaxHeadersSize:W,kKeepAliveMaxTimeout:te,kKeepAliveTimeoutThreshold:ne,kHeadersTimeout:re,kBodyTimeout:G,kStrictContentLength:ie,kMaxRequests:K,kCounter:ae,kMaxResponseSize:oe,kOnError:q,kResume:J,kHTTPContext:Y,kClosed:se}=l(),X=S(),Z=Buffer.alloc(0),ce=Buffer[Symbol.species],le=r.removeAllListeners,Q=Symbol(`kIdleSocketValidation`),ue=Symbol(`kIdleSocketValidationTimeout`),de=Symbol(`kSocketUsed`),fe=Symbol(`kTypeOfService`),pe;function me(){let e=process.env.JEST_WORKER_ID?C():void 0,t,r=process.arch!==`ppc64`;if(process.env.UNDICI_NO_WASM_SIMD===`1`?r=!1:process.env.UNDICI_NO_WASM_SIMD===`0`&&(r=!0),r)try{t=new WebAssembly.Module(w())}catch{}return t||=new WebAssembly.Module(e||C()),new WebAssembly.Instance(t,{env:{wasm_on_url:(e,t,n)=>0,wasm_on_status:(e,t,r)=>{n($.ptr===e);let i=t-ve+ge.byteOffset;return $.onStatus(new ce(ge.buffer,i,r))},wasm_on_message_begin:e=>(n($.ptr===e),$.onMessageBegin()),wasm_on_header_field:(e,t,r)=>{n($.ptr===e);let i=t-ve+ge.byteOffset;return $.onHeaderField(new ce(ge.buffer,i,r))},wasm_on_header_value:(e,t,r)=>{n($.ptr===e);let i=t-ve+ge.byteOffset;return $.onHeaderValue(new ce(ge.buffer,i,r))},wasm_on_headers_complete:(e,t,r,i)=>(n($.ptr===e),$.onHeadersComplete(t,r===1,i===1)),wasm_on_body:(e,t,r)=>{n($.ptr===e);let i=t-ve+ge.byteOffset;return $.onBody(new ce(ge.buffer,i,r))},wasm_on_message_complete:e=>(n($.ptr===e),$.onMessageComplete())}})}let he=null,$=null,ge=null,_e=0,ve=null,ye=null;var be=class{constructor(e,t,{exports:n}){this.llhttp=n,this.ptr=this.llhttp.llhttp_alloc(X.TYPE.RESPONSE),this.client=e,this.socket=t,this.timeout=null,this.timeoutWeakRef=new WeakRef(this),this.timeoutValue=null,this.timeoutType=null,this.statusCode=0,this.statusText=``,this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=e[W],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive=``,this.contentLength=-1,this.connectionKeepAlive=!1,this.maxResponseSize=e[oe]}setTimeout(e,t){e!==this.timeoutValue||t&1^this.timeoutType&1?(this.timeout&&=(a.clearTimeout(this.timeout),null),e&&(t&1?this.timeout=a.setFastTimeout(xe,e,this.timeoutWeakRef):(this.timeout=setTimeout(xe,e,this.timeoutWeakRef),this.timeout?.unref())),this.timeoutValue=e):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=t}resume(){this.socket.destroyed||!this.paused||(n(this.ptr!=null),n($===null),this.llhttp.llhttp_resume(this.ptr),n(this.timeoutType===5),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||Z),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let e=this.socket.read();if(e===null)break;this.execute(e)}}execute(e){n($===null),n(this.ptr!=null),n(!this.paused);let{socket:t,llhttp:i}=this;e.length>_e&&(ve&&i.free(ve),_e=Math.ceil(e.length/4096)*4096,ve=i.malloc(_e)),(ye===null||ye.buffer!==i.memory.buffer||ye.byteOffset!==ve||ye.byteLength!==_e)&&(ye=new Uint8Array(i.memory.buffer,ve,_e)),ye.set(e);try{let n;try{ge=e,$=this,n=i.llhttp_execute(this.ptr,ve,e.length)}finally{$=null,ge=null}if(n!==X.ERROR.OK){let r=e.subarray(i.llhttp_get_error_pos(this.ptr)-ve);if(n===X.ERROR.PAUSED_UPGRADE)this.onUpgrade(r);else if(n===X.ERROR.PAUSED)this.paused=!0,t.unshift(r);else throw this.createError(n,r)}}catch(e){r.destroy(t,e)}}finish(){n($===null),n(this.ptr!=null);let{llhttp:e}=this;if(this.paused){let t;do e.llhttp_resume(this.ptr),this.paused=!1,t=this.socket.read()||Z,this.execute(t);while(this.paused&&t.length>0);this.paused&&=(e.llhttp_resume(this.ptr),!1)}let t;try{$=this,t=e.llhttp_finish(this.ptr)}finally{$=null}return t===X.ERROR.OK?null:t===X.ERROR.PAUSED||t===X.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(t,Z)}createError(e,t){let{llhttp:n,contentLength:r,bytesRead:i}=this;if(r!==-1&&i!==r)return new s;let a=n.llhttp_get_error_reason(this.ptr),o=``;if(a){let e=new Uint8Array(n.memory.buffer,a).indexOf(0);o=`Response does not match the HTTP/1.1 protocol (`+Buffer.from(n.memory.buffer,a,e).toString()+`)`}return new b(o,X.ERROR[e],t)}destroy(){n($===null),n(this.ptr!=null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&a.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:t}=this;if(e.destroyed)return-1;if(t[A]===0)return r.destroy(e,new _(`bad response`,r.getSocketInfo(e))),-1;let n=t[P][t[B]];return n?(n.onResponseStarted(),0):-1}onHeaderField(e){let t=this.headers.length;return t&1?this.headers[t-1]=Buffer.concat([this.headers[t-1],e]):this.headers.push(e),this.trackHeader(e.length),0}onHeaderValue(e){let t=this.headers.length;(t&1)==1?(this.headers.push(e),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]);let n=this.headers[t-2];if(n.length===10){let i=r.bufferToLowerCasedHeaderName(n);i===`keep-alive`?this.keepAlive+=e.toString():i===`connection`&&(this.connectionKeepAlive=this.headers[t-1].length===10&&r.bufferToLowerCasedHeaderName(this.headers[t-1])===`keep-alive`)}else if(n.length===14&&r.bufferToLowerCasedHeaderName(n)===`content-length`){this.contentLength===-1&&(this.contentLength=0);for(let t=0;t<e.length;t++)this.contentLength=this.contentLength*10+(e[t]-48)}return this.trackHeader(e.length),0}trackHeader(e){this.headersSize+=e,this.headersSize>=this.headersMaxSize&&r.destroy(this.socket,new h)}onUpgrade(e){let{upgrade:t,client:i,socket:a,headers:o,statusCode:s}=this;n(t),n(i[H]===a),n(!a.destroyed),n(!this.paused),n((o.length&1)==0);let c=i[P][i[B]];n(c),n(c.upgrade||c.method===`CONNECT`),this.statusCode=0,this.statusText=``,this.shouldKeepAlive=!1,this.headers=[],this.headersSize=0,a.unshift(e),a[O].destroy(),a[O]=null,a[D]=null,a[V]=null,le(a),i[H]=null,i[Y]=null,i[P][i[B]++]=null,i.emit(`disconnect`,i[T],[i],new v(`upgrade`));try{c.onRequestUpgrade(s,o,a)}catch(e){r.destroy(a,e)}i[J]()}onHeadersComplete(e,t,i){let{client:a,socket:o,headers:s,statusText:c}=this;if(o.destroyed)return-1;if(a[A]===0)return r.destroy(o,new _(`bad response`,r.getSocketInfo(o))),-1;let l=a[P][a[B]];if(!l)return-1;if(n(!this.upgrade),n(this.statusCode<200),e===100)return r.destroy(o,new _(`bad response`,r.getSocketInfo(o))),-1;if(t&&!l.upgrade)return r.destroy(o,new _(`bad upgrade`,r.getSocketInfo(o))),-1;if(n(this.timeoutType===3),this.statusCode=e,this.shouldKeepAlive=i||l.method===`HEAD`&&!o[E]&&this.connectionKeepAlive,this.statusCode>=200){let e=l.bodyTimeout==null?a[G]:l.bodyTimeout;this.setTimeout(e,5)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(l.method===`CONNECT`||t)return n(a[A]===1),this.upgrade=!0,2;if(n((this.headers.length&1)==0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&a[ee]){let e=this.keepAlive?r.parseKeepAliveTimeout(this.keepAlive):null;if(e!=null){let t=Math.min(e-a[ne],a[te]);t<=0?o[E]=!0:a[U]=t}else a[U]=a[L]}else o[E]=!0;let u=l.onResponseStart(e,s,this.resume,c)===!1;return l.aborted?-1:l.method===`HEAD`||e<200?1:(o[k]&&(o[k]=!1,a[J]()),u?X.ERROR.PAUSED:0)}onBody(e){let{client:t,socket:i,statusCode:a,maxResponseSize:o}=this;if(i.destroyed)return-1;let s=t[P][t[B]];return n(s),n(this.timeoutType===5),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),n(a>=200),o>-1&&this.bytesRead+e.length>o?(r.destroy(i,new x),-1):(this.bytesRead+=e.length,s.onResponseData(e)===!1?X.ERROR.PAUSED:0)}onMessageComplete(){let{client:e,socket:t,statusCode:i,upgrade:a,headers:o,contentLength:c,bytesRead:l,shouldKeepAlive:u}=this;if(t.destroyed&&(!i||u))return-1;if(a)return 0;n(i>=100),n((this.headers.length&1)==0);let d=e[P][e[B]];return n(d),this.statusCode=0,this.statusText=``,this.bytesRead=0,this.contentLength=-1,this.keepAlive=``,this.connectionKeepAlive=!1,this.headers=[],this.headersSize=0,i<200?0:d.method!==`HEAD`&&c!==-1&&l!==c?(r.destroy(t,new s),-1):(d.onResponseEnd(o),e[P][e[B]++]=null,t[de]=e[j]===0,t[N]?(n(e[A]===0),r.destroy(t,new v(`reset`)),X.ERROR.PAUSED):u?t[E]&&e[A]===0?(r.destroy(t,new v(`reset`)),X.ERROR.PAUSED):(e[ee]==null||e[ee]===1?setImmediate(e[J]):e[J](),0):(r.destroy(t,new v(`reset`)),X.ERROR.PAUSED))}};function xe(e){let t=e.deref();if(!t)return;let{socket:i,timeoutType:a,client:o,paused:s}=t;a===3?(!i[N]||i.writableNeedDrain||o[A]>1)&&(n(!s,`cannot be paused while waiting for headers`),r.destroy(i,new p)):a===5?s||r.destroy(i,new y):a===8&&(n(o[A]===0&&o[U]),r.destroy(i,new v(`socket idle timeout`)))}function Se(e,t){if(e[H]=t,he||=me(),t.errored)throw t.errored;if(t.destroyed)throw new _(`destroyed`);return t[I]=!1,t[N]=!1,t[E]=!1,t[k]=!1,t[Q]=0,t[ue]=null,t[de]=!1,t[O]=new be(e,t,he),r.addListener(t,`error`,Ce),r.addListener(t,`readable`,we),r.addListener(t,`end`,Te),r.addListener(t,`close`,Ee),t[se]=!1,t.on(`close`,De),{version:`h1`,defaultPipelining:1,write(t){return Ne(e,t)},resume(){Ae(e)},destroy(e,n){t[se]?queueMicrotask(n):(t.on(`close`,n),t.destroy(e))},get destroyed(){return t.destroyed},busy(n){return!!(t[N]||t[E]||t[k]||t[Q]===1||n&&(e[A]>0&&!n.idempotent||e[A]>0&&(n.upgrade||n.method===`CONNECT`)||e[A]>0&&r.bodyLength(n.body)!==0&&(r.isStream(n.body)||r.isAsyncIterable(n.body)||r.isFormDataLike(n.body))))}}}function Ce(e){n(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`);let t=this[O];if(e.code===`ECONNRESET`&&t.statusCode&&!t.shouldKeepAlive){let e=t.finish();e&&(this[V]=e,this[D][q](e));return}this[V]=e,this[D][q](e)}function we(){this[O]?.readMore()}function Te(){let e=this[O];if(e.statusCode&&!e.shouldKeepAlive){let t=e.finish();t&&r.destroy(this,t);return}r.destroy(this,new _(`other side closed`,r.getSocketInfo(this)))}function Ee(){let e=this[O];Oe(this),e&&(!this[V]&&e.statusCode&&!e.shouldKeepAlive&&(this[V]=e.finish()||this[V]),this[O].destroy(),this[O]=null);let t=this[V]||new _(`closed`,r.getSocketInfo(this)),i=this[D];if(i[H]=null,i[Y]=null,i.destroyed){n(i[j]===0);let e=i[P].splice(i[B]);for(let n=0;n<e.length;n++){let a=e[n];r.errorRequest(i,a,t)}}else if(i[A]>0&&t.code!==`UND_ERR_INFO`){let e=i[P][i[B]];i[P][i[B]++]=null,r.errorRequest(i,e,t)}i[z]=i[B],n(i[A]===0),i.emit(`disconnect`,i[T],[i],t),i[J]()}function De(){this[se]=!0}function Oe(e){e[ue]&&(clearImmediate(e[ue]),e[ue]=null),e[Q]=0}function ke(e,t){t[Q]=1,t[ue]=setImmediate(()=>{t[ue]=null,t[Q]=2,e[H]===t&&!t.destroyed&&e[J]()})}function Ae(e){let t=e[H];if(t&&!t.destroyed){if(e[M]===0?!t[I]&&t.unref&&(t.unref(),t[I]=!0):t[I]&&t.ref&&(t.ref(),t[I]=!1),e[A]===0&&e[j]>0&&t[de]){if(t[Q]===0)return ke(e,t),t[O].readMore(),t.destroyed,void 0;if(t[Q]===1)return t[O].readMore(),t.destroyed,void 0}if(e[A]===0&&(t[O].readMore(),t.destroyed))return;if(e[M]===0)t[O].timeoutType!==8&&t[O].setTimeout(e[U],8);else if(e[A]>0&&t[O].statusCode<200&&t[O].timeoutType!==3){let n=e[P][e[B]],r=n.headersTimeout==null?e[re]:n.headersTimeout;t[O].setTimeout(r,3)}}}function je(e){return e!==`GET`&&e!==`HEAD`&&e!==`OPTIONS`&&e!==`TRACE`&&e!==`CONNECT`}function Me(e,t){if(typeof e.setTypeOfService!=`function`)return;let n=t.typeOfService;if(n!==void 0&&e[fe]!==n)try{e.setTypeOfService(n),e[fe]=n}catch{}}function Ne(e,t){let{method:a,path:s,host:l,upgrade:u,blocking:d,reset:p}=t,{body:m,headers:h,contentLength:g}=t,_=a===`PUT`||a===`POST`||a===`PATCH`||a===`QUERY`||a===`PROPFIND`||a===`PROPPATCH`;if(r.isFormDataLike(m)){pe||=F().extractBody;let[e,n]=pe(m);t.contentType??h.push(`content-type`,n),m=e.stream,g=e.length}else if(r.isBlobLike(m)&&t.contentType==null){let n=m.type;if(n){let i=`${n}`;if(!r.isValidHeaderValue(i))return r.errorRequest(e,t,new f(`invalid content-type header`)),!1;h.push(`content-type`,i)}}m&&typeof m.read==`function`&&m.read(0);let y=r.bodyLength(m);if(g=y??g,g===null&&(g=t.contentLength),g===0&&!_&&(g=null),je(a)&&g>0&&t.contentLength!==null&&t.contentLength!==g){if(e[ie])return r.errorRequest(e,t,new o),!1;process.emitWarning(new o)}let b=e[H];Oe(b);let x=n=>{t.aborted||t.completed||(r.errorRequest(e,t,n||new c),r.destroy(m),r.destroy(b,new v(`aborted`)))};try{t.onRequestStart(x,null)}catch(n){r.errorRequest(e,t,n)}if(t.aborted)return!1;a===`HEAD`&&(b[E]=!0),(u||a===`CONNECT`)&&(b[E]=!0),p!=null&&(b[E]=p),e[K]&&++b[ae]>=e[K]&&(b[E]=!0),d&&(b[k]=!0),Me(b,t);let S=`${a} ${s} HTTP/1.1\r\n`;if(typeof l==`string`?S+=`host: ${l}\r\n`:S+=e[R],u?S+=`connection: upgrade\r\nupgrade: ${u}\r\n`:e[ee]&&!b[E]?S+=`connection: keep-alive\r
|
|
6
6
|
`:S+=`connection: close\r
|
|
7
|
-
`,Array.isArray(h))for(let e=0;e<h.length;e+=2){let t=h[e+0],n=h[e+1];if(Array.isArray(n))for(let e=0;e<n.length;e++)S+=`${t}: ${n[e]}\r\n`;else S+=`${t}: ${n}\r\n`}return i.sendHeaders.hasSubscribers&&i.sendHeaders.publish({request:t,headers:S,socket:b}),!m||y===0?Fe(x,null,e,t,b,g,S,_):r.isBuffer(m)?Fe(x,m,e,t,b,g,S,_):r.isBlobLike(m)?typeof m.stream==`function`?Le(x,m.stream(),e,t,b,g,S,_):Ie(x,m,e,t,b,g,S,_):r.isStream(m)?Pe(x,m,e,t,b,g,S,_):r.isIterable(m)?Le(x,m,e,t,b,g,S,_):n(!1),!0}function Pe(e,t,i,a,o,s,l,u){n(s!==0||i[A]===0,`stream body cannot be pipelined`);let d=!1,f=new Re({abort:e,socket:o,request:a,contentLength:s,client:i,expectsPayload:u,header:l}),p=function(e){if(!d)try{!f.write(e)&&this.pause&&this.pause()}catch(e){r.destroy(this,e)}},m=function(){d||t.resume&&t.resume()},h=function(){if(queueMicrotask(()=>{t.removeListener(`error`,g)}),!d){let e=new c;queueMicrotask(()=>g(e))}},g=function(e){if(!d){if(d=!0,n(o.destroyed||o[N]&&i[A]<=1),o.off(`drain`,m).off(`error`,g),t.removeListener(`data`,p).removeListener(`end`,g).removeListener(`close`,h),!e)try{f.end()}catch(t){e=t}f.destroy(e),e&&(e.code!==`UND_ERR_INFO`||e.message!==`reset`)?r.destroy(t,e):r.destroy(t)}};t.on(`data`,p).on(`end`,g).on(`error`,g).on(`close`,h),t.resume&&t.resume(),o.on(`drain`,m).on(`error`,g),t.errorEmitted??t.errored?setImmediate(g,t.errored):(t.endEmitted??t.readableEnded)&&setImmediate(g,null),(t.closeEmitted??t.closed)&&setImmediate(h)}function Fe(e,t,i,a,o,s,c,l){try{t?r.isBuffer(t)&&(n(s===t.byteLength,`buffer body must have content length`),o.cork(),o.write(`${c}content-length: ${s}\r\n\r\n`,`latin1`),o.write(t),o.uncork(),a.onBodySent(t),!l&&a.reset!==!1&&(o[E]=!0)):s===0?o.write(`${c}content-length: 0\r\n\r\n`,`latin1`):(n(s===null,`no body must not have content length`),o.write(`${c}\r\n`,`latin1`)),a.onRequestSent(),i[
|
|
7
|
+
`,Array.isArray(h))for(let e=0;e<h.length;e+=2){let t=h[e+0],n=h[e+1];if(Array.isArray(n))for(let e=0;e<n.length;e++)S+=`${t}: ${n[e]}\r\n`;else S+=`${t}: ${n}\r\n`}return i.sendHeaders.hasSubscribers&&i.sendHeaders.publish({request:t,headers:S,socket:b}),!m||y===0?Fe(x,null,e,t,b,g,S,_):r.isBuffer(m)?Fe(x,m,e,t,b,g,S,_):r.isBlobLike(m)?typeof m.stream==`function`?Le(x,m.stream(),e,t,b,g,S,_):Ie(x,m,e,t,b,g,S,_):r.isStream(m)?Pe(x,m,e,t,b,g,S,_):r.isIterable(m)?Le(x,m,e,t,b,g,S,_):n(!1),!0}function Pe(e,t,i,a,o,s,l,u){n(s!==0||i[A]===0,`stream body cannot be pipelined`);let d=!1,f=new Re({abort:e,socket:o,request:a,contentLength:s,client:i,expectsPayload:u,header:l}),p=function(e){if(!d)try{!f.write(e)&&this.pause&&this.pause()}catch(e){r.destroy(this,e)}},m=function(){d||t.resume&&t.resume()},h=function(){if(queueMicrotask(()=>{t.removeListener(`error`,g)}),!d){let e=new c;queueMicrotask(()=>g(e))}},g=function(e){if(!d){if(d=!0,n(o.destroyed||o[N]&&i[A]<=1),o.off(`drain`,m).off(`error`,g),t.removeListener(`data`,p).removeListener(`end`,g).removeListener(`close`,h),!e)try{f.end()}catch(t){e=t}f.destroy(e),e&&(e.code!==`UND_ERR_INFO`||e.message!==`reset`)?r.destroy(t,e):r.destroy(t)}};t.on(`data`,p).on(`end`,g).on(`error`,g).on(`close`,h),t.resume&&t.resume(),o.on(`drain`,m).on(`error`,g),t.errorEmitted??t.errored?setImmediate(g,t.errored):(t.endEmitted??t.readableEnded)&&setImmediate(g,null),(t.closeEmitted??t.closed)&&setImmediate(h)}function Fe(e,t,i,a,o,s,c,l){try{t?r.isBuffer(t)&&(n(s===t.byteLength,`buffer body must have content length`),o.cork(),o.write(`${c}content-length: ${s}\r\n\r\n`,`latin1`),o.write(t),o.uncork(),a.onBodySent(t),!l&&a.reset!==!1&&(o[E]=!0)):s===0?o.write(`${c}content-length: 0\r\n\r\n`,`latin1`):(n(s===null,`no body must not have content length`),o.write(`${c}\r\n`,`latin1`)),a.onRequestSent(),i[J]()}catch(t){e(t)}}async function Ie(e,t,n,r,i,a,s,c){try{if(a!=null&&a!==t.size)throw new o;let e=Buffer.from(await t.arrayBuffer());i.cork(),i.write(`${s}content-length: ${a}\r\n\r\n`,`latin1`),i.write(e),i.uncork(),r.onBodySent(e),r.onRequestSent(),!c&&r.reset!==!1&&(i[E]=!0),n[J]()}catch(t){e(t)}}async function Le(e,t,r,i,a,o,s,c){n(o!==0||r[A]===0,`iterator body cannot be pipelined`);let l=null;function u(){if(l){let e=l;l=null,e()}}let d=()=>new Promise((e,t)=>{n(l===null),a[V]?t(a[V]):l=e});a.on(`close`,u).on(`drain`,u);let f=new Re({abort:e,socket:a,request:i,contentLength:o,client:r,expectsPayload:c,header:s});try{for await(let e of t){if(a[V])throw a[V];f.write(e)||await d()}f.end()}catch(e){f.destroy(e)}finally{a.off(`close`,u).off(`drain`,u)}}var Re=class{constructor({abort:e,socket:t,request:n,contentLength:r,client:i,expectsPayload:a,header:o}){this.socket=t,this.request=n,this.contentLength=r,this.client=i,this.bytesWritten=0,this.expectsPayload=a,this.header=o,this.abort=e,t[N]=!0}write(e){let{socket:t,request:n,contentLength:r,client:i,bytesWritten:a,expectsPayload:s,header:c}=this;if(t[V])throw t[V];if(t.destroyed)return!1;let l=e instanceof Uint8Array?e.byteLength:Buffer.byteLength(e);if(!l)return!0;if(r!==null&&a+l>r){if(i[ie])throw new o;process.emitWarning(new o)}t.cork(),a===0&&(!s&&n.reset!==!1&&(t[E]=!0),r===null?t.write(`${c}transfer-encoding: chunked\r\n`,`latin1`):t.write(`${c}content-length: ${r}\r\n\r\n`,`latin1`)),r===null&&t.write(`\r\n${l.toString(16)}\r\n`,`latin1`),this.bytesWritten+=l;let u=t.write(e);return t.uncork(),n.onBodySent(e),u||t[O].timeout&&t[O].timeoutType===3&&t[O].timeout.refresh&&t[O].timeout.refresh(),u}end(){let{socket:e,contentLength:t,client:n,bytesWritten:r,expectsPayload:i,header:a,request:s}=this;if(s.onRequestSent(),e[N]=!1,e[V])throw e[V];if(!e.destroyed){if(r===0?i?e.write(`${a}content-length: 0\r\n\r\n`,`latin1`):e.write(`${a}\r\n`,`latin1`):t===null&&e.write(`\r
|
|
8
8
|
0\r
|
|
9
9
|
\r
|
|
10
|
-
`,`latin1`),t!==null&&r!==t){if(n[re])throw new o;process.emitWarning(new o)}e[O].timeout&&e[O].timeoutType===3&&e[O].timeout.refresh&&e[O].timeout.refresh(),n[Y]()}}destroy(e){let{socket:t,client:r,abort:i}=this;t[N]=!1,e&&(n(r[A]<=1,`pipeline should only contain this request`),i(e))}};t.exports=Se})),L=e.c(((e,t)=>{let n=require(`node:assert`),{pipeline:r}=require(`node:stream`),i=m(),{RequestContentLengthMismatchError:a,RequestAbortedError:o,SocketError:s,InformationalError:c,InvalidArgumentError:u,HeadersTimeoutError:f,BodyTimeoutError:p,ResponseExceededMaxSizeError:h}=d(),{kUrl:_,kReset:v,kClient:y,kRunning:b,kPending:x,kQueue:S,kPendingIdx:C,kRunningIdx:w,kError:T,kSocket:E,kStrictContentLength:D,kOnError:O,kMaxConcurrentStreams:k,kHTTP2Session:A,kHostAuthority:j,kResume:M,kSize:N,kHTTPContext:P,kClosed:I,kKeepAliveDefaultTimeout:L,kHeadersTimeout:R,kBodyTimeout:z,kEnableConnectProtocol:B,kRemoteSettings:V,kHTTP2Stream:ee,kHTTP2SessionState:H,kHTTP2Options:U,kMaxResponseSize:W}=l(),{channels:te}=g(),G=Symbol(`open streams`),ne=Symbol(`request stream id`),K=Symbol(`request stream`),re=Symbol(`request stream cleanup`),q=Symbol(`request stream state`),ie=Symbol(`received goaway`),ae=Symbol(`goaway replay attempts`),J=Symbol(`refused stream retry`),Y,X;try{X=require(`node:http2`)}catch{X={constants:{}}}let{constants:{HTTP2_HEADER_AUTHORITY:oe,HTTP2_HEADER_METHOD:Z,HTTP2_HEADER_PATH:Q,HTTP2_HEADER_SCHEME:se,HTTP2_HEADER_CONTENT_LENGTH:ce,HTTP2_HEADER_EXPECT:le,HTTP2_HEADER_STATUS:ue,HTTP2_HEADER_PROTOCOL:de,NGHTTP2_NO_ERROR:fe,NGHTTP2_REFUSED_STREAM:pe}}=X;function me(e,t){return e[T]||(t===fe?new c(`HTTP/2: "GOAWAY" frame received with code ${t}`):new s(`HTTP/2: "GOAWAY" frame received with code ${t}`,i.getSocketInfo(e[E])))}function he(e,t){let n=e[y],r=e[E];if(n[A]===e&&(n[E]=null,n[P]=null,n[A]=null),r!=null&&r[T]==null&&(r[T]=t),!e.closed&&!e.destroyed)try{e.destroy(t)}catch{}i.destroy(r,t)}function $(e,t){let n=Number.isInteger(t)?t:2**53-1;for(let t=e[w];t<e[C];t++){let r=e[S][t];if(r!=null&&(typeof r[ne]!=`number`||r[ne]>n))return t}return e[C]}function ge(e){e[ne]=null,e[K]=null,e[re]=null}function _e(e,t,n){let r=e[re],i=e[K];ge(e),r?.(i),e[ne]=t.id,e[K]=t,e[re]=n}function ve(e){let t=e[re],n=e[K];ge(e),t?.(n)}function ye(e,t){e[S].splice(e[C]+1,0,t)}function be(e,t,n=!1){let r=e[S],i=e[w];if(i<e[C]&&r[i]===t){r[i]=null,e[w]=i+1;return}let a=r.indexOf(t,i);a===-1||a>=e[C]||(r.splice(a,1),e[C]--,n&&e[C]<e[w]&&(e[C]=e[w]))}function xe(e){let{body:t}=e;return t==null||i.isBuffer(t)||i.isBlobLike(t)}function Se(e){let t=(e[ae]??0)+1;return e[ae]=t,t<=1}function Ce(e,t=pe){if(e!=null&&!e.destroyed&&!e.closed)try{e.close(t)}catch{}}function we(e){let t=e[K];return ve(e),Te(t),t}function Te(e){e==null||e[q]==null||(e[q]=null,e.off(`close`,Xe),e.off(`close`,Ye),e[A]!=null&&Je(e),!e.destroyed&&!e.closed&&e.once(`error`,qe))}function Ee(e,t){e[E]=t;let n=e[U].sessionOptions?.initialWindowSize,r=e[U].connectionWindowSize,a=X.connect(e[_],{createConnection:()=>t,peerMaxConcurrentStreams:e[U].maxConcurrentStreams,settings:{enablePush:!1,...n==null?null:{initialWindowSize:n}}});return e[E]=t,a[G]=0,a[y]=e,a[E]=t,a[H]={idleTimeout:null,noStreamsTimeout:null,refed:!0,ping:{interval:e[U].pingInterval===0?null:setInterval(Re,e[U].pingInterval,a).unref()}},a[ie]=!1,a[B]=!1,a[V]=!1,r&&i.addListener(a,`connect`,Ie.bind(a,r)),i.addListener(a,`error`,ze),i.addListener(a,`frameError`,Be),i.addListener(a,`goaway`,Ve),i.addListener(a,`close`,He),i.addListener(a,`remoteSettings`,Le),Oe(a),e[A]=a,t[A]=a,i.addListener(t,`error`,We),i.addListener(t,`end`,Ge),i.addListener(t,`close`,Ue),t[I]=!1,t.on(`close`,Ke),{version:`h2`,defaultPipelining:1/0,write(t){return lt(e,t)},resume(){ke(e)},destroy(e,n){t[I]?queueMicrotask(n):t.destroy(e).on(`close`,n)},get destroyed(){return t.destroyed},busy(t){if(a[V]===!1&&e[b]>0||e[b]>=e[k])return!0;if(t!=null)if(e[b]>0){if((t.upgrade===`websocket`||t.method===`CONNECT`)&&a[V]===!1)return!0}else return(t.upgrade===`websocket`||t.method===`CONNECT`)&&a[V]===!1;return!1}}}function De(e){let t=e[H];t.refed===!1&&(t.refed=!0,e.ref())}function Oe(e){let t=e[H];t.refed===!0&&(t.refed=!1,e.unref())}function ke(e){let t=e[E],n=e[A];t?.destroyed===!1&&(e[N]===0||e[k]===0?Oe(n):De(n),e[N]===0&&n[G]===0?Pe(n):Ne(n),e[k]===0&&e[b]===0&&e[x]>0?je(n):Ae(n))}function Ae(e){let t=e[H];t?.noStreamsTimeout!=null&&(clearTimeout(t.noStreamsTimeout),t.noStreamsTimeout=null)}function je(e){let t=e[y],n=e[H],r=t[R];!r||n.noStreamsTimeout!=null||(n.noStreamsTimeout=setTimeout(Me,r,e).unref())}function Me(e){let t=e[y],n=e[H];if(n.noStreamsTimeout=null,t[A]!==e||t[k]!==0||t[b]!==0||t[x]===0)return;let r=new f(`HTTP/2: server did not accept a new stream within ${t[R]}`),a=t[S].splice(t[C]);for(let e=0;e<a.length;e++)a[e]!=null&&i.errorRequest(t,a[e],r);e[T]=r,he(e,r)}function Ne(e){let t=e[H];t?.idleTimeout!=null&&(clearTimeout(t.idleTimeout),t.idleTimeout=null)}function Pe(e){let t=e[y];if(t[A]!==e||e.closed||e.destroyed)return;if(e[G]!==0||t[N]!==0){Ne(e);return}let n=e[H];n.idleTimeout??=setTimeout(Fe,t[L],e).unref()}function Fe(e){let t=e[y],n=e[E],r=e[H];if(r.idleTimeout=null,t[A]!==e||e[G]!==0||t[N]!==0||e.closed||e.destroyed)return;let a=new c(`socket idle timeout`);n[T]=a,i.destroy(n,a)}function Ie(e){try{typeof this.setLocalWindowSize==`function`&&this.setLocalWindowSize(e)}catch{}}function Le(e){if(this[y][k]=e.maxConcurrentStreams??this[y][k],this[V]===!0&&this[B]===!0&&e.enableConnectProtocol===!1){let e=new c(`HTTP/2: Server disabled extended CONNECT protocol against RFC-8441`);this[E][T]=e,this[y][O](e);return}this[B]=e.enableConnectProtocol??this[B],this[V]=!0,this[y][M]()}function Re(e){let t=e[H];if((e.closed||e.destroyed)&&t.ping.interval!=null){clearInterval(t.ping.interval),t.ping.interval=null;return}e.ping(n.bind(e));function n(e,t){let n=this[y],r=this[E];if(e!=null){let t=new c(`HTTP/2: "PING" errored - type ${e.message}`);r[T]=t,n[O](t)}else n.emit(`ping`,t)}}function ze(e){n(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`),this[E][T]=e,!this[ie]&&this[y][O](e)}function Be(e,t,n){if(n===0){if(this[ie])return;let n=new c(`HTTP/2: "frameError" received - type ${e}, code ${t}`);this[E][T]=n,this[y][O](n)}}function Ve(e,t){if(this[ie])return;this[ie]=!0;let n=me(this,e),r=this[y],a=r[C],o=$(r,t),s=[],c=[];for(let e=o;e<a;e++){let t=r[S][e];t!=null&&(c.push(we(t)),xe(t)&&Se(t)?s.push(t):i.errorRequest(r,t,n))}for(let e=0;e<c.length;e++)Ce(c[e]);if(o!==a){let e=r[S].slice(a);r[S].length=o,r[S].push(...s,...e)}r[A]===this&&(r[E]=null,r[P]=null,r[A]=null),Ne(this),Ae(this),!this.closed&&!this.destroyed&&this.close(),r[C]=o,r.emit(`disconnect`,r[_],[r],n),r[M]()}function He(){let{[y]:e,[H]:t,[E]:r}=this,a=r[T]||this[T]||new s(`closed`,i.getSocketInfo(r));if(e[A]===this&&(e[E]=null,e[P]=null,e[A]=null),Ne(this),Ae(this),t.ping.interval!=null&&(clearInterval(t.ping.interval),t.ping.interval=null),e.destroyed){n(e[x]===0);let t=e[S].splice(e[w]);for(let n=0;n<t.length;n++){let r=t[n];r!=null&&i.errorRequest(e,r,a)}}}function Ue(){let e=this[T]||new s(`closed`,i.getSocketInfo(this)),t=this[A],r=t[y];r[E]!==this&&(t[ie]||r[A]!=null&&r[A]!==t)||(r[E]=null,r[P]=null,r[A]===t&&(r[A]=null),t.destroy(e),r[C]=r[w],n(r[b]===0),r.emit(`disconnect`,r[_],[r],e),r[M]())}function We(e){n(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`),this[T]=e,!this[A]?.[ie]&&this[A]?.[y]?.[O](e)}function Ge(){i.destroy(this,new s(`other side closed`,i.getSocketInfo(this)))}function Ke(){this[I]=!0}function qe(){}function Je(e){let t=e[A];e[A]=null,--t[G],t[G]===0&&(Oe(t),Pe(t))}function Ye(){this.off(`error`,qe);let e=this[q];this[q]=null,tt(e,new c(`HTTP/2: stream closed before response headers`)),Je(this)}function Xe(){let e=this[q];e!=null&&(dt(this),e.pendingEnd&&!e.request.aborted&&!e.request.completed?e.request.onResponseEnd(e.trailers||{}):!e.request.aborted&&!e.request.completed&&i.errorRequest(e.client,e.request,new c(`HTTP/2: stream closed before the response was complete`)),st(e),Je(this),this[q]=null)}function Ze(e){return e!==`GET`&&e!==`HEAD`&&e!==`OPTIONS`&&e!==`TRACE`&&e!==`CONNECT`}function Qe(e){let t={};for(let n=0;n<e.length;n+=2){let r=e[n+0],i=e[n+1],a=t[r];if(r===`cookie`){a==null?t[r]=i:t[r]=Array.isArray(a)?(a.push(i),a):[a,i];continue}if(typeof i==`string`){t[r]=a?`${a}, ${i}`:i;continue}for(let e=0;e<i.length;e++)t[r]=t[r]?`${t[r]}, ${i[e]}`:i[e]}return t}function $e(e){e.off(`response`,at),e.off(`error`,nt),e.off(`end`,rt),e.off(`timeout`,it),e.off(`error`,qe)}function et(e){if(e==null)return;let t=e[q];if(t==null)return;let{request:n}=t;n[K]===e&&ge(n),$e(e),!e.destroyed&&!e.closed&&e.once(`error`,qe)}function tt(e,t){if(e==null)return;let{request:n}=e;e.responseReceived||n.aborted||n.completed||(et(e.stream),e.abort(t,!0))}function nt(){let e=this[q];typeof this.rstCode==`number`&&this.rstCode!==0?tt(e,new c(`HTTP/2: "stream error" received - code ${this.rstCode}`)):tt(e,new c(`HTTP/2: stream errored before response headers`))}function rt(){tt(this[q],new c(`HTTP/2: stream half-closed (remote)`))}function it(){let e=this[q];tt(e,new c(`HTTP/2: "stream timeout after ${e.headersTimeout}"`))}function at(e,t){let n=this,r=n[q],{request:i}=r;r.responseReceived=!0;let a=e[ue];delete e[ue],i.onRequestUpgrade(a,e,n),!(i.aborted||i.completed)&&($e(n),ge(i),st(r))}function ot(e,t){let{request:n,headersTimeout:r,session:i}=t;e[ee]=!0,e[A]=i,e[q]=t,t.stream=e,_e(n,e,et),e.once(`response`,at),e.on(`error`,nt),e.once(`end`,rt),e.on(`timeout`,it),e.once(`close`,Ye),Ne(i),++i[G],e.setTimeout(r)}function st(e,t=!1){e.requestFinalized||(e.requestFinalized=!0,be(e.client,e.request,t),e.client[M]())}function ct(e,t,n,r,a,o){try{return n.request(a,o)}catch(a){if(a?.code===`ERR_HTTP2_INVALID_SESSION`||a?.code===`ERR_HTTP2_GOAWAY_SESSION`){let r=new s(a.message,i.getSocketInfo(n[E]));return r.cause=a,n[T]=r,he(n,r),ye(e,t),null}let o=new c(a.message,{cause:a});return n[T]=o,n[E][T]=o,n.destroy(o),i.destroy(n[E],o),r(o),null}}function lt(e,t){let r=t.headersTimeout??e[R],s=t.bodyTimeout??e[z],l=e[A],{method:d,path:f,host:p,upgrade:m,expectContinue:h,signal:g,protocol:_,headers:v}=t;if(m!=null&&m!==`websocket`)return i.errorRequest(e,t,new u(`Custom upgrade "${m}" not supported over HTTP/2`)),!1;let y=Qe(v);y[oe]=p||e[j],y[Z]=d;let b={abort:null,body:t.body,bytesRead:0,client:e,contentLength:null,expectsPayload:!1,maxResponseSize:e[W],request:t,headersTimeout:r,bodyTimeout:s,requestFinalized:!1,responseReceived:!1,bodySent:!1,pendingEnd:!1,trailers:null,session:l,stream:null},x=(n,r=!1)=>{if(!(t.aborted||t.completed)){if(n||=new o,i.errorRequest(e,t,n),b.stream!=null){ve(t);let a=b.stream;a.close(),a.destroyed||i.destroy(a),e[O](n),st(b,r)}i.destroy(b.body,n)}};b.abort=x;let S=null;try{t.onRequestStart(x,null)}catch(n){i.errorRequest(e,t,n)}if(t.aborted)return!1;if(m||d===`CONNECT`)return De(l),m===`websocket`?l[B]===!1?(i.errorRequest(e,t,new c(`HTTP/2: Extended CONNECT protocol not supported by server`)),Oe(l),!1):(y[Z]=`CONNECT`,y[de]=`websocket`,y[Q]=f,_===`ws:`||_===`wss:`?y[se]=_===`ws:`?`http`:`https`:y[se]=_===`http:`?`http`:`https`,S=ct(e,t,l,x,y,{endStream:!1,signal:g}),S==null?(Oe(l),!1):(ot(S,b),!0)):(S=ct(e,t,l,x,y,{endStream:!1,signal:g}),S==null?(Oe(l),!1):(ot(S,b),!0));y[Q]=f,y[se]=_===`http:`?`http`:`https`;let C=d===`PUT`||d===`POST`||d===`PATCH`||d===`QUERY`||d===`PROPFIND`||d===`PROPPATCH`,w=b.body;w&&typeof w.read==`function`&&w.read(0);let T=i.bodyLength(w);if(i.isFormDataLike(w)){Y??=F().extractBody;let[e,t]=Y(w);y[`content-type`]=t,w=e.stream,T=e.length}if(T??=t.contentLength,T===0&&!C&&(T=null),Ze(d)&&T>0&&t.contentLength!=null&&t.contentLength!==T){if(e[D])return i.errorRequest(e,t,new a),!1;process.emitWarning(new a)}if(T!=null&&(n(w||T===0,`no body must not have content length`),y[ce]=`${T}`),De(l),te.sendHeaders.hasSubscribers){let e=``;for(let t in y)e+=`${t}: ${y[t]}\r\n`;te.sendHeaders.publish({request:t,headers:e,socket:l[E]})}let k=w===null||T===0;return b.body=w,b.contentLength=T,b.expectsPayload=C,h&&(y[le]=`100-continue`),S=ct(e,t,l,x,y,{endStream:k,signal:g}),S==null?!1:(S[ee]=!0,S[q]=b,b.stream=S,Ne(l),++l[G],r&&S.setTimeout(r),S[A]=l,S.on(`close`,Xe),_e(t,S,dt),h&&S.once(`continue`,St),S.on(`response`,mt),S.on(`headers`,pt),S.on(`end`,ht),S.on(`error`,_t),S.on(`frameError`,vt),S.on(`aborted`,yt),(r||s)&&S.on(`timeout`,bt),S.on(`trailers`,xt),h||St.call(S),!0)}function ut(e){e.off(`error`,qe),e.off(`continue`,St),e.off(`response`,mt),e.off(`headers`,pt),e.off(`end`,ht),e.off(`error`,_t),e.off(`frameError`,vt),e.off(`aborted`,yt),e.off(`timeout`,bt),e.off(`trailers`,xt),e.off(`data`,ft)}function dt(e){if(e==null)return;let t=e[q];if(t==null)return;let{request:n}=t;n[K]===e&&ge(n),!e.destroyed&&!e.closed&&(ut(e),e.once(`error`,qe))}function ft(e){let t=this,n=t[q];if(n==null)return;let{request:r,maxResponseSize:i}=n;if(!(r.aborted||r.completed)){if(i>-1&&n.bytesRead+e.length>i){n.abort(new h);return}n.bytesRead+=e.length,r.onResponseData(e)===!1&&t.pause()}}function pt(e){let t=this[q];if(t==null)return;let{request:n}=t;if(n.aborted||n.completed)return;let r=e[ue];delete e[ue],n.onResponseStart(Number(r),e,qe,``)}function mt(e){let t=this,n=t[q];if(n==null)return;let{request:r}=n;t.off(`response`,mt),n.body!=null&&!n.bodySent&&!t.writableEnded&&(t.removeListener(`continue`,St),t.end());let i=e[ue];if(delete e[ue],r.onResponseStarted(),n.responseReceived=!0,(n.headersTimeout||n.bodyTimeout)&&t.setTimeout(n.bodyTimeout),r.aborted||r.completed){dt(t);return}r.onResponseStart(Number(i),e,t.resume.bind(t),``)===!1&&t.pause(),t.on(`data`,ft)}function ht(){let e=this,t=e[q];if(t==null)return;let{request:n}=t;e.off(`end`,ht),t.responseReceived?!n.aborted&&!n.completed&&(t.pendingEnd=!0,Xe.call(e)):t.abort(new c(`HTTP/2: stream half-closed (remote)`),!0)}function gt(e,t){let{client:n,request:r}=t;return t.responseReceived||r.aborted||r.completed||r[J]||!xe(r)?!1:(r[J]=!0,we(r),t.stream=null,t.requestFinalized=!0,be(n,r),n[S].splice(n[C],0,r),n[M](),!0)}function _t(e){let t=this,n=t[q];n!=null&&(t.off(`error`,_t),typeof t.rstCode==`number`&&t.rstCode!==fe&&(e.http2ErrorCode=t.rstCode),!(t.rstCode===pe&>(t,n))&&n.abort(e))}function vt(e,t){let n=this,r=n[q];r!=null&&(n.off(`frameError`,vt),r.abort(new c(`HTTP/2: "frameError" received - type ${e}, code ${t}`)))}function yt(){this.off(`data`,ft)}function bt(){let e=this,t=e[q];if(t==null)return;e.off(`timeout`,bt);let n=t.responseReceived?new p(`HTTP/2: "stream timeout after ${t.bodyTimeout}"`):new f(`HTTP/2: "headers timeout after ${t.headersTimeout}"`);t.abort(n)}function xt(e){let t=this,n=t[q];if(n==null)return;let{request:r}=n;t.off(`trailers`,xt),t.off(`data`,ft),!(r.aborted||r.completed)&&(n.trailers=e)}function St(){let e=this,t=e[q];t.bodySent=!0;let{abort:r,body:a,client:o,contentLength:s,expectsPayload:c,request:l}=t;!a||s===0?Ct(r,e,null,o,l,o[E],s,c):i.isBuffer(a)?Ct(r,e,a,o,l,o[E],s,c):i.isBlobLike(a)?typeof a.stream==`function`?Et(r,e,a.stream(),o,l,o[E],s,c):Tt(r,e,a,o,l,o[E],s,c):i.isStream(a)?wt(r,o[E],c,e,a,o,l,s):i.isIterable(a)?Et(r,e,a,o,l,o[E],s,c):n(!1)}function Ct(e,t,r,a,o,s,c,l){try{r!=null&&i.isBuffer(r)&&(n(c===r.byteLength,`buffer body must have content length`),t.cork(),t.write(r),t.uncork(),t.end(),o.onBodySent(r)),l||(s[v]=!0),o.onRequestSent(),a[M]()}catch(t){e(t)}}function wt(e,t,a,o,s,c,l,u){n(u!==0||c[b]===0,`stream body cannot be pipelined`);let d=r(s,o,n=>{n?(i.destroy(d,n),e(n)):(i.removeAllListeners(d),l.onRequestSent(),a||(t[v]=!0),c[M]())});i.addListener(d,`data`,f);function f(e){l.onBodySent(e)}}async function Tt(e,t,n,r,i,o,s,c){try{if(s!=null&&s!==n.size)throw new a;let e=Buffer.from(await n.arrayBuffer());t.cork(),t.write(e),t.uncork(),t.end(),i.onBodySent(e),i.onRequestSent(),c||(o[v]=!0),r[M]()}catch(t){e(t)}}async function Et(e,t,r,i,a,o,s,c){n(s!==0||i[b]===0,`iterator body cannot be pipelined`);let l=null;function u(){if(l){let e=l;l=null,e()}}let d=()=>new Promise((e,t)=>{n(l===null),o[T]?t(o[T]):l=e});t.on(`close`,u).on(`drain`,u);try{for await(let e of r){if(o[T])throw o[T];let n=t.write(e);a.onBodySent(e),n||await d()}t.end(),a.onRequestSent(),c||(o[v]=!0),i[M]()}catch(t){e(t)}finally{t.off(`close`,u).off(`drain`,u)}}t.exports=Ee})),R=e.c(((e,t)=>{let n=require(`node:assert`),r=require(`node:net`),i=require(`node:http`),a=m(),{ClientStats:o}=h(),{channels:s}=g(),c=_(),u=y(),{InvalidArgumentError:f,InformationalError:p,ClientDestroyedError:v}=d(),x=b(),{kUrl:S,kServerName:C,kClient:w,kBusy:T,kConnect:E,kResuming:D,kRunning:O,kPending:k,kSize:A,kQueue:j,kConnected:M,kConnecting:N,kNeedDrain:P,kKeepAliveDefaultTimeout:F,kHostHeader:R,kPendingIdx:z,kRunningIdx:B,kError:V,kPipelining:ee,kKeepAliveTimeoutValue:H,kMaxHeadersSize:U,kKeepAliveMaxTimeout:W,kKeepAliveTimeoutThreshold:te,kHeadersTimeout:G,kBodyTimeout:ne,kStrictContentLength:K,kConnector:re,kMaxRequests:q,kCounter:ie,kClose:ae,kDestroy:J,kDispatch:Y,kLocalAddress:X,kMaxResponseSize:oe,kOnError:Z,kHTTPContext:Q,kMaxConcurrentStreams:se,kHostAuthority:ce,kResume:le,kHTTP2Options:ue}=l(),de=I(),fe=L(),pe=Symbol(`kClosedResolve`),me=i&&i.maxHeaderSize&&Number.isInteger(i.maxHeaderSize)&&i.maxHeaderSize>0?()=>i.maxHeaderSize:()=>{throw new f(`http module not available or http.maxHeaderSize invalid`)},he=()=>{};function $(e){return e[ee]??e[Q]?.defaultPipelining??1}let ge=!1;function _e(e){ge!==!0&&(process.emitWarning(`Use h2Options.${e} instead. ${e} for H2 will be deprecated in future major.`,{code:`UNDICI-H2-OPTIONS`}),ge=!0)}function ve(e){return e[Q]?.version===`h2`?e[se]:$(e)}var ye=class extends u{constructor(e,{maxHeaderSize:t,headersTimeout:n,socketTimeout:i,requestTimeout:o,connectTimeout:s,bodyTimeout:c,idleTimeout:l,keepAlive:u,keepAliveTimeout:d,maxKeepAliveTimeout:p,keepAliveMaxTimeout:m,keepAliveTimeoutThreshold:h,socketPath:g,pipelining:_,tls:v,strictContentLength:y,maxCachedSessions:b,connect:w,maxRequestsPerClient:T,localAddress:E,maxResponseSize:O,autoSelectFamily:k,autoSelectFamilyAttemptTimeout:A,maxConcurrentStreams:M,allowH2:N,useH2c:I,initialWindowSize:L,connectionWindowSize:V,pingInterval:ie,webSocket:ae,h2Options:J,eventSource:Y}={}){if(u!==void 0)throw new f(`unsupported keepAlive, use pipelining=0 instead`);if(i!==void 0)throw new f(`unsupported socketTimeout, use headersTimeout & bodyTimeout instead`);if(o!==void 0)throw new f(`unsupported requestTimeout, use headersTimeout & bodyTimeout instead`);if(l!==void 0)throw new f(`unsupported idleTimeout, use keepAliveTimeout instead`);if(p!==void 0)throw new f(`unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead`);if(t!=null){if(!Number.isInteger(t)||t<1)throw new f(`invalid maxHeaderSize`)}else t=me();if(g!=null&&typeof g!=`string`)throw new f(`invalid socketPath`);if(s!=null&&(!Number.isFinite(s)||s<0))throw new f(`invalid connectTimeout`);if(d!=null&&(!Number.isFinite(d)||d<=0))throw new f(`invalid keepAliveTimeout`);if(m!=null&&(!Number.isFinite(m)||m<=0))throw new f(`invalid keepAliveMaxTimeout`);if(h!=null&&!Number.isFinite(h))throw new f(`invalid keepAliveTimeoutThreshold`);if(n!=null&&(!Number.isInteger(n)||n<0))throw new f(`headersTimeout must be a positive integer or zero`);if(c!=null&&(!Number.isInteger(c)||c<0))throw new f(`bodyTimeout must be a positive integer or zero`);if(w!=null&&typeof w!=`function`&&typeof w!=`object`)throw new f(`connect must be a function or an object`);if(T!=null&&(!Number.isInteger(T)||T<0))throw new f(`maxRequestsPerClient must be a positive number`);if(E!=null&&(typeof E!=`string`||r.isIP(E)===0))throw new f(`localAddress must be valid string IP address`);if(O!=null&&(!Number.isInteger(O)||O<-1))throw new f(`maxResponseSize must be a positive number`);if(A!=null&&(!Number.isInteger(A)||A<-1))throw new f(`autoSelectFamilyAttemptTimeout must be a positive number`);if(N!=null&&typeof N!=`boolean`)throw new f(`allowH2 must be a valid boolean value`);if(N!==!1)if(J!=null){if(J.useH2c!=null&&typeof J.useH2c!=`boolean`)throw new f(`h2Options.useH2c must be a valid boolean value`);if(J.settings?.initialWindowSize!=null&&(!Number.isInteger(J.settings.initialWindowSize)||J.settings.initialWindowSize<1))throw new f(`h2Options.settings.initialWindowSize must be a positive integer, greater than 0`);if(J.maxConcurrentStreams!=null&&(!Number.isInteger(J.connectionWindowSize)||J.maxConcurrentStreams<1))throw new f(`h2Options.maxConcurrentStreams must be a positive integer, greater than 0`);if(J.connectionWindowSize!=null&&(!Number.isInteger(J.connectionWindowSize)||J.connectionWindowSize<1))throw new f(`h2Options.connectionWindowSize must be a positive integer, greater than 0`);if(J.pingInterval!=null&&(typeof J.pingInterval!=`number`||!Number.isInteger(J.pingInterval)||J.pingInterval<0))throw new f(`h2Options.pingInterval must be a positive integer, greater or equal to 0`)}else{if(I!=null&&typeof I!=`boolean`)throw _e(`useH2c`),new f(`useH2c must be a valid boolean value`);if(M!=null&&(typeof M!=`number`||M<1))throw _e(`maxConcurrentStreams`),new f(`maxConcurrentStreams must be a positive integer, greater than 0`);if(L!=null&&(!Number.isInteger(L)||L<1))throw _e(`initialWindowSize`),new f(`initialWindowSize must be a positive integer, greater than 0`);if(V!=null&&(!Number.isInteger(V)||V<1))throw _e(`connectionWindowSize`),new f(`connectionWindowSize must be a positive integer, greater than 0`);if(ie!=null&&(typeof ie!=`number`||!Number.isInteger(ie)||ie<0))throw _e(`pingInterval`),new f(`pingInterval must be a positive integer, greater or equal to 0`)}if(super({webSocket:ae,eventSource:Y}),typeof w!=`function`)w=x({...v,maxCachedSessions:b,allowH2:N,socketPath:g,useH2c:J?.useH2c??I,timeout:s,...typeof k==`boolean`?{autoSelectFamily:k,autoSelectFamilyAttemptTimeout:A}:void 0,...w});else{let e=w;w=(t,n)=>e({...t,...g==null?null:{socketPath:g},...N==null?null:{allowH2:N}},n)}this[S]=a.parseOrigin(e),this[ce]=`${this[S].hostname}${this[S].port?`:${this[S].port}`:``}`,this[re]=w,this[ee]=_??1,this[U]=t,this[F]=d??4e3,this[W]=m??6e5,this[te]=h??2e3,this[H]=this[F],this[C]=null,this[X]=E??null,this[D]=0,this[P]=0,this[R]=`host: ${this[ce]}\r\n`,this[ne]=c??3e5,this[G]=n??3e5,this[K]=y??!0,this[q]=T,this[pe]=null,this[oe]=O>-1?O:-1,this[Q]=null,this[ue]={pingInterval:J?.pingInterval??ie??6e4,connectionWindowSize:J?.connectionWindowSize??V??524288,maxConcurrentStreams:J?.maxConcurrentStreams??M??100,sessionOptions:{initialWindowSize:J?.initialWindowSize??L??262144}},this[j]=[],this[B]=0,this[z]=0,this[le]=e=>we(this,e),this[Z]=e=>be(this,e)}get pipelining(){return this[ee]}set pipelining(e){this[ee]=e,this[le](!0)}get stats(){return new o(this)}get[k](){return this[j].length-this[z]}get[O](){return this[z]-this[B]}get[A](){return this[j].length-this[B]}get[M](){return!!this[Q]&&!this[N]&&!this[Q].destroyed}get[T](){let e=this[Q]?.version===`h2`;return!!(this[Q]?.busy(null)||this[A]>=(ve(this)||1)||this[k]>0&&!e)}[E](e){xe(this),this.once(`connect`,e)}[Y](e,t){let n=new c(this[S].origin,e,t);return this[j].push(n),this[D]||(a.bodyLength(n.body)==null&&a.isIterable(n.body)?(this[D]=1,queueMicrotask(()=>we(this))):this[le](!0)),this[D]&&this[P]!==2&&this[T]&&(this[P]=2),this[P]<2}[ae](){return new Promise(e=>{this[A]?this[pe]=e:e(null)})}[J](e){return new Promise(t=>{let n=this[j].splice(this[z]);for(let t=0;t<n.length;t++){let r=n[t];r!=null&&a.errorRequest(this,r,e)}let r=()=>{this[pe]&&(this[pe](),this[pe]=null),t(null)};this[Q]?(this[Q].destroy(e,r),this[Q]=null):queueMicrotask(r),this[le]()})}};function be(e,t){if(e[O]===0&&t.code!==`UND_ERR_INFO`&&t.code!==`UND_ERR_SOCKET`){n(e[z]===e[B]);let r=e[j].splice(e[B]);for(let n=0;n<r.length;n++){let i=r[n];i!=null&&a.errorRequest(e,i,t)}n(e[A]===0)}}function xe(e){n(!e[N]),n(!e[Q]);let{host:t,hostname:i,protocol:o,port:c}=e[S];if(i[0]===`[`){let e=i.indexOf(`]`);n(e!==-1);let t=i.substring(1,e);n(r.isIPv6(t)),i=t}e[N]=!0,s.beforeConnect.hasSubscribers&&s.beforeConnect.publish({connectParams:{host:t,hostname:i,protocol:o,port:c,version:e[Q]?.version,servername:e[C],localAddress:e[X]},connector:e[re]});try{e[re]({host:t,hostname:i,protocol:o,port:c,servername:e[C],localAddress:e[X]},(r,l)=>{if(r){Se(e,r,{host:t,hostname:i,protocol:o,port:c}),e[le]();return}if(e.destroyed){a.destroy(l.on(`error`,he),new v),e[le]();return}n(l);try{e[Q]=l.alpnProtocol===`h2`?fe(e,l):de(e,l)}catch(n){l.destroy().on(`error`,he),Se(e,n,{host:t,hostname:i,protocol:o,port:c}),e[le]();return}e[N]=!1,l[ie]=0,l[q]=e[q],l[w]=e,l[V]=null,s.connected.hasSubscribers&&s.connected.publish({connectParams:{host:t,hostname:i,protocol:o,port:c,version:e[Q]?.version,servername:e[C],localAddress:e[X]},connector:e[re],socket:l}),e.emit(`connect`,e[S],[e]),e[le]()})}catch(n){Se(e,n,{host:t,hostname:i,protocol:o,port:c}),e[le]()}}function Se(e,t,{host:n,hostname:r,protocol:i,port:o}){if(!e.destroyed){if(e[N]=!1,s.connectError.hasSubscribers&&s.connectError.publish({connectParams:{host:n,hostname:r,protocol:i,port:o,version:e[Q]?.version,servername:e[C],localAddress:e[X]},connector:e[re],error:t}),t.code===`ERR_TLS_CERT_ALTNAME_INVALID`){let n=e[j].splice(e[B],e[O]);e[z]=e[B];for(let r=0;r<n.length;r++)a.errorRequest(e,n[r],t);for(;e[k]>0&&e[j][e[z]].servername===e[C];){let n=e[j].splice(e[z],1)[0];a.errorRequest(e,n,t)}}else be(e,t);e.emit(`connectionError`,e[S],[e],t)}}function Ce(e){e[P]=0,e.emit(`drain`,e[S],[e])}function we(e,t){e[D]!==2&&(e[D]=2,Te(e,t),e[D]=0,e[B]>256&&(e[j].splice(0,e[B]),e[z]-=e[B],e[B]=0))}function Te(e,t){for(;;){if(e.destroyed){n(e[k]===0);return}if(e[pe]&&!e[A]){e[pe](),e[pe]=null;return}if(e[Q]&&e[Q].resume(),e[T])e[P]=2;else if(e[P]===2){t?(e[P]=1,queueMicrotask(()=>Ce(e))):Ce(e);continue}if(e[k]===0||e[O]>=(ve(e)||1))return;let r=e[j][e[z]];if(r===null)return;if(e[S].protocol===`https:`&&e[C]!==r.servername){if(e[O]>0)return;e[C]=r.servername,e[Q]?.destroy(new p(`servername changed`),()=>{e[Q]=null,we(e)})}if(e[N])return;if(!e[Q]){e[C]=r.servername,xe(e);return}if(e[Q].destroyed||e[Q].busy(r))return;!r.aborted&&e[Q].write(r)?e[z]++:e[j].splice(e[z],1)}}t.exports=ye})),z=e.c(((e,t)=>{let n=2048,r=n-1;var i=class{bottom=0;top=0;list=Array(n).fill(void 0);next=null;isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&r)===this.bottom}push(e){this.list[this.top]=e,this.top=this.top+1&r}shift(){let e=this.list[this.bottom];return e===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&r,e)}};t.exports=class{constructor(){this.head=this.tail=new i}isEmpty(){return this.head.isEmpty()}push(e){this.head.isFull()&&(this.head=this.head.next=new i),this.head.push(e)}shift(){let e=this.tail,t=e.shift();return e.isEmpty()&&e.next!==null&&(this.tail=e.next,e.next=null),t}}})),B=e.c(((e,t)=>{let{PoolStats:n}=h(),r=y(),i=z(),{kConnected:a,kSize:o,kRunning:s,kPending:c,kQueued:u,kBusy:d,kFree:f,kUrl:p,kClose:m,kDestroy:g,kDispatch:_}=l(),v=Symbol(`clients`),b=Symbol(`needDrain`),x=Symbol(`queue`),S=Symbol(`closed resolve`),C=Symbol(`onDrain`),w=Symbol(`onConnect`),T=Symbol(`onDisconnect`),E=Symbol(`onConnectionError`),D=Symbol(`get dispatcher`),O=Symbol(`has dispatcher`),k=Symbol(`add client`),A=Symbol(`remove client`);t.exports={PoolBase:class extends r{[x]=new i;[u]=0;[v]=[];[b]=!1;[C](e,t,n){let r=this[x],i=!1;for(;!i;){let t=r.shift();if(!t)break;this[u]--,i=!e.dispatch(t.opts,t.handler)}if(e[b]=i,!i&&this[b]&&(this[b]=!1,this.emit(`drain`,t,[this,...n])),this[S]&&r.isEmpty()){let e=[];for(let t=0;t<this[v].length;t++){let n=this[v][t];n.destroyed||e.push(n.close())}return Promise.all(e).then(this[S])}}[w]=(e,t)=>{this.emit(`connect`,e,[this,...t])};[T]=(e,t,n)=>{this.emit(`disconnect`,e,[this,...t],n)};[E]=(e,t,n)=>{this.emit(`connectionError`,e,[this,...t],n)};get[d](){return this[b]}get[a](){let e=0;for(let{[a]:t}of this[v])e+=t;return e}get[f](){let e=0;for(let{[a]:t,[b]:n}of this[v])e+=t&&!n;return e}get[c](){let e=this[u];for(let{[c]:t}of this[v])e+=t;return e}get[s](){let e=0;for(let{[s]:t}of this[v])e+=t;return e}get[o](){let e=this[u];for(let{[o]:t}of this[v])e+=t;return e}get stats(){return new n(this)}[m](){if(this[x].isEmpty()){let e=[];for(let t=0;t<this[v].length;t++){let n=this[v][t];n.destroyed||e.push(n.close())}return Promise.all(e)}else return new Promise(e=>{this[S]=e})}[g](e){for(;;){let t=this[x].shift();if(!t)break;t.handler.onResponseError(null,e)}let t=Array(this[v].length);for(let n=0;n<this[v].length;n++)t[n]=this[v][n].destroy(e);return Promise.all(t)}[_](e,t){let n=this[D]();return n?n.dispatch(e,t)||(n[b]=!0,this[b]=!this[O]()):(this[b]=!0,this[x].push({opts:e,handler:t}),this[u]++),!this[b]}[O](){for(let e=0;e<this[v].length;e++){let t=this[v][e];if(!t[b]&&t.closed!==!0&&t.destroyed!==!0)return!0}return!1}[k](e){return e.on(`drain`,this[C].bind(this,e)).on(`connect`,this[w]).on(`disconnect`,this[T]).on(`connectionError`,this[E]),this[v].push(e),this[b]&&queueMicrotask(()=>{this[b]&&this[C](e,e[p],[e,this])}),this}[A](e){let t=this[v].indexOf(e);t!==-1&&this[v].splice(t,1),e.close(()=>{}),this[b]=!this[v].some(e=>!e[b]&&e.closed!==!0&&e.destroyed!==!0)}},kClients:v,kNeedDrain:b,kAddClient:k,kRemoveClient:A,kGetDispatcher:D,kHasDispatcher:O}})),V=e.c(((e,t)=>{let{PoolBase:n,kClients:r,kNeedDrain:i,kAddClient:a,kGetDispatcher:o,kHasDispatcher:s,kRemoveClient:c}=B(),u=R(),{InvalidArgumentError:f}=d(),p=m(),{kUrl:h}=l(),g=b(),_=Symbol(`options`),v=Symbol(`connections`),y=Symbol(`factory`);function x(e,t){return new u(e,t)}t.exports=class extends n{constructor(e,{connections:t,factory:n=x,connect:i,connectTimeout:a,tls:o,maxCachedSessions:s,socketPath:c,autoSelectFamily:l,autoSelectFamilyAttemptTimeout:u,allowH2:d,useH2c:m,clientTtl:b,...S}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new f(`invalid connections`);if(typeof n!=`function`)throw new f(`factory must be a function.`);if(i!=null&&typeof i!=`function`&&typeof i!=`object`)throw new f(`connect must be a function or an object`);typeof i!=`function`&&(i=g({...o,maxCachedSessions:s,allowH2:d,useH2c:m,socketPath:c,timeout:a,...typeof l==`boolean`?{autoSelectFamily:l,autoSelectFamilyAttemptTimeout:u}:void 0,...i})),super(S),this[v]=t||null,this[h]=p.parseOrigin(e),this[_]={...p.deepClone(S),connect:i,allowH2:d,useH2c:m,clientTtl:b,socketPath:c},this[y]=n,this.on(`connect`,(e,t)=>{if(b!=null&&b>0)for(let e of t)Object.assign(e,{ttl:Date.now()})}),this.on(`connectionError`,(e,t,n)=>{for(let e of t){let t=this[r].indexOf(e);t!==-1&&this[r].splice(t,1)}})}[o](){let e=this[_].clientTtl;for(let t=0;t<this[r].length;t++){let n=this[r][t];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e)this[c](n),t--;else if(!n[i])return n}if(!this[v]||this[r].length<this[v]){let e=this[y](this[h],this[_]);return this[a](e),e}}[s](){let e=this[_].clientTtl;for(let t=0;t<this[r].length;t++){let n=this[r][t];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e)this[c](n),t--;else if(!n[i])return!0}if(!this[v]||this[r].length<this[v]){let e=this[y](this[h],this[_]);return this[a](e),!0}return!1}}})),ee=e.c(((e,t)=>{let{BalancedPoolMissingUpstreamError:n,InvalidArgumentError:r}=d(),{PoolBase:i,kClients:a,kNeedDrain:o,kAddClient:s,kRemoveClient:c,kGetDispatcher:u}=B(),f=V(),{kOriginless:p,kUrl:h}=l(),g=m(),_=Symbol(`factory`),v=Symbol(`options`),y=Symbol(`kGreatestCommonDivisor`),b=Symbol(`kCurrentWeight`),x=Symbol(`kIndex`),S=Symbol(`kWeight`),C=Symbol(`kMaxWeightPerServer`),w=Symbol(`kErrorPenalty`);function T(e,t){if(e===0)return t;for(;t!==0;){let n=t;t=e%t,e=n}return e}function E(e,t){return new f(e,t)}t.exports=class extends i{constructor(e=[],{factory:t=E,connect:n,tls:i,...a}={}){if(typeof t!=`function`)throw new r(`factory must be a function.`);super(a),this[p]=!0,n&&typeof n!=`function`&&(n={...n}),i&&typeof i!=`function`&&(i={...i}),this[v]={...g.deepClone(a),connect:n,tls:i},this[x]=-1,this[b]=0,this[C]=this[v].maxWeightPerServer||100,this[w]=this[v].errorPenalty||15,Array.isArray(e)||(e=[e]),this[_]=t;for(let t of e)this.addUpstream(t);this._updateBalancedPoolStats()}addUpstream(e){let t=g.parseOrigin(e).origin;if(this[a].find(e=>e[h].origin===t&&e.closed!==!0&&e.destroyed!==!0))return this;let n=this[_](t,this[v]);this[s](n),n.on(`connect`,()=>{n[S]=Math.min(this[C],n[S]+this[w])}),n.on(`connectionError`,()=>{n[S]=Math.max(1,n[S]-this[w]),this._updateBalancedPoolStats()}),n.on(`disconnect`,(...e)=>{let t=e[2];t&&t.code===`UND_ERR_SOCKET`&&(n[S]=Math.max(1,n[S]-this[w]),this._updateBalancedPoolStats())});for(let e of this[a])e[S]=this[C];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let e=0;for(let t=0;t<this[a].length;t++)e=T(this[a][t][S],e);this[y]=e}removeUpstream(e){let t=g.parseOrigin(e).origin,n=this[a].find(e=>e[h].origin===t&&e.closed!==!0&&e.destroyed!==!0);return n&&this[c](n),this}getUpstream(e){let t=g.parseOrigin(e).origin;return this[a].find(e=>e[h].origin===t&&e.closed!==!0&&e.destroyed!==!0)}get upstreams(){return this[a].filter(e=>e.closed!==!0&&e.destroyed!==!0).map(e=>e[h].origin)}[u](){if(this[a].length===0)throw new n;let e=0,t=-1;for(;e++<this[a].length;){this[x]=(this[x]+1)%this[a].length;let e=this[a][this[x]];if(this[x]===0&&(this[b]=this[b]-this[y],this[b]<=0&&(this[b]=this[C])),!(e[o]||e.closed===!0||e.destroyed===!0)&&((t===-1||e[S]>this[a][t][S])&&(t=this[x]),e[S]>=this[b]))return e}if(t!==-1)return this[b]=this[a][t][S],this[x]=t,this[a][t]}}})),H=e.c(((e,t)=>{let{PoolBase:n,kClients:r,kNeedDrain:i,kAddClient:a,kGetDispatcher:o,kHasDispatcher:s,kRemoveClient:c}=B(),u=R(),{InvalidArgumentError:f}=d(),p=m(),{kUrl:h}=l(),g=b(),_=Symbol(`options`),v=Symbol(`connections`),y=Symbol(`factory`),x=Symbol(`index`);function S(e,t){return new u(e,t)}t.exports=class extends n{constructor(e,{connections:t,factory:n=S,connect:i,connectTimeout:a,tls:o,maxCachedSessions:s,socketPath:c,autoSelectFamily:l,autoSelectFamilyAttemptTimeout:u,allowH2:d,clientTtl:m,...b}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new f(`invalid connections`);if(typeof n!=`function`)throw new f(`factory must be a function.`);if(i!=null&&typeof i!=`function`&&typeof i!=`object`)throw new f(`connect must be a function or an object`);typeof i!=`function`&&(i=g({...o,maxCachedSessions:s,allowH2:d,socketPath:c,timeout:a,...typeof l==`boolean`?{autoSelectFamily:l,autoSelectFamilyAttemptTimeout:u}:void 0,...i})),super(b),this[v]=t||null,this[h]=p.parseOrigin(e),this[_]={...p.deepClone(b),connect:i,allowH2:d,clientTtl:m,socketPath:c},this[y]=n,this[x]=-1,this.on(`connect`,(e,t)=>{if(m!=null&&m>0)for(let e of t)Object.assign(e,{ttl:Date.now()})}),this.on(`connectionError`,(e,t,n)=>{for(let e of t){let t=this[r].indexOf(e);t!==-1&&this[r].splice(t,1)}})}[o](){let e=this[_].clientTtl;if(this[r].length===0){let e=this[y](this[h],this[_]);return this[a](e),e}let t=0;for(;t<this[r].length;){this[x]=(this[x]+1)%this[r].length;let n=this[r][this[x]];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e){this[c](n),this[x]--;continue}if(!n[i])return n;t++}if(!this[v]||this[r].length<this[v]){let e=this[y](this[h],this[_]);return this[a](e),e}}[s](){let e=this[_].clientTtl;for(let t=0;t<this[r].length;t++){let n=this[r][t];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e)this[c](n),t<=this[x]&&this[x]--,t--;else if(!n[i])return!0}if(!this[v]||this[r].length<this[v]){let e=this[y](this[h],this[_]);return this[a](e),!0}return!1}}})),U=e.c(((e,t)=>{let{InvalidArgumentError:n,MaxOriginsReachedError:r}=d(),{kBusy:i,kClients:a,kConnected:o,kRunning:s,kPending:c,kClose:u,kDestroy:f,kDispatch:p,kUrl:h}=l(),g=y(),_=V(),v=R(),b=m(),x=Symbol(`onConnect`),S=Symbol(`onDisconnect`),C=Symbol(`onConnectionError`),w=Symbol(`onDrain`),T=Symbol(`factory`),E=Symbol(`options`),D=Symbol(`origins`);function O(e,t){return t&&t.connections===1?new v(e,t):new _(e,t)}t.exports=class extends g{constructor({factory:e=O,maxOrigins:t=1/0,connect:r,...i}={}){if(typeof e!=`function`)throw new n(`factory must be a function.`);if(r!=null&&typeof r!=`function`&&typeof r!=`object`)throw new n(`connect must be a function or an object`);if(typeof t!=`number`||Number.isNaN(t)||t<=0)throw new n(`maxOrigins must be a number greater than 0`);super(i),r&&typeof r!=`function`&&(r={...r}),this[E]={...b.deepClone(i),maxOrigins:t,connect:r},this[T]=e,this[a]=new Map,this[D]=new Set,this[w]=(e,t)=>{this.emit(`drain`,e,[this,...t])},this[x]=(e,t)=>{this.emit(`connect`,e,[this,...t])},this[S]=(e,t,n)=>{this.emit(`disconnect`,e,[this,...t],n)},this[C]=(e,t,n)=>{this.emit(`connectionError`,e,[this,...t],n)}}get[s](){let e=0;for(let t of this[a].values())e+=t[s];return e}[p](e,t){let s;if(e.origin&&(typeof e.origin==`string`||e.origin instanceof URL))s=String(e.origin);else throw new n(`opts.origin must be a non-empty string or URL.`);let l=e.allowH2??this[E].allowH2,u=l===!1?`${s}#http1-only`:s;if(this[D].size>=this[E].maxOrigins&&!this[D].has(s))throw new r;let d=this[a].get(u);if(!d){d=this[T](e.origin,l===!1?{...this[E],allowH2:!1}:this[E]);let t=()=>{if(this[a].get(u)!==d||d[o]>0||d[i]||d[c]>0)return;this[a].delete(u),d.destroyed||d.close();let e=!1;for(let t of this[a].keys())if(t===s||t===`${s}#http1-only`){e=!0;break}e||this[D].delete(s)};d.on(`drain`,this[w]).on(`connect`,this[x]).on(`disconnect`,(e,n,r)=>{t(),this[S](e,n,r)}).on(`connectionError`,(e,n,r)=>{t(),this[C](e,n,r)}),this[a].set(u,d),this[D].add(s)}return d.dispatch(e,t)}[u](){let e=[];for(let t of this[a].values())e.push(t.close());return this[a].clear(),Promise.all(e)}[f](e){let t=[];for(let n of this[a].values())t.push(n.destroy(e));return this[a].clear(),Promise.all(t)}get stats(){let e={};for(let t of this[a].values())t.stats&&(e[t[h].origin]=t.stats);return e}}})),W=e.c(((e,t)=>{let n=v(),{InvalidArgumentError:r}=d(),{toRawHeaders:i}=m(),{kOriginless:a,kUrl:o}=l();var s=class{#e;constructor(e){this.#e=e}onRequestStart(e,t){this.#e.onConnect?.(t=>e.abort(t),t)}onRequestUpgrade(e,t,n,r){let a=e?.rawHeaders??i(n??{});this.#e.onUpgrade?.(t,a,r)}onResponseStart(e,t,n,r){let a=e?.rawHeaders??i(n??{});this.#e.onHeaders?.(t,a,()=>e.resume(),r)===!1&&e.pause()}onResponseData(e,t){this.#e.onData?.(t)===!1&&e.pause()}onResponseEnd(e,t){let n=e?.rawTrailers??i(t??{});this.#e.onComplete?.(n)}onResponseError(e,t){if(!this.#e.onError)throw t;this.#e.onError(t)}onBodySent(e){this.#e.onBodySent?.(e)}onRequestSent(){this.#e.onRequestSent?.()}onResponseStarted(){this.#e.onResponseStarted?.()}};t.exports=class e extends n{#e;constructor(e){if(super(),!e||typeof e.dispatch!=`function`)throw new r(`Argument dispatcher must implement dispatch`);this.#e=e,this[o]=e[o],this[a]=e[a]}static wrapHandler(e){if(!e||typeof e!=`object`)throw new r(`handler must be an object`);return typeof e.onRequestStart==`function`?e:new s(e)}dispatch(t,n){return t.allowH2!==!1&&(t={...t,allowH2:!1}),this.#e.dispatch(t,e.wrapHandler(n))}close(...e){return this.#e.close(...e)}destroy(...e){return this.#e.destroy(...e)}}})),te=e.c(((e,t)=>{let{Buffer:n}=require(`node:buffer`),r=require(`node:net`),{InvalidArgumentError:i}=d();function a(e){if(r.isIPv4(e)){let t=e.split(`.`).map(Number);return{type:1,buffer:n.from(t)}}if(r.isIPv6(e))return{type:4,buffer:o(e)};let t=n.from(e,`utf8`);if(t.length>255)throw new i(`Domain name too long (max 255 bytes)`);return{type:3,buffer:n.concat([n.from([t.length]),t])}}function o(e){let t=n.alloc(16),i=e;if(e.includes(`.`)){let t=e.lastIndexOf(`:`),n=e.slice(t+1);if(r.isIPv4(n)){let r=n.split(`.`).map(Number),a=(r[0]<<8|r[1]).toString(16),o=(r[2]<<8|r[3]).toString(16);i=`${e.slice(0,t)}:${a}:${o}`}}let a=i.indexOf(`::`);if(a!==-1){let e=i.slice(0,a),n=i.slice(a+2),r=e===``?[]:e.split(`:`),o=n===``?[]:n.split(`:`),s=0;for(let e of r)t.writeUInt16BE(parseInt(e,16),s),s+=2;s=16-o.length*2;for(let e of o)t.writeUInt16BE(parseInt(e,16),s),s+=2}else{let e=i.split(`:`);for(let n=0;n<e.length;n++)t.writeUInt16BE(parseInt(e[n],16),n*2)}return t}function s(e,t,r){let i=n.allocUnsafe(2);return i.writeUInt16BE(r,0),n.concat([n.from([e]),t,i])}function c(e,t=0){if(e.length<t+1)throw new i(`Buffer too small to contain address type`);let n=e[t],r,a=t+1;switch(n){case 1:if(e.length<a+6)throw new i(`Buffer too small for IPv4 address`);r=Array.from(e.subarray(a,a+4)).join(`.`),a+=4;break;case 3:{if(e.length<a+1)throw new i(`Buffer too small for domain length`);let t=e[a];if(a+=1,e.length<a+t+2)throw new i(`Buffer too small for domain address`);r=e.subarray(a,a+t).toString(`utf8`),a+=t;break}case 4:{if(e.length<a+18)throw new i(`Buffer too small for IPv6 address`);let t=[];for(let n=0;n<8;n++){let r=e.readUInt16BE(a+n*2);t.push(r.toString(16))}r=t.join(`:`),a+=16;break}default:throw new i(`Invalid address type: ${n}`)}if(e.length<a+2)throw new i(`Buffer too small for port`);let o=e.readUInt16BE(a);return a+=2,{address:r,port:o,bytesRead:a-t}}function l(e){let t={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`}[e]||`Unknown SOCKS5 error code: ${e}`,n=Error(t);return n.code=`SOCKS5_${e}`,n}t.exports={parseAddress:a,parseIPv6:o,buildAddressBuffer:s,parseResponseAddress:c,createReplyError:l}})),G=e.c(((e,t)=>{let{EventEmitter:n}=require(`node:events`),{Buffer:r}=require(`node:buffer`),{InvalidArgumentError:i,Socks5ProxyError:a}=d(),{debuglog:o}=require(`node:util`),{parseAddress:s}=te(),c=o(`undici:socks5`),l=r.alloc(0),u={NO_AUTH:0,GSSAPI:1,USERNAME_PASSWORD:2,NO_ACCEPTABLE:255},f={CONNECT:1,BIND:2,UDP_ASSOCIATE:3},p={IPV4:1,DOMAIN:3,IPV6:4},m={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},h={INITIAL:`initial`,HANDSHAKING:`handshaking`,AUTHENTICATING:`authenticating`,AUTHENTICATED:`authenticated`,CONNECTING:`connecting`,CONNECTED:`connected`,ERROR:`error`,CLOSED:`closed`};t.exports={Socks5Client:class extends n{constructor(e,t={}){if(super(),!e)throw new i(`socket is required`);this.socket=e,this.options=t,this.state=h.INITIAL,this.buffer=l,this.onSocketData=this.onData.bind(this),this.onSocketError=this.onError.bind(this),this.onSocketClose=this.onClose.bind(this),this.authMethods=[],t.username&&t.password&&this.authMethods.push(u.USERNAME_PASSWORD),this.authMethods.push(u.NO_AUTH),this.socket.on(`data`,this.onSocketData),this.socket.on(`error`,this.onSocketError),this.socket.on(`close`,this.onSocketClose)}onData(e){c(`received data`,e.length,`bytes in state`,this.state),this.buffer=r.concat([this.buffer,e]);try{switch(this.state){case h.HANDSHAKING:this.handleHandshakeResponse();break;case h.AUTHENTICATING:this.handleAuthResponse();break;case h.CONNECTING:this.handleConnectResponse();break}}catch(e){this.onError(e)}}onError(e){c(`socket error`,e),this.state=h.ERROR,this.emit(`error`,e),this.destroy()}onClose(){c(`socket closed`),this.state=h.CLOSED,this.emit(`close`)}destroy(){this.socket&&!this.socket.destroyed&&this.socket.destroy()}markAuthenticated(){this.state=h.AUTHENTICATED,this.emit(`authenticated`)}handshake(){if(this.state!==h.INITIAL)throw new i(`Handshake already started`);c(`starting handshake with`,this.authMethods.length,`auth methods`),this.state=h.HANDSHAKING;let e=r.alloc(2+this.authMethods.length);e[0]=5,e[1]=this.authMethods.length,this.authMethods.forEach((t,n)=>{e[2+n]=t}),this.socket.write(e)}handleHandshakeResponse(){if(this.buffer.length<2)return;let e=this.buffer[0],t=this.buffer[1];if(e!==5)throw new a(`Invalid SOCKS version: ${e}`,`UND_ERR_SOCKS5_VERSION`);if(t===u.NO_ACCEPTABLE)throw new a(`No acceptable authentication method`,`UND_ERR_SOCKS5_AUTH_REJECTED`);if(this.buffer=this.buffer.subarray(2),c(`server selected auth method`,t),t===u.NO_AUTH)this.markAuthenticated();else if(t===u.USERNAME_PASSWORD)this.state=h.AUTHENTICATING,this.sendAuthRequest();else throw new a(`Unsupported authentication method: ${t}`,`UND_ERR_SOCKS5_AUTH_METHOD`)}sendAuthRequest(){let{username:e,password:t}=this.options;if(!e||!t)throw new i(`Username and password required for authentication`);c(`sending username/password auth`);let n=r.from(e),a=r.from(t);if(n.length>255||a.length>255)throw new i(`Username or password too long`);let o=r.alloc(3+n.length+a.length);o[0]=1,o[1]=n.length,n.copy(o,2),o[2+n.length]=a.length,a.copy(o,3+n.length),this.socket.write(o)}handleAuthResponse(){if(this.buffer.length<2)return;let e=this.buffer[0],t=this.buffer[1];if(e!==1)throw new a(`Invalid auth sub-negotiation version: ${e}`,`UND_ERR_SOCKS5_AUTH_VERSION`);if(t!==0)throw new a(`Authentication failed`,`UND_ERR_SOCKS5_AUTH_FAILED`);this.buffer=this.buffer.subarray(2),c(`authentication successful`),this.markAuthenticated()}connect(e,t){if(this.state===h.CONNECTING||this.state===h.CONNECTED)throw new i(`Connection already in progress`);if(this.state!==h.AUTHENTICATED)throw new i(`Client must be authenticated before CONNECT`);c(`connecting to`,e,t),this.state=h.CONNECTING;let n=this.buildConnectRequest(f.CONNECT,e,t);this.socket.write(n)}buildConnectRequest(e,t,n){let{type:i,buffer:a}=s(t),o=r.alloc(4+a.length+2);return o[0]=5,o[1]=e,o[2]=0,o[3]=i,a.copy(o,4),o.writeUInt16BE(n,4+a.length),o}handleConnectResponse(){if(this.buffer.length<4)return;let e=this.buffer[0],t=this.buffer[1],n=this.buffer[3];if(e!==5)throw new a(`Invalid SOCKS version in reply: ${e}`,`UND_ERR_SOCKS5_REPLY_VERSION`);let r=4;if(n===p.IPV4)r+=6;else if(n===p.DOMAIN){if(this.buffer.length<5)return;r+=1+this.buffer[4]+2}else if(n===p.IPV6)r+=18;else throw new a(`Invalid address type in reply: ${n}`,`UND_ERR_SOCKS5_ADDR_TYPE`);if(this.buffer.length<r)return;if(t!==m.SUCCEEDED)throw new a(`SOCKS5 connection failed: ${this.getReplyErrorMessage(t)}`,`UND_ERR_SOCKS5_REPLY_${t}`);let i,o=4;if(n===p.IPV4)i=Array.from(this.buffer.subarray(o,o+4)).join(`.`),o+=4;else if(n===p.DOMAIN){let e=this.buffer[o];o+=1,i=this.buffer.subarray(o,o+e).toString(),o+=e}else if(n===p.IPV6){let e=[];for(let t=0;t<8;t++){let n=this.buffer.readUInt16BE(o+t*2);e.push(n.toString(16))}i=e.join(`:`),o+=16}let s=this.buffer.readUInt16BE(o);this.buffer=l,this.state=h.CONNECTED,this.socket.removeListener(`data`,this.onSocketData),c(`connected, bound address:`,i,`port:`,s),this.emit(`connected`,{address:i,port:s})}getReplyErrorMessage(e){switch(e){case m.GENERAL_FAILURE:return`General SOCKS server failure`;case m.CONNECTION_NOT_ALLOWED:return`Connection not allowed by ruleset`;case m.NETWORK_UNREACHABLE:return`Network unreachable`;case m.HOST_UNREACHABLE:return`Host unreachable`;case m.CONNECTION_REFUSED:return`Connection refused`;case m.TTL_EXPIRED:return`TTL expired`;case m.COMMAND_NOT_SUPPORTED:return`Command not supported`;case m.ADDRESS_TYPE_NOT_SUPPORTED:return`Address type not supported`;default:return`Unknown error code: ${e}`}}},AUTH_METHODS:u,COMMANDS:f,ADDRESS_TYPES:p,REPLY_CODES:m,STATES:h}})),ne=e.c(((e,t)=>{let{URL:n}=require(`node:url`),r,i=y(),{ConnectTimeoutError:a,InvalidArgumentError:o}=d(),{Socks5Client:s,STATES:c}=G(),{kBusy:u,kConnected:f,kDispatch:p,kClose:h,kDestroy:g}=l(),_=V(),v=b(),{setupConnectTimeout:x}=m(),{debuglog:S}=require(`node:util`),C=S(`undici:socks5-proxy`),w=Symbol(`proxy url`),T=Symbol(`proxy headers`),E=Symbol(`proxy auth`),D=Symbol(`proxy protocol`),O=Symbol(`pools`),k=Symbol(`connector`),A=Symbol(`connect timeout`),j=Symbol(`request tls settings`),M=Symbol(`request tls timeout`);function N(e,t,n){return new a(`Connect Timeout Error (attempted address: ${e}:${t}, timeout: ${n}ms)`)}let P=!1;t.exports=class extends i{constructor(e,t={}){if(super(t),P||=(process.emitWarning(`SOCKS5 proxy support is experimental and subject to change`,`ExperimentalWarning`),!0),!e)throw new o(`Proxy URL is mandatory`);let r=typeof e==`string`?new n(e):e;if(r.protocol!==`socks5:`&&r.protocol!==`socks:`)throw new o(`Proxy URL must use socks5:// or socks:// protocol`);this[w]=r,this[T]=t.headers||{},this[D]=t.proxyTls?`https:`:`http:`;let i=t.connectTimeout??5e3;if(!Number.isFinite(i)||i<0)throw new o(`invalid connectTimeout`);this[A]=i;let{timeout:a,...s}=t.requestTls||{},c=a??i;if(!Number.isFinite(c)||c<0)throw new o(`invalid requestTls.timeout`);this[j]=s,this[M]=c,this[E]={username:t.username||(r.username?decodeURIComponent(r.username):null),password:t.password||(r.password?decodeURIComponent(r.password):null)};let l=t.proxyTls?.timeout??i;if(!Number.isFinite(l)||l<0)throw new o(`invalid proxyTls.timeout`);this[k]=t.connect||v({...t.proxyTls,timeout:l,servername:t.proxyTls?.servername||r.hostname}),this[O]=new Map}async createSocks5Connection(e,t){let n=this[w].hostname,r=parseInt(this[w].port)||1080;C(`creating SOCKS5 connection to`,n,r);let i=Promise.withResolvers();this[k]({hostname:n,host:n,port:r,protocol:this[D]},(e,t)=>{e?i.reject(e):i.resolve(t)});let a=await i.promise,o=new s(a,this[E]);o.on(`error`,e=>{C(`SOCKS5 error:`,e),a.destroy()}),await o.handshake();let l=Promise.withResolvers(),u=this[A]===0?null:setTimeout(()=>{d(),o.destroy(),l.reject(N(n,r,this[A]))},this[A]),d=()=>{clearTimeout(u),o.removeListener(`authenticated`,f),o.removeListener(`error`,p)},f=()=>{d(),l.resolve()},p=e=>{d(),l.reject(e)};o.state===c.AUTHENTICATED?(clearTimeout(u),l.resolve()):(o.once(`authenticated`,f),o.once(`error`,p)),await l.promise,await o.connect(e,t);let m=Promise.withResolvers(),h=this[A]===0?null:setTimeout(()=>{g(),o.destroy(),m.reject(N(e,t,this[A]))},this[A]),g=()=>{clearTimeout(h),o.removeListener(`connected`,_),o.removeListener(`error`,v)},_=n=>{C(`SOCKS5 tunnel established to`,e,t,`via`,n),g(),m.resolve()},v=e=>{g(),m.reject(e)};return o.once(`connected`,_),o.once(`error`,v),await m.promise,a}[p](e,t){let{origin:i}=e;C(`dispatching request to`,i,`via SOCKS5`);try{let a=String(i),o=this[O].get(a);if(!o||o.destroyed||o.closed){o=new _(i,{pipelining:e.pipelining,connections:e.connections,connect:async(e,t)=>{try{let e=new n(i),a=e.hostname,o=parseInt(e.port)||(e.protocol===`https:`?443:80);C(`establishing SOCKS5 connection to`,a,o);let s=await this.createSocks5Connection(a,o),c=s;if(e.protocol===`https:`){r||=require(`node:tls`),C(`upgrading to TLS`),c=r.connect({...this[j],socket:s,servername:this[j]?.servername||a});let e=Promise.withResolvers(),t=()=>{queueMicrotask(l),c.removeListener(`secureConnect`,n),c.removeListener(`error`,i)},n=()=>{t(),e.resolve()},i=n=>{t(),e.reject(n)},l=x(new WeakRef(c),{timeout:this[M],hostname:a,port:o});c.once(`secureConnect`,n),c.once(`error`,i),await e.promise}t(null,c)}catch(e){C(`SOCKS5 connection error:`,e),t(e)}}}),this[O].set(a,o);let t=()=>{this[O].get(a)!==o||o[f]>0||o[u]||(this[O].delete(a),o.destroyed||o.close())};o.on(`disconnect`,t),o.on(`connectionError`,t)}return o[p](e,t)}catch(e){if(C(`dispatch error:`,e),typeof t.onResponseError==`function`)return t.onResponseError(null,e),!1;if(typeof t.onError==`function`)return t.onError(e),!1;throw e}}async[h](){let e=[];for(let t of this[O].values())e.push(t.close());this[O].clear(),await Promise.all(e)}async[g](e){let t=[];for(let n of this[O].values())t.push(n.destroy(e));this[O].clear(),await Promise.all(t)}}})),K=e.c(((e,t)=>{let{kProxy:n,kClose:r,kDestroy:i,kDispatch:a}=l(),o=U(),s=V(),c=y(),{InvalidArgumentError:u,RequestAbortedError:f,SecureProxyConnectionError:p,ProxyConnectionError:h}=d(),_=b(),v=R(),{channels:x}=g(),S=ne(),{hasSafeIterator:C}=m(),w=Symbol(`proxy agent`),T=Symbol(`proxy client`),E=Symbol(`proxy headers`),D=Symbol(`request tls settings`),O=Symbol(`proxy tls settings`),k=Symbol(`connect endpoint function`),A=Symbol(`connect endpoint function (http/1.1 only)`),j=Symbol(`tunnel proxy`);function M(e){return e===`https:`?443:80}function N(e,t){return new s(e,t)}let P=()=>{};function F(e,t){return t.connections===1?new v(e,t):new s(e,t)}function I(e,t){return t===!0||e!==`http:`}var L=class extends c{#e;#t;constructor(e,{headers:t={},connect:n,factory:r,proxyServername:i}){if(!e)throw new u(`Proxy URL is mandatory`);super(),this[E]=t,this.#t=i,r?this.#e=r(e,{connect:n}):this.#e=new v(e,{connect:n})}[a](e,t){let n=t.onResponseStart;t.onResponseStart=function(e,r,i,a){if(r===407){typeof t.onResponseError==`function`&&t.onResponseError(e,new u(`Proxy Authentication Required (407)`));return}n&&n.call(this,e,r,i,a)};let{origin:r,path:i=`/`,headers:o={}}=e;if(e.path=r+i,!(`host`in o)&&!(`Host`in o)){let{host:e}=new URL(r);o.host=e}return e.headers={...this[E],...o},this.#t!=null&&(e.servername=this.#t),this.#e[a](e,t)}[r](){return this.#e.close()}[i](e){return this.#e.destroy(e)}},z=class extends c{constructor(e){if(!e||typeof e==`object`&&!(e instanceof URL)&&!e.uri)throw new u(`Proxy uri is mandatory`);let{clientFactory:t=N}=e;if(typeof t!=`function`)throw new u(`Proxy opts.clientFactory must be a function.`);let{proxyTunnel:r,connectTimeout:i}=e;super(e);let a=this.#e(e),{href:s,origin:c,port:l,protocol:d,username:m,password:g,hostname:v}=a;if(this[n]={uri:s,protocol:d},this[D]=e.requestTls,this[O]=e.proxyTls,this[E]=e.headers||{},this[j]=r,e.auth&&e.token)throw new u(`opts.auth cannot be used in combination with opts.token`);e.auth?this[E][`proxy-authorization`]=`Basic ${e.auth}`:e.token?this[E][`proxy-authorization`]=e.token:m&&g?this[E][`proxy-authorization`]=`Basic ${Buffer.from(`${decodeURIComponent(m)}:${decodeURIComponent(g)}`).toString(`base64`)}`:m&&(this[E][`proxy-authorization`]=`Basic ${Buffer.from(`${decodeURIComponent(m)}:`).toString(`base64`)}`);let y=_({timeout:i,...e.proxyTls}),b=_({timeout:i,...e.proxyTls,allowH2:!1});this[k]=_({timeout:i,...e.requestTls}),this[A]=_({timeout:i,...e.requestTls,allowH2:!1});let C=e.factory||F,R=(t,r)=>{let{protocol:a}=new URL(t);if(this[n].protocol===`socks5:`||this[n].protocol===`socks:`)return new S(this[n].uri,{headers:this[E],connect:y,factory:C,username:e.username||m,password:e.password||g,connectTimeout:i,proxyTls:e.proxyTls,requestTls:e.requestTls});if(!I(a,this[j])){let e=this[n].protocol===`https:`?(e,t)=>b(e,(e,n)=>{e&&e.code===`ERR_TLS_CERT_ALTNAME_INVALID`?t(new p(e)):t(e,n)}):b;return new L(this[n].uri,{headers:this[E],connect:e,factory:C,proxyServername:this[n].protocol===`https:`?this[O]?.servername||v:void 0})}return C(t,r)};d===`socks5:`||d===`socks:`?this[T]=null:this[T]=t(a,{connect:y}),this[w]=new o({...e,factory:R,connect:async(e,t)=>{if(!this[T]){t(new u(`Cannot establish tunnel connection without a proxy client`));return}let n=e.host;e.port||(n+=`:${M(e.protocol)}`);try{let r={origin:c,port:l,path:n,signal:e.signal,headers:{...this[E],host:e.host,...e.connections==null||e.connections>0?{"proxy-connection":`keep-alive`}:{}},servername:this[O]?.servername||v},{socket:i,statusCode:a}=await this[T].connect(r);if(a!==200){i.on(`error`,P).destroy(),t(new f(`Proxy response (${a}) !== 200 when HTTP Tunneling`));return}if(x.proxyConnected.hasSubscribers&&x.proxyConnected.publish({socket:i,connectParams:r}),e.protocol!==`https:`){t(null,i);return}let o;o=this[D]?this[D].servername:e.servername,(e.allowH2===!1?this[A]:this[k])({...e,servername:o,httpSocket:i},t)}catch(e){e.code===`ERR_TLS_CERT_ALTNAME_INVALID`?t(new p(e)):e.code===`UND_ERR_SOCKET`?t(new h(e)):t(e)}}})}dispatch(e,t){let n=B(e.headers);if(ee(n),n&&!(`host`in n)&&!(`Host`in n)){let{host:t}=new URL(e.origin);n.host=t}return this[w].dispatch({...e,headers:n},t)}#e(e){return typeof e==`string`?new URL(e):e instanceof URL?e:new URL(e.uri)}[r](){let e=[this[w].close()];return this[T]&&e.push(this[T].close()),Promise.all(e)}[i](){let e=[this[w].destroy()];return this[T]&&e.push(this[T].destroy()),Promise.all(e)}};function B(e){if(Array.isArray(e)){let t={};for(let n=0;n<e.length;n+=2)H(e[n])&&W(),t[e[n]]=e[n+1];return t}if(e&&typeof e==`object`&&C(e)){let t={};for(let[n,r]of e)t[n]=r;return t}return e}function ee(e){for(let t in e)H(t)&&W()}function H(e){return e.length===19&&e.toLowerCase()===`proxy-authorization`}function W(){throw new u(`Proxy-Authorization should be sent in ProxyAgent constructor`)}t.exports=z})),re=e.c(((e,t)=>{let n=y(),{kClose:r,kDestroy:i,kClosed:a,kDestroyed:o,kDispatch:s,kNoProxyAgent:c,kHttpProxyAgent:u,kHttpsProxyAgent:d}=l(),f=K(),p=U(),m={"http:":80,"https:":443};t.exports=class extends n{#e=null;#t=null;#n=null;constructor(e={}){super(e),this.#n=e;let{httpProxy:t,httpsProxy:n,noProxy:r,...i}=e;this[c]=new p(i);let a=t??process.env.http_proxy??process.env.HTTP_PROXY;a?this[u]=new f({...i,uri:a}):this[u]=this[c];let o=n??process.env.https_proxy??process.env.HTTPS_PROXY;o?this[d]=new f({...i,uri:o}):this[d]=this[u],this.#a()}[s](e,t){let n=new URL(e.origin);return this.#r(n).dispatch(e,t)}[r](){return Promise.all([this[c].close(),!this[u][a]&&this[u].close(),!this[d][a]&&this[d].close()])}[i](e){return Promise.all([this[c].destroy(e),!this[u][o]&&this[u].destroy(e),!this[d][o]&&this[d].destroy(e)])}#r(e){let{protocol:t,host:n,port:r}=e;return n=n.replace(/:\d*$/,``).replace(/^\[(.+)\]$/,`$1`).toLowerCase(),n.length>1&&n.charCodeAt(n.length-1)===46&&(n=n.slice(0,-1)),r=Number.parseInt(r,10)||m[t]||0,this.#i(n,r)?t===`https:`?this[d]:this[u]:this[c]}#i(e,t){if(this.#o&&this.#a(),this.#t.length===0)return!0;if(this.#e===`*`)return!1;for(let n=0;n<this.#t.length;n++){let r=this.#t[n];if(!(r.port&&r.port!==t)&&(e===r.hostname||e.slice(-(r.hostname.length+1))===`.${r.hostname}`))return!1}return!0}#a(){let e=this.#n.noProxy??this.#s,t=e.split(/[,\s]/),n=[];for(let e=0;e<t.length;e++){let r=t[e];if(!r)continue;let i,a,o=r.match(/^\[(.+)\]:(\d+)$/);if(o)i=o[1],a=Number.parseInt(o[2],10);else{let e=r.replace(/^\[(.+)\]$/,`$1`),t=(e.match(/:/g)||[]).length===1&&e.match(/^(.+):(\d+)$/);i=t?t[1]:e,a=t?Number.parseInt(t[2],10):0}n.push({hostname:i.replace(/^\*?\./,``).replace(/^(.+)\.$/,`$1`).toLowerCase(),port:a})}this.#e=e,this.#t=n}get#o(){return this.#n.noProxy===void 0?this.#e!==this.#s:!1}get#s(){return process.env.no_proxy??process.env.NO_PROXY??``}}})),q=e.c(((e,t)=>{let n=require(`node:assert`),{kRetryHandlerDefaultRetry:r}=l(),{RequestRetryError:i,RequestAbortedError:a}=d(),{isDisturbed:o,parseRangeHeader:s,wrapRequestBody:c}=m();function u(e){let t=new Date(e).getTime();return isNaN(t)?null:t-Date.now()}function f(e,t,n,r){let a=e[`content-length`];if(a==null||!Number.isFinite(t.start)||!Number.isFinite(t.end))return;let o=Number(a),s=t.end-t.start+1;if(!Number.isFinite(o)||o!==s)throw new i(`Content-Length mismatch`,n,{headers:e,data:{count:r}})}var p=class{#e;constructor(e){this.#e=e,this.target=null}pause(){this.target?.pause()}resume(){this.target?.resume()}abort(e){this.target?.abort(e),this.#e(e)}get paused(){return this.target?.paused??!1}get aborted(){return this.target?.aborted??!1}get reason(){return this.target?.reason??null}get rawHeaders(){return this.target?.rawHeaders??null}set rawHeaders(e){this.target&&(this.target.rawHeaders=e)}get rawTrailers(){return this.target?.rawTrailers??null}set rawTrailers(e){this.target&&(this.target.rawTrailers=e)}};t.exports=class e{constructor(t,{dispatch:n,handler:i}){let{retryOptions:a,...o}=t,{retry:s,maxRetries:l,maxTimeout:u,minTimeout:d,timeoutFactor:f,methods:m,errorCodes:h,retryAfter:g,statusCodes:_,throwOnError:v}=a??{};this.error=null,this.dispatch=n,this.handler=i,this.opts={...o,body:c(t.body)},this.retryOpts={throwOnError:v??!0,retry:s??e[r],retryAfter:g??!0,maxTimeout:u??30*1e3,minTimeout:d??500,timeoutFactor:f??2,maxRetries:l??5,methods:m??[`GET`,`HEAD`,`OPTIONS`,`PUT`,`DELETE`,`TRACE`,`QUERY`],statusCodes:_??[500,502,503,504,429],errorCodes:h??[`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,this.statusCode=null,this.headers=null,this.controllerProxy=new p(e=>this.#e(e)),this.retryPending=!1,this.retryTimer=null,this.aborted=!1}onResponseStartWithRetry(e,t,n,r,i){if(this.retryOpts.throwOnError){this.retryOpts.statusCodes.includes(t)===!1?this.headersSent?this.handler.onResponseError?.(this.controllerProxy,i):(this.headersSent=!0,this.checkpointResponseEnd(n),this.handler.onResponseStart?.(this.controllerProxy,t,n,r)):this.error=i;return}if(o(this.opts.body)){this.headersSent=!0,this.checkpointResponseEnd(n),this.handler.onResponseStart?.(this.controllerProxy,t,n,r);return}function a(a){if(!this.aborted){if(this.retryPending=!1,this.retryTimer=null,a){this.headersSent?this.handler.onResponseError?.(this.controllerProxy,a):(this.headersSent=!0,this.checkpointResponseEnd(n),this.handler.onResponseStart?.(this.controllerProxy,t,n,r)),e.resume();return}this.error=i,e.resume()}}e.pause(),this.retryPending=!0,this.retryTimer=this.retryOpts.retry(i,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},a.bind(this))??null}checkpointResponseEnd(e){if(this.end==null&&this.opts.method!==`HEAD`){let t=e[`content-length`];this.end=t==null?null:Number(t)-1,n(this.end==null||Number.isFinite(this.end),`invalid content-length`),this.resume=this.end!=null}}onRequestStart(e,t){this.controllerProxy.target=e,this.headersSent||this.handler.onRequestStart?.(this.controllerProxy,t)}onBodySent(e){this.handler.onBodySent?.(e)}onRequestSent(){this.handler.onRequestSent?.()}onRequestUpgrade(e,t,n,r){this.handler.onRequestUpgrade?.(this.controllerProxy,t,n,r)}static[r](e,{state:t,opts:n},r){let{statusCode:i,code:a,headers:o}=e,{method:s,retryOptions:c}=n,{maxRetries:l,minTimeout:d,maxTimeout:f,timeoutFactor:p,statusCodes:m,errorCodes:h,methods:g,retryAfter:_}=c,{counter:v}=t;if(a&&a!==`UND_ERR_REQ_RETRY`&&!h.includes(a)){r(e);return}if(Array.isArray(g)&&!g.includes(s)){r(e);return}if(i!=null&&Array.isArray(m)&&!m.includes(i)){r(e);return}if(v>l){r(e);return}let y=_===!1?void 0:o?.[`retry-after`];y&&=(y=Number(y),Number.isNaN(y)?u(o[`retry-after`]):y*1e3);let b=y===0?0:y>0?Math.min(y,f):Math.min(d*p**(v-1),f);return setTimeout(()=>r(null),b)}onResponseStart(e,t,r,a){if(t<200){this.handler.onResponseStart?.(this.controllerProxy,t,r,a);return}if(this.error=null,this.retryCount+=1,this.statusCode=t,this.headers=r,this.headersSent){if(t!==206&&(this.start>0||t!==200))throw new i(`server does not support the range header and the payload was partially consumed`,t,{headers:r,data:{count:this.retryCount}});let e=s(r[`content-range`]);if(!e)throw new i(`Content-Range mismatch`,t,{headers:r,data:{count:this.retryCount}});if(this.etag!=null&&this.etag!==r.etag)throw new i(`ETag mismatch`,t,{headers:r,data:{count:this.retryCount}});f(r,e,t,this.retryCount);let{start:n,size:a,end:o=a?a-1:null}=e;if(this.start!==n||this.end!=null&&this.end!==o)throw new i(`Content-Range mismatch`,t,{headers:r,data:{count:this.retryCount}});return}if(t>=300){let n=new i(`Request failed`,t,{headers:r,data:{count:this.retryCount}});this.onResponseStartWithRetry(e,t,r,a,n);return}if(this.end==null){if(t===206){let e=s(r[`content-range`]);if(e==null||e.end==null){this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,t,r,a);return}f(r,e,t,this.retryCount);let{start:i,size:o,end:c=o?o-1:null}=e;n(i!=null&&Number.isFinite(i),`content-range mismatch`),n(c!=null&&Number.isFinite(c),`invalid content-length`),this.start=i,this.end=c}if(this.end==null&&this.opts.method!==`HEAD`){let e=r[`content-length`];this.end=e==null?null:Number(e)-1}n(Number.isFinite(this.start)),n(this.end==null||Number.isFinite(this.end),`invalid content-length`),this.resume=!0,this.etag=r.etag==null?null:r.etag,this.etag!=null&&this.etag[0]===`W`&&this.etag[1]===`/`&&(this.etag=null),this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,t,r,a)}else throw new i(`Request failed`,t,{headers:r,data:{count:this.retryCount}})}onResponseData(e,t){this.error||(this.start+=t.length,this.handler.onResponseData?.(this.controllerProxy,t))}onResponseEnd(e,t){if(this.error&&this.retryOpts.throwOnError)throw this.error;if(!this.error){if(this.end!=null&&Number.isFinite(this.end)&&this.start!==this.end+1)throw new i(`Content-Range mismatch`,this.statusCode,{headers:this.headers,data:{count:this.retryCount}});return this.retryCount=0,this.handler.onResponseEnd?.(this.controllerProxy,t)}this.retry()}retry(){if(this.start!==0){let e={range:`bytes=${this.start}-${this.end??``}`};this.etag!=null&&(e[`if-match`]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...e}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(e){this.handler.onResponseError?.(this.controllerProxy,e)}}onResponseError(e,t){if(this.aborted)return;if(e?.aborted||o(this.opts.body)||this.headersSent&&!this.resume){this.handler.onResponseError?.(this.controllerProxy,t);return}function n(e){if(!this.aborted){if(this.retryPending=!1,this.retryTimer=null,!e){this.retry();return}this.handler?.onResponseError?.(this.controllerProxy,e)}}this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryPending=!0,this.retryTimer=this.retryOpts.retry(t,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},n.bind(this))??null}#e(e){this.retryPending&&(this.aborted=!0,this.retryPending=!1,clearTimeout(this.retryTimer),this.retryTimer=null,this.handler.onResponseError?.(this.controllerProxy,e??new a))}}})),ie=e.c(((e,t)=>{let n=v(),r=q(),{kOriginless:i,kUrl:a}=l();t.exports=class extends n{#e=null;#t=null;constructor(e,t={}){super(t),this.#e=e,this.#t=t,this[a]=e[a],this[i]=e[i]}dispatch(e,t){let n=new r({...e,retryOptions:this.#t},{dispatch:this.#e.dispatch.bind(this.#e),handler:t});return this.#e.dispatch(e,n)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}}})),ae=e.c(((e,t)=>{let{InvalidArgumentError:n}=d(),r=R();t.exports=class extends r{constructor(e,t){if(typeof e==`string`&&(e=new URL(e)),e.protocol!==`http:`)throw new n(`h2c-client: Only h2c protocol is supported`);let{maxConcurrentStreams:r,pipelining:i,...a}=t??{},o=r??100,s=100;if(r!=null&&(!Number.isInteger(r)||r<1))throw new n(`maxConcurrentStreams must be a positive integer, greater than 0`);if(i!=null&&Number.isInteger(i)&&i>0&&(s=i),s>o)throw new n(`h2c-client: pipelining cannot be greater than maxConcurrentStreams`);super(e,{...a,maxConcurrentStreams:o,pipelining:s,allowH2:!0,useH2c:!0})}}})),J=e.c(((e,t)=>{let n=require(`node:assert`),{addAbortListener:r}=require(`node:events`),{Readable:i}=require(`node:stream`),{RequestAbortedError:a,NotSupportedError:o,InvalidArgumentError:s,AbortError:c}=d(),l=m(),{ReadableStreamFrom:u}=m(),f=Symbol(`kConsume`),p=Symbol(`kReading`),h=Symbol(`kBody`),g=Symbol(`kAbort`),_=Symbol(`kContentType`),v=Symbol(`kContentLength`),y=Symbol(`kUsed`),b=Symbol(`kBytesRead`),x=()=>{};var S=class extends i{constructor({resume:e,abort:t,contentType:n=``,contentLength:r,highWaterMark:i=64*1024}){super({autoDestroy:!0,read:e,highWaterMark:i}),this._readableState.dataEmitted=!1,this[g]=t,this[f]=null,this[b]=0,this[h]=null,this[y]=!1,this[_]=n,this[v]=Number.isFinite(r)?r:null,this[p]=!1}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new a),e&&this[g](),this[y]?t(e):setImmediate(t,e)}on(e,t){return(e===`data`||e===`readable`)&&(this[p]=!0,this[y]=!0),super.on(e,t)}addListener(e,t){return this.on(e,t)}off(e,t){let n=super.off(e,t);return(e===`data`||e===`readable`)&&(this[p]=this.listenerCount(`data`)>0||this.listenerCount(`readable`)>0),n}removeListener(e,t){return this.off(e,t)}push(e){return e&&(this[b]+=e.length,this[f])?(A(this[f],e),this[p]?super.push(e):!0):super.push(e)}text(){return T(this,`text`)}json(){return T(this,`json`)}blob(){return T(this,`blob`)}bytes(){return T(this,`bytes`)}arrayBuffer(){return T(this,`arrayBuffer`)}async formData(){throw new o}get bodyUsed(){return l.isDisturbed(this)}get body(){return this[h]||(this[h]=u(this),this[f]&&(this[h].getReader(),n(this[h].locked))),this[h]}dump(e){let t=e?.signal;if(t!=null&&(typeof t!=`object`||!(`aborted`in t)))return Promise.reject(new s(`signal must be an AbortSignal`));let n=e?.limit&&Number.isFinite(e.limit)?e.limit:128*1024;return t?.aborted?Promise.reject(t.reason??new c):this._readableState.closeEmitted?Promise.resolve(null):new Promise((e,i)=>{if((this[v]&&this[v]>n||this[b]>n)&&this.destroy(new c),t){let n=r(t,()=>{this.destroy(t.reason??new c)});this.on(`close`,function(){n[Symbol.dispose](),t.aborted?i(t.reason??new c):e(null)})}else this.on(`close`,e);this.on(`error`,x).on(`data`,()=>{this[b]>n&&this.destroy()}).resume()})}setEncoding(e){return Buffer.isEncoding(e)&&super.setEncoding(e),this}};function C(e){return e[h]?.locked===!0||e[f]!==null}function w(e){return l.isDisturbed(e)||C(e)}function T(e,t){return n(!e[f]),new Promise((n,r)=>{if(w(e)){let t=e._readableState;t.destroyed&&t.closeEmitted===!1?e.on(`error`,r).on(`close`,()=>{r(TypeError(`unusable`))}):r(t.errored??TypeError(`unusable`))}else queueMicrotask(()=>{e[f]={type:t,stream:e,resolve:n,reject:r,length:0,body:[]},e.on(`error`,function(e){j(this[f],e)}).on(`close`,function(){this[f].body!==null&&j(this[f],new a)}),E(e[f])})})}function E(e){if(e.body===null)return;let{_readableState:t}=e.stream;if(t.bufferIndex){let n=t.bufferIndex,r=t.buffer.length;for(let i=n;i<r;i++)A(e,t.buffer[i])}else for(let n of t.buffer)A(e,n);let n=t.decoder;if(n!=null&&n.lastNeed>0&&A(e,Buffer.from(n.lastChar.subarray(0,n.lastTotal-n.lastNeed))),t.endEmitted){k(e,t.encoding);return}for(e.stream.on(`end`,function(){k(this[f],this._readableState.encoding)}),e.stream.resume();e.stream.read()!=null;);}function D(e,t,n){if(e.length===0||t===0)return``;let r=e.length===1?e[0]:Buffer.concat(e,t),i=r.length,a=i>2&&r[0]===239&&r[1]===187&&r[2]===191?3:0;return!n||n===`utf8`||n===`utf-8`?r.utf8Slice(a,i):r.subarray(a,i).toString(n)}function O(e,t){if(e.length===0||t===0)return new Uint8Array;if(e.length===1)return new Uint8Array(e[0]);let n=new Uint8Array(Buffer.allocUnsafeSlow(t).buffer),r=0;for(let t=0;t<e.length;++t){let i=e[t];n.set(i,r),r+=i.length}return n}function k(e,t){let{type:n,body:r,resolve:i,stream:a,length:o}=e;try{n===`text`?i(D(r,o,t)):n===`json`?i(JSON.parse(D(r,o,t))):n===`arrayBuffer`?i(O(r,o).buffer):n===`blob`?i(new Blob(r,{type:a[_]})):n===`bytes`&&i(O(r,o)),j(e)}catch(e){a.destroy(e)}}function A(e,t){e.body!==null&&(typeof t==`string`&&(t=Buffer.from(t,e.stream._readableState.encoding)),e.length+=t.length,e.body.push(t))}function j(e,t){e.body!==null&&(t?e.reject(t):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}t.exports={Readable:S,chunksDecode:D}})),Y=e.c(((e,t)=>{let n=require(`node:assert`),{AsyncResource:r}=require(`node:async_hooks`),{Readable:i}=J(),{InvalidArgumentError:a,RequestAbortedError:o}=d(),s=m();function c(){}var l=class extends r{constructor(e,t){if(!e||typeof e!=`object`)throw new a(`invalid opts`);let{signal:n,method:r,opaque:i,body:l,onInfo:u,responseHeaders:d,highWaterMark:f}=e;try{if(typeof t!=`function`)throw new a(`invalid callback`);if(f!=null&&(!Number.isFinite(f)||f<0))throw new a(`invalid highWaterMark`);if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new a(`signal must be an EventEmitter or EventTarget`);if(r===`CONNECT`)throw new a(`invalid method`);if(u&&typeof u!=`function`)throw new a(`invalid onInfo callback`);super(`UNDICI_REQUEST`)}catch(e){throw s.isStream(l)&&s.destroy(l.on(`error`,c),e),e}this.method=r,this.responseHeaders=d||null,this.opaque=i||null,this.callback=t,this.res=null,this.abort=null,this.body=l,this.trailers={},this.context=null,this.controller=null,this.onInfo=u||null,this.highWaterMark=f,this.reason=null,this.removeAbortListener=null,n?.aborted?this.reason=n.reason??new o:n&&(this.removeAbortListener=s.addAbortListener(n,()=>{if(this.reason=n.reason??new o,this.res){let e=this.res;this.res=null,s.destroy(e.on(`error`,c),this.reason)}else this.abort&&this.abort(this.reason)}))}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}n(this.callback),this.controller=e,this.abort=t=>e.abort(t),this.context=t}onResponseStart(e,t,n,r){let{callback:a,opaque:o,context:l,responseHeaders:u,highWaterMark:d}=this,f=e?.rawHeaders,p=u===`raw`?s.parseRawHeaders(f):n;if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:p});return}let m=n,h=m?.[`content-type`],g=m?.[`content-length`],_=new i({resume:()=>e.resume(),abort:t=>e.abort(t),contentType:h,contentLength:this.method!==`HEAD`&&g?Number(g):null,highWaterMark:d});if(this.removeAbortListener&&=(_.on(`close`,this.removeAbortListener),null),this.callback=null,this.res=_,a!==null)try{this.runInAsyncScope(a,null,null,{statusCode:t,statusText:r,headers:p,trailers:this.trailers,opaque:o,body:_,context:l})}catch(e){this.res=null,s.destroy(_.on(`error`,c),e),queueMicrotask(()=>{throw e})}}onResponseData(e,t){this.res&&this.res.push(t)===!1&&e.pause()}onResponseEnd(e,t){if(t&&typeof t==`object`)for(let e of Object.keys(t))e===`__proto__`?Object.defineProperty(this.trailers,e,{value:t[e],enumerable:!0,configurable:!0,writable:!0}):this.trailers[e]=t[e];this.res?.push(null)}onResponseError(e,t){let{res:n,callback:r,body:i,opaque:a}=this;r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:a})})),n&&(this.res=null,queueMicrotask(()=>{s.destroy(n.on(`error`,c),t)})),i&&(this.body=null,s.isStream(i)&&(i.on(`error`,c),s.destroy(i,t))),this.removeAbortListener&&=(this.removeAbortListener(),null)}};function u(e,t){if(t===void 0)return new Promise((t,n)=>{u.call(this,e,(e,r)=>e?n(e):t(r))});try{let n=new l(e,t);this.dispatch(e,n)}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=u,t.exports.RequestHandler=l})),X=e.c(((e,t)=>{let{addAbortListener:n}=m(),{RequestAbortedError:r}=d(),i=Symbol(`kListener`),a=Symbol(`kSignal`);function o(e){e.abort?e.abort(e[a]?.reason):e.reason=e[a]?.reason??new r,c(e)}function s(e,t){if(e.reason=null,e[a]=null,e[i]=null,t){if(t.aborted){o(e);return}e[a]=t,e[i]=()=>{o(e)},n(e[a],e[i])}}function c(e){e[a]&&(`removeEventListener`in e[a]?e[a].removeEventListener(`abort`,e[i]):e[a].removeListener(`abort`,e[i]),e[a]=null,e[i]=null)}t.exports={addSignal:s,removeSignal:c}})),oe=e.c(((e,t)=>{let n=require(`node:assert`),{AsyncResource:r}=require(`node:async_hooks`),{InvalidArgumentError:i,InvalidReturnValueError:a}=d(),o=m(),{addSignal:s,removeSignal:c}=X();function l(){}function u(e){return e.errored??e.writableErrored??e._writableState?.errored}function f(){let e=Error(`Premature close`);return e.code=`ERR_STREAM_PREMATURE_CLOSE`,e}function p(e,t){let n=!1,r=()=>{e.removeListener(`close`,a),e.removeListener(`error`,o),e.removeListener(`finish`,s)},i=(e,i=!1)=>{n||(n=!0,r(),t(e,i))},a=()=>{i(u(e)??(e.writableFinished?void 0:f()))},o=e=>i(e,!0),s=()=>i();e.on(`close`,a),e.on(`error`,o),e.on(`finish`,s),e.closed?process.nextTick(a):e.writableFinished&&process.nextTick(s)}var h=class extends r{constructor(e,t,n){if(!e||typeof e!=`object`)throw new i(`invalid opts`);let{signal:r,method:a,opaque:c,body:u,onInfo:d,responseHeaders:f}=e;try{if(typeof n!=`function`)throw new i(`invalid callback`);if(typeof t!=`function`)throw new i(`invalid factory`);if(r&&typeof r.on!=`function`&&typeof r.addEventListener!=`function`)throw new i(`signal must be an EventEmitter or EventTarget`);if(a===`CONNECT`)throw new i(`invalid method`);if(d&&typeof d!=`function`)throw new i(`invalid onInfo callback`);super(`UNDICI_STREAM`)}catch(e){throw o.isStream(u)&&o.destroy(u.on(`error`,l),e),e}this.responseHeaders=f||null,this.opaque=c||null,this.factory=t,this.callback=n,this.res=null,this.abort=null,this.context=null,this.controller=null,this.trailers=null,this.body=u,this.onInfo=d||null,o.isStream(u)&&u.on(`error`,e=>{this.onResponseError(this.controller,e)}),s(this,r)}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}n(this.callback),this.controller=e,this.abort=t=>e.abort(t),this.context=t}onResponseStart(e,t,n,r){let{factory:i,opaque:s,context:c,responseHeaders:l}=this,u=e?.rawHeaders,d=l===`raw`?o.parseRawHeaders(u):n;if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:d});return}if(this.factory=null,i===null)return;let f=this.runInAsyncScope(i,null,{statusCode:t,headers:d,opaque:s,context:c});if(!f||typeof f.write!=`function`||typeof f.end!=`function`||typeof f.on!=`function`)throw new a(`expected Writable`);p(f,(e,t)=>{let{callback:n,res:r,opaque:i,trailers:a,abort:s}=this;this.res=null,(e||!r?.readable)&&o.destroy(r,t?void 0:e),this.callback=null,this.runInAsyncScope(n,null,e||null,{opaque:i,trailers:a}),e&&s(e)}),f.on(`drain`,()=>e.resume()),this.res=f,(f.writableNeedDrain===void 0?f._writableState?.needDrain:f.writableNeedDrain)===!0&&e.pause()}onResponseData(e,t){let{res:n}=this;n&&n.write(t)===!1&&e.pause()}onResponseEnd(e,t){let{res:n}=this;c(this),n&&(t&&typeof t==`object`&&(this.trailers=t),n.end())}onResponseError(e,t){let{res:n,callback:r,opaque:i,body:a}=this;c(this),this.factory=null,n?(this.res=null,o.destroy(n,t)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:i})})),a&&(this.body=null,o.destroy(a,t))}};function g(e,t,n){if(n===void 0)return new Promise((n,r)=>{g.call(this,e,t,(e,t)=>e?r(e):n(t))});try{let r=new h(e,t,n);this.dispatch(e,r)}catch(t){if(typeof n!=`function`)throw t;let r=e?.opaque;queueMicrotask(()=>n(t,{opaque:r}))}}t.exports=g})),Z=e.c(((e,t)=>{let{Readable:n,Duplex:r,PassThrough:i}=require(`node:stream`),a=require(`node:assert`),{AsyncResource:o}=require(`node:async_hooks`),{InvalidArgumentError:s,InvalidReturnValueError:c,RequestAbortedError:u}=d(),f=m(),{kBodyUsed:p}=l(),{addSignal:h,removeSignal:g}=X();function _(){}let v=Symbol(`resume`);var y=class extends n{constructor(){super({autoDestroy:!0}),this[v]=null,this[p]=!0}_read(){let{[v]:e}=this;e&&(this[v]=null,e())}_destroy(e,t){this._read(),t(e)}},b=class extends n{constructor(e){super({autoDestroy:!0}),this[v]=e}_read(){this[v]()}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new u),t(e)}},x=class extends o{constructor(e,t){if(!e||typeof e!=`object`)throw new s(`invalid opts`);if(typeof t!=`function`)throw new s(`invalid handler`);let{signal:n,method:i,opaque:a,onInfo:o,responseHeaders:c}=e;if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new s(`signal must be an EventEmitter or EventTarget`);if(i===`CONNECT`)throw new s(`invalid method`);if(o&&typeof o!=`function`)throw new s(`invalid onInfo callback`);super(`UNDICI_PIPELINE`),this.opaque=a||null,this.responseHeaders=c||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=o||null,this.req=new y().on(`error`,_),this.ret=new r({readableObjectMode:e.objectMode,autoDestroy:!0,read:()=>{let{body:e}=this;e?.resume&&e.resume()},write:(e,t,n)=>{let{req:r}=this;r.push(e,t)||r._readableState.destroyed?n():r[v]=n},destroy:(e,t)=>{let{body:n,req:r,res:i,ret:a,abort:o}=this;!e&&!a._readableState.endEmitted&&(e=new u),o&&e&&o(),f.destroy(n,e),f.destroy(r,e),f.destroy(i,e),g(this),t(e)}}).on(`prefinish`,()=>{let{req:e}=this;e.push(null)}),this.res=null,h(this,n)}onRequestStart(e,t){let{res:n}=this;if(this.reason){e.abort(this.reason);return}a(!n,`pipeline cannot be retried`),this.abort=t=>e.abort(t),this.context=t}onResponseStart(e,t,n,r){let{opaque:i,handler:a,context:o}=this;if(t<200){if(this.onInfo){let r=e?.rawHeaders,i=this.responseHeaders===`raw`?f.parseRawHeaders(r):n;this.onInfo({statusCode:t,headers:i})}return}this.res=new b(()=>e.resume());let s;try{this.handler=null;let r=e?.rawHeaders,c=this.responseHeaders===`raw`?f.parseRawHeaders(r):n;s=this.runInAsyncScope(a,null,{statusCode:t,headers:c,opaque:i,body:this.res,context:o})}catch(e){throw this.res.on(`error`,_),e}if(!s||typeof s.on!=`function`)throw new c(`expected Readable`);s.on(`data`,e=>{let{ret:t,body:n}=this;!t.push(e)&&n.pause&&n.pause()}).on(`error`,e=>{let{ret:t}=this;f.destroy(t,e)}).on(`end`,()=>{let{ret:e}=this;e.push(null)}).on(`close`,()=>{let{ret:e}=this;e._readableState.ended||f.destroy(e,new u)}),this.body=s}onResponseData(e,t){let{res:n}=this;n.push(t)===!1&&e.pause()}onResponseEnd(e,t){let{res:n}=this;n.push(null)}onResponseError(e,t){let{ret:n}=this;this.handler=null,f.destroy(n,t)}};function S(e,t){try{let n=new x(e,t);return this.dispatch({...e,body:n.req},n),n.ret}catch(e){return new i().destroy(e)}}t.exports=S})),Q=e.c(((e,t)=>{let{InvalidArgumentError:n,SocketError:r}=d(),{AsyncResource:i}=require(`node:async_hooks`),a=require(`node:assert`),o=m(),{kHTTP2Stream:s}=l(),{addSignal:c,removeSignal:u}=X();var f=class extends i{constructor(e,t){if(!e||typeof e!=`object`)throw new n(`invalid opts`);if(typeof t!=`function`)throw new n(`invalid callback`);let{signal:r,opaque:i,responseHeaders:a}=e;if(r&&typeof r.on!=`function`&&typeof r.addEventListener!=`function`)throw new n(`signal must be an EventEmitter or EventTarget`);super(`UNDICI_UPGRADE`),this.responseHeaders=a||null,this.opaque=i||null,this.callback=t,this.abort=null,this.context=null,c(this,r)}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}a(this.callback),this.abort=t=>e.abort(t),this.context=t}onResponseStart(){throw new r(`bad upgrade`,null)}onRequestUpgrade(e,t,n,i){if(t!==(i[s]===!0?200:101)){let t=i[s]===!0?null:o.getSocketInfo(i);e.abort(new r(`bad upgrade`,t));return}let{callback:a,opaque:c,context:l}=this;u(this),this.callback=null;let d=e?.rawHeaders,f=this.responseHeaders===`raw`?o.parseRawHeaders(d):n;this.runInAsyncScope(a,null,null,{headers:f,socket:i,opaque:c,context:l})}onResponseError(e,t){let{callback:n,opaque:r}=this;u(this),n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:r})}))}};function p(e,t){if(t===void 0)return new Promise((t,n)=>{p.call(this,e,(e,r)=>e?n(e):t(r))});try{let n=new f(e,t),r={...e,method:e.method||`GET`,upgrade:e.protocol||`Websocket`};this.dispatch(r,n)}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=p})),se=e.c(((e,t)=>{let n=require(`node:assert`),{AsyncResource:r}=require(`node:async_hooks`),{InvalidArgumentError:i,SocketError:a}=d(),o=m(),{addSignal:s,removeSignal:c}=X();var l=class extends r{constructor(e,t){if(!e||typeof e!=`object`)throw new i(`invalid opts`);if(typeof t!=`function`)throw new i(`invalid callback`);let{signal:n,opaque:r,responseHeaders:a}=e;if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new i(`signal must be an EventEmitter or EventTarget`);super(`UNDICI_CONNECT`),this.opaque=r||null,this.responseHeaders=a||null,this.callback=t,this.abort=null,s(this,n)}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}n(this.callback),this.abort=t=>e.abort(t),this.context=t}onResponseStart(){throw new a(`bad connect`,null)}onRequestUpgrade(e,t,n,r){let{callback:i,opaque:a,context:s}=this;c(this),this.callback=null;let l=n,u=e?.rawHeaders;l!=null&&(l=this.responseHeaders===`raw`?o.parseRawHeaders(u):n),this.runInAsyncScope(i,null,null,{statusCode:t,headers:l,socket:r,opaque:a,context:s})}onResponseError(e,t){let{callback:n,opaque:r}=this;c(this),n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:r})}))}};function u(e,t){if(t===void 0)return new Promise((t,n)=>{u.call(this,e,(e,r)=>e?n(e):t(r))});try{let n=new l(e,t),r={...e,method:`CONNECT`};this.dispatch(r,n)}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=u})),ce=e.c(((e,t)=>{t.exports.request=Y(),t.exports.stream=oe(),t.exports.pipeline=Z(),t.exports.upgrade=Q(),t.exports.connect=se()})),le=e.c(((e,t)=>{let{UndiciError:n}=d(),r=Symbol.for(`undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED`);t.exports={MockNotMatchedError:class extends n{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[r]===!0}get[r](){return!0}}}})),ue=e.c(((e,t)=>{t.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`)}})),de=e.c(((e,t)=>{let{MockNotMatchedError:n}=le(),{kDispatches:r,kMockAgent:i,kOriginalDispatch:a,kOrigin:o,kGetNetConnect:s,kTotalDispatchCount:c}=ue(),{serializePathWithQuery:l,parseHeaders:u}=m(),{STATUS_CODES:f}=require(`node:http`),{types:{isPromise:p}}=require(`node:util`),{InvalidArgumentError:h}=d(),g=Symbol(`request aborted`);function _(e,t){return typeof e==`string`?e===t:e instanceof RegExp?e.test(t):typeof e==`function`?e(t)===!0:!1}function v(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e.toLocaleLowerCase(),t]))}function y(e,t){if(Array.isArray(e)){for(let n=0;n<e.length;n+=2)if(e[n].toLocaleLowerCase()===t.toLocaleLowerCase())return e[n+1];return}else if(typeof e.get==`function`)return e.get(t);else return v(e)[t.toLocaleLowerCase()]}function b(e){let t=e.slice(),n=[];for(let e=0;e<t.length;e+=2)n.push([t[e],t[e+1]]);return Object.fromEntries(n)}function x(e,t){if(typeof e.headers==`function`)return Array.isArray(t)&&(t=b(t)),e.headers(t?v(t):{});if(e.headers===void 0)return!0;if(typeof t!=`object`||typeof e.headers!=`object`)return!1;for(let[n,r]of Object.entries(e.headers))if(!_(r,y(t,n)))return!1;return!0}function S(e){if(typeof e!=`string`)return e;let t=new URLSearchParams(e),n=new URLSearchParams;for(let[e,r]of t.entries()){if(e=e.replace(`[]`,``),/^(['"]).*\1$/.test(r)){n.append(e,r);continue}if(r.includes(`,`)){let t=r.split(`,`);for(let r of t)n.append(e,r);continue}n.append(e,r)}return n}function C(e){if(typeof e!=`string`)return e;let t=e.split(`?`,3);if(t.length!==2)return e;let n=new URLSearchParams(t.pop());return n.sort(),[...t,n.toString()].join(`?`)}function w(e,{path:t,method:n,body:r,headers:i}){let a=_(e.path,t),o=_(e.method,n),s=e.body===void 0?!0:_(e.body,r),c=x(e,i);return a&&o&&s&&c}function T(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):typeof e==`object`?JSON.stringify(e):e?e.toString():``}function E(e,t){let r=t.query?l(t.path,t.query):t.path,i=typeof r==`string`?C(r):r,a=k(i),o=e.filter(({consumed:e})=>!e).filter(({path:e,ignoreTrailingSlash:t})=>t?_(k(C(e)),a):_(C(e),i));if(o.length===0)throw new n(`Mock dispatch not matched for path '${i}'`);if(o=o.filter(({method:e})=>_(e,t.method)),o.length===0)throw new n(`Mock dispatch not matched for method '${t.method}' on path '${i}'`);if(o=o.filter(({body:e})=>e===void 0?!0:_(e,t.body)),o.length===0)throw new n(`Mock dispatch not matched for body '${t.body}' on path '${i}'`);if(o=o.filter(e=>x(e,t.headers)),o.length===0)throw new n(`Mock dispatch not matched for headers '${typeof t.headers==`object`?JSON.stringify(t.headers):t.headers}' on path '${i}'`);return o[0]}function D(e,t,n,r){let i={timesInvoked:0,times:1,persist:!1,consumed:!1,...r},a=typeof n==`function`?{callback:n}:{...n},o={...i,...t,pending:!0,data:{error:null,...a}};return e.push(o),e[c]=(e[c]||0)+1,o}function O(e,t){let n=e.findIndex(e=>e.consumed?w(e,t):!1);n!==-1&&e.splice(n,1)}function k(e){if(typeof e!=`string`)return e;for(;e.endsWith(`/`);)e=e.slice(0,-1);return e.length===0&&(e=`/`),e}function A(e){let{path:t,method:n,body:r,headers:i,query:a}=e;return{path:t,method:n,body:r,headers:i,query:a}}function j(e){let t=Object.keys(e),n=[];for(let r=0;r<t.length;++r){let i=t[r],a=e[i],o=Buffer.from(`${i}`);if(Array.isArray(a))for(let e=0;e<a.length;++e)n.push(o,Buffer.from(`${a[e]}`));else n.push(o,Buffer.from(`${a}`))}return n}function M(e){return f[e]||`unknown`}async function N(e){let t=[];for await(let n of e)t.push(n);return Buffer.concat(t).toString(`utf8`)}function P(e,t){let n=A(e),i=E(this[r],n),a=this[r];i.timesInvoked++;let{timesInvoked:o,times:s}=i;i.consumed=!i.persist&&o>=s,i.pending=o<s;let c=typeof t.onBodySent==`function`||typeof t.onRequestSent==`function`;if(i.data.callback&&(!c||e.body==null)){let{callback:r,...o}=i.data,s=r(e);if(p(s))return s.then(r=>{if(typeof r!=`object`||!r){t.onResponseError(null,new h(`reply options callback must return an object`));return}F(a,i,n,e,t,{...o,...r})},e=>{t.onResponseError(null,e)}),!0;if(typeof s!=`object`||!s)throw new h(`reply options callback must return an object`);return F(a,i,n,e,t,{...o,...s})}return F(a,i,n,e,t)}function F(e,t,n,r,i,a){let{data:o,delay:s}=t,c=a??o;if(c.error!==null)return O(e,n),i.onResponseError(null,c.error),!0;let l=!1,d=null,f={paused:!1,rawHeaders:null,rawTrailers:null,pause(){this.paused=!0},resume(){this.paused=!1},abort:e=>{l||(l=!0,d!==null&&(clearTimeout(d),d=null),i.onResponseError?.(f,e))}},m=r,_=e;if(i.onRequestStart?.(f,null),l)return!0;let v=I(r.body,i,f,()=>l);if(p(v))return v.then(e=>{e!==g&&(e!==r.body&&(m={...r,body:e}),y())},e=>f.abort(e)),!0;if(v===g)return!0;v!==r.body&&(m={...r,body:v}),y();function y(){if(c.callback){let{callback:t,...r}=c,a;try{a=t(m)}catch(t){O(e,n),i.onResponseError(null,t);return}if(p(a)){a.then(e=>{if(typeof e!=`object`||!e){i.onResponseError(null,new h(`reply options callback must return an object`));return}x(_,{...r,...e})},e=>{i.onResponseError(null,e)});return}if(typeof a!=`object`||!a)throw new h(`reply options callback must return an object`);x(_,{...r,...a});return}typeof s==`number`&&s>0?d=setTimeout(()=>{d=null,x(_)},s):x(_)}function x(e,t=c){if(l)return;let{statusCode:a,data:o,headers:s,trailers:d}=t,h=Array.isArray(r.headers)?b(r.headers):r.headers,g=typeof o==`function`?o({...m,headers:h}):o;if(p(g))return g.then(n=>x(e,{...t,data:n}));if(l)return;let _=T(g),v=j(s??{}),y=j(d??{});f.rawHeaders=v,f.rawTrailers=y,i.onResponseStart?.(f,a,u(v),M(a)),i.onResponseData?.(f,Buffer.from(_)),i.onResponseEnd?.(f,u(y)),O(e,n)}return!0}function I(e,t,n,r){if(typeof t.onBodySent!=`function`&&typeof t.onRequestSent!=`function`)return e;if(e==null)return z(t,n,r)?e:g;if(e&&typeof e[Symbol.asyncIterator]==`function`)return L(e,t,n,r);if(B(e)){let i=[];for(let a of e)if(r()||(i.push(a),!R(t,n,a)||r()))return g;return z(t,n,r)?i:g}return r()||!R(t,n,e)?g:z(t,n,r)?e:g}async function L(e,t,n,r){let i=[];for await(let a of e)if(r()||(i.push(a),!R(t,n,a)||r()))return g;return z(t,n,r)?{async*[Symbol.asyncIterator](){yield*i}}:g}function R(e,t,n){try{return e.onBodySent?.(n),!0}catch(e){return t.abort(e),!1}}function z(e,t,n){try{return e.onRequestSent?.(),!n()}catch(e){return t.abort(e),!1}}function B(e){return typeof e!=`string`&&!Buffer.isBuffer(e)&&!ArrayBuffer.isView(e)&&typeof e[Symbol.iterator]==`function`}function V(){let e=this[i],t=this[o],l=this[a];return function(i,a){if(e.isMockActive)try{P.call(this,i,a)}catch(o){if(o.code===`UND_MOCK_ERR_MOCK_NOT_MATCHED`){let u=e[s](),d=this[r][c]||this[r].length,f=`, ${this[r].filter(({consumed:e})=>!e).length} interceptor(s) remaining out of ${d} defined`;if(u===!1)throw new n(`${o.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)${f}`);if(ee(u,t))l.call(this,`__mockAgentBodyForDispatch`in i?{...i,body:i.__mockAgentBodyForDispatch}:i,a);else throw new n(`${o.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)${f}`)}else throw o}else l.call(this,i,a)}}function ee(e,t){let n=new URL(t);return e===!0?!0:!!(Array.isArray(e)&&e.some(e=>_(e,n.host)))}function H(e){return typeof e!=`string`&&!(e instanceof URL)?e:e instanceof URL?e.origin:e.toLowerCase()}function U(e){let{agent:t,...n}=e;if(`enableCallHistory`in n&&typeof n.enableCallHistory!=`boolean`)throw new h(`options.enableCallHistory must to be a boolean`);if(`acceptNonStandardSearchParameters`in n&&typeof n.acceptNonStandardSearchParameters!=`boolean`)throw new h(`options.acceptNonStandardSearchParameters must to be a boolean`);if(`ignoreTrailingSlash`in n&&typeof n.ignoreTrailingSlash!=`boolean`)throw new h(`options.ignoreTrailingSlash must to be a boolean`);return n}t.exports={getResponseData:T,getMockDispatch:E,addMockDispatch:D,deleteMockDispatch:O,buildKey:A,generateKeyValues:j,matchValue:_,getResponse:N,getStatusText:M,mockDispatch:P,buildMockDispatch:V,checkNetConnect:ee,buildAndValidateMockOptions:U,getHeaderByName:y,buildHeadersFromArray:b,normalizeSearchParams:S,normalizeOrigin:H}})),fe=e.c(((e,t)=>{let{getResponseData:n,buildKey:r,addMockDispatch:i}=de(),{kDispatches:a,kDispatchKey:o,kDefaultHeaders:s,kDefaultTrailers:c,kContentLength:l,kMockDispatch:u,kIgnoreTrailingSlash:f}=ue(),{InvalidArgumentError:p}=d(),{serializePathWithQuery:h}=m(),{types:{isPromise:g}}=require(`node:util`);var _=class{constructor(e){this[u]=e}delay(e){if(typeof e!=`number`||!Number.isInteger(e)||e<=0)throw new p(`waitInMs must be a valid integer > 0`);return this[u].delay=e,this}persist(){return this[u].persist=!0,this}times(e){if(typeof e!=`number`||!Number.isInteger(e)||e<=0)throw new p(`repeatTimes must be a valid integer > 0`);return this[u].times=e,this}},v=class{constructor(e,t){if(typeof e!=`object`)throw new p(`opts must be an object`);if(e.path===void 0)throw new p(`opts.path must be defined`);if(e.method===void 0&&(e.method=`GET`),typeof e.path==`string`)if(e.query)e.path=h(e.path,e.query);else{let t=new URL(e.path,`data://`);e.path=t.pathname+t.search}typeof e.method==`string`&&(e.method=e.method.toUpperCase()),this[o]=r(e),this[a]=t,this[f]=e.ignoreTrailingSlash??!1,this[s]={},this[c]={},this[l]=!1}createMockScopeDispatchData({statusCode:e,data:t,responseOptions:r}){let i=n(t),a=this[l]?{"content-length":i.length}:{};return{statusCode:e,data:t,headers:{...this[s],...a,...r.headers},trailers:{...this[c],...r.trailers}}}validateReplyParameters(e){if(e.statusCode===void 0)throw new p(`statusCode must be defined`);if(typeof e.responseOptions!=`object`||e.responseOptions===null)throw new p(`responseOptions must be an object`)}reply(e){if(typeof e==`function`){let t=e=>{if(typeof e!=`object`||!e)throw new p(`reply options callback must return an object`);let t={data:``,responseOptions:{},...e};return this.validateReplyParameters(t),{...this.createMockScopeDispatchData(t)}};return new _(i(this[a],this[o],n=>{let r=e(n);return g(r)?r.then(t):t(r)},{ignoreTrailingSlash:this[f]}))}let t={statusCode:e,data:arguments[1]===void 0?``:arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(t);let n=this.createMockScopeDispatchData(t);return new _(i(this[a],this[o],n,{ignoreTrailingSlash:this[f]}))}replyWithError(e){if(e===void 0)throw new p(`error must be defined`);return new _(i(this[a],this[o],{error:e},{ignoreTrailingSlash:this[f]}))}defaultReplyHeaders(e){if(e===void 0)throw new p(`headers must be defined`);return this[s]=e,this}defaultReplyTrailers(e){if(e===void 0)throw new p(`trailers must be defined`);return this[c]=e,this}replyContentLength(){return this[l]=!0,this}};t.exports.MockInterceptor=v,t.exports.MockScope=_})),pe=e.c(((e,t)=>{let{promisify:n}=require(`node:util`),r=R(),{buildMockDispatch:i}=de(),{kDispatches:a,kMockAgent:o,kClose:s,kOriginalClose:c,kOrigin:u,kOriginalDispatch:f,kConnected:p,kIgnoreTrailingSlash:m}=ue(),{MockInterceptor:h}=fe(),g=l(),{InvalidArgumentError:_}=d();t.exports=class extends r{constructor(e,t){if(!t||!t.agent||typeof t.agent.dispatch!=`function`)throw new _(`Argument opts.agent must implement Agent`);super(e,t),this[o]=t.agent,this[u]=e,this[m]=t.ignoreTrailingSlash??!1,this[a]=[],this[p]=1,this[f]=this.dispatch,this[c]=this.close.bind(this),this.dispatch=i.call(this),this.close=this[s]}get[g.kConnected](){return this[p]}intercept(e){return new h(e&&{ignoreTrailingSlash:this[m],...e},this[a])}cleanMocks(){this[a]=[]}async[s](){await n(this[c])(),this[p]=0,this[o][g.kClients].delete(this[u])}}})),me=e.c(((e,t)=>{let{kMockCallHistoryAddLog:n}=ue(),{InvalidArgumentError:r}=d();function i(e,t,n,i,a){switch(t.operator){case`OR`:return i.push(...n(e,a)),i;case`AND`:return n(e,i);default:throw new r(`options.operator must to be a case insensitive string equal to 'OR' or 'AND'`)}}function a(e={}){let t={};if(`operator`in e){if(typeof e.operator!=`string`||e.operator.toUpperCase()!==`OR`&&e.operator.toUpperCase()!==`AND`)throw new r(`options.operator must to be a case insensitive string equal to 'OR' or 'AND'`);return{...t,operator:e.operator.toUpperCase()}}return t}function o(e){return(t,n=this.logs)=>{if(typeof t==`string`||t==null)return n.filter(n=>n[e]===t);if(t instanceof RegExp)return n.filter(n=>t.test(n[e]));throw new r(`${e} parameter should be one of string, regexp, undefined or null`)}}function s(e){try{let t=new URL(e.path,e.origin);return t.search.length===0&&(t.search=new URLSearchParams(e.query).toString()),t}catch(e){throw new r(`An error occurred when computing MockCallHistoryLog.url`,{cause:e})}}var c=class{constructor(e={}){this.body=e.body,this.headers=e.headers,this.method=e.method;let t=s(e);this.fullUrl=t.toString(),this.origin=t.origin,this.path=t.pathname,this.searchParams=Object.fromEntries(t.searchParams),this.protocol=t.protocol,this.host=t.host,this.port=t.port,this.hash=t.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:`|`},t=``;return this.toMap().forEach((n,r)=>{(typeof n==`string`||n==null)&&(t=`${t}${r}${e.betweenKeyValueSeparator}${n}${e.betweenPairSeparator}`),(typeof n==`object`&&n||Array.isArray(n))&&(t=`${t}${r}${e.betweenKeyValueSeparator}${JSON.stringify(n)}${e.betweenPairSeparator}`)}),t.slice(0,-1)}},l=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 r(`nthCall must be called with a number`);if(!Number.isInteger(e))throw new r(`nthCall must be called with an integer`);if(Math.sign(e)!==1)throw new r(`nthCall must be called with a positive value. use firstCall or lastCall instead`);return this.logs.at(e-1)}filterCalls(e,t){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(t=>e.test(t.toString()));if(typeof e==`object`&&e){if(Object.keys(e).length===0)return this.logs;let n={operator:`OR`,...a(t)},r=n.operator===`AND`?this.logs:[];return`protocol`in e&&(r=i(e.protocol,n,this.filterCallsByProtocol,r,this.logs)),`host`in e&&(r=i(e.host,n,this.filterCallsByHost,r,this.logs)),`port`in e&&(r=i(e.port,n,this.filterCallsByPort,r,this.logs)),`origin`in e&&(r=i(e.origin,n,this.filterCallsByOrigin,r,this.logs)),`path`in e&&(r=i(e.path,n,this.filterCallsByPath,r,this.logs)),`hash`in e&&(r=i(e.hash,n,this.filterCallsByHash,r,this.logs)),`fullUrl`in e&&(r=i(e.fullUrl,n,this.filterCallsByFullUrl,r,this.logs)),`method`in e&&(r=i(e.method,n,this.filterCallsByMethod,r,this.logs)),[...new Set(r)]}throw new r(`criteria parameter should be one of function, regexp, or object`)}filterCallsByProtocol=o.call(this,`protocol`);filterCallsByHost=o.call(this,`host`);filterCallsByPort=o.call(this,`port`);filterCallsByOrigin=o.call(this,`origin`);filterCallsByPath=o.call(this,`path`);filterCallsByHash=o.call(this,`hash`);filterCallsByFullUrl=o.call(this,`fullUrl`);filterCallsByMethod=o.call(this,`method`);clear(){this.logs=[]}[n](e){let t=new c(e);return this.logs.push(t),t}*[Symbol.iterator](){for(let e of this.calls())yield e}};t.exports.MockCallHistory=l,t.exports.MockCallHistoryLog=c})),he=e.c(((e,t)=>{let{promisify:n}=require(`node:util`),r=V(),{buildMockDispatch:i}=de(),{kDispatches:a,kMockAgent:o,kClose:s,kOriginalClose:c,kOrigin:u,kOriginalDispatch:f,kConnected:p,kIgnoreTrailingSlash:m}=ue(),{MockInterceptor:h}=fe(),g=l(),{InvalidArgumentError:_}=d();t.exports=class extends r{constructor(e,t){if(!t||!t.agent||typeof t.agent.dispatch!=`function`)throw new _(`Argument opts.agent must implement Agent`);super(e,t),this[o]=t.agent,this[u]=e,this[m]=t.ignoreTrailingSlash??!1,this[a]=[],this[p]=1,this[f]=this.dispatch,this[c]=this.close.bind(this),this.dispatch=i.call(this),this.close=this[s]}get[g.kConnected](){return this[p]}intercept(e){return new h(e&&{ignoreTrailingSlash:this[m],...e},this[a])}cleanMocks(){this[a]=[]}async[s](){await n(this[c])(),this[p]=0,this[o][g.kClients].delete(this[u])}}})),$=e.c(((e,t)=>{let{Transform:n}=require(`node:stream`),{Console:r}=require(`node:console`),i=process.versions.icu?`✅`:`Y `,a=process.versions.icu?`❌`:`N `;t.exports=class{constructor({disableColors:e}={}){this.transform=new n({transform(e,t,n){n(null,e)}}),this.logger=new r({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){let t=e.map(({method:e,path:t,data:{statusCode:n},persist:r,times:o,timesInvoked:s,origin:c})=>({Method:e,Origin:c,Path:t,"Status code":n,Persistent:r?i:a,Invocations:s,Remaining:r?1/0:o-s}));return this.logger.table(t),this.transform.read().toString()}}})),ge=e.c(((e,t)=>{let{kClients:n}=l(),r=U(),{kAgent:i,kMockAgentSet:a,kMockAgentGet:o,kDispatches:s,kIsMockActive:c,kNetConnect:u,kGetNetConnect:f,kOptions:p,kFactory:m,kMockAgentRegisterCallHistory:h,kMockAgentIsCallHistoryEnabled:g,kMockAgentAddCallHistoryLog:_,kMockAgentMockCallHistoryInstance:y,kMockAgentAcceptsNonStandardSearchParameters:b,kMockCallHistoryAddLog:x,kIgnoreTrailingSlash:S}=ue(),C=pe(),w=he(),{matchValue:T,normalizeSearchParams:E,buildAndValidateMockOptions:D,normalizeOrigin:O}=de(),{InvalidArgumentError:k,UndiciError:A}=d(),j=v(),M=$(),{MockCallHistory:N}=me();t.exports=class extends j{constructor(e={}){super(e);let t=D(e);if(this[u]=!0,this[c]=!0,this[g]=t.enableCallHistory??!1,this[b]=t.acceptNonStandardSearchParameters??!1,this[S]=t.ignoreTrailingSlash??!1,e?.agent&&typeof e.agent.dispatch!=`function`)throw new k(`Argument opts.agent must implement Agent`);let a=e?.agent?e.agent:new r(e);this[i]=a,this[n]=a[n],this[p]=t,this[g]&&this[h]()}get(e){let t=O(e),n=this[S]?t.replace(/\/$/,``):t,r=this[o](n);return r||(r=this[m](n),this[a](n,r)),r}dispatch(e,t){e.origin=O(e.origin);let r=this.get(e.origin);this[_](e);let o=this[b],c={...e};if(c.allowH2===!1){let e=`${c.origin}#http1-only`;if(!this[n].has(e)){let t=this[m](c.origin);t[s]=r[s],this[a](e,t)}}if(o&&c.path){let[e,t]=c.path.split(`?`);c.path=`${e}?${E(t,o)}`}return this[i].dispatch(c,t)}async close(){this.clearCallHistory(),await this[i].close(),this[n].clear()}deactivate(){this[c]=!1}activate(){this[c]=!0}enableNetConnect(e){if(typeof e==`string`||typeof e==`function`||e instanceof RegExp)Array.isArray(this[u])?this[u].push(e):this[u]=[e];else if(e===void 0)this[u]=!0;else throw new k(`Unsupported matcher. Must be one of String|Function|RegExp.`)}disableNetConnect(){this[u]=!1}enableCallHistory(){return this[g]=!0,this}disableCallHistory(){return this[g]=!1,this}getCallHistory(){return this[y]}clearCallHistory(){this[y]!==void 0&&this[y].clear()}get isMockActive(){return this[c]}[h](){this[y]===void 0&&(this[y]=new N)}[_](e){this[g]&&(this[h](),this[y][x](e))}[a](e,t){this[n].set(e,t)}[m](e){let t=Object.assign({agent:this},this[p]);return this[p]&&this[p].connections===1?new C(e,t):new w(e,t)}[o](e){let t=this[n].get(e);if(t)return t;if(typeof e!=`string`){let t=this[m](`http://localhost:9999`);return this[a](e,t),t}for(let[t,r]of Array.from(this[n]))if(r&&typeof t!=`string`&&T(t,e)){let t=this[m](e);return this[a](e,t),t[s]=r[s],t}}[f](){return this[u]}pendingInterceptors(){let e=this[n];return Array.from(e.entries()).flatMap(([e,t])=>t[s].map(t=>({...t,origin:e}))).filter(({pending:e})=>e)}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new M}={}){let t=this.pendingInterceptors();if(t.length!==0)throw new A(t.length===1?`1 interceptor is pending:\n\n${e.format(t)}`.trim():`${t.length} interceptors are pending:\n\n${e.format(t)}`.trim())}}})),_e=e.c(((e,t)=>{let{InvalidArgumentError:n}=d(),{runtimeFeatures:r}=M();function i(e={}){let{ignoreHeaders:t=[],excludeHeaders:n=[],matchHeaders:r=[],caseSensitive:i=!1}=e;return{ignore:new Set(t.map(e=>i?e:e.toLowerCase())),exclude:new Set(n.map(e=>i?e:e.toLowerCase())),match:new Set(r.map(e=>i?e:e.toLowerCase()))}}let a=r.has(`crypto`)?require(`node:crypto`):null,o=a?.hash?e=>a.hash(`sha256`,e,`base64url`):e=>Buffer.from(e).toString(`base64url`);function s(e){return Array.isArray(e)&&(e.length&1)==0}function c(e=[]){return e.length===0?()=>!1:function(t){let n;for(let r of e)if(typeof r==`string`){if(n||=t.toLowerCase(),n.includes(r.toLowerCase()))return!0}else if(r instanceof RegExp&&r.test(t))return!0;return!1}}function l(e){let t={};if(!e)return t;if(s(e)){for(let n=0;n<e.length;n+=2){let r=e[n],i=e[n+1];if(r&&i!==void 0){let e=Buffer.isBuffer(r)?r.toString():r,n=Buffer.isBuffer(i)?i.toString():i;t[e.toLowerCase()]=n}}return t}if(e&&typeof e==`object`)for(let[n,r]of Object.entries(e))n&&typeof n==`string`&&(t[n.toLowerCase()]=Array.isArray(r)?r.join(`, `):String(r));return t}let u=[`record`,`playback`,`update`];function f(e){if(!u.includes(e))throw new n(`Invalid snapshot mode: ${e}. Must be one of: ${u.join(`, `)}`)}t.exports={createHeaderFilters:i,hashId:o,isUndiciHeaders:s,normalizeHeaders:l,isUrlExcludedFactory:c,validateSnapshotMode:f}})),ve=e.c(((e,t)=>{let{writeFile:n,readFile:r,mkdir:i}=require(`node:fs/promises`),{dirname:a,resolve:o}=require(`node:path`),{setTimeout:s,clearTimeout:c}=require(`node:timers`),{InvalidArgumentError:l,UndiciError:u}=d(),{hashId:f,isUrlExcludedFactory:p,normalizeHeaders:m,createHeaderFilters:h}=_e();function g(e,t,n){if(t===!1)return`${e.origin}${e.pathname}`;if(n){let t=String(n(e.searchParams)??``);return t?`${e.origin}${e.pathname}?${t}`:`${e.origin}${e.pathname}`}return e.toString()}function _(e,t,n){return t===!1?``:n?String(n(e)??``):e?String(e):``}function v(e,t,n={}){let r=new URL(e.path,e.origin),i=e._normalizedHeaders||m(e.headers);return e._normalizedHeaders||=i,{method:e.method||`GET`,url:g(r,n.matchQuery,n.normalizeQuery),headers:y(i,t,n),body:_(e.body,n.matchBody,n.normalizeBody)}}function y(e,t,n={}){if(!e||typeof e!=`object`)return{};let{caseSensitive:r=!1}=n,i={},{ignore:a,exclude:o,match:s}=t;for(let[t,n]of Object.entries(e)){let e=r?t:t.toLowerCase();o.has(e)||a.has(e)||s.size!==0&&!s.has(e)||(i[e]=n)}return i}function b(e,t,n={}){if(!e||typeof e!=`object`)return{};let{caseSensitive:r=!1}=n,i={},{exclude:a}=t;for(let[t,n]of Object.entries(e)){let e=r?t:t.toLowerCase();a.has(e)||(i[e]=n)}return i}function x(e){let t=[e.method,e.url];if(e.headers&&typeof e.headers==`object`){let n=Object.keys(e.headers).sort();for(let r of n){let n=Array.isArray(e.headers[r])?e.headers[r]:[e.headers[r]];t.push(r);for(let e of n.sort())t.push(String(e))}}return t.push(e.body),f(t.join(`|`))}t.exports={SnapshotRecorder:class{#e;#t;#n=new Map;#r;#i=1/0;#a=!1;#o;constructor(e={}){this.#r=e.snapshotPath,this.#i=e.maxSnapshots||1/0,this.#a=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,normalizeBody:e.normalizeBody||void 0,matchQuery:e.matchQuery!==!1,normalizeQuery:e.normalizeQuery||void 0,caseSensitive:e.caseSensitive||!1},this.#o=h(this.matchOptions),this.shouldRecord=e.shouldRecord||(()=>!0),this.shouldPlayback=e.shouldPlayback||(()=>!0),this.#t=p(e.excludeUrls),this.#a&&this.#r&&this.#s()}async record(e,t){if(!this.shouldRecord(e)||this.isUrlExcluded(e))return;let n=v(e,this.#o,this.matchOptions),r=x(n),i=m(t.headers),a={statusCode:t.statusCode,headers:b(i,this.#o,this.matchOptions),body:Buffer.isBuffer(t.body)?t.body.toString(`base64`):Buffer.from(String(t.body||``)).toString(`base64`),trailers:t.trailers};if(this.#n.size>=this.#i&&!this.#n.has(r)){let e=this.#n.keys().next().value;this.#n.delete(e)}let o=this.#n.get(r);o&&o.responses?(o.responses.push(a),o.timestamp=new Date().toISOString()):this.#n.set(r,{request:n,responses:[a],callCount:0,timestamp:new Date().toISOString()}),this.#a&&this.#r&&this.#l()}isUrlExcluded(e){let t=new URL(e.path,e.origin).toString();return this.#t(t)}findSnapshot(e){if(!this.shouldPlayback(e)||this.isUrlExcluded(e))return;let t=x(v(e,this.#o,this.matchOptions)),n=this.#n.get(t);if(!n)return;let r=n.callCount||0,i=Math.min(r,n.responses.length-1);return n.callCount=r+1,{...n,response:n.responses[i]}}async loadSnapshots(e){let t=e||this.#r;if(!t)throw new l(`Snapshot path is required`);try{let e=await r(o(t),`utf8`),n=JSON.parse(e);if(Array.isArray(n)){this.#n.clear();for(let{hash:e,snapshot:t}of n)this.#n.set(e,t)}else this.#n=new Map(Object.entries(n))}catch(e){if(e.code===`ENOENT`)this.#n.clear();else throw new u(`Failed to load snapshots from ${t}`,{cause:e})}}async saveSnapshots(e){let t=e||this.#r;if(!t)throw new l(`Snapshot path is required`);let r=o(t);await i(a(r),{recursive:!0});let s=Array.from(this.#n.entries()).map(([e,t])=>({hash:e,snapshot:t}));await n(r,JSON.stringify(s,null,2),{flush:!0})}clear(){this.#n.clear()}getSnapshots(){return Array.from(this.#n.values())}size(){return this.#n.size}resetCallCounts(){for(let e of this.#n.values())e.callCount=0}deleteSnapshot(e){let t=x(v(e,this.#o,this.matchOptions));return this.#n.delete(t)}getSnapshotInfo(e){let t=x(v(e,this.#o,this.matchOptions)),n=this.#n.get(t);return n?{hash:t,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.#n.clear(),Array.isArray(e))for(let{hash:t,snapshot:n}of e)this.#n.set(t,n);else e&&typeof e==`object`&&(this.#n=new Map(Object.entries(e)))}#s(){return this.#l()}#c(){this.#e&&=(c(this.#e),this.saveSnapshots().catch(()=>{}),null)}#l(){this.#e=s(()=>{this.saveSnapshots().catch(()=>{}),this.#a?this.#e?.refresh():this.#e=null},1e3)}destroy(){this.#c(),this.#e&&=(c(this.#e),null)}async close(){this.#r&&this.#n.size!==0&&await this.saveSnapshots(),this.destroy()}},formatRequestKey:v,createRequestHash:x,filterHeadersForMatching:y,filterHeadersForStorage:b,createHeaderFilters:h}})),ye=e.c(((e,t)=>{let n=U(),r=ge(),{SnapshotRecorder:i}=ve(),{InvalidArgumentError:a,UndiciError:o}=d(),s=m(),{validateSnapshotMode:c}=_e(),l=Symbol(`kSnapshotRecorder`),u=Symbol(`kSnapshotMode`),f=Symbol(`kSnapshotPath`),p=Symbol(`kSnapshotLoaded`),h=Symbol(`kRealAgent`),g=!1;t.exports=class extends r{constructor(e={}){g||=(process.emitWarning(`SnapshotAgent is experimental and subject to change`,`ExperimentalWarning`),!0);let{mode:t=`record`,snapshotPath:r=null,...o}=e;if(super(o),c(t),(t===`playback`||t===`update`)&&!r)throw new a(`snapshotPath is required when mode is '${t}'`);this[u]=t,this[f]=r,this[l]=new i({snapshotPath:this[f],mode:this[u],maxSnapshots:e.maxSnapshots,autoFlush:e.autoFlush,flushInterval:e.flushInterval,matchHeaders:e.matchHeaders,ignoreHeaders:e.ignoreHeaders,excludeHeaders:e.excludeHeaders,matchBody:e.matchBody,normalizeBody:e.normalizeBody,matchQuery:e.matchQuery,normalizeQuery:e.normalizeQuery,caseSensitive:e.caseSensitive,shouldRecord:e.shouldRecord,shouldPlayback:e.shouldPlayback,excludeUrls:e.excludeUrls}),this[p]=!1,(this[u]===`record`||this[u]===`update`||this[u]===`playback`&&e.excludeUrls&&e.excludeUrls.length>0)&&(this[h]=new n(e)),(this[u]===`playback`||this[u]===`update`)&&this[f]&&this.loadSnapshots().catch(()=>{})}dispatch(e,t){let n=this[u];if(this[l].isUrlExcluded(e))return this[h].dispatch(e,t);if(n===`playback`||n===`update`){if(!this[p])return this.#e(e,t);let r=this[l].findSnapshot(e);if(r)return this.#n(r,t);if(n===`update`)return this.#t(e,t);{let n=new o(`No snapshot found for ${e.method||`GET`} ${e.path}`);if(t.onResponseError){t.onResponseError(null,n);return}throw n}}else if(n===`record`)return this.#t(e,t)}async#e(e,t){return await this.loadSnapshots(),this.dispatch(e,t)}#t(e,t){let n={statusCode:null,headers:{},trailers:{},body:[]},r=this;return this[h].dispatch(e,{onRequestStart(e,n){return t.onRequestStart(e,{...n,history:this.history})},onRequestUpgrade(e,n,r,i){return t.onRequestUpgrade(e,n,r,i)},onResponseStart(e,r,i,a){return n.statusCode=r,n.headers=i,t.onResponseStart(e,r,i,a)},onResponseData(e,r){return n.body.push(r),t.onResponseData(e,r)},onResponseEnd(i,a){n.trailers=a;let o=Buffer.concat(n.body);r[l].record(e,{statusCode:n.statusCode,headers:n.headers,body:o,trailers:n.trailers}).then(()=>t.onResponseEnd(i,a)).catch(e=>t.onResponseError(i,e))},onResponseError(e,n){return t.onResponseError(e,n)}})}#n(e,t){try{let{response:n}=e,r={rawHeaders:n.headers?s.toRawHeaders(n.headers):[],rawTrailers:n.trailers?s.toRawHeaders(n.trailers):[],pause(){},resume(){},abort(e){this.aborted=!0,this.reason=e},aborted:!1,paused:!1};t.onRequestStart(r),t.onResponseStart(r,n.statusCode,n.headers,n.statusMessage);let i=Buffer.from(n.body,`base64`);t.onResponseData(r,i),t.onResponseEnd(r,n.trailers)}catch(e){t.onResponseError?.(null,e)}}async loadSnapshots(e){await this[l].loadSnapshots(e||this[f]),this[p]=!0,this[u]===`playback`&&this.#r()}async saveSnapshots(e){return this[l].saveSnapshots(e||this[f])}#r(){for(let e of this[l].getSnapshots()){let{request:t,responses:n,response:r}=e,i=new URL(t.url),a=this.get(i.origin),o=n?n[0]:r;o&&a.intercept({path:i.pathname+i.search,method:t.method,headers:t.headers,body:t.body}).reply(o.statusCode,o.body,{headers:o.headers,trailers:o.trailers}).persist()}}getRecorder(){return this[l]}getMode(){return this[u]}clearSnapshots(){this[l].clear()}resetCallCounts(){this[l].resetCallCounts()}deleteSnapshot(e){return this[l].deleteSnapshot(e)}getSnapshotInfo(e){return this[l].getSnapshotInfo(e)}replaceSnapshots(e){this[l].replaceSnapshots(e)}async close(){this[u]===`playback`?this[l].destroy():await this[l].close(),await this[h]?.close(),await super.close()}}})),be=e.c(((e,t)=>{let n=Symbol.for(`undici.globalDispatcher.2`),r=Symbol.for(`undici.globalDispatcher.1`),{InvalidArgumentError:i}=d(),a=U(),o=W(),s;l()===void 0&&c(new a);function c(e){if(!e||typeof e.dispatch!=`function`)throw new i(`Argument agent must implement Agent`);try{Object.defineProperty(globalThis,n,{value:e,writable:!0,enumerable:!1,configurable:!1})}catch(t){if(t instanceof TypeError){s=e;return}throw t}try{let t=e instanceof o?e:new o(e);Object.defineProperty(globalThis,r,{value:t,writable:!0,enumerable:!1,configurable:!1})}catch(e){if(!(e instanceof TypeError))throw e}}function l(){return globalThis[n]??s}t.exports={setGlobalDispatcher:c,getGlobalDispatcher:l,installedExports:[`fetch`,`Headers`,`Response`,`Request`,`FormData`,`WebSocket`,`CloseEvent`,`ErrorEvent`,`MessageEvent`,`EventSource`]}})),xe=e.c(((e,t)=>{let n=require(`node:assert`);t.exports=class{#e;#t=!1;#n=!1;#r=!1;constructor(e){if(typeof e!=`object`||!e)throw TypeError(`handler must be an object`);this.#e=e}onRequestStart(...e){this.#e.onRequestStart?.(...e)}onRequestUpgrade(...e){return n(!this.#t),n(!this.#n),this.#e.onRequestUpgrade?.(...e)}onResponseStart(...e){return n(!this.#t),n(!this.#n),n(!this.#r),this.#r=!0,this.#e.onResponseStart?.(...e)}onResponseData(...e){return n(!this.#t),n(!this.#n),this.#e.onResponseData?.(...e)}onResponseEnd(...e){return n(!this.#t),n(!this.#n),this.#t=!0,this.#e.onResponseEnd?.(...e)}onResponseError(...e){return this.#n=!0,this.#e.onResponseError?.(...e)}onBodySent(...e){return this.#e.onBodySent?.(...e)}onRequestSent(...e){return this.#e.onRequestSent?.(...e)}}})),Se=e.c(((e,t)=>{let n=m(),r=require(`node:assert`),{InvalidArgumentError:i}=d(),{kRequestOrigin:a}=l(),o=[300,301,302,303,307,308],s=()=>{};var c=class e{static buildDispatch(t,n){if(n!=null&&(!Number.isInteger(n)||n<0))throw new i(`maxRedirections must be a positive number`);let r=t.dispatch.bind(t);return(t,i)=>r(t,new e(r,n,t,i))}constructor(e,t,r,a){if(t!=null&&(!Number.isInteger(t)||t<0))throw new i(`maxRedirections must be a positive number`);if(r.throwOnMaxRedirect!=null&&typeof r.throwOnMaxRedirect!=`boolean`)throw new i(`throwOnMaxRedirect must be a boolean`);this.dispatch=e,this.location=null;let{maxRedirections:o,stripHeadersOnRedirect:s,stripHeadersOnCrossOriginRedirect:c,...l}=r;this.opts=l,this.opts.body=n.wrapRequestBody(this.opts.body),this.stripHeadersOnRedirect=f(s,`stripHeadersOnRedirect`),this.stripHeadersOnCrossOriginRedirect=f(c,`stripHeadersOnCrossOriginRedirect`),this.maxRedirections=t,this.handler=a,this.history=[]}onRequestStart(e,t){this.handler.onRequestStart?.(e,{...t,history:this.history})}onBodySent(e){this.handler.onBodySent?.(e)}onRequestSent(){this.handler.onRequestSent?.()}onRequestUpgrade(e,t,n,r){this.handler.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,r,c){if(this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections)throw Error(`max redirects`);let l=t===303;(t===301||t===302)&&this.opts.method===`POST`&&(this.opts.method=`GET`,n.isStream(this.opts.body)&&n.destroy(this.opts.body.on(`error`,s)),this.opts.body=null,l=!0),t===303&&this.opts.method!==`HEAD`&&(this.opts.method=`GET`,n.isStream(this.opts.body)&&n.destroy(this.opts.body.on(`error`,s)),this.opts.body=null),this.location=this.history.length>=this.maxRedirections||n.isDisturbed(this.opts.body)||o.indexOf(t)===-1?null:r.location;let u=this.opts[a]===void 0?this.opts.origin:this.opts[a];if(u&&this.history.push(new URL(this.opts.path,u)),!this.location){this.handler.onResponseStart?.(e,t,r,c);return}let d=u?new URL(this.opts.path,u):void 0,{origin:f,pathname:m,search:h}=n.parseURL(new URL(this.location,d)),g=h?`${m}${h}`:m,_=`${f}${g}`;for(let e of this.history)if(e.toString()===_)throw new i(`Redirect loop detected. Cannot redirect to ${f}. This typically happens when using a Client or Pool with cross-origin redirects. Use an Agent for cross-origin redirects.`);this.opts.headers=p(this.opts.headers,l,u!==f,this.stripHeadersOnRedirect,this.stripHeadersOnCrossOriginRedirect),this.opts.path=g,this.opts.origin=f,this.opts[a]=f,this.opts.query=null}onResponseData(e,t){this.location||this.handler.onResponseData?.(e,t)}onResponseEnd(e,t){this.location?this.dispatch(this.opts,this):this.handler.onResponseEnd(e,t)}onResponseError(e,t){this.handler.onResponseError?.(e,t)}};function u(e,t,r,i,a){let o=n.headerNameToString(e);return o===`host`||i?.has(o)||r&&a?.has(o)||t&&o.startsWith(`content-`)?!0:r?o===`authorization`||o===`cookie`||o===`proxy-authorization`:!1}function f(e,t){if(e==null)return null;if(!Array.isArray(e))throw new i(`${t} must be an array`);let r=new Set;for(let a of e){if(typeof a!=`string`)throw new i(`${t} must contain header names`);r.add(n.headerNameToString(a))}return r}function p(e,t,i,a,o){let s=[];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)u(e[n],t,i,a,o)||s.push(e[n],e[n+1]);else if(e&&typeof e==`object`){let r=n.hasSafeIterator(e)?e:Object.entries(e);for(let[e,n]of r)u(e,t,i,a,o)||s.push(e,n)}else r(e==null,`headers must be an object or an array`);return s}t.exports=c})),Ce=e.c(((e,t)=>{let n=Se();function r({maxRedirections:e,throwOnMaxRedirect:t,stripHeadersOnRedirect:r,stripHeadersOnCrossOriginRedirect:i}={}){return a=>function(o,s){let{maxRedirections:c=e,throwOnMaxRedirect:l=t,stripHeadersOnRedirect:u=r,stripHeadersOnCrossOriginRedirect:d=i,...f}=o;if(c==null||c===0)return a(o,s);let p={...f,throwOnMaxRedirect:l,stripHeadersOnRedirect:u,stripHeadersOnCrossOriginRedirect:d};return a(p,new n(a,c,p,s))}}t.exports=r})),we=e.c(((e,t)=>{let n=xe(),{ResponseError:r}=d();var i=class extends n{#e;#t;#n;#r;#i;constructor(e,{handler:t}){super(t)}#a(e){return(this.#t??``).indexOf(e)===0}onRequestStart(e,t){return this.#e=0,this.#t=null,this.#n=null,this.#r=null,this.#i=``,super.onRequestStart(e,t)}onResponseStart(e,t,n,r){if(this.#e=t,this.#r=n,this.#t=n[`content-type`],this.#e<400)return super.onResponseStart(e,t,n,r);(this.#a(`application/json`)||this.#a(`text/plain`))&&(this.#n=new TextDecoder(`utf-8`))}onResponseData(e,t){if(this.#e<400)return super.onResponseData(e,t);this.#i+=this.#n?.decode(t,{stream:!0})??``}onResponseEnd(e,t){if(this.#e>=400){if(this.#i+=this.#n?.decode(void 0,{stream:!1})??``,this.#a(`application/json`))try{this.#i=JSON.parse(this.#i)}catch{}let t,n=Error.stackTraceLimit;Error.stackTraceLimit=0;try{t=new r(`Response Error`,this.#e,{body:this.#i,headers:this.#r})}finally{Error.stackTraceLimit=n}super.onResponseError(e,t)}else super.onResponseEnd(e,t)}onResponseError(e,t){super.onResponseError(e,t)}};t.exports=()=>e=>function(t,n){return e(t,new i(t,{handler:n}))}})),Te=e.c(((e,t)=>{let n=q();t.exports=e=>t=>function(r,i){return t(r,new n({...r,retryOptions:{...e,...r.retryOptions}},{handler:i,dispatch:t}))}})),Ee=e.c(((e,t)=>{let{InvalidArgumentError:n,RequestAbortedError:r}=d(),i=xe();var a=class extends i{#e=1024*1024;#t=!1;#n=0;aborted=!1;reason=!1;constructor({maxSize:e,signal:t},r){if(e!=null&&(!Number.isFinite(e)||e<1))throw new n(`maxSize must be a number greater than 0`);super(r),this.#e=e??this.#e}#r(e){this.aborted=!0,this.reason=e}onRequestStart(e,t){return e.abort=this.#r.bind(this),super.onRequestStart(e,t)}onResponseStart(e,t,n,i){let a=n[`content-length`];if(a!=null&&a>this.#e)throw new r(`Response size (${a}) larger than maxSize (${this.#e})`);return this.aborted===!0?!0:super.onResponseStart(e,t,n,i)}onResponseError(e,t){super.onResponseError(e,this.aborted===!0?this.reason:t)}onResponseData(e,t){if(this.#n+=t.length,this.#n>this.#e)throw new r(`Response size (${this.#n}) larger than maxSize (${this.#e})`);return this.#n===this.#e&&(this.#t=!0),!0}onResponseEnd(e,t){if(this.aborted===!0){super.onResponseError(e,this.reason);return}super.onResponseEnd(e,this.#t?{}:t)}};function o({maxSize:e}={maxSize:1024*1024}){return t=>function(n,r){let{dumpMaxSize:i=e}=n;return t(n,new a({maxSize:i,signal:n.signal},r))}}t.exports=o})),De=e.c(((e,t)=>{let{isIP:n}=require(`node:net`),{lookup:r}=require(`node:dns`),i=xe(),{InvalidArgumentError:a,InformationalError:o}=d(),{kRequestOrigin:s}=l(),c=2**31-1;function u(e){let t=Object.getPrototypeOf(e);return Object.hasOwn(e,Symbol.iterator)||t!=null&&t!==Object.prototype&&typeof e[Symbol.iterator]==`function`}function f(e){return typeof e==`string`&&e.toLowerCase()===`host`}function p(e){if(e==null)return null;if(Array.isArray(e)){if(e.length===0||!Array.isArray(e[0]))return e;let t=[];for(let n of e)Array.isArray(n)&&n.length===2?t.push(n[0],n[1]):t.push(n);return t}if(typeof e==`object`&&u(e)){let t=[];for(let n of e)Array.isArray(n)&&n.length===2?t.push(n[0],n[1]):t.push(n);return t}return e}function m(e){if(e==null)return!1;if(Array.isArray(e)){if(e.length===0)return!1;for(let t=0;t<e.length;t+=2)if(f(e[t]))return!0;return!1}if(typeof e==`object`){for(let t in e)if(f(t))return!0}return!1}function h(e,t){let n=p(t);return m(n)?n:Array.isArray(n)?[`host`,e,...n]:n&&typeof n==`object`?{host:e,...n}:{host:e}}var g=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,t){this.#t.set(e,t)}delete(e){this.#t.delete(e)}full(){return this.size>=this.#e}},_=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.#n,this.pick=e.pick??this.#r,this.storage=e.storage??new g(e)}runLookup(e,t,n){let r=this.storage.get(e.hostname);if(r==null&&this.storage.full()){n(null,e);return}let i={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...t.dns,maxTTL:this.#e,maxItems:this.#t};if(r==null)this.lookup(e,i,(t,r)=>{if(t||r==null||r.length===0){n(t??new o(`No DNS entries found`));return}this.setRecords(e,r);let a=this.storage.get(e.hostname),s=this.pick(e,a,i.affinity),c;c=typeof s.port==`number`?`:${s.port}`:e.port===``?``:`:${e.port}`,n(null,new URL(`${e.protocol}//${s.family===6?`[${s.address}]`:s.address}${c}`))});else{let a=this.pick(e,r,i.affinity);if(a==null){this.storage.delete(e.hostname),this.runLookup(e,t,n);return}let o;o=typeof a.port==`number`?`:${a.port}`:e.port===``?``:`:${e.port}`,n(null,new URL(`${e.protocol}//${a.family===6?`[${a.address}]`:a.address}${o}`))}}#n(e,t,n){r(e.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:`ipv4first`},(e,t)=>{if(e)return n(e);let r=new Map;for(let e of t)r.set(`${e.address}:${e.family}`,e);n(null,r.values())})}#r(e,t,n){let r=null,{records:i,offset:a}=t,o;if(this.dualStack?(n??(a==null||a===c?(t.offset=0,n=4):(t.offset++,n=(t.offset&1)==1?6:4)),o=i[n]!=null&&i[n].ips.length>0?i[n]:i[n===4?6:4]):o=i[n],o==null||o.ips.length===0)return r;o.offset==null||o.offset===c?o.offset=0:o.offset++;let s=o.offset%o.ips.length;return r=o.ips[s]??null,r==null?r:Date.now()-r.timestamp>r.ttl?(o.ips.splice(s,1),this.pick(e,t,n)):r}pickFamily(e,t){let n=this.storage.get(e.hostname)?.records;if(!n)return null;let r=n[t];if(!r)return null;r.offset==null||r.offset===c?r.offset=0:r.offset++;let i=r.offset%r.ips.length,a=r.ips[i]??null;return a==null||Date.now()-a.timestamp>a.ttl&&r.ips.splice(i,1),a}setRecords(e,t){let n=Date.now(),r={records:{4:null,6:null}},i=this.#e;for(let e of t){e.timestamp=n,typeof e.ttl==`number`?(e.ttl=Math.min(e.ttl,this.#e),i=Math.min(i,e.ttl)):e.ttl=this.#e;let t=r.records[e.family]??{ips:[]};t.ips.push(e),r.records[e.family]=t}this.storage.set(e.hostname,r,{ttl:i})}deleteRecords(e){this.storage.delete(e.hostname)}getHandler(e,t){return new v(this,e,t)}},v=class extends i{#e=null;#t=null;#n=null;#r=null;#i=null;#a=!0;constructor(e,{origin:t,handler:n,dispatch:r,newOrigin:i},a){super(n),this.#r=t,this.#i=i,this.#t={...a},this.#e=e,this.#n=r}onResponseError(e,t){switch(t.code){case`ETIMEDOUT`:case`ECONNREFUSED`:if(this.#e.dualStack){if(!this.#a){super.onResponseError(e,t);return}this.#a=!1;let n=this.#i.hostname[0]===`[`?4:6,r=this.#e.pickFamily(this.#r,n);if(r==null){super.onResponseError(e,t);return}let i;i=typeof r.port==`number`?`:${r.port}`:this.#r.port===``?``:`:${this.#r.port}`;let a={...this.#t,origin:`${this.#r.protocol}//${r.family===6?`[${r.address}]`:r.address}${i}`,[s]:this.#t[s]===void 0?this.#r:this.#t[s],headers:h(this.#r.host,this.#t.headers)};this.#n(a,this);return}super.onResponseError(e,t);break;case`ENOTFOUND`:this.#e.deleteRecords(this.#r),super.onResponseError(e,t);break;default:super.onResponseError(e,t);break}}};t.exports=e=>{if(e?.maxTTL!=null&&(typeof e?.maxTTL!=`number`||e?.maxTTL<0))throw new a(`Invalid maxTTL. Must be a positive number`);if(e?.maxItems!=null&&(typeof e?.maxItems!=`number`||e?.maxItems<1))throw new a(`Invalid maxItems. Must be a positive number and greater than zero`);if(e?.affinity!=null&&e?.affinity!==4&&e?.affinity!==6)throw new a(`Invalid affinity. Must be either 4 or 6`);if(e?.dualStack!=null&&typeof e?.dualStack!=`boolean`)throw new a(`Invalid dualStack. Must be a boolean`);if(e?.lookup!=null&&typeof e?.lookup!=`function`)throw new a(`Invalid lookup. Must be a function`);if(e?.pick!=null&&typeof e?.pick!=`function`)throw new a(`Invalid pick. Must be a function`);if(e?.storage!=null&&(typeof e?.storage?.get!=`function`||typeof e?.storage?.set!=`function`||typeof e?.storage?.full!=`function`||typeof e?.storage?.delete!=`function`))throw new a(`Invalid storage. Must be a object with methods: { get, set, full, delete }`);let t=e?.dualStack??!0,r;r=t?e?.affinity??null:e?.affinity??4;let i=new _({maxTTL:e?.maxTTL??1e4,lookup:e?.lookup??null,pick:e?.pick??null,dualStack:t,affinity:r,maxItems:e?.maxItems??1/0,storage:e?.storage});return e=>function(t,r){if(t.origin==null)return e(t,r);let a=t.origin.constructor===URL?t.origin:new URL(t.origin);return n(a.hostname)===0?(i.runLookup(a,t,(n,o)=>{if(n)return r.onResponseError(null,n);e({...t,servername:a.hostname,origin:o.origin,[s]:t[s]===void 0?a:t[s],headers:h(a.host,t.headers)},i.getHandler({origin:a,dispatch:e,handler:r,newOrigin:o},t))}),!0):e(t,r)}}})),Oe=e.c(((e,t)=>{let{safeHTTPMethods:n,pathHasQueryOrFragment:r,hasSafeIterator:i,isValidHTTPToken:a}=m(),{serializePathWithQuery:o}=m(),{kRequestOrigin:s}=l(),c=[`no-store`,`private`,`no-cache`],u=Symbol(`invalid cache-control directives`);function d(e){return e.replace(/^[\t ]+|[\t ]+$/g,``)}function f(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function p(e){return e.replace(/^[\t ]+/,``)}function h(e){return e.replace(/[\t ]+$/,``)}function g(e,t){let n=!1;for(let r=t;r<e.length;r++)if(n)n=!1;else if(e[r]===`\\`)n=!0;else if(e[r]===`"`)return r;return-1}function _(e){let t=[],n=0,r=-1,i=!1,a=!1;for(let o=0;o<e.length;o++)i?a?a=!1:e[o]===`\\`?a=!0:e[o]===`"`&&(i=!1,r=-1):e[o]===`"`?(i=!0,r=o):e[o]===`,`&&(t.push({value:e.substring(n,o),fromMalformedQuote:!1}),n=o+1);if(!i)return t.push({value:e.substring(n),fromMalformedQuote:!1}),t;let o=e.substring(n),s=r-n,c=0;for(let e=0;e<o.length;e++)o[e]===`,`&&(t.push({value:o.substring(c,e),fromMalformedQuote:c>s}),c=e+1);return t.push({value:o.substring(c),fromMalformedQuote:c>s}),t}function v(e,t){let n=e[u];n===void 0&&(n=new Set,Object.defineProperty(e,u,{value:n})),n.add(t)}function y(e,t){return e[u]?.has(t)===!0}function b(e){for(let t of c)if(e.startsWith(t)&&e.length>t.length&&!a(e[t.length]))return t;let t=``,n=!1;for(let r=0;r<e.length;r++)a(e[r])?t+=e[r]:n=!0;if(n&&f(c,t))return t}function x(e){let t=e[s]===void 0?e.origin:e[s];return typeof t==`string`||t instanceof URL?t:null}function S(e,t){let n=x(e);if(t===void 0)return n;if(t===null)return null;if(n)try{if(new URL(n).origin!==t)return null}catch{return t}return t}function C(e,t=x(e)){if(!t)throw Error(`opts.origin is undefined`);let n=e.path||`/`;return e.query&&!r(n)&&(n=o(n,e.query)),{origin:t.toString(),method:e.method,path:n,headers:e.headers}}function w(e,t,n){let r=t.toLowerCase(),i=e[r],a=Array.isArray(n)?n:[n];i===void 0?e[r]=Array.isArray(n)?n.slice():n:Array.isArray(i)?i.push(...a):e[r]=[i,...a]}function T(e){let t;if(e.headers==null)t={};else if(typeof e.headers==`object`)if(t={},i(e.headers))if(Array.isArray(e.headers)){let n=e.headers[0];if(Array.isArray(n))for(let n of e.headers){if(!Array.isArray(n))throw Error(`opts.headers is not a valid header map`);let[e,r]=n;if(typeof e!=`string`||typeof r!=`string`)throw Error(`opts.headers is not a valid header map`);w(t,e,r)}else{let n=e.headers.length;if(n%2!=0)throw Error(`opts.headers is not a valid header map`);for(let r=0;r<n;r+=2){let n=e.headers[r],i=e.headers[r+1];if(typeof n!=`string`||typeof i!=`string`&&!Array.isArray(i))throw Error(`opts.headers is not a valid header map`);if(typeof i==`string`)w(t,n,i);else{let e=[];for(let t=0;t<i.length;t++){let n=i[t];e.push(typeof n==`string`?n:n.toString(`latin1`))}w(t,n,e)}}}}else for(let n of e.headers){if(!Array.isArray(n))throw Error(`opts.headers is not a valid header map`);let[e,r]=n;if(typeof e!=`string`||typeof r!=`string`)throw Error(`opts.headers is not a valid header map`);w(t,e,r)}else for(let n of Object.keys(e.headers))w(t,n,e.headers[n]);else throw Error(`opts.headers is not an object`);return t}function E(e){if(typeof e!=`object`)throw TypeError(`expected key to be object, got ${typeof e}`);for(let t of[`origin`,`method`,`path`])if(typeof e[t]!=`string`)throw TypeError(`expected key.${t} to be string, got ${typeof e[t]}`);if(e.headers!==void 0&&typeof e.headers!=`object`)throw TypeError(`expected headers to be object, got ${typeof e}`)}function D(e){if(typeof e!=`object`)throw TypeError(`expected value to be object, got ${typeof e}`);for(let t of[`statusCode`,`cachedAt`,`staleAt`,`deleteAt`])if(typeof e[t]!=`number`)throw TypeError(`expected value.${t} to be number, got ${typeof e[t]}`);if(typeof e.statusMessage!=`string`)throw TypeError(`expected value.statusMessage to be string, got ${typeof e.statusMessage}`);if(e.headers!=null&&typeof e.headers!=`object`)throw TypeError(`expected value.rawHeaders to be object, got ${typeof e.headers}`);if(e.vary!==void 0&&typeof e.vary!=`object`)throw TypeError(`expected value.vary to be object, got ${typeof e.vary}`);if(e.etag!==void 0&&typeof e.etag!=`string`)throw TypeError(`expected value.etag to be string, got ${typeof e.etag}`)}function O(e){let t={},n=new Set,r=new Set,i=_(Array.isArray(e)?e.join(`,`):e);for(let e=0;e<i.length;e++){let o=i[e],s=o.value.toLowerCase(),c=o.fromMalformedQuote,l=s.indexOf(`=`),u,f,m=!1,_=!1;if(l!==-1){let e=s.substring(0,l),t=s.substring(l+1);m=h(e)!==e,_=p(t)!==t,u=d(e),f=p(t)}else u=d(s);let y=b(u);if(y!==void 0){t[y]=!0;continue}switch(u){case`min-fresh`:case`max-stale`:case`max-age`:case`s-maxage`:case`stale-while-revalidate`:case`stale-if-error`:{if(c||n.has(u))continue;if(f===void 0||m||_){delete t[u],n.add(u),v(t,u);continue}if(f.length>=2&&f[0]===`"`&&f[f.length-1]===`"`&&(f=f.substring(1,f.length-1)),!/^[0-9]+$/.test(f)){delete t[u],n.add(u),v(t,u);continue}let e=Math.min(parseInt(f,10),2147483647);u===`min-fresh`?(!(u in t)||t[u]<e)&&(t[u]=e):(!(u in t)||t[u]>e)&&(t[u]=e);break}case`private`:case`no-cache`:if(c){t[u]=!0;break}if(f!==void 0&&f.length===0){t[u]=!0;break}if(f){if(f[0]===`"`){f=h(f);let n=``,r=e,o=!1,s=g(f,1);if(s!==-1)n=f.substring(1,s),o=!0;else{let t=[f.substring(1)];for(let n=e+1;n<i.length;n++){let e=d(i[n].value),a=g(e,0);if(r=n,a!==-1){t.push(e.substring(0,a)),o=!0;break}t.push(e)}n=t.join(`,`)}if(!o){t[u]=!0;break}e=r;let c=n.split(`,`),l=!0;for(let e=0;e<c.length;e++)c[e]=d(c[e]),a(c[e])||(l=!1);l?t[u]!==!0&&(u in t?t[u]=t[u].concat(c):t[u]=c):t[u]=!0}else{let e=d(f);a(e)?t[u]!==!0&&(u in t?t[u]=t[u].concat(e):t[u]=[e]):t[u]=!0}break}case`public`:case`must-revalidate`:case`proxy-revalidate`:case`immutable`:case`no-transform`:case`must-understand`:case`only-if-cached`:if(c||r.has(u))continue;if(f!==void 0){delete t[u],r.add(u);continue}t[u]=!0;break;case`no-store`:t[u]=!0;break;default:continue}}return t}function k(e){let t=Array.isArray(e)?e:[e],n=[];for(let e=0;e<t.length;e++){let r=t[e].split(`,`);for(let e=0;e<r.length;e++)n.push(r[e])}return n}function A(e){let t=k(e);for(let e=0;e<t.length;e++)if(d(t[e]).indexOf(`*`)!==-1)return!0;return!1}function j(e,t){if(A(e))return t;let n={},r=k(e);for(let e of r){let r=d(e).toLowerCase();if(r.length===0)continue;if(!a(r))return;let i=t[r];n[r]=Array.isArray(i)?i.slice():i??null}return n}function M(e){return A(e)||j(e,{})===void 0}function N(e){return e.length<=2?!1:e[0]===`"`&&e[e.length-1]===`"`?!(e[1]===`"`||e.startsWith(`"W/`)):e.startsWith(`W/"`)&&e[e.length-1]===`"`?e.length!==4:!1}function P(e,t=`CacheStore`){if(typeof e!=`object`||!e)throw TypeError(`expected type of ${t} to be a CacheStore, got ${e===null?`null`:typeof e}`);for(let n of[`get`,`createWriteStream`,`delete`])if(typeof e[n]!=`function`)throw TypeError(`${t} needs to have a \`${n}()\` function`)}function F(e,t=`CacheMethods`){if(!Array.isArray(e))throw TypeError(`expected type of ${t} needs to be an array, got ${e===null?`null`:typeof e}`);if(e.length===0)throw TypeError(`${t} needs to have at least one method`);for(let r of e)if(!f(n,r))throw TypeError(`element of ${t}-array needs to be one of following values: ${n.join(`, `)}, got ${r}`)}function I(e,t){let n={};if(e.headers){let r=Object.keys(e.headers).sort();for(let i of r)t?.has(i.toLowerCase())||(n[i]=e.headers[i])}return JSON.stringify([e.origin,e.method,e.path,n])}t.exports={getInterceptorOrigin:S,getRequestOrigin:x,makeCacheKey:C,normalizeHeaders:T,assertCacheKey:E,assertCacheValue:D,parseCacheControlHeader:O,hasInvalidCacheControlDirective:y,parseVaryHeader:j,hasVaryStar:A,isInvalidOrWildcardVaryHeader:M,isEtagUsable:N,assertCacheMethods:F,assertCacheStore:P,makeDeduplicationKey:I}})),ke=e.c(((e,t)=>{function n(e){switch(e[3]){case`,`:return i(e);case` `:return a(e);default:return o(e)}}function r(e,t,n,r,i,a,o){let s=new Date(Date.UTC(e,t,n,r,i,a));return e>=0&&e<=99&&s.setUTCFullYear(e),s.getUTCFullYear()===e&&s.getUTCMonth()===t&&s.getUTCDate()===n&&s.getUTCHours()===r&&s.getUTCMinutes()===i&&s.getUTCSeconds()===a&&s.getUTCDay()===o?s:void 0}function i(e){if(e.length!==29||e[4]!==` `||e[7]!==` `||e[11]!==` `||e[16]!==` `||e[19]!==`:`||e[22]!==`:`||e[25]!==` `||e[26]!==`G`||e[27]!==`M`||e[28]!==`T`)return;let t=-1;if(e[0]===`S`&&e[1]===`u`&&e[2]===`n`)t=0;else if(e[0]===`M`&&e[1]===`o`&&e[2]===`n`)t=1;else if(e[0]===`T`&&e[1]===`u`&&e[2]===`e`)t=2;else if(e[0]===`W`&&e[1]===`e`&&e[2]===`d`)t=3;else if(e[0]===`T`&&e[1]===`h`&&e[2]===`u`)t=4;else if(e[0]===`F`&&e[1]===`r`&&e[2]===`i`)t=5;else if(e[0]===`S`&&e[1]===`a`&&e[2]===`t`)t=6;else return;let n=0;if(e[5]===`0`){let t=e.charCodeAt(6);if(t<49||t>57)return;n=t-48}else{let t=e.charCodeAt(5);if(t<49||t>51)return;let r=e.charCodeAt(6);if(r<48||r>57)return;n=(t-48)*10+(r-48)}let i=-1;if(e[8]===`J`&&e[9]===`a`&&e[10]===`n`)i=0;else if(e[8]===`F`&&e[9]===`e`&&e[10]===`b`)i=1;else if(e[8]===`M`&&e[9]===`a`)if(e[10]===`r`)i=2;else if(e[10]===`y`)i=4;else return;else if(e[8]===`J`)if(e[9]===`a`&&e[10]===`n`)i=0;else if(e[9]===`u`)if(e[10]===`n`)i=5;else if(e[10]===`l`)i=6;else return;else return;else if(e[8]===`A`)if(e[9]===`p`&&e[10]===`r`)i=3;else if(e[9]===`u`&&e[10]===`g`)i=7;else return;else if(e[8]===`S`&&e[9]===`e`&&e[10]===`p`)i=8;else if(e[8]===`O`&&e[9]===`c`&&e[10]===`t`)i=9;else if(e[8]===`N`&&e[9]===`o`&&e[10]===`v`)i=10;else if(e[8]===`D`&&e[9]===`e`&&e[10]===`c`)i=11;else return;let a=e.charCodeAt(12);if(a<48||a>57)return;let o=e.charCodeAt(13);if(o<48||o>57)return;let s=e.charCodeAt(14);if(s<48||s>57)return;let c=e.charCodeAt(15);if(c<48||c>57)return;let l=(a-48)*1e3+(o-48)*100+(s-48)*10+(c-48),u=0;if(e[17]===`0`){let t=e.charCodeAt(18);if(t<48||t>57)return;u=t-48}else{let t=e.charCodeAt(17);if(t<48||t>50)return;let n=e.charCodeAt(18);if(n<48||n>57||t===50&&n>51)return;u=(t-48)*10+(n-48)}let d=0;if(e[20]===`0`){let t=e.charCodeAt(21);if(t<48||t>57)return;d=t-48}else{let t=e.charCodeAt(20);if(t<48||t>53)return;let n=e.charCodeAt(21);if(n<48||n>57)return;d=(t-48)*10+(n-48)}let f=0;if(e[23]===`0`){let t=e.charCodeAt(24);if(t<48||t>57)return;f=t-48}else{let t=e.charCodeAt(23);if(t<48||t>53)return;let n=e.charCodeAt(24);if(n<48||n>57)return;f=(t-48)*10+(n-48)}return r(l,i,n,u,d,f,t)}function a(e){if(e.length!==24||e[7]!==` `||e[10]!==` `||e[19]!==` `)return;let t=-1;if(e[0]===`S`&&e[1]===`u`&&e[2]===`n`)t=0;else if(e[0]===`M`&&e[1]===`o`&&e[2]===`n`)t=1;else if(e[0]===`T`&&e[1]===`u`&&e[2]===`e`)t=2;else if(e[0]===`W`&&e[1]===`e`&&e[2]===`d`)t=3;else if(e[0]===`T`&&e[1]===`h`&&e[2]===`u`)t=4;else if(e[0]===`F`&&e[1]===`r`&&e[2]===`i`)t=5;else if(e[0]===`S`&&e[1]===`a`&&e[2]===`t`)t=6;else return;let n=-1;if(e[4]===`J`&&e[5]===`a`&&e[6]===`n`)n=0;else if(e[4]===`F`&&e[5]===`e`&&e[6]===`b`)n=1;else if(e[4]===`M`&&e[5]===`a`)if(e[6]===`r`)n=2;else if(e[6]===`y`)n=4;else return;else if(e[4]===`J`)if(e[5]===`a`&&e[6]===`n`)n=0;else if(e[5]===`u`)if(e[6]===`n`)n=5;else if(e[6]===`l`)n=6;else return;else return;else if(e[4]===`A`)if(e[5]===`p`&&e[6]===`r`)n=3;else if(e[5]===`u`&&e[6]===`g`)n=7;else return;else if(e[4]===`S`&&e[5]===`e`&&e[6]===`p`)n=8;else if(e[4]===`O`&&e[5]===`c`&&e[6]===`t`)n=9;else if(e[4]===`N`&&e[5]===`o`&&e[6]===`v`)n=10;else if(e[4]===`D`&&e[5]===`e`&&e[6]===`c`)n=11;else return;let i=0;if(e[8]===` `){let t=e.charCodeAt(9);if(t<49||t>57)return;i=t-48}else{let t=e.charCodeAt(8);if(t<49||t>51)return;let n=e.charCodeAt(9);if(n<48||n>57)return;i=(t-48)*10+(n-48)}let a=0;if(e[11]===`0`){let t=e.charCodeAt(12);if(t<48||t>57)return;a=t-48}else{let t=e.charCodeAt(11);if(t<48||t>50)return;let n=e.charCodeAt(12);if(n<48||n>57||t===50&&n>51)return;a=(t-48)*10+(n-48)}let o=0;if(e[14]===`0`){let t=e.charCodeAt(15);if(t<48||t>57)return;o=t-48}else{let t=e.charCodeAt(14);if(t<48||t>53)return;let n=e.charCodeAt(15);if(n<48||n>57)return;o=(t-48)*10+(n-48)}let s=0;if(e[17]===`0`){let t=e.charCodeAt(18);if(t<48||t>57)return;s=t-48}else{let t=e.charCodeAt(17);if(t<48||t>53)return;let n=e.charCodeAt(18);if(n<48||n>57)return;s=(t-48)*10+(n-48)}let c=e.charCodeAt(20);if(c<48||c>57)return;let l=e.charCodeAt(21);if(l<48||l>57)return;let u=e.charCodeAt(22);if(u<48||u>57)return;let d=e.charCodeAt(23);if(!(d<48||d>57))return r((c-48)*1e3+(l-48)*100+(u-48)*10+(d-48),n,i,a,o,s,t)}function o(e){let t=-1,n=-1;if(e[0]===`S`)e[1]===`u`&&e[2]===`n`&&e[3]===`d`&&e[4]===`a`&&e[5]===`y`?(n=0,t=6):e[1]===`a`&&e[2]===`t`&&e[3]===`u`&&e[4]===`r`&&e[5]===`d`&&e[6]===`a`&&e[7]===`y`&&(n=6,t=8);else if(e[0]===`M`&&e[1]===`o`&&e[2]===`n`&&e[3]===`d`&&e[4]===`a`&&e[5]===`y`)n=1,t=6;else if(e[0]===`T`)e[1]===`u`&&e[2]===`e`&&e[3]===`s`&&e[4]===`d`&&e[5]===`a`&&e[6]===`y`?(n=2,t=7):e[1]===`h`&&e[2]===`u`&&e[3]===`r`&&e[4]===`s`&&e[5]===`d`&&e[6]===`a`&&e[7]===`y`&&(n=4,t=8);else if(e[0]===`W`&&e[1]===`e`&&e[2]===`d`&&e[3]===`n`&&e[4]===`e`&&e[5]===`s`&&e[6]===`d`&&e[7]===`a`&&e[8]===`y`)n=3,t=9;else if(e[0]===`F`&&e[1]===`r`&&e[2]===`i`&&e[3]===`d`&&e[4]===`a`&&e[5]===`y`)n=5,t=6;else return;if(e[t]!==`,`||e.length-t-1!=23||e[t+1]!==` `||e[t+4]!==`-`||e[t+8]!==`-`||e[t+11]!==` `||e[t+14]!==`:`||e[t+17]!==`:`||e[t+20]!==` `||e[t+21]!==`G`||e[t+22]!==`M`||e[t+23]!==`T`)return;let i=0;if(e[t+2]===`0`){let n=e.charCodeAt(t+3);if(n<49||n>57)return;i=n-48}else{let n=e.charCodeAt(t+2);if(n<49||n>51)return;let r=e.charCodeAt(t+3);if(r<48||r>57)return;i=(n-48)*10+(r-48)}let a=-1;if(e[t+5]===`J`&&e[t+6]===`a`&&e[t+7]===`n`)a=0;else if(e[t+5]===`F`&&e[t+6]===`e`&&e[t+7]===`b`)a=1;else if(e[t+5]===`M`&&e[t+6]===`a`&&e[t+7]===`r`)a=2;else if(e[t+5]===`A`&&e[t+6]===`p`&&e[t+7]===`r`)a=3;else if(e[t+5]===`M`&&e[t+6]===`a`&&e[t+7]===`y`)a=4;else if(e[t+5]===`J`&&e[t+6]===`u`&&e[t+7]===`n`)a=5;else if(e[t+5]===`J`&&e[t+6]===`u`&&e[t+7]===`l`)a=6;else if(e[t+5]===`A`&&e[t+6]===`u`&&e[t+7]===`g`)a=7;else if(e[t+5]===`S`&&e[t+6]===`e`&&e[t+7]===`p`)a=8;else if(e[t+5]===`O`&&e[t+6]===`c`&&e[t+7]===`t`)a=9;else if(e[t+5]===`N`&&e[t+6]===`o`&&e[t+7]===`v`)a=10;else if(e[t+5]===`D`&&e[t+6]===`e`&&e[t+7]===`c`)a=11;else return;let o=e.charCodeAt(t+9);if(o<48||o>57)return;let s=e.charCodeAt(t+10);if(s<48||s>57)return;let c=(o-48)*10+(s-48);c+=c<70?2e3:1900;let l=0;if(e[t+12]===`0`){let n=e.charCodeAt(t+13);if(n<48||n>57)return;l=n-48}else{let n=e.charCodeAt(t+12);if(n<48||n>50)return;let r=e.charCodeAt(t+13);if(r<48||r>57||n===50&&r>51)return;l=(n-48)*10+(r-48)}let u=0;if(e[t+15]===`0`){let n=e.charCodeAt(t+16);if(n<48||n>57)return;u=n-48}else{let n=e.charCodeAt(t+15);if(n<48||n>53)return;let r=e.charCodeAt(t+16);if(r<48||r>57)return;u=(n-48)*10+(r-48)}let d=0;if(e[t+18]===`0`){let n=e.charCodeAt(t+19);if(n<48||n>57)return;d=n-48}else{let n=e.charCodeAt(t+18);if(n<48||n>53)return;let r=e.charCodeAt(t+19);if(r<48||r>57)return;d=(n-48)*10+(r-48)}return r(c,a,i,l,u,d,n)}t.exports={parseHttpDate:n}})),Ae=e.c(((e,t)=>{let n=m(),{parseCacheControlHeader:r,hasInvalidCacheControlDirective:i,parseVaryHeader:a,hasVaryStar:o,isInvalidOrWildcardVaryHeader:s,isEtagUsable:c}=Oe(),{parseHttpDate:l}=ke();function u(){}let d=[200,203,204,206,300,301,308,404,405,410,414,501],f=[206],p=2147483647e3;function h(e){return e.replace(/^[\t ]+|[\t ]+$/g,``)}function g(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function _(e,t){let n=Array.isArray(t)?t:[t];for(let t=0;t<n.length;t++){let r=n[t].split(`,`);for(let t=0;t<r.length;t++)e.push(h(r[t]).toLowerCase())}}function v(e,t){if(typeof t!=`string`)return;let n,r,i;try{n=new URL(e.origin),r=new URL(e.path,n),i=new URL(t,r)}catch{return}if(i.origin===n.origin)return i.pathname+i.search}function y(e,t,r){C(e,{...t,path:r});for(let i=0;i<n.safeHTTPMethods.length;i++){let a=n.safeHTTPMethods[i];a!==t.method&&C(e,{...t,method:a,path:r})}}function b(e,t,n){if(n===void 0)return;let r=Array.isArray(n)?n:[n];for(let n=0;n<r.length;n++){let i=v(t,r[n]);i!==void 0&&y(e,t,i)}}function x(e,t,n){y(e,t,t.path),b(e,t,n.location),b(e,t,n[`content-location`])}var S=class{#e;#t;#n;#r;#i;#a;constructor({store:e,type:t,cacheByDefault:n},r,i){this.#r=e,this.#t=t,this.#n=n,this.#e=r,this.#i=i}onRequestStart(e,t){this.#a?.destroy(),this.#a=void 0,this.#i.onRequestStart?.(e,t)}onBodySent(e){this.#i.onBodySent?.(e)}onRequestSent(){this.#i.onRequestSent?.()}onRequestUpgrade(e,t,n,r){this.#i.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,i,o){let l=()=>this.#i.onResponseStart?.(e,t,i,o),u=this;if(!g(n.safeHTTPMethods,this.#e.method)&&t>=200&&t<=399)return x(this.#r,this.#e,i),l();let f=i[`cache-control`],m=f?r(f):{};if(T(this.#t,i,m))return C(this.#r,this.#e),l();let h=i[`last-modified`]&&g(d,t);if(!f&&!i.expires&&!h&&!this.#n)return t===304&&i.vary&&s(i.vary)&&C(this.#r,this.#e),l();if(!E(this.#t,this.#e.method,t,i,m,this.#e.headers))return t===304&&(f||T(this.#t,i,m))&&C(this.#r,this.#e),l();let _=Date.now(),v=Object.hasOwn(i,`age`)?O(i.age):void 0;if(v!==void 0&&v>=p)return w(t,this.#r,this.#e),l();let y=Object.hasOwn(i,`date`)?D(i.date):void 0;if(y===null)return w(t,this.#r,this.#e),l();let b=y?Math.max(0,_-y.getTime()):0,S=Math.max(b,v??0),M=typeof i.etag==`string`&&c(i.etag)||typeof i[`last-modified`]==`string`,N=k(this.#t,_,v,i,y,m,M)??this.#n,P=N===0&&M;if(N===void 0||S>=N&&!P)return(f||N!==void 0)&&w(t,this.#r,this.#e),l();let F=_-S,I=N+F;if(_>=I&&!P)return w(t,this.#r,this.#e),l();let L;if(this.#e.headers&&i.vary&&(L=a(i.vary,this.#e.headers),!L))return l();let R=F,z=A(F,_,m,I),B=j(i,m),V={statusCode:t,statusMessage:o,headers:B,vary:L,cacheControlDirectives:m,cachedAt:R,staleAt:I,deleteAt:z};if(t===304){let t=t=>{if(!t)return l();if(V.statusCode=t.statusCode,V.statusMessage=t.statusMessage,V.etag=t.etag,V.vary=L??t.vary,V.headers={...t.headers,...B},l(),this.#a=this.#r.createWriteStream(this.#e,V),!(!this.#a||!t?.body))if(typeof t.body.values==`function`){let n=t.body.values(),r=()=>{for(let t of n){let n=this.#a.write(t)===!1;if(this.#i.onResponseData?.(e,t),n)break}};this.#a.on(`error`,function(){u.#a=void 0,u.#r.delete(u.#e)}).on(`drain`,()=>{r()}).on(`close`,function(){u.#a===this&&(u.#a=void 0)}),r()}else typeof t.body.on==`function`&&(t.body.on(`data`,t=>{this.#a.write(t),this.#i.onResponseData?.(e,t)}).on(`end`,()=>{this.#a.end()}).on(`error`,()=>{this.#a=void 0,this.#r.delete(this.#e)}),this.#a.on(`error`,function(){u.#a=void 0,u.#r.delete(u.#e)}).on(`close`,function(){u.#a===this&&(u.#a=void 0)}))},n=this.#r.get(this.#e);n&&typeof n.then==`function`?n.then(t):t(n)}else{if(typeof i.etag==`string`&&c(i.etag)&&(V.etag=i.etag),this.#a=this.#r.createWriteStream(this.#e,V),!this.#a)return l();this.#a.on(`drain`,()=>e.resume()).on(`error`,function(){u.#a=void 0,u.#r.delete(u.#e)}).on(`close`,function(){u.#a===this&&(u.#a=void 0),e.resume()}),l()}}onResponseData(e,t){this.#a?.write(t)===!1&&e.pause(),this.#i.onResponseData?.(e,t)}onResponseEnd(e,t){this.#a?.end(),this.#i.onResponseEnd?.(e,t)}onResponseError(e,t){this.#a?.destroy(t),this.#a=void 0,this.#i.onResponseError?.(e,t)}};function C(e,t){try{e.delete(t)?.catch?.(u)}catch{}}function w(e,t,n){e===304&&C(t,n)}function T(e,t,n){return n[`no-store`]===!0||e===`shared`&&(n.private===!0||Object.hasOwn(t,`set-cookie`))||(t.vary?s(t.vary):!1)}function E(e,t,r,i,a,s){return!(!g(n.safeHTTPMethods,t)||r<200||g(f,r)||!g(d,r)&&!i.expires&&!a.public&&a[`max-age`]===void 0&&!(a.private&&e===`private`)&&!(a[`s-maxage`]!==void 0&&e===`shared`)||a[`no-store`]||e===`shared`&&(a.private===!0||Object.hasOwn(i,`set-cookie`))||i.vary&&o(i.vary)||s!=null&&Object.hasOwn(s,`authorization`)&&(!a.public&&!a[`s-maxage`]&&!a[`must-revalidate`]||typeof s.authorization!=`string`||Array.isArray(a[`no-cache`])&&g(a[`no-cache`],`authorization`)||Array.isArray(a.private)&&g(a.private,`authorization`)))}function D(e){let t=e;if(Array.isArray(t)){if(t.length!==1)return null;t=t[0]}return typeof t==`string`?l(t):null}function O(e){let t=e;if(Array.isArray(t)){if(t.length!==1)return p;t=t[0]}if(typeof t!=`string`||!/^[\t ]*[0-9]+[\t ]*$/.test(t))return p;let n=BigInt(t.replace(/^[\t ]+|[\t ]+$/g,``));return n>=BigInt(p/1e3)?p:Number(n)*1e3}function k(e,t,n,r,a,o,s){if(e===`shared`){if(i(o,`s-maxage`))return 0;let e=o[`s-maxage`];if(e!==void 0)return e>0?e*1e3:0}if(i(o,`max-age`))return 0;let c=o[`max-age`];if(c!==void 0)return c>0?c*1e3:0;if(Object.hasOwn(r,`expires`)){if(typeof r.expires!=`string`)return 0;let e=l(r.expires);if(!e||t>=e.getTime())return 0;if(a){if(a>=e)return 0;let t=e.getTime()-a.getTime();return n!==void 0&&n>=t?0:t}return e.getTime()-t}if(typeof r[`last-modified`]==`string`){let e=l(r[`last-modified`]);if(e)return e.getTime()>=t?void 0:(t-e.getTime())*.1}if(o.immutable)return 31536e6;if(o[`no-cache`]===!0&&s)return 0}function A(e,t,n,r){let i=-1/0,a=-1/0,o=-1/0;if(n[`stale-while-revalidate`]&&(i=r+n[`stale-while-revalidate`]*1e3),n[`stale-if-error`]&&(a=r+n[`stale-if-error`]*1e3),n.immutable&&i===-1/0&&a===-1/0&&(o=t+31536e6),i===-1/0&&a===-1/0&&o===-1/0){let n=r-e;if(n<=0)return t+864e5;let i=Math.min(Math.max(t-e,0),1e3);return r+n+i}return Math.max(r,i,a,o)}function j(e,t){let n=[`connection`,`proxy-authenticate`,`proxy-authentication-info`,`proxy-authorization`,`proxy-connection`,`te`,`transfer-encoding`,`upgrade`,`age`];e.connection&&_(n,e.connection),Array.isArray(t[`no-cache`])&&n.push(...t[`no-cache`]),Array.isArray(t.private)&&n.push(...t.private);let r;for(let t of n)Object.hasOwn(e,t)&&(r??={...e},delete r[t]);return r??e}t.exports=S})),je=e.c(((e,t)=>{let{Writable:n}=require(`node:stream`),{EventEmitter:r}=require(`node:events`),{assertCacheKey:i,assertCacheValue:a}=Oe();var o=class extends r{#e=1024;#t=104857600;#n=5242880;#r=0;#i=0;#a=new Map;#o=!1;constructor(e){if(super(),e){if(typeof e!=`object`)throw 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 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 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 TypeError(`MemoryCacheStore options.maxEntrySize must be a non-negative integer`);this.#n=e.maxEntrySize}}}get size(){return this.#r}isFull(){return this.#r>=this.#t||this.#i>=this.#e}get(e){i(e);let t=`${e.origin}:${e.path}`,n=Date.now(),r=this.#a.get(t),a=r?s(e,r,n):null;return a==null?void 0:{statusMessage:a.statusMessage,statusCode:a.statusCode,headers:a.headers,body:a.body,vary:a.vary?a.vary:void 0,etag:a.etag,cacheControlDirectives:a.cacheControlDirectives,cachedAt:a.cachedAt,staleAt:a.staleAt,deleteAt:a.deleteAt}}createWriteStream(e,t){i(e),a(t);let r=`${e.origin}:${e.path}`,o=this,c={...e,...t,body:[],size:0};return new n({write(e,t,n){typeof e==`string`&&(e=Buffer.from(e,t)),c.size+=e.byteLength,c.size>o.#n?this.destroy():c.body.push(e),n(null)},final(t){let n=o.#a.get(r);n||(n=[],o.#a.set(r,n));let i=s(e,n,Date.now());if(i){let e=n.indexOf(i);n.splice(e,1,c),o.#r-=i.size}else n.push(c),o.#i+=1;if(o.#r+=c.size,o.#r>o.#t||o.#i>o.#e){o.#o||=(o.emit(`maxSizeExceeded`,{size:o.#r,maxSize:o.#t,count:o.#i,maxCount:o.#e}),!0);for(let[e,t]of o.#a){for(let e of t.splice(0,Math.ceil(t.length/2)))o.#r-=e.size,--o.#i;t.length===0&&o.#a.delete(e)}o.#r<o.#t&&o.#i<o.#e&&(o.#o=!1)}t(null)}})}delete(e){if(typeof e!=`object`)throw TypeError(`expected key to be object, got ${typeof e}`);let t=`${e.origin}:${e.path}`;for(let e of this.#a.get(t)??[])this.#r-=e.size,--this.#i;this.#a.delete(t)}};function s(e,t,n){for(let r=0;r<t.length;r++){let i=t[r];if(i.deleteAt>n&&i.method===e.method&&c(e,i))return i}}function c(e,t){if(t.vary==null)return!0;for(let n in t.vary)if(Object.hasOwn(t.vary,n)&&!l(e.headers?.[n],t.vary[n]))return!1;return!0}function l(e,t){if(e==null&&t==null)return!0;if(e==null&&t!=null||e!=null&&t==null)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return e===t}t.exports=o})),Me=e.c(((e,t)=>{let n=require(`node:assert`);t.exports=class{#e=!1;#t;#n;#r;#i;constructor(e,t,n){if(typeof e!=`function`)throw TypeError(`callback must be a function`);this.#t=e,this.#n=t,this.#i=n}onRequestStart(e,t){this.#e=!1,this.#r=t}onRequestUpgrade(e,t,n,r){this.#n.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,r,i){if(n(this.#t!=null),this.#e=t===304||this.#i&&t>=500&&t<=504,this.#t(this.#e,this.#r,t,r),this.#t=null,this.#e)return!0;this.#n.onRequestStart?.(e,this.#r),this.#n.onResponseStart?.(e,t,r,i)}onResponseData(e,t){if(!this.#e)return this.#n.onResponseData?.(e,t)}onResponseEnd(e,t){this.#e||this.#n.onResponseEnd?.(e,t)}onResponseError(e,t){if(!this.#e){if(this.#t){if(this.#i){this.#e=!0,this.#t(!0,this.#r),this.#t=null;return}this.#t(!1),this.#t=null}if(typeof this.#n.onResponseError==`function`)this.#n.onResponseError(e,t);else throw t}}}})),Ne=e.c(((e,t)=>{let n=require(`node:assert`),{Readable:r}=require(`node:stream`),i=m(),a=Ae(),o=je(),s=Me(),{assertCacheStore:c,assertCacheMethods:l,getInterceptorOrigin:u,makeCacheKey:f,normalizeHeaders:p,parseCacheControlHeader:h,isInvalidOrWildcardVaryHeader:g,parseVaryHeader:_}=Oe(),{AbortError:v}=d(),{parseHttpDate:y}=ke();function b(e,t){if(e!==void 0){if(!Array.isArray(e))throw TypeError(`expected ${t} to be an array or undefined, got ${typeof e}`);for(let n=0;n<e.length;n++){let r=e[n];if(typeof r!=`string`&&!(r instanceof RegExp))throw TypeError(`expected ${t}[${n}] to be a string or RegExp, got ${typeof r}`)}}}let x=()=>{};function S(e){return e.replace(/^[\t ]+|[\t ]+$/g,``)}function C(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function w(e){let t=e?.pragma;if(!t)return!1;let n=Array.isArray(t)?t:[t];for(let e=0;e<n.length;e++){let t=n[e];if(typeof t!=`string`)continue;let r=t.split(`,`);for(let e=0;e<r.length;e++)if(S(r[e]).toLowerCase()===`no-cache`)return!0}return!1}function T(e,t,{headers:n={}}){return!!(t?.[`no-cache`]||e.cacheControlDirectives?.[`no-cache`]&&!Array.isArray(e.cacheControlDirectives[`no-cache`])||n[`if-modified-since`]||n[`if-none-match`])}function E(e,t){return e.cacheControlDirectives?.[`must-revalidate`]===!0||t===`shared`&&(e.cacheControlDirectives?.[`proxy-revalidate`]===!0||e.cacheControlDirectives?.[`s-maxage`]!==void 0)}function D(e,t){if(t.vary&&g(t.vary)||e===`shared`&&Object.hasOwn(t,`set-cookie`))return!0;let n=t[`cache-control`];if(!n)return!1;let r=h(n);return r[`no-store`]===!0||e===`shared`&&r.private===!0}function O(e){return e[`cache-control`]!==void 0}function k(e,t){if(!t)return!1;for(let n in t)if(e.vary==null||!Object.hasOwn(e.vary,n))return!0;return!1}function A(e,t){try{e.delete(t)?.catch?.(x)}catch{}}function j(e){let t=e?.[`last-modified`];if(typeof t==`string`&&y(t))return t}function M(e,t){let n={...e.headers,"if-modified-since":j(t.headers)??new Date(t.cachedAt).toUTCString()};if(t.etag&&(n[`if-none-match`]=t.etag),t.vary)for(let e in t.vary)t.vary[e]!=null&&(n[e]=t.vary[e]);return n}function N(e,t,n){let r=Date.now();return r>e.staleAt?!E(e,n)&&t?.[`max-stale`]?r>e.staleAt+t[`max-stale`]*1e3:!0:t?.[`min-fresh`]?e.staleAt-r<=t[`min-fresh`]*1e3:!1}function P(e,t){let n=e.cacheControlDirectives?.[`stale-while-revalidate`];return!n||E(e,t)?!1:Date.now()<=e.staleAt+n*1e3}function F(e,t,n,r,i,o){if(o?.[`only-if-cached`]){let e=!1,t={paused:!1,rawHeaders:[],rawTrailers:[],pause(){this.paused=!0},resume(){this.paused=!1},abort:n=>{e=!0,r.onResponseError?.(t,n??new v)}};try{if(r.onRequestStart?.(t,null),e||(r.onResponseStart?.(t,504,{},`Gateway Timeout`),e))return;r.onResponseEnd?.(t,{})}catch(e){typeof r.onResponseError==`function`&&r.onResponseError(t,e)}return!0}return e(i,new a(t,n,r))}function I(e,t,a,o,s,c){let l=i.isStream(a.body)?a.body:r.from(a.body??[]);n(!l.destroyed,`stream should not be destroyed`),n(!l.readableDidRead,`stream should not be readableDidRead`);let u={rawHeaders:[],rawTrailers:[],resume(){l.resume()},pause(){l.pause()},get paused(){return l.isPaused()},get aborted(){return l.destroyed},get reason(){return l.errored},abort(e){l.destroy(e??new v)}};if(l.on(`error`,function(t){if(!this.readableEnded)if(typeof e.onResponseError==`function`)e.onResponseError(u,t);else throw t}).on(`close`,function(){this.errored||e.onResponseEnd?.(u,{})}),e.onRequestStart?.(u,s),l.destroyed)return;let d={...a.headers,age:String(o)};c&&(d.warning=`110 - "response is stale"`),u.rawHeaders=i.toRawHeaders(d),e.onResponseStart?.(u,a.statusCode,d,a.statusMessage),t.method===`HEAD`?l.destroy():l.on(`data`,function(t){e.onResponseData?.(u,t)})}function L(e,t,n,r,o,c,l){if(!l)return F(e,t,n,r,o,c);if(t.type===`shared`&&Object.hasOwn(l.headers,`set-cookie`))return i.isStream(l.body)&&l.body.on(`error`,x).destroy(),A(t.store,n),F(e,t,n,r,o,c);let u=Date.now();if(u>l.deleteAt)return e(o,new a(t,n,r));let d=Math.round((u-l.cachedAt)/1e3),f=c?.[`max-age`]!==void 0&&d>=c[`max-age`],p=f||N(l,c,t.type),m=f||T(l,c,o);if(p||m){if(i.isStream(o.body)&&i.bodyLength(o.body)!==0)return e(o,new a(t,n,r));if(!m&&P(l,t.type))return I(r,o,l,d,null,!0),queueMicrotask(()=>{let r=M(o,l);e({...o,headers:r},new a(t,n,{onRequestStart(){},onRequestUpgrade(){},onResponseStart(){},onResponseData(){},onResponseEnd(){},onResponseError(){}}))}),!0;let f=!1;if(!E(l,t.type)){let e=l.cacheControlDirectives[`stale-if-error`]??c?.[`stale-if-error`];e&&(f=u<l.staleAt+e*1e3)}let h=M(o,l);return e({...o,headers:h},new s((s,c,u,f)=>{if(s){if(u===304){if(D(t.type,f))return i.isStream(l.body)&&l.body.on(`error`,x).destroy(),A(t.store,n),e(o,new a(t,n,r));if(O(f))A(t.store,n);else if(k(l,f.vary?_(f.vary,o.headers):void 0))return i.isStream(l.body)&&l.body.on(`error`,x).destroy(),A(t.store,n),e(o,new a(t,n,r))}I(r,o,l,d,c,p)}else i.isStream(l.body)&&l.body.on(`error`,x).destroy()},new a(t,n,r),f))}i.isStream(o.body)&&o.body.on(`error`,x).destroy(),I(r,o,l,d,null,!1)}t.exports=(e={})=>{let{store:t=new o,methods:n=[`GET`],cacheByDefault:r=void 0,type:s=`shared`,origins:d=void 0}=e;if(typeof e!=`object`||!e)throw TypeError(`expected type of opts to be an Object, got ${e===null?`null`:typeof e}`);if(c(t,`opts.store`),l(n,`opts.methods`),b(d,`opts.origins`),r!==void 0&&typeof r!=`number`)throw TypeError(`expected opts.cacheByDefault to be number or undefined, got ${typeof r}`);if(s!==void 0&&s!==`shared`&&s!==`private`)throw TypeError(`expected opts.type to be shared, private, or undefined, got ${typeof s}`);let m={store:t,methods:n,cacheByDefault:r,type:s},g=[];for(let e=0;e<i.safeHTTPMethods.length;e++){let t=i.safeHTTPMethods[e];C(n,t)||g.push(t)}return(e,n)=>(r,o)=>{let s=u(r,n);if(!s||C(g,r.method))return e(r,o);if(d!==void 0){let t=s.toString().toLowerCase(),n=!1;for(let e=0;e<d.length;e++){let r=d[e];if(typeof r==`string`){if(r.toLowerCase()===t){n=!0;break}}else if(r.test(t)){n=!0;break}}if(!n)return e(r,o)}r={...r,headers:p(r)};let c=r.headers?.[`cache-control`]?h(r.headers[`cache-control`]):w(r.headers)?{"no-cache":!0}:void 0;if(c?.[`no-store`])return e(r,o);let l=f(r,s);if(!C(i.safeHTTPMethods,r.method))return e(r,new a(m,l,o));let _=t.get(l);return _&&typeof _.then==`function`?_.then(t=>L(e,m,l,o,r,c,t)):L(e,m,l,o,r,c,_)}}})),Pe=e.c(((e,t)=>{let{createInflate:n,createGunzip:r,createBrotliDecompress:i,createZstdDecompress:a}=require(`node:zlib`),{pipeline:o,Transform:s}=require(`node:stream`),{InvalidArgumentError:c,ResponseExceededMaxSizeError:l}=d(),u=xe(),f={gzip:r,"x-gzip":r,br:i,deflate:n,compress:n,"x-compress":n,zstd:a},p=[204,304];function m(e){let t=0;return new s({transform(n,r,i){let a=t+n.length;if(a>e){i(new l(`Decompressed response size (${a}) exceeded maxSize (${e})`));return}t=a,i(null,n)}})}let h=!1;var g=class extends u{#e=[];#t;#n;#r;#i;#a=0;#o=!1;#s=!1;constructor(e,{skipStatusCodes:t=p,skipErrorResponses:n=!0,maxSize:r=67108864}={}){if(!Number.isSafeInteger(r)||r<1)throw new c(`maxSize must be a positive integer`);super(e),this.#n=t,this.#r=n,this.#i=r}#c(e,t){return!!(!e||t<200||this.#n.includes(t)||this.#r&&t>=400)}#l(e){let t=e.split(`,`);if(t.length>5)throw Error(`too many content-encodings in response: ${t.length}, maximum allowed is 5`);let n=[];for(let e=t.length-1;e>=0;e--){let r=t[e].trim();if(r){if(!f[r])return n.length=0,n;n.push(f[r]())}}if(n.length<2)return n;let r=[];for(let e=0;e<n.length;e++)r.push(n[e]),e<n.length-1&&r.push(m(this.#i));return r}#u(e,t){this.#o||(this.#s?this.onResponseError(e,t):e.abort(t))}#d(e,t){e.on(`readable`,()=>{if(this.#o)return;let n;for(;(n=e.read())!==null;){let e=this.#a+n.length;if(e>this.#i){this.#u(t,new l(`Decompressed response size (${e}) exceeded maxSize (${this.#i})`));return}if(this.#a=e,super.onResponseData(t,n)===!1)break}}),e.on(`error`,e=>{this.#u(t,e)})}#f(e){let t=this.#e[0];this.#d(t,e),t.on(`end`,()=>{this.#o||(this.#o=!0,this.#m(),super.onResponseEnd(e,this.#t))})}#p(e){let t=this.#e[this.#e.length-1];this.#d(t,e),o(this.#e,t=>{if(!this.#o){if(t){this.#u(e,t);return}this.#o=!0,this.#m(),super.onResponseEnd(e,this.#t)}})}#m(){this.#e.length=0}onResponseStart(e,t,n,r){let i=n[`content-encoding`];if(this.#c(i,t))return super.onResponseStart(e,t,n,r);let a=this.#l(i.toLowerCase());if(a.length===0)return this.#m(),super.onResponseStart(e,t,n,r);this.#e=a;let{"content-encoding":o,"content-length":s,...c}=n;if(e?.rawHeaders){let t=e.rawHeaders;if(Array.isArray(t)){let e=[];for(let n=0;n<t.length;n+=2){let r=t[n],i=(Buffer.isBuffer(r)?r.toString(`latin1`):`${r}`).toLowerCase();i===`content-encoding`||i===`content-length`||e.push(t[n],t[n+1])}t.splice(0,t.length,...e)}else if(typeof t==`object`)for(let e of Object.keys(t)){let n=e.toLowerCase();(n===`content-encoding`||n===`content-length`)&&delete t[e]}}return this.#e.length===1?this.#f(e):this.#p(e),super.onResponseStart(e,t,c,r)}onResponseData(e,t){if(this.#e.length>0){this.#e[0].write(t);return}super.onResponseData(e,t)}onResponseEnd(e,t){if(this.#e.length>0){this.#s=!0,this.#t=t,this.#e[0].end();return}super.onResponseEnd(e,t)}onResponseError(e,t){if(!this.#o){this.#o=!0;for(let e of this.#e)e.destroy();this.#m(),super.onResponseError(e,t)}}};function _(e={}){return h||=(process.emitWarning(`DecompressInterceptor is experimental and subject to change`,`ExperimentalWarning`),!0),t=>(n,r)=>n.method===`HEAD`?t(n,r):t(n,new g(r,e))}t.exports=_})),Fe=e.c(((e,t)=>{let{RequestAbortedError:n}=d(),r=5*1024*1024;t.exports=class{#e;#t=[];#n=r;#r=0;#i={};#a=``;#o=!1;#s=!1;#c=!1;#l=!1;#u=null;#d=null;constructor(e,t,n=r){this.#e=e,this.#d=t,this.#n=n}addWaitingHandler(e){if(this.#l||this.#c)return!1;let t=this.#f(e),n=t.controller;try{if(e.onRequestStart?.(n,null),n.aborted)return t.done=!0,!0;this.#s&&e.onResponseStart?.(n,this.#r,this.#i,this.#a)}catch{return t.done=!0,!0}return n.aborted||this.#t.push(t),!0}onRequestStart(e,t){this.#u=e,this.#e.onRequestStart?.(e,t)}onRequestUpgrade(e,t,n,r){this.#e.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,n,r){this.#s=!0,this.#r=t,this.#i=n,this.#a=r,this.#e.onResponseStart?.(e,t,n,r);for(let e of this.#t){let{handler:i,controller:a}=e;if(e.done||a.aborted){e.done=!0;continue}try{i.onResponseStart?.(a,t,n,r)}catch{}a.aborted&&(e.done=!0)}this.#g()}onResponseData(e,t){if(!(this.#o||this.#l)){this.#c=!0,this.#e.onResponseData?.(e,t);for(let e of this.#t){let{handler:n,controller:r}=e;if(e.done||r.aborted){e.done=!0;continue}if(r.paused){this.#p(e,t);continue}try{n.onResponseData?.(r,t)}catch{}r.aborted&&(e.done=!0,e.bufferedChunks=[],e.bufferedBytes=0)}this.#g()}}onResponseEnd(e,t){if(!(this.#o||this.#l)){this.#l=!0,this.#e.onResponseEnd?.(e,t);for(let e of this.#t){if(e.done||e.controller.aborted){e.done=!0;continue}if(this.#m(e),e.done||e.controller.aborted){e.done=!0;continue}if(e.controller.paused&&e.bufferedChunks.length>0){e.pendingTrailers=t;continue}try{e.handler.onResponseEnd?.(e.controller,t)}catch{}e.done=!0}this.#g(),this.#d?.()}}onResponseError(e,t){if(!this.#l){this.#o=!0,this.#l=!0,this.#e.onResponseError?.(e,t);for(let e of this.#t)this.#h(e,t);this.#t=[],this.#d?.()}}#f(e){let t={handler:e,controller:null,bufferedChunks:[],bufferedBytes:0,pendingTrailers:null,done:!1},r={aborted:!1,paused:!1,reason:null};return t.controller={resume:()=>{if(!r.aborted){if(r.paused=!1,this.#m(t),this.#l&&t.pendingTrailers&&t.bufferedChunks.length===0&&!r.paused&&!r.aborted){try{t.handler.onResponseEnd?.(t.controller,t.pendingTrailers)}catch{}t.pendingTrailers=null,t.done=!0}this.#g()}},pause:()=>{r.aborted||(r.paused=!0)},get paused(){return r.paused},get aborted(){return r.aborted},get reason(){return r.reason},abort:i=>{if(!r.aborted){r.aborted=!0,r.reason=i??null,t.done=!0,t.pendingTrailers=null,t.bufferedChunks=[],t.bufferedBytes=0;try{e.onResponseError?.(t.controller,r.reason??new n)}catch{}}}},t}#p(e,t){if(e.done||e.controller.aborted){e.done=!0,e.bufferedChunks=[],e.bufferedBytes=0;return}let r=Buffer.from(t);if(e.bufferedChunks.push(r),e.bufferedBytes+=r.length,e.bufferedBytes>this.#n){let t=new n(`Deduplicated waiting handler exceeded maxBufferSize (${this.#n} bytes) while paused`);this.#h(e,t)}}#m(e){let{handler:t,controller:n}=e;for(;!e.done&&!n.aborted&&!n.paused&&e.bufferedChunks.length>0;){let r=e.bufferedChunks.shift();e.bufferedBytes-=r.length;try{t.onResponseData?.(n,r)}catch{}if(n.aborted){e.done=!0,e.pendingTrailers=null,e.bufferedChunks=[],e.bufferedBytes=0;break}}}#h(e,t){e.done||(e.done=!0,e.pendingTrailers=null,e.bufferedChunks=[],e.bufferedBytes=0,e.controller.abort(t))}#g(){this.#t=this.#t.filter(e=>e.done===!1)}}})),Ie=e.c(((e,t)=>{let n=require(`node:diagnostics_channel`),r=m(),i=Fe(),{getInterceptorOrigin:a,normalizeHeaders:o,makeCacheKey:s,makeDeduplicationKey:c}=Oe(),l=n.channel(`undici:request:pending-requests`);t.exports=(e={})=>{let{methods:t=[`GET`],skipHeaderNames:n=[],excludeHeaderNames:u=[],maxBufferSize:d=5*1024*1024}=e;if(typeof e!=`object`||!e)throw TypeError(`expected type of opts to be an Object, got ${e===null?`null`:typeof e}`);if(!Array.isArray(t))throw TypeError(`expected opts.methods to be an array, got ${typeof t}`);for(let e of t)if(!r.safeHTTPMethods.includes(e))throw TypeError(`expected opts.methods to only contain safe HTTP methods, got ${e}`);if(!Array.isArray(n))throw TypeError(`expected opts.skipHeaderNames to be an array, got ${typeof n}`);if(!Array.isArray(u))throw TypeError(`expected opts.excludeHeaderNames to be an array, got ${typeof u}`);if(!Number.isFinite(d)||d<=0)throw TypeError(`expected opts.maxBufferSize to be a positive finite number, got ${d}`);let f=new Set(n.map(e=>e.toLowerCase())),p=new Set(u.map(e=>e.toLowerCase())),m=new Map;return(e,n)=>(r,u)=>{let h=a(r,n);if(!h||r.upgrade||t.includes(r.method)===!1)return e(r,u);if(r={...r,headers:o(r)},f.size>0){for(let t of Object.keys(r.headers))if(f.has(t.toLowerCase()))return e(r,u)}let g=c(s(r,h),p),_=m.get(g);if(_)return _.addWaitingHandler(u)?!0:e(r,u);let v=new i(u,()=>{m.delete(g),l.hasSubscribers&&l.publish({size:m.size,key:g,type:`removed`})},d);return m.set(g,v),l.hasSubscribers&&l.publish({size:m.size,key:g,type:`added`}),e(r,v)}}})),Le=e.c(((e,t)=>{let{Writable:n}=require(`node:stream`),{assertCacheKey:r,assertCacheValue:i}=Oe(),a,o=2*1e3*1e3*1e3;t.exports=class{#e=o;#t=1/0;#n;#r;#i;#a;#o;#s;#c;#l;constructor(e){if(e){if(typeof e!=`object`)throw 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 TypeError(`SqliteCacheStore options.maxEntrySize must be a non-negative integer`);if(e.maxEntrySize>o)throw 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 TypeError(`SqliteCacheStore options.maxCount must be a non-negative integer`);this.#t=e.maxCount}}a||=require(`node:sqlite`).DatabaseSync,this.#n=new a(e?.location??`:memory:`),this.#n.exec(`
|
|
10
|
+
`,`latin1`),t!==null&&r!==t){if(n[ie])throw new o;process.emitWarning(new o)}e[O].timeout&&e[O].timeoutType===3&&e[O].timeout.refresh&&e[O].timeout.refresh(),n[J]()}}destroy(e){let{socket:t,client:r,abort:i}=this;t[N]=!1,e&&(n(r[A]<=1,`pipeline should only contain this request`),i(e))}};t.exports=Se})),L=e.c(((e,t)=>{let n=require(`node:assert`),{pipeline:r}=require(`node:stream`),i=m(),{RequestContentLengthMismatchError:a,RequestAbortedError:o,SocketError:s,InformationalError:c,InvalidArgumentError:u,HeadersTimeoutError:f,BodyTimeoutError:p,ResponseExceededMaxSizeError:h}=d(),{kUrl:_,kReset:v,kClient:y,kRunning:b,kPending:x,kQueue:S,kPendingIdx:C,kRunningIdx:w,kError:T,kSocket:E,kStrictContentLength:D,kOnError:O,kMaxConcurrentStreams:k,kHTTP2Session:A,kHostAuthority:j,kResume:M,kSize:N,kHTTPContext:P,kClosed:I,kKeepAliveDefaultTimeout:L,kHeadersTimeout:R,kBodyTimeout:z,kEnableConnectProtocol:B,kRemoteSettings:V,kHTTP2Stream:ee,kHTTP2SessionState:H,kHTTP2Options:U,kMaxResponseSize:W}=l(),{channels:te}=g(),ne=Symbol(`open streams`),re=Symbol(`request stream id`),G=Symbol(`request stream`),ie=Symbol(`request stream cleanup`),K=Symbol(`request stream state`),ae=Symbol(`received goaway`),oe=Symbol(`goaway replay attempts`),q=Symbol(`refused stream retry`),J,Y;try{Y=require(`node:http2`)}catch{Y={constants:{}}}let{constants:{HTTP2_HEADER_AUTHORITY:se,HTTP2_HEADER_METHOD:X,HTTP2_HEADER_PATH:Z,HTTP2_HEADER_SCHEME:ce,HTTP2_HEADER_CONTENT_LENGTH:le,HTTP2_HEADER_EXPECT:Q,HTTP2_HEADER_STATUS:ue,HTTP2_HEADER_PROTOCOL:de,NGHTTP2_NO_ERROR:fe,NGHTTP2_REFUSED_STREAM:pe}}=Y;function me(e,t){return e[T]||(t===fe?new c(`HTTP/2: "GOAWAY" frame received with code ${t}`):new s(`HTTP/2: "GOAWAY" frame received with code ${t}`,i.getSocketInfo(e[E])))}function he(e,t){let n=e[y],r=e[E];if(n[A]===e&&(n[E]=null,n[P]=null,n[A]=null),r!=null&&r[T]==null&&(r[T]=t),!e.closed&&!e.destroyed)try{e.destroy(t)}catch{}i.destroy(r,t)}function $(e,t){let n=Number.isInteger(t)?t:2**53-1;for(let t=e[w];t<e[C];t++){let r=e[S][t];if(r!=null&&(typeof r[re]!=`number`||r[re]>n))return t}return e[C]}function ge(e){e[re]=null,e[G]=null,e[ie]=null}function _e(e,t,n){let r=e[ie],i=e[G];ge(e),r?.(i),e[re]=t.id,e[G]=t,e[ie]=n}function ve(e){let t=e[ie],n=e[G];ge(e),t?.(n)}function ye(e,t){e[S].splice(e[C]+1,0,t)}function be(e,t,n=!1){let r=e[S],i=e[w];if(i<e[C]&&r[i]===t){r[i]=null,e[w]=i+1;return}let a=r.indexOf(t,i);a===-1||a>=e[C]||(r.splice(a,1),e[C]--,n&&e[C]<e[w]&&(e[C]=e[w]))}function xe(e){let{body:t}=e;return t==null||i.isBuffer(t)||i.isBlobLike(t)}function Se(e){let t=(e[oe]??0)+1;return e[oe]=t,t<=1}function Ce(e,t=pe){if(e!=null&&!e.destroyed&&!e.closed)try{e.close(t)}catch{}}function we(e){let t=e[G];return ve(e),Te(t),t}function Te(e){e==null||e[K]==null||(e[K]=null,e.off(`close`,Xe),e.off(`close`,Ye),e[A]!=null&&Je(e),!e.destroyed&&!e.closed&&e.once(`error`,qe))}function Ee(e,t){e[E]=t;let n=e[U].sessionOptions?.initialWindowSize,r=e[U].connectionWindowSize,a=Y.connect(e[_],{createConnection:()=>t,peerMaxConcurrentStreams:e[U].maxConcurrentStreams,settings:{enablePush:!1,...n==null?null:{initialWindowSize:n}}});return e[E]=t,a[ne]=0,a[y]=e,a[E]=t,a[H]={idleTimeout:null,noStreamsTimeout:null,refed:!0,ping:{interval:e[U].pingInterval===0?null:setInterval(Re,e[U].pingInterval,a).unref()}},a[ae]=!1,a[B]=!1,a[V]=!1,r&&i.addListener(a,`connect`,Ie.bind(a,r)),i.addListener(a,`error`,ze),i.addListener(a,`frameError`,Be),i.addListener(a,`goaway`,Ve),i.addListener(a,`close`,He),i.addListener(a,`remoteSettings`,Le),Oe(a),e[A]=a,t[A]=a,i.addListener(t,`error`,We),i.addListener(t,`end`,Ge),i.addListener(t,`close`,Ue),t[I]=!1,t.on(`close`,Ke),{version:`h2`,defaultPipelining:1/0,write(t){return lt(e,t)},resume(){ke(e)},destroy(e,n){t[I]?queueMicrotask(n):t.destroy(e).on(`close`,n)},get destroyed(){return t.destroyed},busy(t){if(a[V]===!1&&e[b]>0||e[b]>=e[k])return!0;if(t!=null)if(e[b]>0){if((t.upgrade===`websocket`||t.method===`CONNECT`)&&a[V]===!1)return!0}else return(t.upgrade===`websocket`||t.method===`CONNECT`)&&a[V]===!1;return!1}}}function De(e){let t=e[H];t.refed===!1&&(t.refed=!0,e.ref())}function Oe(e){let t=e[H];t.refed===!0&&(t.refed=!1,e.unref())}function ke(e){let t=e[E],n=e[A];t?.destroyed===!1&&(e[N]===0||e[k]===0?Oe(n):De(n),e[N]===0&&n[ne]===0?Pe(n):Ne(n),e[k]===0&&e[b]===0&&e[x]>0?je(n):Ae(n))}function Ae(e){let t=e[H];t?.noStreamsTimeout!=null&&(clearTimeout(t.noStreamsTimeout),t.noStreamsTimeout=null)}function je(e){let t=e[y],n=e[H],r=t[R];!r||n.noStreamsTimeout!=null||(n.noStreamsTimeout=setTimeout(Me,r,e).unref())}function Me(e){let t=e[y],n=e[H];if(n.noStreamsTimeout=null,t[A]!==e||t[k]!==0||t[b]!==0||t[x]===0)return;let r=new f(`HTTP/2: server did not accept a new stream within ${t[R]}`),a=t[S].splice(t[C]);for(let e=0;e<a.length;e++)a[e]!=null&&i.errorRequest(t,a[e],r);e[T]=r,he(e,r)}function Ne(e){let t=e[H];t?.idleTimeout!=null&&(clearTimeout(t.idleTimeout),t.idleTimeout=null)}function Pe(e){let t=e[y];if(t[A]!==e||e.closed||e.destroyed)return;if(e[ne]!==0||t[N]!==0){Ne(e);return}let n=e[H];n.idleTimeout??=setTimeout(Fe,t[L],e).unref()}function Fe(e){let t=e[y],n=e[E],r=e[H];if(r.idleTimeout=null,t[A]!==e||e[ne]!==0||t[N]!==0||e.closed||e.destroyed)return;let a=new c(`socket idle timeout`);n[T]=a,i.destroy(n,a)}function Ie(e){try{typeof this.setLocalWindowSize==`function`&&this.setLocalWindowSize(e)}catch{}}function Le(e){if(this[y][k]=e.maxConcurrentStreams??this[y][k],this[V]===!0&&this[B]===!0&&e.enableConnectProtocol===!1){let e=new c(`HTTP/2: Server disabled extended CONNECT protocol against RFC-8441`);this[E][T]=e,this[y][O](e);return}this[B]=e.enableConnectProtocol??this[B],this[V]=!0,this[y][M]()}function Re(e){let t=e[H];if((e.closed||e.destroyed)&&t.ping.interval!=null){clearInterval(t.ping.interval),t.ping.interval=null;return}e.ping(n.bind(e));function n(e,t){let n=this[y],r=this[E];if(e!=null){let t=new c(`HTTP/2: "PING" errored - type ${e.message}`);r[T]=t,n[O](t)}else n.emit(`ping`,t)}}function ze(e){n(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`),this[E][T]=e,!this[ae]&&this[y][O](e)}function Be(e,t,n){if(n===0){if(this[ae])return;let n=new c(`HTTP/2: "frameError" received - type ${e}, code ${t}`);this[E][T]=n,this[y][O](n)}}function Ve(e,t){if(this[ae])return;this[ae]=!0;let n=me(this,e),r=this[y],a=r[C],o=$(r,t),s=[],c=[];for(let e=o;e<a;e++){let t=r[S][e];t!=null&&(c.push(we(t)),xe(t)&&Se(t)?s.push(t):i.errorRequest(r,t,n))}for(let e=0;e<c.length;e++)Ce(c[e]);if(o!==a){let e=r[S].slice(a);r[S].length=o,r[S].push(...s,...e)}r[A]===this&&(r[E]=null,r[P]=null,r[A]=null),Ne(this),Ae(this),!this.closed&&!this.destroyed&&this.close(),r[C]=o,r.emit(`disconnect`,r[_],[r],n),r[M]()}function He(){let{[y]:e,[H]:t,[E]:r}=this,a=r[T]||this[T]||new s(`closed`,i.getSocketInfo(r));if(e[A]===this&&(e[E]=null,e[P]=null,e[A]=null),Ne(this),Ae(this),t.ping.interval!=null&&(clearInterval(t.ping.interval),t.ping.interval=null),e.destroyed){n(e[x]===0);let t=e[S].splice(e[w]);for(let n=0;n<t.length;n++){let r=t[n];r!=null&&i.errorRequest(e,r,a)}}}function Ue(){let e=this[T]||new s(`closed`,i.getSocketInfo(this)),t=this[A],r=t[y];r[E]!==this&&(t[ae]||r[A]!=null&&r[A]!==t)||(r[E]=null,r[P]=null,r[A]===t&&(r[A]=null),t.destroy(e),r[C]=r[w],n(r[b]===0),r.emit(`disconnect`,r[_],[r],e),r[M]())}function We(e){n(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`),this[T]=e,!this[A]?.[ae]&&this[A]?.[y]?.[O](e)}function Ge(){i.destroy(this,new s(`other side closed`,i.getSocketInfo(this)))}function Ke(){this[I]=!0}function qe(){}function Je(e){let t=e[A];e[A]=null,--t[ne],t[ne]===0&&(Oe(t),Pe(t))}function Ye(){this.off(`error`,qe);let e=this[K];this[K]=null,tt(e,new c(`HTTP/2: stream closed before response headers`)),Je(this)}function Xe(){let e=this[K];e!=null&&(dt(this),e.pendingEnd&&!e.request.aborted&&!e.request.completed?e.request.onResponseEnd(e.trailers||{}):!e.request.aborted&&!e.request.completed&&i.errorRequest(e.client,e.request,new c(`HTTP/2: stream closed before the response was complete`)),st(e),Je(this),this[K]=null)}function Ze(e){return e!==`GET`&&e!==`HEAD`&&e!==`OPTIONS`&&e!==`TRACE`&&e!==`CONNECT`}function Qe(e){let t={};for(let n=0;n<e.length;n+=2){let r=e[n+0],i=e[n+1],a=t[r];if(r===`cookie`){a==null?t[r]=i:t[r]=Array.isArray(a)?(a.push(i),a):[a,i];continue}if(typeof i==`string`){t[r]=a?`${a}, ${i}`:i;continue}for(let e=0;e<i.length;e++)t[r]=t[r]?`${t[r]}, ${i[e]}`:i[e]}return t}function $e(e){e.off(`response`,at),e.off(`error`,nt),e.off(`end`,rt),e.off(`timeout`,it),e.off(`error`,qe)}function et(e){if(e==null)return;let t=e[K];if(t==null)return;let{request:n}=t;n[G]===e&&ge(n),$e(e),!e.destroyed&&!e.closed&&e.once(`error`,qe)}function tt(e,t){if(e==null)return;let{request:n}=e;e.responseReceived||n.aborted||n.completed||(et(e.stream),e.abort(t,!0))}function nt(){let e=this[K];typeof this.rstCode==`number`&&this.rstCode!==0?tt(e,new c(`HTTP/2: "stream error" received - code ${this.rstCode}`)):tt(e,new c(`HTTP/2: stream errored before response headers`))}function rt(){tt(this[K],new c(`HTTP/2: stream half-closed (remote)`))}function it(){let e=this[K];tt(e,new c(`HTTP/2: "stream timeout after ${e.headersTimeout}"`))}function at(e,t){let n=this,r=n[K],{request:i}=r;r.responseReceived=!0;let a=e[ue];delete e[ue],i.onRequestUpgrade(a,e,n),!(i.aborted||i.completed)&&($e(n),ge(i),st(r))}function ot(e,t){let{request:n,headersTimeout:r,session:i}=t;e[ee]=!0,e[A]=i,e[K]=t,t.stream=e,_e(n,e,et),e.once(`response`,at),e.on(`error`,nt),e.once(`end`,rt),e.on(`timeout`,it),e.once(`close`,Ye),Ne(i),++i[ne],e.setTimeout(r)}function st(e,t=!1){e.requestFinalized||(e.requestFinalized=!0,be(e.client,e.request,t),e.client[M]())}function ct(e,t,n,r,a,o){try{return n.request(a,o)}catch(a){if(a?.code===`ERR_HTTP2_INVALID_SESSION`||a?.code===`ERR_HTTP2_GOAWAY_SESSION`){let r=new s(a.message,i.getSocketInfo(n[E]));return r.cause=a,n[T]=r,he(n,r),ye(e,t),null}let o=new c(a.message,{cause:a});return n[T]=o,n[E][T]=o,n.destroy(o),i.destroy(n[E],o),r(o),null}}function lt(e,t){let r=t.headersTimeout??e[R],s=t.bodyTimeout??e[z],l=e[A],{method:d,path:f,host:p,upgrade:m,expectContinue:h,signal:g,protocol:_,headers:v}=t;if(m!=null&&m!==`websocket`)return i.errorRequest(e,t,new u(`Custom upgrade "${m}" not supported over HTTP/2`)),!1;let y=Qe(v);y[se]=p||e[j],y[X]=d;let b={abort:null,body:t.body,bytesRead:0,client:e,contentLength:null,expectsPayload:!1,maxResponseSize:e[W],request:t,headersTimeout:r,bodyTimeout:s,requestFinalized:!1,responseReceived:!1,bodySent:!1,pendingEnd:!1,trailers:null,session:l,stream:null},x=(n,r=!1)=>{if(!(t.aborted||t.completed)){if(n||=new o,i.errorRequest(e,t,n),b.stream!=null){ve(t);let a=b.stream;a.close(),a.destroyed||i.destroy(a),e[O](n),st(b,r)}i.destroy(b.body,n)}};b.abort=x;let S=null;try{t.onRequestStart(x,null)}catch(n){i.errorRequest(e,t,n)}if(t.aborted)return!1;if(m||d===`CONNECT`)return De(l),m===`websocket`?l[B]===!1?(i.errorRequest(e,t,new c(`HTTP/2: Extended CONNECT protocol not supported by server`)),Oe(l),!1):(y[X]=`CONNECT`,y[de]=`websocket`,y[Z]=f,_===`ws:`||_===`wss:`?y[ce]=_===`ws:`?`http`:`https`:y[ce]=_===`http:`?`http`:`https`,S=ct(e,t,l,x,y,{endStream:!1,signal:g}),S==null?(Oe(l),!1):(ot(S,b),!0)):(S=ct(e,t,l,x,y,{endStream:!1,signal:g}),S==null?(Oe(l),!1):(ot(S,b),!0));y[Z]=f,y[ce]=_===`http:`?`http`:`https`;let C=d===`PUT`||d===`POST`||d===`PATCH`||d===`QUERY`||d===`PROPFIND`||d===`PROPPATCH`,w=b.body;w&&typeof w.read==`function`&&w.read(0);let T=i.bodyLength(w);if(i.isFormDataLike(w)){J??=F().extractBody;let[e,t]=J(w);y[`content-type`]=t,w=e.stream,T=e.length}if(T??=t.contentLength,T===0&&!C&&(T=null),Ze(d)&&T>0&&t.contentLength!=null&&t.contentLength!==T){if(e[D])return i.errorRequest(e,t,new a),!1;process.emitWarning(new a)}if(T!=null&&(n(w||T===0,`no body must not have content length`),y[le]=`${T}`),De(l),te.sendHeaders.hasSubscribers){let e=``;for(let t in y)e+=`${t}: ${y[t]}\r\n`;te.sendHeaders.publish({request:t,headers:e,socket:l[E]})}let k=w===null||T===0;return b.body=w,b.contentLength=T,b.expectsPayload=C,h&&(y[Q]=`100-continue`),S=ct(e,t,l,x,y,{endStream:k,signal:g}),S==null?!1:(S[ee]=!0,S[K]=b,b.stream=S,Ne(l),++l[ne],r&&S.setTimeout(r),S[A]=l,S.on(`close`,Xe),_e(t,S,dt),h&&S.once(`continue`,St),S.on(`response`,mt),S.on(`headers`,pt),S.on(`end`,ht),S.on(`error`,_t),S.on(`frameError`,vt),S.on(`aborted`,yt),(r||s)&&S.on(`timeout`,bt),S.on(`trailers`,xt),h||St.call(S),!0)}function ut(e){e.off(`error`,qe),e.off(`continue`,St),e.off(`response`,mt),e.off(`headers`,pt),e.off(`end`,ht),e.off(`error`,_t),e.off(`frameError`,vt),e.off(`aborted`,yt),e.off(`timeout`,bt),e.off(`trailers`,xt),e.off(`data`,ft)}function dt(e){if(e==null)return;let t=e[K];if(t==null)return;let{request:n}=t;n[G]===e&&ge(n),!e.destroyed&&!e.closed&&(ut(e),e.once(`error`,qe))}function ft(e){let t=this,n=t[K];if(n==null)return;let{request:r,maxResponseSize:i}=n;if(!(r.aborted||r.completed)){if(i>-1&&n.bytesRead+e.length>i){n.abort(new h);return}n.bytesRead+=e.length,r.onResponseData(e)===!1&&t.pause()}}function pt(e){let t=this[K];if(t==null)return;let{request:n}=t;if(n.aborted||n.completed)return;let r=e[ue];delete e[ue],n.onResponseStart(Number(r),e,qe,``)}function mt(e){let t=this,n=t[K];if(n==null)return;let{request:r}=n;t.off(`response`,mt),n.body!=null&&!n.bodySent&&!t.writableEnded&&(t.removeListener(`continue`,St),t.end());let i=e[ue];if(delete e[ue],r.onResponseStarted(),n.responseReceived=!0,(n.headersTimeout||n.bodyTimeout)&&t.setTimeout(n.bodyTimeout),r.aborted||r.completed){dt(t);return}r.onResponseStart(Number(i),e,t.resume.bind(t),``)===!1&&t.pause(),t.on(`data`,ft)}function ht(){let e=this,t=e[K];if(t==null)return;let{request:n}=t;e.off(`end`,ht),t.responseReceived?!n.aborted&&!n.completed&&(t.pendingEnd=!0,Xe.call(e)):t.abort(new c(`HTTP/2: stream half-closed (remote)`),!0)}function gt(e,t){let{client:n,request:r}=t;return t.responseReceived||r.aborted||r.completed||r[q]||!xe(r)?!1:(r[q]=!0,we(r),t.stream=null,t.requestFinalized=!0,be(n,r),n[S].splice(n[C],0,r),n[M](),!0)}function _t(e){let t=this,n=t[K];n!=null&&(t.off(`error`,_t),typeof t.rstCode==`number`&&t.rstCode!==fe&&(e.http2ErrorCode=t.rstCode),!(t.rstCode===pe&>(t,n))&&n.abort(e))}function vt(e,t){let n=this,r=n[K];r!=null&&(n.off(`frameError`,vt),r.abort(new c(`HTTP/2: "frameError" received - type ${e}, code ${t}`)))}function yt(){this.off(`data`,ft)}function bt(){let e=this,t=e[K];if(t==null)return;e.off(`timeout`,bt);let n=t.responseReceived?new p(`HTTP/2: "stream timeout after ${t.bodyTimeout}"`):new f(`HTTP/2: "headers timeout after ${t.headersTimeout}"`);t.abort(n)}function xt(e){let t=this,n=t[K];if(n==null)return;let{request:r}=n;t.off(`trailers`,xt),t.off(`data`,ft),!(r.aborted||r.completed)&&(n.trailers=e)}function St(){let e=this,t=e[K];t.bodySent=!0;let{abort:r,body:a,client:o,contentLength:s,expectsPayload:c,request:l}=t;!a||s===0?Ct(r,e,null,o,l,o[E],s,c):i.isBuffer(a)?Ct(r,e,a,o,l,o[E],s,c):i.isBlobLike(a)?typeof a.stream==`function`?Et(r,e,a.stream(),o,l,o[E],s,c):Tt(r,e,a,o,l,o[E],s,c):i.isStream(a)?wt(r,o[E],c,e,a,o,l,s):i.isIterable(a)?Et(r,e,a,o,l,o[E],s,c):n(!1)}function Ct(e,t,r,a,o,s,c,l){try{r!=null&&i.isBuffer(r)&&(n(c===r.byteLength,`buffer body must have content length`),t.cork(),t.write(r),t.uncork(),t.end(),o.onBodySent(r)),l||(s[v]=!0),o.onRequestSent(),a[M]()}catch(t){e(t)}}function wt(e,t,a,o,s,c,l,u){n(u!==0||c[b]===0,`stream body cannot be pipelined`);let d=r(s,o,n=>{n?(i.destroy(d,n),e(n)):(i.removeAllListeners(d),l.onRequestSent(),a||(t[v]=!0),c[M]())});i.addListener(d,`data`,f);function f(e){l.onBodySent(e)}}async function Tt(e,t,n,r,i,o,s,c){try{if(s!=null&&s!==n.size)throw new a;let e=Buffer.from(await n.arrayBuffer());t.cork(),t.write(e),t.uncork(),t.end(),i.onBodySent(e),i.onRequestSent(),c||(o[v]=!0),r[M]()}catch(t){e(t)}}async function Et(e,t,r,i,a,o,s,c){n(s!==0||i[b]===0,`iterator body cannot be pipelined`);let l=null;function u(){if(l){let e=l;l=null,e()}}let d=()=>new Promise((e,t)=>{n(l===null),o[T]?t(o[T]):l=e});t.on(`close`,u).on(`drain`,u);try{for await(let e of r){if(o[T])throw o[T];let n=t.write(e);a.onBodySent(e),n||await d()}t.end(),a.onRequestSent(),c||(o[v]=!0),i[M]()}catch(t){e(t)}finally{t.off(`close`,u).off(`drain`,u)}}t.exports=Ee})),R=e.c(((e,t)=>{let n=require(`node:assert`),r=require(`node:net`),i=require(`node:http`),a=m(),{ClientStats:o}=h(),{channels:s}=g(),c=_(),u=y(),{InvalidArgumentError:f,InformationalError:p,ClientDestroyedError:v}=d(),x=b(),{kUrl:S,kServerName:C,kClient:w,kBusy:T,kConnect:E,kResuming:D,kRunning:O,kPending:k,kSize:A,kQueue:j,kConnected:M,kConnecting:N,kNeedDrain:P,kKeepAliveDefaultTimeout:F,kHostHeader:R,kPendingIdx:z,kRunningIdx:B,kError:V,kPipelining:ee,kKeepAliveTimeoutValue:H,kMaxHeadersSize:U,kKeepAliveMaxTimeout:W,kKeepAliveTimeoutThreshold:te,kHeadersTimeout:ne,kBodyTimeout:re,kStrictContentLength:G,kConnector:ie,kMaxRequests:K,kCounter:ae,kClose:oe,kDestroy:q,kDispatch:J,kLocalAddress:Y,kMaxResponseSize:se,kOnError:X,kHTTPContext:Z,kMaxConcurrentStreams:ce,kHostAuthority:le,kResume:Q,kHTTP2Options:ue}=l(),de=I(),fe=L(),pe=Symbol(`kClosedResolve`),me=i&&i.maxHeaderSize&&Number.isInteger(i.maxHeaderSize)&&i.maxHeaderSize>0?()=>i.maxHeaderSize:()=>{throw new f(`http module not available or http.maxHeaderSize invalid`)},he=()=>{};function $(e){return e[ee]??e[Z]?.defaultPipelining??1}let ge=!1;function _e(e){ge!==!0&&(process.emitWarning(`Use h2Options.${e} instead. ${e} for H2 will be deprecated in future major.`,{code:`UNDICI-H2-OPTIONS`}),ge=!0)}function ve(e){return e[Z]?.version===`h2`?e[ce]:$(e)}var ye=class extends u{constructor(e,{maxHeaderSize:t,headersTimeout:n,socketTimeout:i,requestTimeout:o,connectTimeout:s,bodyTimeout:c,idleTimeout:l,keepAlive:u,keepAliveTimeout:d,maxKeepAliveTimeout:p,keepAliveMaxTimeout:m,keepAliveTimeoutThreshold:h,socketPath:g,pipelining:_,tls:v,strictContentLength:y,maxCachedSessions:b,connect:w,maxRequestsPerClient:T,localAddress:E,maxResponseSize:O,autoSelectFamily:k,autoSelectFamilyAttemptTimeout:A,maxConcurrentStreams:M,allowH2:N,useH2c:I,initialWindowSize:L,connectionWindowSize:V,pingInterval:ae,webSocket:oe,h2Options:q,eventSource:J}={}){if(u!==void 0)throw new f(`unsupported keepAlive, use pipelining=0 instead`);if(i!==void 0)throw new f(`unsupported socketTimeout, use headersTimeout & bodyTimeout instead`);if(o!==void 0)throw new f(`unsupported requestTimeout, use headersTimeout & bodyTimeout instead`);if(l!==void 0)throw new f(`unsupported idleTimeout, use keepAliveTimeout instead`);if(p!==void 0)throw new f(`unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead`);if(t!=null){if(!Number.isInteger(t)||t<1)throw new f(`invalid maxHeaderSize`)}else t=me();if(g!=null&&typeof g!=`string`)throw new f(`invalid socketPath`);if(s!=null&&(!Number.isFinite(s)||s<0))throw new f(`invalid connectTimeout`);if(d!=null&&(!Number.isFinite(d)||d<=0))throw new f(`invalid keepAliveTimeout`);if(m!=null&&(!Number.isFinite(m)||m<=0))throw new f(`invalid keepAliveMaxTimeout`);if(h!=null&&!Number.isFinite(h))throw new f(`invalid keepAliveTimeoutThreshold`);if(n!=null&&(!Number.isInteger(n)||n<0))throw new f(`headersTimeout must be a positive integer or zero`);if(c!=null&&(!Number.isInteger(c)||c<0))throw new f(`bodyTimeout must be a positive integer or zero`);if(w!=null&&typeof w!=`function`&&typeof w!=`object`)throw new f(`connect must be a function or an object`);if(T!=null&&(!Number.isInteger(T)||T<0))throw new f(`maxRequestsPerClient must be a positive number`);if(E!=null&&(typeof E!=`string`||r.isIP(E)===0))throw new f(`localAddress must be valid string IP address`);if(O!=null&&(!Number.isInteger(O)||O<-1))throw new f(`maxResponseSize must be a positive number`);if(A!=null&&(!Number.isInteger(A)||A<-1))throw new f(`autoSelectFamilyAttemptTimeout must be a positive number`);if(N!=null&&typeof N!=`boolean`)throw new f(`allowH2 must be a valid boolean value`);if(N!==!1)if(q!=null){if(q.useH2c!=null&&typeof q.useH2c!=`boolean`)throw new f(`h2Options.useH2c must be a valid boolean value`);if(q.settings?.initialWindowSize!=null&&(!Number.isInteger(q.settings.initialWindowSize)||q.settings.initialWindowSize<1))throw new f(`h2Options.settings.initialWindowSize must be a positive integer, greater than 0`);if(q.maxConcurrentStreams!=null&&(!Number.isInteger(q.connectionWindowSize)||q.maxConcurrentStreams<1))throw new f(`h2Options.maxConcurrentStreams must be a positive integer, greater than 0`);if(q.connectionWindowSize!=null&&(!Number.isInteger(q.connectionWindowSize)||q.connectionWindowSize<1))throw new f(`h2Options.connectionWindowSize must be a positive integer, greater than 0`);if(q.pingInterval!=null&&(typeof q.pingInterval!=`number`||!Number.isInteger(q.pingInterval)||q.pingInterval<0))throw new f(`h2Options.pingInterval must be a positive integer, greater or equal to 0`)}else{if(I!=null&&typeof I!=`boolean`)throw _e(`useH2c`),new f(`useH2c must be a valid boolean value`);if(M!=null&&(typeof M!=`number`||M<1))throw _e(`maxConcurrentStreams`),new f(`maxConcurrentStreams must be a positive integer, greater than 0`);if(L!=null&&(!Number.isInteger(L)||L<1))throw _e(`initialWindowSize`),new f(`initialWindowSize must be a positive integer, greater than 0`);if(V!=null&&(!Number.isInteger(V)||V<1))throw _e(`connectionWindowSize`),new f(`connectionWindowSize must be a positive integer, greater than 0`);if(ae!=null&&(typeof ae!=`number`||!Number.isInteger(ae)||ae<0))throw _e(`pingInterval`),new f(`pingInterval must be a positive integer, greater or equal to 0`)}if(super({webSocket:oe,eventSource:J}),typeof w!=`function`)w=x({...v,maxCachedSessions:b,allowH2:N,socketPath:g,useH2c:q?.useH2c??I,timeout:s,...typeof k==`boolean`?{autoSelectFamily:k,autoSelectFamilyAttemptTimeout:A}:void 0,...w});else{let e=w;w=(t,n)=>e({...t,...g==null?null:{socketPath:g},...N==null?null:{allowH2:N}},n)}this[S]=a.parseOrigin(e),this[le]=`${this[S].hostname}${this[S].port?`:${this[S].port}`:``}`,this[ie]=w,this[ee]=_??1,this[U]=t,this[F]=d??4e3,this[W]=m??6e5,this[te]=h??2e3,this[H]=this[F],this[C]=null,this[Y]=E??null,this[D]=0,this[P]=0,this[R]=`host: ${this[le]}\r\n`,this[re]=c??3e5,this[ne]=n??3e5,this[G]=y??!0,this[K]=T,this[pe]=null,this[se]=O>-1?O:-1,this[Z]=null,this[ue]={pingInterval:q?.pingInterval??ae??6e4,connectionWindowSize:q?.connectionWindowSize??V??524288,maxConcurrentStreams:q?.maxConcurrentStreams??M??100,sessionOptions:{initialWindowSize:q?.initialWindowSize??L??262144}},this[j]=[],this[B]=0,this[z]=0,this[Q]=e=>we(this,e),this[X]=e=>be(this,e)}get pipelining(){return this[ee]}set pipelining(e){this[ee]=e,this[Q](!0)}get stats(){return new o(this)}get[k](){return this[j].length-this[z]}get[O](){return this[z]-this[B]}get[A](){return this[j].length-this[B]}get[M](){return!!this[Z]&&!this[N]&&!this[Z].destroyed}get[T](){let e=this[Z]?.version===`h2`;return!!(this[Z]?.busy(null)||this[A]>=(ve(this)||1)||this[k]>0&&!e)}[E](e){xe(this),this.once(`connect`,e)}[J](e,t){let n=new c(this[S].origin,e,t);return this[j].push(n),this[D]||(a.bodyLength(n.body)==null&&a.isIterable(n.body)?(this[D]=1,queueMicrotask(()=>we(this))):this[Q](!0)),this[D]&&this[P]!==2&&this[T]&&(this[P]=2),this[P]<2}[oe](){return new Promise(e=>{this[A]?this[pe]=e:e(null)})}[q](e){return new Promise(t=>{let n=this[j].splice(this[z]);for(let t=0;t<n.length;t++){let r=n[t];r!=null&&a.errorRequest(this,r,e)}let r=()=>{this[pe]&&(this[pe](),this[pe]=null),t(null)};this[Z]?(this[Z].destroy(e,r),this[Z]=null):queueMicrotask(r),this[Q]()})}};function be(e,t){if(e[O]===0&&t.code!==`UND_ERR_INFO`&&t.code!==`UND_ERR_SOCKET`){n(e[z]===e[B]);let r=e[j].splice(e[B]);for(let n=0;n<r.length;n++){let i=r[n];i!=null&&a.errorRequest(e,i,t)}n(e[A]===0)}}function xe(e){n(!e[N]),n(!e[Z]);let{host:t,hostname:i,protocol:o,port:c}=e[S];if(i[0]===`[`){let e=i.indexOf(`]`);n(e!==-1);let t=i.substring(1,e);n(r.isIPv6(t)),i=t}e[N]=!0,s.beforeConnect.hasSubscribers&&s.beforeConnect.publish({connectParams:{host:t,hostname:i,protocol:o,port:c,version:e[Z]?.version,servername:e[C],localAddress:e[Y]},connector:e[ie]});try{e[ie]({host:t,hostname:i,protocol:o,port:c,servername:e[C],localAddress:e[Y]},(r,l)=>{if(r){Se(e,r,{host:t,hostname:i,protocol:o,port:c}),e[Q]();return}if(e.destroyed){a.destroy(l.on(`error`,he),new v),e[Q]();return}n(l);try{e[Z]=l.alpnProtocol===`h2`?fe(e,l):de(e,l)}catch(n){l.destroy().on(`error`,he),Se(e,n,{host:t,hostname:i,protocol:o,port:c}),e[Q]();return}e[N]=!1,l[ae]=0,l[K]=e[K],l[w]=e,l[V]=null,s.connected.hasSubscribers&&s.connected.publish({connectParams:{host:t,hostname:i,protocol:o,port:c,version:e[Z]?.version,servername:e[C],localAddress:e[Y]},connector:e[ie],socket:l}),e.emit(`connect`,e[S],[e]),e[Q]()})}catch(n){Se(e,n,{host:t,hostname:i,protocol:o,port:c}),e[Q]()}}function Se(e,t,{host:n,hostname:r,protocol:i,port:o}){if(!e.destroyed){if(e[N]=!1,s.connectError.hasSubscribers&&s.connectError.publish({connectParams:{host:n,hostname:r,protocol:i,port:o,version:e[Z]?.version,servername:e[C],localAddress:e[Y]},connector:e[ie],error:t}),t.code===`ERR_TLS_CERT_ALTNAME_INVALID`){let n=e[j].splice(e[B],e[O]);e[z]=e[B];for(let r=0;r<n.length;r++)a.errorRequest(e,n[r],t);for(;e[k]>0&&e[j][e[z]].servername===e[C];){let n=e[j].splice(e[z],1)[0];a.errorRequest(e,n,t)}}else be(e,t);e.emit(`connectionError`,e[S],[e],t)}}function Ce(e){e[P]=0,e.emit(`drain`,e[S],[e])}function we(e,t){e[D]!==2&&(e[D]=2,Te(e,t),e[D]=0,e[B]>256&&(e[j].splice(0,e[B]),e[z]-=e[B],e[B]=0))}function Te(e,t){for(;;){if(e.destroyed){n(e[k]===0);return}if(e[pe]&&!e[A]){e[pe](),e[pe]=null;return}if(e[Z]&&e[Z].resume(),e[T])e[P]=2;else if(e[P]===2){t?(e[P]=1,queueMicrotask(()=>Ce(e))):Ce(e);continue}if(e[k]===0||e[O]>=(ve(e)||1))return;let r=e[j][e[z]];if(r===null)return;if(e[S].protocol===`https:`&&e[C]!==r.servername){if(e[O]>0)return;e[C]=r.servername,e[Z]?.destroy(new p(`servername changed`),()=>{e[Z]=null,we(e)})}if(e[N])return;if(!e[Z]){e[C]=r.servername,xe(e);return}if(e[Z].destroyed||e[Z].busy(r))return;!r.aborted&&e[Z].write(r)?e[z]++:e[j].splice(e[z],1)}}t.exports=ye})),z=e.c(((e,t)=>{let n=2048,r=n-1;var i=class{bottom=0;top=0;list=Array(n).fill(void 0);next=null;isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&r)===this.bottom}push(e){this.list[this.top]=e,this.top=this.top+1&r}shift(){let e=this.list[this.bottom];return e===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&r,e)}};t.exports=class{constructor(){this.head=this.tail=new i}isEmpty(){return this.head.isEmpty()}push(e){this.head.isFull()&&(this.head=this.head.next=new i),this.head.push(e)}shift(){let e=this.tail,t=e.shift();return e.isEmpty()&&e.next!==null&&(this.tail=e.next,e.next=null),t}}})),B=e.c(((e,t)=>{let{PoolStats:n}=h(),r=y(),i=z(),{kConnected:a,kSize:o,kRunning:s,kPending:c,kQueued:u,kBusy:d,kFree:f,kUrl:p,kClose:m,kDestroy:g,kDispatch:_}=l(),v=Symbol(`clients`),b=Symbol(`needDrain`),x=Symbol(`queue`),S=Symbol(`closed resolve`),C=Symbol(`onDrain`),w=Symbol(`onConnect`),T=Symbol(`onDisconnect`),E=Symbol(`onConnectionError`),D=Symbol(`get dispatcher`),O=Symbol(`has dispatcher`),k=Symbol(`add client`),A=Symbol(`remove client`);t.exports={PoolBase:class extends r{[x]=new i;[u]=0;[v]=[];[b]=!1;[C](e,t,n){let r=this[x],i=!1;for(;!i;){let t=r.shift();if(!t)break;this[u]--,i=!e.dispatch(t.opts,t.handler)}if(e[b]=i,!i&&this[b]&&(this[b]=!1,this.emit(`drain`,t,[this,...n])),this[S]&&r.isEmpty()){let e=[];for(let t=0;t<this[v].length;t++){let n=this[v][t];n.destroyed||e.push(n.close())}return Promise.all(e).then(this[S])}}[w]=(e,t)=>{this.emit(`connect`,e,[this,...t])};[T]=(e,t,n)=>{this.emit(`disconnect`,e,[this,...t],n)};[E]=(e,t,n)=>{this.emit(`connectionError`,e,[this,...t],n)};get[d](){return this[b]}get[a](){let e=0;for(let{[a]:t}of this[v])e+=t;return e}get[f](){let e=0;for(let{[a]:t,[b]:n}of this[v])e+=t&&!n;return e}get[c](){let e=this[u];for(let{[c]:t}of this[v])e+=t;return e}get[s](){let e=0;for(let{[s]:t}of this[v])e+=t;return e}get[o](){let e=this[u];for(let{[o]:t}of this[v])e+=t;return e}get stats(){return new n(this)}[m](){if(this[x].isEmpty()){let e=[];for(let t=0;t<this[v].length;t++){let n=this[v][t];n.destroyed||e.push(n.close())}return Promise.all(e)}else return new Promise(e=>{this[S]=e})}[g](e){for(;;){let t=this[x].shift();if(!t)break;t.handler.onResponseError(null,e)}let t=Array(this[v].length);for(let n=0;n<this[v].length;n++)t[n]=this[v][n].destroy(e);return Promise.all(t)}[_](e,t){let n=this[D]();return n?n.dispatch(e,t)||(n[b]=!0,this[b]=!this[O]()):(this[b]=!0,this[x].push({opts:e,handler:t}),this[u]++),!this[b]}[O](){for(let e=0;e<this[v].length;e++){let t=this[v][e];if(!t[b]&&t.closed!==!0&&t.destroyed!==!0)return!0}return!1}[k](e){return e.on(`drain`,this[C].bind(this,e)).on(`connect`,this[w]).on(`disconnect`,this[T]).on(`connectionError`,this[E]),this[v].push(e),this[b]&&queueMicrotask(()=>{this[b]&&this[C](e,e[p],[e,this])}),this}[A](e){let t=this[v].indexOf(e);t!==-1&&this[v].splice(t,1),e.close(()=>{}),this[b]=!this[v].some(e=>!e[b]&&e.closed!==!0&&e.destroyed!==!0)}},kClients:v,kNeedDrain:b,kAddClient:k,kRemoveClient:A,kGetDispatcher:D,kHasDispatcher:O}})),V=e.c(((e,t)=>{let{PoolBase:n,kClients:r,kNeedDrain:i,kAddClient:a,kGetDispatcher:o,kHasDispatcher:s,kRemoveClient:c}=B(),u=R(),{InvalidArgumentError:f}=d(),p=m(),{kUrl:h}=l(),g=b(),_=Symbol(`options`),v=Symbol(`connections`),y=Symbol(`factory`);function x(e,t){return new u(e,t)}t.exports=class extends n{constructor(e,{connections:t,factory:n=x,connect:i,connectTimeout:a,tls:o,maxCachedSessions:s,socketPath:c,autoSelectFamily:l,autoSelectFamilyAttemptTimeout:u,allowH2:d,useH2c:m,clientTtl:b,...S}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new f(`invalid connections`);if(typeof n!=`function`)throw new f(`factory must be a function.`);if(i!=null&&typeof i!=`function`&&typeof i!=`object`)throw new f(`connect must be a function or an object`);typeof i!=`function`&&(i=g({...o,maxCachedSessions:s,allowH2:d,useH2c:m,socketPath:c,timeout:a,...typeof l==`boolean`?{autoSelectFamily:l,autoSelectFamilyAttemptTimeout:u}:void 0,...i})),super(S),this[v]=t||null,this[h]=p.parseOrigin(e),this[_]={...p.deepClone(S),connect:i,allowH2:d,useH2c:m,clientTtl:b,socketPath:c},this[y]=n,this.on(`connect`,(e,t)=>{if(b!=null&&b>0)for(let e of t)Object.assign(e,{ttl:Date.now()})}),this.on(`connectionError`,(e,t,n)=>{for(let e of t){let t=this[r].indexOf(e);t!==-1&&this[r].splice(t,1)}})}[o](){let e=this[_].clientTtl;for(let t=0;t<this[r].length;t++){let n=this[r][t];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e)this[c](n),t--;else if(!n[i])return n}if(!this[v]||this[r].length<this[v]){let e=this[y](this[h],this[_]);return this[a](e),e}}[s](){let e=this[_].clientTtl;for(let t=0;t<this[r].length;t++){let n=this[r][t];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e)this[c](n),t--;else if(!n[i])return!0}if(!this[v]||this[r].length<this[v]){let e=this[y](this[h],this[_]);return this[a](e),!0}return!1}}})),ee=e.c(((e,t)=>{let{BalancedPoolMissingUpstreamError:n,InvalidArgumentError:r}=d(),{PoolBase:i,kClients:a,kNeedDrain:o,kAddClient:s,kRemoveClient:c,kGetDispatcher:u}=B(),f=V(),{kOriginless:p,kUrl:h}=l(),g=m(),_=Symbol(`factory`),v=Symbol(`options`),y=Symbol(`kGreatestCommonDivisor`),b=Symbol(`kCurrentWeight`),x=Symbol(`kIndex`),S=Symbol(`kWeight`),C=Symbol(`kMaxWeightPerServer`),w=Symbol(`kErrorPenalty`);function T(e,t){if(e===0)return t;for(;t!==0;){let n=t;t=e%t,e=n}return e}function E(e,t){return new f(e,t)}t.exports=class extends i{constructor(e=[],{factory:t=E,connect:n,tls:i,...a}={}){if(typeof t!=`function`)throw new r(`factory must be a function.`);super(a),this[p]=!0,n&&typeof n!=`function`&&(n={...n}),i&&typeof i!=`function`&&(i={...i}),this[v]={...g.deepClone(a),connect:n,tls:i},this[x]=-1,this[b]=0,this[C]=this[v].maxWeightPerServer||100,this[w]=this[v].errorPenalty||15,Array.isArray(e)||(e=[e]),this[_]=t;for(let t of e)this.addUpstream(t);this._updateBalancedPoolStats()}addUpstream(e){let t=g.parseOrigin(e).origin;if(this[a].find(e=>e[h].origin===t&&e.closed!==!0&&e.destroyed!==!0))return this;let n=this[_](t,this[v]);this[s](n),n.on(`connect`,()=>{n[S]=Math.min(this[C],n[S]+this[w])}),n.on(`connectionError`,()=>{n[S]=Math.max(1,n[S]-this[w]),this._updateBalancedPoolStats()}),n.on(`disconnect`,(...e)=>{let t=e[2];t&&t.code===`UND_ERR_SOCKET`&&(n[S]=Math.max(1,n[S]-this[w]),this._updateBalancedPoolStats())});for(let e of this[a])e[S]=this[C];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let e=0;for(let t=0;t<this[a].length;t++)e=T(this[a][t][S],e);this[y]=e}removeUpstream(e){let t=g.parseOrigin(e).origin,n=this[a].find(e=>e[h].origin===t&&e.closed!==!0&&e.destroyed!==!0);return n&&this[c](n),this}getUpstream(e){let t=g.parseOrigin(e).origin;return this[a].find(e=>e[h].origin===t&&e.closed!==!0&&e.destroyed!==!0)}get upstreams(){return this[a].filter(e=>e.closed!==!0&&e.destroyed!==!0).map(e=>e[h].origin)}[u](){if(this[a].length===0)throw new n;let e=0,t=-1;for(;e++<this[a].length;){this[x]=(this[x]+1)%this[a].length;let e=this[a][this[x]];if(this[x]===0&&(this[b]=this[b]-this[y],this[b]<=0&&(this[b]=this[C])),!(e[o]||e.closed===!0||e.destroyed===!0)&&((t===-1||e[S]>this[a][t][S])&&(t=this[x]),e[S]>=this[b]))return e}if(t!==-1)return this[b]=this[a][t][S],this[x]=t,this[a][t]}}})),H=e.c(((e,t)=>{let{PoolBase:n,kClients:r,kNeedDrain:i,kAddClient:a,kGetDispatcher:o,kHasDispatcher:s,kRemoveClient:c}=B(),u=R(),{InvalidArgumentError:f}=d(),p=m(),{kUrl:h}=l(),g=b(),_=Symbol(`options`),v=Symbol(`connections`),y=Symbol(`factory`),x=Symbol(`index`);function S(e,t){return new u(e,t)}t.exports=class extends n{constructor(e,{connections:t,factory:n=S,connect:i,connectTimeout:a,tls:o,maxCachedSessions:s,socketPath:c,autoSelectFamily:l,autoSelectFamilyAttemptTimeout:u,allowH2:d,clientTtl:m,...b}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new f(`invalid connections`);if(typeof n!=`function`)throw new f(`factory must be a function.`);if(i!=null&&typeof i!=`function`&&typeof i!=`object`)throw new f(`connect must be a function or an object`);typeof i!=`function`&&(i=g({...o,maxCachedSessions:s,allowH2:d,socketPath:c,timeout:a,...typeof l==`boolean`?{autoSelectFamily:l,autoSelectFamilyAttemptTimeout:u}:void 0,...i})),super(b),this[v]=t||null,this[h]=p.parseOrigin(e),this[_]={...p.deepClone(b),connect:i,allowH2:d,clientTtl:m,socketPath:c},this[y]=n,this[x]=-1,this.on(`connect`,(e,t)=>{if(m!=null&&m>0)for(let e of t)Object.assign(e,{ttl:Date.now()})}),this.on(`connectionError`,(e,t,n)=>{for(let e of t){let t=this[r].indexOf(e);t!==-1&&this[r].splice(t,1)}})}[o](){let e=this[_].clientTtl;if(this[r].length===0){let e=this[y](this[h],this[_]);return this[a](e),e}let t=0;for(;t<this[r].length;){this[x]=(this[x]+1)%this[r].length;let n=this[r][this[x]];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e){this[c](n),this[x]--;continue}if(!n[i])return n;t++}if(!this[v]||this[r].length<this[v]){let e=this[y](this[h],this[_]);return this[a](e),e}}[s](){let e=this[_].clientTtl;for(let t=0;t<this[r].length;t++){let n=this[r][t];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e)this[c](n),t<=this[x]&&this[x]--,t--;else if(!n[i])return!0}if(!this[v]||this[r].length<this[v]){let e=this[y](this[h],this[_]);return this[a](e),!0}return!1}}})),U=e.c(((e,t)=>{let{InvalidArgumentError:n,MaxOriginsReachedError:r}=d(),{kBusy:i,kClients:a,kConnected:o,kRunning:s,kPending:c,kClose:u,kDestroy:f,kDispatch:p,kUrl:h}=l(),g=y(),_=V(),v=R(),b=m(),x=Symbol(`onConnect`),S=Symbol(`onDisconnect`),C=Symbol(`onConnectionError`),w=Symbol(`onDrain`),T=Symbol(`factory`),E=Symbol(`options`),D=Symbol(`origins`);function O(e,t){return t&&t.connections===1?new v(e,t):new _(e,t)}t.exports=class extends g{constructor({factory:e=O,maxOrigins:t=1/0,connect:r,...i}={}){if(typeof e!=`function`)throw new n(`factory must be a function.`);if(r!=null&&typeof r!=`function`&&typeof r!=`object`)throw new n(`connect must be a function or an object`);if(typeof t!=`number`||Number.isNaN(t)||t<=0)throw new n(`maxOrigins must be a number greater than 0`);super(i),r&&typeof r!=`function`&&(r={...r}),this[E]={...b.deepClone(i),maxOrigins:t,connect:r},this[T]=e,this[a]=new Map,this[D]=new Set,this[w]=(e,t)=>{this.emit(`drain`,e,[this,...t])},this[x]=(e,t)=>{this.emit(`connect`,e,[this,...t])},this[S]=(e,t,n)=>{this.emit(`disconnect`,e,[this,...t],n)},this[C]=(e,t,n)=>{this.emit(`connectionError`,e,[this,...t],n)}}get[s](){let e=0;for(let t of this[a].values())e+=t[s];return e}[p](e,t){let s;if(e.origin&&(typeof e.origin==`string`||e.origin instanceof URL))s=String(e.origin);else throw new n(`opts.origin must be a non-empty string or URL.`);let l=e.allowH2??this[E].allowH2,u=l===!1?`${s}#http1-only`:s;if(this[D].size>=this[E].maxOrigins&&!this[D].has(s))throw new r;let d=this[a].get(u);if(!d){d=this[T](e.origin,l===!1?{...this[E],allowH2:!1}:this[E]);let t=()=>{if(this[a].get(u)!==d||d[o]>0||d[i]||d[c]>0)return;this[a].delete(u),d.destroyed||d.close();let e=!1;for(let t of this[a].keys())if(t===s||t===`${s}#http1-only`){e=!0;break}e||this[D].delete(s)};d.on(`drain`,this[w]).on(`connect`,this[x]).on(`disconnect`,(e,n,r)=>{t(),this[S](e,n,r)}).on(`connectionError`,(e,n,r)=>{t(),this[C](e,n,r)}),this[a].set(u,d),this[D].add(s)}return d.dispatch(e,t)}[u](){let e=[];for(let t of this[a].values())e.push(t.close());return this[a].clear(),Promise.all(e)}[f](e){let t=[];for(let n of this[a].values())t.push(n.destroy(e));return this[a].clear(),Promise.all(t)}get stats(){let e={};for(let t of this[a].values())t.stats&&(e[t[h].origin]=t.stats);return e}}})),W=e.c(((e,t)=>{let n=v(),{InvalidArgumentError:r}=d(),{toRawHeaders:i}=m(),{kOriginless:a,kUrl:o}=l();var s=class{#e;constructor(e){this.#e=e}onRequestStart(e,t){this.#e.onConnect?.(t=>e.abort(t),t)}onRequestUpgrade(e,t,n,r){let a=e?.rawHeaders??i(n??{});this.#e.onUpgrade?.(t,a,r)}onResponseStart(e,t,n,r){let a=e?.rawHeaders??i(n??{});this.#e.onHeaders?.(t,a,()=>e.resume(),r)===!1&&e.pause()}onResponseData(e,t){this.#e.onData?.(t)===!1&&e.pause()}onResponseEnd(e,t){let n=e?.rawTrailers??i(t??{});this.#e.onComplete?.(n)}onResponseError(e,t){if(!this.#e.onError)throw t;this.#e.onError(t)}onBodySent(e){this.#e.onBodySent?.(e)}onRequestSent(){this.#e.onRequestSent?.()}onResponseStarted(){this.#e.onResponseStarted?.()}};t.exports=class e extends n{#e;constructor(e){if(super(),!e||typeof e.dispatch!=`function`)throw new r(`Argument dispatcher must implement dispatch`);this.#e=e,this[o]=e[o],this[a]=e[a]}static wrapHandler(e){if(!e||typeof e!=`object`)throw new r(`handler must be an object`);return typeof e.onRequestStart==`function`?e:new s(e)}dispatch(t,n){return t.allowH2!==!1&&(t={...t,allowH2:!1}),this.#e.dispatch(t,e.wrapHandler(n))}close(...e){return this.#e.close(...e)}destroy(...e){return this.#e.destroy(...e)}}})),te=e.c(((e,t)=>{let{Buffer:n}=require(`node:buffer`),r=require(`node:net`),{InvalidArgumentError:i}=d();function a(e){if(r.isIPv4(e)){let t=e.split(`.`).map(Number);return{type:1,buffer:n.from(t)}}if(r.isIPv6(e))return{type:4,buffer:o(e)};let t=n.from(e,`utf8`);if(t.length>255)throw new i(`Domain name too long (max 255 bytes)`);return{type:3,buffer:n.concat([n.from([t.length]),t])}}function o(e){let t=n.alloc(16),i=e;if(e.includes(`.`)){let t=e.lastIndexOf(`:`),n=e.slice(t+1);if(r.isIPv4(n)){let r=n.split(`.`).map(Number),a=(r[0]<<8|r[1]).toString(16),o=(r[2]<<8|r[3]).toString(16);i=`${e.slice(0,t)}:${a}:${o}`}}let a=i.indexOf(`::`);if(a!==-1){let e=i.slice(0,a),n=i.slice(a+2),r=e===``?[]:e.split(`:`),o=n===``?[]:n.split(`:`),s=0;for(let e of r)t.writeUInt16BE(parseInt(e,16),s),s+=2;s=16-o.length*2;for(let e of o)t.writeUInt16BE(parseInt(e,16),s),s+=2}else{let e=i.split(`:`);for(let n=0;n<e.length;n++)t.writeUInt16BE(parseInt(e[n],16),n*2)}return t}function s(e,t,r){let i=n.allocUnsafe(2);return i.writeUInt16BE(r,0),n.concat([n.from([e]),t,i])}function c(e,t=0){if(e.length<t+1)throw new i(`Buffer too small to contain address type`);let n=e[t],r,a=t+1;switch(n){case 1:if(e.length<a+6)throw new i(`Buffer too small for IPv4 address`);r=Array.from(e.subarray(a,a+4)).join(`.`),a+=4;break;case 3:{if(e.length<a+1)throw new i(`Buffer too small for domain length`);let t=e[a];if(a+=1,e.length<a+t+2)throw new i(`Buffer too small for domain address`);r=e.subarray(a,a+t).toString(`utf8`),a+=t;break}case 4:{if(e.length<a+18)throw new i(`Buffer too small for IPv6 address`);let t=[];for(let n=0;n<8;n++){let r=e.readUInt16BE(a+n*2);t.push(r.toString(16))}r=t.join(`:`),a+=16;break}default:throw new i(`Invalid address type: ${n}`)}if(e.length<a+2)throw new i(`Buffer too small for port`);let o=e.readUInt16BE(a);return a+=2,{address:r,port:o,bytesRead:a-t}}function l(e){let t={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`}[e]||`Unknown SOCKS5 error code: ${e}`,n=Error(t);return n.code=`SOCKS5_${e}`,n}t.exports={parseAddress:a,parseIPv6:o,buildAddressBuffer:s,parseResponseAddress:c,createReplyError:l}})),ne=e.c(((e,t)=>{let{EventEmitter:n}=require(`node:events`),{Buffer:r}=require(`node:buffer`),{InvalidArgumentError:i,Socks5ProxyError:a}=d(),{debuglog:o}=require(`node:util`),{parseAddress:s}=te(),c=o(`undici:socks5`),l=r.alloc(0),u={NO_AUTH:0,GSSAPI:1,USERNAME_PASSWORD:2,NO_ACCEPTABLE:255},f={CONNECT:1,BIND:2,UDP_ASSOCIATE:3},p={IPV4:1,DOMAIN:3,IPV6:4},m={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},h={INITIAL:`initial`,HANDSHAKING:`handshaking`,AUTHENTICATING:`authenticating`,AUTHENTICATED:`authenticated`,CONNECTING:`connecting`,CONNECTED:`connected`,ERROR:`error`,CLOSED:`closed`};t.exports={Socks5Client:class extends n{constructor(e,t={}){if(super(),!e)throw new i(`socket is required`);this.socket=e,this.options=t,this.state=h.INITIAL,this.buffer=l,this.onSocketData=this.onData.bind(this),this.onSocketError=this.onError.bind(this),this.onSocketClose=this.onClose.bind(this),this.authMethods=[],t.username&&t.password&&this.authMethods.push(u.USERNAME_PASSWORD),this.authMethods.push(u.NO_AUTH),this.socket.on(`data`,this.onSocketData),this.socket.on(`error`,this.onSocketError),this.socket.on(`close`,this.onSocketClose)}onData(e){c(`received data`,e.length,`bytes in state`,this.state),this.buffer=r.concat([this.buffer,e]);try{switch(this.state){case h.HANDSHAKING:this.handleHandshakeResponse();break;case h.AUTHENTICATING:this.handleAuthResponse();break;case h.CONNECTING:this.handleConnectResponse();break}}catch(e){this.onError(e)}}onError(e){c(`socket error`,e),this.state=h.ERROR,this.emit(`error`,e),this.destroy()}onClose(){c(`socket closed`),this.state=h.CLOSED,this.emit(`close`)}destroy(){this.socket&&!this.socket.destroyed&&this.socket.destroy()}markAuthenticated(){this.state=h.AUTHENTICATED,this.emit(`authenticated`)}handshake(){if(this.state!==h.INITIAL)throw new i(`Handshake already started`);c(`starting handshake with`,this.authMethods.length,`auth methods`),this.state=h.HANDSHAKING;let e=r.alloc(2+this.authMethods.length);e[0]=5,e[1]=this.authMethods.length,this.authMethods.forEach((t,n)=>{e[2+n]=t}),this.socket.write(e)}handleHandshakeResponse(){if(this.buffer.length<2)return;let e=this.buffer[0],t=this.buffer[1];if(e!==5)throw new a(`Invalid SOCKS version: ${e}`,`UND_ERR_SOCKS5_VERSION`);if(t===u.NO_ACCEPTABLE)throw new a(`No acceptable authentication method`,`UND_ERR_SOCKS5_AUTH_REJECTED`);if(this.buffer=this.buffer.subarray(2),c(`server selected auth method`,t),t===u.NO_AUTH)this.markAuthenticated();else if(t===u.USERNAME_PASSWORD)this.state=h.AUTHENTICATING,this.sendAuthRequest();else throw new a(`Unsupported authentication method: ${t}`,`UND_ERR_SOCKS5_AUTH_METHOD`)}sendAuthRequest(){let{username:e,password:t}=this.options;if(!e||!t)throw new i(`Username and password required for authentication`);c(`sending username/password auth`);let n=r.from(e),a=r.from(t);if(n.length>255||a.length>255)throw new i(`Username or password too long`);let o=r.alloc(3+n.length+a.length);o[0]=1,o[1]=n.length,n.copy(o,2),o[2+n.length]=a.length,a.copy(o,3+n.length),this.socket.write(o)}handleAuthResponse(){if(this.buffer.length<2)return;let e=this.buffer[0],t=this.buffer[1];if(e!==1)throw new a(`Invalid auth sub-negotiation version: ${e}`,`UND_ERR_SOCKS5_AUTH_VERSION`);if(t!==0)throw new a(`Authentication failed`,`UND_ERR_SOCKS5_AUTH_FAILED`);this.buffer=this.buffer.subarray(2),c(`authentication successful`),this.markAuthenticated()}connect(e,t){if(this.state===h.CONNECTING||this.state===h.CONNECTED)throw new i(`Connection already in progress`);if(this.state!==h.AUTHENTICATED)throw new i(`Client must be authenticated before CONNECT`);c(`connecting to`,e,t),this.state=h.CONNECTING;let n=this.buildConnectRequest(f.CONNECT,e,t);this.socket.write(n)}buildConnectRequest(e,t,n){let{type:i,buffer:a}=s(t),o=r.alloc(4+a.length+2);return o[0]=5,o[1]=e,o[2]=0,o[3]=i,a.copy(o,4),o.writeUInt16BE(n,4+a.length),o}handleConnectResponse(){if(this.buffer.length<4)return;let e=this.buffer[0],t=this.buffer[1],n=this.buffer[3];if(e!==5)throw new a(`Invalid SOCKS version in reply: ${e}`,`UND_ERR_SOCKS5_REPLY_VERSION`);let r=4;if(n===p.IPV4)r+=6;else if(n===p.DOMAIN){if(this.buffer.length<5)return;r+=1+this.buffer[4]+2}else if(n===p.IPV6)r+=18;else throw new a(`Invalid address type in reply: ${n}`,`UND_ERR_SOCKS5_ADDR_TYPE`);if(this.buffer.length<r)return;if(t!==m.SUCCEEDED)throw new a(`SOCKS5 connection failed: ${this.getReplyErrorMessage(t)}`,`UND_ERR_SOCKS5_REPLY_${t}`);let i,o=4;if(n===p.IPV4)i=Array.from(this.buffer.subarray(o,o+4)).join(`.`),o+=4;else if(n===p.DOMAIN){let e=this.buffer[o];o+=1,i=this.buffer.subarray(o,o+e).toString(),o+=e}else if(n===p.IPV6){let e=[];for(let t=0;t<8;t++){let n=this.buffer.readUInt16BE(o+t*2);e.push(n.toString(16))}i=e.join(`:`),o+=16}let s=this.buffer.readUInt16BE(o);this.buffer=l,this.state=h.CONNECTED,this.socket.removeListener(`data`,this.onSocketData),c(`connected, bound address:`,i,`port:`,s),this.emit(`connected`,{address:i,port:s})}getReplyErrorMessage(e){switch(e){case m.GENERAL_FAILURE:return`General SOCKS server failure`;case m.CONNECTION_NOT_ALLOWED:return`Connection not allowed by ruleset`;case m.NETWORK_UNREACHABLE:return`Network unreachable`;case m.HOST_UNREACHABLE:return`Host unreachable`;case m.CONNECTION_REFUSED:return`Connection refused`;case m.TTL_EXPIRED:return`TTL expired`;case m.COMMAND_NOT_SUPPORTED:return`Command not supported`;case m.ADDRESS_TYPE_NOT_SUPPORTED:return`Address type not supported`;default:return`Unknown error code: ${e}`}}},AUTH_METHODS:u,COMMANDS:f,ADDRESS_TYPES:p,REPLY_CODES:m,STATES:h}})),re=e.c(((e,t)=>{let{URL:n}=require(`node:url`),r,i=y(),{ConnectTimeoutError:a,InvalidArgumentError:o}=d(),{Socks5Client:s,STATES:c}=ne(),{kBusy:u,kConnected:f,kDispatch:p,kClose:h,kDestroy:g}=l(),_=V(),v=b(),{setupConnectTimeout:x}=m(),{debuglog:S}=require(`node:util`),C=S(`undici:socks5-proxy`),w=Symbol(`proxy url`),T=Symbol(`proxy headers`),E=Symbol(`proxy auth`),D=Symbol(`proxy protocol`),O=Symbol(`pools`),k=Symbol(`connector`),A=Symbol(`connect timeout`),j=Symbol(`request tls settings`),M=Symbol(`request tls timeout`);function N(e,t,n){return new a(`Connect Timeout Error (attempted address: ${e}:${t}, timeout: ${n}ms)`)}let P=!1;t.exports=class extends i{constructor(e,t={}){if(super(t),P||=(process.emitWarning(`SOCKS5 proxy support is experimental and subject to change`,`ExperimentalWarning`),!0),!e)throw new o(`Proxy URL is mandatory`);let r=typeof e==`string`?new n(e):e;if(r.protocol!==`socks5:`&&r.protocol!==`socks:`)throw new o(`Proxy URL must use socks5:// or socks:// protocol`);this[w]=r,this[T]=t.headers||{},this[D]=t.proxyTls?`https:`:`http:`;let i=t.connectTimeout??5e3;if(!Number.isFinite(i)||i<0)throw new o(`invalid connectTimeout`);this[A]=i;let{timeout:a,...s}=t.requestTls||{},c=a??i;if(!Number.isFinite(c)||c<0)throw new o(`invalid requestTls.timeout`);this[j]=s,this[M]=c,this[E]={username:t.username||(r.username?decodeURIComponent(r.username):null),password:t.password||(r.password?decodeURIComponent(r.password):null)};let l=t.proxyTls?.timeout??i;if(!Number.isFinite(l)||l<0)throw new o(`invalid proxyTls.timeout`);this[k]=t.connect||v({...t.proxyTls,timeout:l,servername:t.proxyTls?.servername||r.hostname}),this[O]=new Map}async createSocks5Connection(e,t){let n=this[w].hostname,r=parseInt(this[w].port)||1080;C(`creating SOCKS5 connection to`,n,r);let i=Promise.withResolvers();this[k]({hostname:n,host:n,port:r,protocol:this[D]},(e,t)=>{e?i.reject(e):i.resolve(t)});let a=await i.promise,o=new s(a,this[E]);o.on(`error`,e=>{C(`SOCKS5 error:`,e),a.destroy()}),await o.handshake();let l=Promise.withResolvers(),u=this[A]===0?null:setTimeout(()=>{d(),o.destroy(),l.reject(N(n,r,this[A]))},this[A]),d=()=>{clearTimeout(u),o.removeListener(`authenticated`,f),o.removeListener(`error`,p)},f=()=>{d(),l.resolve()},p=e=>{d(),l.reject(e)};o.state===c.AUTHENTICATED?(clearTimeout(u),l.resolve()):(o.once(`authenticated`,f),o.once(`error`,p)),await l.promise,await o.connect(e,t);let m=Promise.withResolvers(),h=this[A]===0?null:setTimeout(()=>{g(),o.destroy(),m.reject(N(e,t,this[A]))},this[A]),g=()=>{clearTimeout(h),o.removeListener(`connected`,_),o.removeListener(`error`,v)},_=n=>{C(`SOCKS5 tunnel established to`,e,t,`via`,n),g(),m.resolve()},v=e=>{g(),m.reject(e)};return o.once(`connected`,_),o.once(`error`,v),await m.promise,a}[p](e,t){let{origin:i}=e;C(`dispatching request to`,i,`via SOCKS5`);try{let a=String(i),o=this[O].get(a);if(!o||o.destroyed||o.closed){o=new _(i,{pipelining:e.pipelining,connections:e.connections,connect:async(e,t)=>{try{let e=new n(i),a=e.hostname,o=parseInt(e.port)||(e.protocol===`https:`?443:80);C(`establishing SOCKS5 connection to`,a,o);let s=await this.createSocks5Connection(a,o),c=s;if(e.protocol===`https:`){r||=require(`node:tls`),C(`upgrading to TLS`),c=r.connect({...this[j],socket:s,servername:this[j]?.servername||a});let e=Promise.withResolvers(),t=()=>{queueMicrotask(l),c.removeListener(`secureConnect`,n),c.removeListener(`error`,i)},n=()=>{t(),e.resolve()},i=n=>{t(),e.reject(n)},l=x(new WeakRef(c),{timeout:this[M],hostname:a,port:o});c.once(`secureConnect`,n),c.once(`error`,i),await e.promise}t(null,c)}catch(e){C(`SOCKS5 connection error:`,e),t(e)}}}),this[O].set(a,o);let t=()=>{this[O].get(a)!==o||o[f]>0||o[u]||(this[O].delete(a),o.destroyed||o.close())};o.on(`disconnect`,t),o.on(`connectionError`,t)}return o[p](e,t)}catch(e){if(C(`dispatch error:`,e),typeof t.onResponseError==`function`)return t.onResponseError(null,e),!1;if(typeof t.onError==`function`)return t.onError(e),!1;throw e}}async[h](){let e=[];for(let t of this[O].values())e.push(t.close());this[O].clear(),await Promise.all(e)}async[g](e){let t=[];for(let n of this[O].values())t.push(n.destroy(e));this[O].clear(),await Promise.all(t)}}})),G=e.c(((e,t)=>{let{kProxy:n,kClose:r,kDestroy:i,kDispatch:a}=l(),o=U(),s=V(),c=y(),{InvalidArgumentError:u,RequestAbortedError:f,SecureProxyConnectionError:p,ProxyConnectionError:h}=d(),_=b(),v=R(),{channels:x}=g(),S=re(),{hasSafeIterator:C}=m(),w=Symbol(`proxy agent`),T=Symbol(`proxy client`),E=Symbol(`proxy headers`),D=Symbol(`request tls settings`),O=Symbol(`proxy tls settings`),k=Symbol(`connect endpoint function`),A=Symbol(`connect endpoint function (http/1.1 only)`),j=Symbol(`tunnel proxy`);function M(e){return e===`https:`?443:80}function N(e,t){return new s(e,t)}let P=()=>{};function F(e,t){return t.connections===1?new v(e,t):new s(e,t)}function I(e,t){return t===!0||e!==`http:`}var L=class extends c{#e;#t;constructor(e,{headers:t={},connect:n,factory:r,proxyServername:i}){if(!e)throw new u(`Proxy URL is mandatory`);super(),this[E]=t,this.#t=i,r?this.#e=r(e,{connect:n}):this.#e=new v(e,{connect:n})}[a](e,t){let n=t.onResponseStart;t.onResponseStart=function(e,r,i,a){if(r===407){typeof t.onResponseError==`function`&&t.onResponseError(e,new u(`Proxy Authentication Required (407)`));return}n&&n.call(this,e,r,i,a)};let{origin:r,path:i=`/`,headers:o={}}=e;if(e.path=r+i,!(`host`in o)&&!(`Host`in o)){let{host:e}=new URL(r);o.host=e}return e.headers={...this[E],...o},this.#t!=null&&(e.servername=this.#t),this.#e[a](e,t)}[r](){return this.#e.close()}[i](e){return this.#e.destroy(e)}},z=class extends c{constructor(e){if(!e||typeof e==`object`&&!(e instanceof URL)&&!e.uri)throw new u(`Proxy uri is mandatory`);let{clientFactory:t=N}=e;if(typeof t!=`function`)throw new u(`Proxy opts.clientFactory must be a function.`);let{proxyTunnel:r,connectTimeout:i}=e;super(e);let a=this.#e(e),{href:s,origin:c,port:l,protocol:d,username:m,password:g,hostname:v}=a;if(this[n]={uri:s,protocol:d},this[D]=e.requestTls,this[O]=e.proxyTls,this[E]=e.headers||{},this[j]=r,e.auth&&e.token)throw new u(`opts.auth cannot be used in combination with opts.token`);e.auth?this[E][`proxy-authorization`]=`Basic ${e.auth}`:e.token?this[E][`proxy-authorization`]=e.token:m&&g?this[E][`proxy-authorization`]=`Basic ${Buffer.from(`${decodeURIComponent(m)}:${decodeURIComponent(g)}`).toString(`base64`)}`:m&&(this[E][`proxy-authorization`]=`Basic ${Buffer.from(`${decodeURIComponent(m)}:`).toString(`base64`)}`);let y=_({timeout:i,...e.proxyTls}),b=_({timeout:i,...e.proxyTls,allowH2:!1});this[k]=_({timeout:i,...e.requestTls}),this[A]=_({timeout:i,...e.requestTls,allowH2:!1});let C=e.factory||F,R=(t,r)=>{let{protocol:a}=new URL(t);if(this[n].protocol===`socks5:`||this[n].protocol===`socks:`)return new S(this[n].uri,{headers:this[E],connect:y,factory:C,username:e.username||m,password:e.password||g,connectTimeout:i,proxyTls:e.proxyTls,requestTls:e.requestTls});if(!I(a,this[j])){let e=this[n].protocol===`https:`?(e,t)=>b(e,(e,n)=>{e&&e.code===`ERR_TLS_CERT_ALTNAME_INVALID`?t(new p(e)):t(e,n)}):b;return new L(this[n].uri,{headers:this[E],connect:e,factory:C,proxyServername:this[n].protocol===`https:`?this[O]?.servername||v:void 0})}return C(t,r)};d===`socks5:`||d===`socks:`?this[T]=null:this[T]=t(a,{connect:y}),this[w]=new o({...e,factory:R,connect:async(e,t)=>{if(!this[T]){t(new u(`Cannot establish tunnel connection without a proxy client`));return}let n=e.host;e.port||(n+=`:${M(e.protocol)}`);try{let r={origin:c,port:l,path:n,signal:e.signal,headers:{...this[E],host:e.host,...e.connections==null||e.connections>0?{"proxy-connection":`keep-alive`}:{}},servername:this[O]?.servername||v},{socket:i,statusCode:a}=await this[T].connect(r);if(a!==200){i.on(`error`,P).destroy(),t(new f(`Proxy response (${a}) !== 200 when HTTP Tunneling`));return}if(x.proxyConnected.hasSubscribers&&x.proxyConnected.publish({socket:i,connectParams:r}),e.protocol!==`https:`){t(null,i);return}let o;o=this[D]?this[D].servername:e.servername,(e.allowH2===!1?this[A]:this[k])({...e,servername:o,httpSocket:i},t)}catch(e){e.code===`ERR_TLS_CERT_ALTNAME_INVALID`?t(new p(e)):e.code===`UND_ERR_SOCKET`?t(new h(e)):t(e)}}})}dispatch(e,t){let n=B(e.headers);if(ee(n),n&&!(`host`in n)&&!(`Host`in n)){let{host:t}=new URL(e.origin);n.host=t}return this[w].dispatch({...e,headers:n},t)}#e(e){return typeof e==`string`?new URL(e):e instanceof URL?e:new URL(e.uri)}[r](){let e=[this[w].close()];return this[T]&&e.push(this[T].close()),Promise.all(e)}[i](){let e=[this[w].destroy()];return this[T]&&e.push(this[T].destroy()),Promise.all(e)}};function B(e){if(Array.isArray(e)){let t={};for(let n=0;n<e.length;n+=2)H(e[n])&&W(),t[e[n]]=e[n+1];return t}if(e&&typeof e==`object`&&C(e)){let t={};for(let[n,r]of e)t[n]=r;return t}return e}function ee(e){for(let t in e)H(t)&&W()}function H(e){return e.length===19&&e.toLowerCase()===`proxy-authorization`}function W(){throw new u(`Proxy-Authorization should be sent in ProxyAgent constructor`)}t.exports=z})),ie=e.c(((e,t)=>{let n=y(),{kClose:r,kDestroy:i,kClosed:a,kDestroyed:o,kDispatch:s,kNoProxyAgent:c,kHttpProxyAgent:u,kHttpsProxyAgent:d}=l(),f=G(),p=U(),m={"http:":80,"https:":443};t.exports=class extends n{#e=null;#t=null;#n=null;constructor(e={}){super(e),this.#n=e;let{httpProxy:t,httpsProxy:n,noProxy:r,...i}=e;this[c]=new p(i);let a=t??process.env.http_proxy??process.env.HTTP_PROXY;a?this[u]=new f({...i,uri:a}):this[u]=this[c];let o=n??process.env.https_proxy??process.env.HTTPS_PROXY;o?this[d]=new f({...i,uri:o}):this[d]=this[u],this.#a()}[s](e,t){let n=new URL(e.origin);return this.#r(n).dispatch(e,t)}[r](){return Promise.all([this[c].close(),!this[u][a]&&this[u].close(),!this[d][a]&&this[d].close()])}[i](e){return Promise.all([this[c].destroy(e),!this[u][o]&&this[u].destroy(e),!this[d][o]&&this[d].destroy(e)])}#r(e){let{protocol:t,host:n,port:r}=e;return n=n.replace(/:\d*$/,``).replace(/^\[(.+)\]$/,`$1`).toLowerCase(),n.length>1&&n.charCodeAt(n.length-1)===46&&(n=n.slice(0,-1)),r=Number.parseInt(r,10)||m[t]||0,this.#i(n,r)?t===`https:`?this[d]:this[u]:this[c]}#i(e,t){if(this.#o&&this.#a(),this.#t.length===0)return!0;if(this.#e===`*`)return!1;for(let n=0;n<this.#t.length;n++){let r=this.#t[n];if(!(r.port&&r.port!==t)&&(e===r.hostname||e.slice(-(r.hostname.length+1))===`.${r.hostname}`))return!1}return!0}#a(){let e=this.#n.noProxy??this.#s,t=e.split(/[,\s]/),n=[];for(let e=0;e<t.length;e++){let r=t[e];if(!r)continue;let i,a,o=r.match(/^\[(.+)\]:(\d+)$/);if(o)i=o[1],a=Number.parseInt(o[2],10);else{let e=r.replace(/^\[(.+)\]$/,`$1`),t=(e.match(/:/g)||[]).length===1&&e.match(/^(.+):(\d+)$/);i=t?t[1]:e,a=t?Number.parseInt(t[2],10):0}n.push({hostname:i.replace(/^\*?\./,``).replace(/^(.+)\.$/,`$1`).toLowerCase(),port:a})}this.#e=e,this.#t=n}get#o(){return this.#n.noProxy===void 0?this.#e!==this.#s:!1}get#s(){return process.env.no_proxy??process.env.NO_PROXY??``}}})),K=e.c(((e,t)=>{let n=require(`node:assert`),{kRetryHandlerDefaultRetry:r}=l(),{RequestRetryError:i,RequestAbortedError:a}=d(),{isDisturbed:o,parseRangeHeader:s,wrapRequestBody:c}=m();function u(e){let t=new Date(e).getTime();return isNaN(t)?null:t-Date.now()}function f(e,t,n,r){let a=e[`content-length`];if(a==null||!Number.isFinite(t.start)||!Number.isFinite(t.end))return;let o=Number(a),s=t.end-t.start+1;if(!Number.isFinite(o)||o!==s)throw new i(`Content-Length mismatch`,n,{headers:e,data:{count:r}})}var p=class{#e;constructor(e){this.#e=e,this.target=null}pause(){this.target?.pause()}resume(){this.target?.resume()}abort(e){this.target?.abort(e),this.#e(e)}get paused(){return this.target?.paused??!1}get aborted(){return this.target?.aborted??!1}get reason(){return this.target?.reason??null}get rawHeaders(){return this.target?.rawHeaders??null}set rawHeaders(e){this.target&&(this.target.rawHeaders=e)}get rawTrailers(){return this.target?.rawTrailers??null}set rawTrailers(e){this.target&&(this.target.rawTrailers=e)}};t.exports=class e{constructor(t,{dispatch:n,handler:i}){let{retryOptions:a,...o}=t,{retry:s,maxRetries:l,maxTimeout:u,minTimeout:d,timeoutFactor:f,methods:m,errorCodes:h,retryAfter:g,statusCodes:_,throwOnError:v}=a??{};this.error=null,this.dispatch=n,this.handler=i,this.opts={...o,body:c(t.body)},this.retryOpts={throwOnError:v??!0,retry:s??e[r],retryAfter:g??!0,maxTimeout:u??30*1e3,minTimeout:d??500,timeoutFactor:f??2,maxRetries:l??5,methods:m??[`GET`,`HEAD`,`OPTIONS`,`PUT`,`DELETE`,`TRACE`,`QUERY`],statusCodes:_??[500,502,503,504,429],errorCodes:h??[`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,this.statusCode=null,this.headers=null,this.controllerProxy=new p(e=>this.#e(e)),this.retryPending=!1,this.retryTimer=null,this.aborted=!1}onResponseStartWithRetry(e,t,n,r,i){if(this.retryOpts.throwOnError){this.retryOpts.statusCodes.includes(t)===!1?this.headersSent?this.handler.onResponseError?.(this.controllerProxy,i):(this.headersSent=!0,this.checkpointResponseEnd(n),this.handler.onResponseStart?.(this.controllerProxy,t,n,r)):this.error=i;return}if(o(this.opts.body)){this.headersSent=!0,this.checkpointResponseEnd(n),this.handler.onResponseStart?.(this.controllerProxy,t,n,r);return}function a(a){if(!this.aborted){if(this.retryPending=!1,this.retryTimer=null,a){this.headersSent?this.handler.onResponseError?.(this.controllerProxy,a):(this.headersSent=!0,this.checkpointResponseEnd(n),this.handler.onResponseStart?.(this.controllerProxy,t,n,r)),e.resume();return}this.error=i,e.resume()}}e.pause(),this.retryPending=!0,this.retryTimer=this.retryOpts.retry(i,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},a.bind(this))??null}checkpointResponseEnd(e){if(this.end==null&&this.opts.method!==`HEAD`){let t=e[`content-length`];this.end=t==null?null:Number(t)-1,n(this.end==null||Number.isFinite(this.end),`invalid content-length`),this.resume=this.end!=null}}onRequestStart(e,t){this.controllerProxy.target=e,this.headersSent||this.handler.onRequestStart?.(this.controllerProxy,t)}onBodySent(e){this.handler.onBodySent?.(e)}onRequestSent(){this.handler.onRequestSent?.()}onRequestUpgrade(e,t,n,r){this.handler.onRequestUpgrade?.(this.controllerProxy,t,n,r)}static[r](e,{state:t,opts:n},r){let{statusCode:i,code:a,headers:o}=e,{method:s,retryOptions:c}=n,{maxRetries:l,minTimeout:d,maxTimeout:f,timeoutFactor:p,statusCodes:m,errorCodes:h,methods:g,retryAfter:_}=c,{counter:v}=t;if(a&&a!==`UND_ERR_REQ_RETRY`&&!h.includes(a)){r(e);return}if(Array.isArray(g)&&!g.includes(s)){r(e);return}if(i!=null&&Array.isArray(m)&&!m.includes(i)){r(e);return}if(v>l){r(e);return}let y=_===!1?void 0:o?.[`retry-after`];y&&=(y=Number(y),Number.isNaN(y)?u(o[`retry-after`]):y*1e3);let b=y===0?0:y>0?Math.min(y,f):Math.min(d*p**(v-1),f);return setTimeout(()=>r(null),b)}onResponseStart(e,t,r,a){if(t<200){this.handler.onResponseStart?.(this.controllerProxy,t,r,a);return}if(this.error=null,this.retryCount+=1,this.statusCode=t,this.headers=r,this.headersSent){if(t!==206&&(this.start>0||t!==200))throw new i(`server does not support the range header and the payload was partially consumed`,t,{headers:r,data:{count:this.retryCount}});let e=s(r[`content-range`]);if(!e)throw new i(`Content-Range mismatch`,t,{headers:r,data:{count:this.retryCount}});if(this.etag!=null&&this.etag!==r.etag)throw new i(`ETag mismatch`,t,{headers:r,data:{count:this.retryCount}});f(r,e,t,this.retryCount);let{start:n,size:a,end:o=a?a-1:null}=e;if(this.start!==n||this.end!=null&&this.end!==o)throw new i(`Content-Range mismatch`,t,{headers:r,data:{count:this.retryCount}});return}if(t>=300){let n=new i(`Request failed`,t,{headers:r,data:{count:this.retryCount}});this.onResponseStartWithRetry(e,t,r,a,n);return}if(this.end==null){if(t===206){let e=s(r[`content-range`]);if(e==null||e.end==null){this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,t,r,a);return}f(r,e,t,this.retryCount);let{start:i,size:o,end:c=o?o-1:null}=e;n(i!=null&&Number.isFinite(i),`content-range mismatch`),n(c!=null&&Number.isFinite(c),`invalid content-length`),this.start=i,this.end=c}if(this.end==null&&this.opts.method!==`HEAD`){let e=r[`content-length`];this.end=e==null?null:Number(e)-1}n(Number.isFinite(this.start)),n(this.end==null||Number.isFinite(this.end),`invalid content-length`),this.resume=!0,this.etag=r.etag==null?null:r.etag,this.etag!=null&&this.etag[0]===`W`&&this.etag[1]===`/`&&(this.etag=null),this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,t,r,a)}else throw new i(`Request failed`,t,{headers:r,data:{count:this.retryCount}})}onResponseData(e,t){this.error||(this.start+=t.length,this.handler.onResponseData?.(this.controllerProxy,t))}onResponseEnd(e,t){if(this.error&&this.retryOpts.throwOnError)throw this.error;if(!this.error){if(this.end!=null&&Number.isFinite(this.end)&&this.start!==this.end+1)throw new i(`Content-Range mismatch`,this.statusCode,{headers:this.headers,data:{count:this.retryCount}});return this.retryCount=0,this.handler.onResponseEnd?.(this.controllerProxy,t)}this.retry()}retry(){if(this.start!==0){let e={range:`bytes=${this.start}-${this.end??``}`};this.etag!=null&&(e[`if-match`]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...e}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(e){this.handler.onResponseError?.(this.controllerProxy,e)}}onResponseError(e,t){if(this.aborted)return;if(e?.aborted||o(this.opts.body)||this.headersSent&&!this.resume){this.handler.onResponseError?.(this.controllerProxy,t);return}function n(e){if(!this.aborted){if(this.retryPending=!1,this.retryTimer=null,!e){this.retry();return}this.handler?.onResponseError?.(this.controllerProxy,e)}}this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryPending=!0,this.retryTimer=this.retryOpts.retry(t,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},n.bind(this))??null}#e(e){this.retryPending&&(this.aborted=!0,this.retryPending=!1,clearTimeout(this.retryTimer),this.retryTimer=null,this.handler.onResponseError?.(this.controllerProxy,e??new a))}}})),ae=e.c(((e,t)=>{let n=v(),r=K(),{kOriginless:i,kUrl:a}=l();t.exports=class extends n{#e=null;#t=null;constructor(e,t={}){super(t),this.#e=e,this.#t=t,this[a]=e[a],this[i]=e[i]}dispatch(e,t){let n=new r({...e,retryOptions:this.#t},{dispatch:this.#e.dispatch.bind(this.#e),handler:t});return this.#e.dispatch(e,n)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}}})),oe=e.c(((e,t)=>{let{InvalidArgumentError:n}=d(),r=R();t.exports=class extends r{constructor(e,t){if(typeof e==`string`&&(e=new URL(e)),e.protocol!==`http:`)throw new n(`h2c-client: Only h2c protocol is supported`);let{maxConcurrentStreams:r,pipelining:i,...a}=t??{},o=r??100,s=100;if(r!=null&&(!Number.isInteger(r)||r<1))throw new n(`maxConcurrentStreams must be a positive integer, greater than 0`);if(i!=null&&Number.isInteger(i)&&i>0&&(s=i),s>o)throw new n(`h2c-client: pipelining cannot be greater than maxConcurrentStreams`);super(e,{...a,maxConcurrentStreams:o,pipelining:s,allowH2:!0,useH2c:!0})}}})),q=e.c(((e,t)=>{let n=require(`node:assert`),{addAbortListener:r}=require(`node:events`),{Readable:i}=require(`node:stream`),{RequestAbortedError:a,NotSupportedError:o,InvalidArgumentError:s,AbortError:c}=d(),l=m(),{ReadableStreamFrom:u}=m(),f=Symbol(`kConsume`),p=Symbol(`kReading`),h=Symbol(`kBody`),g=Symbol(`kAbort`),_=Symbol(`kContentType`),v=Symbol(`kContentLength`),y=Symbol(`kUsed`),b=Symbol(`kBytesRead`),x=()=>{};var S=class extends i{constructor({resume:e,abort:t,contentType:n=``,contentLength:r,highWaterMark:i=64*1024}){super({autoDestroy:!0,read:e,highWaterMark:i}),this._readableState.dataEmitted=!1,this[g]=t,this[f]=null,this[b]=0,this[h]=null,this[y]=!1,this[_]=n,this[v]=Number.isFinite(r)?r:null,this[p]=!1}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new a),e&&this[g](),this[y]?t(e):setImmediate(t,e)}on(e,t){return(e===`data`||e===`readable`)&&(this[p]=!0,this[y]=!0),super.on(e,t)}addListener(e,t){return this.on(e,t)}off(e,t){let n=super.off(e,t);return(e===`data`||e===`readable`)&&(this[p]=this.listenerCount(`data`)>0||this.listenerCount(`readable`)>0),n}removeListener(e,t){return this.off(e,t)}push(e){return e&&(this[b]+=e.length,this[f])?(A(this[f],e),this[p]?super.push(e):!0):super.push(e)}text(){return T(this,`text`)}json(){return T(this,`json`)}blob(){return T(this,`blob`)}bytes(){return T(this,`bytes`)}arrayBuffer(){return T(this,`arrayBuffer`)}async formData(){throw new o}get bodyUsed(){return l.isDisturbed(this)}get body(){return this[h]||(this[h]=u(this),this[f]&&(this[h].getReader(),n(this[h].locked))),this[h]}dump(e){let t=e?.signal;if(t!=null&&(typeof t!=`object`||!(`aborted`in t)))return Promise.reject(new s(`signal must be an AbortSignal`));let n=e?.limit&&Number.isFinite(e.limit)?e.limit:128*1024;return t?.aborted?Promise.reject(t.reason??new c):this._readableState.closeEmitted?Promise.resolve(null):new Promise((e,i)=>{if((this[v]&&this[v]>n||this[b]>n)&&this.destroy(new c),t){let n=r(t,()=>{this.destroy(t.reason??new c)});this.on(`close`,function(){n[Symbol.dispose](),t.aborted?i(t.reason??new c):e(null)})}else this.on(`close`,e);this.on(`error`,x).on(`data`,()=>{this[b]>n&&this.destroy()}).resume()})}setEncoding(e){return Buffer.isEncoding(e)&&super.setEncoding(e),this}};function C(e){return e[h]?.locked===!0||e[f]!==null}function w(e){return l.isDisturbed(e)||C(e)}function T(e,t){return n(!e[f]),new Promise((n,r)=>{if(w(e)){let t=e._readableState;t.destroyed&&t.closeEmitted===!1?e.on(`error`,r).on(`close`,()=>{r(TypeError(`unusable`))}):r(t.errored??TypeError(`unusable`))}else queueMicrotask(()=>{e[f]={type:t,stream:e,resolve:n,reject:r,length:0,body:[]},e.on(`error`,function(e){j(this[f],e)}).on(`close`,function(){this[f].body!==null&&j(this[f],new a)}),E(e[f])})})}function E(e){if(e.body===null)return;let{_readableState:t}=e.stream;if(t.bufferIndex){let n=t.bufferIndex,r=t.buffer.length;for(let i=n;i<r;i++)A(e,t.buffer[i])}else for(let n of t.buffer)A(e,n);let n=t.decoder;if(n!=null&&n.lastNeed>0&&A(e,Buffer.from(n.lastChar.subarray(0,n.lastTotal-n.lastNeed))),t.endEmitted){k(e,t.encoding);return}for(e.stream.on(`end`,function(){k(this[f],this._readableState.encoding)}),e.stream.resume();e.stream.read()!=null;);}function D(e,t,n){if(e.length===0||t===0)return``;let r=e.length===1?e[0]:Buffer.concat(e,t),i=r.length,a=i>2&&r[0]===239&&r[1]===187&&r[2]===191?3:0;return!n||n===`utf8`||n===`utf-8`?r.utf8Slice(a,i):r.subarray(a,i).toString(n)}function O(e,t){if(e.length===0||t===0)return new Uint8Array;if(e.length===1)return new Uint8Array(e[0]);let n=new Uint8Array(Buffer.allocUnsafeSlow(t).buffer),r=0;for(let t=0;t<e.length;++t){let i=e[t];n.set(i,r),r+=i.length}return n}function k(e,t){let{type:n,body:r,resolve:i,stream:a,length:o}=e;try{n===`text`?i(D(r,o,t)):n===`json`?i(JSON.parse(D(r,o,t))):n===`arrayBuffer`?i(O(r,o).buffer):n===`blob`?i(new Blob(r,{type:a[_]})):n===`bytes`&&i(O(r,o)),j(e)}catch(e){a.destroy(e)}}function A(e,t){e.body!==null&&(typeof t==`string`&&(t=Buffer.from(t,e.stream._readableState.encoding)),e.length+=t.length,e.body.push(t))}function j(e,t){e.body!==null&&(t?e.reject(t):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}t.exports={Readable:S,chunksDecode:D}})),J=e.c(((e,t)=>{let n=require(`node:assert`),{AsyncResource:r}=require(`node:async_hooks`),{Readable:i}=q(),{InvalidArgumentError:a,RequestAbortedError:o}=d(),s=m();function c(){}var l=class extends r{constructor(e,t){if(!e||typeof e!=`object`)throw new a(`invalid opts`);let{signal:n,method:r,opaque:i,body:l,onInfo:u,responseHeaders:d,highWaterMark:f}=e;try{if(typeof t!=`function`)throw new a(`invalid callback`);if(f!=null&&(!Number.isFinite(f)||f<0))throw new a(`invalid highWaterMark`);if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new a(`signal must be an EventEmitter or EventTarget`);if(r===`CONNECT`)throw new a(`invalid method`);if(u&&typeof u!=`function`)throw new a(`invalid onInfo callback`);super(`UNDICI_REQUEST`)}catch(e){throw s.isStream(l)&&s.destroy(l.on(`error`,c),e),e}this.method=r,this.responseHeaders=d||null,this.opaque=i||null,this.callback=t,this.res=null,this.abort=null,this.body=l,this.trailers={},this.context=null,this.controller=null,this.onInfo=u||null,this.highWaterMark=f,this.reason=null,this.removeAbortListener=null,n?.aborted?this.reason=n.reason??new o:n&&(this.removeAbortListener=s.addAbortListener(n,()=>{if(this.reason=n.reason??new o,this.res){let e=this.res;this.res=null,s.destroy(e.on(`error`,c),this.reason)}else this.abort&&this.abort(this.reason)}))}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}n(this.callback),this.controller=e,this.abort=t=>e.abort(t),this.context=t}onResponseStart(e,t,n,r){let{callback:a,opaque:o,context:l,responseHeaders:u,highWaterMark:d}=this,f=e?.rawHeaders,p=u===`raw`?s.parseRawHeaders(f):n;if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:p});return}let m=n,h=m?.[`content-type`],g=m?.[`content-length`],_=new i({resume:()=>e.resume(),abort:t=>e.abort(t),contentType:h,contentLength:this.method!==`HEAD`&&g?Number(g):null,highWaterMark:d});if(this.removeAbortListener&&=(_.on(`close`,this.removeAbortListener),null),this.callback=null,this.res=_,a!==null)try{this.runInAsyncScope(a,null,null,{statusCode:t,statusText:r,headers:p,trailers:this.trailers,opaque:o,body:_,context:l})}catch(e){this.res=null,s.destroy(_.on(`error`,c),e),queueMicrotask(()=>{throw e})}}onResponseData(e,t){this.res&&this.res.push(t)===!1&&e.pause()}onResponseEnd(e,t){if(t&&typeof t==`object`)for(let e of Object.keys(t))e===`__proto__`?Object.defineProperty(this.trailers,e,{value:t[e],enumerable:!0,configurable:!0,writable:!0}):this.trailers[e]=t[e];this.res?.push(null)}onResponseError(e,t){let{res:n,callback:r,body:i,opaque:a}=this;r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:a})})),n&&(this.res=null,queueMicrotask(()=>{s.destroy(n.on(`error`,c),t)})),i&&(this.body=null,s.isStream(i)&&(i.on(`error`,c),s.destroy(i,t))),this.removeAbortListener&&=(this.removeAbortListener(),null)}};function u(e,t){if(t===void 0)return new Promise((t,n)=>{u.call(this,e,(e,r)=>e?n(e):t(r))});try{let n=new l(e,t);this.dispatch(e,n)}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=u,t.exports.RequestHandler=l})),Y=e.c(((e,t)=>{let{addAbortListener:n}=m(),{RequestAbortedError:r}=d(),i=Symbol(`kListener`),a=Symbol(`kSignal`);function o(e){e.abort?e.abort(e[a]?.reason):e.reason=e[a]?.reason??new r,c(e)}function s(e,t){if(e.reason=null,e[a]=null,e[i]=null,t){if(t.aborted){o(e);return}e[a]=t,e[i]=()=>{o(e)},n(e[a],e[i])}}function c(e){e[a]&&(`removeEventListener`in e[a]?e[a].removeEventListener(`abort`,e[i]):e[a].removeListener(`abort`,e[i]),e[a]=null,e[i]=null)}t.exports={addSignal:s,removeSignal:c}})),se=e.c(((e,t)=>{let n=require(`node:assert`),{AsyncResource:r}=require(`node:async_hooks`),{InvalidArgumentError:i,InvalidReturnValueError:a}=d(),o=m(),{addSignal:s,removeSignal:c}=Y();function l(){}function u(e){return e.errored??e.writableErrored??e._writableState?.errored}function f(){let e=Error(`Premature close`);return e.code=`ERR_STREAM_PREMATURE_CLOSE`,e}function p(e,t){let n=!1,r=()=>{e.removeListener(`close`,a),e.removeListener(`error`,o),e.removeListener(`finish`,s)},i=(e,i=!1)=>{n||(n=!0,r(),t(e,i))},a=()=>{i(u(e)??(e.writableFinished?void 0:f()))},o=e=>i(e,!0),s=()=>i();e.on(`close`,a),e.on(`error`,o),e.on(`finish`,s),e.closed?process.nextTick(a):e.writableFinished&&process.nextTick(s)}var h=class extends r{constructor(e,t,n){if(!e||typeof e!=`object`)throw new i(`invalid opts`);let{signal:r,method:a,opaque:c,body:u,onInfo:d,responseHeaders:f}=e;try{if(typeof n!=`function`)throw new i(`invalid callback`);if(typeof t!=`function`)throw new i(`invalid factory`);if(r&&typeof r.on!=`function`&&typeof r.addEventListener!=`function`)throw new i(`signal must be an EventEmitter or EventTarget`);if(a===`CONNECT`)throw new i(`invalid method`);if(d&&typeof d!=`function`)throw new i(`invalid onInfo callback`);super(`UNDICI_STREAM`)}catch(e){throw o.isStream(u)&&o.destroy(u.on(`error`,l),e),e}this.responseHeaders=f||null,this.opaque=c||null,this.factory=t,this.callback=n,this.res=null,this.abort=null,this.context=null,this.controller=null,this.trailers=null,this.body=u,this.onInfo=d||null,o.isStream(u)&&u.on(`error`,e=>{this.onResponseError(this.controller,e)}),s(this,r)}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}n(this.callback),this.controller=e,this.abort=t=>e.abort(t),this.context=t}onResponseStart(e,t,n,r){let{factory:i,opaque:s,context:c,responseHeaders:l}=this,u=e?.rawHeaders,d=l===`raw`?o.parseRawHeaders(u):n;if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:d});return}if(this.factory=null,i===null)return;let f=this.runInAsyncScope(i,null,{statusCode:t,headers:d,opaque:s,context:c});if(!f||typeof f.write!=`function`||typeof f.end!=`function`||typeof f.on!=`function`)throw new a(`expected Writable`);p(f,(e,t)=>{let{callback:n,res:r,opaque:i,trailers:a,abort:s}=this;this.res=null,(e||!r?.readable)&&o.destroy(r,t?void 0:e),this.callback=null,this.runInAsyncScope(n,null,e||null,{opaque:i,trailers:a}),e&&s(e)}),f.on(`drain`,()=>e.resume()),this.res=f,(f.writableNeedDrain===void 0?f._writableState?.needDrain:f.writableNeedDrain)===!0&&e.pause()}onResponseData(e,t){let{res:n}=this;n&&n.write(t)===!1&&e.pause()}onResponseEnd(e,t){let{res:n}=this;c(this),n&&(t&&typeof t==`object`&&(this.trailers=t),n.end())}onResponseError(e,t){let{res:n,callback:r,opaque:i,body:a}=this;c(this),this.factory=null,n?(this.res=null,o.destroy(n,t)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:i})})),a&&(this.body=null,o.destroy(a,t))}};function g(e,t,n){if(n===void 0)return new Promise((n,r)=>{g.call(this,e,t,(e,t)=>e?r(e):n(t))});try{let r=new h(e,t,n);this.dispatch(e,r)}catch(t){if(typeof n!=`function`)throw t;let r=e?.opaque;queueMicrotask(()=>n(t,{opaque:r}))}}t.exports=g})),X=e.c(((e,t)=>{let{Readable:n,Duplex:r,PassThrough:i}=require(`node:stream`),a=require(`node:assert`),{AsyncResource:o}=require(`node:async_hooks`),{InvalidArgumentError:s,InvalidReturnValueError:c,RequestAbortedError:u}=d(),f=m(),{kBodyUsed:p}=l(),{addSignal:h,removeSignal:g}=Y();function _(){}let v=Symbol(`resume`);var y=class extends n{constructor(){super({autoDestroy:!0}),this[v]=null,this[p]=!0}_read(){let{[v]:e}=this;e&&(this[v]=null,e())}_destroy(e,t){this._read(),t(e)}},b=class extends n{constructor(e){super({autoDestroy:!0}),this[v]=e}_read(){this[v]()}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new u),t(e)}},x=class extends o{constructor(e,t){if(!e||typeof e!=`object`)throw new s(`invalid opts`);if(typeof t!=`function`)throw new s(`invalid handler`);let{signal:n,method:i,opaque:a,onInfo:o,responseHeaders:c}=e;if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new s(`signal must be an EventEmitter or EventTarget`);if(i===`CONNECT`)throw new s(`invalid method`);if(o&&typeof o!=`function`)throw new s(`invalid onInfo callback`);super(`UNDICI_PIPELINE`),this.opaque=a||null,this.responseHeaders=c||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=o||null,this.req=new y().on(`error`,_),this.ret=new r({readableObjectMode:e.objectMode,autoDestroy:!0,read:()=>{let{body:e}=this;e?.resume&&e.resume()},write:(e,t,n)=>{let{req:r}=this;r.push(e,t)||r._readableState.destroyed?n():r[v]=n},destroy:(e,t)=>{let{body:n,req:r,res:i,ret:a,abort:o}=this;!e&&!a._readableState.endEmitted&&(e=new u),o&&e&&o(),f.destroy(n,e),f.destroy(r,e),f.destroy(i,e),g(this),t(e)}}).on(`prefinish`,()=>{let{req:e}=this;e.push(null)}),this.res=null,h(this,n)}onRequestStart(e,t){let{res:n}=this;if(this.reason){e.abort(this.reason);return}a(!n,`pipeline cannot be retried`),this.abort=t=>e.abort(t),this.context=t}onResponseStart(e,t,n,r){let{opaque:i,handler:a,context:o}=this;if(t<200){if(this.onInfo){let r=e?.rawHeaders,i=this.responseHeaders===`raw`?f.parseRawHeaders(r):n;this.onInfo({statusCode:t,headers:i})}return}this.res=new b(()=>e.resume());let s;try{this.handler=null;let r=e?.rawHeaders,c=this.responseHeaders===`raw`?f.parseRawHeaders(r):n;s=this.runInAsyncScope(a,null,{statusCode:t,headers:c,opaque:i,body:this.res,context:o})}catch(e){throw this.res.on(`error`,_),e}if(!s||typeof s.on!=`function`)throw new c(`expected Readable`);s.on(`data`,e=>{let{ret:t,body:n}=this;!t.push(e)&&n.pause&&n.pause()}).on(`error`,e=>{let{ret:t}=this;f.destroy(t,e)}).on(`end`,()=>{let{ret:e}=this;e.push(null)}).on(`close`,()=>{let{ret:e}=this;e._readableState.ended||f.destroy(e,new u)}),this.body=s}onResponseData(e,t){let{res:n}=this;n.push(t)===!1&&e.pause()}onResponseEnd(e,t){let{res:n}=this;n.push(null)}onResponseError(e,t){let{ret:n}=this;this.handler=null,f.destroy(n,t)}};function S(e,t){try{let n=new x(e,t);return this.dispatch({...e,body:n.req},n),n.ret}catch(e){return new i().destroy(e)}}t.exports=S})),Z=e.c(((e,t)=>{let{InvalidArgumentError:n,SocketError:r}=d(),{AsyncResource:i}=require(`node:async_hooks`),a=require(`node:assert`),o=m(),{kHTTP2Stream:s}=l(),{addSignal:c,removeSignal:u}=Y();var f=class extends i{constructor(e,t){if(!e||typeof e!=`object`)throw new n(`invalid opts`);if(typeof t!=`function`)throw new n(`invalid callback`);let{signal:r,opaque:i,responseHeaders:a}=e;if(r&&typeof r.on!=`function`&&typeof r.addEventListener!=`function`)throw new n(`signal must be an EventEmitter or EventTarget`);super(`UNDICI_UPGRADE`),this.responseHeaders=a||null,this.opaque=i||null,this.callback=t,this.abort=null,this.context=null,c(this,r)}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}a(this.callback),this.abort=t=>e.abort(t),this.context=t}onResponseStart(){throw new r(`bad upgrade`,null)}onRequestUpgrade(e,t,n,i){if(t!==(i[s]===!0?200:101)){let t=i[s]===!0?null:o.getSocketInfo(i);e.abort(new r(`bad upgrade`,t));return}let{callback:a,opaque:c,context:l}=this;u(this),this.callback=null;let d=e?.rawHeaders,f=this.responseHeaders===`raw`?o.parseRawHeaders(d):n;this.runInAsyncScope(a,null,null,{headers:f,socket:i,opaque:c,context:l})}onResponseError(e,t){let{callback:n,opaque:r}=this;u(this),n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:r})}))}};function p(e,t){if(t===void 0)return new Promise((t,n)=>{p.call(this,e,(e,r)=>e?n(e):t(r))});try{let n=new f(e,t),r={...e,method:e.method||`GET`,upgrade:e.protocol||`Websocket`};this.dispatch(r,n)}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=p})),ce=e.c(((e,t)=>{let n=require(`node:assert`),{AsyncResource:r}=require(`node:async_hooks`),{InvalidArgumentError:i,SocketError:a}=d(),o=m(),{addSignal:s,removeSignal:c}=Y();var l=class extends r{constructor(e,t){if(!e||typeof e!=`object`)throw new i(`invalid opts`);if(typeof t!=`function`)throw new i(`invalid callback`);let{signal:n,opaque:r,responseHeaders:a}=e;if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new i(`signal must be an EventEmitter or EventTarget`);super(`UNDICI_CONNECT`),this.opaque=r||null,this.responseHeaders=a||null,this.callback=t,this.abort=null,s(this,n)}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}n(this.callback),this.abort=t=>e.abort(t),this.context=t}onResponseStart(){throw new a(`bad connect`,null)}onRequestUpgrade(e,t,n,r){let{callback:i,opaque:a,context:s}=this;c(this),this.callback=null;let l=n,u=e?.rawHeaders;l!=null&&(l=this.responseHeaders===`raw`?o.parseRawHeaders(u):n),this.runInAsyncScope(i,null,null,{statusCode:t,headers:l,socket:r,opaque:a,context:s})}onResponseError(e,t){let{callback:n,opaque:r}=this;c(this),n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:r})}))}};function u(e,t){if(t===void 0)return new Promise((t,n)=>{u.call(this,e,(e,r)=>e?n(e):t(r))});try{let n=new l(e,t),r={...e,method:`CONNECT`};this.dispatch(r,n)}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=u})),le=e.c(((e,t)=>{t.exports.request=J(),t.exports.stream=se(),t.exports.pipeline=X(),t.exports.upgrade=Z(),t.exports.connect=ce()})),Q=e.c(((e,t)=>{let{UndiciError:n}=d(),r=Symbol.for(`undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED`);t.exports={MockNotMatchedError:class extends n{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[r]===!0}get[r](){return!0}}}})),ue=e.c(((e,t)=>{t.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`)}})),de=e.c(((e,t)=>{let{MockNotMatchedError:n}=Q(),{kDispatches:r,kMockAgent:i,kOriginalDispatch:a,kOrigin:o,kGetNetConnect:s,kTotalDispatchCount:c}=ue(),{serializePathWithQuery:l,parseHeaders:u}=m(),{STATUS_CODES:f}=require(`node:http`),{types:{isPromise:p}}=require(`node:util`),{InvalidArgumentError:h}=d(),g=Symbol(`request aborted`);function _(e,t){return typeof e==`string`?e===t:e instanceof RegExp?e.test(t):typeof e==`function`?e(t)===!0:!1}function v(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e.toLocaleLowerCase(),t]))}function y(e,t){if(Array.isArray(e)){for(let n=0;n<e.length;n+=2)if(e[n].toLocaleLowerCase()===t.toLocaleLowerCase())return e[n+1];return}else if(typeof e.get==`function`)return e.get(t);else return v(e)[t.toLocaleLowerCase()]}function b(e){let t=e.slice(),n=[];for(let e=0;e<t.length;e+=2)n.push([t[e],t[e+1]]);return Object.fromEntries(n)}function x(e,t){if(typeof e.headers==`function`)return Array.isArray(t)&&(t=b(t)),e.headers(t?v(t):{});if(e.headers===void 0)return!0;if(typeof t!=`object`||typeof e.headers!=`object`)return!1;for(let[n,r]of Object.entries(e.headers))if(!_(r,y(t,n)))return!1;return!0}function S(e){if(typeof e!=`string`)return e;let t=new URLSearchParams(e),n=new URLSearchParams;for(let[e,r]of t.entries()){if(e=e.replace(`[]`,``),/^(['"]).*\1$/.test(r)){n.append(e,r);continue}if(r.includes(`,`)){let t=r.split(`,`);for(let r of t)n.append(e,r);continue}n.append(e,r)}return n}function C(e){if(typeof e!=`string`)return e;let t=e.split(`?`,3);if(t.length!==2)return e;let n=new URLSearchParams(t.pop());return n.sort(),[...t,n.toString()].join(`?`)}function w(e,{path:t,method:n,body:r,headers:i}){let a=_(e.path,t),o=_(e.method,n),s=e.body===void 0?!0:_(e.body,r),c=x(e,i);return a&&o&&s&&c}function T(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):typeof e==`object`?JSON.stringify(e):e?e.toString():``}function E(e,t){let r=t.query?l(t.path,t.query):t.path,i=typeof r==`string`?C(r):r,a=k(i),o=e.filter(({consumed:e})=>!e).filter(({path:e,ignoreTrailingSlash:t})=>t?_(k(C(e)),a):_(C(e),i));if(o.length===0)throw new n(`Mock dispatch not matched for path '${i}'`);if(o=o.filter(({method:e})=>_(e,t.method)),o.length===0)throw new n(`Mock dispatch not matched for method '${t.method}' on path '${i}'`);if(o=o.filter(({body:e})=>e===void 0?!0:_(e,t.body)),o.length===0)throw new n(`Mock dispatch not matched for body '${t.body}' on path '${i}'`);if(o=o.filter(e=>x(e,t.headers)),o.length===0)throw new n(`Mock dispatch not matched for headers '${typeof t.headers==`object`?JSON.stringify(t.headers):t.headers}' on path '${i}'`);return o[0]}function D(e,t,n,r){let i={timesInvoked:0,times:1,persist:!1,consumed:!1,...r},a=typeof n==`function`?{callback:n}:{...n},o={...i,...t,pending:!0,data:{error:null,...a}};return e.push(o),e[c]=(e[c]||0)+1,o}function O(e,t){let n=e.findIndex(e=>e.consumed?w(e,t):!1);n!==-1&&e.splice(n,1)}function k(e){if(typeof e!=`string`)return e;for(;e.endsWith(`/`);)e=e.slice(0,-1);return e.length===0&&(e=`/`),e}function A(e){let{path:t,method:n,body:r,headers:i,query:a}=e;return{path:t,method:n,body:r,headers:i,query:a}}function j(e){let t=Object.keys(e),n=[];for(let r=0;r<t.length;++r){let i=t[r],a=e[i],o=Buffer.from(`${i}`);if(Array.isArray(a))for(let e=0;e<a.length;++e)n.push(o,Buffer.from(`${a[e]}`));else n.push(o,Buffer.from(`${a}`))}return n}function M(e){return f[e]||`unknown`}async function N(e){let t=[];for await(let n of e)t.push(n);return Buffer.concat(t).toString(`utf8`)}function P(e,t){let n=A(e),i=E(this[r],n),a=this[r];i.timesInvoked++;let{timesInvoked:o,times:s}=i;i.consumed=!i.persist&&o>=s,i.pending=o<s;let c=typeof t.onBodySent==`function`||typeof t.onRequestSent==`function`;if(i.data.callback&&(!c||e.body==null)){let{callback:r,...o}=i.data,s=r(e);if(p(s))return s.then(r=>{if(typeof r!=`object`||!r){t.onResponseError(null,new h(`reply options callback must return an object`));return}F(a,i,n,e,t,{...o,...r})},e=>{t.onResponseError(null,e)}),!0;if(typeof s!=`object`||!s)throw new h(`reply options callback must return an object`);return F(a,i,n,e,t,{...o,...s})}return F(a,i,n,e,t)}function F(e,t,n,r,i,a){let{data:o,delay:s}=t,c=a??o;if(c.error!==null)return O(e,n),i.onResponseError(null,c.error),!0;let l=!1,d=null,f={paused:!1,rawHeaders:null,rawTrailers:null,pause(){this.paused=!0},resume(){this.paused=!1},abort:e=>{l||(l=!0,d!==null&&(clearTimeout(d),d=null),i.onResponseError?.(f,e))}},m=r,_=e;if(i.onRequestStart?.(f,null),l)return!0;let v=I(r.body,i,f,()=>l);if(p(v))return v.then(e=>{e!==g&&(e!==r.body&&(m={...r,body:e}),y())},e=>f.abort(e)),!0;if(v===g)return!0;v!==r.body&&(m={...r,body:v}),y();function y(){if(c.callback){let{callback:t,...r}=c,a;try{a=t(m)}catch(t){O(e,n),i.onResponseError(null,t);return}if(p(a)){a.then(e=>{if(typeof e!=`object`||!e){i.onResponseError(null,new h(`reply options callback must return an object`));return}x(_,{...r,...e})},e=>{i.onResponseError(null,e)});return}if(typeof a!=`object`||!a)throw new h(`reply options callback must return an object`);x(_,{...r,...a});return}typeof s==`number`&&s>0?d=setTimeout(()=>{d=null,x(_)},s):x(_)}function x(e,t=c){if(l)return;let{statusCode:a,data:o,headers:s,trailers:d}=t,h=Array.isArray(r.headers)?b(r.headers):r.headers,g=typeof o==`function`?o({...m,headers:h}):o;if(p(g))return g.then(n=>x(e,{...t,data:n}));if(l)return;let _=T(g),v=j(s??{}),y=j(d??{});f.rawHeaders=v,f.rawTrailers=y,i.onResponseStart?.(f,a,u(v),M(a)),i.onResponseData?.(f,Buffer.from(_)),i.onResponseEnd?.(f,u(y)),O(e,n)}return!0}function I(e,t,n,r){if(typeof t.onBodySent!=`function`&&typeof t.onRequestSent!=`function`)return e;if(e==null)return z(t,n,r)?e:g;if(e&&typeof e[Symbol.asyncIterator]==`function`)return L(e,t,n,r);if(B(e)){let i=[];for(let a of e)if(r()||(i.push(a),!R(t,n,a)||r()))return g;return z(t,n,r)?i:g}return r()||!R(t,n,e)?g:z(t,n,r)?e:g}async function L(e,t,n,r){let i=[];for await(let a of e)if(r()||(i.push(a),!R(t,n,a)||r()))return g;return z(t,n,r)?{async*[Symbol.asyncIterator](){yield*i}}:g}function R(e,t,n){try{return e.onBodySent?.(n),!0}catch(e){return t.abort(e),!1}}function z(e,t,n){try{return e.onRequestSent?.(),!n()}catch(e){return t.abort(e),!1}}function B(e){return typeof e!=`string`&&!Buffer.isBuffer(e)&&!ArrayBuffer.isView(e)&&typeof e[Symbol.iterator]==`function`}function V(){let e=this[i],t=this[o],l=this[a];return function(i,a){if(e.isMockActive)try{P.call(this,i,a)}catch(o){if(o.code===`UND_MOCK_ERR_MOCK_NOT_MATCHED`){let u=e[s](),d=this[r][c]||this[r].length,f=`, ${this[r].filter(({consumed:e})=>!e).length} interceptor(s) remaining out of ${d} defined`;if(u===!1)throw new n(`${o.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)${f}`);if(ee(u,t))l.call(this,`__mockAgentBodyForDispatch`in i?{...i,body:i.__mockAgentBodyForDispatch}:i,a);else throw new n(`${o.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)${f}`)}else throw o}else l.call(this,i,a)}}function ee(e,t){let n=new URL(t);return e===!0?!0:!!(Array.isArray(e)&&e.some(e=>_(e,n.host)))}function H(e){return typeof e!=`string`&&!(e instanceof URL)?e:e instanceof URL?e.origin:e.toLowerCase()}function U(e){let{agent:t,...n}=e;if(`enableCallHistory`in n&&typeof n.enableCallHistory!=`boolean`)throw new h(`options.enableCallHistory must to be a boolean`);if(`acceptNonStandardSearchParameters`in n&&typeof n.acceptNonStandardSearchParameters!=`boolean`)throw new h(`options.acceptNonStandardSearchParameters must to be a boolean`);if(`ignoreTrailingSlash`in n&&typeof n.ignoreTrailingSlash!=`boolean`)throw new h(`options.ignoreTrailingSlash must to be a boolean`);return n}t.exports={getResponseData:T,getMockDispatch:E,addMockDispatch:D,deleteMockDispatch:O,buildKey:A,generateKeyValues:j,matchValue:_,getResponse:N,getStatusText:M,mockDispatch:P,buildMockDispatch:V,checkNetConnect:ee,buildAndValidateMockOptions:U,getHeaderByName:y,buildHeadersFromArray:b,normalizeSearchParams:S,normalizeOrigin:H}})),fe=e.c(((e,t)=>{let{getResponseData:n,buildKey:r,addMockDispatch:i}=de(),{kDispatches:a,kDispatchKey:o,kDefaultHeaders:s,kDefaultTrailers:c,kContentLength:l,kMockDispatch:u,kIgnoreTrailingSlash:f}=ue(),{InvalidArgumentError:p}=d(),{serializePathWithQuery:h}=m(),{types:{isPromise:g}}=require(`node:util`);var _=class{constructor(e){this[u]=e}delay(e){if(typeof e!=`number`||!Number.isInteger(e)||e<=0)throw new p(`waitInMs must be a valid integer > 0`);return this[u].delay=e,this}persist(){return this[u].persist=!0,this}times(e){if(typeof e!=`number`||!Number.isInteger(e)||e<=0)throw new p(`repeatTimes must be a valid integer > 0`);return this[u].times=e,this}},v=class{constructor(e,t){if(typeof e!=`object`)throw new p(`opts must be an object`);if(e.path===void 0)throw new p(`opts.path must be defined`);if(e.method===void 0&&(e.method=`GET`),typeof e.path==`string`)if(e.query)e.path=h(e.path,e.query);else{let t=new URL(e.path,`data://`);e.path=t.pathname+t.search}typeof e.method==`string`&&(e.method=e.method.toUpperCase()),this[o]=r(e),this[a]=t,this[f]=e.ignoreTrailingSlash??!1,this[s]={},this[c]={},this[l]=!1}createMockScopeDispatchData({statusCode:e,data:t,responseOptions:r}){let i=n(t),a=this[l]?{"content-length":i.length}:{};return{statusCode:e,data:t,headers:{...this[s],...a,...r.headers},trailers:{...this[c],...r.trailers}}}validateReplyParameters(e){if(e.statusCode===void 0)throw new p(`statusCode must be defined`);if(typeof e.responseOptions!=`object`||e.responseOptions===null)throw new p(`responseOptions must be an object`)}reply(e){if(typeof e==`function`){let t=e=>{if(typeof e!=`object`||!e)throw new p(`reply options callback must return an object`);let t={data:``,responseOptions:{},...e};return this.validateReplyParameters(t),{...this.createMockScopeDispatchData(t)}};return new _(i(this[a],this[o],n=>{let r=e(n);return g(r)?r.then(t):t(r)},{ignoreTrailingSlash:this[f]}))}let t={statusCode:e,data:arguments[1]===void 0?``:arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(t);let n=this.createMockScopeDispatchData(t);return new _(i(this[a],this[o],n,{ignoreTrailingSlash:this[f]}))}replyWithError(e){if(e===void 0)throw new p(`error must be defined`);return new _(i(this[a],this[o],{error:e},{ignoreTrailingSlash:this[f]}))}defaultReplyHeaders(e){if(e===void 0)throw new p(`headers must be defined`);return this[s]=e,this}defaultReplyTrailers(e){if(e===void 0)throw new p(`trailers must be defined`);return this[c]=e,this}replyContentLength(){return this[l]=!0,this}};t.exports.MockInterceptor=v,t.exports.MockScope=_})),pe=e.c(((e,t)=>{let{promisify:n}=require(`node:util`),r=R(),{buildMockDispatch:i}=de(),{kDispatches:a,kMockAgent:o,kClose:s,kOriginalClose:c,kOrigin:u,kOriginalDispatch:f,kConnected:p,kIgnoreTrailingSlash:m}=ue(),{MockInterceptor:h}=fe(),g=l(),{InvalidArgumentError:_}=d();t.exports=class extends r{constructor(e,t){if(!t||!t.agent||typeof t.agent.dispatch!=`function`)throw new _(`Argument opts.agent must implement Agent`);super(e,t),this[o]=t.agent,this[u]=e,this[m]=t.ignoreTrailingSlash??!1,this[a]=[],this[p]=1,this[f]=this.dispatch,this[c]=this.close.bind(this),this.dispatch=i.call(this),this.close=this[s]}get[g.kConnected](){return this[p]}intercept(e){return new h(e&&{ignoreTrailingSlash:this[m],...e},this[a])}cleanMocks(){this[a]=[]}async[s](){await n(this[c])(),this[p]=0,this[o][g.kClients].delete(this[u])}}})),me=e.c(((e,t)=>{let{kMockCallHistoryAddLog:n}=ue(),{InvalidArgumentError:r}=d();function i(e,t,n,i,a){switch(t.operator){case`OR`:return i.push(...n(e,a)),i;case`AND`:return n(e,i);default:throw new r(`options.operator must to be a case insensitive string equal to 'OR' or 'AND'`)}}function a(e={}){let t={};if(`operator`in e){if(typeof e.operator!=`string`||e.operator.toUpperCase()!==`OR`&&e.operator.toUpperCase()!==`AND`)throw new r(`options.operator must to be a case insensitive string equal to 'OR' or 'AND'`);return{...t,operator:e.operator.toUpperCase()}}return t}function o(e){return(t,n=this.logs)=>{if(typeof t==`string`||t==null)return n.filter(n=>n[e]===t);if(t instanceof RegExp)return n.filter(n=>t.test(n[e]));throw new r(`${e} parameter should be one of string, regexp, undefined or null`)}}function s(e){try{let t=new URL(e.path,e.origin);return t.search.length===0&&(t.search=new URLSearchParams(e.query).toString()),t}catch(e){throw new r(`An error occurred when computing MockCallHistoryLog.url`,{cause:e})}}var c=class{constructor(e={}){this.body=e.body,this.headers=e.headers,this.method=e.method;let t=s(e);this.fullUrl=t.toString(),this.origin=t.origin,this.path=t.pathname,this.searchParams=Object.fromEntries(t.searchParams),this.protocol=t.protocol,this.host=t.host,this.port=t.port,this.hash=t.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:`|`},t=``;return this.toMap().forEach((n,r)=>{(typeof n==`string`||n==null)&&(t=`${t}${r}${e.betweenKeyValueSeparator}${n}${e.betweenPairSeparator}`),(typeof n==`object`&&n||Array.isArray(n))&&(t=`${t}${r}${e.betweenKeyValueSeparator}${JSON.stringify(n)}${e.betweenPairSeparator}`)}),t.slice(0,-1)}},l=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 r(`nthCall must be called with a number`);if(!Number.isInteger(e))throw new r(`nthCall must be called with an integer`);if(Math.sign(e)!==1)throw new r(`nthCall must be called with a positive value. use firstCall or lastCall instead`);return this.logs.at(e-1)}filterCalls(e,t){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(t=>e.test(t.toString()));if(typeof e==`object`&&e){if(Object.keys(e).length===0)return this.logs;let n={operator:`OR`,...a(t)},r=n.operator===`AND`?this.logs:[];return`protocol`in e&&(r=i(e.protocol,n,this.filterCallsByProtocol,r,this.logs)),`host`in e&&(r=i(e.host,n,this.filterCallsByHost,r,this.logs)),`port`in e&&(r=i(e.port,n,this.filterCallsByPort,r,this.logs)),`origin`in e&&(r=i(e.origin,n,this.filterCallsByOrigin,r,this.logs)),`path`in e&&(r=i(e.path,n,this.filterCallsByPath,r,this.logs)),`hash`in e&&(r=i(e.hash,n,this.filterCallsByHash,r,this.logs)),`fullUrl`in e&&(r=i(e.fullUrl,n,this.filterCallsByFullUrl,r,this.logs)),`method`in e&&(r=i(e.method,n,this.filterCallsByMethod,r,this.logs)),[...new Set(r)]}throw new r(`criteria parameter should be one of function, regexp, or object`)}filterCallsByProtocol=o.call(this,`protocol`);filterCallsByHost=o.call(this,`host`);filterCallsByPort=o.call(this,`port`);filterCallsByOrigin=o.call(this,`origin`);filterCallsByPath=o.call(this,`path`);filterCallsByHash=o.call(this,`hash`);filterCallsByFullUrl=o.call(this,`fullUrl`);filterCallsByMethod=o.call(this,`method`);clear(){this.logs=[]}[n](e){let t=new c(e);return this.logs.push(t),t}*[Symbol.iterator](){for(let e of this.calls())yield e}};t.exports.MockCallHistory=l,t.exports.MockCallHistoryLog=c})),he=e.c(((e,t)=>{let{promisify:n}=require(`node:util`),r=V(),{buildMockDispatch:i}=de(),{kDispatches:a,kMockAgent:o,kClose:s,kOriginalClose:c,kOrigin:u,kOriginalDispatch:f,kConnected:p,kIgnoreTrailingSlash:m}=ue(),{MockInterceptor:h}=fe(),g=l(),{InvalidArgumentError:_}=d();t.exports=class extends r{constructor(e,t){if(!t||!t.agent||typeof t.agent.dispatch!=`function`)throw new _(`Argument opts.agent must implement Agent`);super(e,t),this[o]=t.agent,this[u]=e,this[m]=t.ignoreTrailingSlash??!1,this[a]=[],this[p]=1,this[f]=this.dispatch,this[c]=this.close.bind(this),this.dispatch=i.call(this),this.close=this[s]}get[g.kConnected](){return this[p]}intercept(e){return new h(e&&{ignoreTrailingSlash:this[m],...e},this[a])}cleanMocks(){this[a]=[]}async[s](){await n(this[c])(),this[p]=0,this[o][g.kClients].delete(this[u])}}})),$=e.c(((e,t)=>{let{Transform:n}=require(`node:stream`),{Console:r}=require(`node:console`),i=process.versions.icu?`✅`:`Y `,a=process.versions.icu?`❌`:`N `;t.exports=class{constructor({disableColors:e}={}){this.transform=new n({transform(e,t,n){n(null,e)}}),this.logger=new r({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){let t=e.map(({method:e,path:t,data:{statusCode:n},persist:r,times:o,timesInvoked:s,origin:c})=>({Method:e,Origin:c,Path:t,"Status code":n,Persistent:r?i:a,Invocations:s,Remaining:r?1/0:o-s}));return this.logger.table(t),this.transform.read().toString()}}})),ge=e.c(((e,t)=>{let{kClients:n}=l(),r=U(),{kAgent:i,kMockAgentSet:a,kMockAgentGet:o,kDispatches:s,kIsMockActive:c,kNetConnect:u,kGetNetConnect:f,kOptions:p,kFactory:m,kMockAgentRegisterCallHistory:h,kMockAgentIsCallHistoryEnabled:g,kMockAgentAddCallHistoryLog:_,kMockAgentMockCallHistoryInstance:y,kMockAgentAcceptsNonStandardSearchParameters:b,kMockCallHistoryAddLog:x,kIgnoreTrailingSlash:S}=ue(),C=pe(),w=he(),{matchValue:T,normalizeSearchParams:E,buildAndValidateMockOptions:D,normalizeOrigin:O}=de(),{InvalidArgumentError:k,UndiciError:A}=d(),j=v(),M=$(),{MockCallHistory:N}=me();t.exports=class extends j{constructor(e={}){super(e);let t=D(e);if(this[u]=!0,this[c]=!0,this[g]=t.enableCallHistory??!1,this[b]=t.acceptNonStandardSearchParameters??!1,this[S]=t.ignoreTrailingSlash??!1,e?.agent&&typeof e.agent.dispatch!=`function`)throw new k(`Argument opts.agent must implement Agent`);let a=e?.agent?e.agent:new r(e);this[i]=a,this[n]=a[n],this[p]=t,this[g]&&this[h]()}get(e){let t=O(e),n=this[S]?t.replace(/\/$/,``):t,r=this[o](n);return r||(r=this[m](n),this[a](n,r)),r}dispatch(e,t){e.origin=O(e.origin);let r=this.get(e.origin);this[_](e);let o=this[b],c={...e};if(c.allowH2===!1){let e=`${c.origin}#http1-only`;if(!this[n].has(e)){let t=this[m](c.origin);t[s]=r[s],this[a](e,t)}}if(o&&c.path){let[e,t]=c.path.split(`?`);c.path=`${e}?${E(t,o)}`}return this[i].dispatch(c,t)}async close(){this.clearCallHistory(),await this[i].close(),this[n].clear()}deactivate(){this[c]=!1}activate(){this[c]=!0}enableNetConnect(e){if(typeof e==`string`||typeof e==`function`||e instanceof RegExp)Array.isArray(this[u])?this[u].push(e):this[u]=[e];else if(e===void 0)this[u]=!0;else throw new k(`Unsupported matcher. Must be one of String|Function|RegExp.`)}disableNetConnect(){this[u]=!1}enableCallHistory(){return this[g]=!0,this}disableCallHistory(){return this[g]=!1,this}getCallHistory(){return this[y]}clearCallHistory(){this[y]!==void 0&&this[y].clear()}get isMockActive(){return this[c]}[h](){this[y]===void 0&&(this[y]=new N)}[_](e){this[g]&&(this[h](),this[y][x](e))}[a](e,t){this[n].set(e,t)}[m](e){let t=Object.assign({agent:this},this[p]);return this[p]&&this[p].connections===1?new C(e,t):new w(e,t)}[o](e){let t=this[n].get(e);if(t)return t;if(typeof e!=`string`){let t=this[m](`http://localhost:9999`);return this[a](e,t),t}for(let[t,r]of Array.from(this[n]))if(r&&typeof t!=`string`&&T(t,e)){let t=this[m](e);return this[a](e,t),t[s]=r[s],t}}[f](){return this[u]}pendingInterceptors(){let e=this[n];return Array.from(e.entries()).flatMap(([e,t])=>t[s].map(t=>({...t,origin:e}))).filter(({pending:e})=>e)}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new M}={}){let t=this.pendingInterceptors();if(t.length!==0)throw new A(t.length===1?`1 interceptor is pending:\n\n${e.format(t)}`.trim():`${t.length} interceptors are pending:\n\n${e.format(t)}`.trim())}}})),_e=e.c(((e,t)=>{let{InvalidArgumentError:n}=d(),{runtimeFeatures:r}=M();function i(e={}){let{ignoreHeaders:t=[],excludeHeaders:n=[],matchHeaders:r=[],caseSensitive:i=!1}=e;return{ignore:new Set(t.map(e=>i?e:e.toLowerCase())),exclude:new Set(n.map(e=>i?e:e.toLowerCase())),match:new Set(r.map(e=>i?e:e.toLowerCase()))}}let a=r.has(`crypto`)?require(`node:crypto`):null,o=a?.hash?e=>a.hash(`sha256`,e,`base64url`):e=>Buffer.from(e).toString(`base64url`);function s(e){return Array.isArray(e)&&(e.length&1)==0}function c(e=[]){return e.length===0?()=>!1:function(t){let n;for(let r of e)if(typeof r==`string`){if(n||=t.toLowerCase(),n.includes(r.toLowerCase()))return!0}else if(r instanceof RegExp&&r.test(t))return!0;return!1}}function l(e){let t={};if(!e)return t;if(s(e)){for(let n=0;n<e.length;n+=2){let r=e[n],i=e[n+1];if(r&&i!==void 0){let e=Buffer.isBuffer(r)?r.toString():r,n=Buffer.isBuffer(i)?i.toString():i;t[e.toLowerCase()]=n}}return t}if(e&&typeof e==`object`)for(let[n,r]of Object.entries(e))n&&typeof n==`string`&&(t[n.toLowerCase()]=Array.isArray(r)?r.join(`, `):String(r));return t}let u=[`record`,`playback`,`update`];function f(e){if(!u.includes(e))throw new n(`Invalid snapshot mode: ${e}. Must be one of: ${u.join(`, `)}`)}t.exports={createHeaderFilters:i,hashId:o,isUndiciHeaders:s,normalizeHeaders:l,isUrlExcludedFactory:c,validateSnapshotMode:f}})),ve=e.c(((e,t)=>{let{writeFile:n,readFile:r,mkdir:i}=require(`node:fs/promises`),{dirname:a,resolve:o}=require(`node:path`),{setTimeout:s,clearTimeout:c}=require(`node:timers`),{InvalidArgumentError:l,UndiciError:u}=d(),{hashId:f,isUrlExcludedFactory:p,normalizeHeaders:m,createHeaderFilters:h}=_e();function g(e,t,n){if(t===!1)return`${e.origin}${e.pathname}`;if(n){let t=String(n(e.searchParams)??``);return t?`${e.origin}${e.pathname}?${t}`:`${e.origin}${e.pathname}`}return e.toString()}function _(e,t,n){return t===!1?``:n?String(n(e)??``):e?String(e):``}function v(e,t,n={}){let r=new URL(e.path,e.origin),i=e._normalizedHeaders||m(e.headers);return e._normalizedHeaders||=i,{method:e.method||`GET`,url:g(r,n.matchQuery,n.normalizeQuery),headers:y(i,t,n),body:_(e.body,n.matchBody,n.normalizeBody)}}function y(e,t,n={}){if(!e||typeof e!=`object`)return{};let{caseSensitive:r=!1}=n,i={},{ignore:a,exclude:o,match:s}=t;for(let[t,n]of Object.entries(e)){let e=r?t:t.toLowerCase();o.has(e)||a.has(e)||s.size!==0&&!s.has(e)||(i[e]=n)}return i}function b(e,t,n={}){if(!e||typeof e!=`object`)return{};let{caseSensitive:r=!1}=n,i={},{exclude:a}=t;for(let[t,n]of Object.entries(e)){let e=r?t:t.toLowerCase();a.has(e)||(i[e]=n)}return i}function x(e){let t=[e.method,e.url];if(e.headers&&typeof e.headers==`object`){let n=Object.keys(e.headers).sort();for(let r of n){let n=Array.isArray(e.headers[r])?e.headers[r]:[e.headers[r]];t.push(r);for(let e of n.sort())t.push(String(e))}}return t.push(e.body),f(t.join(`|`))}t.exports={SnapshotRecorder:class{#e;#t;#n=new Map;#r;#i=1/0;#a=!1;#o;constructor(e={}){this.#r=e.snapshotPath,this.#i=e.maxSnapshots||1/0,this.#a=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,normalizeBody:e.normalizeBody||void 0,matchQuery:e.matchQuery!==!1,normalizeQuery:e.normalizeQuery||void 0,caseSensitive:e.caseSensitive||!1},this.#o=h(this.matchOptions),this.shouldRecord=e.shouldRecord||(()=>!0),this.shouldPlayback=e.shouldPlayback||(()=>!0),this.#t=p(e.excludeUrls),this.#a&&this.#r&&this.#s()}async record(e,t){if(!this.shouldRecord(e)||this.isUrlExcluded(e))return;let n=v(e,this.#o,this.matchOptions),r=x(n),i=m(t.headers),a={statusCode:t.statusCode,headers:b(i,this.#o,this.matchOptions),body:Buffer.isBuffer(t.body)?t.body.toString(`base64`):Buffer.from(String(t.body||``)).toString(`base64`),trailers:t.trailers};if(this.#n.size>=this.#i&&!this.#n.has(r)){let e=this.#n.keys().next().value;this.#n.delete(e)}let o=this.#n.get(r);o&&o.responses?(o.responses.push(a),o.timestamp=new Date().toISOString()):this.#n.set(r,{request:n,responses:[a],callCount:0,timestamp:new Date().toISOString()}),this.#a&&this.#r&&this.#l()}isUrlExcluded(e){let t=new URL(e.path,e.origin).toString();return this.#t(t)}findSnapshot(e){if(!this.shouldPlayback(e)||this.isUrlExcluded(e))return;let t=x(v(e,this.#o,this.matchOptions)),n=this.#n.get(t);if(!n)return;let r=n.callCount||0,i=Math.min(r,n.responses.length-1);return n.callCount=r+1,{...n,response:n.responses[i]}}async loadSnapshots(e){let t=e||this.#r;if(!t)throw new l(`Snapshot path is required`);try{let e=await r(o(t),`utf8`),n=JSON.parse(e);if(Array.isArray(n)){this.#n.clear();for(let{hash:e,snapshot:t}of n)this.#n.set(e,t)}else this.#n=new Map(Object.entries(n))}catch(e){if(e.code===`ENOENT`)this.#n.clear();else throw new u(`Failed to load snapshots from ${t}`,{cause:e})}}async saveSnapshots(e){let t=e||this.#r;if(!t)throw new l(`Snapshot path is required`);let r=o(t);await i(a(r),{recursive:!0});let s=Array.from(this.#n.entries()).map(([e,t])=>({hash:e,snapshot:t}));await n(r,JSON.stringify(s,null,2),{flush:!0})}clear(){this.#n.clear()}getSnapshots(){return Array.from(this.#n.values())}size(){return this.#n.size}resetCallCounts(){for(let e of this.#n.values())e.callCount=0}deleteSnapshot(e){let t=x(v(e,this.#o,this.matchOptions));return this.#n.delete(t)}getSnapshotInfo(e){let t=x(v(e,this.#o,this.matchOptions)),n=this.#n.get(t);return n?{hash:t,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.#n.clear(),Array.isArray(e))for(let{hash:t,snapshot:n}of e)this.#n.set(t,n);else e&&typeof e==`object`&&(this.#n=new Map(Object.entries(e)))}#s(){return this.#l()}#c(){this.#e&&=(c(this.#e),this.saveSnapshots().catch(()=>{}),null)}#l(){this.#e=s(()=>{this.saveSnapshots().catch(()=>{}),this.#a?this.#e?.refresh():this.#e=null},1e3)}destroy(){this.#c(),this.#e&&=(c(this.#e),null)}async close(){this.#r&&this.#n.size!==0&&await this.saveSnapshots(),this.destroy()}},formatRequestKey:v,createRequestHash:x,filterHeadersForMatching:y,filterHeadersForStorage:b,createHeaderFilters:h}})),ye=e.c(((e,t)=>{let n=U(),r=ge(),{SnapshotRecorder:i}=ve(),{InvalidArgumentError:a,UndiciError:o}=d(),s=m(),{validateSnapshotMode:c}=_e(),l=Symbol(`kSnapshotRecorder`),u=Symbol(`kSnapshotMode`),f=Symbol(`kSnapshotPath`),p=Symbol(`kSnapshotLoaded`),h=Symbol(`kRealAgent`),g=!1;t.exports=class extends r{constructor(e={}){g||=(process.emitWarning(`SnapshotAgent is experimental and subject to change`,`ExperimentalWarning`),!0);let{mode:t=`record`,snapshotPath:r=null,...o}=e;if(super(o),c(t),(t===`playback`||t===`update`)&&!r)throw new a(`snapshotPath is required when mode is '${t}'`);this[u]=t,this[f]=r,this[l]=new i({snapshotPath:this[f],mode:this[u],maxSnapshots:e.maxSnapshots,autoFlush:e.autoFlush,flushInterval:e.flushInterval,matchHeaders:e.matchHeaders,ignoreHeaders:e.ignoreHeaders,excludeHeaders:e.excludeHeaders,matchBody:e.matchBody,normalizeBody:e.normalizeBody,matchQuery:e.matchQuery,normalizeQuery:e.normalizeQuery,caseSensitive:e.caseSensitive,shouldRecord:e.shouldRecord,shouldPlayback:e.shouldPlayback,excludeUrls:e.excludeUrls}),this[p]=!1,(this[u]===`record`||this[u]===`update`||this[u]===`playback`&&e.excludeUrls&&e.excludeUrls.length>0)&&(this[h]=new n(e)),(this[u]===`playback`||this[u]===`update`)&&this[f]&&this.loadSnapshots().catch(()=>{})}dispatch(e,t){let n=this[u];if(this[l].isUrlExcluded(e))return this[h].dispatch(e,t);if(n===`playback`||n===`update`){if(!this[p])return this.#e(e,t);let r=this[l].findSnapshot(e);if(r)return this.#n(r,t);if(n===`update`)return this.#t(e,t);{let n=new o(`No snapshot found for ${e.method||`GET`} ${e.path}`);if(t.onResponseError){t.onResponseError(null,n);return}throw n}}else if(n===`record`)return this.#t(e,t)}async#e(e,t){return await this.loadSnapshots(),this.dispatch(e,t)}#t(e,t){let n={statusCode:null,headers:{},trailers:{},body:[]},r=this;return this[h].dispatch(e,{onRequestStart(e,n){return t.onRequestStart(e,{...n,history:this.history})},onRequestUpgrade(e,n,r,i){return t.onRequestUpgrade(e,n,r,i)},onResponseStart(e,r,i,a){return n.statusCode=r,n.headers=i,t.onResponseStart(e,r,i,a)},onResponseData(e,r){return n.body.push(r),t.onResponseData(e,r)},onResponseEnd(i,a){n.trailers=a;let o=Buffer.concat(n.body);r[l].record(e,{statusCode:n.statusCode,headers:n.headers,body:o,trailers:n.trailers}).then(()=>t.onResponseEnd(i,a)).catch(e=>t.onResponseError(i,e))},onResponseError(e,n){return t.onResponseError(e,n)}})}#n(e,t){try{let{response:n}=e,r={rawHeaders:n.headers?s.toRawHeaders(n.headers):[],rawTrailers:n.trailers?s.toRawHeaders(n.trailers):[],pause(){},resume(){},abort(e){this.aborted=!0,this.reason=e},aborted:!1,paused:!1};t.onRequestStart(r),t.onResponseStart(r,n.statusCode,n.headers,n.statusMessage);let i=Buffer.from(n.body,`base64`);t.onResponseData(r,i),t.onResponseEnd(r,n.trailers)}catch(e){t.onResponseError?.(null,e)}}async loadSnapshots(e){await this[l].loadSnapshots(e||this[f]),this[p]=!0,this[u]===`playback`&&this.#r()}async saveSnapshots(e){return this[l].saveSnapshots(e||this[f])}#r(){for(let e of this[l].getSnapshots()){let{request:t,responses:n,response:r}=e,i=new URL(t.url),a=this.get(i.origin),o=n?n[0]:r;o&&a.intercept({path:i.pathname+i.search,method:t.method,headers:t.headers,body:t.body}).reply(o.statusCode,o.body,{headers:o.headers,trailers:o.trailers}).persist()}}getRecorder(){return this[l]}getMode(){return this[u]}clearSnapshots(){this[l].clear()}resetCallCounts(){this[l].resetCallCounts()}deleteSnapshot(e){return this[l].deleteSnapshot(e)}getSnapshotInfo(e){return this[l].getSnapshotInfo(e)}replaceSnapshots(e){this[l].replaceSnapshots(e)}async close(){this[u]===`playback`?this[l].destroy():await this[l].close(),await this[h]?.close(),await super.close()}}})),be=e.c(((e,t)=>{let n=Symbol.for(`undici.globalDispatcher.2`),r=Symbol.for(`undici.globalDispatcher.1`),{InvalidArgumentError:i}=d(),a=U(),o=W(),s;l()===void 0&&c(new a);function c(e){if(!e||typeof e.dispatch!=`function`)throw new i(`Argument agent must implement Agent`);try{Object.defineProperty(globalThis,n,{value:e,writable:!0,enumerable:!1,configurable:!1})}catch(t){if(t instanceof TypeError){s=e;return}throw t}try{let t=e instanceof o?e:new o(e);Object.defineProperty(globalThis,r,{value:t,writable:!0,enumerable:!1,configurable:!1})}catch(e){if(!(e instanceof TypeError))throw e}}function l(){return globalThis[n]??s}t.exports={setGlobalDispatcher:c,getGlobalDispatcher:l,installedExports:[`fetch`,`Headers`,`Response`,`Request`,`FormData`,`WebSocket`,`CloseEvent`,`ErrorEvent`,`MessageEvent`,`EventSource`]}})),xe=e.c(((e,t)=>{let n=require(`node:assert`);t.exports=class{#e;#t=!1;#n=!1;#r=!1;constructor(e){if(typeof e!=`object`||!e)throw TypeError(`handler must be an object`);this.#e=e}onRequestStart(...e){this.#e.onRequestStart?.(...e)}onRequestUpgrade(...e){return n(!this.#t),n(!this.#n),this.#e.onRequestUpgrade?.(...e)}onResponseStart(...e){return n(!this.#t),n(!this.#n),n(!this.#r),this.#r=!0,this.#e.onResponseStart?.(...e)}onResponseData(...e){return n(!this.#t),n(!this.#n),this.#e.onResponseData?.(...e)}onResponseEnd(...e){return n(!this.#t),n(!this.#n),this.#t=!0,this.#e.onResponseEnd?.(...e)}onResponseError(...e){return this.#n=!0,this.#e.onResponseError?.(...e)}onBodySent(...e){return this.#e.onBodySent?.(...e)}onRequestSent(...e){return this.#e.onRequestSent?.(...e)}}})),Se=e.c(((e,t)=>{let n=m(),r=require(`node:assert`),{InvalidArgumentError:i}=d(),{kRequestOrigin:a}=l(),o=[300,301,302,303,307,308],s=()=>{};var c=class e{static buildDispatch(t,n){if(n!=null&&(!Number.isInteger(n)||n<0))throw new i(`maxRedirections must be a positive number`);let r=t.dispatch.bind(t);return(t,i)=>r(t,new e(r,n,t,i))}constructor(e,t,r,a){if(t!=null&&(!Number.isInteger(t)||t<0))throw new i(`maxRedirections must be a positive number`);if(r.throwOnMaxRedirect!=null&&typeof r.throwOnMaxRedirect!=`boolean`)throw new i(`throwOnMaxRedirect must be a boolean`);this.dispatch=e,this.location=null;let{maxRedirections:o,stripHeadersOnRedirect:s,stripHeadersOnCrossOriginRedirect:c,...l}=r;this.opts=l,this.opts.body=n.wrapRequestBody(this.opts.body),this.stripHeadersOnRedirect=f(s,`stripHeadersOnRedirect`),this.stripHeadersOnCrossOriginRedirect=f(c,`stripHeadersOnCrossOriginRedirect`),this.maxRedirections=t,this.handler=a,this.history=[]}onRequestStart(e,t){this.handler.onRequestStart?.(e,{...t,history:this.history})}onBodySent(e){this.handler.onBodySent?.(e)}onRequestSent(){this.handler.onRequestSent?.()}onRequestUpgrade(e,t,n,r){this.handler.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,r,c){if(this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections)throw Error(`max redirects`);let l=t===303;(t===301||t===302)&&this.opts.method===`POST`&&(this.opts.method=`GET`,n.isStream(this.opts.body)&&n.destroy(this.opts.body.on(`error`,s)),this.opts.body=null,l=!0),t===303&&this.opts.method!==`HEAD`&&(this.opts.method=`GET`,n.isStream(this.opts.body)&&n.destroy(this.opts.body.on(`error`,s)),this.opts.body=null),this.location=this.history.length>=this.maxRedirections||n.isDisturbed(this.opts.body)||o.indexOf(t)===-1?null:r.location;let u=this.opts[a]===void 0?this.opts.origin:this.opts[a];if(u&&this.history.push(new URL(this.opts.path,u)),!this.location){this.handler.onResponseStart?.(e,t,r,c);return}let d=u?new URL(this.opts.path,u):void 0,{origin:f,pathname:m,search:h}=n.parseURL(new URL(this.location,d)),g=h?`${m}${h}`:m,_=`${f}${g}`;for(let e of this.history)if(e.toString()===_)throw new i(`Redirect loop detected. Cannot redirect to ${f}. This typically happens when using a Client or Pool with cross-origin redirects. Use an Agent for cross-origin redirects.`);this.opts.headers=p(this.opts.headers,l,u!==f,this.stripHeadersOnRedirect,this.stripHeadersOnCrossOriginRedirect),this.opts.path=g,this.opts.origin=f,this.opts[a]=f,this.opts.query=null}onResponseData(e,t){this.location||this.handler.onResponseData?.(e,t)}onResponseEnd(e,t){this.location?this.dispatch(this.opts,this):this.handler.onResponseEnd(e,t)}onResponseError(e,t){this.handler.onResponseError?.(e,t)}};function u(e,t,r,i,a){let o=n.headerNameToString(e);return o===`host`||i?.has(o)||r&&a?.has(o)||t&&o.startsWith(`content-`)?!0:r?o===`authorization`||o===`cookie`||o===`proxy-authorization`:!1}function f(e,t){if(e==null)return null;if(!Array.isArray(e))throw new i(`${t} must be an array`);let r=new Set;for(let a of e){if(typeof a!=`string`)throw new i(`${t} must contain header names`);r.add(n.headerNameToString(a))}return r}function p(e,t,i,a,o){let s=[];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)u(e[n],t,i,a,o)||s.push(e[n],e[n+1]);else if(e&&typeof e==`object`){let r=n.hasSafeIterator(e)?e:Object.entries(e);for(let[e,n]of r)u(e,t,i,a,o)||s.push(e,n)}else r(e==null,`headers must be an object or an array`);return s}t.exports=c})),Ce=e.c(((e,t)=>{let n=Se();function r({maxRedirections:e,throwOnMaxRedirect:t,stripHeadersOnRedirect:r,stripHeadersOnCrossOriginRedirect:i}={}){return a=>function(o,s){let{maxRedirections:c=e,throwOnMaxRedirect:l=t,stripHeadersOnRedirect:u=r,stripHeadersOnCrossOriginRedirect:d=i,...f}=o;if(c==null||c===0)return a(o,s);let p={...f,throwOnMaxRedirect:l,stripHeadersOnRedirect:u,stripHeadersOnCrossOriginRedirect:d};return a(p,new n(a,c,p,s))}}t.exports=r})),we=e.c(((e,t)=>{let n=xe(),{ResponseError:r}=d();var i=class extends n{#e;#t;#n;#r;#i;constructor(e,{handler:t}){super(t)}#a(e){return(this.#t??``).indexOf(e)===0}onRequestStart(e,t){return this.#e=0,this.#t=null,this.#n=null,this.#r=null,this.#i=``,super.onRequestStart(e,t)}onResponseStart(e,t,n,r){if(this.#e=t,this.#r=n,this.#t=n[`content-type`],this.#e<400)return super.onResponseStart(e,t,n,r);(this.#a(`application/json`)||this.#a(`text/plain`))&&(this.#n=new TextDecoder(`utf-8`))}onResponseData(e,t){if(this.#e<400)return super.onResponseData(e,t);this.#i+=this.#n?.decode(t,{stream:!0})??``}onResponseEnd(e,t){if(this.#e>=400){if(this.#i+=this.#n?.decode(void 0,{stream:!1})??``,this.#a(`application/json`))try{this.#i=JSON.parse(this.#i)}catch{}let t,n=Error.stackTraceLimit;Error.stackTraceLimit=0;try{t=new r(`Response Error`,this.#e,{body:this.#i,headers:this.#r})}finally{Error.stackTraceLimit=n}super.onResponseError(e,t)}else super.onResponseEnd(e,t)}onResponseError(e,t){super.onResponseError(e,t)}};t.exports=()=>e=>function(t,n){return e(t,new i(t,{handler:n}))}})),Te=e.c(((e,t)=>{let n=K();t.exports=e=>t=>function(r,i){return t(r,new n({...r,retryOptions:{...e,...r.retryOptions}},{handler:i,dispatch:t}))}})),Ee=e.c(((e,t)=>{let{InvalidArgumentError:n,RequestAbortedError:r}=d(),i=xe();var a=class extends i{#e=1024*1024;#t=!1;#n=0;aborted=!1;reason=!1;constructor({maxSize:e,signal:t},r){if(e!=null&&(!Number.isFinite(e)||e<1))throw new n(`maxSize must be a number greater than 0`);super(r),this.#e=e??this.#e}#r(e){this.aborted=!0,this.reason=e}onRequestStart(e,t){return e.abort=this.#r.bind(this),super.onRequestStart(e,t)}onResponseStart(e,t,n,i){let a=n[`content-length`];if(a!=null&&a>this.#e)throw new r(`Response size (${a}) larger than maxSize (${this.#e})`);return this.aborted===!0?!0:super.onResponseStart(e,t,n,i)}onResponseError(e,t){super.onResponseError(e,this.aborted===!0?this.reason:t)}onResponseData(e,t){if(this.#n+=t.length,this.#n>this.#e)throw new r(`Response size (${this.#n}) larger than maxSize (${this.#e})`);return this.#n===this.#e&&(this.#t=!0),!0}onResponseEnd(e,t){if(this.aborted===!0){super.onResponseError(e,this.reason);return}super.onResponseEnd(e,this.#t?{}:t)}};function o({maxSize:e}={maxSize:1024*1024}){return t=>function(n,r){let{dumpMaxSize:i=e}=n;return t(n,new a({maxSize:i,signal:n.signal},r))}}t.exports=o})),De=e.c(((e,t)=>{let{isIP:n}=require(`node:net`),{lookup:r}=require(`node:dns`),i=xe(),{InvalidArgumentError:a,InformationalError:o}=d(),{kRequestOrigin:s}=l(),c=2**31-1;function u(e){let t=Object.getPrototypeOf(e);return Object.hasOwn(e,Symbol.iterator)||t!=null&&t!==Object.prototype&&typeof e[Symbol.iterator]==`function`}function f(e){return typeof e==`string`&&e.toLowerCase()===`host`}function p(e){if(e==null)return null;if(Array.isArray(e)){if(e.length===0||!Array.isArray(e[0]))return e;let t=[];for(let n of e)Array.isArray(n)&&n.length===2?t.push(n[0],n[1]):t.push(n);return t}if(typeof e==`object`&&u(e)){let t=[];for(let n of e)Array.isArray(n)&&n.length===2?t.push(n[0],n[1]):t.push(n);return t}return e}function m(e){if(e==null)return!1;if(Array.isArray(e)){if(e.length===0)return!1;for(let t=0;t<e.length;t+=2)if(f(e[t]))return!0;return!1}if(typeof e==`object`){for(let t in e)if(f(t))return!0}return!1}function h(e,t){let n=p(t);return m(n)?n:Array.isArray(n)?[`host`,e,...n]:n&&typeof n==`object`?{host:e,...n}:{host:e}}var g=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,t){this.#t.set(e,t)}delete(e){this.#t.delete(e)}full(){return this.size>=this.#e}},_=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.#n,this.pick=e.pick??this.#r,this.storage=e.storage??new g(e)}runLookup(e,t,n){let r=this.storage.get(e.hostname);if(r==null&&this.storage.full()){n(null,e);return}let i={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...t.dns,maxTTL:this.#e,maxItems:this.#t};if(r==null)this.lookup(e,i,(t,r)=>{if(t||r==null||r.length===0){n(t??new o(`No DNS entries found`));return}this.setRecords(e,r);let a=this.storage.get(e.hostname),s=this.pick(e,a,i.affinity),c;c=typeof s.port==`number`?`:${s.port}`:e.port===``?``:`:${e.port}`,n(null,new URL(`${e.protocol}//${s.family===6?`[${s.address}]`:s.address}${c}`))});else{let a=this.pick(e,r,i.affinity);if(a==null){this.storage.delete(e.hostname),this.runLookup(e,t,n);return}let o;o=typeof a.port==`number`?`:${a.port}`:e.port===``?``:`:${e.port}`,n(null,new URL(`${e.protocol}//${a.family===6?`[${a.address}]`:a.address}${o}`))}}#n(e,t,n){r(e.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:`ipv4first`},(e,t)=>{if(e)return n(e);let r=new Map;for(let e of t)r.set(`${e.address}:${e.family}`,e);n(null,r.values())})}#r(e,t,n){let r=null,{records:i,offset:a}=t,o;if(this.dualStack?(n??(a==null||a===c?(t.offset=0,n=4):(t.offset++,n=(t.offset&1)==1?6:4)),o=i[n]!=null&&i[n].ips.length>0?i[n]:i[n===4?6:4]):o=i[n],o==null||o.ips.length===0)return r;o.offset==null||o.offset===c?o.offset=0:o.offset++;let s=o.offset%o.ips.length;return r=o.ips[s]??null,r==null?r:Date.now()-r.timestamp>r.ttl?(o.ips.splice(s,1),this.pick(e,t,n)):r}pickFamily(e,t){let n=this.storage.get(e.hostname)?.records;if(!n)return null;let r=n[t];if(!r)return null;r.offset==null||r.offset===c?r.offset=0:r.offset++;let i=r.offset%r.ips.length,a=r.ips[i]??null;return a==null||Date.now()-a.timestamp>a.ttl&&r.ips.splice(i,1),a}setRecords(e,t){let n=Date.now(),r={records:{4:null,6:null}},i=this.#e;for(let e of t){e.timestamp=n,typeof e.ttl==`number`?(e.ttl=Math.min(e.ttl,this.#e),i=Math.min(i,e.ttl)):e.ttl=this.#e;let t=r.records[e.family]??{ips:[]};t.ips.push(e),r.records[e.family]=t}this.storage.set(e.hostname,r,{ttl:i})}deleteRecords(e){this.storage.delete(e.hostname)}getHandler(e,t){return new v(this,e,t)}},v=class extends i{#e=null;#t=null;#n=null;#r=null;#i=null;#a=!0;constructor(e,{origin:t,handler:n,dispatch:r,newOrigin:i},a){super(n),this.#r=t,this.#i=i,this.#t={...a},this.#e=e,this.#n=r}onResponseError(e,t){switch(t.code){case`ETIMEDOUT`:case`ECONNREFUSED`:if(this.#e.dualStack){if(!this.#a){super.onResponseError(e,t);return}this.#a=!1;let n=this.#i.hostname[0]===`[`?4:6,r=this.#e.pickFamily(this.#r,n);if(r==null){super.onResponseError(e,t);return}let i;i=typeof r.port==`number`?`:${r.port}`:this.#r.port===``?``:`:${this.#r.port}`;let a={...this.#t,origin:`${this.#r.protocol}//${r.family===6?`[${r.address}]`:r.address}${i}`,[s]:this.#t[s]===void 0?this.#r:this.#t[s],headers:h(this.#r.host,this.#t.headers)};this.#n(a,this);return}super.onResponseError(e,t);break;case`ENOTFOUND`:this.#e.deleteRecords(this.#r),super.onResponseError(e,t);break;default:super.onResponseError(e,t);break}}};t.exports=e=>{if(e?.maxTTL!=null&&(typeof e?.maxTTL!=`number`||e?.maxTTL<0))throw new a(`Invalid maxTTL. Must be a positive number`);if(e?.maxItems!=null&&(typeof e?.maxItems!=`number`||e?.maxItems<1))throw new a(`Invalid maxItems. Must be a positive number and greater than zero`);if(e?.affinity!=null&&e?.affinity!==4&&e?.affinity!==6)throw new a(`Invalid affinity. Must be either 4 or 6`);if(e?.dualStack!=null&&typeof e?.dualStack!=`boolean`)throw new a(`Invalid dualStack. Must be a boolean`);if(e?.lookup!=null&&typeof e?.lookup!=`function`)throw new a(`Invalid lookup. Must be a function`);if(e?.pick!=null&&typeof e?.pick!=`function`)throw new a(`Invalid pick. Must be a function`);if(e?.storage!=null&&(typeof e?.storage?.get!=`function`||typeof e?.storage?.set!=`function`||typeof e?.storage?.full!=`function`||typeof e?.storage?.delete!=`function`))throw new a(`Invalid storage. Must be a object with methods: { get, set, full, delete }`);let t=e?.dualStack??!0,r;r=t?e?.affinity??null:e?.affinity??4;let i=new _({maxTTL:e?.maxTTL??1e4,lookup:e?.lookup??null,pick:e?.pick??null,dualStack:t,affinity:r,maxItems:e?.maxItems??1/0,storage:e?.storage});return e=>function(t,r){if(t.origin==null)return e(t,r);let a=t.origin.constructor===URL?t.origin:new URL(t.origin);return n(a.hostname)===0?(i.runLookup(a,t,(n,o)=>{if(n)return r.onResponseError(null,n);e({...t,servername:a.hostname,origin:o.origin,[s]:t[s]===void 0?a:t[s],headers:h(a.host,t.headers)},i.getHandler({origin:a,dispatch:e,handler:r,newOrigin:o},t))}),!0):e(t,r)}}})),Oe=e.c(((e,t)=>{let{safeHTTPMethods:n,pathHasQueryOrFragment:r,hasSafeIterator:i,isValidHTTPToken:a}=m(),{serializePathWithQuery:o}=m(),{kRequestOrigin:s}=l(),c=[`no-store`,`private`,`no-cache`],u=Symbol(`invalid cache-control directives`);function d(e){return e.replace(/^[\t ]+|[\t ]+$/g,``)}function f(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function p(e){return e.replace(/^[\t ]+/,``)}function h(e){return e.replace(/[\t ]+$/,``)}function g(e,t){let n=!1;for(let r=t;r<e.length;r++)if(n)n=!1;else if(e[r]===`\\`)n=!0;else if(e[r]===`"`)return r;return-1}function _(e){let t=[],n=0,r=-1,i=!1,a=!1;for(let o=0;o<e.length;o++)i?a?a=!1:e[o]===`\\`?a=!0:e[o]===`"`&&(i=!1,r=-1):e[o]===`"`?(i=!0,r=o):e[o]===`,`&&(t.push({value:e.substring(n,o),fromMalformedQuote:!1}),n=o+1);if(!i)return t.push({value:e.substring(n),fromMalformedQuote:!1}),t;let o=e.substring(n),s=r-n,c=0;for(let e=0;e<o.length;e++)o[e]===`,`&&(t.push({value:o.substring(c,e),fromMalformedQuote:c>s}),c=e+1);return t.push({value:o.substring(c),fromMalformedQuote:c>s}),t}function v(e,t){let n=e[u];n===void 0&&(n=new Set,Object.defineProperty(e,u,{value:n})),n.add(t)}function y(e,t){return e[u]?.has(t)===!0}function b(e){for(let t of c)if(e.startsWith(t)&&e.length>t.length&&!a(e[t.length]))return t;let t=``,n=!1;for(let r=0;r<e.length;r++)a(e[r])?t+=e[r]:n=!0;if(n&&f(c,t))return t}function x(e){let t=e[s]===void 0?e.origin:e[s];return typeof t==`string`||t instanceof URL?t:null}function S(e,t){let n=x(e);if(t===void 0)return n;if(t===null)return null;if(n)try{if(new URL(n).origin!==t)return null}catch{return t}return t}function C(e,t=x(e)){if(!t)throw Error(`opts.origin is undefined`);let n=e.path||`/`;return e.query&&!r(n)&&(n=o(n,e.query)),{origin:t.toString(),method:e.method,path:n,headers:e.headers}}function w(e,t,n){let r=t.toLowerCase(),i=e[r],a=Array.isArray(n)?n:[n];i===void 0?e[r]=Array.isArray(n)?n.slice():n:Array.isArray(i)?i.push(...a):e[r]=[i,...a]}function T(e){let t;if(e.headers==null)t={};else if(typeof e.headers==`object`)if(t={},i(e.headers))if(Array.isArray(e.headers)){let n=e.headers[0];if(Array.isArray(n))for(let n of e.headers){if(!Array.isArray(n))throw Error(`opts.headers is not a valid header map`);let[e,r]=n;if(typeof e!=`string`||typeof r!=`string`)throw Error(`opts.headers is not a valid header map`);w(t,e,r)}else{let n=e.headers.length;if(n%2!=0)throw Error(`opts.headers is not a valid header map`);for(let r=0;r<n;r+=2){let n=e.headers[r],i=e.headers[r+1];if(typeof n!=`string`||typeof i!=`string`&&!Array.isArray(i))throw Error(`opts.headers is not a valid header map`);if(typeof i==`string`)w(t,n,i);else{let e=[];for(let t=0;t<i.length;t++){let n=i[t];e.push(typeof n==`string`?n:n.toString(`latin1`))}w(t,n,e)}}}}else for(let n of e.headers){if(!Array.isArray(n))throw Error(`opts.headers is not a valid header map`);let[e,r]=n;if(typeof e!=`string`||typeof r!=`string`)throw Error(`opts.headers is not a valid header map`);w(t,e,r)}else for(let n of Object.keys(e.headers))w(t,n,e.headers[n]);else throw Error(`opts.headers is not an object`);return t}function E(e){if(typeof e!=`object`)throw TypeError(`expected key to be object, got ${typeof e}`);for(let t of[`origin`,`method`,`path`])if(typeof e[t]!=`string`)throw TypeError(`expected key.${t} to be string, got ${typeof e[t]}`);if(e.headers!==void 0&&typeof e.headers!=`object`)throw TypeError(`expected headers to be object, got ${typeof e}`)}function D(e){if(typeof e!=`object`)throw TypeError(`expected value to be object, got ${typeof e}`);for(let t of[`statusCode`,`cachedAt`,`staleAt`,`deleteAt`])if(typeof e[t]!=`number`)throw TypeError(`expected value.${t} to be number, got ${typeof e[t]}`);if(typeof e.statusMessage!=`string`)throw TypeError(`expected value.statusMessage to be string, got ${typeof e.statusMessage}`);if(e.headers!=null&&typeof e.headers!=`object`)throw TypeError(`expected value.rawHeaders to be object, got ${typeof e.headers}`);if(e.vary!==void 0&&typeof e.vary!=`object`)throw TypeError(`expected value.vary to be object, got ${typeof e.vary}`);if(e.etag!==void 0&&typeof e.etag!=`string`)throw TypeError(`expected value.etag to be string, got ${typeof e.etag}`)}function O(e){let t={},n=new Set,r=new Set,i=_(Array.isArray(e)?e.join(`,`):e);for(let e=0;e<i.length;e++){let o=i[e],s=o.value.toLowerCase(),c=o.fromMalformedQuote,l=s.indexOf(`=`),u,f,m=!1,_=!1;if(l!==-1){let e=s.substring(0,l),t=s.substring(l+1);m=h(e)!==e,_=p(t)!==t,u=d(e),f=p(t)}else u=d(s);let y=b(u);if(y!==void 0){t[y]=!0;continue}switch(u){case`min-fresh`:case`max-stale`:case`max-age`:case`s-maxage`:case`stale-while-revalidate`:case`stale-if-error`:{if(c||n.has(u))continue;if(f===void 0||m||_){delete t[u],n.add(u),v(t,u);continue}if(f.length>=2&&f[0]===`"`&&f[f.length-1]===`"`&&(f=f.substring(1,f.length-1)),!/^[0-9]+$/.test(f)){delete t[u],n.add(u),v(t,u);continue}let e=Math.min(parseInt(f,10),2147483647);u===`min-fresh`?(!(u in t)||t[u]<e)&&(t[u]=e):(!(u in t)||t[u]>e)&&(t[u]=e);break}case`private`:case`no-cache`:if(c){t[u]=!0;break}if(f!==void 0&&f.length===0){t[u]=!0;break}if(f){if(f[0]===`"`){f=h(f);let n=``,r=e,o=!1,s=g(f,1);if(s!==-1)n=f.substring(1,s),o=!0;else{let t=[f.substring(1)];for(let n=e+1;n<i.length;n++){let e=d(i[n].value),a=g(e,0);if(r=n,a!==-1){t.push(e.substring(0,a)),o=!0;break}t.push(e)}n=t.join(`,`)}if(!o){t[u]=!0;break}e=r;let c=n.split(`,`),l=!0;for(let e=0;e<c.length;e++)c[e]=d(c[e]),a(c[e])||(l=!1);l?t[u]!==!0&&(u in t?t[u]=t[u].concat(c):t[u]=c):t[u]=!0}else{let e=d(f);a(e)?t[u]!==!0&&(u in t?t[u]=t[u].concat(e):t[u]=[e]):t[u]=!0}break}case`public`:case`must-revalidate`:case`proxy-revalidate`:case`immutable`:case`no-transform`:case`must-understand`:case`only-if-cached`:if(c||r.has(u))continue;if(f!==void 0){delete t[u],r.add(u);continue}t[u]=!0;break;case`no-store`:t[u]=!0;break;default:continue}}return t}function k(e){let t=Array.isArray(e)?e:[e],n=[];for(let e=0;e<t.length;e++){let r=t[e].split(`,`);for(let e=0;e<r.length;e++)n.push(r[e])}return n}function A(e){let t=k(e);for(let e=0;e<t.length;e++)if(d(t[e]).indexOf(`*`)!==-1)return!0;return!1}function j(e,t){if(A(e))return t;let n={},r=k(e);for(let e of r){let r=d(e).toLowerCase();if(r.length===0)continue;if(!a(r))return;let i=t[r];n[r]=Array.isArray(i)?i.slice():i??null}return n}function M(e){return A(e)||j(e,{})===void 0}function N(e){return e.length<=2?!1:e[0]===`"`&&e[e.length-1]===`"`?!(e[1]===`"`||e.startsWith(`"W/`)):e.startsWith(`W/"`)&&e[e.length-1]===`"`?e.length!==4:!1}function P(e,t=`CacheStore`){if(typeof e!=`object`||!e)throw TypeError(`expected type of ${t} to be a CacheStore, got ${e===null?`null`:typeof e}`);for(let n of[`get`,`createWriteStream`,`delete`])if(typeof e[n]!=`function`)throw TypeError(`${t} needs to have a \`${n}()\` function`)}function F(e,t=`CacheMethods`){if(!Array.isArray(e))throw TypeError(`expected type of ${t} needs to be an array, got ${e===null?`null`:typeof e}`);if(e.length===0)throw TypeError(`${t} needs to have at least one method`);for(let r of e)if(!f(n,r))throw TypeError(`element of ${t}-array needs to be one of following values: ${n.join(`, `)}, got ${r}`)}function I(e,t){let n={};if(e.headers){let r=Object.keys(e.headers).sort();for(let i of r)t?.has(i.toLowerCase())||(n[i]=e.headers[i])}return JSON.stringify([e.origin,e.method,e.path,n])}t.exports={getInterceptorOrigin:S,getRequestOrigin:x,makeCacheKey:C,normalizeHeaders:T,assertCacheKey:E,assertCacheValue:D,parseCacheControlHeader:O,hasInvalidCacheControlDirective:y,parseVaryHeader:j,hasVaryStar:A,isInvalidOrWildcardVaryHeader:M,isEtagUsable:N,assertCacheMethods:F,assertCacheStore:P,makeDeduplicationKey:I}})),ke=e.c(((e,t)=>{function n(e){switch(e[3]){case`,`:return i(e);case` `:return a(e);default:return o(e)}}function r(e,t,n,r,i,a,o){let s=new Date(Date.UTC(e,t,n,r,i,a));return e>=0&&e<=99&&s.setUTCFullYear(e),s.getUTCFullYear()===e&&s.getUTCMonth()===t&&s.getUTCDate()===n&&s.getUTCHours()===r&&s.getUTCMinutes()===i&&s.getUTCSeconds()===a&&s.getUTCDay()===o?s:void 0}function i(e){if(e.length!==29||e[4]!==` `||e[7]!==` `||e[11]!==` `||e[16]!==` `||e[19]!==`:`||e[22]!==`:`||e[25]!==` `||e[26]!==`G`||e[27]!==`M`||e[28]!==`T`)return;let t=-1;if(e[0]===`S`&&e[1]===`u`&&e[2]===`n`)t=0;else if(e[0]===`M`&&e[1]===`o`&&e[2]===`n`)t=1;else if(e[0]===`T`&&e[1]===`u`&&e[2]===`e`)t=2;else if(e[0]===`W`&&e[1]===`e`&&e[2]===`d`)t=3;else if(e[0]===`T`&&e[1]===`h`&&e[2]===`u`)t=4;else if(e[0]===`F`&&e[1]===`r`&&e[2]===`i`)t=5;else if(e[0]===`S`&&e[1]===`a`&&e[2]===`t`)t=6;else return;let n=0;if(e[5]===`0`){let t=e.charCodeAt(6);if(t<49||t>57)return;n=t-48}else{let t=e.charCodeAt(5);if(t<49||t>51)return;let r=e.charCodeAt(6);if(r<48||r>57)return;n=(t-48)*10+(r-48)}let i=-1;if(e[8]===`J`&&e[9]===`a`&&e[10]===`n`)i=0;else if(e[8]===`F`&&e[9]===`e`&&e[10]===`b`)i=1;else if(e[8]===`M`&&e[9]===`a`)if(e[10]===`r`)i=2;else if(e[10]===`y`)i=4;else return;else if(e[8]===`J`)if(e[9]===`a`&&e[10]===`n`)i=0;else if(e[9]===`u`)if(e[10]===`n`)i=5;else if(e[10]===`l`)i=6;else return;else return;else if(e[8]===`A`)if(e[9]===`p`&&e[10]===`r`)i=3;else if(e[9]===`u`&&e[10]===`g`)i=7;else return;else if(e[8]===`S`&&e[9]===`e`&&e[10]===`p`)i=8;else if(e[8]===`O`&&e[9]===`c`&&e[10]===`t`)i=9;else if(e[8]===`N`&&e[9]===`o`&&e[10]===`v`)i=10;else if(e[8]===`D`&&e[9]===`e`&&e[10]===`c`)i=11;else return;let a=e.charCodeAt(12);if(a<48||a>57)return;let o=e.charCodeAt(13);if(o<48||o>57)return;let s=e.charCodeAt(14);if(s<48||s>57)return;let c=e.charCodeAt(15);if(c<48||c>57)return;let l=(a-48)*1e3+(o-48)*100+(s-48)*10+(c-48),u=0;if(e[17]===`0`){let t=e.charCodeAt(18);if(t<48||t>57)return;u=t-48}else{let t=e.charCodeAt(17);if(t<48||t>50)return;let n=e.charCodeAt(18);if(n<48||n>57||t===50&&n>51)return;u=(t-48)*10+(n-48)}let d=0;if(e[20]===`0`){let t=e.charCodeAt(21);if(t<48||t>57)return;d=t-48}else{let t=e.charCodeAt(20);if(t<48||t>53)return;let n=e.charCodeAt(21);if(n<48||n>57)return;d=(t-48)*10+(n-48)}let f=0;if(e[23]===`0`){let t=e.charCodeAt(24);if(t<48||t>57)return;f=t-48}else{let t=e.charCodeAt(23);if(t<48||t>53)return;let n=e.charCodeAt(24);if(n<48||n>57)return;f=(t-48)*10+(n-48)}return r(l,i,n,u,d,f,t)}function a(e){if(e.length!==24||e[7]!==` `||e[10]!==` `||e[19]!==` `)return;let t=-1;if(e[0]===`S`&&e[1]===`u`&&e[2]===`n`)t=0;else if(e[0]===`M`&&e[1]===`o`&&e[2]===`n`)t=1;else if(e[0]===`T`&&e[1]===`u`&&e[2]===`e`)t=2;else if(e[0]===`W`&&e[1]===`e`&&e[2]===`d`)t=3;else if(e[0]===`T`&&e[1]===`h`&&e[2]===`u`)t=4;else if(e[0]===`F`&&e[1]===`r`&&e[2]===`i`)t=5;else if(e[0]===`S`&&e[1]===`a`&&e[2]===`t`)t=6;else return;let n=-1;if(e[4]===`J`&&e[5]===`a`&&e[6]===`n`)n=0;else if(e[4]===`F`&&e[5]===`e`&&e[6]===`b`)n=1;else if(e[4]===`M`&&e[5]===`a`)if(e[6]===`r`)n=2;else if(e[6]===`y`)n=4;else return;else if(e[4]===`J`)if(e[5]===`a`&&e[6]===`n`)n=0;else if(e[5]===`u`)if(e[6]===`n`)n=5;else if(e[6]===`l`)n=6;else return;else return;else if(e[4]===`A`)if(e[5]===`p`&&e[6]===`r`)n=3;else if(e[5]===`u`&&e[6]===`g`)n=7;else return;else if(e[4]===`S`&&e[5]===`e`&&e[6]===`p`)n=8;else if(e[4]===`O`&&e[5]===`c`&&e[6]===`t`)n=9;else if(e[4]===`N`&&e[5]===`o`&&e[6]===`v`)n=10;else if(e[4]===`D`&&e[5]===`e`&&e[6]===`c`)n=11;else return;let i=0;if(e[8]===` `){let t=e.charCodeAt(9);if(t<49||t>57)return;i=t-48}else{let t=e.charCodeAt(8);if(t<49||t>51)return;let n=e.charCodeAt(9);if(n<48||n>57)return;i=(t-48)*10+(n-48)}let a=0;if(e[11]===`0`){let t=e.charCodeAt(12);if(t<48||t>57)return;a=t-48}else{let t=e.charCodeAt(11);if(t<48||t>50)return;let n=e.charCodeAt(12);if(n<48||n>57||t===50&&n>51)return;a=(t-48)*10+(n-48)}let o=0;if(e[14]===`0`){let t=e.charCodeAt(15);if(t<48||t>57)return;o=t-48}else{let t=e.charCodeAt(14);if(t<48||t>53)return;let n=e.charCodeAt(15);if(n<48||n>57)return;o=(t-48)*10+(n-48)}let s=0;if(e[17]===`0`){let t=e.charCodeAt(18);if(t<48||t>57)return;s=t-48}else{let t=e.charCodeAt(17);if(t<48||t>53)return;let n=e.charCodeAt(18);if(n<48||n>57)return;s=(t-48)*10+(n-48)}let c=e.charCodeAt(20);if(c<48||c>57)return;let l=e.charCodeAt(21);if(l<48||l>57)return;let u=e.charCodeAt(22);if(u<48||u>57)return;let d=e.charCodeAt(23);if(!(d<48||d>57))return r((c-48)*1e3+(l-48)*100+(u-48)*10+(d-48),n,i,a,o,s,t)}function o(e){let t=-1,n=-1;if(e[0]===`S`)e[1]===`u`&&e[2]===`n`&&e[3]===`d`&&e[4]===`a`&&e[5]===`y`?(n=0,t=6):e[1]===`a`&&e[2]===`t`&&e[3]===`u`&&e[4]===`r`&&e[5]===`d`&&e[6]===`a`&&e[7]===`y`&&(n=6,t=8);else if(e[0]===`M`&&e[1]===`o`&&e[2]===`n`&&e[3]===`d`&&e[4]===`a`&&e[5]===`y`)n=1,t=6;else if(e[0]===`T`)e[1]===`u`&&e[2]===`e`&&e[3]===`s`&&e[4]===`d`&&e[5]===`a`&&e[6]===`y`?(n=2,t=7):e[1]===`h`&&e[2]===`u`&&e[3]===`r`&&e[4]===`s`&&e[5]===`d`&&e[6]===`a`&&e[7]===`y`&&(n=4,t=8);else if(e[0]===`W`&&e[1]===`e`&&e[2]===`d`&&e[3]===`n`&&e[4]===`e`&&e[5]===`s`&&e[6]===`d`&&e[7]===`a`&&e[8]===`y`)n=3,t=9;else if(e[0]===`F`&&e[1]===`r`&&e[2]===`i`&&e[3]===`d`&&e[4]===`a`&&e[5]===`y`)n=5,t=6;else return;if(e[t]!==`,`||e.length-t-1!=23||e[t+1]!==` `||e[t+4]!==`-`||e[t+8]!==`-`||e[t+11]!==` `||e[t+14]!==`:`||e[t+17]!==`:`||e[t+20]!==` `||e[t+21]!==`G`||e[t+22]!==`M`||e[t+23]!==`T`)return;let i=0;if(e[t+2]===`0`){let n=e.charCodeAt(t+3);if(n<49||n>57)return;i=n-48}else{let n=e.charCodeAt(t+2);if(n<49||n>51)return;let r=e.charCodeAt(t+3);if(r<48||r>57)return;i=(n-48)*10+(r-48)}let a=-1;if(e[t+5]===`J`&&e[t+6]===`a`&&e[t+7]===`n`)a=0;else if(e[t+5]===`F`&&e[t+6]===`e`&&e[t+7]===`b`)a=1;else if(e[t+5]===`M`&&e[t+6]===`a`&&e[t+7]===`r`)a=2;else if(e[t+5]===`A`&&e[t+6]===`p`&&e[t+7]===`r`)a=3;else if(e[t+5]===`M`&&e[t+6]===`a`&&e[t+7]===`y`)a=4;else if(e[t+5]===`J`&&e[t+6]===`u`&&e[t+7]===`n`)a=5;else if(e[t+5]===`J`&&e[t+6]===`u`&&e[t+7]===`l`)a=6;else if(e[t+5]===`A`&&e[t+6]===`u`&&e[t+7]===`g`)a=7;else if(e[t+5]===`S`&&e[t+6]===`e`&&e[t+7]===`p`)a=8;else if(e[t+5]===`O`&&e[t+6]===`c`&&e[t+7]===`t`)a=9;else if(e[t+5]===`N`&&e[t+6]===`o`&&e[t+7]===`v`)a=10;else if(e[t+5]===`D`&&e[t+6]===`e`&&e[t+7]===`c`)a=11;else return;let o=e.charCodeAt(t+9);if(o<48||o>57)return;let s=e.charCodeAt(t+10);if(s<48||s>57)return;let c=(o-48)*10+(s-48);c+=c<70?2e3:1900;let l=0;if(e[t+12]===`0`){let n=e.charCodeAt(t+13);if(n<48||n>57)return;l=n-48}else{let n=e.charCodeAt(t+12);if(n<48||n>50)return;let r=e.charCodeAt(t+13);if(r<48||r>57||n===50&&r>51)return;l=(n-48)*10+(r-48)}let u=0;if(e[t+15]===`0`){let n=e.charCodeAt(t+16);if(n<48||n>57)return;u=n-48}else{let n=e.charCodeAt(t+15);if(n<48||n>53)return;let r=e.charCodeAt(t+16);if(r<48||r>57)return;u=(n-48)*10+(r-48)}let d=0;if(e[t+18]===`0`){let n=e.charCodeAt(t+19);if(n<48||n>57)return;d=n-48}else{let n=e.charCodeAt(t+18);if(n<48||n>53)return;let r=e.charCodeAt(t+19);if(r<48||r>57)return;d=(n-48)*10+(r-48)}return r(c,a,i,l,u,d,n)}t.exports={parseHttpDate:n}})),Ae=e.c(((e,t)=>{let n=m(),{parseCacheControlHeader:r,hasInvalidCacheControlDirective:i,parseVaryHeader:a,hasVaryStar:o,isInvalidOrWildcardVaryHeader:s,isEtagUsable:c}=Oe(),{parseHttpDate:l}=ke();function u(){}let d=[200,203,204,206,300,301,308,404,405,410,414,501],f=[206],p=2147483647e3;function h(e){return e.replace(/^[\t ]+|[\t ]+$/g,``)}function g(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function _(e,t){let n=Array.isArray(t)?t:[t];for(let t=0;t<n.length;t++){let r=n[t].split(`,`);for(let t=0;t<r.length;t++)e.push(h(r[t]).toLowerCase())}}function v(e,t){if(typeof t!=`string`)return;let n,r,i;try{n=new URL(e.origin),r=new URL(e.path,n),i=new URL(t,r)}catch{return}if(i.origin===n.origin)return i.pathname+i.search}function y(e,t,r){C(e,{...t,path:r});for(let i=0;i<n.safeHTTPMethods.length;i++){let a=n.safeHTTPMethods[i];a!==t.method&&C(e,{...t,method:a,path:r})}}function b(e,t,n){if(n===void 0)return;let r=Array.isArray(n)?n:[n];for(let n=0;n<r.length;n++){let i=v(t,r[n]);i!==void 0&&y(e,t,i)}}function x(e,t,n){y(e,t,t.path),b(e,t,n.location),b(e,t,n[`content-location`])}var S=class{#e;#t;#n;#r;#i;#a;constructor({store:e,type:t,cacheByDefault:n},r,i){this.#r=e,this.#t=t,this.#n=n,this.#e=r,this.#i=i}onRequestStart(e,t){this.#a?.destroy(),this.#a=void 0,this.#i.onRequestStart?.(e,t)}onBodySent(e){this.#i.onBodySent?.(e)}onRequestSent(){this.#i.onRequestSent?.()}onRequestUpgrade(e,t,n,r){this.#i.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,i,o){let l=()=>this.#i.onResponseStart?.(e,t,i,o),u=this;if(!g(n.safeHTTPMethods,this.#e.method)&&t>=200&&t<=399)return x(this.#r,this.#e,i),l();let f=i[`cache-control`],m=f?r(f):{};if(T(this.#t,i,m))return C(this.#r,this.#e),l();let h=i[`last-modified`]&&g(d,t);if(!f&&!i.expires&&!h&&!this.#n)return t===304&&i.vary&&s(i.vary)&&C(this.#r,this.#e),l();if(!E(this.#t,this.#e.method,t,i,m,this.#e.headers))return t===304&&(f||T(this.#t,i,m))&&C(this.#r,this.#e),l();let _=Date.now(),v=Object.hasOwn(i,`age`)?O(i.age):void 0;if(v!==void 0&&v>=p)return w(t,this.#r,this.#e),l();let y=Object.hasOwn(i,`date`)?D(i.date):void 0;if(y===null)return w(t,this.#r,this.#e),l();let b=y?Math.max(0,_-y.getTime()):0,S=Math.max(b,v??0),M=typeof i.etag==`string`&&c(i.etag)||typeof i[`last-modified`]==`string`,N=k(this.#t,_,v,i,y,m,M)??this.#n,P=N===0&&M;if(N===void 0||S>=N&&!P)return(f||N!==void 0)&&w(t,this.#r,this.#e),l();let F=_-S,I=N+F;if(_>=I&&!P)return w(t,this.#r,this.#e),l();let L;if(this.#e.headers&&i.vary&&(L=a(i.vary,this.#e.headers),!L))return l();let R=F,z=A(F,_,m,I),B=j(i,m),V={statusCode:t,statusMessage:o,headers:B,vary:L,cacheControlDirectives:m,cachedAt:R,staleAt:I,deleteAt:z};if(t===304){let t=t=>{if(!t)return l();if(V.statusCode=t.statusCode,V.statusMessage=t.statusMessage,V.etag=t.etag,V.vary=L??t.vary,V.headers={...t.headers,...B},l(),this.#a=this.#r.createWriteStream(this.#e,V),!(!this.#a||!t?.body))if(typeof t.body.values==`function`){let n=t.body.values(),r=()=>{for(let t of n){let n=this.#a.write(t)===!1;if(this.#i.onResponseData?.(e,t),n)break}};this.#a.on(`error`,function(){u.#a=void 0,u.#r.delete(u.#e)}).on(`drain`,()=>{r()}).on(`close`,function(){u.#a===this&&(u.#a=void 0)}),r()}else typeof t.body.on==`function`&&(t.body.on(`data`,t=>{this.#a.write(t),this.#i.onResponseData?.(e,t)}).on(`end`,()=>{this.#a.end()}).on(`error`,()=>{this.#a=void 0,this.#r.delete(this.#e)}),this.#a.on(`error`,function(){u.#a=void 0,u.#r.delete(u.#e)}).on(`close`,function(){u.#a===this&&(u.#a=void 0)}))},n=this.#r.get(this.#e);n&&typeof n.then==`function`?n.then(t):t(n)}else{if(typeof i.etag==`string`&&c(i.etag)&&(V.etag=i.etag),this.#a=this.#r.createWriteStream(this.#e,V),!this.#a)return l();this.#a.on(`drain`,()=>e.resume()).on(`error`,function(){u.#a=void 0,u.#r.delete(u.#e)}).on(`close`,function(){u.#a===this&&(u.#a=void 0),e.resume()}),l()}}onResponseData(e,t){this.#a?.write(t)===!1&&e.pause(),this.#i.onResponseData?.(e,t)}onResponseEnd(e,t){this.#a?.end(),this.#i.onResponseEnd?.(e,t)}onResponseError(e,t){this.#a?.destroy(t),this.#a=void 0,this.#i.onResponseError?.(e,t)}};function C(e,t){try{e.delete(t)?.catch?.(u)}catch{}}function w(e,t,n){e===304&&C(t,n)}function T(e,t,n){return n[`no-store`]===!0||e===`shared`&&(n.private===!0||Object.hasOwn(t,`set-cookie`))||(t.vary?s(t.vary):!1)}function E(e,t,r,i,a,s){return!(!g(n.safeHTTPMethods,t)||r<200||g(f,r)||!g(d,r)&&!i.expires&&!a.public&&a[`max-age`]===void 0&&!(a.private&&e===`private`)&&!(a[`s-maxage`]!==void 0&&e===`shared`)||a[`no-store`]||e===`shared`&&(a.private===!0||Object.hasOwn(i,`set-cookie`))||i.vary&&o(i.vary)||s!=null&&Object.hasOwn(s,`authorization`)&&(!a.public&&!a[`s-maxage`]&&!a[`must-revalidate`]||typeof s.authorization!=`string`||Array.isArray(a[`no-cache`])&&g(a[`no-cache`],`authorization`)||Array.isArray(a.private)&&g(a.private,`authorization`)))}function D(e){let t=e;if(Array.isArray(t)){if(t.length!==1)return null;t=t[0]}return typeof t==`string`?l(t):null}function O(e){let t=e;if(Array.isArray(t)){if(t.length!==1)return p;t=t[0]}if(typeof t!=`string`||!/^[\t ]*[0-9]+[\t ]*$/.test(t))return p;let n=BigInt(t.replace(/^[\t ]+|[\t ]+$/g,``));return n>=BigInt(p/1e3)?p:Number(n)*1e3}function k(e,t,n,r,a,o,s){if(e===`shared`){if(i(o,`s-maxage`))return 0;let e=o[`s-maxage`];if(e!==void 0)return e>0?e*1e3:0}if(i(o,`max-age`))return 0;let c=o[`max-age`];if(c!==void 0)return c>0?c*1e3:0;if(Object.hasOwn(r,`expires`)){if(typeof r.expires!=`string`)return 0;let e=l(r.expires);if(!e||t>=e.getTime())return 0;if(a){if(a>=e)return 0;let t=e.getTime()-a.getTime();return n!==void 0&&n>=t?0:t}return e.getTime()-t}if(typeof r[`last-modified`]==`string`){let e=l(r[`last-modified`]);if(e)return e.getTime()>=t?void 0:(t-e.getTime())*.1}if(o.immutable)return 31536e6;if(o[`no-cache`]===!0&&s)return 0}function A(e,t,n,r){let i=-1/0,a=-1/0,o=-1/0;if(n[`stale-while-revalidate`]&&(i=r+n[`stale-while-revalidate`]*1e3),n[`stale-if-error`]&&(a=r+n[`stale-if-error`]*1e3),n.immutable&&i===-1/0&&a===-1/0&&(o=t+31536e6),i===-1/0&&a===-1/0&&o===-1/0){let n=r-e;if(n<=0)return t+864e5;let i=Math.min(Math.max(t-e,0),1e3);return r+n+i}return Math.max(r,i,a,o)}function j(e,t){let n=[`connection`,`proxy-authenticate`,`proxy-authentication-info`,`proxy-authorization`,`proxy-connection`,`te`,`transfer-encoding`,`upgrade`,`age`];e.connection&&_(n,e.connection),Array.isArray(t[`no-cache`])&&n.push(...t[`no-cache`]),Array.isArray(t.private)&&n.push(...t.private);let r;for(let t of n)Object.hasOwn(e,t)&&(r??={...e},delete r[t]);return r??e}t.exports=S})),je=e.c(((e,t)=>{let{Writable:n}=require(`node:stream`),{EventEmitter:r}=require(`node:events`),{assertCacheKey:i,assertCacheValue:a}=Oe();var o=class extends r{#e=1024;#t=104857600;#n=5242880;#r=0;#i=0;#a=new Map;#o=!1;constructor(e){if(super(),e){if(typeof e!=`object`)throw 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 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 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 TypeError(`MemoryCacheStore options.maxEntrySize must be a non-negative integer`);this.#n=e.maxEntrySize}}}get size(){return this.#r}isFull(){return this.#r>=this.#t||this.#i>=this.#e}get(e){i(e);let t=`${e.origin}:${e.path}`,n=Date.now(),r=this.#a.get(t),a=r?s(e,r,n):null;return a==null?void 0:{statusMessage:a.statusMessage,statusCode:a.statusCode,headers:a.headers,body:a.body,vary:a.vary?a.vary:void 0,etag:a.etag,cacheControlDirectives:a.cacheControlDirectives,cachedAt:a.cachedAt,staleAt:a.staleAt,deleteAt:a.deleteAt}}createWriteStream(e,t){i(e),a(t);let r=`${e.origin}:${e.path}`,o=this,c={...e,...t,body:[],size:0};return new n({write(e,t,n){typeof e==`string`&&(e=Buffer.from(e,t)),c.size+=e.byteLength,c.size>o.#n?this.destroy():c.body.push(e),n(null)},final(t){let n=o.#a.get(r);n||(n=[],o.#a.set(r,n));let i=s(e,n,Date.now());if(i){let e=n.indexOf(i);n.splice(e,1,c),o.#r-=i.size}else n.push(c),o.#i+=1;if(o.#r+=c.size,o.#r>o.#t||o.#i>o.#e){o.#o||=(o.emit(`maxSizeExceeded`,{size:o.#r,maxSize:o.#t,count:o.#i,maxCount:o.#e}),!0);for(let[e,t]of o.#a){for(let e of t.splice(0,Math.ceil(t.length/2)))o.#r-=e.size,--o.#i;t.length===0&&o.#a.delete(e)}o.#r<o.#t&&o.#i<o.#e&&(o.#o=!1)}t(null)}})}delete(e){if(typeof e!=`object`)throw TypeError(`expected key to be object, got ${typeof e}`);let t=`${e.origin}:${e.path}`;for(let e of this.#a.get(t)??[])this.#r-=e.size,--this.#i;this.#a.delete(t)}};function s(e,t,n){for(let r=0;r<t.length;r++){let i=t[r];if(i.deleteAt>n&&i.method===e.method&&c(e,i))return i}}function c(e,t){if(t.vary==null)return!0;for(let n in t.vary)if(Object.hasOwn(t.vary,n)&&!l(e.headers?.[n],t.vary[n]))return!1;return!0}function l(e,t){if(e==null&&t==null)return!0;if(e==null&&t!=null||e!=null&&t==null)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return e===t}t.exports=o})),Me=e.c(((e,t)=>{let n=require(`node:assert`);t.exports=class{#e=!1;#t;#n;#r;#i;constructor(e,t,n){if(typeof e!=`function`)throw TypeError(`callback must be a function`);this.#t=e,this.#n=t,this.#i=n}onRequestStart(e,t){this.#e=!1,this.#r=t}onRequestUpgrade(e,t,n,r){this.#n.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,r,i){if(n(this.#t!=null),this.#e=t===304||this.#i&&t>=500&&t<=504,this.#t(this.#e,this.#r,t,r),this.#t=null,this.#e)return!0;this.#n.onRequestStart?.(e,this.#r),this.#n.onResponseStart?.(e,t,r,i)}onResponseData(e,t){if(!this.#e)return this.#n.onResponseData?.(e,t)}onResponseEnd(e,t){this.#e||this.#n.onResponseEnd?.(e,t)}onResponseError(e,t){if(!this.#e){if(this.#t){if(this.#i){this.#e=!0,this.#t(!0,this.#r),this.#t=null;return}this.#t(!1),this.#t=null}if(typeof this.#n.onResponseError==`function`)this.#n.onResponseError(e,t);else throw t}}}})),Ne=e.c(((e,t)=>{let n=require(`node:assert`),{Readable:r}=require(`node:stream`),i=m(),a=Ae(),o=je(),s=Me(),{assertCacheStore:c,assertCacheMethods:l,getInterceptorOrigin:u,makeCacheKey:f,normalizeHeaders:p,parseCacheControlHeader:h,isInvalidOrWildcardVaryHeader:g,parseVaryHeader:_}=Oe(),{AbortError:v}=d(),{parseHttpDate:y}=ke();function b(e,t){if(e!==void 0){if(!Array.isArray(e))throw TypeError(`expected ${t} to be an array or undefined, got ${typeof e}`);for(let n=0;n<e.length;n++){let r=e[n];if(typeof r!=`string`&&!(r instanceof RegExp))throw TypeError(`expected ${t}[${n}] to be a string or RegExp, got ${typeof r}`)}}}let x=()=>{};function S(e){return e.replace(/^[\t ]+|[\t ]+$/g,``)}function C(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function w(e){let t=e?.pragma;if(!t)return!1;let n=Array.isArray(t)?t:[t];for(let e=0;e<n.length;e++){let t=n[e];if(typeof t!=`string`)continue;let r=t.split(`,`);for(let e=0;e<r.length;e++)if(S(r[e]).toLowerCase()===`no-cache`)return!0}return!1}function T(e,t,{headers:n={}}){return!!(t?.[`no-cache`]||e.cacheControlDirectives?.[`no-cache`]&&!Array.isArray(e.cacheControlDirectives[`no-cache`])||n[`if-modified-since`]||n[`if-none-match`])}function E(e,t){return e.cacheControlDirectives?.[`must-revalidate`]===!0||t===`shared`&&(e.cacheControlDirectives?.[`proxy-revalidate`]===!0||e.cacheControlDirectives?.[`s-maxage`]!==void 0)}function D(e,t){if(t.vary&&g(t.vary)||e===`shared`&&Object.hasOwn(t,`set-cookie`))return!0;let n=t[`cache-control`];if(!n)return!1;let r=h(n);return r[`no-store`]===!0||e===`shared`&&r.private===!0}function O(e){return e[`cache-control`]!==void 0}function k(e,t){if(!t)return!1;for(let n in t)if(e.vary==null||!Object.hasOwn(e.vary,n))return!0;return!1}function A(e,t){try{e.delete(t)?.catch?.(x)}catch{}}function j(e){let t=e?.[`last-modified`];if(typeof t==`string`&&y(t))return t}function M(e,t){let n={...e.headers,"if-modified-since":j(t.headers)??new Date(t.cachedAt).toUTCString()};if(t.etag&&(n[`if-none-match`]=t.etag),t.vary)for(let e in t.vary)t.vary[e]!=null&&(n[e]=t.vary[e]);return n}function N(e,t,n){let r=Date.now();return r>e.staleAt?!E(e,n)&&t?.[`max-stale`]?r>e.staleAt+t[`max-stale`]*1e3:!0:t?.[`min-fresh`]?e.staleAt-r<=t[`min-fresh`]*1e3:!1}function P(e,t){let n=e.cacheControlDirectives?.[`stale-while-revalidate`];return!n||E(e,t)?!1:Date.now()<=e.staleAt+n*1e3}function F(e,t,n,r,i,o){if(o?.[`only-if-cached`]){let e=!1,t={paused:!1,rawHeaders:[],rawTrailers:[],pause(){this.paused=!0},resume(){this.paused=!1},abort:n=>{e=!0,r.onResponseError?.(t,n??new v)}};try{if(r.onRequestStart?.(t,null),e||(r.onResponseStart?.(t,504,{},`Gateway Timeout`),e))return;r.onResponseEnd?.(t,{})}catch(e){typeof r.onResponseError==`function`&&r.onResponseError(t,e)}return!0}return e(i,new a(t,n,r))}function I(e,t,a,o,s,c){let l=i.isStream(a.body)?a.body:r.from(a.body??[]);n(!l.destroyed,`stream should not be destroyed`),n(!l.readableDidRead,`stream should not be readableDidRead`);let u={rawHeaders:[],rawTrailers:[],resume(){l.resume()},pause(){l.pause()},get paused(){return l.isPaused()},get aborted(){return l.destroyed},get reason(){return l.errored},abort(e){l.destroy(e??new v)}};if(l.on(`error`,function(t){if(!this.readableEnded)if(typeof e.onResponseError==`function`)e.onResponseError(u,t);else throw t}).on(`close`,function(){this.errored||e.onResponseEnd?.(u,{})}),e.onRequestStart?.(u,s),l.destroyed)return;let d={...a.headers,age:String(o)};c&&(d.warning=`110 - "response is stale"`),u.rawHeaders=i.toRawHeaders(d),e.onResponseStart?.(u,a.statusCode,d,a.statusMessage),t.method===`HEAD`?l.destroy():l.on(`data`,function(t){e.onResponseData?.(u,t)})}function L(e,t,n,r,o,c,l){if(!l)return F(e,t,n,r,o,c);if(t.type===`shared`&&Object.hasOwn(l.headers,`set-cookie`))return i.isStream(l.body)&&l.body.on(`error`,x).destroy(),A(t.store,n),F(e,t,n,r,o,c);let u=Date.now();if(u>l.deleteAt)return e(o,new a(t,n,r));let d=Math.round((u-l.cachedAt)/1e3),f=c?.[`max-age`]!==void 0&&d>=c[`max-age`],p=f||N(l,c,t.type),m=f||T(l,c,o);if(p||m){if(i.isStream(o.body)&&i.bodyLength(o.body)!==0)return e(o,new a(t,n,r));if(!m&&P(l,t.type))return I(r,o,l,d,null,!0),queueMicrotask(()=>{let r=M(o,l);e({...o,headers:r},new a(t,n,{onRequestStart(){},onRequestUpgrade(){},onResponseStart(){},onResponseData(){},onResponseEnd(){},onResponseError(){}}))}),!0;let f=!1;if(!E(l,t.type)){let e=l.cacheControlDirectives[`stale-if-error`]??c?.[`stale-if-error`];e&&(f=u<l.staleAt+e*1e3)}let h=M(o,l);return e({...o,headers:h},new s((s,c,u,f)=>{if(s){if(u===304){if(D(t.type,f))return i.isStream(l.body)&&l.body.on(`error`,x).destroy(),A(t.store,n),e(o,new a(t,n,r));if(O(f))A(t.store,n);else if(k(l,f.vary?_(f.vary,o.headers):void 0))return i.isStream(l.body)&&l.body.on(`error`,x).destroy(),A(t.store,n),e(o,new a(t,n,r))}I(r,o,l,d,c,p)}else i.isStream(l.body)&&l.body.on(`error`,x).destroy()},new a(t,n,r),f))}i.isStream(o.body)&&o.body.on(`error`,x).destroy(),I(r,o,l,d,null,!1)}t.exports=(e={})=>{let{store:t=new o,methods:n=[`GET`],cacheByDefault:r=void 0,type:s=`shared`,origins:d=void 0}=e;if(typeof e!=`object`||!e)throw TypeError(`expected type of opts to be an Object, got ${e===null?`null`:typeof e}`);if(c(t,`opts.store`),l(n,`opts.methods`),b(d,`opts.origins`),r!==void 0&&typeof r!=`number`)throw TypeError(`expected opts.cacheByDefault to be number or undefined, got ${typeof r}`);if(s!==void 0&&s!==`shared`&&s!==`private`)throw TypeError(`expected opts.type to be shared, private, or undefined, got ${typeof s}`);let m={store:t,methods:n,cacheByDefault:r,type:s},g=[];for(let e=0;e<i.safeHTTPMethods.length;e++){let t=i.safeHTTPMethods[e];C(n,t)||g.push(t)}return(e,n)=>(r,o)=>{let s=u(r,n);if(!s||C(g,r.method))return e(r,o);if(d!==void 0){let t=s.toString().toLowerCase(),n=!1;for(let e=0;e<d.length;e++){let r=d[e];if(typeof r==`string`){if(r.toLowerCase()===t){n=!0;break}}else if(r.test(t)){n=!0;break}}if(!n)return e(r,o)}r={...r,headers:p(r)};let c=r.headers?.[`cache-control`]?h(r.headers[`cache-control`]):w(r.headers)?{"no-cache":!0}:void 0;if(c?.[`no-store`])return e(r,o);let l=f(r,s);if(!C(i.safeHTTPMethods,r.method))return e(r,new a(m,l,o));let _=t.get(l);return _&&typeof _.then==`function`?_.then(t=>L(e,m,l,o,r,c,t)):L(e,m,l,o,r,c,_)}}})),Pe=e.c(((e,t)=>{let{createInflate:n,createGunzip:r,createBrotliDecompress:i,createZstdDecompress:a}=require(`node:zlib`),{pipeline:o,Transform:s}=require(`node:stream`),{InvalidArgumentError:c,ResponseExceededMaxSizeError:l}=d(),u=xe(),f={gzip:r,"x-gzip":r,br:i,deflate:n,compress:n,"x-compress":n,zstd:a},p=[204,304];function m(e){let t=0;return new s({transform(n,r,i){let a=t+n.length;if(a>e){i(new l(`Decompressed response size (${a}) exceeded maxSize (${e})`));return}t=a,i(null,n)}})}let h=!1;var g=class extends u{#e=[];#t;#n;#r;#i;#a=0;#o=!1;#s=!1;constructor(e,{skipStatusCodes:t=p,skipErrorResponses:n=!0,maxSize:r=67108864}={}){if(!Number.isSafeInteger(r)||r<1)throw new c(`maxSize must be a positive integer`);super(e),this.#n=t,this.#r=n,this.#i=r}#c(e,t){return!!(!e||t<200||this.#n.includes(t)||this.#r&&t>=400)}#l(e){let t=e.split(`,`);if(t.length>5)throw Error(`too many content-encodings in response: ${t.length}, maximum allowed is 5`);let n=[];for(let e=t.length-1;e>=0;e--){let r=t[e].trim();if(r){if(!f[r])return n.length=0,n;n.push(f[r]())}}if(n.length<2)return n;let r=[];for(let e=0;e<n.length;e++)r.push(n[e]),e<n.length-1&&r.push(m(this.#i));return r}#u(e,t){this.#o||(this.#s?this.onResponseError(e,t):e.abort(t))}#d(e,t){e.on(`readable`,()=>{if(this.#o)return;let n;for(;(n=e.read())!==null;){let e=this.#a+n.length;if(e>this.#i){this.#u(t,new l(`Decompressed response size (${e}) exceeded maxSize (${this.#i})`));return}if(this.#a=e,super.onResponseData(t,n)===!1)break}}),e.on(`error`,e=>{this.#u(t,e)})}#f(e){let t=this.#e[0];this.#d(t,e),t.on(`end`,()=>{this.#o||(this.#o=!0,this.#m(),super.onResponseEnd(e,this.#t))})}#p(e){let t=this.#e[this.#e.length-1];this.#d(t,e),o(this.#e,t=>{if(!this.#o){if(t){this.#u(e,t);return}this.#o=!0,this.#m(),super.onResponseEnd(e,this.#t)}})}#m(){this.#e.length=0}onResponseStart(e,t,n,r){let i=n[`content-encoding`];if(this.#c(i,t))return super.onResponseStart(e,t,n,r);let a=this.#l(i.toLowerCase());if(a.length===0)return this.#m(),super.onResponseStart(e,t,n,r);this.#e=a;let{"content-encoding":o,"content-length":s,...c}=n;if(e?.rawHeaders){let t=e.rawHeaders;if(Array.isArray(t)){let e=[];for(let n=0;n<t.length;n+=2){let r=t[n],i=(Buffer.isBuffer(r)?r.toString(`latin1`):`${r}`).toLowerCase();i===`content-encoding`||i===`content-length`||e.push(t[n],t[n+1])}t.splice(0,t.length,...e)}else if(typeof t==`object`)for(let e of Object.keys(t)){let n=e.toLowerCase();(n===`content-encoding`||n===`content-length`)&&delete t[e]}}return this.#e.length===1?this.#f(e):this.#p(e),super.onResponseStart(e,t,c,r)}onResponseData(e,t){if(this.#e.length>0){this.#e[0].write(t);return}super.onResponseData(e,t)}onResponseEnd(e,t){if(this.#e.length>0){this.#s=!0,this.#t=t,this.#e[0].end();return}super.onResponseEnd(e,t)}onResponseError(e,t){if(!this.#o){this.#o=!0;for(let e of this.#e)e.destroy();this.#m(),super.onResponseError(e,t)}}};function _(e={}){return h||=(process.emitWarning(`DecompressInterceptor is experimental and subject to change`,`ExperimentalWarning`),!0),t=>(n,r)=>n.method===`HEAD`?t(n,r):t(n,new g(r,e))}t.exports=_})),Fe=e.c(((e,t)=>{let{RequestAbortedError:n}=d(),r=5*1024*1024;t.exports=class{#e;#t=[];#n=r;#r=0;#i={};#a=``;#o=!1;#s=!1;#c=!1;#l=!1;#u=null;#d=null;constructor(e,t,n=r){this.#e=e,this.#d=t,this.#n=n}addWaitingHandler(e){if(this.#l||this.#c)return!1;let t=this.#f(e),n=t.controller;try{if(e.onRequestStart?.(n,null),n.aborted)return t.done=!0,!0;this.#s&&e.onResponseStart?.(n,this.#r,this.#i,this.#a)}catch{return t.done=!0,!0}return n.aborted||this.#t.push(t),!0}onRequestStart(e,t){this.#u=e,this.#e.onRequestStart?.(e,t)}onRequestUpgrade(e,t,n,r){this.#e.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,n,r){this.#s=!0,this.#r=t,this.#i=n,this.#a=r,this.#e.onResponseStart?.(e,t,n,r);for(let e of this.#t){let{handler:i,controller:a}=e;if(e.done||a.aborted){e.done=!0;continue}try{i.onResponseStart?.(a,t,n,r)}catch{}a.aborted&&(e.done=!0)}this.#g()}onResponseData(e,t){if(!(this.#o||this.#l)){this.#c=!0,this.#e.onResponseData?.(e,t);for(let e of this.#t){let{handler:n,controller:r}=e;if(e.done||r.aborted){e.done=!0;continue}if(r.paused){this.#p(e,t);continue}try{n.onResponseData?.(r,t)}catch{}r.aborted&&(e.done=!0,e.bufferedChunks=[],e.bufferedBytes=0)}this.#g()}}onResponseEnd(e,t){if(!(this.#o||this.#l)){this.#l=!0,this.#e.onResponseEnd?.(e,t);for(let e of this.#t){if(e.done||e.controller.aborted){e.done=!0;continue}if(this.#m(e),e.done||e.controller.aborted){e.done=!0;continue}if(e.controller.paused&&e.bufferedChunks.length>0){e.pendingTrailers=t;continue}try{e.handler.onResponseEnd?.(e.controller,t)}catch{}e.done=!0}this.#g(),this.#d?.()}}onResponseError(e,t){if(!this.#l){this.#o=!0,this.#l=!0,this.#e.onResponseError?.(e,t);for(let e of this.#t)this.#h(e,t);this.#t=[],this.#d?.()}}#f(e){let t={handler:e,controller:null,bufferedChunks:[],bufferedBytes:0,pendingTrailers:null,done:!1},r={aborted:!1,paused:!1,reason:null};return t.controller={resume:()=>{if(!r.aborted){if(r.paused=!1,this.#m(t),this.#l&&t.pendingTrailers&&t.bufferedChunks.length===0&&!r.paused&&!r.aborted){try{t.handler.onResponseEnd?.(t.controller,t.pendingTrailers)}catch{}t.pendingTrailers=null,t.done=!0}this.#g()}},pause:()=>{r.aborted||(r.paused=!0)},get paused(){return r.paused},get aborted(){return r.aborted},get reason(){return r.reason},abort:i=>{if(!r.aborted){r.aborted=!0,r.reason=i??null,t.done=!0,t.pendingTrailers=null,t.bufferedChunks=[],t.bufferedBytes=0;try{e.onResponseError?.(t.controller,r.reason??new n)}catch{}}}},t}#p(e,t){if(e.done||e.controller.aborted){e.done=!0,e.bufferedChunks=[],e.bufferedBytes=0;return}let r=Buffer.from(t);if(e.bufferedChunks.push(r),e.bufferedBytes+=r.length,e.bufferedBytes>this.#n){let t=new n(`Deduplicated waiting handler exceeded maxBufferSize (${this.#n} bytes) while paused`);this.#h(e,t)}}#m(e){let{handler:t,controller:n}=e;for(;!e.done&&!n.aborted&&!n.paused&&e.bufferedChunks.length>0;){let r=e.bufferedChunks.shift();e.bufferedBytes-=r.length;try{t.onResponseData?.(n,r)}catch{}if(n.aborted){e.done=!0,e.pendingTrailers=null,e.bufferedChunks=[],e.bufferedBytes=0;break}}}#h(e,t){e.done||(e.done=!0,e.pendingTrailers=null,e.bufferedChunks=[],e.bufferedBytes=0,e.controller.abort(t))}#g(){this.#t=this.#t.filter(e=>e.done===!1)}}})),Ie=e.c(((e,t)=>{let n=require(`node:diagnostics_channel`),r=m(),i=Fe(),{getInterceptorOrigin:a,normalizeHeaders:o,makeCacheKey:s,makeDeduplicationKey:c}=Oe(),l=n.channel(`undici:request:pending-requests`);t.exports=(e={})=>{let{methods:t=[`GET`],skipHeaderNames:n=[],excludeHeaderNames:u=[],maxBufferSize:d=5*1024*1024}=e;if(typeof e!=`object`||!e)throw TypeError(`expected type of opts to be an Object, got ${e===null?`null`:typeof e}`);if(!Array.isArray(t))throw TypeError(`expected opts.methods to be an array, got ${typeof t}`);for(let e of t)if(!r.safeHTTPMethods.includes(e))throw TypeError(`expected opts.methods to only contain safe HTTP methods, got ${e}`);if(!Array.isArray(n))throw TypeError(`expected opts.skipHeaderNames to be an array, got ${typeof n}`);if(!Array.isArray(u))throw TypeError(`expected opts.excludeHeaderNames to be an array, got ${typeof u}`);if(!Number.isFinite(d)||d<=0)throw TypeError(`expected opts.maxBufferSize to be a positive finite number, got ${d}`);let f=new Set(n.map(e=>e.toLowerCase())),p=new Set(u.map(e=>e.toLowerCase())),m=new Map;return(e,n)=>(r,u)=>{let h=a(r,n);if(!h||r.upgrade||t.includes(r.method)===!1)return e(r,u);if(r={...r,headers:o(r)},f.size>0){for(let t of Object.keys(r.headers))if(f.has(t.toLowerCase()))return e(r,u)}let g=c(s(r,h),p),_=m.get(g);if(_)return _.addWaitingHandler(u)?!0:e(r,u);let v=new i(u,()=>{m.delete(g),l.hasSubscribers&&l.publish({size:m.size,key:g,type:`removed`})},d);return m.set(g,v),l.hasSubscribers&&l.publish({size:m.size,key:g,type:`added`}),e(r,v)}}})),Le=e.c(((e,t)=>{let{Writable:n}=require(`node:stream`),{assertCacheKey:r,assertCacheValue:i}=Oe(),a,o=2*1e3*1e3*1e3;t.exports=class{#e=o;#t=1/0;#n;#r;#i;#a;#o;#s;#c;#l;constructor(e){if(e){if(typeof e!=`object`)throw 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 TypeError(`SqliteCacheStore options.maxEntrySize must be a non-negative integer`);if(e.maxEntrySize>o)throw 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 TypeError(`SqliteCacheStore options.maxCount must be a non-negative integer`);this.#t=e.maxCount}}a||=require(`node:sqlite`).DatabaseSync,this.#n=new a(e?.location??`:memory:`),this.#n.exec(`
|
|
11
11
|
PRAGMA journal_mode = WAL;
|
|
12
12
|
PRAGMA synchronous = NORMAL;
|
|
13
13
|
PRAGMA temp_store = memory;
|
|
@@ -91,10 +91,10 @@ Content-Type: ${s.type||`application/octet-stream`}\r\n\r\n`);a.push(e,s,o),type
|
|
|
91
91
|
ORDER BY cachedAt ASC
|
|
92
92
|
LIMIT ?
|
|
93
93
|
)
|
|
94
|
-
`)}close(){this.#n.close()}get(e){r(e);let t=this.#f(e);return t?{body:t.body?Buffer.from(t.body.buffer,t.body.byteOffset,t.body.byteLength):void 0,statusCode:t.statusCode,statusMessage:t.statusMessage,headers:t.headers?JSON.parse(t.headers):void 0,etag:t.etag?t.etag:void 0,vary:t.vary?JSON.parse(t.vary):void 0,cacheControlDirectives:t.cacheControlDirectives?JSON.parse(t.cacheControlDirectives):void 0,cachedAt:t.cachedAt,staleAt:t.staleAt,deleteAt:t.deleteAt}:void 0}set(e,t){r(e);let n=this.#d(e),i=Array.isArray(t.body)?Buffer.concat(t.body):t.body,a=i?.byteLength;if(a&&a>this.#e)return;let o=this.#f(e,!0);o?this.#i.run(i,t.deleteAt,t.statusCode,t.statusMessage,t.headers?JSON.stringify(t.headers):null,t.etag?t.etag:null,t.cacheControlDirectives?JSON.stringify(t.cacheControlDirectives):null,t.vary?JSON.stringify(t.vary):null,t.cachedAt,t.staleAt,o.id):(this.#a.run(n,e.method,i,t.deleteAt,t.statusCode,t.statusMessage,t.headers?JSON.stringify(t.headers):null,t.etag?t.etag:null,t.cacheControlDirectives?JSON.stringify(t.cacheControlDirectives):null,t.vary?JSON.stringify(t.vary):null,t.cachedAt,t.staleAt),this.#u())}createWriteStream(e,t){r(e),i(t);let a=0,o=[],s=this;return new n({decodeStrings:!0,write(e,t,n){a+=e.byteLength,a<=s.#e?o.push(e):this.destroy(),n()},final(n){s.set(e,{...t,body:o}),n()}})}delete(e){if(typeof e!=`object`)throw TypeError(`expected key to be object, got ${typeof e}`);this.#s.run(this.#d(e))}#u(){if(Number.isFinite(this.#t)&&this.size<=this.#t)return 0;{let e=this.#o.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.#c.get();return e}#d(e){return`${e.origin}/${e.path}`}#f(e,t=!1){let n=this.#d(e),{headers:r,method:i}=e,a=this.#r.all(n,i);if(a.length===0)return;let o=Date.now();for(let e of a){if(o>=e.deleteAt&&!t)continue;let n=!0;if(e.vary){let t=JSON.parse(e.vary);for(let e in t)if(!s(r[e],t[e])){n=!1;break}}if(n)return e}}};function s(e,t){if(e==null&&t==null)return!0;if(e==null&&t!=null||e!=null&&t==null)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return e===t}})),Re=e.c(((e,t)=>{let{kConstruct:n}=l(),{kEnumerableProperty:r}=m(),{iteratorMixin:i,isValidHeaderName:a,isValidHeaderValue:o}=j(),{webidl:s}=A(),c=require(`node:assert`),u=require(`node:util`);function d(e){return e===10||e===13||e===9||e===32}function f(e){let t=0,n=e.length;for(;n>t&&d(e.charCodeAt(n-1));)--n;for(;n>t&&d(e.charCodeAt(t));)++t;return t===0&&n===e.length?e:e.substring(t,n)}function p(e,t){if(Array.isArray(t))for(let n=0;n<t.length;++n){let r=t[n];if(r.length!==2)throw s.errors.exception({header:`Headers constructor`,message:`expected name/value pair to be length 2, found ${r.length}.`});h(e,r[0],r[1])}else if(typeof t==`object`&&t){let n=Object.keys(t);for(let r=0;r<n.length;++r)h(e,n[r],t[n[r]])}else throw s.errors.conversionFailed({prefix:`Headers constructor`,argument:`Argument 1`,types:[`sequence<sequence<ByteString>>`,`record<ByteString, ByteString>`]})}function h(e,t,n){if(n=f(n),!a(t))throw s.errors.invalidArgument({prefix:`Headers.append`,value:t,type:`header name`});if(!o(n))throw s.errors.invalidArgument({prefix:`Headers.append`,value:n,type:`header value`});if(b(e)===`immutable`)throw TypeError(`immutable`);return S(e).append(t,n,!1)}function g(e){let t=S(e);if(!t)return[];if(t.sortedMap)return t.sortedMap;let n=[],r=t.toSortedArray(),i=t.cookies;if(i===null||i.length===1)return t.sortedMap=r;for(let e=0;e<r.length;++e){let{0:t,1:a}=r[e];if(t===`set-cookie`)for(let e=0;e<i.length;++e)n.push([t,i[e]]);else n.push([t,a])}return t.sortedMap=n}function _(e,t){return e[0]<t[0]?-1:1}var v=class e{cookies=null;sortedMap;headersMap;constructor(t){t instanceof e?(this.headersMap=new Map(t.headersMap),this.sortedMap=t.sortedMap,this.cookies=t.cookies===null?null:[...t.cookies]):(this.headersMap=new Map(t),this.sortedMap=null)}contains(e,t){return this.headersMap.has(t?e:e.toLowerCase())}clear(){this.headersMap.clear(),this.sortedMap=null,this.cookies=null}append(e,t,n){this.sortedMap=null;let r=n?e:e.toLowerCase(),i=this.headersMap.get(r);if(i){let e=r===`cookie`?`; `:`, `;this.headersMap.set(r,{name:i.name,value:`${i.value}${e}${t}`})}else this.headersMap.set(r,{name:e,value:t});r===`set-cookie`&&(this.cookies??=[]).push(t)}set(e,t,n){this.sortedMap=null;let r=n?e:e.toLowerCase();r===`set-cookie`&&(this.cookies=[t]),this.headersMap.set(r,{name:e,value:t})}delete(e,t){this.sortedMap=null,t||(e=e.toLowerCase()),e===`set-cookie`&&(this.cookies=null),this.headersMap.delete(e)}get(e,t){return this.headersMap.get(t?e:e.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:e,1:{value:t}}of this.headersMap)yield[e,t]}get entries(){let e={};if(this.headersMap.size!==0)for(let{name:t,value:n}of this.headersMap.values())e[t]=n;return e}rawValues(){return this.headersMap.values()}get entriesList(){let e=[];if(this.headersMap.size!==0)for(let{0:t,1:{name:n,value:r}}of this.headersMap)if(t===`set-cookie`)for(let t of this.cookies)e.push([n,t]);else e.push([n,r]);return e}toSortedArray(){let e=this.headersMap.size,t=Array(e);if(e<=32){if(e===0)return t;let n=this.headersMap[Symbol.iterator](),r=n.next().value;t[0]=[r[0],r[1].value],c(r[1].value!==null);for(let r=1,i=0,a=0,o=0,s=0,l,u;r<e;++r){for(u=n.next().value,l=t[r]=[u[0],u[1].value],c(l[1]!==null),o=0,a=r;o<a;)s=o+(a-o>>1),t[s][0]<=l[0]?o=s+1:a=s;if(r!==s){for(i=r;i>o;)t[i]=t[--i];t[o]=l}}if(!n.next().done)throw TypeError(`Unreachable`);return t}else{let e=0;for(let{0:n,1:{value:r}}of this.headersMap)t[e++]=[n,r],c(r!==null);return t.sort(_)}}},y=class e{#e;#t;constructor(e=void 0){s.util.markAsUncloneable(this),e!==n&&(this.#t=new v,this.#e=`none`,e!==void 0&&(e=s.converters.HeadersInit(e,`Headers constructor`,`init`),p(this,e)))}append(t,n){s.brandCheck(this,e),s.argumentLengthCheck(arguments,2,`Headers.append`);let r=`Headers.append`;return t=s.converters.ByteString(t,r,`name`),n=s.converters.ByteString(n,r,`value`),h(this,t,n)}delete(t){if(s.brandCheck(this,e),s.argumentLengthCheck(arguments,1,`Headers.delete`),t=s.converters.ByteString(t,`Headers.delete`,`name`),!a(t))throw s.errors.invalidArgument({prefix:`Headers.delete`,value:t,type:`header name`});if(this.#e===`immutable`)throw TypeError(`immutable`);this.#t.contains(t,!1)&&this.#t.delete(t,!1)}get(t){s.brandCheck(this,e),s.argumentLengthCheck(arguments,1,`Headers.get`);let n=`Headers.get`;if(t=s.converters.ByteString(t,n,`name`),!a(t))throw s.errors.invalidArgument({prefix:n,value:t,type:`header name`});return this.#t.get(t,!1)}has(t){s.brandCheck(this,e),s.argumentLengthCheck(arguments,1,`Headers.has`);let n=`Headers.has`;if(t=s.converters.ByteString(t,n,`name`),!a(t))throw s.errors.invalidArgument({prefix:n,value:t,type:`header name`});return this.#t.contains(t,!1)}set(t,n){s.brandCheck(this,e),s.argumentLengthCheck(arguments,2,`Headers.set`);let r=`Headers.set`;if(t=s.converters.ByteString(t,r,`name`),n=s.converters.ByteString(n,r,`value`),n=f(n),!a(t))throw s.errors.invalidArgument({prefix:r,value:t,type:`header name`});if(!o(n))throw s.errors.invalidArgument({prefix:r,value:n,type:`header value`});if(this.#e===`immutable`)throw TypeError(`immutable`);this.#t.set(t,n,!1)}getSetCookie(){s.brandCheck(this,e);let t=this.#t.cookies;return t?[...t]:[]}[u.inspect.custom](e,t){return t.depth??=e,`Headers ${u.formatWithOptions(t,this.#t.entries)}`}static getHeadersGuard(e){return e.#e}static setHeadersGuard(e,t){e.#e=t}static getHeadersList(e){return e.#t}static setHeadersList(e,t){e.#t=t}};let{getHeadersGuard:b,setHeadersGuard:x,getHeadersList:S,setHeadersList:C}=y;Reflect.deleteProperty(y,`getHeadersGuard`),Reflect.deleteProperty(y,`setHeadersGuard`),Reflect.deleteProperty(y,`getHeadersList`),Reflect.deleteProperty(y,`setHeadersList`),i(`Headers`,y,g,0,1),Object.defineProperties(y.prototype,{append:r,delete:r,get:r,has:r,set:r,getSetCookie:r,[Symbol.toStringTag]:{value:`Headers`,configurable:!0},[u.inspect.custom]:{enumerable:!1}}),s.converters.HeadersInit=function(e,t,n){if(s.util.Type(e)===s.util.Types.OBJECT){let r=Reflect.get(e,Symbol.iterator);if(!u.types.isProxy(e)&&r===y.prototype.entries)try{return S(e).entriesList}catch{}return typeof r==`function`?s.converters[`sequence<sequence<ByteString>>`](e,t,n,r.bind(e)):s.converters[`record<ByteString, ByteString>`](e,t,n)}throw s.errors.conversionFailed({prefix:`Headers constructor`,argument:`Argument 1`,types:[`sequence<sequence<ByteString>>`,`record<ByteString, ByteString>`]})},t.exports={fill:p,compareHeaderName:_,Headers:y,HeadersList:v,getHeadersGuard:b,setHeadersGuard:x,setHeadersList:C,getHeadersList:S}})),ze=e.c(((e,t)=>{let{Headers:n,HeadersList:r,fill:i,getHeadersGuard:a,setHeadersGuard:o,setHeadersList:s}=Re(),{extractBody:c,cloneBody:u,mixinBody:d,streamRegistry:f,bodyUnusable:p}=F(),h=m(),g=require(`node:util`),{kEnumerableProperty:_}=h,{isValidReasonPhrase:v,isCancelled:y,isAborted:b,isErrorLike:x,environmentSettingsObject:S}=j(),{redirectStatusSet:C,nullBodyStatus:w}=T(),{webidl:E}=A(),{URLSerializer:D}=k(),{kConstruct:M}=l(),N=require(`node:assert`),{isomorphicEncode:P,serializeJavascriptValueToJSONString:I}=O(),L=new TextEncoder(`utf-8`);var R=class e{#e;#t;static error(){return q(W(),`immutable`)}static json(e,t=void 0){E.argumentLengthCheck(arguments,1,`Response.json`),t=E.converters.ResponseInit(t);let n=c(L.encode(I(e))),r=q(U({}),`response`);return re(r,t,{body:n[0],type:`application/json`}),r}static redirect(e,t=302){E.argumentLengthCheck(arguments,1,`Response.redirect`),e=E.converters.USVString(e),t=E.converters[`unsigned short`](t);let n;try{n=new URL(e,S.settingsObject.baseUrl)}catch(t){throw TypeError(`Failed to parse URL from ${e}`,{cause:t})}if(!C.has(t))throw RangeError(`Invalid status code ${t}`);let r=q(U({}),`immutable`);r.#t.status=t;let i=P(D(n));return r.#t.headersList.append(`location`,i,!0),r}constructor(e=null,t=void 0){if(E.util.markAsUncloneable(this),e===M)return;e!==null&&(e=E.converters.BodyInit(e,`Response`,`body`)),t=E.converters.ResponseInit(t),this.#t=U({}),this.#e=new n(M),o(this.#e,`response`),s(this.#e,this.#t.headersList);let r=null;if(e!=null){let[t,n]=c(e);r={body:t,type:n}}re(this,t,r)}get type(){return E.brandCheck(this,e),this.#t.type}get url(){E.brandCheck(this,e);let t=this.#t.urlList,n=t[t.length-1]??null;return n===null?``:D(n,!0)}get redirected(){return E.brandCheck(this,e),this.#t.urlList.length>1}get status(){return E.brandCheck(this,e),this.#t.status}get ok(){return E.brandCheck(this,e),this.#t.status>=200&&this.#t.status<=299}get statusText(){return E.brandCheck(this,e),this.#t.statusText}get headers(){return E.brandCheck(this,e),this.#e}get body(){return E.brandCheck(this,e),this.#t.body?this.#t.body.stream:null}get bodyUsed(){return E.brandCheck(this,e),!!this.#t.body&&h.isDisturbed(this.#t.body.stream)}clone(){if(E.brandCheck(this,e),p(this.#t))throw E.errors.exception({header:`Response.clone`,message:`Body has already been consumed.`});let t=H(this.#t);return this.#t.urlList.length!==0&&this.#t.body?.stream&&f.register(this,new WeakRef(this.#t.body.stream)),q(t,a(this.#e))}[g.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let n={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 ${g.formatWithOptions(t,n)}`}static getResponseHeaders(e){return e.#e}static setResponseHeaders(e,t){e.#e=t}static getResponseState(e){return e.#t}static setResponseState(e,t){e.#t=t}};let{getResponseHeaders:z,setResponseHeaders:B,getResponseState:V,setResponseState:ee}=R;Reflect.deleteProperty(R,`getResponseHeaders`),Reflect.deleteProperty(R,`setResponseHeaders`),Reflect.deleteProperty(R,`getResponseState`),Reflect.deleteProperty(R,`setResponseState`),d(R,V),Object.defineProperties(R.prototype,{type:_,url:_,status:_,ok:_,redirected:_,statusText:_,headers:_,clone:_,body:_,bodyUsed:_,[Symbol.toStringTag]:{value:`Response`,configurable:!0}}),Object.defineProperties(R,{json:_,redirect:_,error:_});function H(e){if(e.internalResponse)return ne(H(e.internalResponse),e.type);let t=U({...e,body:null});return e.body!=null&&(t.body=u(e.body)),t}function U(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:`default`,status:200,timingInfo:null,cacheState:``,statusText:``,...e,headersList:e?.headersList?new r(e?.headersList):new r,urlList:e?.urlList?[...e.urlList]:[]}}function W(e){return U({type:`error`,status:0,error:x(e)?e:Error(e&&String(e)),aborted:e&&e.name===`AbortError`})}function te(e){return e.type===`error`&&e.status===0}function G(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(e,n){return n in t?t[n]:e[n]},set(e,n,r){return N(!(n in t)),e[n]=r,!0}})}function ne(e,t){if(t===`basic`)return G(e,{type:`basic`,headersList:e.headersList});if(t===`cors`)return G(e,{type:`cors`,headersList:e.headersList});if(t===`opaque`)return G(e,{type:`opaque`,urlList:[],status:0,statusText:``,body:null});if(t===`opaqueredirect`)return G(e,{type:`opaqueredirect`,status:0,statusText:``,headersList:[],body:null});N(!1)}function K(e,t=null){return N(y(e)),b(e)?W(Object.assign(new DOMException(`The operation was aborted.`,`AbortError`),{cause:t})):W(Object.assign(new DOMException(`Request was cancelled.`),{cause:t}))}function re(e,t,n){if(t.status!==null&&(t.status<200||t.status>599))throw RangeError(`init["status"] must be in the range of 200 to 599, inclusive.`);if(`statusText`in t&&t.statusText!=null&&!v(String(t.statusText)))throw TypeError(`Invalid statusText`);if(`status`in t&&t.status!=null&&(V(e).status=t.status),`statusText`in t&&t.statusText!=null&&(V(e).statusText=t.statusText),`headers`in t&&t.headers!=null&&i(z(e),t.headers),n){if(w.includes(e.status))throw E.errors.exception({header:`Response constructor`,message:`Invalid response status code ${e.status}`});V(e).body=n.body,n.type!=null&&!V(e).headersList.contains(`content-type`,!0)&&V(e).headersList.append(`content-type`,n.type,!0)}}function q(e,t){let r=new R(M);ee(r,e);let i=new n(M);return B(r,i),s(i,e.headersList),o(i,t),e.urlList.length!==0&&e.body?.stream&&f.register(r,new WeakRef(e.body.stream)),r}E.converters.XMLHttpRequestBodyInit=function(e,t,n){return typeof e==`string`?E.converters.USVString(e,t,n):E.is.Blob(e)||E.is.BufferSource(e)||E.is.FormData(e)||E.is.URLSearchParams(e)?e:E.converters.DOMString(e,t,n)},E.converters.BodyInit=function(e,t,n){return E.is.ReadableStream(e)||e?.[Symbol.asyncIterator]?e:E.converters.XMLHttpRequestBodyInit(e,t,n)},E.converters.ResponseInit=E.dictionaryConverter([{key:`status`,converter:E.converters[`unsigned short`],defaultValue:()=>200},{key:`statusText`,converter:E.converters.ByteString,defaultValue:()=>``},{key:`headers`,converter:E.converters.HeadersInit}]),E.is.Response=E.util.MakeTypeAssertion(R),t.exports={isNetworkError:te,makeNetworkError:W,makeResponse:U,makeAppropriateNetworkError:K,filterResponse:ne,Response:R,cloneResponse:H,fromInnerResponse:q,getResponseState:V}})),Be=e.c(((e,t)=>{let{extractBody:n,mixinBody:r,cloneBody:i,bodyUnusable:a}=F(),{Headers:o,fill:s,HeadersList:c,setHeadersGuard:u,getHeadersGuard:d,setHeadersList:f,getHeadersList:p}=Re(),h=m(),g=require(`node:util`),{isValidHTTPToken:_,sameOrigin:v,environmentSettingsObject:y}=j(),{forbiddenMethodsSet:b,corsSafeListedMethodsSet:x,referrerPolicy:S,requestRedirect:C,requestMode:w,requestCredentials:E,requestCache:D,requestDuplex:O}=T(),{kEnumerableProperty:M,normalizedMethodRecordsBase:N,normalizedMethodRecords:P}=h,{webidl:I}=A(),{URLSerializer:L}=k(),{kConstruct:R}=l(),z=require(`node:assert`),{getMaxListeners:B,setMaxListeners:V,defaultMaxListeners:ee}=require(`node:events`),H=Symbol(`abortController`),U=new FinalizationRegistry(({signal:e,abort:t})=>{e.removeEventListener(`abort`,t)}),W=new WeakMap,te;try{te=B(new AbortController().signal)>0}catch{te=!1}function G(e){return t;function t(){let n=e.deref();if(n!==void 0){U.unregister(t),this.removeEventListener(`abort`,t),n.abort(this.reason);let e=W.get(n.signal);if(e!==void 0){if(e.size!==0){for(let t of e){let e=t.deref();e!==void 0&&e.abort(this.reason)}e.clear()}W.delete(n.signal)}}}}let ne=!1;var K=class e{#e;#t;#n;#r;#i=null;constructor(e,t=void 0){if(I.util.markAsUncloneable(this),e===R)return;I.argumentLengthCheck(arguments,1,`Request constructor`),e=I.converters.RequestInfo(e),t=I.converters.RequestInit(t);let r=null,i=null,l=y.settingsObject.baseUrl,d=null;if(typeof e==`string`){this.#t=t.dispatcher;let n;try{n=new URL(e,l)}catch(t){throw TypeError(`Failed to parse URL from `+e,{cause:t})}if(n.username||n.password)throw TypeError(`Request cannot be constructed from a URL that includes credentials: `+e);r=oe({urlList:[n]}),i=`cors`}else z(I.is.Request(e)),r=e.#r,d=e.#e,this.#t=t.dispatcher||e.#t;let m=y.settingsObject.origin,g=`client`;if(r.window?.constructor?.name===`EnvironmentSettingsObject`&&v(r.window,m)&&(g=r.window),t.window!=null)throw TypeError(`'window' option '${g}' must be null`);`window`in t&&(g=`no-window`),r=oe({method:r.method,headersList:r.headersList,unsafeRequest:r.unsafeRequest,client:y.settingsObject,window:g,priority:r.priority,origin:r.origin,referrer:r.referrer,referrerPolicy:r.referrerPolicy,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,integrity:r.integrity,keepalive:r.keepalive,reloadNavigation:r.reloadNavigation,historyNavigation:r.historyNavigation,urlList:[...r.urlList]});let S=Object.keys(t).length!==0;if(S&&(r.mode===`navigate`&&(r.mode=`same-origin`),r.reloadNavigation=!1,r.historyNavigation=!1,r.origin=`client`,r.referrer=`client`,r.referrerPolicy=``,r.url=r.urlList[r.urlList.length-1],r.urlList=[r.url]),t.referrer!==void 0){let e=t.referrer;if(e===``)r.referrer=`no-referrer`;else{let t;try{t=new URL(e,l)}catch(t){throw TypeError(`Referrer "${e}" is not a valid URL.`,{cause:t})}t.protocol===`about:`&&t.hostname===`client`||m&&!v(t,y.settingsObject.baseUrl)?r.referrer=`client`:r.referrer=t}}t.referrerPolicy!==void 0&&(r.referrerPolicy=t.referrerPolicy);let C;if(C=t.mode===void 0?i:t.mode,C===`navigate`)throw I.errors.exception({header:`Request constructor`,message:`invalid request mode navigate.`});if(C!=null&&(r.mode=C),t.credentials!==void 0&&(r.credentials=t.credentials),t.cache!==void 0&&(r.cache=t.cache),r.cache===`only-if-cached`&&r.mode!==`same-origin`)throw TypeError(`'only-if-cached' can be set only with 'same-origin' mode`);if(t.redirect!==void 0&&(r.redirect=t.redirect),t.integrity!=null&&(r.integrity=String(t.integrity)),t.keepalive!==void 0&&(r.keepalive=!!t.keepalive),t.method!==void 0){let e=t.method,n=P[e];if(n!==void 0)r.method=n;else{if(!_(e))throw TypeError(`'${e}' is not a valid HTTP method.`);let t=e.toUpperCase();if(b.has(t))throw TypeError(`'${e}' HTTP method is unsupported.`);e=N[t]??e,r.method=e}!ne&&r.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`}),ne=!0)}t.signal!==void 0&&(d=t.signal),this.#r=r;let w=new AbortController;if(this.#e=w.signal,d!=null)if(d.aborted)w.abort(d.reason);else{this[H]=w;let e=G(new WeakRef(w));te&&B(d)===ee&&V(1500,d);let t=h.addAbortListener(d,e);U.register(w,{signal:d,abort:e},e),this.#i=()=>{U.unregister(e),t(),this.#i=null}}if(this.#n=new o(R),f(this.#n,r.headersList),u(this.#n,`request`),C===`no-cors`){if(!x.has(r.method))throw TypeError(`'${r.method} is unsupported in no-cors mode.`);u(this.#n,`request-no-cors`)}if(S){let e=p(this.#n),n=t.headers===void 0?new c(e):t.headers;if(e.clear(),n instanceof c){for(let{name:t,value:r}of n.rawValues())e.append(t,r,!1);e.cookies=n.cookies}else s(this.#n,n)}let T=I.is.Request(e)?e.#r.body:null;if((t.body!=null||T!=null)&&(r.method===`GET`||r.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);let E=null;if(t.body!=null){let[e,i]=n(t.body,r.keepalive);E=e,i&&!p(this.#n).contains(`content-type`,!0)&&this.#n.append(`content-type`,i,!0)}let D=E??T;if(D!=null&&D.source==null){if(E!=null&&t.duplex==null)throw TypeError(`RequestInit: duplex option is required when sending a body.`);if(r.mode!==`same-origin`&&r.mode!==`cors`)throw TypeError(`If request is made from ReadableStream, mode should be "same-origin" or "cors"`);r.useCORSPreflightFlag=!0}let O=D;if(E==null&&T!=null){if(a(e.#r))throw TypeError(`Cannot construct a Request with a Request object that has already been used.`);let t=new TransformStream;T.stream.pipeThrough(t),O={source:T.source,length:T.length,stream:t.readable}}this.#r.body=O}get method(){return I.brandCheck(this,e),this.#r.method}get url(){return I.brandCheck(this,e),L(this.#r.url)}get headers(){return I.brandCheck(this,e),this.#n}get destination(){return I.brandCheck(this,e),this.#r.destination}get referrer(){return I.brandCheck(this,e),this.#r.referrer===`no-referrer`?``:this.#r.referrer===`client`?`about:client`:this.#r.referrer.toString()}get referrerPolicy(){return I.brandCheck(this,e),this.#r.referrerPolicy}get mode(){return I.brandCheck(this,e),this.#r.mode}get credentials(){return I.brandCheck(this,e),this.#r.credentials}get cache(){return I.brandCheck(this,e),this.#r.cache}get redirect(){return I.brandCheck(this,e),this.#r.redirect}get integrity(){return I.brandCheck(this,e),this.#r.integrity}get keepalive(){return I.brandCheck(this,e),this.#r.keepalive}get isReloadNavigation(){return I.brandCheck(this,e),this.#r.reloadNavigation}get isHistoryNavigation(){return I.brandCheck(this,e),this.#r.historyNavigation}get signal(){return I.brandCheck(this,e),this.#e}get body(){return I.brandCheck(this,e),this.#r.body?this.#r.body.stream:null}get bodyUsed(){return I.brandCheck(this,e),!!this.#r.body&&h.isDisturbed(this.#r.body.stream)}get duplex(){return I.brandCheck(this,e),`half`}clone(){if(I.brandCheck(this,e),a(this.#r))throw TypeError(`unusable`);let t=Z(this.#r),n=new AbortController;if(this.signal.aborted)n.abort(this.signal.reason);else{let e=W.get(this.signal);e===void 0&&(e=new Set,W.set(this.signal,e));let t=new WeakRef(n);e.add(t),h.addAbortListener(n.signal,G(t))}return Q(t,this.#t,n.signal,d(this.#n))}[g.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let n={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 ${g.formatWithOptions(t,n)}`}static setRequestSignal(e,t){return e.#e=t,e}static getRequestDispatcher(e){return e.#t}static setRequestDispatcher(e,t){e.#t=t}static setRequestHeaders(e,t){e.#n=t}static getRequestState(e){return e.#r}static setRequestState(e,t){e.#r=t}static removeRequestAbortListener(e){e.#i?.()}};let{setRequestSignal:re,getRequestDispatcher:q,setRequestDispatcher:ie,setRequestHeaders:ae,getRequestState:J,setRequestState:Y,removeRequestAbortListener:X}=K;Reflect.deleteProperty(K,`setRequestSignal`),Reflect.deleteProperty(K,`getRequestDispatcher`),Reflect.deleteProperty(K,`setRequestDispatcher`),Reflect.deleteProperty(K,`setRequestHeaders`),Reflect.deleteProperty(K,`getRequestState`),Reflect.deleteProperty(K,`setRequestState`),Reflect.deleteProperty(K,`removeRequestAbortListener`),r(K,J);function oe(e){return{method:e.method??`GET`,localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??``,window:e.window??`client`,keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??`all`,initiator:e.initiator??``,destination:e.destination??``,priority:e.priority??`auto`,origin:e.origin??`client`,policyContainer:e.policyContainer??`client`,referrer:e.referrer??`client`,referrerPolicy:e.referrerPolicy??``,mode:e.mode??`no-cors`,useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??`same-origin`,useCredentials:e.useCredentials??!1,cache:e.cache??`default`,redirect:e.redirect??`follow`,integrity:e.integrity??``,cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??``,parserMetadata:e.parserMetadata??``,reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??`basic`,preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,useURLCredentials:e.useURLCredentials??void 0,traversableForUserPrompts:e.traversableForUserPrompts??`client`,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new c(e.headersList):new c}}function Z(e){let t=oe({...e,body:null});return e.body!=null&&(t.body=i(e.body)),t}function Q(e,t,n,r){let i=new K(R);Y(i,e),ie(i,t),re(i,n);let a=new o(R);return ae(i,a),f(a,e.headersList),u(a,r),i}Object.defineProperties(K.prototype,{method:M,url:M,headers:M,redirect:M,clone:M,signal:M,duplex:M,destination:M,body:M,bodyUsed:M,isHistoryNavigation:M,isReloadNavigation:M,keepalive:M,integrity:M,cache:M,credentials:M,attribute:M,referrerPolicy:M,referrer:M,mode:M,[Symbol.toStringTag]:{value:`Request`,configurable:!0}}),I.is.Request=I.util.MakeTypeAssertion(K),I.converters.RequestInfo=function(e){return typeof e==`string`?I.converters.USVString(e):I.is.Request(e)?e:I.converters.USVString(e)},I.converters.RequestInit=I.dictionaryConverter([{key:`method`,converter:I.converters.ByteString},{key:`headers`,converter:I.converters.HeadersInit},{key:`body`,converter:I.nullableConverter(I.converters.BodyInit)},{key:`referrer`,converter:I.converters.USVString},{key:`referrerPolicy`,converter:I.converters.DOMString,allowedValues:S},{key:`mode`,converter:I.converters.DOMString,allowedValues:w},{key:`credentials`,converter:I.converters.DOMString,allowedValues:E},{key:`cache`,converter:I.converters.DOMString,allowedValues:D},{key:`redirect`,converter:I.converters.DOMString,allowedValues:C},{key:`integrity`,converter:I.converters.DOMString},{key:`keepalive`,converter:I.converters.boolean},{key:`signal`,converter:I.nullableConverter(e=>I.converters.AbortSignal(e,`RequestInit`,`signal`))},{key:`window`,converter:I.converters.any},{key:`duplex`,converter:I.converters.DOMString,allowedValues:O},{key:`dispatcher`,converter:I.converters.any},{key:`priority`,converter:I.converters.DOMString,allowedValues:[`high`,`low`,`auto`]}]),t.exports={Request:K,makeRequest:oe,fromInnerRequest:Q,cloneRequest:Z,getRequestDispatcher:q,getRequestState:J,removeRequestAbortListener:X}})),Ve=e.c(((e,t)=>{let n=require(`node:assert`),{runtimeFeatures:r}=M(),i=new Map([[`sha256`,0],[`sha384`,1],[`sha512`,2]]),a;if(r.has(`crypto`)){a=require(`node:crypto`);let e=a.getHashes();e.length===0&&i.clear();for(let t of i.keys())e.includes(t)===!1&&i.delete(t)}else i.clear();let o=Map.prototype.get.bind(i),s=Map.prototype.has.bind(i),c=r.has(`crypto`)===!1||i.size===0?()=>!0:(e,t)=>{let n=u(t);if(n.length===0)return!0;let r=l(n);for(let t of r){let n=t.alg,r=t.val;if(f(d(n,e),r))return!0}return!1};function l(e){let t=[],r=null;for(let i of e){if(n(s(i.alg),`Invalid SRI hash algorithm token`),t.length===0){t.push(i),r=i;continue}let e=r.alg,a=o(e),c=i.alg,l=o(c);l<a||(l>a?(r=i,t[0]=i,t.length=1):t.push(i))}return t}function u(e){let t=[];for(let n of e.split(` `)){let e=n.split(`?`,1)[0],r=``,i=[e.slice(0,6),e.slice(7)],a=i[0];if(!s(a))continue;i[1]&&(r=i[1]);let o={alg:a,val:r};t.push(o)}return t}let d=(e,t)=>a.hash(e,t,`base64`);function f(e,t){let n=e.length;n!==0&&e[n-1]===`=`&&--n,n!==0&&e[n-1]===`=`&&--n;let r=t.length;if(r!==0&&t[r-1]===`=`&&--r,r!==0&&t[r-1]===`=`&&--r,n!==r)return!1;for(let r=0;r<n;++r)if(!(e[r]===t[r]||e[r]===`+`&&t[r]===`-`||e[r]===`/`&&t[r]===`_`))return!1;return!0}t.exports={applyAlgorithmToBytes:d,bytesMatch:c,caseSensitiveMatch:f,isValidSRIHashAlgorithm:s,getStrongestMetadata:l,parseMetadata:u}})),He=e.c(((e,t)=>{let{makeNetworkError:n,makeAppropriateNetworkError:r,filterResponse:i,makeResponse:a,fromInnerResponse:o,getResponseState:s}=ze(),{HeadersList:c}=Re(),{Request:l,cloneRequest:u,getRequestDispatcher:f,getRequestState:p,removeRequestAbortListener:h}=Be(),g=require(`node:zlib`),{makePolicyContainer:_,clonePolicyContainer:v,requestBadPort:y,TAOCheck:b,appendRequestOriginHeader:x,responseLocationURL:S,requestCurrentURL:C,setRequestReferrerPolicyOnRedirect:w,tryUpgradeRequestToAPotentiallyTrustworthyURL:E,createOpaqueTimingInfo:D,appendFetchMetadata:M,corsCheck:N,crossOriginResourcePolicyCheck:P,determineRequestsReferrer:I,coarsenedSharedCurrentTime:L,sameOrigin:R,isCancelled:z,isAborted:B,isErrorLike:V,fullyReadBody:ee,readableStreamClose:H,urlIsLocal:U,urlIsHttpHttpsScheme:W,urlHasHttpsScheme:te,clampAndCoarsenConnectionTimingInfo:G,simpleRangeHeaderValue:ne,buildContentRange:K,createInflate:re,extractMimeType:q,hasAuthenticationEntry:ie,includesCredentials:ae,isTraversableNavigable:J}=j(),Y=require(`node:assert`),{safelyExtractBody:X,extractBody:oe}=F(),{redirectStatusSet:Z,nullBodyStatus:Q,safeMethodsSet:se,requestBodyHeader:ce,subresourceSet:le}=T(),ue=require(`node:events`),{Readable:de,pipeline:fe,finished:pe,isErrored:me,isReadable:he}=require(`node:stream`),{addAbortListener:$,bufferToLowerCasedHeaderName:ge}=m(),{SocketError:_e}=d(),{dataURLProcessor:ve,serializeAMimeType:ye,minimizeSupportedMimeType:xe}=k(),{getGlobalDispatcher:Se}=be(),{webidl:Ce}=A(),{STATUS_CODES:we}=require(`node:http`),{bytesMatch:Te}=Ve(),{isomorphicEncode:Ee}=O(),De=[`GET`,`HEAD`],Oe=typeof __UNDICI_IS_NODE__<`u`||typeof esbuildDetection<`u`?`node`:`undici`,ke;function Ae(e,t,n){if(Array.isArray(n)){for(let t=0;t<n.length;t+=2){let r=ge(n[t]),i=n[t+1];if(Array.isArray(i)&&!Buffer.isBuffer(i))for(let t of i)e.append(r,t.toString(`latin1`),!0);else e.append(r,i.toString(`latin1`),!0)}return}for(let[n,r]of Object.entries(t??{}))if(Array.isArray(r))for(let t of r)e.append(n,`${t}`,!0);else e.append(n,`${r}`,!0)}var je=class extends ue{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||=new DOMException(`The operation was aborted.`,`AbortError`),this.serializedAbortReason=e,this.connection?.destroy(e),this.emit(`terminated`,e))}};function Me(e){Pe(e,`fetch`)}function Ne(e,t=void 0){Ce.argumentLengthCheck(arguments,1,`globalThis.fetch`);let n=Promise.withResolvers(),r;try{r=new l(e,t)}catch(e){return n.reject(e),n.promise}let i=p(r);if(r.signal.aborted)return Ie(n,i,null,r.signal.reason,null),n.promise;i.client.globalObject?.constructor?.name===`ServiceWorkerGlobalScope`&&(i.serviceWorkers=`none`);let a=null,s=!1,c=null,u=$(r.signal,()=>{s=!0,Y(c!=null),c.abort(r.signal.reason);let e=a?.deref();Ie(n,i,e,r.signal.reason,c.controller)}),d=()=>{u(),h(r)};return c=Le({request:i,processResponseEndOfBody:e=>{Me(e),d()},processResponse:e=>{if(!s){if(e.aborted){Ie(n,i,a,c.serializedAbortReason,c.controller),d();return}if(e.type===`error`){n.reject(TypeError(`fetch failed`,{cause:e.error})),d();return}a=new WeakRef(o(e,`immutable`)),n.resolve(a.deref()),n=null}},dispatcher:f(r),requestObject:r}),n.promise}function Pe(e,t=`other`){if(e.type===`error`&&e.aborted||!e.urlList?.length)return;let n=e.urlList[0],r=e.timingInfo,i=e.cacheState;W(n)&&r!==null&&(e.timingAllowPassed||(r=D({startTime:r.startTime}),i=``),r.endTime=L(),e.timingInfo=r,Fe(r,n.href,t,globalThis,i,``,e.status))}let Fe=performance.markResourceTiming;function Ie(e,t,n,r,i){if(e&&e.reject(r),t.body?.stream!=null&&he(t.body.stream)&&t.body.stream.cancel(r).catch(e=>{if(e.code!==`ERR_INVALID_STATE`)throw e}),n==null)return;let a=s(n);a.body?.stream!=null&&he(a.body.stream)&&i.error(r)}function Le({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:n,processResponse:r,processResponseEndOfBody:i,processResponseConsumeBody:a,useParallelQueue:o=!1,dispatcher:s=Se(),requestObject:c=null}){Y(s);let l=null,u=!1;e.client!=null&&(l=e.client.globalObject,u=e.client.crossOriginIsolatedCapability);let d=D({startTime:L(u)}),f={controller:new je(s),request:e,timingInfo:d,processRequestBodyChunkLength:t,processRequestEndOfBody:n,processResponse:r,processResponseConsumeBody:a,processResponseEndOfBody:i,taskDestination:l,crossOriginIsolatedCapability:u,requestObject:c};return Y(!e.body||e.body.stream),e.window===`client`&&(e.window=e.client?.globalObject?.constructor?.name===`Window`?e.client:`no-window`),e.origin===`client`&&(e.origin=e.client.origin),e.policyContainer===`client`&&(e.client==null?e.policyContainer=_():e.policyContainer=v(e.client.policyContainer)),e.headersList.contains(`accept`,!0)||e.headersList.append(`accept`,`*/*`,!0),e.headersList.contains(`accept-language`,!0)||e.headersList.append(`accept-language`,`*`,!0),e.priority,le.has(e.destination),He(f,!1),f.controller}async function He(e,t){try{let r=e.request,a=null;if(r.localURLsOnly&&!U(C(r))&&(a=n(`local URLs only`)),E(r),y(r)===`blocked`&&(a=n(`bad port`)),r.referrerPolicy===``&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!==`no-referrer`&&(r.referrer=I(r)),a===null){let t=C(r);R(t,r.url)&&r.responseTainting===`basic`||t.protocol===`data:`||r.mode===`navigate`||r.mode===`websocket`?(r.responseTainting=`basic`,a=await Ue(e)):r.mode===`same-origin`?a=n(`request mode cannot be "same-origin"`):r.mode===`no-cors`?r.redirect===`follow`?(r.responseTainting=`opaque`,a=await Ue(e)):a=n(`redirect mode cannot be "follow" for "no-cors" request`):W(C(r))?(r.responseTainting=`cors`,a=await Ke(e)):a=n(`URL scheme must be a HTTP(S) scheme`)}if(t)return a;a.status!==0&&!a.internalResponse&&(r.responseTainting,r.responseTainting===`basic`?a=i(a,`basic`):r.responseTainting===`cors`?a=i(a,`cors`):r.responseTainting===`opaque`?a=i(a,`opaque`):Y(!1));let o=a.status===0?a:a.internalResponse;if(o.urlList.length===0&&o.urlList.push(...r.urlList),r.timingAllowFailed||(a.timingAllowPassed=!0),a.type===`opaque`&&o.status===206&&o.rangeRequested&&!r.headers.contains(`range`,!0)&&(a=o=n()),a.status!==0&&(r.method===`HEAD`||r.method===`CONNECT`||Q.includes(o.status))&&(o.body=null,e.controller.dump=!0),r.integrity){let t=t=>Ge(e,n(t));if(r.responseTainting===`opaque`||a.body==null){t(a.error);return}ee(a.body,n=>{if(!Te(n,r.integrity)){t(`integrity mismatch`);return}a.body=X(n)[0],Ge(e,a)},t)}else Ge(e,a)}catch(t){e.controller.terminate(t)}}function Ue(e){if(z(e)&&e.request.redirectCount===0)return Promise.resolve(r(e));let{request:t}=e,{protocol:i}=C(t);switch(i){case`about:`:return Promise.resolve(n(`about scheme is not supported`));case`blob:`:{ke||=require(`node:buffer`).resolveObjectURL;let e=C(t);if(e.search.length!==0)return Promise.resolve(n(`NetworkError when attempting to fetch resource.`));let r=ke(e.toString());if(t.method!==`GET`||!Ce.is.Blob(r))return Promise.resolve(n(`invalid method`));let i=a(),o=r.size,s=Ee(`${o}`),c=r.type;if(t.headersList.contains(`range`,!0)){i.rangeRequested=!0;let e=ne(t.headersList.get(`range`,!0),!0);if(e===`failure`)return Promise.resolve(n(`failed to fetch the data URL`));let{rangeStartValue:a,rangeEndValue:s}=e;if(a===null)a=o-s,s=a+s-1;else{if(a>=o)return Promise.resolve(n(`Range start is greater than the blob's size.`));(s===null||s>=o)&&(s=o-1)}let l=r.slice(a,s+1,c);i.body=oe(l)[0];let u=Ee(`${l.size}`),d=K(a,s,o);i.status=206,i.statusText=`Partial Content`,i.headersList.set(`content-length`,u,!0),i.headersList.set(`content-type`,c,!0),i.headersList.set(`content-range`,d,!0)}else{let e=oe(r);i.statusText=`OK`,i.body=e[0],i.headersList.set(`content-length`,s,!0),i.headersList.set(`content-type`,c,!0)}return Promise.resolve(i)}case`data:`:{let e=ve(C(t));if(e===`failure`)return Promise.resolve(n(`failed to fetch the data URL`));let r=ye(e.mimeType);return Promise.resolve(a({statusText:`OK`,headersList:[[`content-type`,{name:`Content-Type`,value:r}]],body:X(e.body)[0]}))}case`file:`:return Promise.resolve(n(`not implemented... yet...`));case`http:`:case`https:`:return Ke(e).catch(e=>n(e));default:return Promise.resolve(n(`unknown scheme`))}}function We(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function Ge(e,t){let n=e.timingInfo,r=()=>{let r=Date.now();e.request.destination===`document`&&(e.controller.fullTimingInfo=n),e.controller.reportTimingSteps=()=>{if(!W(e.request.url))return;n.endTime=r;let i=t.cacheState,a=t.bodyInfo;t.timingAllowPassed||(n=D(n),i=``);let o=0;if(e.request.mode!==`navigate`||!t.hasCrossOriginRedirects){o=t.status;let e=q(t.headersList);e!==`failure`&&(a.contentType=xe(e))}e.request.initiatorType!=null&&Fe(n,e.request.url.href,e.request.initiatorType,globalThis,i,a,o)};let i=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>i())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(t),e.processResponse=null});let i=t.type===`error`?t:t.internalResponse??t;i.body==null?r():pe(i.body.stream,()=>{r()})}async function Ke(e){let t=e.request,r=null,i=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect===`follow`&&(t.serviceWorkers=`none`),i=r=await Je(e),t.responseTainting===`cors`&&N(t,r)===`failure`)return n(`cors failure`);b(t,r)===`failure`&&(t.timingAllowFailed=!0)}return(t.responseTainting===`opaque`||r.type===`opaque`)&&P(t.origin,t.client,t.destination,i)===`blocked`?n(`blocked`):(Z.has(i.status)&&(t.redirect!==`manual`&&e.controller.connection.destroy(void 0,!1),t.redirect===`error`?r=n(`unexpected redirect`):t.redirect===`manual`?r=i:t.redirect===`follow`?r=await qe(e,r):Y(!1)),r.timingInfo=a,r)}function qe(e,t){let r=e.request,i=t.internalResponse?t.internalResponse:t,a;try{if(a=S(i,C(r).hash),a==null)return t}catch(e){return Promise.resolve(n(e))}if(!W(a))return Promise.resolve(n(`URL scheme must be a HTTP(S) scheme`));if(r.redirectCount===20)return Promise.resolve(n(`redirect count exceeded`));if(r.redirectCount+=1,r.mode===`cors`&&(a.username||a.password)&&!R(r,a))return Promise.resolve(n(`cross origin not allowed for request mode "cors"`));if(r.responseTainting===`cors`&&(a.username||a.password))return Promise.resolve(n(`URL cannot contain credentials for request mode "cors"`));if(i.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(n());if([301,302].includes(i.status)&&r.method===`POST`||i.status===303&&!De.includes(r.method)){r.method=`GET`,r.body=null;for(let e of ce)r.headersList.delete(e)}R(C(r),a)||(r.headersList.delete(`authorization`,!0),r.headersList.delete(`proxy-authorization`,!0),r.headersList.delete(`cookie`,!0),r.headersList.delete(`host`,!0)),r.body!=null&&(Y(r.body.source!=null),r.body=X(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=L(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),w(r,i),He(e,!0)}async function Je(e,t=!1,i=!1){let a=e.request,o=null,s=null,c=null;a.window===`no-window`&&a.redirect===`error`?(o=e,s=a):(a.body?.source==null?(s=u({...a,body:null}),s.body=a.body):s=u(a),o={...e},o.request=s);let l=a.credentials===`include`||a.credentials===`same-origin`&&a.responseTainting===`basic`,d=s.body?s.body.length:null,f=null;if(s.body==null&&[`POST`,`PUT`].includes(s.method)&&(f=`0`),d!=null&&(f=Ee(`${d}`)),f!=null&&!s.headersList.contains(`content-length`,!0)&&s.headersList.append(`content-length`,f,!0),d!=null&&s.keepalive,Ce.is.URL(s.referrer)&&s.headersList.append(`referer`,Ee(s.referrer.href),!0),x(s),M(s),s.headersList.contains(`user-agent`,!0)||s.headersList.append(`user-agent`,Oe,!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)||(te(C(s))?s.headersList.append(`accept-encoding`,`br, gzip, deflate, zstd`,!0):s.headersList.append(`accept-encoding`,`gzip, deflate`,!0)),s.headersList.delete(`host`,!0),l&&!s.headersList.contains(`authorization`,!0)){let e=null;if(!(ie(s)&&(s.useURLCredentials===void 0||!ae(C(s))))&&ae(C(s))&&t){let{username:t,password:n}=C(s);e=`Basic ${Buffer.from(`${t}:${n}`).toString(`base64`)}`}e!==null&&s.headersList.append(`Authorization`,e,!1)}if(s.cache=`no-store`,s.cache!==`no-store`&&s.cache,c==null){if(s.cache===`only-if-cached`)return n(`only if cached`);let e=await Ye(o,l,i);!se.has(s.method)&&e.status>=200&&e.status,c??=e}if(c.urlList=[...s.urlList],s.headersList.contains(`range`,!0)&&(c.rangeRequested=!0),c.requestIncludesCredentials=l,c.status===401&&s.responseTainting!==`cors`&&l&&(a.useURLCredentials!==void 0||J(a.traversableForUserPrompts))){if(a.body!=null){if(a.body.source==null)return c;a.body=X(a.body.source)[0]}if(a.useURLCredentials===void 0||t)return z(e)?r(e):c;e.controller.connection.destroy(),c=await Je(e,!0)}if(c.status===407)return a.window===`no-window`?n():z(e)?r(e):n(`proxy authentication required`);if(c.status===421&&!i&&(a.body==null||a.body.source!=null)){if(z(e))return r(e);e.controller.connection.destroy(),c=await Je(e,t,!0)}return c}async function Ye(e,t=!1,i=!1){Y(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(e,t=!0){this.destroyed||(this.destroyed=!0,t&&this.abort?.(e??new DOMException(`The operation was aborted.`,`AbortError`)))}};let o=e.request,s=null,l=e.timingInfo;o.cache=`no-store`,o.mode;let u=null;if(o.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(o.body!=null){let t=async function*(t){z(e)||(yield t,e.processRequestBodyChunkLength?.(t.byteLength))},n=()=>{z(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},r=t=>{z(e)||(t.name===`AbortError`?e.controller.abort():e.controller.terminate(t))};u=(async function*(){try{for await(let e of o.body.stream)yield*t(e);n()}catch(e){r(e)}})()}try{let{body:t,status:n,statusText:r,headersList:i,socket:o}=await p({body:u});if(o)s=a({status:n,statusText:r,headersList:i,socket:o});else{let o=t[Symbol.asyncIterator]();e.controller.next=()=>o.next(),s=a({status:n,statusText:r,headersList:i})}}catch(t){return t.name===`AbortError`?(e.controller.connection.destroy(),r(e,t)):n(t)}let d=new ReadableStream({start(t){e.controller.controller=t},pull:()=>e.controller.resume(),cancel:t=>{z(e)||e.controller.abort(t)},type:`bytes`});s.body={stream:d,source:null,length:null},e.controller.resume||e.controller.on(`terminated`,f),e.controller.resume=async()=>{for(;;){let t,n;try{let{done:n,value:r}=await e.controller.next();if(B(e))break;t=n?void 0:r}catch(r){e.controller.ended&&!l.encodedBodySize?t=void 0:(t=r,n=!0)}if(t===void 0){H(e.controller.controller),We(e,s);return}if(l.decodedBodySize+=t?.byteLength??0,n){e.controller.terminate(t);return}let r=new Uint8Array(t);if(r.byteLength&&e.controller.controller.enqueue(r),me(d)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function f(t){B(e)?(s.aborted=!0,he(d)&&e.controller.controller.error(e.controller.serializedAbortReason)):he(d)&&e.controller.controller.error(TypeError(`terminated`,{cause:V(t)?t:void 0})),e.controller.connection.destroy()}return s;function p({body:t}){let n=C(o),r=e.controller.dispatcher,i=n.pathname+n.search,a=n.search.length===0&&n.href[n.href.length-n.hash.length-1]===`?`;return s(t);function s(t,u){return new Promise((d,f)=>r.dispatch({path:a?`${i}?`:i,origin:n.origin,method:o.method,body:r.isMockActive?o.body&&(o.body.source||o.body.stream):t,__mockAgentBodyForDispatch:t,headers:o.headersList.entries,maxRedirections:0,upgrade:o.mode===`websocket`?`websocket`:void 0,...u===!1?{allowH2:u}:null},{body:null,abort:null,onRequestStart(t){let{connection:n}=e.controller;l.finalConnectionTimingInfo=G(void 0,l.postRedirectStartTime,e.crossOriginIsolatedCapability);let r=e=>t.abort(e);n.destroyed?r(new DOMException(`The operation was aborted.`,`AbortError`)):(e.controller.on(`terminated`,r),this.abort=n.abort=r),l.finalNetworkRequestStartTime=L(e.crossOriginIsolatedCapability)},onResponseStarted(){l.finalNetworkResponseStartTime=L(e.crossOriginIsolatedCapability)},onResponseStart(e,t,n,r){if(t<200)return;let i=e?.rawHeaders??[],a=new c;Ae(a,n,i);let s=a.get(`location`,!0);this.body=new de({read:()=>e.resume()});let l=s&&o.redirect===`follow`&&Z.has(t),u=[];if(o.method!==`HEAD`&&o.method!==`CONNECT`&&!Q.includes(t)&&!l){let e=a.get(`content-encoding`,!0),t=e?e.toLowerCase().split(`,`):[];if(t.length>5){f(Error(`too many content-encodings in response: ${t.length}, maximum allowed is 5`));return}for(let e=t.length-1;e>=0;--e){let n=t[e].trim();if(n===`x-gzip`||n===`gzip`)u.push(g.createGunzip({flush:g.constants.Z_SYNC_FLUSH,finishFlush:g.constants.Z_SYNC_FLUSH}));else if(n===`deflate`)u.push(re({flush:g.constants.Z_SYNC_FLUSH,finishFlush:g.constants.Z_SYNC_FLUSH}));else if(n===`br`)u.push(g.createBrotliDecompress({flush:g.constants.BROTLI_OPERATION_FLUSH,finishFlush:g.constants.BROTLI_OPERATION_FLUSH}));else if(n===`zstd`)u.push(g.createZstdDecompress({flush:g.constants.ZSTD_e_continue,finishFlush:g.constants.ZSTD_e_end}));else{u.length=0;break}}}let p=t=>this.onResponseError(e,t);d({status:t,statusText:r,headersList:a,body:u.length?fe(this.body,...u,t=>{t&&this.onResponseError(e,t)}).on(`error`,p):this.body.on(`error`,p)})},onResponseData(t,n){if(e.controller.dump)return;let r=n;l.encodedBodySize+=r.byteLength,this.body.push(r)===!1&&t.pause()},onResponseEnd(){this.abort&&e.controller.off(`terminated`,this.abort),e.controller.ended=!0,this.body?.push(null)},onResponseError(n,r){if(this.abort&&e.controller.off(`terminated`,this.abort),o.mode===`websocket`&&u!==!1&&r?.code===`UND_ERR_INFO`&&r?.message===`HTTP/2: Extended CONNECT protocol not supported by server`){d(s(t,!1));return}this.body?.destroy(r),e.controller.terminate(r),f(r)},onRequestUpgrade(e,t,n,r){if(r.session!=null&&t!==200||r.session==null&&t!==101)return r.session!=null&&e.abort(new _e(`bad upgrade`,null)),!1;let i=e?.rawHeaders??[],a=new c;return Ae(a,n,i),d({status:t,statusText:we[t],headersList:a,socket:r}),!0}}))}}}t.exports={fetch:Ne,Fetch:je,fetching:Le,finalizeAndReportTiming:Pe}})),Ue=e.c(((e,t)=>{let n=require(`node:assert`),{URLSerializer:r}=k(),{isValidHeaderName:i}=j();function a(e,t,n=!1){return r(e,n)===r(t,n)}function o(e){n(e!==null);let t=[];for(let n of e.split(`,`))n=n.trim(),i(n)&&t.push(n);return t}t.exports={urlEquals:a,getFieldValues:o}})),We=e.c(((e,t)=>{let n=require(`node:assert`),{kConstruct:r}=l(),{urlEquals:i,getFieldValues:a}=Ue(),{kEnumerableProperty:o,isDisturbed:s}=m(),{webidl:c}=A(),{cloneResponse:u,fromInnerResponse:d,getResponseState:f}=ze(),{Request:p,fromInnerRequest:h,getRequestState:g}=Be(),{fetching:_}=He(),{urlIsHttpHttpsScheme:v,readAllBytes:y}=j();var b=class e{#e;constructor(){arguments[0]!==r&&c.illegalConstructor(),c.util.markAsUncloneable(this),this.#e=arguments[1]}async match(t,n={}){c.brandCheck(this,e);let r=`Cache.match`;c.argumentLengthCheck(arguments,1,r),t=c.converters.RequestInfo(t),n=c.converters.CacheQueryOptions(n,r,`options`);let i=this.#i(t,n,1);if(i.length!==0)return i[0]}async matchAll(t=void 0,n={}){return c.brandCheck(this,e),t!==void 0&&(t=c.converters.RequestInfo(t)),n=c.converters.CacheQueryOptions(n,`Cache.matchAll`,`options`),this.#i(t,n)}async add(t){c.brandCheck(this,e),c.argumentLengthCheck(arguments,1,`Cache.add`),t=c.converters.RequestInfo(t);let n=[t];return await this.addAll(n)}async addAll(t){c.brandCheck(this,e);let n=`Cache.addAll`;c.argumentLengthCheck(arguments,1,n);let r=[],i=[];for(let e of t){if(e===void 0)throw c.errors.conversionFailed({prefix:n,argument:`Argument 1`,types:[`undefined is not allowed`]});if(e=c.converters.RequestInfo(e),typeof e==`string`)continue;let t=g(e);if(!v(t.url)||t.method!==`GET`)throw c.errors.exception({header:n,message:`Expected http/s scheme when method is not GET.`})}let o=[];for(let e of t){let t=g(new p(e));if(!v(t.url))throw c.errors.exception({header:n,message:`Expected http/s scheme.`});t.initiator=`fetch`,t.destination=`subresource`,i.push(t);let s=Promise.withResolvers();o.push(_({request:t,processResponse(e){if(e.type===`error`||e.status===206||e.status<200||e.status>299)s.reject(c.errors.exception({header:`Cache.addAll`,message:`Received an invalid status code or the request failed.`}));else if(e.headersList.contains(`vary`)){let t=a(e.headersList.get(`vary`));for(let e of t)if(e===`*`){s.reject(c.errors.exception({header:`Cache.addAll`,message:`invalid vary field value`}));for(let e of o)e.abort();return}}},processResponseEndOfBody(e){if(e.aborted){s.reject(new DOMException(`aborted`,`AbortError`));return}s.resolve(e)}})),r.push(s.promise)}let s=await Promise.all(r),l=[],u=0;for(let e of s){let t={type:`put`,request:i[u],response:e};l.push(t),u++}let d=Promise.withResolvers(),f=null;try{this.#t(l)}catch(e){f=e}return queueMicrotask(()=>{f===null?d.resolve(void 0):d.reject(f)}),d.promise}async put(t,n){c.brandCheck(this,e);let r=`Cache.put`;c.argumentLengthCheck(arguments,2,r),t=c.converters.RequestInfo(t),n=c.converters.Response(n,r,`response`);let i=null;if(i=c.is.Request(t)?g(t):g(new p(t)),!v(i.url)||i.method!==`GET`)throw c.errors.exception({header:r,message:`Expected an http/s scheme when method is not GET`});let o=f(n);if(o.status===206)throw c.errors.exception({header:r,message:`Got 206 status`});if(o.headersList.contains(`vary`)){let e=a(o.headersList.get(`vary`));for(let t of e)if(t===`*`)throw c.errors.exception({header:r,message:`Got * vary field value`})}if(o.body&&(s(o.body.stream)||o.body.stream.locked))throw c.errors.exception({header:r,message:`Response body is locked or disturbed`});let l=u(o),d=Promise.withResolvers();o.body==null?d.resolve(void 0):y(o.body.stream.getReader(),d.resolve,d.reject);let m=[],h={type:`put`,request:i,response:l};m.push(h);let _=await d.promise;l.body!=null&&(l.body.source=_);let b=Promise.withResolvers(),x=null;try{this.#t(m)}catch(e){x=e}return queueMicrotask(()=>{x===null?b.resolve():b.reject(x)}),b.promise}async delete(t,r={}){c.brandCheck(this,e);let i=`Cache.delete`;c.argumentLengthCheck(arguments,1,i),t=c.converters.RequestInfo(t),r=c.converters.CacheQueryOptions(r,i,`options`);let a=null;if(c.is.Request(t)){if(a=g(t),a.method!==`GET`&&!r.ignoreMethod)return!1}else n(typeof t==`string`),a=g(new p(t));let o=[],s={type:`delete`,request:a,options:r};o.push(s);let l=Promise.withResolvers(),u=null,d;try{d=this.#t(o)}catch(e){u=e}return queueMicrotask(()=>{u===null?l.resolve(!!d?.length):l.reject(u)}),l.promise}async keys(t=void 0,n={}){c.brandCheck(this,e),t!==void 0&&(t=c.converters.RequestInfo(t)),n=c.converters.CacheQueryOptions(n,`Cache.keys`,`options`);let r=null;if(t!==void 0)if(c.is.Request(t)){if(r=g(t),r.method!==`GET`&&!n.ignoreMethod)return[]}else typeof t==`string`&&(r=g(new p(t)));let i=Promise.withResolvers(),a=[];if(t===void 0)for(let e of this.#e)a.push(e[0]);else{let e=this.#n(r,n);for(let t of e)a.push(t[0])}return queueMicrotask(()=>{let e=[];for(let t of a){let n=h(t,void 0,new AbortController().signal,`immutable`);e.push(n)}i.resolve(Object.freeze(e))}),i.promise}#t(e){let t=this.#e,r=[...t],i=[],a=[];try{for(let r of e){if(r.type!==`delete`&&r.type!==`put`)throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`operation type does not match "delete" or "put"`});if(r.type===`delete`&&r.response!=null)throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`delete operation should not have an associated response`});if(this.#n(r.request,r.options,i).length)throw new DOMException(`???`,`InvalidStateError`);let e;if(r.type===`delete`){if(e=this.#n(r.request,r.options),e.length===0)return[];for(let r of e){let e=t.indexOf(r);n(e!==-1),t.splice(e,1)}}else if(r.type===`put`){if(r.response==null)throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`put operation should have an associated response`});let a=r.request;if(!v(a.url))throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`expected http or https scheme`});if(a.method!==`GET`)throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`not get method`});if(r.options!=null)throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`options must not be defined`});e=this.#n(r.request);for(let r of e){let e=t.indexOf(r);n(e!==-1),t.splice(e,1)}t.push([r.request,r.response]),i.push([r.request,r.response])}a.push([r.request,r.response])}return a}catch(e){throw this.#e.length=0,this.#e=r,e}}#n(e,t,n){let r=[],i=n??this.#e;for(let n of i){let[i,a]=n;this.#r(e,i,a,t)&&r.push(n)}return r}#r(e,t,n=null,r){let o=new URL(e.url),s=new URL(t.url);if(r?.ignoreSearch&&(s.search=``,o.search=``),!i(o,s,!0))return!1;if(n==null||r?.ignoreVary||!n.headersList.contains(`vary`))return!0;let c=a(n.headersList.get(`vary`));for(let n of c)if(n===`*`||t.headersList.get(n)!==e.headersList.get(n))return!1;return!0}#i(e,t,n=1/0){let r=null;if(e!==void 0)if(c.is.Request(e)){if(r=g(e),r.method!==`GET`&&!t.ignoreMethod)return[]}else typeof e==`string`&&(r=g(new p(e)));let i=[];if(e===void 0)for(let e of this.#e)i.push(e[1]);else{let e=this.#n(r,t);for(let t of e)i.push(t[1])}let a=[];for(let e of i){let t=d(u(e),`immutable`);if(a.push(t),a.length>=n)break}return Object.freeze(a)}};Object.defineProperties(b.prototype,{[Symbol.toStringTag]:{value:`Cache`,configurable:!0},match:o,matchAll:o,add:o,addAll:o,put:o,delete:o,keys:o});let x=[{key:`ignoreSearch`,converter:c.converters.boolean,defaultValue:()=>!1},{key:`ignoreMethod`,converter:c.converters.boolean,defaultValue:()=>!1},{key:`ignoreVary`,converter:c.converters.boolean,defaultValue:()=>!1}];c.converters.CacheQueryOptions=c.dictionaryConverter(x),c.converters.MultiCacheQueryOptions=c.dictionaryConverter([...x,{key:`cacheName`,converter:c.converters.DOMString}]),c.converters.Response=c.interfaceConverter(c.is.Response,`Response`),c.converters[`sequence<RequestInfo>`]=c.sequenceConverter(c.converters.RequestInfo),t.exports={Cache:b}})),Ge=e.c(((e,t)=>{let{Cache:n}=We(),{webidl:r}=A(),{kEnumerableProperty:i}=m(),{kConstruct:a}=l();var o=class e{#e=new Map;constructor(){arguments[0]!==a&&r.illegalConstructor(),r.util.markAsUncloneable(this)}async match(t,i={}){if(r.brandCheck(this,e),r.argumentLengthCheck(arguments,1,`CacheStorage.match`),t=r.converters.RequestInfo(t),i=r.converters.MultiCacheQueryOptions(i),i.cacheName!=null){if(this.#e.has(i.cacheName))return await new n(a,this.#e.get(i.cacheName)).match(t,i)}else for(let e of this.#e.values()){let r=await new n(a,e).match(t,i);if(r!==void 0)return r}}async has(t){r.brandCheck(this,e);let n=`CacheStorage.has`;return r.argumentLengthCheck(arguments,1,n),t=r.converters.DOMString(t,n,`cacheName`),this.#e.has(t)}async open(t){r.brandCheck(this,e);let i=`CacheStorage.open`;if(r.argumentLengthCheck(arguments,1,i),t=r.converters.DOMString(t,i,`cacheName`),this.#e.has(t))return new n(a,this.#e.get(t));let o=[];return this.#e.set(t,o),new n(a,o)}async delete(t){r.brandCheck(this,e);let n=`CacheStorage.delete`;return r.argumentLengthCheck(arguments,1,n),t=r.converters.DOMString(t,n,`cacheName`),this.#e.delete(t)}async keys(){return r.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(o.prototype,{[Symbol.toStringTag]:{value:`CacheStorage`,configurable:!0},match:i,has:i,open:i,delete:i,keys:i}),t.exports={CacheStorage:o}})),Ke=e.c(((e,t)=>{t.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}})),qe=e.c(((e,t)=>{function n(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n>=0&&n<=8||n>=10&&n<=31||n===127)return!0}return!1}function r(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n<33||n>126||n===34||n===40||n===41||n===60||n===62||n===64||n===44||n===59||n===58||n===92||n===47||n===91||n===93||n===63||n===61||n===123||n===125)throw Error(`Invalid cookie name`)}}function i(e){let t=e.length,n=0;if(e[0]===`"`){if(t===1||e[t-1]!==`"`)throw Error(`Invalid cookie value`);--t,++n}for(;n<t;){let t=e.charCodeAt(n++);if(t<33||t>126||t===34||t===44||t===59||t===92)throw Error(`Invalid cookie value`)}}function a(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n<32||n>126||n===59)throw Error(`Invalid cookie path`)}}function o(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function s(e){if(e===` `)return;if(e.length>255)throw Error(`Invalid cookie domain`);let t=0;for(let n=0;n<e.length;++n){let r=e.charCodeAt(n);if(r===46){if(t===0||e.charCodeAt(n-1)===45)throw Error(`Invalid cookie domain`);t=0;continue}if(t===0&&!o(r)||!o(r)&&r!==45||++t>63)throw Error(`Invalid cookie domain`)}if(t===0||e.charCodeAt(e.length-1)===45)throw Error(`Invalid cookie domain`)}let c=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],l=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],u=Array(61).fill(0).map((e,t)=>t.toString().padStart(2,`0`));function d(e){return typeof e==`number`&&(e=new Date(e)),`${c[e.getUTCDay()]}, ${u[e.getUTCDate()]} ${l[e.getUTCMonth()]} ${e.getUTCFullYear()} ${u[e.getUTCHours()]}:${u[e.getUTCMinutes()]}:${u[e.getUTCSeconds()]} GMT`}function f(e){if(e<0)throw Error(`Invalid cookie max-age`)}function p(e){if(e.name.length===0)return null;r(e.name),i(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith(`__Secure-`)&&(e.secure=!0),e.name.startsWith(`__Host-`)&&(e.secure=!0,e.domain=null,e.path=`/`),e.secure&&t.push(`Secure`),e.httpOnly&&t.push(`HttpOnly`),typeof e.maxAge==`number`&&(f(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(s(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(a(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!==`Invalid Date`&&t.push(`Expires=${d(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let n of e.unparsed){if(!n.includes(`=`))throw Error(`Invalid unparsed`);let[e,...a]=n.split(`=`),o=e.trim(),s=a.join(`=`);r(o),i(s),t.push(`${o}=${s}`)}return t.join(`; `)}t.exports={isCTLExcludingHtab:n,validateCookieName:r,validateCookiePath:a,validateCookieValue:i,toIMFDate:d,stringify:p}})),Je=e.c(((e,t)=>{let{collectASequenceOfCodePointsFast:n}=O(),{maxNameValuePairSize:r,maxAttributeValueSize:i}=Ke(),{isCTLExcludingHtab:a}=qe(),o=require(`node:assert`);function s(e){if(a(e))return null;let t=``,i=``,o=``,s=``;if(e.includes(`;`)){let r={position:0};t=n(`;`,e,r),i=e.slice(r.position)}else t=e;if(!t.includes(`=`))s=t;else{let e={position:0};o=n(`=`,t,e),s=t.slice(e.position+1)}return o=o.trim(),s=s.trim(),o.length+s.length>r?null:{name:o,value:s,...c(i)}}function c(e,t={}){for(;;){if(e.length===0)return t;o(e[0]===`;`),e=e.slice(1);let r=``;e.includes(`;`)?(r=n(`;`,e,{position:0}),e=e.slice(r.length)):(r=e,e=``);let a=``,s=``;if(r.includes(`=`)){let e={position:0};a=n(`=`,r,e),s=r.slice(e.position+1)}else a=r;if(a=a.trim(),s=s.trim(),s.length>i)continue;let c=a.toLowerCase();if(c===`expires`){let e=new Date(s);Number.isNaN(e.getTime())||(t.expires=e)}else if(c===`max-age`){let e=s.charCodeAt(0),n=e>=48&&e<=57,r=s[0]===`-`&&s.length>1;if(!n&&!r||/[^\d]/.test(s.slice(1)))continue;t.maxAge=Number(s)}else if(c===`domain`){let e=s;e[0]===`.`&&(e=e.slice(1)),e=e.toLowerCase(),t.domain=e}else if(c===`path`){let e=``;e=s.length===0||s[0]!==`/`?`/`:s,t.path=e}else if(c===`secure`)t.secure=!0;else if(c===`httponly`)t.httpOnly=!0;else if(c===`samesite`){let e=s.toLowerCase();e===`none`?t.sameSite=`None`:e===`strict`?t.sameSite=`Strict`:e===`lax`&&(t.sameSite=`Lax`)}else t.unparsed??=[],t.unparsed.push(`${a}=${s}`)}}t.exports={parseSetCookie:s,parseUnparsedAttributes:c}})),Ye=e.c(((e,t)=>{let{parseSetCookie:n}=Je(),{stringify:r}=qe(),{webidl:i}=A(),{Headers:a}=Re(),o=i.brandCheckMultiple([a,globalThis.Headers].filter(Boolean));function s(e){i.argumentLengthCheck(arguments,1,`getCookies`),o(e);let t=e.get(`cookie`),n={};if(!t)return n;for(let e of t.split(`;`)){let[t,...r]=e.split(`=`);n[t.trim()]=r.join(`=`)}return n}function c(e,t,n){o(e);let r=`deleteCookie`;i.argumentLengthCheck(arguments,2,r),t=i.converters.DOMString(t,r,`name`),n=i.converters.DeleteCookieAttributes(n),d(e,{name:t,value:``,expires:new Date(0),...n})}function l(e){i.argumentLengthCheck(arguments,1,`getSetCookies`),o(e);let t=e.getSetCookie();return t?t.map(e=>n(e)):[]}function u(e){return e=i.converters.DOMString(e),n(e)}function d(e,t){i.argumentLengthCheck(arguments,2,`setCookie`),o(e),t=i.converters.Cookie(t);let n=r(t);n&&e.append(`set-cookie`,n,!0)}i.converters.DeleteCookieAttributes=i.dictionaryConverter([{converter:i.nullableConverter(i.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`domain`,defaultValue:()=>null}]),i.converters.Cookie=i.dictionaryConverter([{converter:i.converters.DOMString,key:`name`},{converter:i.converters.DOMString,key:`value`},{converter:i.nullableConverter(e=>typeof e==`number`?i.converters[`unsigned long long`](e):new Date(e)),key:`expires`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters[`long long`]),key:`maxAge`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`domain`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.boolean),key:`secure`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.boolean),key:`httpOnly`,defaultValue:()=>null},{converter:i.converters.USVString,key:`sameSite`,allowedValues:[`Strict`,`Lax`,`None`]},{converter:i.sequenceConverter(i.converters.DOMString),key:`unparsed`,defaultValue:()=>[]}]),t.exports={getCookies:s,deleteCookie:c,getSetCookies:l,setCookie:d,parseCookie:u}})),Xe=e.c(((e,t)=>{let{webidl:n}=A(),{kEnumerableProperty:r}=m(),{kConstruct:i}=l();var a=class e extends Event{#e;constructor(e,t={}){if(e===i){super(arguments[1],arguments[2]),n.util.markAsUncloneable(this);return}let r=`MessageEvent constructor`;n.argumentLengthCheck(arguments,1,r),e=n.converters.DOMString(e,r,`type`),t=n.converters.MessageEventInit(t,r,`eventInitDict`),super(e,t),this.#e=t,n.util.markAsUncloneable(this)}get data(){return n.brandCheck(this,e),this.#e.data}get origin(){return n.brandCheck(this,e),this.#e.origin}get lastEventId(){return n.brandCheck(this,e),this.#e.lastEventId}get source(){return n.brandCheck(this,e),this.#e.source}get ports(){return n.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,i=!1,a=null,o=``,s=``,c=null,l=[]){return n.brandCheck(this,e),n.argumentLengthCheck(arguments,1,`MessageEvent.initMessageEvent`),new e(t,{bubbles:r,cancelable:i,data:a,origin:o,lastEventId:s,source:c,ports:l})}static createFastMessageEvent(t,n){let r=new e(i,t,n);return r.#e=n,r.#e.data??=null,r.#e.origin??=``,r.#e.lastEventId??=``,r.#e.source??=null,r.#e.ports??=[],r}};let{createFastMessageEvent:o}=a;delete a.createFastMessageEvent;var s=class e extends Event{#e;constructor(e,t={}){let r=`CloseEvent constructor`;n.argumentLengthCheck(arguments,1,r),e=n.converters.DOMString(e,r,`type`),t=n.converters.CloseEventInit(t),super(e,t),this.#e=t,n.util.markAsUncloneable(this)}get wasClean(){return n.brandCheck(this,e),this.#e.wasClean}get code(){return n.brandCheck(this,e),this.#e.code}get reason(){return n.brandCheck(this,e),this.#e.reason}},c=class e extends Event{#e;constructor(e,t){let r=`ErrorEvent constructor`;n.argumentLengthCheck(arguments,1,r),super(e,t),n.util.markAsUncloneable(this),e=n.converters.DOMString(e,r,`type`),t=n.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return n.brandCheck(this,e),this.#e.message}get filename(){return n.brandCheck(this,e),this.#e.filename}get lineno(){return n.brandCheck(this,e),this.#e.lineno}get colno(){return n.brandCheck(this,e),this.#e.colno}get error(){return n.brandCheck(this,e),this.#e.error}};Object.defineProperties(a.prototype,{[Symbol.toStringTag]:{value:`MessageEvent`,configurable:!0},data:r,origin:r,lastEventId:r,source:r,ports:r,initMessageEvent:r}),Object.defineProperties(s.prototype,{[Symbol.toStringTag]:{value:`CloseEvent`,configurable:!0},reason:r,code:r,wasClean:r}),Object.defineProperties(c.prototype,{[Symbol.toStringTag]:{value:`ErrorEvent`,configurable:!0},message:r,filename:r,lineno:r,colno:r,error:r}),n.converters.MessagePort=n.interfaceConverter(n.is.MessagePort,`MessagePort`),n.converters[`sequence<MessagePort>`]=n.sequenceConverter(n.converters.MessagePort);let u=[{key:`bubbles`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`cancelable`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`composed`,converter:n.converters.boolean,defaultValue:()=>!1}];n.converters.MessageEventInit=n.dictionaryConverter([...u,{key:`data`,converter:n.converters.any,defaultValue:()=>null},{key:`origin`,converter:n.converters.USVString,defaultValue:()=>``},{key:`lastEventId`,converter:n.converters.DOMString,defaultValue:()=>``},{key:`source`,converter:n.nullableConverter(n.converters.MessagePort),defaultValue:()=>null},{key:`ports`,converter:n.converters[`sequence<MessagePort>`],defaultValue:()=>[]}]),n.converters.CloseEventInit=n.dictionaryConverter([...u,{key:`wasClean`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`code`,converter:n.converters[`unsigned short`],defaultValue:()=>0},{key:`reason`,converter:n.converters.USVString,defaultValue:()=>``}]),n.converters.ErrorEventInit=n.dictionaryConverter([...u,{key:`message`,converter:n.converters.DOMString,defaultValue:()=>``},{key:`filename`,converter:n.converters.USVString,defaultValue:()=>``},{key:`lineno`,converter:n.converters[`unsigned long`],defaultValue:()=>0},{key:`colno`,converter:n.converters[`unsigned long`],defaultValue:()=>0},{key:`error`,converter:n.converters.any}]),t.exports={MessageEvent:a,CloseEvent:s,ErrorEvent:c,createFastMessageEvent:o}})),Ze=e.c(((e,t)=>{t.exports={uid:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,sentCloseFrameState:{SENT:1,RECEIVED:2},staticPropertyDescriptors:{enumerable:!0,writable:!1,configurable:!1},states:{CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},opcodes:{CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},maxUnsigned16Bit:65535,parserStates:{INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},emptyBuffer:Buffer.allocUnsafe(0),sendHints:{text:1,typedArray:2,arrayBuffer:3,blob:4}}})),Qe=e.c(((e,t)=>{let{states:n,opcodes:r}=Ze(),{isUtf8:i}=require(`node:buffer`),{removeHTTPWhitespace:a}=k(),{collectASequenceOfCodePointsFast:o}=O();function s(e){return e===n.CONNECTING}function c(e){return e===n.OPEN}function l(e){return e===n.CLOSING}function u(e){return e===n.CLOSED}function d(e,t,n=(e,t)=>new Event(e,t),r={}){let i=n(e,r);t.dispatchEvent(i)}function f(e,t,n){e.onMessage(t,n)}function p(e){return e.byteLength===e.buffer.byteLength?e.buffer:new Uint8Array(e).buffer}function m(e){if(e.length===0)return!1;for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n<33||n>126||n===34||n===40||n===41||n===44||n===47||n===58||n===59||n===60||n===61||n===62||n===63||n===64||n===91||n===92||n===93||n===123||n===125)return!1}return!0}function h(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function g(e){return e===r.CLOSE||e===r.PING||e===r.PONG}function _(e){return e===r.CONTINUATION}function v(e){return e===r.TEXT||e===r.BINARY}function y(e){return v(e)||_(e)||g(e)}function b(e){let t={position:0},n=new Map;for(;t.position<e.length;){let[r,i=``]=o(`;`,e,t).split(`=`,2);n.set(a(r,!0,!1),a(i,!1,!0)),t.position++}return n}function x(e){if(e.length===0)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}let t=Number.parseInt(e,10);return t>=8&&t<=15}function S(e,t){let n;try{n=new URL(e,t)}catch(e){throw new DOMException(e,`SyntaxError`)}if(n.protocol===`http:`?n.protocol=`ws:`:n.protocol===`https:`&&(n.protocol=`wss:`),n.protocol!==`ws:`&&n.protocol!==`wss:`)throw new DOMException(`expected a ws: or wss: url`,`SyntaxError`);if(n.hash.length||n.href.endsWith(`#`))throw new DOMException(`hash`,`SyntaxError`);return n}function C(e,t){if(e!==null&&e!==1e3&&(e<3e3||e>4999))throw new DOMException(`invalid code`,`InvalidAccessError`);if(t!==null){let e=Buffer.byteLength(t);if(e>123)throw new DOMException(`Reason must be less than 123 bytes; received ${e}`,`SyntaxError`)}}t.exports={isConnecting:s,isEstablished:c,isClosing:l,isClosed:u,fireEvent:d,isValidSubprotocol:m,isValidStatusCode:h,websocketMessageReceived:f,utf8Decode:(()=>{if(typeof process.versions.icu==`string`){let e=new TextDecoder(`utf-8`,{fatal:!0});return e.decode.bind(e)}return function(e){if(i(e))return e.toString(`utf-8`);throw TypeError(`Invalid utf-8 received.`)}})(),isControlFrame:g,isContinuationFrame:_,isTextBinaryFrame:v,isValidOpcode:y,parseExtensions:b,isValidClientWindowBits:x,toArrayBuffer:p,getURLRecord:S,validateCloseCodeAndReason:C}})),$e=e.c(((e,t)=>{let{runtimeFeatures:n}=M(),{maxUnsigned16Bit:r,opcodes:i}=Ze(),a=8*1024,o=null,s=a,c=n.has(`crypto`)?require(`node:crypto`).randomFillSync:null;function l(){return s===a&&(s=0,c(o??=Buffer.allocUnsafeSlow(a),0,a)),[o[s++],o[s++],o[s++],o[s++]]}t.exports={WebsocketFrameSend:class{constructor(e){this.frameData=e}createFrame(e){let t=this.frameData,n=l(),i=t?.byteLength??0,a=i,o=6;i>r?(o+=8,a=127):i>125&&(o+=2,a=126);let s=Buffer.allocUnsafe(i+o);s[0]=s[1]=0,s[0]|=128,s[0]=(s[0]&240)+e,s[o-4]=n[0],s[o-3]=n[1],s[o-2]=n[2],s[o-1]=n[3],s[1]=a,a===126?s.writeUInt16BE(i,2):a===127&&(s[2]=s[3]=0,s.writeUIntBE(i,4,6)),s[1]|=128;for(let e=0;e<i;++e)s[o+e]=t[e]^n[e&3];return s}static createFastTextFrame(e){let t=l(),n=e.length;for(let r=0;r<n;++r)e[r]^=t[r&3];let a=n,o=6;n>r?(o+=8,a=127):n>125&&(o+=2,a=126);let s=Buffer.allocUnsafeSlow(o);return s[0]=128|i.TEXT,s[1]=a|128,s[o-4]=t[0],s[o-3]=t[1],s[o-2]=t[2],s[o-1]=t[3],a===126?s.writeUInt16BE(n,2):a===127&&(s[2]=s[3]=0,s.writeUIntBE(n,4,6)),[s,e]}},generateMask:l}})),et=e.c(((e,t)=>{let{uid:n,states:r,sentCloseFrameState:i,emptyBuffer:a,opcodes:o}=Ze(),{parseExtensions:s,isClosed:c,isClosing:l,isEstablished:u,isConnecting:d,validateCloseCodeAndReason:f}=Qe(),{makeRequest:p}=Be(),{fetching:m}=He(),{Headers:h,getHeadersList:g}=Re(),{getDecodeSplit:_}=j(),{WebsocketFrameSend:v}=$e(),y=require(`node:assert`),{runtimeFeatures:b}=M(),x=b.has(`crypto`)?require(`node:crypto`):null,S=!1;function C(e,t,r,i,a){let o=e;o.protocol=e.protocol===`ws:`?`http:`:`https:`;let c=p({urlList:[o],client:r,serviceWorkers:`none`,referrer:`no-referrer`,mode:`websocket`,credentials:`include`,cache:`no-store`,redirect:`error`,useURLCredentials:!0});a.headers&&(c.headersList=g(new h(a.headers)));let l=x.randomBytes(16).toString(`base64`);c.headersList.append(`sec-websocket-key`,l,!0),c.headersList.append(`sec-websocket-version`,`13`,!0);for(let e of t)c.headersList.append(`sec-websocket-protocol`,e,!0);return c.headersList.append(`sec-websocket-extensions`,`permessage-deflate; client_max_window_bits`,!0),m({request:c,useParallelQueue:!0,dispatcher:a.dispatcher,processResponse(e){if(e.type===`error`||e.status!==101){if(e.socket?.session==null){T(i,1002,`Received network error or non-101 status code.`,e.error);return}if(e.status!==200){T(i,1002,`Received network error or non-200 status code.`,e.error);return}}if(S===!1&&e.socket?.session!=null&&(process.emitWarning(`WebSocket over HTTP2 is experimental, and subject to change.`,`ExperimentalWarning`),S=!0),t.length!==0&&!e.headersList.get(`Sec-WebSocket-Protocol`)){T(i,1002,`Server did not respond with sent protocols.`);return}if(e.socket.session==null&&e.headersList.get(`Upgrade`)?.toLowerCase()!==`websocket`){T(i,1002,`Server did not set Upgrade header to "websocket".`);return}if(e.socket.session==null&&e.headersList.get(`Connection`)?.toLowerCase()!==`upgrade`){T(i,1002,`Server did not set Connection header to "upgrade".`);return}if(e.headersList.get(`Sec-WebSocket-Accept`)!==x.hash(`sha1`,l+n,`base64`)){T(i,1002,`Incorrect hash received in Sec-WebSocket-Accept header.`);return}let r=e.headersList.get(`Sec-WebSocket-Extensions`),a;if(r!==null&&(a=s(r),!a.has(`permessage-deflate`))){T(i,1002,`Sec-WebSocket-Extensions header does not match.`);return}let o=e.headersList.get(`Sec-WebSocket-Protocol`);if(o!==null){let e=_(`sec-websocket-protocol`,c.headersList);if(e===null||!e.includes(o)){T(i,1002,`Protocol was not set in the opening handshake.`);return}}e.socket.on(`data`,i.onSocketData),e.socket.on(`close`,i.onSocketClose),e.socket.on(`error`,i.onSocketError),i.wasEverConnected=!0,i.onConnectionEstablished(e,a)}})}function w(e,t,n,s=!1){if(t??=null,n??=``,s&&f(t,n),!(c(e.readyState)||l(e.readyState)))if(!u(e.readyState))T(e),e.readyState=r.CLOSING;else if(!e.closeState.has(i.SENT)&&!e.closeState.has(i.RECEIVED)){let s=new v;n.length!==0&&t===null&&(t=1e3),y(t===null||Number.isInteger(t)),t===null&&n.length===0?s.frameData=a:t!==null&&n===null?(s.frameData=Buffer.allocUnsafe(2),s.frameData.writeUInt16BE(t,0)):t!==null&&n!==null?(s.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(n)),s.frameData.writeUInt16BE(t,0),s.frameData.write(n,2,`utf-8`)):s.frameData=a,e.socket.write(s.createFrame(o.CLOSE)),e.closeState.add(i.SENT),e.readyState=r.CLOSING}else e.readyState=r.CLOSING}function T(e,t,n,r){u(e.readyState)&&w(e,t,n,!1),e.controller.abort(),d(e.readyState)?e.onSocketClose():e.socket?.destroyed===!1&&e.socket.destroy()}t.exports={establishWebSocketConnection:C,failWebsocketConnection:T,closeWebSocketConnection:w}})),tt=e.c(((e,t)=>{let{createInflateRaw:n,Z_DEFAULT_WINDOWBITS:r}=require(`node:zlib`),{isValidClientWindowBits:i}=Qe(),{MessageSizeExceededError:a}=d(),o=Buffer.from([0,0,255,255]),s=Symbol(`kBuffer`),c=Symbol(`kLength`);t.exports={PerMessageDeflate:class{#e;#t={};#n=0;constructor(e,t){this.#t.serverNoContextTakeover=e.has(`server_no_context_takeover`),this.#t.serverMaxWindowBits=e.get(`server_max_window_bits`),this.#n=t.maxPayloadSize}decompress(e,t,l){if(!this.#e){let e=r;if(this.#t.serverMaxWindowBits){if(!i(this.#t.serverMaxWindowBits)){l(Error(`Invalid server_max_window_bits`));return}e=Number.parseInt(this.#t.serverMaxWindowBits)}try{this.#e=n({windowBits:e})}catch(e){l(e);return}this.#e[s]=[],this.#e[c]=0,this.#e.on(`data`,e=>{if(this.#e[c]+=e.length,this.#n>0&&this.#e[c]>this.#n){l(new a),this.#e.removeAllListeners(),this.#e.destroy(),this.#e=null;return}this.#e[s].push(e)}),this.#e.on(`error`,e=>{this.#e=null,l(e)})}this.#e.write(e),t&&this.#e.write(o),this.#e.flush(()=>{if(!this.#e)return;let e=Buffer.concat(this.#e[s],this.#e[c]);this.#e[s].length=0,this.#e[c]=0,l(null,e)})}}}})),nt=e.c(((e,t)=>{let{Writable:n}=require(`node:stream`),r=require(`node:assert`),{parserStates:i,opcodes:a,states:o,emptyBuffer:s,sentCloseFrameState:c}=Ze(),{isValidStatusCode:l,isValidOpcode:u,websocketMessageReceived:f,utf8Decode:p,isControlFrame:m,isTextBinaryFrame:h,isContinuationFrame:g}=Qe(),{failWebsocketConnection:_}=et(),{WebsocketFrameSend:v}=$e(),{PerMessageDeflate:y}=tt(),{MessageSizeExceededError:b}=d();t.exports={ByteParser:class extends n{#e=[];#t=0;#n=0;#r=!1;#i=i.INFO;#a={};#o=[];#s;#c;#l;#u;constructor(e,t,n={}){super(),this.#c=e,this.#s=t??new Map,this.#l=n.maxFragments??0,this.#u=n.maxPayloadSize??0,this.#s.has(`permessage-deflate`)&&this.#s.set(`permessage-deflate`,new y(t,n))}_write(e,t,n){this.#e.push(e),this.#n+=e.length,this.#r=!0,this.run(n)}#d(){return this.#u>0&&!m(this.#a.opcode)&&this.#a.payloadLength+this.#t>this.#u?(_(this.#c,1009,`Payload size exceeds maximum allowed size`),!1):!0}run(e){for(;this.#r;)if(this.#i===i.INFO){if(this.#n<2)return e();let t=this.consume(2),n=(t[0]&128)!=0,r=t[0]&15,o=(t[1]&128)==128,s=!n&&r!==a.CONTINUATION,c=t[1]&127,l=t[0]&64,d=t[0]&32,f=t[0]&16;if(!u(r))return _(this.#c,1002,`Invalid opcode received`),e();if(o)return _(this.#c,1002,`Frame cannot be masked`),e();if(l!==0&&!this.#s.has(`permessage-deflate`)){_(this.#c,1002,`Expected RSV1 to be clear.`);return}if(d!==0||f!==0){_(this.#c,1002,`RSV1, RSV2, RSV3 must be clear`);return}if(s&&!h(r)){_(this.#c,1002,`Invalid frame type was fragmented.`);return}if(h(r)&&this.#o.length>0){_(this.#c,1002,`Expected continuation frame`);return}if(this.#a.fragmented&&s){_(this.#c,1002,`Fragmented frame exceeded 125 bytes.`);return}if((c>125||s)&&m(r)){_(this.#c,1002,`Control frame either too large or fragmented`);return}if(g(r)&&this.#o.length===0&&!this.#a.compressed){_(this.#c,1002,`Unexpected continuation frame`);return}if(c<=125){if(this.#a.payloadLength=c,this.#i=i.READ_DATA,!this.#d())return}else c===126?this.#i=i.PAYLOADLENGTH_16:c===127&&(this.#i=i.PAYLOADLENGTH_64);h(r)&&(this.#a.binaryType=r,this.#a.compressed=l!==0),this.#a.opcode=r,this.#a.masked=o,this.#a.fin=n,this.#a.fragmented=s}else if(this.#i===i.PAYLOADLENGTH_16){if(this.#n<2)return e();let t=this.consume(2);if(this.#a.payloadLength=t.readUInt16BE(0),this.#i=i.READ_DATA,!this.#d())return}else if(this.#i===i.PAYLOADLENGTH_64){if(this.#n<8)return e();let t=this.consume(8),n=t.readUInt32BE(0),r=t.readUInt32BE(4);if(n!==0||r>2**31-1){_(this.#c,1009,`Received payload length > 2^31 bytes.`);return}if(this.#a.payloadLength=r,this.#i=i.READ_DATA,!this.#d())return}else if(this.#i===i.READ_DATA){if(this.#n<this.#a.payloadLength)return e();let t=this.consume(this.#a.payloadLength);if(m(this.#a.opcode))this.#r=this.parseControlFrame(t),this.#i=i.INFO;else if(this.#a.compressed){this.#s.get(`permessage-deflate`).decompress(t,this.#a.fin,(t,n)=>{if(t){let e=t instanceof b?1009:1007;_(this.#c,e,t.message);return}if(this.writeFragments(n)){if(this.#u>0&&this.#t>this.#u){_(this.#c,1009,new b().message);return}if(!this.#a.fin){this.#i=i.INFO,this.#r=!0,this.run(e);return}f(this.#c,this.#a.binaryType,this.consumeFragments()),this.#r=!0,this.#i=i.INFO,this.run(e)}},this.#t),this.#r=!1;break}else{if(!this.writeFragments(t))return;!this.#a.fragmented&&this.#a.fin&&f(this.#c,this.#a.binaryType,this.consumeFragments()),this.#i=i.INFO}}}consume(e){if(e>this.#n)throw Error(`Called consume() before buffers satiated.`);if(e===0)return s;this.#n-=e;let t=this.#e[0];if(t.length>e)return this.#e[0]=t.subarray(e,t.length),t.subarray(0,e);if(t.length===e)return this.#e.shift();{let t=0,n=Buffer.allocUnsafeSlow(e);for(;t!==e;){let r=this.#e[0],i=r.length;if(i+t===e){n.set(this.#e.shift(),t);break}else if(i+t>e){n.set(r.subarray(0,e-t),t),this.#e[0]=r.subarray(e-t);break}else n.set(this.#e.shift(),t),t+=i}return n}}writeFragments(e){return this.#l>0&&this.#o.length===this.#l?(_(this.#c,1008,`Too many message fragments`),!1):(this.#t+=e.length,this.#o.push(e),!0)}consumeFragments(){let e=this.#o;if(e.length===1)return this.#t=0,e.shift();let t=0,n=Buffer.allocUnsafeSlow(this.#t);for(let r=0;r<e.length;++r){let i=e[r];n.set(i,t),t+=i.length}return this.#o=[],this.#t=0,n}parseCloseBody(e){r(e.length!==1);let t;if(e.length>=2&&(t=e.readUInt16BE(0)),t!==void 0&&!l(t))return{code:1002,reason:`Invalid status code`,error:!0};let n=e.subarray(2);n[0]===239&&n[1]===187&&n[2]===191&&(n=n.subarray(3));try{n=p(n)}catch{return{code:1007,reason:`Invalid UTF-8`,error:!0}}return{code:t,reason:n,error:!1}}parseControlFrame(e){let{opcode:t,payloadLength:n}=this.#a;if(t===a.CLOSE){if(n===1)return _(this.#c,1002,`Received close frame with a 1-byte body.`),!1;if(this.#a.closeInfo=this.parseCloseBody(e),this.#a.closeInfo.error){let{code:e,reason:t}=this.#a.closeInfo;return _(this.#c,e,t),!1}if(!this.#c.closeState.has(c.SENT)&&!this.#c.closeState.has(c.RECEIVED)){let e=s;this.#a.closeInfo.code&&(e=Buffer.allocUnsafe(2),e.writeUInt16BE(this.#a.closeInfo.code,0));let t=new v(e);this.#c.socket.write(t.createFrame(a.CLOSE)),this.#c.closeState.add(c.SENT)}return this.#c.readyState=o.CLOSING,this.#c.closeState.add(c.RECEIVED),!1}else if(t===a.PING){if(!this.#c.closeState.has(c.RECEIVED)){let t=new v(e);this.#c.socket.write(t.createFrame(a.PONG)),this.#c.onPing(e)}}else t===a.PONG&&this.#c.onPong(e);return!0}get closingInfo(){return this.#a.closeInfo}}}})),rt=e.c(((e,t)=>{let{WebsocketFrameSend:n}=$e(),{opcodes:r,sendHints:i}=Ze(),a=z();var o=class{#e=new a;#t=!1;#n;constructor(e){this.#n=e}add(e,t,r){if(r!==i.blob){if(this.#t){let n={promise:null,callback:t,frame:s(e,r)};this.#e.push(n)}else if(r===i.text){let{0:r,1:i}=n.createFastTextFrame(e);this.#n.cork(),this.#n.write(r),this.#n.write(i,t),this.#n.uncork()}else this.#n.write(s(e,r),t);return}let a={promise:e.arrayBuffer().then(e=>{a.promise=null,a.frame=s(e,r)}),callback:t,frame:null};this.#e.push(a),this.#t||this.#r()}async#r(){this.#t=!0;let e=this.#e;for(;!e.isEmpty();){let t=e.shift();t.promise!==null&&await t.promise,this.#n.write(t.frame,t.callback),t.callback=t.frame=null}this.#t=!1}};function s(e,t){return new n(c(e,t)).createFrame(t===i.text?r.TEXT:r.BINARY)}function c(e,t){switch(t){case i.text:case i.typedArray:return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);case i.arrayBuffer:case i.blob:return new Uint8Array(e)}}t.exports={SendQueue:o}})),it=e.c(((e,t)=>{let{isArrayBuffer:n}=require(`node:util/types`),{webidl:r}=A(),{URLSerializer:i}=k(),{environmentSettingsObject:a}=j(),{staticPropertyDescriptors:o,states:s,sentCloseFrameState:c,sendHints:l,opcodes:u}=Ze(),{isConnecting:d,isEstablished:f,isClosing:p,isClosed:h,isValidSubprotocol:_,fireEvent:v,utf8Decode:y,toArrayBuffer:b,getURLRecord:x}=Qe(),{establishWebSocketConnection:S,closeWebSocketConnection:C,failWebsocketConnection:w}=et(),{ByteParser:T}=nt(),{kEnumerableProperty:E}=m(),{getGlobalDispatcher:D}=be(),{ErrorEvent:O,CloseEvent:M,createFastMessageEvent:N}=Xe(),{SendQueue:P}=rt(),{WebsocketFrameSend:F}=$e(),{channels:I}=g(),L=Symbol.for(`nodejs.ref`),R=Symbol.for(`nodejs.unref`);function z(e){return typeof e?.address==`function`?e.address():typeof e?.session?.socket?.address==`function`?e.session.socket.address():null}var B=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n=``;#r=``;#i=!0;#a;#o={onConnectionEstablished:(e,t)=>this.#u(e,t),onMessage:(e,t)=>this.#d(e,t),onParserError:e=>w(this.#o,null,e.message),onParserDrain:()=>this.#f(),onSocketData:e=>{this.#l.write(e)||this.#o.socket.pause()},onSocketError:e=>{this.#o.readyState=s.CLOSING,I.socketError.hasSubscribers&&I.socketError.publish(e),this.#o.socket.destroy()},onSocketClose:()=>this.#p(),onPing:e=>{I.ping.hasSubscribers&&I.ping.publish({payload:e,websocket:this})},onPong:e=>{I.pong.hasSubscribers&&I.pong.publish({payload:e,websocket:this})},readyState:s.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#s;#c;#l;constructor(t,n=[]){super(),r.util.markAsUncloneable(this);let i=`WebSocket constructor`;r.argumentLengthCheck(arguments,1,i);let o=r.converters[`DOMString or sequence<DOMString> or WebSocketInit`](n,i,`options`);t=r.converters.USVString(t),n=o.protocols;let s=a.settingsObject.baseUrl,c=x(t,s);if(typeof n==`string`&&(n=[n]),n.length!==new Set(n.map(e=>e.toLowerCase())).size||n.length>0&&!n.every(e=>_(e)))throw new DOMException(`Invalid Sec-WebSocket-Protocol value`,`SyntaxError`);this.#s=new URL(c.href);let l=a.settingsObject;this.#o.controller=S(c,n,l,this.#o,o),this.#o.readyState=e.CONNECTING,this.#c=`blob`}[L](){r.brandCheck(this,e),this.#i=!0,this.#o.socket?.ref?.()}[R](){r.brandCheck(this,e),this.#i=!1,this.#o.socket?.unref?.()}close(t=void 0,n=void 0){r.brandCheck(this,e),t!==void 0&&(t=r.converters[`unsigned short`](t,`WebSocket.close`,`code`,r.attributes.Clamp)),n!==void 0&&(n=r.converters.USVString(n)),t??=null,n??=``,C(this.#o,t,n,!0)}send(t){r.brandCheck(this,e);let i=`WebSocket.send`;if(r.argumentLengthCheck(arguments,1,i),t=r.converters.WebSocketSendData(t,i,`data`),d(this.#o.readyState))throw new DOMException(`Sent before connected.`,`InvalidStateError`);if(!(!f(this.#o.readyState)||p(this.#o.readyState)))if(typeof t==`string`){let e=Buffer.from(t);this.#t+=e.byteLength,this.#a.add(e,()=>{this.#t-=e.byteLength},l.text)}else n(t)?(this.#t+=t.byteLength,this.#a.add(t,()=>{this.#t-=t.byteLength},l.arrayBuffer)):ArrayBuffer.isView(t)?(this.#t+=t.byteLength,this.#a.add(t,()=>{this.#t-=t.byteLength},l.typedArray)):r.is.Blob(t)&&(this.#t+=t.size,this.#a.add(t,()=>{this.#t-=t.size},l.blob))}get readyState(){return r.brandCheck(this,e),this.#o.readyState}get bufferedAmount(){return r.brandCheck(this,e),this.#t}get url(){return r.brandCheck(this,e),i(this.#s)}get extensions(){return r.brandCheck(this,e),this.#r}get protocol(){return r.brandCheck(this,e),this.#n}get onopen(){return r.brandCheck(this,e),this.#e.open}set onopen(t){r.brandCheck(this,e),this.#e.open&&this.removeEventListener(`open`,this.#e.open);let n=r.converters.EventHandlerNonNull(t);n===null?this.#e.open=null:(this.addEventListener(`open`,n),this.#e.open=t)}get onerror(){return r.brandCheck(this,e),this.#e.error}set onerror(t){r.brandCheck(this,e),this.#e.error&&this.removeEventListener(`error`,this.#e.error);let n=r.converters.EventHandlerNonNull(t);n===null?this.#e.error=null:(this.addEventListener(`error`,n),this.#e.error=t)}get onclose(){return r.brandCheck(this,e),this.#e.close}set onclose(t){r.brandCheck(this,e),this.#e.close&&this.removeEventListener(`close`,this.#e.close);let n=r.converters.EventHandlerNonNull(t);n===null?this.#e.close=null:(this.addEventListener(`close`,n),this.#e.close=t)}get onmessage(){return r.brandCheck(this,e),this.#e.message}set onmessage(t){r.brandCheck(this,e),this.#e.message&&this.removeEventListener(`message`,this.#e.message);let n=r.converters.EventHandlerNonNull(t);n===null?this.#e.message=null:(this.addEventListener(`message`,n),this.#e.message=t)}get binaryType(){return r.brandCheck(this,e),this.#c}set binaryType(t){r.brandCheck(this,e),t!==`blob`&&t!==`arraybuffer`?this.#c=`blob`:this.#c=t}#u(e,t){this.#o.socket=e.socket,this.#i||this.#o.socket.unref?.();let n=this.#o.controller.dispatcher?.webSocketOptions?.maxFragments,r=this.#o.controller.dispatcher?.webSocketOptions?.maxPayloadSize,i=new T(this.#o,t,{maxFragments:n,maxPayloadSize:r});i.on(`drain`,()=>this.#o.onParserDrain()),i.on(`error`,e=>this.#o.onParserError(e)),this.#l=i,this.#a=new P(e.socket),this.#o.readyState=s.OPEN;let a=e.headersList.get(`sec-websocket-extensions`);a!==null&&(this.#r=a);let o=e.headersList.get(`sec-websocket-protocol`);if(o!==null&&(this.#n=o),v(`open`,this),I.open.hasSubscribers){let t=e.headersList.entries;I.open.publish({address:z(e.socket),protocol:this.#n,extensions:this.#r,websocket:this,handshakeResponse:{status:e.status,statusText:e.statusText,headers:t}})}}#d(e,t){if(this.#o.readyState!==s.OPEN)return;let n;if(e===u.TEXT)try{n=y(t)}catch{w(this.#o,1007,`Received invalid UTF-8 in text frame.`);return}else e===u.BINARY&&(n=this.#c===`blob`?new Blob([t]):b(t));v(`message`,this,N,{origin:this.#s.origin,data:n})}#f(){this.#o.socket.resume()}#p(){let e=this.#o.closeState.has(c.SENT)&&this.#o.closeState.has(c.RECEIVED),t=1005,n=``,r=this.#l?.closingInfo;r&&!r.error&&(t=r.code??1005,n=r.reason),this.#o.readyState=s.CLOSED,this.#o.closeState.has(c.RECEIVED)||(t=1006,v(`error`,this,(e,t)=>new O(e,t),{error:TypeError(n)})),v(`close`,this,(e,t)=>new M(e,t),{wasClean:e,code:t,reason:n}),I.close.hasSubscribers&&I.close.publish({websocket:this,code:t,reason:n})}static ping(e,t){if(Buffer.isBuffer(t)){if(t.length>125)throw TypeError(`A PING frame cannot have a body larger than 125 bytes.`)}else if(t!==void 0)throw TypeError(`Expected buffer payload`);let n=e.#o.readyState;if(f(n)&&!p(n)&&!h(n)){let n=new F(t);e.#o.socket.write(n.createFrame(u.PING))}}};let{ping:V}=B;Reflect.deleteProperty(B,`ping`),B.CONNECTING=B.prototype.CONNECTING=s.CONNECTING,B.OPEN=B.prototype.OPEN=s.OPEN,B.CLOSING=B.prototype.CLOSING=s.CLOSING,B.CLOSED=B.prototype.CLOSED=s.CLOSED,Object.defineProperties(B.prototype,{CONNECTING:o,OPEN:o,CLOSING:o,CLOSED:o,url:E,readyState:E,bufferedAmount:E,onopen:E,onerror:E,onclose:E,close:E,onmessage:E,binaryType:E,send:E,extensions:E,protocol:E,[Symbol.toStringTag]:{value:`WebSocket`,writable:!1,enumerable:!1,configurable:!0}}),Object.defineProperties(B,{CONNECTING:o,OPEN:o,CLOSING:o,CLOSED:o}),r.converters[`sequence<DOMString>`]=r.sequenceConverter(r.converters.DOMString),r.converters[`DOMString or sequence<DOMString>`]=function(e,t,n){return r.util.Type(e)===r.util.Types.OBJECT&&Symbol.iterator in e?r.converters[`sequence<DOMString>`](e):r.converters.DOMString(e,t,n)},r.converters.WebSocketInit=r.dictionaryConverter([{key:`protocols`,converter:r.converters[`DOMString or sequence<DOMString>`],defaultValue:()=>[]},{key:`dispatcher`,converter:r.converters.any,defaultValue:()=>D()},{key:`headers`,converter:r.nullableConverter(r.converters.HeadersInit)}]),r.converters[`DOMString or sequence<DOMString> or WebSocketInit`]=function(e){return r.util.Type(e)===r.util.Types.OBJECT&&!(Symbol.iterator in e)?r.converters.WebSocketInit(e):{protocols:r.converters[`DOMString or sequence<DOMString>`](e)}},r.converters.WebSocketSendData=function(e){return r.util.Type(e)===r.util.Types.OBJECT&&(r.is.Blob(e)||r.is.BufferSource(e))?e:r.converters.USVString(e)},t.exports={WebSocket:B,ping:V}})),at=e.c(((e,t)=>{let{webidl:n}=A(),{validateCloseCodeAndReason:r}=Qe(),{kConstruct:i}=l(),{kEnumerableProperty:a}=m();function o(){class e extends DOMException{get reason(){return``}}return new e().reason===void 0?new Proxy(DOMException,{construct(e,t,n){let r=Reflect.construct(e,t,e);return Object.setPrototypeOf(r,n.prototype),r}}):DOMException}var s=class e extends o(){#e;#t;constructor(e=``,t=void 0){if(e=n.converters.DOMString(e,`WebSocketError`,`message`),super(e,`WebSocketError`),t===i)return;t!==null&&(t=n.converters.WebSocketCloseInfo(t));let a=t.closeCode??null,o=t.reason??``;r(a,o),o.length!==0&&a===null&&(a=1e3),this.#e=a,this.#t=o}get closeCode(){return this.#e}get reason(){return this.#t}static createUnvalidatedWebSocketError(t,n,r){let a=new e(t,i);return a.#e=n,a.#t=r,a}};let{createUnvalidatedWebSocketError:c}=s;delete s.createUnvalidatedWebSocketError,Object.defineProperties(s.prototype,{closeCode:a,reason:a,[Symbol.toStringTag]:{value:`WebSocketError`,writable:!1,enumerable:!1,configurable:!0}}),n.is.WebSocketError=n.util.MakeTypeAssertion(s),t.exports={WebSocketError:s,createUnvalidatedWebSocketError:c}})),ot=e.c(((e,t)=>{let{addAbortListener:n}=require(`node:events`),{environmentSettingsObject:r,readableStreamClose:i}=j(),{states:a,opcodes:o,sentCloseFrameState:s}=Ze(),{webidl:c}=A(),{getURLRecord:l,isValidSubprotocol:u,isEstablished:d,utf8Decode:f}=Qe(),{establishWebSocketConnection:p,failWebsocketConnection:h,closeWebSocketConnection:_}=et(),{channels:v}=g(),{WebsocketFrameSend:y}=$e(),{ByteParser:b}=nt(),{WebSocketError:x,createUnvalidatedWebSocketError:S}=at(),{kEnumerableProperty:C}=m(),{utf8DecodeBytes:w}=D(),T=!1;var E=class{#e;#t;#n;#r;#i;#a;#o=!1;#s={onConnectionEstablished:(e,t)=>this.#u(e,t),onMessage:(e,t)=>this.#d(e,t),onParserError:e=>h(this.#s,null,e.message),onParserDrain:()=>this.#s.socket.resume(),onSocketData:e=>{this.#c.write(e)||this.#s.socket.pause()},onSocketError:e=>{this.#s.readyState=a.CLOSING,v.socketError.hasSubscribers&&v.socketError.publish(e),this.#s.socket.destroy()},onSocketClose:()=>this.#f(),onPing:()=>{},onPong:()=>{},readyState:a.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#c;constructor(e,t=void 0){T||=(process.emitWarning(`WebSocketStream is experimental! Expect it to change at any time.`,{code:`UNDICI-WSS`}),!0),c.argumentLengthCheck(arguments,1,`WebSocket`),e=c.converters.USVString(e),t!==null&&(t=c.converters.WebSocketStreamOptions(t));let i=r.settingsObject.baseUrl,o=l(e,i),s=t.protocols;if(s.length!==new Set(s.map(e=>e.toLowerCase())).size||s.length>0&&!s.every(e=>u(e)))throw new DOMException(`Invalid Sec-WebSocket-Protocol value`,`SyntaxError`);if(this.#e=o.toString(),this.#t=Promise.withResolvers(),this.#n=Promise.withResolvers(),t.signal!=null){let e=t.signal;if(e.aborted){this.#t.reject(e.reason),this.#n.reject(e.reason);return}n(e,()=>{d(this.#s.readyState)||(h(this.#s),this.#s.readyState=a.CLOSING,this.#t.reject(e.reason),this.#n.reject(e.reason),this.#o=!0)})}let f=r.settingsObject;this.#s.controller=p(o,s,f,this.#s,t)}get url(){return this.#e.toString()}get opened(){return this.#t.promise}get closed(){return this.#n.promise}close(e=void 0){e!==null&&(e=c.converters.WebSocketCloseInfo(e));let t=e.closeCode??null,n=e.reason;_(this.#s,t,n,!0)}#l(e){e=c.converters.WebSocketStreamWrite(e);let t=Promise.withResolvers(),n=null,r=null;if(c.is.BufferSource(e))n=new Uint8Array(ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e.slice()),r=o.BINARY;else{let i;try{i=c.converters.DOMString(e)}catch(e){return t.reject(e),t.promise}n=new TextEncoder().encode(i),r=o.TEXT}if(!this.#s.closeState.has(s.SENT)&&!this.#s.closeState.has(s.RECEIVED)){let e=new y(n);this.#s.socket.write(e.createFrame(r),()=>{t.resolve(void 0)})}return t.promise}#u(e,t){this.#s.socket=e.socket;let n=this.#s.controller.dispatcher?.webSocketOptions?.maxFragments,r=this.#s.controller.dispatcher?.webSocketOptions?.maxPayloadSize,i=new b(this.#s,t,{maxFragments:n,maxPayloadSize:r});i.on(`drain`,()=>this.#s.onParserDrain()),i.on(`error`,e=>this.#s.onParserError(e)),this.#c=i,this.#s.readyState=a.OPEN;let o=t??``,s=e.headersList.get(`sec-websocket-protocol`)??``,c=new ReadableStream({start:e=>{this.#i=e},cancel:e=>this.#m(e)}),l=new WritableStream({start:e=>{this.#a=e},write:e=>this.#l(e),close:()=>_(this.#s,null,null),abort:e=>this.#p(e)});this.#r=c,this.#t.resolve({extensions:o,protocol:s,readable:c,writable:l})}#d(e,t){if(this.#s.readyState!==a.OPEN)return;let n;if(e===o.TEXT)try{n=f(t)}catch{h(this.#s,1007,`Received invalid UTF-8 in text frame.`);return}else e===o.BINARY&&(n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength));this.#i.enqueue(n)}#f(){let e=this.#s.closeState.has(s.SENT)&&this.#s.closeState.has(s.RECEIVED);if(this.#s.readyState=a.CLOSED,this.#o)return;this.#s.wasEverConnected||this.#t.reject(new x(`Socket never opened`));let t=this.#c?.closingInfo,n=t?.code??1005;!this.#s.closeState.has(s.SENT)&&!this.#s.closeState.has(s.RECEIVED)&&(n=1006);let r=t?.reason==null?``:w(Buffer.from(t.reason));if(e)i(this.#i),this.#a.error(new DOMException(`A closed WebSocketStream cannot be written to`,`InvalidStateError`)),this.#n.resolve({closeCode:n,reason:r});else{let e=S(`unclean close`,n,r);this.#i?.error(e),this.#a?.error(e),this.#n.reject(e)}}#p(e){let t=null,n=``;c.is.WebSocketError(e)&&(t=e.closeCode,n=e.reason),_(this.#s,t,n)}#m(e){this.#p(e)}};Object.defineProperties(E.prototype,{url:C,opened:C,closed:C,close:C,[Symbol.toStringTag]:{value:`WebSocketStream`,writable:!1,enumerable:!1,configurable:!0}}),c.converters.WebSocketStreamOptions=c.dictionaryConverter([{key:`protocols`,converter:c.sequenceConverter(c.converters.USVString),defaultValue:()=>[]},{key:`signal`,converter:c.nullableConverter(c.converters.AbortSignal),defaultValue:()=>null}]),c.converters.WebSocketCloseInfo=c.dictionaryConverter([{key:`closeCode`,converter:e=>c.converters[`unsigned short`](e,c.attributes.EnforceRange)},{key:`reason`,converter:c.converters.USVString,defaultValue:()=>``}]),c.converters.WebSocketStreamWrite=function(e){return typeof e==`string`?c.converters.USVString(e):c.converters.BufferSource(e)},t.exports={WebSocketStream:E}})),st=e.c(((e,t)=>{let{makeRequest:n}=Be();function r(e){return e.indexOf(`\0`)===-1}function i(e){if(e.length===0)return!1;for(let t=0;t<e.length;t++)if(e.charCodeAt(t)<48||e.charCodeAt(t)>57)return!1;return!0}function a(e,t,r,i){let a=r===`no cors`?`no-cors`:`cors`;i&&a===`no-cors`&&(a=`same-origin`);let o=`include`;return r===`anonymous`&&(o=`same-origin`),n({urlList:[e],destination:t,mode:a,credentials:o,useURLCredentials:!0})}t.exports={isValidLastEventId:r,isASCIINumber:i,createPotentialCORSRequest:a}})),ct=e.c(((e,t)=>{let n=require(`node:buffer`),{Transform:r}=require(`node:stream`),{isASCIINumber:i,isValidLastEventId:a}=st(),o=[239,187,191],s=n.kStringMaxLength,c=Buffer.from(`data`),l=Buffer.from(`event`),u=Buffer.from(`id`),d=Buffer.from(`retry`);function f(e,t){if(t>=e.length)return!1;for(let n=t;n<e.length;n++)if(e[n]<48||e[n]>57)return!1;return!0}function p(e,t){for(let n=t;n<e.length;n++)if(e[n]===0)return!1;return!0}function m(e,t,n){if(t!==n.length)return!1;for(let r=0;r<t;r++)if(e[r]!==n[r])return!1;return!0}function h(){let e=Error(`EventSource message size exceeded`);return e.aborted=!1,e}t.exports={EventSourceStream:class extends r{state;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;chunks=[];chunkIndex=0;pos=0;lineChunkIndex=0;linePos=0;eventDataSize=0;maxEventSize;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(e={}){e.readableObjectMode=!0,super(e),this.state=e.eventSourceSettings||{},this.maxEventSize=e.maxEventSize??s,e.push&&(this.push=e.push)}_transform(e,t,n){if(e.length===0){n();return}if(this.chunks.push(e),this.checkBOM&&this.handleBOM()){n();return}for(;this.hasCurrentByte();){let e=this.currentByte();if(this.eventEndCheck){if(this.crlfCheck){if(e===10){this.crlfCheck=!1,this.consumeCurrentByte();continue}this.crlfCheck=!1}if(e===10||e===13){e===13&&(this.crlfCheck=!0),this.consumeCurrentByte(),this.hasPendingEvent()&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(e===10||e===13){e===13&&(this.crlfCheck=!0);try{this.parseLine(this.readLine(),this.event)}catch(e){n(e);return}this.consumeCurrentByte(),this.eventEndCheck=!0;continue}this.advanceCursor()}n()}parseLine(e,t){if(e.length===0)return;let n=e.indexOf(58);if(n===0)return;let r=e.length,i=e.length;if(n!==-1&&(r=n,i=n+1,e[i]===32&&++i),m(e,r,c)){let n=e.length-i,r=this.eventDataSize+(t.data===void 0?0:1)+n;if(this.maxEventSize>0&&r>this.maxEventSize)throw h();let a=e.toString(`utf8`,i);t.data===void 0?t.data=a:t.data+=`\n${a}`,this.eventDataSize=r;return}if(m(e,r,d)){f(e,i)&&(t.retry=e.toString(`utf8`,i));return}if(m(e,r,u)){p(e,i)&&(t.id=e.toString(`utf8`,i));return}if(m(e,r,l)){let n=e.toString(`utf8`,i);n.length>0&&(t.event=n)}}processEvent(e){e.retry&&i(e.retry)&&(this.state.reconnectionTime=parseInt(e.retry,10)),e.id!==void 0&&a(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,this.event.event=void 0,this.event.id=void 0,this.event.retry=void 0,this.eventDataSize=0}hasPendingEvent(){return this.event.data!==void 0||this.event.event!==void 0||this.event.id!==void 0||this.event.retry!==void 0}hasCurrentByte(){return this.chunkIndex<this.chunks.length&&this.pos<this.chunks[this.chunkIndex].length}currentByte(){return this.chunks[this.chunkIndex][this.pos]}consumeCurrentByte(){this.advanceCursor(),this.syncLineStartToCursor()}advanceCursor(){for(this.pos++;this.chunkIndex<this.chunks.length&&this.pos>=this.chunks[this.chunkIndex].length;)this.chunkIndex++,this.pos=0}syncLineStartToCursor(){this.lineChunkIndex=this.chunkIndex,this.linePos=this.pos,this.dropConsumedChunks()}dropConsumedChunks(){for(;this.lineChunkIndex>0;)this.chunks.shift(),this.lineChunkIndex--,this.chunkIndex--;this.chunkIndex===this.chunks.length&&(this.chunks.length=0,this.chunkIndex=0,this.pos=0,this.lineChunkIndex=0,this.linePos=0)}readLine(){if(this.lineChunkIndex===this.chunkIndex)return this.chunks[this.chunkIndex].subarray(this.linePos,this.pos);let e=[],t=0;for(let n=this.lineChunkIndex;n<=this.chunkIndex;n++){let r=this.chunks[n],i=n===this.lineChunkIndex?this.linePos:0,a=n===this.chunkIndex?this.pos:r.length,o=r.subarray(i,a);t+=o.length,e.push(o)}return Buffer.concat(e,t)}peekBufferedByte(e){let t=this.lineChunkIndex,n=this.linePos;for(;t<this.chunks.length;){let r=this.chunks[t],i=r.length-n;if(e<i)return r[n+e];e-=i,t++,n=0}}discardLeadingBytes(e){for(;e>0&&this.lineChunkIndex<this.chunks.length;){let t=this.chunks[this.lineChunkIndex].length-this.linePos;e<t?(this.linePos+=e,e=0):(e-=t,this.lineChunkIndex++,this.linePos=0)}this.chunkIndex=this.lineChunkIndex,this.pos=this.linePos,this.dropConsumedChunks()}handleBOM(){let e=this.peekBufferedByte(0),t=this.peekBufferedByte(1),n=this.peekBufferedByte(2);return t===void 0?(e===o[0]||(this.checkBOM=!1),!0):n===void 0?e===o[0]&&t===o[1]?!0:(this.checkBOM=!1,!1):(e===o[0]&&t===o[1]&&n===o[2]&&this.discardLeadingBytes(3),this.checkBOM=!1,!this.hasCurrentByte())}}}})),lt=e.c(((e,t)=>{let{pipeline:n}=require(`node:stream`),{fetching:r}=He(),{webidl:i}=A(),{EventSourceStream:a}=ct(),{parseMIMEType:o}=k(),{createFastMessageEvent:s}=Xe(),{isNetworkError:c}=ze(),{isValidHeaderValue:l,kEnumerableProperty:u}=m(),{environmentSettingsObject:d}=j(),{createPotentialCORSRequest:f}=st(),{getGlobalDispatcher:p}=be(),{isomorphicDecode:h}=O(),g=new TextEncoder,_=!1,v=3e3;var y=class e extends EventTarget{#e={open:null,error:null,message:null};#t;#n=!1;#r=0;#i=null;#a=null;#o;#s;constructor(e,t={}){super(),i.util.markAsUncloneable(this);let n=`EventSource constructor`;i.argumentLengthCheck(arguments,1,n),_||(_=!0,process.emitWarning(`EventSource is experimental, expect them to change at any time.`,{code:`UNDICI-ES`})),e=i.converters.USVString(e),t=i.converters.EventSourceInitDict(t,n,`eventSourceInitDict`),this.#o=t.node.dispatcher||t.dispatcher,this.#s={lastEventId:``,reconnectionTime:t.node.reconnectionTime};let r=d,a;try{a=new URL(e,r.settingsObject.baseUrl),this.#s.origin=a.origin}catch(e){throw new DOMException(e,`SyntaxError`)}this.#t=a.href;let o=`anonymous`;t.withCredentials===!0&&(o=`use-credentials`,this.#n=!0);let s=f(a,``,o);s.client=d.settingsObject,s.headersList.set(`Accept`,`text/event-stream`),s.cache=`no-store`,s.initiator=`other`,this.#i=s,this.#c()}get readyState(){return this.#r}get url(){return this.#t}get withCredentials(){return this.#n}#c(){if(this.#r===2)return;this.#r=0;let e={request:this.#i,dispatcher:this.#o};e.processResponseEndOfBody=e=>{if(!c(e))return this.#l()},e.processResponse=e=>{if(c(e))if(e.aborted){this.close(),this.dispatchEvent(new Event(`error`));return}else{this.#l();return}let t=e.headersList.get(`content-type`,!0),r=t===null?`failure`:o(t),i=r!==`failure`&&r.essence===`text/event-stream`;if(e.status!==200||i===!1){this.close(),this.dispatchEvent(new Event(`error`));return}this.#r=1,this.dispatchEvent(new Event(`open`)),this.#s.origin=e.urlList[e.urlList.length-1].origin;let l=new a({eventSourceSettings:this.#s,maxEventSize:this.#o.eventSourceOptions?.maxEventSize,push:e=>{this.dispatchEvent(s(e.type,e.options))}});n(e.body.stream,l,e=>{e?.aborted===!1&&(this.close(),this.dispatchEvent(new Event(`error`)))})},this.#a=r(e)}#l(){this.#r!==2&&(this.#r=0,this.dispatchEvent(new Event(`error`)),setTimeout(()=>{if(this.#r===0){if(this.#i.headersList.delete(`last-event-id`,!0),this.#s.lastEventId.length){let e=h(g.encode(this.#s.lastEventId));l(e)&&this.#i.headersList.set(`last-event-id`,e,!0)}this.#c()}},this.#s.reconnectionTime)?.unref())}close(){i.brandCheck(this,e),this.#r!==2&&(this.#r=2,this.#a.abort(),this.#i=null)}get onopen(){return this.#e.open}set onopen(e){this.#e.open&&this.removeEventListener(`open`,this.#e.open);let t=i.converters.EventHandlerNonNull(e);t===null?this.#e.open=null:(this.addEventListener(`open`,t),this.#e.open=e)}get onmessage(){return this.#e.message}set onmessage(e){this.#e.message&&this.removeEventListener(`message`,this.#e.message);let t=i.converters.EventHandlerNonNull(e);t===null?this.#e.message=null:(this.addEventListener(`message`,t),this.#e.message=e)}get onerror(){return this.#e.error}set onerror(e){this.#e.error&&this.removeEventListener(`error`,this.#e.error);let t=i.converters.EventHandlerNonNull(e);t===null?this.#e.error=null:(this.addEventListener(`error`,t),this.#e.error=e)}};let b={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:0,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:1,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:2,writable:!1}};Object.defineProperties(y,b),Object.defineProperties(y.prototype,b),Object.defineProperties(y.prototype,{close:u,onerror:u,onmessage:u,onopen:u,readyState:u,url:u,withCredentials:u}),i.converters.EventSourceInitDict=i.dictionaryConverter([{key:`withCredentials`,converter:i.converters.boolean,defaultValue:()=>!1},{key:`dispatcher`,converter:i.converters.any,defaultValue:()=>p()},{key:`node`,converter:i.dictionaryConverter([{key:`reconnectionTime`,converter:i.converters[`unsigned long`],defaultValue:()=>v},{key:`dispatcher`,converter:i.converters.any}]),defaultValue:()=>({})}]),t.exports={EventSource:y,defaultReconnectionTime:v}})),ut=e.c(((e,t)=>{let n=R(),r=v(),i=V(),a=ee(),o=H(),s=U(),c=W(),u=K(),f=ne(),p=re(),h=ie(),g=ae(),_=d(),y=m(),{InvalidArgumentError:x}=_,S=ce(),C=b(),w=pe(),{MockCallHistory:T,MockCallHistoryLog:D}=me(),O=ge(),A=he(),j=ye(),M=le(),P=q(),{getGlobalDispatcher:F,setGlobalDispatcher:I}=be(),L=xe(),z=Se();Object.assign(r.prototype,S),t.exports.Dispatcher=r,t.exports.Client=n,t.exports.Pool=i,t.exports.BalancedPool=a,t.exports.RoundRobinPool=o,t.exports.Agent=s,t.exports.Dispatcher1Wrapper=c,t.exports.ProxyAgent=u,t.exports.Socks5ProxyAgent=f,t.exports.EnvHttpProxyAgent=p,t.exports.RetryAgent=h,t.exports.H2CClient=g,t.exports.RetryHandler=P,t.exports.DecoratorHandler=L,t.exports.RedirectHandler=z,t.exports.interceptors={redirect:Ce(),responseError:we(),retry:Te(),dump:Ee(),dns:De(),cache:Ne(),decompress:Pe(),deduplicate:Ie()},t.exports.cacheStores={MemoryCacheStore:je()};let B=Le();t.exports.cacheStores.SqliteCacheStore=B,t.exports.buildConnector=C,t.exports.errors=_,t.exports.util={parseHeaders:y.parseHeaders,headerNameToString:y.headerNameToString};function te(e){return(t,n,r)=>{if(typeof n==`function`&&(r=n,n=null),!t||typeof t!=`string`&&typeof t!=`object`&&!(t instanceof URL))throw new x(`invalid url`);if(n!=null&&typeof n!=`object`)throw new x(`invalid opts`);if(n&&n.path!=null){if(typeof n.path!=`string`)throw new x(`invalid opts.path`);let e=n.path;n.path.startsWith(`/`)||(e=`/${e}`),t=new URL(y.parseOrigin(t).origin+e)}else n||=typeof t==`object`?t:{},t=y.parseURL(t);let{agent:i,dispatcher:a=F(),...o}=n;if(i)throw new x(`unsupported opts.agent. Did you mean opts.client?`);return e.call(a,{...o,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:n.method||(n.body?`PUT`:`GET`)},r)}}t.exports.setGlobalDispatcher=I,t.exports.getGlobalDispatcher=F;let G=He().fetch,J=typeof __filename<`u`?__filename:void 0;function Y(e,t){if(!e||typeof e!=`object`)return;let n=typeof e.stack==`string`?e.stack:``,r=t.replace(/\\/g,`/`);if(n&&(n.includes(t)||n.includes(r)))return;let i={};if(Error.captureStackTrace(i,Y),!i.stack)return;let a=i.stack.split(`
|
|
94
|
+
`)}close(){this.#n.close()}get(e){r(e);let t=this.#f(e);return t?{body:t.body?Buffer.from(t.body.buffer,t.body.byteOffset,t.body.byteLength):void 0,statusCode:t.statusCode,statusMessage:t.statusMessage,headers:t.headers?JSON.parse(t.headers):void 0,etag:t.etag?t.etag:void 0,vary:t.vary?JSON.parse(t.vary):void 0,cacheControlDirectives:t.cacheControlDirectives?JSON.parse(t.cacheControlDirectives):void 0,cachedAt:t.cachedAt,staleAt:t.staleAt,deleteAt:t.deleteAt}:void 0}set(e,t){r(e);let n=this.#d(e),i=Array.isArray(t.body)?Buffer.concat(t.body):t.body,a=i?.byteLength;if(a&&a>this.#e)return;let o=this.#f(e,!0);o?this.#i.run(i,t.deleteAt,t.statusCode,t.statusMessage,t.headers?JSON.stringify(t.headers):null,t.etag?t.etag:null,t.cacheControlDirectives?JSON.stringify(t.cacheControlDirectives):null,t.vary?JSON.stringify(t.vary):null,t.cachedAt,t.staleAt,o.id):(this.#a.run(n,e.method,i,t.deleteAt,t.statusCode,t.statusMessage,t.headers?JSON.stringify(t.headers):null,t.etag?t.etag:null,t.cacheControlDirectives?JSON.stringify(t.cacheControlDirectives):null,t.vary?JSON.stringify(t.vary):null,t.cachedAt,t.staleAt),this.#u())}createWriteStream(e,t){r(e),i(t);let a=0,o=[],s=this;return new n({decodeStrings:!0,write(e,t,n){a+=e.byteLength,a<=s.#e?o.push(e):this.destroy(),n()},final(n){s.set(e,{...t,body:o}),n()}})}delete(e){if(typeof e!=`object`)throw TypeError(`expected key to be object, got ${typeof e}`);this.#s.run(this.#d(e))}#u(){if(Number.isFinite(this.#t)&&this.size<=this.#t)return 0;{let e=this.#o.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.#c.get();return e}#d(e){return`${e.origin}/${e.path}`}#f(e,t=!1){let n=this.#d(e),{headers:r,method:i}=e,a=this.#r.all(n,i);if(a.length===0)return;let o=Date.now();for(let e of a){if(o>=e.deleteAt&&!t)continue;let n=!0;if(e.vary){let t=JSON.parse(e.vary);for(let e in t)if(!s(r[e],t[e])){n=!1;break}}if(n)return e}}};function s(e,t){if(e==null&&t==null)return!0;if(e==null&&t!=null||e!=null&&t==null)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return e===t}})),Re=e.c(((e,t)=>{let{kConstruct:n}=l(),{kEnumerableProperty:r}=m(),{iteratorMixin:i,isValidHeaderName:a,isValidHeaderValue:o}=j(),{webidl:s}=A(),c=require(`node:assert`),u=require(`node:util`);function d(e){return e===10||e===13||e===9||e===32}function f(e){let t=0,n=e.length;for(;n>t&&d(e.charCodeAt(n-1));)--n;for(;n>t&&d(e.charCodeAt(t));)++t;return t===0&&n===e.length?e:e.substring(t,n)}function p(e,t){if(Array.isArray(t))for(let n=0;n<t.length;++n){let r=t[n];if(r.length!==2)throw s.errors.exception({header:`Headers constructor`,message:`expected name/value pair to be length 2, found ${r.length}.`});h(e,r[0],r[1])}else if(typeof t==`object`&&t){let n=Object.keys(t);for(let r=0;r<n.length;++r)h(e,n[r],t[n[r]])}else throw s.errors.conversionFailed({prefix:`Headers constructor`,argument:`Argument 1`,types:[`sequence<sequence<ByteString>>`,`record<ByteString, ByteString>`]})}function h(e,t,n){if(n=f(n),!a(t))throw s.errors.invalidArgument({prefix:`Headers.append`,value:t,type:`header name`});if(!o(n))throw s.errors.invalidArgument({prefix:`Headers.append`,value:n,type:`header value`});if(b(e)===`immutable`)throw TypeError(`immutable`);return S(e).append(t,n,!1)}function g(e){let t=S(e);if(!t)return[];if(t.sortedMap)return t.sortedMap;let n=[],r=t.toSortedArray(),i=t.cookies;if(i===null||i.length===1)return t.sortedMap=r;for(let e=0;e<r.length;++e){let{0:t,1:a}=r[e];if(t===`set-cookie`)for(let e=0;e<i.length;++e)n.push([t,i[e]]);else n.push([t,a])}return t.sortedMap=n}function _(e,t){return e[0]<t[0]?-1:1}var v=class e{cookies=null;sortedMap;headersMap;constructor(t){t instanceof e?(this.headersMap=new Map(t.headersMap),this.sortedMap=t.sortedMap,this.cookies=t.cookies===null?null:[...t.cookies]):(this.headersMap=new Map(t),this.sortedMap=null)}contains(e,t){return this.headersMap.has(t?e:e.toLowerCase())}clear(){this.headersMap.clear(),this.sortedMap=null,this.cookies=null}append(e,t,n){this.sortedMap=null;let r=n?e:e.toLowerCase(),i=this.headersMap.get(r);if(i){let e=r===`cookie`?`; `:`, `;this.headersMap.set(r,{name:i.name,value:`${i.value}${e}${t}`})}else this.headersMap.set(r,{name:e,value:t});r===`set-cookie`&&(this.cookies??=[]).push(t)}set(e,t,n){this.sortedMap=null;let r=n?e:e.toLowerCase();r===`set-cookie`&&(this.cookies=[t]),this.headersMap.set(r,{name:e,value:t})}delete(e,t){this.sortedMap=null,t||(e=e.toLowerCase()),e===`set-cookie`&&(this.cookies=null),this.headersMap.delete(e)}get(e,t){return this.headersMap.get(t?e:e.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:e,1:{value:t}}of this.headersMap)yield[e,t]}get entries(){let e={};if(this.headersMap.size!==0)for(let{name:t,value:n}of this.headersMap.values())e[t]=n;return e}rawValues(){return this.headersMap.values()}get entriesList(){let e=[];if(this.headersMap.size!==0)for(let{0:t,1:{name:n,value:r}}of this.headersMap)if(t===`set-cookie`)for(let t of this.cookies)e.push([n,t]);else e.push([n,r]);return e}toSortedArray(){let e=this.headersMap.size,t=Array(e);if(e<=32){if(e===0)return t;let n=this.headersMap[Symbol.iterator](),r=n.next().value;t[0]=[r[0],r[1].value],c(r[1].value!==null);for(let r=1,i=0,a=0,o=0,s=0,l,u;r<e;++r){for(u=n.next().value,l=t[r]=[u[0],u[1].value],c(l[1]!==null),o=0,a=r;o<a;)s=o+(a-o>>1),t[s][0]<=l[0]?o=s+1:a=s;if(r!==s){for(i=r;i>o;)t[i]=t[--i];t[o]=l}}if(!n.next().done)throw TypeError(`Unreachable`);return t}else{let e=0;for(let{0:n,1:{value:r}}of this.headersMap)t[e++]=[n,r],c(r!==null);return t.sort(_)}}},y=class e{#e;#t;constructor(e=void 0){s.util.markAsUncloneable(this),e!==n&&(this.#t=new v,this.#e=`none`,e!==void 0&&(e=s.converters.HeadersInit(e,`Headers constructor`,`init`),p(this,e)))}append(t,n){s.brandCheck(this,e),s.argumentLengthCheck(arguments,2,`Headers.append`);let r=`Headers.append`;return t=s.converters.ByteString(t,r,`name`),n=s.converters.ByteString(n,r,`value`),h(this,t,n)}delete(t){if(s.brandCheck(this,e),s.argumentLengthCheck(arguments,1,`Headers.delete`),t=s.converters.ByteString(t,`Headers.delete`,`name`),!a(t))throw s.errors.invalidArgument({prefix:`Headers.delete`,value:t,type:`header name`});if(this.#e===`immutable`)throw TypeError(`immutable`);this.#t.contains(t,!1)&&this.#t.delete(t,!1)}get(t){s.brandCheck(this,e),s.argumentLengthCheck(arguments,1,`Headers.get`);let n=`Headers.get`;if(t=s.converters.ByteString(t,n,`name`),!a(t))throw s.errors.invalidArgument({prefix:n,value:t,type:`header name`});return this.#t.get(t,!1)}has(t){s.brandCheck(this,e),s.argumentLengthCheck(arguments,1,`Headers.has`);let n=`Headers.has`;if(t=s.converters.ByteString(t,n,`name`),!a(t))throw s.errors.invalidArgument({prefix:n,value:t,type:`header name`});return this.#t.contains(t,!1)}set(t,n){s.brandCheck(this,e),s.argumentLengthCheck(arguments,2,`Headers.set`);let r=`Headers.set`;if(t=s.converters.ByteString(t,r,`name`),n=s.converters.ByteString(n,r,`value`),n=f(n),!a(t))throw s.errors.invalidArgument({prefix:r,value:t,type:`header name`});if(!o(n))throw s.errors.invalidArgument({prefix:r,value:n,type:`header value`});if(this.#e===`immutable`)throw TypeError(`immutable`);this.#t.set(t,n,!1)}getSetCookie(){s.brandCheck(this,e);let t=this.#t.cookies;return t?[...t]:[]}[u.inspect.custom](e,t){return t.depth??=e,`Headers ${u.formatWithOptions(t,this.#t.entries)}`}static getHeadersGuard(e){return e.#e}static setHeadersGuard(e,t){e.#e=t}static getHeadersList(e){return e.#t}static setHeadersList(e,t){e.#t=t}};let{getHeadersGuard:b,setHeadersGuard:x,getHeadersList:S,setHeadersList:C}=y;Reflect.deleteProperty(y,`getHeadersGuard`),Reflect.deleteProperty(y,`setHeadersGuard`),Reflect.deleteProperty(y,`getHeadersList`),Reflect.deleteProperty(y,`setHeadersList`),i(`Headers`,y,g,0,1),Object.defineProperties(y.prototype,{append:r,delete:r,get:r,has:r,set:r,getSetCookie:r,[Symbol.toStringTag]:{value:`Headers`,configurable:!0},[u.inspect.custom]:{enumerable:!1}}),s.converters.HeadersInit=function(e,t,n){if(s.util.Type(e)===s.util.Types.OBJECT){let r=Reflect.get(e,Symbol.iterator);if(!u.types.isProxy(e)&&r===y.prototype.entries)try{return S(e).entriesList}catch{}return typeof r==`function`?s.converters[`sequence<sequence<ByteString>>`](e,t,n,r.bind(e)):s.converters[`record<ByteString, ByteString>`](e,t,n)}throw s.errors.conversionFailed({prefix:`Headers constructor`,argument:`Argument 1`,types:[`sequence<sequence<ByteString>>`,`record<ByteString, ByteString>`]})},t.exports={fill:p,compareHeaderName:_,Headers:y,HeadersList:v,getHeadersGuard:b,setHeadersGuard:x,setHeadersList:C,getHeadersList:S}})),ze=e.c(((e,t)=>{let{Headers:n,HeadersList:r,fill:i,getHeadersGuard:a,setHeadersGuard:o,setHeadersList:s}=Re(),{extractBody:c,cloneBody:u,mixinBody:d,streamRegistry:f,bodyUnusable:p}=F(),h=m(),g=require(`node:util`),{kEnumerableProperty:_}=h,{isValidReasonPhrase:v,isCancelled:y,isAborted:b,isErrorLike:x,environmentSettingsObject:S}=j(),{redirectStatusSet:C,nullBodyStatus:w}=T(),{webidl:E}=A(),{URLSerializer:D}=k(),{kConstruct:M}=l(),N=require(`node:assert`),{isomorphicEncode:P,serializeJavascriptValueToJSONString:I}=O(),L=new TextEncoder(`utf-8`);var R=class e{#e;#t;static error(){return K(W(),`immutable`)}static json(e,t=void 0){E.argumentLengthCheck(arguments,1,`Response.json`),t=E.converters.ResponseInit(t);let n=c(L.encode(I(e))),r=K(U({}),`response`);return ie(r,t,{body:n[0],type:`application/json`}),r}static redirect(e,t=302){E.argumentLengthCheck(arguments,1,`Response.redirect`),e=E.converters.USVString(e),t=E.converters[`unsigned short`](t);let n;try{n=new URL(e,S.settingsObject.baseUrl)}catch(t){throw TypeError(`Failed to parse URL from ${e}`,{cause:t})}if(!C.has(t))throw RangeError(`Invalid status code ${t}`);let r=K(U({}),`immutable`);r.#t.status=t;let i=P(D(n));return r.#t.headersList.append(`location`,i,!0),r}constructor(e=null,t=void 0){if(E.util.markAsUncloneable(this),e===M)return;e!==null&&(e=E.converters.BodyInit(e,`Response`,`body`)),t=E.converters.ResponseInit(t),this.#t=U({}),this.#e=new n(M),o(this.#e,`response`),s(this.#e,this.#t.headersList);let r=null;if(e!=null){let[t,n]=c(e);r={body:t,type:n}}ie(this,t,r)}get type(){return E.brandCheck(this,e),this.#t.type}get url(){E.brandCheck(this,e);let t=this.#t.urlList,n=t[t.length-1]??null;return n===null?``:D(n,!0)}get redirected(){return E.brandCheck(this,e),this.#t.urlList.length>1}get status(){return E.brandCheck(this,e),this.#t.status}get ok(){return E.brandCheck(this,e),this.#t.status>=200&&this.#t.status<=299}get statusText(){return E.brandCheck(this,e),this.#t.statusText}get headers(){return E.brandCheck(this,e),this.#e}get body(){return E.brandCheck(this,e),this.#t.body?this.#t.body.stream:null}get bodyUsed(){return E.brandCheck(this,e),!!this.#t.body&&h.isDisturbed(this.#t.body.stream)}clone(){if(E.brandCheck(this,e),p(this.#t))throw E.errors.exception({header:`Response.clone`,message:`Body has already been consumed.`});let t=H(this.#t);return this.#t.urlList.length!==0&&this.#t.body?.stream&&f.register(this,new WeakRef(this.#t.body.stream)),K(t,a(this.#e))}[g.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let n={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 ${g.formatWithOptions(t,n)}`}static getResponseHeaders(e){return e.#e}static setResponseHeaders(e,t){e.#e=t}static getResponseState(e){return e.#t}static setResponseState(e,t){e.#t=t}};let{getResponseHeaders:z,setResponseHeaders:B,getResponseState:V,setResponseState:ee}=R;Reflect.deleteProperty(R,`getResponseHeaders`),Reflect.deleteProperty(R,`setResponseHeaders`),Reflect.deleteProperty(R,`getResponseState`),Reflect.deleteProperty(R,`setResponseState`),d(R,V),Object.defineProperties(R.prototype,{type:_,url:_,status:_,ok:_,redirected:_,statusText:_,headers:_,clone:_,body:_,bodyUsed:_,[Symbol.toStringTag]:{value:`Response`,configurable:!0}}),Object.defineProperties(R,{json:_,redirect:_,error:_});function H(e){if(e.internalResponse)return re(H(e.internalResponse),e.type);let t=U({...e,body:null});return e.body!=null&&(t.body=u(e.body)),t}function U(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:`default`,status:200,timingInfo:null,cacheState:``,statusText:``,...e,headersList:e?.headersList?new r(e?.headersList):new r,urlList:e?.urlList?[...e.urlList]:[]}}function W(e){return U({type:`error`,status:0,error:x(e)?e:Error(e&&String(e)),aborted:e&&e.name===`AbortError`})}function te(e){return e.type===`error`&&e.status===0}function ne(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(e,n){return n in t?t[n]:e[n]},set(e,n,r){return N(!(n in t)),e[n]=r,!0}})}function re(e,t){if(t===`basic`)return ne(e,{type:`basic`,headersList:e.headersList});if(t===`cors`)return ne(e,{type:`cors`,headersList:e.headersList});if(t===`opaque`)return ne(e,{type:`opaque`,urlList:[],status:0,statusText:``,body:null});if(t===`opaqueredirect`)return ne(e,{type:`opaqueredirect`,status:0,statusText:``,headersList:[],body:null});N(!1)}function G(e,t=null){return N(y(e)),b(e)?W(Object.assign(new DOMException(`The operation was aborted.`,`AbortError`),{cause:t})):W(Object.assign(new DOMException(`Request was cancelled.`),{cause:t}))}function ie(e,t,n){if(t.status!==null&&(t.status<200||t.status>599))throw RangeError(`init["status"] must be in the range of 200 to 599, inclusive.`);if(`statusText`in t&&t.statusText!=null&&!v(String(t.statusText)))throw TypeError(`Invalid statusText`);if(`status`in t&&t.status!=null&&(V(e).status=t.status),`statusText`in t&&t.statusText!=null&&(V(e).statusText=t.statusText),`headers`in t&&t.headers!=null&&i(z(e),t.headers),n){if(w.includes(e.status))throw E.errors.exception({header:`Response constructor`,message:`Invalid response status code ${e.status}`});V(e).body=n.body,n.type!=null&&!V(e).headersList.contains(`content-type`,!0)&&V(e).headersList.append(`content-type`,n.type,!0)}}function K(e,t){let r=new R(M);ee(r,e);let i=new n(M);return B(r,i),s(i,e.headersList),o(i,t),e.urlList.length!==0&&e.body?.stream&&f.register(r,new WeakRef(e.body.stream)),r}E.converters.XMLHttpRequestBodyInit=function(e,t,n){return typeof e==`string`?E.converters.USVString(e,t,n):E.is.Blob(e)||E.is.BufferSource(e)||E.is.FormData(e)||E.is.URLSearchParams(e)?e:E.converters.DOMString(e,t,n)},E.converters.BodyInit=function(e,t,n){return E.is.ReadableStream(e)||e?.[Symbol.asyncIterator]?e:E.converters.XMLHttpRequestBodyInit(e,t,n)},E.converters.ResponseInit=E.dictionaryConverter([{key:`status`,converter:E.converters[`unsigned short`],defaultValue:()=>200},{key:`statusText`,converter:E.converters.ByteString,defaultValue:()=>``},{key:`headers`,converter:E.converters.HeadersInit}]),E.is.Response=E.util.MakeTypeAssertion(R),t.exports={isNetworkError:te,makeNetworkError:W,makeResponse:U,makeAppropriateNetworkError:G,filterResponse:re,Response:R,cloneResponse:H,fromInnerResponse:K,getResponseState:V}})),Be=e.c(((e,t)=>{let{extractBody:n,mixinBody:r,cloneBody:i,bodyUnusable:a}=F(),{Headers:o,fill:s,HeadersList:c,setHeadersGuard:u,getHeadersGuard:d,setHeadersList:f,getHeadersList:p}=Re(),h=m(),g=require(`node:util`),{isValidHTTPToken:_,sameOrigin:v,environmentSettingsObject:y}=j(),{forbiddenMethodsSet:b,corsSafeListedMethodsSet:x,referrerPolicy:S,requestRedirect:C,requestMode:w,requestCredentials:E,requestCache:D,requestDuplex:O}=T(),{kEnumerableProperty:M,normalizedMethodRecordsBase:N,normalizedMethodRecords:P}=h,{webidl:I}=A(),{URLSerializer:L}=k(),{kConstruct:R}=l(),z=require(`node:assert`),{getMaxListeners:B,setMaxListeners:V,defaultMaxListeners:ee}=require(`node:events`),H=Symbol(`abortController`),U=new FinalizationRegistry(({signal:e,abort:t})=>{e.removeEventListener(`abort`,t)}),W=new WeakMap,te;try{te=B(new AbortController().signal)>0}catch{te=!1}function ne(e){return t;function t(){let n=e.deref();if(n!==void 0){U.unregister(t),this.removeEventListener(`abort`,t),n.abort(this.reason);let e=W.get(n.signal);if(e!==void 0){if(e.size!==0){for(let t of e){let e=t.deref();e!==void 0&&e.abort(this.reason)}e.clear()}W.delete(n.signal)}}}}let re=!1;var G=class e{#e;#t;#n;#r;#i=null;constructor(e,t=void 0){if(I.util.markAsUncloneable(this),e===R)return;I.argumentLengthCheck(arguments,1,`Request constructor`),e=I.converters.RequestInfo(e),t=I.converters.RequestInit(t);let r=null,i=null,l=y.settingsObject.baseUrl,d=null;if(typeof e==`string`){this.#t=t.dispatcher;let n;try{n=new URL(e,l)}catch(t){throw TypeError(`Failed to parse URL from `+e,{cause:t})}if(n.username||n.password)throw TypeError(`Request cannot be constructed from a URL that includes credentials: `+e);r=se({urlList:[n]}),i=`cors`}else z(I.is.Request(e)),r=e.#r,d=e.#e,this.#t=t.dispatcher||e.#t;let m=y.settingsObject.origin,g=`client`;if(r.window?.constructor?.name===`EnvironmentSettingsObject`&&v(r.window,m)&&(g=r.window),t.window!=null)throw TypeError(`'window' option '${g}' must be null`);`window`in t&&(g=`no-window`),r=se({method:r.method,headersList:r.headersList,unsafeRequest:r.unsafeRequest,client:y.settingsObject,window:g,priority:r.priority,origin:r.origin,referrer:r.referrer,referrerPolicy:r.referrerPolicy,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,integrity:r.integrity,keepalive:r.keepalive,reloadNavigation:r.reloadNavigation,historyNavigation:r.historyNavigation,urlList:[...r.urlList]});let S=Object.keys(t).length!==0;if(S&&(r.mode===`navigate`&&(r.mode=`same-origin`),r.reloadNavigation=!1,r.historyNavigation=!1,r.origin=`client`,r.referrer=`client`,r.referrerPolicy=``,r.url=r.urlList[r.urlList.length-1],r.urlList=[r.url]),t.referrer!==void 0){let e=t.referrer;if(e===``)r.referrer=`no-referrer`;else{let t;try{t=new URL(e,l)}catch(t){throw TypeError(`Referrer "${e}" is not a valid URL.`,{cause:t})}t.protocol===`about:`&&t.hostname===`client`||m&&!v(t,y.settingsObject.baseUrl)?r.referrer=`client`:r.referrer=t}}t.referrerPolicy!==void 0&&(r.referrerPolicy=t.referrerPolicy);let C;if(C=t.mode===void 0?i:t.mode,C===`navigate`)throw I.errors.exception({header:`Request constructor`,message:`invalid request mode navigate.`});if(C!=null&&(r.mode=C),t.credentials!==void 0&&(r.credentials=t.credentials),t.cache!==void 0&&(r.cache=t.cache),r.cache===`only-if-cached`&&r.mode!==`same-origin`)throw TypeError(`'only-if-cached' can be set only with 'same-origin' mode`);if(t.redirect!==void 0&&(r.redirect=t.redirect),t.integrity!=null&&(r.integrity=String(t.integrity)),t.keepalive!==void 0&&(r.keepalive=!!t.keepalive),t.method!==void 0){let e=t.method,n=P[e];if(n!==void 0)r.method=n;else{if(!_(e))throw TypeError(`'${e}' is not a valid HTTP method.`);let t=e.toUpperCase();if(b.has(t))throw TypeError(`'${e}' HTTP method is unsupported.`);e=N[t]??e,r.method=e}!re&&r.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`}),re=!0)}t.signal!==void 0&&(d=t.signal),this.#r=r;let w=new AbortController;if(this.#e=w.signal,d!=null)if(d.aborted)w.abort(d.reason);else{this[H]=w;let e=ne(new WeakRef(w));te&&B(d)===ee&&V(1500,d);let t=h.addAbortListener(d,e);U.register(w,{signal:d,abort:e},e),this.#i=()=>{U.unregister(e),t(),this.#i=null}}if(this.#n=new o(R),f(this.#n,r.headersList),u(this.#n,`request`),C===`no-cors`){if(!x.has(r.method))throw TypeError(`'${r.method} is unsupported in no-cors mode.`);u(this.#n,`request-no-cors`)}if(S){let e=p(this.#n),n=t.headers===void 0?new c(e):t.headers;if(e.clear(),n instanceof c){for(let{name:t,value:r}of n.rawValues())e.append(t,r,!1);e.cookies=n.cookies}else s(this.#n,n)}let T=I.is.Request(e)?e.#r.body:null;if((t.body!=null||T!=null)&&(r.method===`GET`||r.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);let E=null;if(t.body!=null){let[e,i]=n(t.body,r.keepalive);E=e,i&&!p(this.#n).contains(`content-type`,!0)&&this.#n.append(`content-type`,i,!0)}let D=E??T;if(D!=null&&D.source==null){if(E!=null&&t.duplex==null)throw TypeError(`RequestInit: duplex option is required when sending a body.`);if(r.mode!==`same-origin`&&r.mode!==`cors`)throw TypeError(`If request is made from ReadableStream, mode should be "same-origin" or "cors"`);r.useCORSPreflightFlag=!0}let O=D;if(E==null&&T!=null){if(a(e.#r))throw TypeError(`Cannot construct a Request with a Request object that has already been used.`);let t=new TransformStream;T.stream.pipeThrough(t),O={source:T.source,length:T.length,stream:t.readable}}this.#r.body=O}get method(){return I.brandCheck(this,e),this.#r.method}get url(){return I.brandCheck(this,e),L(this.#r.url)}get headers(){return I.brandCheck(this,e),this.#n}get destination(){return I.brandCheck(this,e),this.#r.destination}get referrer(){return I.brandCheck(this,e),this.#r.referrer===`no-referrer`?``:this.#r.referrer===`client`?`about:client`:this.#r.referrer.toString()}get referrerPolicy(){return I.brandCheck(this,e),this.#r.referrerPolicy}get mode(){return I.brandCheck(this,e),this.#r.mode}get credentials(){return I.brandCheck(this,e),this.#r.credentials}get cache(){return I.brandCheck(this,e),this.#r.cache}get redirect(){return I.brandCheck(this,e),this.#r.redirect}get integrity(){return I.brandCheck(this,e),this.#r.integrity}get keepalive(){return I.brandCheck(this,e),this.#r.keepalive}get isReloadNavigation(){return I.brandCheck(this,e),this.#r.reloadNavigation}get isHistoryNavigation(){return I.brandCheck(this,e),this.#r.historyNavigation}get signal(){return I.brandCheck(this,e),this.#e}get body(){return I.brandCheck(this,e),this.#r.body?this.#r.body.stream:null}get bodyUsed(){return I.brandCheck(this,e),!!this.#r.body&&h.isDisturbed(this.#r.body.stream)}get duplex(){return I.brandCheck(this,e),`half`}clone(){if(I.brandCheck(this,e),a(this.#r))throw TypeError(`unusable`);let t=X(this.#r),n=new AbortController;if(this.signal.aborted)n.abort(this.signal.reason);else{let e=W.get(this.signal);e===void 0&&(e=new Set,W.set(this.signal,e));let t=new WeakRef(n);e.add(t),h.addAbortListener(n.signal,ne(t))}return Z(t,this.#t,n.signal,d(this.#n))}[g.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let n={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 ${g.formatWithOptions(t,n)}`}static setRequestSignal(e,t){return e.#e=t,e}static getRequestDispatcher(e){return e.#t}static setRequestDispatcher(e,t){e.#t=t}static setRequestHeaders(e,t){e.#n=t}static getRequestState(e){return e.#r}static setRequestState(e,t){e.#r=t}static removeRequestAbortListener(e){e.#i?.()}};let{setRequestSignal:ie,getRequestDispatcher:K,setRequestDispatcher:ae,setRequestHeaders:oe,getRequestState:q,setRequestState:J,removeRequestAbortListener:Y}=G;Reflect.deleteProperty(G,`setRequestSignal`),Reflect.deleteProperty(G,`getRequestDispatcher`),Reflect.deleteProperty(G,`setRequestDispatcher`),Reflect.deleteProperty(G,`setRequestHeaders`),Reflect.deleteProperty(G,`getRequestState`),Reflect.deleteProperty(G,`setRequestState`),Reflect.deleteProperty(G,`removeRequestAbortListener`),r(G,q);function se(e){return{method:e.method??`GET`,localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??``,window:e.window??`client`,keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??`all`,initiator:e.initiator??``,destination:e.destination??``,priority:e.priority??`auto`,origin:e.origin??`client`,policyContainer:e.policyContainer??`client`,referrer:e.referrer??`client`,referrerPolicy:e.referrerPolicy??``,mode:e.mode??`no-cors`,useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??`same-origin`,useCredentials:e.useCredentials??!1,cache:e.cache??`default`,redirect:e.redirect??`follow`,integrity:e.integrity??``,cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??``,parserMetadata:e.parserMetadata??``,reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??`basic`,preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,useURLCredentials:e.useURLCredentials??void 0,traversableForUserPrompts:e.traversableForUserPrompts??`client`,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new c(e.headersList):new c}}function X(e){let t=se({...e,body:null});return e.body!=null&&(t.body=i(e.body)),t}function Z(e,t,n,r){let i=new G(R);J(i,e),ae(i,t),ie(i,n);let a=new o(R);return oe(i,a),f(a,e.headersList),u(a,r),i}Object.defineProperties(G.prototype,{method:M,url:M,headers:M,redirect:M,clone:M,signal:M,duplex:M,destination:M,body:M,bodyUsed:M,isHistoryNavigation:M,isReloadNavigation:M,keepalive:M,integrity:M,cache:M,credentials:M,attribute:M,referrerPolicy:M,referrer:M,mode:M,[Symbol.toStringTag]:{value:`Request`,configurable:!0}}),I.is.Request=I.util.MakeTypeAssertion(G),I.converters.RequestInfo=function(e){return typeof e==`string`?I.converters.USVString(e):I.is.Request(e)?e:I.converters.USVString(e)},I.converters.RequestInit=I.dictionaryConverter([{key:`method`,converter:I.converters.ByteString},{key:`headers`,converter:I.converters.HeadersInit},{key:`body`,converter:I.nullableConverter(I.converters.BodyInit)},{key:`referrer`,converter:I.converters.USVString},{key:`referrerPolicy`,converter:I.converters.DOMString,allowedValues:S},{key:`mode`,converter:I.converters.DOMString,allowedValues:w},{key:`credentials`,converter:I.converters.DOMString,allowedValues:E},{key:`cache`,converter:I.converters.DOMString,allowedValues:D},{key:`redirect`,converter:I.converters.DOMString,allowedValues:C},{key:`integrity`,converter:I.converters.DOMString},{key:`keepalive`,converter:I.converters.boolean},{key:`signal`,converter:I.nullableConverter(e=>I.converters.AbortSignal(e,`RequestInit`,`signal`))},{key:`window`,converter:I.converters.any},{key:`duplex`,converter:I.converters.DOMString,allowedValues:O},{key:`dispatcher`,converter:I.converters.any},{key:`priority`,converter:I.converters.DOMString,allowedValues:[`high`,`low`,`auto`]}]),t.exports={Request:G,makeRequest:se,fromInnerRequest:Z,cloneRequest:X,getRequestDispatcher:K,getRequestState:q,removeRequestAbortListener:Y}})),Ve=e.c(((e,t)=>{let n=require(`node:assert`),{runtimeFeatures:r}=M(),i=new Map([[`sha256`,0],[`sha384`,1],[`sha512`,2]]),a;if(r.has(`crypto`)){a=require(`node:crypto`);let e=a.getHashes();e.length===0&&i.clear();for(let t of i.keys())e.includes(t)===!1&&i.delete(t)}else i.clear();let o=Map.prototype.get.bind(i),s=Map.prototype.has.bind(i),c=r.has(`crypto`)===!1||i.size===0?()=>!0:(e,t)=>{let n=u(t);if(n.length===0)return!0;let r=l(n);for(let t of r){let n=t.alg,r=t.val;if(f(d(n,e),r))return!0}return!1};function l(e){let t=[],r=null;for(let i of e){if(n(s(i.alg),`Invalid SRI hash algorithm token`),t.length===0){t.push(i),r=i;continue}let e=r.alg,a=o(e),c=i.alg,l=o(c);l<a||(l>a?(r=i,t[0]=i,t.length=1):t.push(i))}return t}function u(e){let t=[];for(let n of e.split(` `)){let e=n.split(`?`,1)[0],r=``,i=[e.slice(0,6),e.slice(7)],a=i[0];if(!s(a))continue;i[1]&&(r=i[1]);let o={alg:a,val:r};t.push(o)}return t}let d=(e,t)=>a.hash(e,t,`base64`);function f(e,t){let n=e.length;n!==0&&e[n-1]===`=`&&--n,n!==0&&e[n-1]===`=`&&--n;let r=t.length;if(r!==0&&t[r-1]===`=`&&--r,r!==0&&t[r-1]===`=`&&--r,n!==r)return!1;for(let r=0;r<n;++r)if(!(e[r]===t[r]||e[r]===`+`&&t[r]===`-`||e[r]===`/`&&t[r]===`_`))return!1;return!0}t.exports={applyAlgorithmToBytes:d,bytesMatch:c,caseSensitiveMatch:f,isValidSRIHashAlgorithm:s,getStrongestMetadata:l,parseMetadata:u}})),He=e.c(((e,t)=>{let{makeNetworkError:n,makeAppropriateNetworkError:r,filterResponse:i,makeResponse:a,fromInnerResponse:o,getResponseState:s}=ze(),{HeadersList:c}=Re(),{Request:l,cloneRequest:u,getRequestDispatcher:f,getRequestState:p,removeRequestAbortListener:h}=Be(),g=require(`node:zlib`),{makePolicyContainer:_,clonePolicyContainer:v,requestBadPort:y,TAOCheck:b,appendRequestOriginHeader:x,responseLocationURL:S,requestCurrentURL:C,setRequestReferrerPolicyOnRedirect:w,tryUpgradeRequestToAPotentiallyTrustworthyURL:E,createOpaqueTimingInfo:D,appendFetchMetadata:M,corsCheck:N,crossOriginResourcePolicyCheck:P,determineRequestsReferrer:I,coarsenedSharedCurrentTime:L,sameOrigin:R,isCancelled:z,isAborted:B,isErrorLike:V,fullyReadBody:ee,readableStreamClose:H,urlIsLocal:U,urlIsHttpHttpsScheme:W,urlHasHttpsScheme:te,clampAndCoarsenConnectionTimingInfo:ne,simpleRangeHeaderValue:re,buildContentRange:G,createInflate:ie,extractMimeType:K,hasAuthenticationEntry:ae,includesCredentials:oe,isTraversableNavigable:q}=j(),J=require(`node:assert`),{safelyExtractBody:Y,extractBody:se}=F(),{redirectStatusSet:X,nullBodyStatus:Z,safeMethodsSet:ce,requestBodyHeader:le,subresourceSet:Q}=T(),ue=require(`node:events`),{Readable:de,pipeline:fe,finished:pe,isErrored:me,isReadable:he}=require(`node:stream`),{addAbortListener:$,bufferToLowerCasedHeaderName:ge}=m(),{SocketError:_e}=d(),{dataURLProcessor:ve,serializeAMimeType:ye,minimizeSupportedMimeType:xe}=k(),{getGlobalDispatcher:Se}=be(),{webidl:Ce}=A(),{STATUS_CODES:we}=require(`node:http`),{bytesMatch:Te}=Ve(),{isomorphicEncode:Ee}=O(),De=[`GET`,`HEAD`],Oe=typeof __UNDICI_IS_NODE__<`u`||typeof esbuildDetection<`u`?`node`:`undici`,ke;function Ae(e,t,n){if(Array.isArray(n)){for(let t=0;t<n.length;t+=2){let r=ge(n[t]),i=n[t+1];if(Array.isArray(i)&&!Buffer.isBuffer(i))for(let t of i)e.append(r,t.toString(`latin1`),!0);else e.append(r,i.toString(`latin1`),!0)}return}for(let[n,r]of Object.entries(t??{}))if(Array.isArray(r))for(let t of r)e.append(n,`${t}`,!0);else e.append(n,`${r}`,!0)}var je=class extends ue{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||=new DOMException(`The operation was aborted.`,`AbortError`),this.serializedAbortReason=e,this.connection?.destroy(e),this.emit(`terminated`,e))}};function Me(e){Pe(e,`fetch`)}function Ne(e,t=void 0){Ce.argumentLengthCheck(arguments,1,`globalThis.fetch`);let n=Promise.withResolvers(),r;try{r=new l(e,t)}catch(e){return n.reject(e),n.promise}let i=p(r);if(r.signal.aborted)return Ie(n,i,null,r.signal.reason,null),n.promise;i.client.globalObject?.constructor?.name===`ServiceWorkerGlobalScope`&&(i.serviceWorkers=`none`);let a=null,s=!1,c=null,u=$(r.signal,()=>{s=!0,J(c!=null),c.abort(r.signal.reason);let e=a?.deref();Ie(n,i,e,r.signal.reason,c.controller)}),d=()=>{u(),h(r)};return c=Le({request:i,processResponseEndOfBody:e=>{Me(e),d()},processResponse:e=>{if(!s){if(e.aborted){Ie(n,i,a,c.serializedAbortReason,c.controller),d();return}if(e.type===`error`){n.reject(TypeError(`fetch failed`,{cause:e.error})),d();return}a=new WeakRef(o(e,`immutable`)),n.resolve(a.deref()),n=null}},dispatcher:f(r),requestObject:r}),n.promise}function Pe(e,t=`other`){if(e.type===`error`&&e.aborted||!e.urlList?.length)return;let n=e.urlList[0],r=e.timingInfo,i=e.cacheState;W(n)&&r!==null&&(e.timingAllowPassed||(r=D({startTime:r.startTime}),i=``),r.endTime=L(),e.timingInfo=r,Fe(r,n.href,t,globalThis,i,``,e.status))}let Fe=performance.markResourceTiming;function Ie(e,t,n,r,i){if(e&&e.reject(r),t.body?.stream!=null&&he(t.body.stream)&&t.body.stream.cancel(r).catch(e=>{if(e.code!==`ERR_INVALID_STATE`)throw e}),n==null)return;let a=s(n);a.body?.stream!=null&&he(a.body.stream)&&i.error(r)}function Le({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:n,processResponse:r,processResponseEndOfBody:i,processResponseConsumeBody:a,useParallelQueue:o=!1,dispatcher:s=Se(),requestObject:c=null}){J(s);let l=null,u=!1;e.client!=null&&(l=e.client.globalObject,u=e.client.crossOriginIsolatedCapability);let d=D({startTime:L(u)}),f={controller:new je(s),request:e,timingInfo:d,processRequestBodyChunkLength:t,processRequestEndOfBody:n,processResponse:r,processResponseConsumeBody:a,processResponseEndOfBody:i,taskDestination:l,crossOriginIsolatedCapability:u,requestObject:c};return J(!e.body||e.body.stream),e.window===`client`&&(e.window=e.client?.globalObject?.constructor?.name===`Window`?e.client:`no-window`),e.origin===`client`&&(e.origin=e.client.origin),e.policyContainer===`client`&&(e.client==null?e.policyContainer=_():e.policyContainer=v(e.client.policyContainer)),e.headersList.contains(`accept`,!0)||e.headersList.append(`accept`,`*/*`,!0),e.headersList.contains(`accept-language`,!0)||e.headersList.append(`accept-language`,`*`,!0),e.priority,Q.has(e.destination),He(f,!1),f.controller}async function He(e,t){try{let r=e.request,a=null;if(r.localURLsOnly&&!U(C(r))&&(a=n(`local URLs only`)),E(r),y(r)===`blocked`&&(a=n(`bad port`)),r.referrerPolicy===``&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!==`no-referrer`&&(r.referrer=I(r)),a===null){let t=C(r);R(t,r.url)&&r.responseTainting===`basic`||t.protocol===`data:`||r.mode===`navigate`||r.mode===`websocket`?(r.responseTainting=`basic`,a=await Ue(e)):r.mode===`same-origin`?a=n(`request mode cannot be "same-origin"`):r.mode===`no-cors`?r.redirect===`follow`?(r.responseTainting=`opaque`,a=await Ue(e)):a=n(`redirect mode cannot be "follow" for "no-cors" request`):W(C(r))?(r.responseTainting=`cors`,a=await Ke(e)):a=n(`URL scheme must be a HTTP(S) scheme`)}if(t)return a;a.status!==0&&!a.internalResponse&&(r.responseTainting,r.responseTainting===`basic`?a=i(a,`basic`):r.responseTainting===`cors`?a=i(a,`cors`):r.responseTainting===`opaque`?a=i(a,`opaque`):J(!1));let o=a.status===0?a:a.internalResponse;if(o.urlList.length===0&&o.urlList.push(...r.urlList),r.timingAllowFailed||(a.timingAllowPassed=!0),a.type===`opaque`&&o.status===206&&o.rangeRequested&&!r.headers.contains(`range`,!0)&&(a=o=n()),a.status!==0&&(r.method===`HEAD`||r.method===`CONNECT`||Z.includes(o.status))&&(o.body=null,e.controller.dump=!0),r.integrity){let t=t=>Ge(e,n(t));if(r.responseTainting===`opaque`||a.body==null){t(a.error);return}ee(a.body,n=>{if(!Te(n,r.integrity)){t(`integrity mismatch`);return}a.body=Y(n)[0],Ge(e,a)},t)}else Ge(e,a)}catch(t){e.controller.terminate(t)}}function Ue(e){if(z(e)&&e.request.redirectCount===0)return Promise.resolve(r(e));let{request:t}=e,{protocol:i}=C(t);switch(i){case`about:`:return Promise.resolve(n(`about scheme is not supported`));case`blob:`:{ke||=require(`node:buffer`).resolveObjectURL;let e=C(t);if(e.search.length!==0)return Promise.resolve(n(`NetworkError when attempting to fetch resource.`));let r=ke(e.toString());if(t.method!==`GET`||!Ce.is.Blob(r))return Promise.resolve(n(`invalid method`));let i=a(),o=r.size,s=Ee(`${o}`),c=r.type;if(t.headersList.contains(`range`,!0)){i.rangeRequested=!0;let e=re(t.headersList.get(`range`,!0),!0);if(e===`failure`)return Promise.resolve(n(`failed to fetch the data URL`));let{rangeStartValue:a,rangeEndValue:s}=e;if(a===null)a=o-s,s=a+s-1;else{if(a>=o)return Promise.resolve(n(`Range start is greater than the blob's size.`));(s===null||s>=o)&&(s=o-1)}let l=r.slice(a,s+1,c);i.body=se(l)[0];let u=Ee(`${l.size}`),d=G(a,s,o);i.status=206,i.statusText=`Partial Content`,i.headersList.set(`content-length`,u,!0),i.headersList.set(`content-type`,c,!0),i.headersList.set(`content-range`,d,!0)}else{let e=se(r);i.statusText=`OK`,i.body=e[0],i.headersList.set(`content-length`,s,!0),i.headersList.set(`content-type`,c,!0)}return Promise.resolve(i)}case`data:`:{let e=ve(C(t));if(e===`failure`)return Promise.resolve(n(`failed to fetch the data URL`));let r=ye(e.mimeType);return Promise.resolve(a({statusText:`OK`,headersList:[[`content-type`,{name:`Content-Type`,value:r}]],body:Y(e.body)[0]}))}case`file:`:return Promise.resolve(n(`not implemented... yet...`));case`http:`:case`https:`:return Ke(e).catch(e=>n(e));default:return Promise.resolve(n(`unknown scheme`))}}function We(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function Ge(e,t){let n=e.timingInfo,r=()=>{let r=Date.now();e.request.destination===`document`&&(e.controller.fullTimingInfo=n),e.controller.reportTimingSteps=()=>{if(!W(e.request.url))return;n.endTime=r;let i=t.cacheState,a=t.bodyInfo;t.timingAllowPassed||(n=D(n),i=``);let o=0;if(e.request.mode!==`navigate`||!t.hasCrossOriginRedirects){o=t.status;let e=K(t.headersList);e!==`failure`&&(a.contentType=xe(e))}e.request.initiatorType!=null&&Fe(n,e.request.url.href,e.request.initiatorType,globalThis,i,a,o)};let i=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>i())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(t),e.processResponse=null});let i=t.type===`error`?t:t.internalResponse??t;i.body==null?r():pe(i.body.stream,()=>{r()})}async function Ke(e){let t=e.request,r=null,i=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect===`follow`&&(t.serviceWorkers=`none`),i=r=await Je(e),t.responseTainting===`cors`&&N(t,r)===`failure`)return n(`cors failure`);b(t,r)===`failure`&&(t.timingAllowFailed=!0)}return(t.responseTainting===`opaque`||r.type===`opaque`)&&P(t.origin,t.client,t.destination,i)===`blocked`?n(`blocked`):(X.has(i.status)&&(t.redirect!==`manual`&&e.controller.connection.destroy(void 0,!1),t.redirect===`error`?r=n(`unexpected redirect`):t.redirect===`manual`?r=i:t.redirect===`follow`?r=await qe(e,r):J(!1)),r.timingInfo=a,r)}function qe(e,t){let r=e.request,i=t.internalResponse?t.internalResponse:t,a;try{if(a=S(i,C(r).hash),a==null)return t}catch(e){return Promise.resolve(n(e))}if(!W(a))return Promise.resolve(n(`URL scheme must be a HTTP(S) scheme`));if(r.redirectCount===20)return Promise.resolve(n(`redirect count exceeded`));if(r.redirectCount+=1,r.mode===`cors`&&(a.username||a.password)&&!R(r,a))return Promise.resolve(n(`cross origin not allowed for request mode "cors"`));if(r.responseTainting===`cors`&&(a.username||a.password))return Promise.resolve(n(`URL cannot contain credentials for request mode "cors"`));if(i.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(n());if([301,302].includes(i.status)&&r.method===`POST`||i.status===303&&!De.includes(r.method)){r.method=`GET`,r.body=null;for(let e of le)r.headersList.delete(e)}R(C(r),a)||(r.headersList.delete(`authorization`,!0),r.headersList.delete(`proxy-authorization`,!0),r.headersList.delete(`cookie`,!0),r.headersList.delete(`host`,!0)),r.body!=null&&(J(r.body.source!=null),r.body=Y(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=L(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),w(r,i),He(e,!0)}async function Je(e,t=!1,i=!1){let a=e.request,o=null,s=null,c=null;a.window===`no-window`&&a.redirect===`error`?(o=e,s=a):(a.body?.source==null?(s=u({...a,body:null}),s.body=a.body):s=u(a),o={...e},o.request=s);let l=a.credentials===`include`||a.credentials===`same-origin`&&a.responseTainting===`basic`,d=s.body?s.body.length:null,f=null;if(s.body==null&&[`POST`,`PUT`].includes(s.method)&&(f=`0`),d!=null&&(f=Ee(`${d}`)),f!=null&&!s.headersList.contains(`content-length`,!0)&&s.headersList.append(`content-length`,f,!0),d!=null&&s.keepalive,Ce.is.URL(s.referrer)&&s.headersList.append(`referer`,Ee(s.referrer.href),!0),x(s),M(s),s.headersList.contains(`user-agent`,!0)||s.headersList.append(`user-agent`,Oe,!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)||(te(C(s))?s.headersList.append(`accept-encoding`,`br, gzip, deflate, zstd`,!0):s.headersList.append(`accept-encoding`,`gzip, deflate`,!0)),s.headersList.delete(`host`,!0),l&&!s.headersList.contains(`authorization`,!0)){let e=null;if(!(ae(s)&&(s.useURLCredentials===void 0||!oe(C(s))))&&oe(C(s))&&t){let{username:t,password:n}=C(s);e=`Basic ${Buffer.from(`${t}:${n}`).toString(`base64`)}`}e!==null&&s.headersList.append(`Authorization`,e,!1)}if(s.cache=`no-store`,s.cache!==`no-store`&&s.cache,c==null){if(s.cache===`only-if-cached`)return n(`only if cached`);let e=await Ye(o,l,i);!ce.has(s.method)&&e.status>=200&&e.status,c??=e}if(c.urlList=[...s.urlList],s.headersList.contains(`range`,!0)&&(c.rangeRequested=!0),c.requestIncludesCredentials=l,c.status===401&&s.responseTainting!==`cors`&&l&&(a.useURLCredentials!==void 0||q(a.traversableForUserPrompts))){if(a.body!=null){if(a.body.source==null)return c;a.body=Y(a.body.source)[0]}if(a.useURLCredentials===void 0||t)return z(e)?r(e):c;e.controller.connection.destroy(),c=await Je(e,!0)}if(c.status===407)return a.window===`no-window`?n():z(e)?r(e):n(`proxy authentication required`);if(c.status===421&&!i&&(a.body==null||a.body.source!=null)){if(z(e))return r(e);e.controller.connection.destroy(),c=await Je(e,t,!0)}return c}async function Ye(e,t=!1,i=!1){J(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(e,t=!0){this.destroyed||(this.destroyed=!0,t&&this.abort?.(e??new DOMException(`The operation was aborted.`,`AbortError`)))}};let o=e.request,s=null,l=e.timingInfo;o.cache=`no-store`,o.mode;let u=null;if(o.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(o.body!=null){let t=async function*(t){z(e)||(yield t,e.processRequestBodyChunkLength?.(t.byteLength))},n=()=>{z(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},r=t=>{z(e)||(t.name===`AbortError`?e.controller.abort():e.controller.terminate(t))};u=(async function*(){try{for await(let e of o.body.stream)yield*t(e);n()}catch(e){r(e)}})()}try{let{body:t,status:n,statusText:r,headersList:i,socket:o}=await p({body:u});if(o)s=a({status:n,statusText:r,headersList:i,socket:o});else{let o=t[Symbol.asyncIterator]();e.controller.next=()=>o.next(),s=a({status:n,statusText:r,headersList:i})}}catch(t){return t.name===`AbortError`?(e.controller.connection.destroy(),r(e,t)):n(t)}let d=new ReadableStream({start(t){e.controller.controller=t},pull:()=>e.controller.resume(),cancel:t=>{z(e)||e.controller.abort(t)},type:`bytes`});s.body={stream:d,source:null,length:null},e.controller.resume||e.controller.on(`terminated`,f),e.controller.resume=async()=>{for(;;){let t,n;try{let{done:n,value:r}=await e.controller.next();if(B(e))break;t=n?void 0:r}catch(r){e.controller.ended&&!l.encodedBodySize?t=void 0:(t=r,n=!0)}if(t===void 0){H(e.controller.controller),We(e,s);return}if(l.decodedBodySize+=t?.byteLength??0,n){e.controller.terminate(t);return}let r=new Uint8Array(t);if(r.byteLength&&e.controller.controller.enqueue(r),me(d)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function f(t){B(e)?(s.aborted=!0,he(d)&&e.controller.controller.error(e.controller.serializedAbortReason)):he(d)&&e.controller.controller.error(TypeError(`terminated`,{cause:V(t)?t:void 0})),e.controller.connection.destroy()}return s;function p({body:t}){let n=C(o),r=e.controller.dispatcher,i=n.pathname+n.search,a=n.search.length===0&&n.href[n.href.length-n.hash.length-1]===`?`;return s(t);function s(t,u){return new Promise((d,f)=>r.dispatch({path:a?`${i}?`:i,origin:n.origin,method:o.method,body:r.isMockActive?o.body&&(o.body.source||o.body.stream):t,__mockAgentBodyForDispatch:t,headers:o.headersList.entries,maxRedirections:0,upgrade:o.mode===`websocket`?`websocket`:void 0,...u===!1?{allowH2:u}:null},{body:null,abort:null,onRequestStart(t){let{connection:n}=e.controller;l.finalConnectionTimingInfo=ne(void 0,l.postRedirectStartTime,e.crossOriginIsolatedCapability);let r=e=>t.abort(e);n.destroyed?r(new DOMException(`The operation was aborted.`,`AbortError`)):(e.controller.on(`terminated`,r),this.abort=n.abort=r),l.finalNetworkRequestStartTime=L(e.crossOriginIsolatedCapability)},onResponseStarted(){l.finalNetworkResponseStartTime=L(e.crossOriginIsolatedCapability)},onResponseStart(e,t,n,r){if(t<200)return;let i=e?.rawHeaders??[],a=new c;Ae(a,n,i);let s=a.get(`location`,!0);this.body=new de({read:()=>e.resume()});let l=s&&o.redirect===`follow`&&X.has(t),u=[];if(o.method!==`HEAD`&&o.method!==`CONNECT`&&!Z.includes(t)&&!l){let e=a.get(`content-encoding`,!0),t=e?e.toLowerCase().split(`,`):[];if(t.length>5){f(Error(`too many content-encodings in response: ${t.length}, maximum allowed is 5`));return}for(let e=t.length-1;e>=0;--e){let n=t[e].trim();if(n===`x-gzip`||n===`gzip`)u.push(g.createGunzip({flush:g.constants.Z_SYNC_FLUSH,finishFlush:g.constants.Z_SYNC_FLUSH}));else if(n===`deflate`)u.push(ie({flush:g.constants.Z_SYNC_FLUSH,finishFlush:g.constants.Z_SYNC_FLUSH}));else if(n===`br`)u.push(g.createBrotliDecompress({flush:g.constants.BROTLI_OPERATION_FLUSH,finishFlush:g.constants.BROTLI_OPERATION_FLUSH}));else if(n===`zstd`)u.push(g.createZstdDecompress({flush:g.constants.ZSTD_e_continue,finishFlush:g.constants.ZSTD_e_end}));else{u.length=0;break}}}let p=t=>this.onResponseError(e,t);d({status:t,statusText:r,headersList:a,body:u.length?fe(this.body,...u,t=>{t&&this.onResponseError(e,t)}).on(`error`,p):this.body.on(`error`,p)})},onResponseData(t,n){if(e.controller.dump)return;let r=n;l.encodedBodySize+=r.byteLength,this.body.push(r)===!1&&t.pause()},onResponseEnd(){this.abort&&e.controller.off(`terminated`,this.abort),e.controller.ended=!0,this.body?.push(null)},onResponseError(n,r){if(this.abort&&e.controller.off(`terminated`,this.abort),o.mode===`websocket`&&u!==!1&&r?.code===`UND_ERR_INFO`&&r?.message===`HTTP/2: Extended CONNECT protocol not supported by server`){d(s(t,!1));return}this.body?.destroy(r),e.controller.terminate(r),f(r)},onRequestUpgrade(e,t,n,r){if(r.session!=null&&t!==200||r.session==null&&t!==101)return r.session!=null&&e.abort(new _e(`bad upgrade`,null)),!1;let i=e?.rawHeaders??[],a=new c;return Ae(a,n,i),d({status:t,statusText:we[t],headersList:a,socket:r}),!0}}))}}}t.exports={fetch:Ne,Fetch:je,fetching:Le,finalizeAndReportTiming:Pe}})),Ue=e.c(((e,t)=>{let n=require(`node:assert`),{URLSerializer:r}=k(),{isValidHeaderName:i}=j();function a(e,t,n=!1){return r(e,n)===r(t,n)}function o(e){n(e!==null);let t=[];for(let n of e.split(`,`))n=n.trim(),i(n)&&t.push(n);return t}t.exports={urlEquals:a,getFieldValues:o}})),We=e.c(((e,t)=>{let n=require(`node:assert`),{kConstruct:r}=l(),{urlEquals:i,getFieldValues:a}=Ue(),{kEnumerableProperty:o,isDisturbed:s}=m(),{webidl:c}=A(),{cloneResponse:u,fromInnerResponse:d,getResponseState:f}=ze(),{Request:p,fromInnerRequest:h,getRequestState:g}=Be(),{fetching:_}=He(),{urlIsHttpHttpsScheme:v,readAllBytes:y}=j();var b=class e{#e;constructor(){arguments[0]!==r&&c.illegalConstructor(),c.util.markAsUncloneable(this),this.#e=arguments[1]}async match(t,n={}){c.brandCheck(this,e);let r=`Cache.match`;c.argumentLengthCheck(arguments,1,r),t=c.converters.RequestInfo(t),n=c.converters.CacheQueryOptions(n,r,`options`);let i=this.#i(t,n,1);if(i.length!==0)return i[0]}async matchAll(t=void 0,n={}){return c.brandCheck(this,e),t!==void 0&&(t=c.converters.RequestInfo(t)),n=c.converters.CacheQueryOptions(n,`Cache.matchAll`,`options`),this.#i(t,n)}async add(t){c.brandCheck(this,e),c.argumentLengthCheck(arguments,1,`Cache.add`),t=c.converters.RequestInfo(t);let n=[t];return await this.addAll(n)}async addAll(t){c.brandCheck(this,e);let n=`Cache.addAll`;c.argumentLengthCheck(arguments,1,n);let r=[],i=[];for(let e of t){if(e===void 0)throw c.errors.conversionFailed({prefix:n,argument:`Argument 1`,types:[`undefined is not allowed`]});if(e=c.converters.RequestInfo(e),typeof e==`string`)continue;let t=g(e);if(!v(t.url)||t.method!==`GET`)throw c.errors.exception({header:n,message:`Expected http/s scheme when method is not GET.`})}let o=[];for(let e of t){let t=g(new p(e));if(!v(t.url))throw c.errors.exception({header:n,message:`Expected http/s scheme.`});t.initiator=`fetch`,t.destination=`subresource`,i.push(t);let s=Promise.withResolvers();o.push(_({request:t,processResponse(e){if(e.type===`error`||e.status===206||e.status<200||e.status>299)s.reject(c.errors.exception({header:`Cache.addAll`,message:`Received an invalid status code or the request failed.`}));else if(e.headersList.contains(`vary`)){let t=a(e.headersList.get(`vary`));for(let e of t)if(e===`*`){s.reject(c.errors.exception({header:`Cache.addAll`,message:`invalid vary field value`}));for(let e of o)e.abort();return}}},processResponseEndOfBody(e){if(e.aborted){s.reject(new DOMException(`aborted`,`AbortError`));return}s.resolve(e)}})),r.push(s.promise)}let s=await Promise.all(r),l=[],u=0;for(let e of s){let t={type:`put`,request:i[u],response:e};l.push(t),u++}let d=Promise.withResolvers(),f=null;try{this.#t(l)}catch(e){f=e}return queueMicrotask(()=>{f===null?d.resolve(void 0):d.reject(f)}),d.promise}async put(t,n){c.brandCheck(this,e);let r=`Cache.put`;c.argumentLengthCheck(arguments,2,r),t=c.converters.RequestInfo(t),n=c.converters.Response(n,r,`response`);let i=null;if(i=c.is.Request(t)?g(t):g(new p(t)),!v(i.url)||i.method!==`GET`)throw c.errors.exception({header:r,message:`Expected an http/s scheme when method is not GET`});let o=f(n);if(o.status===206)throw c.errors.exception({header:r,message:`Got 206 status`});if(o.headersList.contains(`vary`)){let e=a(o.headersList.get(`vary`));for(let t of e)if(t===`*`)throw c.errors.exception({header:r,message:`Got * vary field value`})}if(o.body&&(s(o.body.stream)||o.body.stream.locked))throw c.errors.exception({header:r,message:`Response body is locked or disturbed`});let l=u(o),d=Promise.withResolvers();o.body==null?d.resolve(void 0):y(o.body.stream.getReader(),d.resolve,d.reject);let m=[],h={type:`put`,request:i,response:l};m.push(h);let _=await d.promise;l.body!=null&&(l.body.source=_);let b=Promise.withResolvers(),x=null;try{this.#t(m)}catch(e){x=e}return queueMicrotask(()=>{x===null?b.resolve():b.reject(x)}),b.promise}async delete(t,r={}){c.brandCheck(this,e);let i=`Cache.delete`;c.argumentLengthCheck(arguments,1,i),t=c.converters.RequestInfo(t),r=c.converters.CacheQueryOptions(r,i,`options`);let a=null;if(c.is.Request(t)){if(a=g(t),a.method!==`GET`&&!r.ignoreMethod)return!1}else n(typeof t==`string`),a=g(new p(t));let o=[],s={type:`delete`,request:a,options:r};o.push(s);let l=Promise.withResolvers(),u=null,d;try{d=this.#t(o)}catch(e){u=e}return queueMicrotask(()=>{u===null?l.resolve(!!d?.length):l.reject(u)}),l.promise}async keys(t=void 0,n={}){c.brandCheck(this,e),t!==void 0&&(t=c.converters.RequestInfo(t)),n=c.converters.CacheQueryOptions(n,`Cache.keys`,`options`);let r=null;if(t!==void 0)if(c.is.Request(t)){if(r=g(t),r.method!==`GET`&&!n.ignoreMethod)return[]}else typeof t==`string`&&(r=g(new p(t)));let i=Promise.withResolvers(),a=[];if(t===void 0)for(let e of this.#e)a.push(e[0]);else{let e=this.#n(r,n);for(let t of e)a.push(t[0])}return queueMicrotask(()=>{let e=[];for(let t of a){let n=h(t,void 0,new AbortController().signal,`immutable`);e.push(n)}i.resolve(Object.freeze(e))}),i.promise}#t(e){let t=this.#e,r=[...t],i=[],a=[];try{for(let r of e){if(r.type!==`delete`&&r.type!==`put`)throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`operation type does not match "delete" or "put"`});if(r.type===`delete`&&r.response!=null)throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`delete operation should not have an associated response`});if(this.#n(r.request,r.options,i).length)throw new DOMException(`???`,`InvalidStateError`);let e;if(r.type===`delete`){if(e=this.#n(r.request,r.options),e.length===0)return[];for(let r of e){let e=t.indexOf(r);n(e!==-1),t.splice(e,1)}}else if(r.type===`put`){if(r.response==null)throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`put operation should have an associated response`});let a=r.request;if(!v(a.url))throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`expected http or https scheme`});if(a.method!==`GET`)throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`not get method`});if(r.options!=null)throw c.errors.exception({header:`Cache.#batchCacheOperations`,message:`options must not be defined`});e=this.#n(r.request);for(let r of e){let e=t.indexOf(r);n(e!==-1),t.splice(e,1)}t.push([r.request,r.response]),i.push([r.request,r.response])}a.push([r.request,r.response])}return a}catch(e){throw this.#e.length=0,this.#e=r,e}}#n(e,t,n){let r=[],i=n??this.#e;for(let n of i){let[i,a]=n;this.#r(e,i,a,t)&&r.push(n)}return r}#r(e,t,n=null,r){let o=new URL(e.url),s=new URL(t.url);if(r?.ignoreSearch&&(s.search=``,o.search=``),!i(o,s,!0))return!1;if(n==null||r?.ignoreVary||!n.headersList.contains(`vary`))return!0;let c=a(n.headersList.get(`vary`));for(let n of c)if(n===`*`||t.headersList.get(n)!==e.headersList.get(n))return!1;return!0}#i(e,t,n=1/0){let r=null;if(e!==void 0)if(c.is.Request(e)){if(r=g(e),r.method!==`GET`&&!t.ignoreMethod)return[]}else typeof e==`string`&&(r=g(new p(e)));let i=[];if(e===void 0)for(let e of this.#e)i.push(e[1]);else{let e=this.#n(r,t);for(let t of e)i.push(t[1])}let a=[];for(let e of i){let t=d(u(e),`immutable`);if(a.push(t),a.length>=n)break}return Object.freeze(a)}};Object.defineProperties(b.prototype,{[Symbol.toStringTag]:{value:`Cache`,configurable:!0},match:o,matchAll:o,add:o,addAll:o,put:o,delete:o,keys:o});let x=[{key:`ignoreSearch`,converter:c.converters.boolean,defaultValue:()=>!1},{key:`ignoreMethod`,converter:c.converters.boolean,defaultValue:()=>!1},{key:`ignoreVary`,converter:c.converters.boolean,defaultValue:()=>!1}];c.converters.CacheQueryOptions=c.dictionaryConverter(x),c.converters.MultiCacheQueryOptions=c.dictionaryConverter([...x,{key:`cacheName`,converter:c.converters.DOMString}]),c.converters.Response=c.interfaceConverter(c.is.Response,`Response`),c.converters[`sequence<RequestInfo>`]=c.sequenceConverter(c.converters.RequestInfo),t.exports={Cache:b}})),Ge=e.c(((e,t)=>{let{Cache:n}=We(),{webidl:r}=A(),{kEnumerableProperty:i}=m(),{kConstruct:a}=l();var o=class e{#e=new Map;constructor(){arguments[0]!==a&&r.illegalConstructor(),r.util.markAsUncloneable(this)}async match(t,i={}){if(r.brandCheck(this,e),r.argumentLengthCheck(arguments,1,`CacheStorage.match`),t=r.converters.RequestInfo(t),i=r.converters.MultiCacheQueryOptions(i),i.cacheName!=null){if(this.#e.has(i.cacheName))return await new n(a,this.#e.get(i.cacheName)).match(t,i)}else for(let e of this.#e.values()){let r=await new n(a,e).match(t,i);if(r!==void 0)return r}}async has(t){r.brandCheck(this,e);let n=`CacheStorage.has`;return r.argumentLengthCheck(arguments,1,n),t=r.converters.DOMString(t,n,`cacheName`),this.#e.has(t)}async open(t){r.brandCheck(this,e);let i=`CacheStorage.open`;if(r.argumentLengthCheck(arguments,1,i),t=r.converters.DOMString(t,i,`cacheName`),this.#e.has(t))return new n(a,this.#e.get(t));let o=[];return this.#e.set(t,o),new n(a,o)}async delete(t){r.brandCheck(this,e);let n=`CacheStorage.delete`;return r.argumentLengthCheck(arguments,1,n),t=r.converters.DOMString(t,n,`cacheName`),this.#e.delete(t)}async keys(){return r.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(o.prototype,{[Symbol.toStringTag]:{value:`CacheStorage`,configurable:!0},match:i,has:i,open:i,delete:i,keys:i}),t.exports={CacheStorage:o}})),Ke=e.c(((e,t)=>{t.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}})),qe=e.c(((e,t)=>{function n(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n>=0&&n<=8||n>=10&&n<=31||n===127)return!0}return!1}function r(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n<33||n>126||n===34||n===40||n===41||n===60||n===62||n===64||n===44||n===59||n===58||n===92||n===47||n===91||n===93||n===63||n===61||n===123||n===125)throw Error(`Invalid cookie name`)}}function i(e){let t=e.length,n=0;if(e[0]===`"`){if(t===1||e[t-1]!==`"`)throw Error(`Invalid cookie value`);--t,++n}for(;n<t;){let t=e.charCodeAt(n++);if(t<33||t>126||t===34||t===44||t===59||t===92)throw Error(`Invalid cookie value`)}}function a(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n<32||n>126||n===59)throw Error(`Invalid cookie path`)}}function o(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function s(e){if(e===` `)return;if(e.length>255)throw Error(`Invalid cookie domain`);let t=0;for(let n=0;n<e.length;++n){let r=e.charCodeAt(n);if(r===46){if(t===0||e.charCodeAt(n-1)===45)throw Error(`Invalid cookie domain`);t=0;continue}if(t===0&&!o(r)||!o(r)&&r!==45||++t>63)throw Error(`Invalid cookie domain`)}if(t===0||e.charCodeAt(e.length-1)===45)throw Error(`Invalid cookie domain`)}let c=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],l=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],u=Array(61).fill(0).map((e,t)=>t.toString().padStart(2,`0`));function d(e){return typeof e==`number`&&(e=new Date(e)),`${c[e.getUTCDay()]}, ${u[e.getUTCDate()]} ${l[e.getUTCMonth()]} ${e.getUTCFullYear()} ${u[e.getUTCHours()]}:${u[e.getUTCMinutes()]}:${u[e.getUTCSeconds()]} GMT`}function f(e){if(e<0)throw Error(`Invalid cookie max-age`)}function p(e){if(e.name.length===0)return null;r(e.name),i(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith(`__Secure-`)&&(e.secure=!0),e.name.startsWith(`__Host-`)&&(e.secure=!0,e.domain=null,e.path=`/`),e.secure&&t.push(`Secure`),e.httpOnly&&t.push(`HttpOnly`),typeof e.maxAge==`number`&&(f(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(s(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(a(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!==`Invalid Date`&&t.push(`Expires=${d(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let n of e.unparsed){if(!n.includes(`=`))throw Error(`Invalid unparsed`);let[e,...a]=n.split(`=`),o=e.trim(),s=a.join(`=`);r(o),i(s),t.push(`${o}=${s}`)}return t.join(`; `)}t.exports={isCTLExcludingHtab:n,validateCookieName:r,validateCookiePath:a,validateCookieValue:i,toIMFDate:d,stringify:p}})),Je=e.c(((e,t)=>{let{collectASequenceOfCodePointsFast:n}=O(),{maxNameValuePairSize:r,maxAttributeValueSize:i}=Ke(),{isCTLExcludingHtab:a}=qe(),o=require(`node:assert`);function s(e){if(a(e))return null;let t=``,i=``,o=``,s=``;if(e.includes(`;`)){let r={position:0};t=n(`;`,e,r),i=e.slice(r.position)}else t=e;if(!t.includes(`=`))s=t;else{let e={position:0};o=n(`=`,t,e),s=t.slice(e.position+1)}return o=o.trim(),s=s.trim(),o.length+s.length>r?null:{name:o,value:s,...c(i)}}function c(e,t={}){for(;;){if(e.length===0)return t;o(e[0]===`;`),e=e.slice(1);let r=``;e.includes(`;`)?(r=n(`;`,e,{position:0}),e=e.slice(r.length)):(r=e,e=``);let a=``,s=``;if(r.includes(`=`)){let e={position:0};a=n(`=`,r,e),s=r.slice(e.position+1)}else a=r;if(a=a.trim(),s=s.trim(),s.length>i)continue;let c=a.toLowerCase();if(c===`expires`){let e=new Date(s);Number.isNaN(e.getTime())||(t.expires=e)}else if(c===`max-age`){let e=s.charCodeAt(0),n=e>=48&&e<=57,r=s[0]===`-`&&s.length>1;if(!n&&!r||/[^\d]/.test(s.slice(1)))continue;t.maxAge=Number(s)}else if(c===`domain`){let e=s;e[0]===`.`&&(e=e.slice(1)),e=e.toLowerCase(),t.domain=e}else if(c===`path`){let e=``;e=s.length===0||s[0]!==`/`?`/`:s,t.path=e}else if(c===`secure`)t.secure=!0;else if(c===`httponly`)t.httpOnly=!0;else if(c===`samesite`){let e=s.toLowerCase();e===`none`?t.sameSite=`None`:e===`strict`?t.sameSite=`Strict`:e===`lax`&&(t.sameSite=`Lax`)}else t.unparsed??=[],t.unparsed.push(`${a}=${s}`)}}t.exports={parseSetCookie:s,parseUnparsedAttributes:c}})),Ye=e.c(((e,t)=>{let{parseSetCookie:n}=Je(),{stringify:r}=qe(),{webidl:i}=A(),{Headers:a}=Re(),o=i.brandCheckMultiple([a,globalThis.Headers].filter(Boolean));function s(e){i.argumentLengthCheck(arguments,1,`getCookies`),o(e);let t=e.get(`cookie`),n={};if(!t)return n;for(let e of t.split(`;`)){let[t,...r]=e.split(`=`);n[t.trim()]=r.join(`=`)}return n}function c(e,t,n){o(e);let r=`deleteCookie`;i.argumentLengthCheck(arguments,2,r),t=i.converters.DOMString(t,r,`name`),n=i.converters.DeleteCookieAttributes(n),d(e,{name:t,value:``,expires:new Date(0),...n})}function l(e){i.argumentLengthCheck(arguments,1,`getSetCookies`),o(e);let t=e.getSetCookie();return t?t.map(e=>n(e)):[]}function u(e){return e=i.converters.DOMString(e),n(e)}function d(e,t){i.argumentLengthCheck(arguments,2,`setCookie`),o(e),t=i.converters.Cookie(t);let n=r(t);n&&e.append(`set-cookie`,n,!0)}i.converters.DeleteCookieAttributes=i.dictionaryConverter([{converter:i.nullableConverter(i.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`domain`,defaultValue:()=>null}]),i.converters.Cookie=i.dictionaryConverter([{converter:i.converters.DOMString,key:`name`},{converter:i.converters.DOMString,key:`value`},{converter:i.nullableConverter(e=>typeof e==`number`?i.converters[`unsigned long long`](e):new Date(e)),key:`expires`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters[`long long`]),key:`maxAge`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`domain`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.boolean),key:`secure`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.boolean),key:`httpOnly`,defaultValue:()=>null},{converter:i.converters.USVString,key:`sameSite`,allowedValues:[`Strict`,`Lax`,`None`]},{converter:i.sequenceConverter(i.converters.DOMString),key:`unparsed`,defaultValue:()=>[]}]),t.exports={getCookies:s,deleteCookie:c,getSetCookies:l,setCookie:d,parseCookie:u}})),Xe=e.c(((e,t)=>{let{webidl:n}=A(),{kEnumerableProperty:r}=m(),{kConstruct:i}=l();var a=class e extends Event{#e;constructor(e,t={}){if(e===i){super(arguments[1],arguments[2]),n.util.markAsUncloneable(this);return}let r=`MessageEvent constructor`;n.argumentLengthCheck(arguments,1,r),e=n.converters.DOMString(e,r,`type`),t=n.converters.MessageEventInit(t,r,`eventInitDict`),super(e,t),this.#e=t,n.util.markAsUncloneable(this)}get data(){return n.brandCheck(this,e),this.#e.data}get origin(){return n.brandCheck(this,e),this.#e.origin}get lastEventId(){return n.brandCheck(this,e),this.#e.lastEventId}get source(){return n.brandCheck(this,e),this.#e.source}get ports(){return n.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,i=!1,a=null,o=``,s=``,c=null,l=[]){return n.brandCheck(this,e),n.argumentLengthCheck(arguments,1,`MessageEvent.initMessageEvent`),new e(t,{bubbles:r,cancelable:i,data:a,origin:o,lastEventId:s,source:c,ports:l})}static createFastMessageEvent(t,n){let r=new e(i,t,n);return r.#e=n,r.#e.data??=null,r.#e.origin??=``,r.#e.lastEventId??=``,r.#e.source??=null,r.#e.ports??=[],r}};let{createFastMessageEvent:o}=a;delete a.createFastMessageEvent;var s=class e extends Event{#e;constructor(e,t={}){let r=`CloseEvent constructor`;n.argumentLengthCheck(arguments,1,r),e=n.converters.DOMString(e,r,`type`),t=n.converters.CloseEventInit(t),super(e,t),this.#e=t,n.util.markAsUncloneable(this)}get wasClean(){return n.brandCheck(this,e),this.#e.wasClean}get code(){return n.brandCheck(this,e),this.#e.code}get reason(){return n.brandCheck(this,e),this.#e.reason}},c=class e extends Event{#e;constructor(e,t){let r=`ErrorEvent constructor`;n.argumentLengthCheck(arguments,1,r),super(e,t),n.util.markAsUncloneable(this),e=n.converters.DOMString(e,r,`type`),t=n.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return n.brandCheck(this,e),this.#e.message}get filename(){return n.brandCheck(this,e),this.#e.filename}get lineno(){return n.brandCheck(this,e),this.#e.lineno}get colno(){return n.brandCheck(this,e),this.#e.colno}get error(){return n.brandCheck(this,e),this.#e.error}};Object.defineProperties(a.prototype,{[Symbol.toStringTag]:{value:`MessageEvent`,configurable:!0},data:r,origin:r,lastEventId:r,source:r,ports:r,initMessageEvent:r}),Object.defineProperties(s.prototype,{[Symbol.toStringTag]:{value:`CloseEvent`,configurable:!0},reason:r,code:r,wasClean:r}),Object.defineProperties(c.prototype,{[Symbol.toStringTag]:{value:`ErrorEvent`,configurable:!0},message:r,filename:r,lineno:r,colno:r,error:r}),n.converters.MessagePort=n.interfaceConverter(n.is.MessagePort,`MessagePort`),n.converters[`sequence<MessagePort>`]=n.sequenceConverter(n.converters.MessagePort);let u=[{key:`bubbles`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`cancelable`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`composed`,converter:n.converters.boolean,defaultValue:()=>!1}];n.converters.MessageEventInit=n.dictionaryConverter([...u,{key:`data`,converter:n.converters.any,defaultValue:()=>null},{key:`origin`,converter:n.converters.USVString,defaultValue:()=>``},{key:`lastEventId`,converter:n.converters.DOMString,defaultValue:()=>``},{key:`source`,converter:n.nullableConverter(n.converters.MessagePort),defaultValue:()=>null},{key:`ports`,converter:n.converters[`sequence<MessagePort>`],defaultValue:()=>[]}]),n.converters.CloseEventInit=n.dictionaryConverter([...u,{key:`wasClean`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`code`,converter:n.converters[`unsigned short`],defaultValue:()=>0},{key:`reason`,converter:n.converters.USVString,defaultValue:()=>``}]),n.converters.ErrorEventInit=n.dictionaryConverter([...u,{key:`message`,converter:n.converters.DOMString,defaultValue:()=>``},{key:`filename`,converter:n.converters.USVString,defaultValue:()=>``},{key:`lineno`,converter:n.converters[`unsigned long`],defaultValue:()=>0},{key:`colno`,converter:n.converters[`unsigned long`],defaultValue:()=>0},{key:`error`,converter:n.converters.any}]),t.exports={MessageEvent:a,CloseEvent:s,ErrorEvent:c,createFastMessageEvent:o}})),Ze=e.c(((e,t)=>{t.exports={uid:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,sentCloseFrameState:{SENT:1,RECEIVED:2},staticPropertyDescriptors:{enumerable:!0,writable:!1,configurable:!1},states:{CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},opcodes:{CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},maxUnsigned16Bit:65535,parserStates:{INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},emptyBuffer:Buffer.allocUnsafe(0),sendHints:{text:1,typedArray:2,arrayBuffer:3,blob:4}}})),Qe=e.c(((e,t)=>{let{states:n,opcodes:r}=Ze(),{isUtf8:i}=require(`node:buffer`),{removeHTTPWhitespace:a}=k(),{collectASequenceOfCodePointsFast:o}=O();function s(e){return e===n.CONNECTING}function c(e){return e===n.OPEN}function l(e){return e===n.CLOSING}function u(e){return e===n.CLOSED}function d(e,t,n=(e,t)=>new Event(e,t),r={}){let i=n(e,r);t.dispatchEvent(i)}function f(e,t,n){e.onMessage(t,n)}function p(e){return e.byteLength===e.buffer.byteLength?e.buffer:new Uint8Array(e).buffer}function m(e){if(e.length===0)return!1;for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n<33||n>126||n===34||n===40||n===41||n===44||n===47||n===58||n===59||n===60||n===61||n===62||n===63||n===64||n===91||n===92||n===93||n===123||n===125)return!1}return!0}function h(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function g(e){return e===r.CLOSE||e===r.PING||e===r.PONG}function _(e){return e===r.CONTINUATION}function v(e){return e===r.TEXT||e===r.BINARY}function y(e){return v(e)||_(e)||g(e)}function b(e){let t={position:0},n=new Map;for(;t.position<e.length;){let[r,i=``]=o(`;`,e,t).split(`=`,2);n.set(a(r,!0,!1),a(i,!1,!0)),t.position++}return n}function x(e){if(e.length===0)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}let t=Number.parseInt(e,10);return t>=8&&t<=15}function S(e,t){let n;try{n=new URL(e,t)}catch(e){throw new DOMException(e,`SyntaxError`)}if(n.protocol===`http:`?n.protocol=`ws:`:n.protocol===`https:`&&(n.protocol=`wss:`),n.protocol!==`ws:`&&n.protocol!==`wss:`)throw new DOMException(`expected a ws: or wss: url`,`SyntaxError`);if(n.hash.length||n.href.endsWith(`#`))throw new DOMException(`hash`,`SyntaxError`);return n}function C(e,t){if(e!==null&&e!==1e3&&(e<3e3||e>4999))throw new DOMException(`invalid code`,`InvalidAccessError`);if(t!==null){let e=Buffer.byteLength(t);if(e>123)throw new DOMException(`Reason must be less than 123 bytes; received ${e}`,`SyntaxError`)}}t.exports={isConnecting:s,isEstablished:c,isClosing:l,isClosed:u,fireEvent:d,isValidSubprotocol:m,isValidStatusCode:h,websocketMessageReceived:f,utf8Decode:(()=>{if(typeof process.versions.icu==`string`){let e=new TextDecoder(`utf-8`,{fatal:!0});return e.decode.bind(e)}return function(e){if(i(e))return e.toString(`utf-8`);throw TypeError(`Invalid utf-8 received.`)}})(),isControlFrame:g,isContinuationFrame:_,isTextBinaryFrame:v,isValidOpcode:y,parseExtensions:b,isValidClientWindowBits:x,toArrayBuffer:p,getURLRecord:S,validateCloseCodeAndReason:C}})),$e=e.c(((e,t)=>{let{runtimeFeatures:n}=M(),{maxUnsigned16Bit:r,opcodes:i}=Ze(),a=8*1024,o=null,s=a,c=n.has(`crypto`)?require(`node:crypto`).randomFillSync:null;function l(){return s===a&&(s=0,c(o??=Buffer.allocUnsafeSlow(a),0,a)),[o[s++],o[s++],o[s++],o[s++]]}t.exports={WebsocketFrameSend:class{constructor(e){this.frameData=e}createFrame(e){let t=this.frameData,n=l(),i=t?.byteLength??0,a=i,o=6;i>r?(o+=8,a=127):i>125&&(o+=2,a=126);let s=Buffer.allocUnsafe(i+o);s[0]=s[1]=0,s[0]|=128,s[0]=(s[0]&240)+e,s[o-4]=n[0],s[o-3]=n[1],s[o-2]=n[2],s[o-1]=n[3],s[1]=a,a===126?s.writeUInt16BE(i,2):a===127&&(s[2]=s[3]=0,s.writeUIntBE(i,4,6)),s[1]|=128;for(let e=0;e<i;++e)s[o+e]=t[e]^n[e&3];return s}static createFastTextFrame(e){let t=l(),n=e.length;for(let r=0;r<n;++r)e[r]^=t[r&3];let a=n,o=6;n>r?(o+=8,a=127):n>125&&(o+=2,a=126);let s=Buffer.allocUnsafeSlow(o);return s[0]=128|i.TEXT,s[1]=a|128,s[o-4]=t[0],s[o-3]=t[1],s[o-2]=t[2],s[o-1]=t[3],a===126?s.writeUInt16BE(n,2):a===127&&(s[2]=s[3]=0,s.writeUIntBE(n,4,6)),[s,e]}},generateMask:l}})),et=e.c(((e,t)=>{let{uid:n,states:r,sentCloseFrameState:i,emptyBuffer:a,opcodes:o}=Ze(),{parseExtensions:s,isClosed:c,isClosing:l,isEstablished:u,isConnecting:d,validateCloseCodeAndReason:f}=Qe(),{makeRequest:p}=Be(),{fetching:m}=He(),{Headers:h,getHeadersList:g}=Re(),{getDecodeSplit:_}=j(),{WebsocketFrameSend:v}=$e(),y=require(`node:assert`),{runtimeFeatures:b}=M(),x=b.has(`crypto`)?require(`node:crypto`):null,S=!1;function C(e,t,r,i,a){let o=e;o.protocol=e.protocol===`ws:`?`http:`:`https:`;let c=p({urlList:[o],client:r,serviceWorkers:`none`,referrer:`no-referrer`,mode:`websocket`,credentials:`include`,cache:`no-store`,redirect:`error`,useURLCredentials:!0});a.headers&&(c.headersList=g(new h(a.headers)));let l=x.randomBytes(16).toString(`base64`);c.headersList.append(`sec-websocket-key`,l,!0),c.headersList.append(`sec-websocket-version`,`13`,!0);for(let e of t)c.headersList.append(`sec-websocket-protocol`,e,!0);return c.headersList.append(`sec-websocket-extensions`,`permessage-deflate; client_max_window_bits`,!0),m({request:c,useParallelQueue:!0,dispatcher:a.dispatcher,processResponse(e){if(e.type===`error`||e.status!==101){if(e.socket?.session==null){T(i,1002,`Received network error or non-101 status code.`,e.error);return}if(e.status!==200){T(i,1002,`Received network error or non-200 status code.`,e.error);return}}if(S===!1&&e.socket?.session!=null&&(process.emitWarning(`WebSocket over HTTP2 is experimental, and subject to change.`,`ExperimentalWarning`),S=!0),t.length!==0&&!e.headersList.get(`Sec-WebSocket-Protocol`)){T(i,1002,`Server did not respond with sent protocols.`);return}if(e.socket.session==null&&e.headersList.get(`Upgrade`)?.toLowerCase()!==`websocket`){T(i,1002,`Server did not set Upgrade header to "websocket".`);return}if(e.socket.session==null&&e.headersList.get(`Connection`)?.toLowerCase()!==`upgrade`){T(i,1002,`Server did not set Connection header to "upgrade".`);return}if(e.headersList.get(`Sec-WebSocket-Accept`)!==x.hash(`sha1`,l+n,`base64`)){T(i,1002,`Incorrect hash received in Sec-WebSocket-Accept header.`);return}let r=e.headersList.get(`Sec-WebSocket-Extensions`),a;if(r!==null&&(a=s(r),!a.has(`permessage-deflate`))){T(i,1002,`Sec-WebSocket-Extensions header does not match.`);return}let o=e.headersList.get(`Sec-WebSocket-Protocol`);if(o!==null){let e=_(`sec-websocket-protocol`,c.headersList);if(e===null||!e.includes(o)){T(i,1002,`Protocol was not set in the opening handshake.`);return}}e.socket.on(`data`,i.onSocketData),e.socket.on(`close`,i.onSocketClose),e.socket.on(`error`,i.onSocketError),i.wasEverConnected=!0,i.onConnectionEstablished(e,a)}})}function w(e,t,n,s=!1){if(t??=null,n??=``,s&&f(t,n),!(c(e.readyState)||l(e.readyState)))if(!u(e.readyState))T(e),e.readyState=r.CLOSING;else if(!e.closeState.has(i.SENT)&&!e.closeState.has(i.RECEIVED)){let s=new v;n.length!==0&&t===null&&(t=1e3),y(t===null||Number.isInteger(t)),t===null&&n.length===0?s.frameData=a:t!==null&&n===null?(s.frameData=Buffer.allocUnsafe(2),s.frameData.writeUInt16BE(t,0)):t!==null&&n!==null?(s.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(n)),s.frameData.writeUInt16BE(t,0),s.frameData.write(n,2,`utf-8`)):s.frameData=a,e.socket.write(s.createFrame(o.CLOSE)),e.closeState.add(i.SENT),e.readyState=r.CLOSING}else e.readyState=r.CLOSING}function T(e,t,n,r){u(e.readyState)&&w(e,t,n,!1),e.controller.abort(),d(e.readyState)?e.onSocketClose():e.socket?.destroyed===!1&&e.socket.destroy()}t.exports={establishWebSocketConnection:C,failWebsocketConnection:T,closeWebSocketConnection:w}})),tt=e.c(((e,t)=>{let{createInflateRaw:n,Z_DEFAULT_WINDOWBITS:r}=require(`node:zlib`),{isValidClientWindowBits:i}=Qe(),{MessageSizeExceededError:a}=d(),o=Buffer.from([0,0,255,255]),s=Symbol(`kBuffer`),c=Symbol(`kLength`);t.exports={PerMessageDeflate:class{#e;#t={};#n=0;constructor(e,t){this.#t.serverNoContextTakeover=e.has(`server_no_context_takeover`),this.#t.serverMaxWindowBits=e.get(`server_max_window_bits`),this.#n=t.maxPayloadSize}decompress(e,t,l){if(!this.#e){let e=r;if(this.#t.serverMaxWindowBits){if(!i(this.#t.serverMaxWindowBits)){l(Error(`Invalid server_max_window_bits`));return}e=Number.parseInt(this.#t.serverMaxWindowBits)}try{this.#e=n({windowBits:e})}catch(e){l(e);return}this.#e[s]=[],this.#e[c]=0,this.#e.on(`data`,e=>{if(this.#e[c]+=e.length,this.#n>0&&this.#e[c]>this.#n){l(new a),this.#e.removeAllListeners(),this.#e.destroy(),this.#e=null;return}this.#e[s].push(e)}),this.#e.on(`error`,e=>{this.#e=null,l(e)})}this.#e.write(e),t&&this.#e.write(o),this.#e.flush(()=>{if(!this.#e)return;let e=Buffer.concat(this.#e[s],this.#e[c]);this.#e[s].length=0,this.#e[c]=0,l(null,e)})}}}})),nt=e.c(((e,t)=>{let{Writable:n}=require(`node:stream`),r=require(`node:assert`),{parserStates:i,opcodes:a,states:o,emptyBuffer:s,sentCloseFrameState:c}=Ze(),{isValidStatusCode:l,isValidOpcode:u,websocketMessageReceived:f,utf8Decode:p,isControlFrame:m,isTextBinaryFrame:h,isContinuationFrame:g}=Qe(),{failWebsocketConnection:_}=et(),{WebsocketFrameSend:v}=$e(),{PerMessageDeflate:y}=tt(),{MessageSizeExceededError:b}=d();t.exports={ByteParser:class extends n{#e=[];#t=0;#n=0;#r=!1;#i=i.INFO;#a={};#o=[];#s;#c;#l;#u;constructor(e,t,n={}){super(),this.#c=e,this.#s=t??new Map,this.#l=n.maxFragments??0,this.#u=n.maxPayloadSize??0,this.#s.has(`permessage-deflate`)&&this.#s.set(`permessage-deflate`,new y(t,n))}_write(e,t,n){this.#e.push(e),this.#n+=e.length,this.#r=!0,this.run(n)}#d(){return this.#u>0&&!m(this.#a.opcode)&&this.#a.payloadLength+this.#t>this.#u?(_(this.#c,1009,`Payload size exceeds maximum allowed size`),!1):!0}run(e){for(;this.#r;)if(this.#i===i.INFO){if(this.#n<2)return e();let t=this.consume(2),n=(t[0]&128)!=0,r=t[0]&15,o=(t[1]&128)==128,s=!n&&r!==a.CONTINUATION,c=t[1]&127,l=t[0]&64,d=t[0]&32,f=t[0]&16;if(!u(r))return _(this.#c,1002,`Invalid opcode received`),e();if(o)return _(this.#c,1002,`Frame cannot be masked`),e();if(l!==0&&!this.#s.has(`permessage-deflate`)){_(this.#c,1002,`Expected RSV1 to be clear.`);return}if(d!==0||f!==0){_(this.#c,1002,`RSV1, RSV2, RSV3 must be clear`);return}if(s&&!h(r)){_(this.#c,1002,`Invalid frame type was fragmented.`);return}if(h(r)&&this.#o.length>0){_(this.#c,1002,`Expected continuation frame`);return}if(this.#a.fragmented&&s){_(this.#c,1002,`Fragmented frame exceeded 125 bytes.`);return}if((c>125||s)&&m(r)){_(this.#c,1002,`Control frame either too large or fragmented`);return}if(g(r)&&this.#o.length===0&&!this.#a.compressed){_(this.#c,1002,`Unexpected continuation frame`);return}if(c<=125){if(this.#a.payloadLength=c,this.#i=i.READ_DATA,!this.#d())return}else c===126?this.#i=i.PAYLOADLENGTH_16:c===127&&(this.#i=i.PAYLOADLENGTH_64);h(r)&&(this.#a.binaryType=r,this.#a.compressed=l!==0),this.#a.opcode=r,this.#a.masked=o,this.#a.fin=n,this.#a.fragmented=s}else if(this.#i===i.PAYLOADLENGTH_16){if(this.#n<2)return e();let t=this.consume(2);if(this.#a.payloadLength=t.readUInt16BE(0),this.#i=i.READ_DATA,!this.#d())return}else if(this.#i===i.PAYLOADLENGTH_64){if(this.#n<8)return e();let t=this.consume(8),n=t.readUInt32BE(0),r=t.readUInt32BE(4);if(n!==0||r>2**31-1){_(this.#c,1009,`Received payload length > 2^31 bytes.`);return}if(this.#a.payloadLength=r,this.#i=i.READ_DATA,!this.#d())return}else if(this.#i===i.READ_DATA){if(this.#n<this.#a.payloadLength)return e();let t=this.consume(this.#a.payloadLength);if(m(this.#a.opcode))this.#r=this.parseControlFrame(t),this.#i=i.INFO;else if(this.#a.compressed){this.#s.get(`permessage-deflate`).decompress(t,this.#a.fin,(t,n)=>{if(t){let e=t instanceof b?1009:1007;_(this.#c,e,t.message);return}if(this.writeFragments(n)){if(this.#u>0&&this.#t>this.#u){_(this.#c,1009,new b().message);return}if(!this.#a.fin){this.#i=i.INFO,this.#r=!0,this.run(e);return}f(this.#c,this.#a.binaryType,this.consumeFragments()),this.#r=!0,this.#i=i.INFO,this.run(e)}},this.#t),this.#r=!1;break}else{if(!this.writeFragments(t))return;!this.#a.fragmented&&this.#a.fin&&f(this.#c,this.#a.binaryType,this.consumeFragments()),this.#i=i.INFO}}}consume(e){if(e>this.#n)throw Error(`Called consume() before buffers satiated.`);if(e===0)return s;this.#n-=e;let t=this.#e[0];if(t.length>e)return this.#e[0]=t.subarray(e,t.length),t.subarray(0,e);if(t.length===e)return this.#e.shift();{let t=0,n=Buffer.allocUnsafeSlow(e);for(;t!==e;){let r=this.#e[0],i=r.length;if(i+t===e){n.set(this.#e.shift(),t);break}else if(i+t>e){n.set(r.subarray(0,e-t),t),this.#e[0]=r.subarray(e-t);break}else n.set(this.#e.shift(),t),t+=i}return n}}writeFragments(e){return this.#l>0&&this.#o.length===this.#l?(_(this.#c,1008,`Too many message fragments`),!1):(this.#t+=e.length,this.#o.push(e),!0)}consumeFragments(){let e=this.#o;if(e.length===1)return this.#t=0,e.shift();let t=0,n=Buffer.allocUnsafeSlow(this.#t);for(let r=0;r<e.length;++r){let i=e[r];n.set(i,t),t+=i.length}return this.#o=[],this.#t=0,n}parseCloseBody(e){r(e.length!==1);let t;if(e.length>=2&&(t=e.readUInt16BE(0)),t!==void 0&&!l(t))return{code:1002,reason:`Invalid status code`,error:!0};let n=e.subarray(2);n[0]===239&&n[1]===187&&n[2]===191&&(n=n.subarray(3));try{n=p(n)}catch{return{code:1007,reason:`Invalid UTF-8`,error:!0}}return{code:t,reason:n,error:!1}}parseControlFrame(e){let{opcode:t,payloadLength:n}=this.#a;if(t===a.CLOSE){if(n===1)return _(this.#c,1002,`Received close frame with a 1-byte body.`),!1;if(this.#a.closeInfo=this.parseCloseBody(e),this.#a.closeInfo.error){let{code:e,reason:t}=this.#a.closeInfo;return _(this.#c,e,t),!1}if(!this.#c.closeState.has(c.SENT)&&!this.#c.closeState.has(c.RECEIVED)){let e=s;this.#a.closeInfo.code&&(e=Buffer.allocUnsafe(2),e.writeUInt16BE(this.#a.closeInfo.code,0));let t=new v(e);this.#c.socket.write(t.createFrame(a.CLOSE)),this.#c.closeState.add(c.SENT)}return this.#c.readyState=o.CLOSING,this.#c.closeState.add(c.RECEIVED),!1}else if(t===a.PING){if(!this.#c.closeState.has(c.RECEIVED)){let t=new v(e);this.#c.socket.write(t.createFrame(a.PONG)),this.#c.onPing(e)}}else t===a.PONG&&this.#c.onPong(e);return!0}get closingInfo(){return this.#a.closeInfo}}}})),rt=e.c(((e,t)=>{let{WebsocketFrameSend:n}=$e(),{opcodes:r,sendHints:i}=Ze(),a=z();var o=class{#e=new a;#t=!1;#n;constructor(e){this.#n=e}add(e,t,r){if(r!==i.blob){if(this.#t){let n={promise:null,callback:t,frame:s(e,r)};this.#e.push(n)}else if(r===i.text){let{0:r,1:i}=n.createFastTextFrame(e);this.#n.cork(),this.#n.write(r),this.#n.write(i,t),this.#n.uncork()}else this.#n.write(s(e,r),t);return}let a={promise:e.arrayBuffer().then(e=>{a.promise=null,a.frame=s(e,r)}),callback:t,frame:null};this.#e.push(a),this.#t||this.#r()}async#r(){this.#t=!0;let e=this.#e;for(;!e.isEmpty();){let t=e.shift();t.promise!==null&&await t.promise,this.#n.write(t.frame,t.callback),t.callback=t.frame=null}this.#t=!1}};function s(e,t){return new n(c(e,t)).createFrame(t===i.text?r.TEXT:r.BINARY)}function c(e,t){switch(t){case i.text:case i.typedArray:return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);case i.arrayBuffer:case i.blob:return new Uint8Array(e)}}t.exports={SendQueue:o}})),it=e.c(((e,t)=>{let{isArrayBuffer:n}=require(`node:util/types`),{webidl:r}=A(),{URLSerializer:i}=k(),{environmentSettingsObject:a}=j(),{staticPropertyDescriptors:o,states:s,sentCloseFrameState:c,sendHints:l,opcodes:u}=Ze(),{isConnecting:d,isEstablished:f,isClosing:p,isClosed:h,isValidSubprotocol:_,fireEvent:v,utf8Decode:y,toArrayBuffer:b,getURLRecord:x}=Qe(),{establishWebSocketConnection:S,closeWebSocketConnection:C,failWebsocketConnection:w}=et(),{ByteParser:T}=nt(),{kEnumerableProperty:E}=m(),{getGlobalDispatcher:D}=be(),{ErrorEvent:O,CloseEvent:M,createFastMessageEvent:N}=Xe(),{SendQueue:P}=rt(),{WebsocketFrameSend:F}=$e(),{channels:I}=g(),L=Symbol.for(`nodejs.ref`),R=Symbol.for(`nodejs.unref`);function z(e){return typeof e?.address==`function`?e.address():typeof e?.session?.socket?.address==`function`?e.session.socket.address():null}var B=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n=``;#r=``;#i=!0;#a;#o={onConnectionEstablished:(e,t)=>this.#u(e,t),onMessage:(e,t)=>this.#d(e,t),onParserError:e=>w(this.#o,null,e.message),onParserDrain:()=>this.#f(),onSocketData:e=>{this.#l.write(e)||this.#o.socket.pause()},onSocketError:e=>{this.#o.readyState=s.CLOSING,I.socketError.hasSubscribers&&I.socketError.publish(e),this.#o.socket.destroy()},onSocketClose:()=>this.#p(),onPing:e=>{I.ping.hasSubscribers&&I.ping.publish({payload:e,websocket:this})},onPong:e=>{I.pong.hasSubscribers&&I.pong.publish({payload:e,websocket:this})},readyState:s.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#s;#c;#l;constructor(t,n=[]){super(),r.util.markAsUncloneable(this);let i=`WebSocket constructor`;r.argumentLengthCheck(arguments,1,i);let o=r.converters[`DOMString or sequence<DOMString> or WebSocketInit`](n,i,`options`);t=r.converters.USVString(t),n=o.protocols;let s=a.settingsObject.baseUrl,c=x(t,s);if(typeof n==`string`&&(n=[n]),n.length!==new Set(n.map(e=>e.toLowerCase())).size||n.length>0&&!n.every(e=>_(e)))throw new DOMException(`Invalid Sec-WebSocket-Protocol value`,`SyntaxError`);this.#s=new URL(c.href);let l=a.settingsObject;this.#o.controller=S(c,n,l,this.#o,o),this.#o.readyState=e.CONNECTING,this.#c=`blob`}[L](){r.brandCheck(this,e),this.#i=!0,this.#o.socket?.ref?.()}[R](){r.brandCheck(this,e),this.#i=!1,this.#o.socket?.unref?.()}close(t=void 0,n=void 0){r.brandCheck(this,e),t!==void 0&&(t=r.converters[`unsigned short`](t,`WebSocket.close`,`code`,r.attributes.Clamp)),n!==void 0&&(n=r.converters.USVString(n)),t??=null,n??=``,C(this.#o,t,n,!0)}send(t){r.brandCheck(this,e);let i=`WebSocket.send`;if(r.argumentLengthCheck(arguments,1,i),t=r.converters.WebSocketSendData(t,i,`data`),d(this.#o.readyState))throw new DOMException(`Sent before connected.`,`InvalidStateError`);if(!(!f(this.#o.readyState)||p(this.#o.readyState)))if(typeof t==`string`){let e=Buffer.from(t);this.#t+=e.byteLength,this.#a.add(e,()=>{this.#t-=e.byteLength},l.text)}else n(t)?(this.#t+=t.byteLength,this.#a.add(t,()=>{this.#t-=t.byteLength},l.arrayBuffer)):ArrayBuffer.isView(t)?(this.#t+=t.byteLength,this.#a.add(t,()=>{this.#t-=t.byteLength},l.typedArray)):r.is.Blob(t)&&(this.#t+=t.size,this.#a.add(t,()=>{this.#t-=t.size},l.blob))}get readyState(){return r.brandCheck(this,e),this.#o.readyState}get bufferedAmount(){return r.brandCheck(this,e),this.#t}get url(){return r.brandCheck(this,e),i(this.#s)}get extensions(){return r.brandCheck(this,e),this.#r}get protocol(){return r.brandCheck(this,e),this.#n}get onopen(){return r.brandCheck(this,e),this.#e.open}set onopen(t){r.brandCheck(this,e),this.#e.open&&this.removeEventListener(`open`,this.#e.open);let n=r.converters.EventHandlerNonNull(t);n===null?this.#e.open=null:(this.addEventListener(`open`,n),this.#e.open=t)}get onerror(){return r.brandCheck(this,e),this.#e.error}set onerror(t){r.brandCheck(this,e),this.#e.error&&this.removeEventListener(`error`,this.#e.error);let n=r.converters.EventHandlerNonNull(t);n===null?this.#e.error=null:(this.addEventListener(`error`,n),this.#e.error=t)}get onclose(){return r.brandCheck(this,e),this.#e.close}set onclose(t){r.brandCheck(this,e),this.#e.close&&this.removeEventListener(`close`,this.#e.close);let n=r.converters.EventHandlerNonNull(t);n===null?this.#e.close=null:(this.addEventListener(`close`,n),this.#e.close=t)}get onmessage(){return r.brandCheck(this,e),this.#e.message}set onmessage(t){r.brandCheck(this,e),this.#e.message&&this.removeEventListener(`message`,this.#e.message);let n=r.converters.EventHandlerNonNull(t);n===null?this.#e.message=null:(this.addEventListener(`message`,n),this.#e.message=t)}get binaryType(){return r.brandCheck(this,e),this.#c}set binaryType(t){r.brandCheck(this,e),t!==`blob`&&t!==`arraybuffer`?this.#c=`blob`:this.#c=t}#u(e,t){this.#o.socket=e.socket,this.#i||this.#o.socket.unref?.();let n=this.#o.controller.dispatcher?.webSocketOptions?.maxFragments,r=this.#o.controller.dispatcher?.webSocketOptions?.maxPayloadSize,i=new T(this.#o,t,{maxFragments:n,maxPayloadSize:r});i.on(`drain`,()=>this.#o.onParserDrain()),i.on(`error`,e=>this.#o.onParserError(e)),this.#l=i,this.#a=new P(e.socket),this.#o.readyState=s.OPEN;let a=e.headersList.get(`sec-websocket-extensions`);a!==null&&(this.#r=a);let o=e.headersList.get(`sec-websocket-protocol`);if(o!==null&&(this.#n=o),v(`open`,this),I.open.hasSubscribers){let t=e.headersList.entries;I.open.publish({address:z(e.socket),protocol:this.#n,extensions:this.#r,websocket:this,handshakeResponse:{status:e.status,statusText:e.statusText,headers:t}})}}#d(e,t){if(this.#o.readyState!==s.OPEN)return;let n;if(e===u.TEXT)try{n=y(t)}catch{w(this.#o,1007,`Received invalid UTF-8 in text frame.`);return}else e===u.BINARY&&(n=this.#c===`blob`?new Blob([t]):b(t));v(`message`,this,N,{origin:this.#s.origin,data:n})}#f(){this.#o.socket.resume()}#p(){let e=this.#o.closeState.has(c.SENT)&&this.#o.closeState.has(c.RECEIVED),t=1005,n=``,r=this.#l?.closingInfo;r&&!r.error&&(t=r.code??1005,n=r.reason),this.#o.readyState=s.CLOSED,this.#o.closeState.has(c.RECEIVED)||(t=1006,v(`error`,this,(e,t)=>new O(e,t),{error:TypeError(n)})),v(`close`,this,(e,t)=>new M(e,t),{wasClean:e,code:t,reason:n}),I.close.hasSubscribers&&I.close.publish({websocket:this,code:t,reason:n})}static ping(e,t){if(Buffer.isBuffer(t)){if(t.length>125)throw TypeError(`A PING frame cannot have a body larger than 125 bytes.`)}else if(t!==void 0)throw TypeError(`Expected buffer payload`);let n=e.#o.readyState;if(f(n)&&!p(n)&&!h(n)){let n=new F(t);e.#o.socket.write(n.createFrame(u.PING))}}};let{ping:V}=B;Reflect.deleteProperty(B,`ping`),B.CONNECTING=B.prototype.CONNECTING=s.CONNECTING,B.OPEN=B.prototype.OPEN=s.OPEN,B.CLOSING=B.prototype.CLOSING=s.CLOSING,B.CLOSED=B.prototype.CLOSED=s.CLOSED,Object.defineProperties(B.prototype,{CONNECTING:o,OPEN:o,CLOSING:o,CLOSED:o,url:E,readyState:E,bufferedAmount:E,onopen:E,onerror:E,onclose:E,close:E,onmessage:E,binaryType:E,send:E,extensions:E,protocol:E,[Symbol.toStringTag]:{value:`WebSocket`,writable:!1,enumerable:!1,configurable:!0}}),Object.defineProperties(B,{CONNECTING:o,OPEN:o,CLOSING:o,CLOSED:o}),r.converters[`sequence<DOMString>`]=r.sequenceConverter(r.converters.DOMString),r.converters[`DOMString or sequence<DOMString>`]=function(e,t,n){return r.util.Type(e)===r.util.Types.OBJECT&&Symbol.iterator in e?r.converters[`sequence<DOMString>`](e):r.converters.DOMString(e,t,n)},r.converters.WebSocketInit=r.dictionaryConverter([{key:`protocols`,converter:r.converters[`DOMString or sequence<DOMString>`],defaultValue:()=>[]},{key:`dispatcher`,converter:r.converters.any,defaultValue:()=>D()},{key:`headers`,converter:r.nullableConverter(r.converters.HeadersInit)}]),r.converters[`DOMString or sequence<DOMString> or WebSocketInit`]=function(e){return r.util.Type(e)===r.util.Types.OBJECT&&!(Symbol.iterator in e)?r.converters.WebSocketInit(e):{protocols:r.converters[`DOMString or sequence<DOMString>`](e)}},r.converters.WebSocketSendData=function(e){return r.util.Type(e)===r.util.Types.OBJECT&&(r.is.Blob(e)||r.is.BufferSource(e))?e:r.converters.USVString(e)},t.exports={WebSocket:B,ping:V}})),at=e.c(((e,t)=>{let{webidl:n}=A(),{validateCloseCodeAndReason:r}=Qe(),{kConstruct:i}=l(),{kEnumerableProperty:a}=m();function o(){class e extends DOMException{get reason(){return``}}return new e().reason===void 0?new Proxy(DOMException,{construct(e,t,n){let r=Reflect.construct(e,t,e);return Object.setPrototypeOf(r,n.prototype),r}}):DOMException}var s=class e extends o(){#e;#t;constructor(e=``,t=void 0){if(e=n.converters.DOMString(e,`WebSocketError`,`message`),super(e,`WebSocketError`),t===i)return;t!==null&&(t=n.converters.WebSocketCloseInfo(t));let a=t.closeCode??null,o=t.reason??``;r(a,o),o.length!==0&&a===null&&(a=1e3),this.#e=a,this.#t=o}get closeCode(){return this.#e}get reason(){return this.#t}static createUnvalidatedWebSocketError(t,n,r){let a=new e(t,i);return a.#e=n,a.#t=r,a}};let{createUnvalidatedWebSocketError:c}=s;delete s.createUnvalidatedWebSocketError,Object.defineProperties(s.prototype,{closeCode:a,reason:a,[Symbol.toStringTag]:{value:`WebSocketError`,writable:!1,enumerable:!1,configurable:!0}}),n.is.WebSocketError=n.util.MakeTypeAssertion(s),t.exports={WebSocketError:s,createUnvalidatedWebSocketError:c}})),ot=e.c(((e,t)=>{let{addAbortListener:n}=require(`node:events`),{environmentSettingsObject:r,readableStreamClose:i}=j(),{states:a,opcodes:o,sentCloseFrameState:s}=Ze(),{webidl:c}=A(),{getURLRecord:l,isValidSubprotocol:u,isEstablished:d,utf8Decode:f}=Qe(),{establishWebSocketConnection:p,failWebsocketConnection:h,closeWebSocketConnection:_}=et(),{channels:v}=g(),{WebsocketFrameSend:y}=$e(),{ByteParser:b}=nt(),{WebSocketError:x,createUnvalidatedWebSocketError:S}=at(),{kEnumerableProperty:C}=m(),{utf8DecodeBytes:w}=D(),T=!1;var E=class{#e;#t;#n;#r;#i;#a;#o=!1;#s={onConnectionEstablished:(e,t)=>this.#u(e,t),onMessage:(e,t)=>this.#d(e,t),onParserError:e=>h(this.#s,null,e.message),onParserDrain:()=>this.#s.socket.resume(),onSocketData:e=>{this.#c.write(e)||this.#s.socket.pause()},onSocketError:e=>{this.#s.readyState=a.CLOSING,v.socketError.hasSubscribers&&v.socketError.publish(e),this.#s.socket.destroy()},onSocketClose:()=>this.#f(),onPing:()=>{},onPong:()=>{},readyState:a.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#c;constructor(e,t=void 0){T||=(process.emitWarning(`WebSocketStream is experimental! Expect it to change at any time.`,{code:`UNDICI-WSS`}),!0),c.argumentLengthCheck(arguments,1,`WebSocket`),e=c.converters.USVString(e),t!==null&&(t=c.converters.WebSocketStreamOptions(t));let i=r.settingsObject.baseUrl,o=l(e,i),s=t.protocols;if(s.length!==new Set(s.map(e=>e.toLowerCase())).size||s.length>0&&!s.every(e=>u(e)))throw new DOMException(`Invalid Sec-WebSocket-Protocol value`,`SyntaxError`);if(this.#e=o.toString(),this.#t=Promise.withResolvers(),this.#n=Promise.withResolvers(),t.signal!=null){let e=t.signal;if(e.aborted){this.#t.reject(e.reason),this.#n.reject(e.reason);return}n(e,()=>{d(this.#s.readyState)||(h(this.#s),this.#s.readyState=a.CLOSING,this.#t.reject(e.reason),this.#n.reject(e.reason),this.#o=!0)})}let f=r.settingsObject;this.#s.controller=p(o,s,f,this.#s,t)}get url(){return this.#e.toString()}get opened(){return this.#t.promise}get closed(){return this.#n.promise}close(e=void 0){e!==null&&(e=c.converters.WebSocketCloseInfo(e));let t=e.closeCode??null,n=e.reason;_(this.#s,t,n,!0)}#l(e){e=c.converters.WebSocketStreamWrite(e);let t=Promise.withResolvers(),n=null,r=null;if(c.is.BufferSource(e))n=new Uint8Array(ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e.slice()),r=o.BINARY;else{let i;try{i=c.converters.DOMString(e)}catch(e){return t.reject(e),t.promise}n=new TextEncoder().encode(i),r=o.TEXT}if(!this.#s.closeState.has(s.SENT)&&!this.#s.closeState.has(s.RECEIVED)){let e=new y(n);this.#s.socket.write(e.createFrame(r),()=>{t.resolve(void 0)})}return t.promise}#u(e,t){this.#s.socket=e.socket;let n=this.#s.controller.dispatcher?.webSocketOptions?.maxFragments,r=this.#s.controller.dispatcher?.webSocketOptions?.maxPayloadSize,i=new b(this.#s,t,{maxFragments:n,maxPayloadSize:r});i.on(`drain`,()=>this.#s.onParserDrain()),i.on(`error`,e=>this.#s.onParserError(e)),this.#c=i,this.#s.readyState=a.OPEN;let o=t??``,s=e.headersList.get(`sec-websocket-protocol`)??``,c=new ReadableStream({start:e=>{this.#i=e},cancel:e=>this.#m(e)}),l=new WritableStream({start:e=>{this.#a=e},write:e=>this.#l(e),close:()=>_(this.#s,null,null),abort:e=>this.#p(e)});this.#r=c,this.#t.resolve({extensions:o,protocol:s,readable:c,writable:l})}#d(e,t){if(this.#s.readyState!==a.OPEN)return;let n;if(e===o.TEXT)try{n=f(t)}catch{h(this.#s,1007,`Received invalid UTF-8 in text frame.`);return}else e===o.BINARY&&(n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength));this.#i.enqueue(n)}#f(){let e=this.#s.closeState.has(s.SENT)&&this.#s.closeState.has(s.RECEIVED);if(this.#s.readyState=a.CLOSED,this.#o)return;this.#s.wasEverConnected||this.#t.reject(new x(`Socket never opened`));let t=this.#c?.closingInfo,n=t?.code??1005;!this.#s.closeState.has(s.SENT)&&!this.#s.closeState.has(s.RECEIVED)&&(n=1006);let r=t?.reason==null?``:w(Buffer.from(t.reason));if(e)i(this.#i),this.#a.error(new DOMException(`A closed WebSocketStream cannot be written to`,`InvalidStateError`)),this.#n.resolve({closeCode:n,reason:r});else{let e=S(`unclean close`,n,r);this.#i?.error(e),this.#a?.error(e),this.#n.reject(e)}}#p(e){let t=null,n=``;c.is.WebSocketError(e)&&(t=e.closeCode,n=e.reason),_(this.#s,t,n)}#m(e){this.#p(e)}};Object.defineProperties(E.prototype,{url:C,opened:C,closed:C,close:C,[Symbol.toStringTag]:{value:`WebSocketStream`,writable:!1,enumerable:!1,configurable:!0}}),c.converters.WebSocketStreamOptions=c.dictionaryConverter([{key:`protocols`,converter:c.sequenceConverter(c.converters.USVString),defaultValue:()=>[]},{key:`signal`,converter:c.nullableConverter(c.converters.AbortSignal),defaultValue:()=>null}]),c.converters.WebSocketCloseInfo=c.dictionaryConverter([{key:`closeCode`,converter:e=>c.converters[`unsigned short`](e,c.attributes.EnforceRange)},{key:`reason`,converter:c.converters.USVString,defaultValue:()=>``}]),c.converters.WebSocketStreamWrite=function(e){return typeof e==`string`?c.converters.USVString(e):c.converters.BufferSource(e)},t.exports={WebSocketStream:E}})),st=e.c(((e,t)=>{let{makeRequest:n}=Be();function r(e){return e.indexOf(`\0`)===-1}function i(e){if(e.length===0)return!1;for(let t=0;t<e.length;t++)if(e.charCodeAt(t)<48||e.charCodeAt(t)>57)return!1;return!0}function a(e,t,r,i){let a=r===`no cors`?`no-cors`:`cors`;i&&a===`no-cors`&&(a=`same-origin`);let o=`include`;return r===`anonymous`&&(o=`same-origin`),n({urlList:[e],destination:t,mode:a,credentials:o,useURLCredentials:!0})}t.exports={isValidLastEventId:r,isASCIINumber:i,createPotentialCORSRequest:a}})),ct=e.c(((e,t)=>{let n=require(`node:buffer`),{Transform:r}=require(`node:stream`),{isASCIINumber:i,isValidLastEventId:a}=st(),o=[239,187,191],s=n.kStringMaxLength,c=Buffer.from(`data`),l=Buffer.from(`event`),u=Buffer.from(`id`),d=Buffer.from(`retry`);function f(e,t){if(t>=e.length)return!1;for(let n=t;n<e.length;n++)if(e[n]<48||e[n]>57)return!1;return!0}function p(e,t){for(let n=t;n<e.length;n++)if(e[n]===0)return!1;return!0}function m(e,t,n){if(t!==n.length)return!1;for(let r=0;r<t;r++)if(e[r]!==n[r])return!1;return!0}function h(){let e=Error(`EventSource message size exceeded`);return e.aborted=!1,e}t.exports={EventSourceStream:class extends r{state;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;chunks=[];chunkIndex=0;pos=0;lineChunkIndex=0;linePos=0;eventDataSize=0;maxEventSize;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(e={}){e.readableObjectMode=!0,super(e),this.state=e.eventSourceSettings||{},this.maxEventSize=e.maxEventSize??s,e.push&&(this.push=e.push)}_transform(e,t,n){if(e.length===0){n();return}if(this.chunks.push(e),this.checkBOM&&this.handleBOM()){n();return}for(;this.hasCurrentByte();){let e=this.currentByte();if(this.eventEndCheck){if(this.crlfCheck){if(e===10){this.crlfCheck=!1,this.consumeCurrentByte();continue}this.crlfCheck=!1}if(e===10||e===13){e===13&&(this.crlfCheck=!0),this.consumeCurrentByte(),this.hasPendingEvent()&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(e===10||e===13){e===13&&(this.crlfCheck=!0);try{this.parseLine(this.readLine(),this.event)}catch(e){n(e);return}this.consumeCurrentByte(),this.eventEndCheck=!0;continue}this.advanceCursor()}n()}parseLine(e,t){if(e.length===0)return;let n=e.indexOf(58);if(n===0)return;let r=e.length,i=e.length;if(n!==-1&&(r=n,i=n+1,e[i]===32&&++i),m(e,r,c)){let n=e.length-i,r=this.eventDataSize+(t.data===void 0?0:1)+n;if(this.maxEventSize>0&&r>this.maxEventSize)throw h();let a=e.toString(`utf8`,i);t.data===void 0?t.data=a:t.data+=`\n${a}`,this.eventDataSize=r;return}if(m(e,r,d)){f(e,i)&&(t.retry=e.toString(`utf8`,i));return}if(m(e,r,u)){p(e,i)&&(t.id=e.toString(`utf8`,i));return}if(m(e,r,l)){let n=e.toString(`utf8`,i);n.length>0&&(t.event=n)}}processEvent(e){e.retry&&i(e.retry)&&(this.state.reconnectionTime=parseInt(e.retry,10)),e.id!==void 0&&a(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,this.event.event=void 0,this.event.id=void 0,this.event.retry=void 0,this.eventDataSize=0}hasPendingEvent(){return this.event.data!==void 0||this.event.event!==void 0||this.event.id!==void 0||this.event.retry!==void 0}hasCurrentByte(){return this.chunkIndex<this.chunks.length&&this.pos<this.chunks[this.chunkIndex].length}currentByte(){return this.chunks[this.chunkIndex][this.pos]}consumeCurrentByte(){this.advanceCursor(),this.syncLineStartToCursor()}advanceCursor(){for(this.pos++;this.chunkIndex<this.chunks.length&&this.pos>=this.chunks[this.chunkIndex].length;)this.chunkIndex++,this.pos=0}syncLineStartToCursor(){this.lineChunkIndex=this.chunkIndex,this.linePos=this.pos,this.dropConsumedChunks()}dropConsumedChunks(){for(;this.lineChunkIndex>0;)this.chunks.shift(),this.lineChunkIndex--,this.chunkIndex--;this.chunkIndex===this.chunks.length&&(this.chunks.length=0,this.chunkIndex=0,this.pos=0,this.lineChunkIndex=0,this.linePos=0)}readLine(){if(this.lineChunkIndex===this.chunkIndex)return this.chunks[this.chunkIndex].subarray(this.linePos,this.pos);let e=[],t=0;for(let n=this.lineChunkIndex;n<=this.chunkIndex;n++){let r=this.chunks[n],i=n===this.lineChunkIndex?this.linePos:0,a=n===this.chunkIndex?this.pos:r.length,o=r.subarray(i,a);t+=o.length,e.push(o)}return Buffer.concat(e,t)}peekBufferedByte(e){let t=this.lineChunkIndex,n=this.linePos;for(;t<this.chunks.length;){let r=this.chunks[t],i=r.length-n;if(e<i)return r[n+e];e-=i,t++,n=0}}discardLeadingBytes(e){for(;e>0&&this.lineChunkIndex<this.chunks.length;){let t=this.chunks[this.lineChunkIndex].length-this.linePos;e<t?(this.linePos+=e,e=0):(e-=t,this.lineChunkIndex++,this.linePos=0)}this.chunkIndex=this.lineChunkIndex,this.pos=this.linePos,this.dropConsumedChunks()}handleBOM(){let e=this.peekBufferedByte(0),t=this.peekBufferedByte(1),n=this.peekBufferedByte(2);return t===void 0?(e===o[0]||(this.checkBOM=!1),!0):n===void 0?e===o[0]&&t===o[1]?!0:(this.checkBOM=!1,!1):(e===o[0]&&t===o[1]&&n===o[2]&&this.discardLeadingBytes(3),this.checkBOM=!1,!this.hasCurrentByte())}}}})),lt=e.c(((e,t)=>{let{pipeline:n}=require(`node:stream`),{fetching:r}=He(),{webidl:i}=A(),{EventSourceStream:a}=ct(),{parseMIMEType:o}=k(),{createFastMessageEvent:s}=Xe(),{isNetworkError:c}=ze(),{isValidHeaderValue:l,kEnumerableProperty:u}=m(),{environmentSettingsObject:d}=j(),{createPotentialCORSRequest:f}=st(),{getGlobalDispatcher:p}=be(),{isomorphicDecode:h}=O(),g=new TextEncoder,_=!1,v=3e3;var y=class e extends EventTarget{#e={open:null,error:null,message:null};#t;#n=!1;#r=0;#i=null;#a=null;#o;#s;constructor(e,t={}){super(),i.util.markAsUncloneable(this);let n=`EventSource constructor`;i.argumentLengthCheck(arguments,1,n),_||(_=!0,process.emitWarning(`EventSource is experimental, expect them to change at any time.`,{code:`UNDICI-ES`})),e=i.converters.USVString(e),t=i.converters.EventSourceInitDict(t,n,`eventSourceInitDict`),this.#o=t.node.dispatcher||t.dispatcher,this.#s={lastEventId:``,reconnectionTime:t.node.reconnectionTime};let r=d,a;try{a=new URL(e,r.settingsObject.baseUrl),this.#s.origin=a.origin}catch(e){throw new DOMException(e,`SyntaxError`)}this.#t=a.href;let o=`anonymous`;t.withCredentials===!0&&(o=`use-credentials`,this.#n=!0);let s=f(a,``,o);s.client=d.settingsObject,s.headersList.set(`Accept`,`text/event-stream`),s.cache=`no-store`,s.initiator=`other`,this.#i=s,this.#c()}get readyState(){return this.#r}get url(){return this.#t}get withCredentials(){return this.#n}#c(){if(this.#r===2)return;this.#r=0;let e={request:this.#i,dispatcher:this.#o};e.processResponseEndOfBody=e=>{if(!c(e))return this.#l()},e.processResponse=e=>{if(c(e))if(e.aborted){this.close(),this.dispatchEvent(new Event(`error`));return}else{this.#l();return}let t=e.headersList.get(`content-type`,!0),r=t===null?`failure`:o(t),i=r!==`failure`&&r.essence===`text/event-stream`;if(e.status!==200||i===!1){this.close(),this.dispatchEvent(new Event(`error`));return}this.#r=1,this.dispatchEvent(new Event(`open`)),this.#s.origin=e.urlList[e.urlList.length-1].origin;let l=new a({eventSourceSettings:this.#s,maxEventSize:this.#o.eventSourceOptions?.maxEventSize,push:e=>{this.dispatchEvent(s(e.type,e.options))}});n(e.body.stream,l,e=>{e?.aborted===!1&&(this.close(),this.dispatchEvent(new Event(`error`)))})},this.#a=r(e)}#l(){this.#r!==2&&(this.#r=0,this.dispatchEvent(new Event(`error`)),setTimeout(()=>{if(this.#r===0){if(this.#i.headersList.delete(`last-event-id`,!0),this.#s.lastEventId.length){let e=h(g.encode(this.#s.lastEventId));l(e)&&this.#i.headersList.set(`last-event-id`,e,!0)}this.#c()}},this.#s.reconnectionTime)?.unref())}close(){i.brandCheck(this,e),this.#r!==2&&(this.#r=2,this.#a.abort(),this.#i=null)}get onopen(){return this.#e.open}set onopen(e){this.#e.open&&this.removeEventListener(`open`,this.#e.open);let t=i.converters.EventHandlerNonNull(e);t===null?this.#e.open=null:(this.addEventListener(`open`,t),this.#e.open=e)}get onmessage(){return this.#e.message}set onmessage(e){this.#e.message&&this.removeEventListener(`message`,this.#e.message);let t=i.converters.EventHandlerNonNull(e);t===null?this.#e.message=null:(this.addEventListener(`message`,t),this.#e.message=e)}get onerror(){return this.#e.error}set onerror(e){this.#e.error&&this.removeEventListener(`error`,this.#e.error);let t=i.converters.EventHandlerNonNull(e);t===null?this.#e.error=null:(this.addEventListener(`error`,t),this.#e.error=e)}};let b={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:0,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:1,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:2,writable:!1}};Object.defineProperties(y,b),Object.defineProperties(y.prototype,b),Object.defineProperties(y.prototype,{close:u,onerror:u,onmessage:u,onopen:u,readyState:u,url:u,withCredentials:u}),i.converters.EventSourceInitDict=i.dictionaryConverter([{key:`withCredentials`,converter:i.converters.boolean,defaultValue:()=>!1},{key:`dispatcher`,converter:i.converters.any,defaultValue:()=>p()},{key:`node`,converter:i.dictionaryConverter([{key:`reconnectionTime`,converter:i.converters[`unsigned long`],defaultValue:()=>v},{key:`dispatcher`,converter:i.converters.any}]),defaultValue:()=>({})}]),t.exports={EventSource:y,defaultReconnectionTime:v}})),ut=e.c(((e,t)=>{let n=R(),r=v(),i=V(),a=ee(),o=H(),s=U(),c=W(),u=G(),f=re(),p=ie(),h=ae(),g=oe(),_=d(),y=m(),{InvalidArgumentError:x}=_,S=le(),C=b(),w=pe(),{MockCallHistory:T,MockCallHistoryLog:D}=me(),O=ge(),A=he(),j=ye(),M=Q(),P=K(),{getGlobalDispatcher:F,setGlobalDispatcher:I}=be(),L=xe(),z=Se();Object.assign(r.prototype,S),t.exports.Dispatcher=r,t.exports.Client=n,t.exports.Pool=i,t.exports.BalancedPool=a,t.exports.RoundRobinPool=o,t.exports.Agent=s,t.exports.Dispatcher1Wrapper=c,t.exports.ProxyAgent=u,t.exports.Socks5ProxyAgent=f,t.exports.EnvHttpProxyAgent=p,t.exports.RetryAgent=h,t.exports.H2CClient=g,t.exports.RetryHandler=P,t.exports.DecoratorHandler=L,t.exports.RedirectHandler=z,t.exports.interceptors={redirect:Ce(),responseError:we(),retry:Te(),dump:Ee(),dns:De(),cache:Ne(),decompress:Pe(),deduplicate:Ie()},t.exports.cacheStores={MemoryCacheStore:je()};let B=Le();t.exports.cacheStores.SqliteCacheStore=B,t.exports.buildConnector=C,t.exports.errors=_,t.exports.util={parseHeaders:y.parseHeaders,headerNameToString:y.headerNameToString};function te(e){return(t,n,r)=>{if(typeof n==`function`&&(r=n,n=null),!t||typeof t!=`string`&&typeof t!=`object`&&!(t instanceof URL))throw new x(`invalid url`);if(n!=null&&typeof n!=`object`)throw new x(`invalid opts`);if(n&&n.path!=null){if(typeof n.path!=`string`)throw new x(`invalid opts.path`);let e=n.path;n.path.startsWith(`/`)||(e=`/${e}`),t=new URL(y.parseOrigin(t).origin+e)}else n||=typeof t==`object`?t:{},t=y.parseURL(t);let{agent:i,dispatcher:a=F(),...o}=n;if(i)throw new x(`unsupported opts.agent. Did you mean opts.client?`);return e.call(a,{...o,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:n.method||(n.body?`PUT`:`GET`)},r)}}t.exports.setGlobalDispatcher=I,t.exports.getGlobalDispatcher=F;let ne=He().fetch,q=typeof __filename<`u`?__filename:void 0;function J(e,t){if(!e||typeof e!=`object`)return;let n=typeof e.stack==`string`?e.stack:``,r=t.replace(/\\/g,`/`);if(n&&(n.includes(t)||n.includes(r)))return;let i={};if(Error.captureStackTrace(i,J),!i.stack)return;let a=i.stack.split(`
|
|
95
95
|
`).slice(1).join(`
|
|
96
|
-
`);e.stack=n?`${n}\n${a}`:i.stack}t.exports.fetch=function(e,n=void 0){return G(e,n).catch(e=>{throw J?Y(e,J):e&&typeof e==`object`&&Error.captureStackTrace(e,t.exports.fetch),e})},t.exports.Headers=Re().Headers,t.exports.Response=ze().Response,t.exports.Request=Be().Request,t.exports.FormData=N().FormData;let{setGlobalOrigin:X,getGlobalOrigin:oe}=E();t.exports.setGlobalOrigin=X,t.exports.getGlobalOrigin=oe;let{CacheStorage:Z}=Ge(),{kConstruct:Q}=l();t.exports.caches=new Z(Q);let{deleteCookie:se,getCookies:ue,getSetCookies:de,setCookie:fe,parseCookie:$}=Ye();t.exports.deleteCookie=se,t.exports.getCookies=ue,t.exports.getSetCookies=de,t.exports.setCookie=fe,t.exports.parseCookie=$;let{parseMIMEType:_e,serializeAMimeType:ve}=k();t.exports.parseMIMEType=_e,t.exports.serializeAMimeType=ve;let{CloseEvent:Oe,ErrorEvent:ke,MessageEvent:Ae}=Xe(),{WebSocket:Me,ping:Fe}=it();t.exports.WebSocket=Me,t.exports.CloseEvent=Oe,t.exports.ErrorEvent=ke,t.exports.MessageEvent=Ae,t.exports.ping=Fe,t.exports.WebSocketStream=ot().WebSocketStream,t.exports.WebSocketError=at().WebSocketError,t.exports.request=te(S.request),t.exports.stream=te(S.stream),t.exports.pipeline=te(S.pipeline),t.exports.connect=te(S.connect),t.exports.upgrade=te(S.upgrade),t.exports.MockClient=w,t.exports.MockCallHistory=T,t.exports.MockCallHistoryLog=D,t.exports.MockPool=A,t.exports.MockAgent=O,t.exports.SnapshotAgent=j,t.exports.mockErrors=M;let{EventSource:Ve}=lt();t.exports.EventSource=Ve;function Ue(){globalThis.fetch=t.exports.fetch,globalThis.Headers=t.exports.Headers,globalThis.Response=t.exports.Response,globalThis.Request=t.exports.Request,globalThis.FormData=t.exports.FormData,globalThis.WebSocket=t.exports.WebSocket,globalThis.CloseEvent=t.exports.CloseEvent,globalThis.ErrorEvent=t.exports.ErrorEvent,globalThis.MessageEvent=t.exports.MessageEvent,globalThis.EventSource=t.exports.EventSource}t.exports.install=Ue}))(),dt=[{meta:{id:`title`,name:`Page Title`,category:`SEO`,tier:`free`,description:`Checks for the presence and length of the <title> tag`},run(e){let{document:t}=e,n=[],r=t.querySelector(`title`)?.textContent?.trim()||``,i=r.length;return r?i<30?n.push({ruleId:`title`,ruleName:`Page Title`,message:`Title may be too short - under 30 characters may not be descriptive enough`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Expand your title to 50-60 characters to avoid truncation. Google does not enforce a character limit but truncates based on pixel width (~600px on desktop).`,data:{value:r,length:i}}):i>60&&n.push({ruleId:`title`,ruleName:`Page Title`,message:`Title is over 60 characters - likely to be truncated in search results`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Shorten your title to under 60 characters to avoid truncation. Google truncates based on pixel width (~600px on desktop), which is roughly 60 characters.`,data:{value:r,length:i}}):n.push({ruleId:`title`,ruleName:`Page Title`,message:`Missing title tag`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add a <title>Your Page Title</title> tag inside your <head> element. Aim for 50-60 characters to avoid truncation in search results.`,data:{value:r,length:i}}),n}},{meta:{id:`meta-description`,name:`Meta Description`,category:`SEO`,tier:`free`,description:`Checks for the presence and length of the meta description tag`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[name="description"]`)?.getAttribute(`content`)?.trim()||``,i=r.length;return r?i<120?n.push({ruleId:`meta-description`,ruleName:`Meta Description`,message:`Meta description may be too short - under 120 characters may not fully utilize the available snippet space`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Expand your meta description to 150-160 characters. Google does not enforce a character limit but typically truncates around 160 characters on desktop (~120 on mobile).`,data:{value:r,length:i}}):i>160&&n.push({ruleId:`meta-description`,ruleName:`Meta Description`,message:`Meta description is over 160 characters - likely to be truncated in search results`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Shorten your meta description to under 160 characters. Google truncates snippets based on device width, typically around 160 characters on desktop.`,data:{value:r,length:i}}):n.push({ruleId:`meta-description`,ruleName:`Meta Description`,message:`Missing meta description`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta name="description" content="Your description here" /> to your <head> tag. Aim for 150-160 characters to avoid truncation.`,data:{value:r,length:i}}),n}},{meta:{id:`og-title`,name:`Open Graph Title`,category:`SEO`,tier:`free`,description:`Checks for the og:title meta tag`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[property="og:title"]`)?.getAttribute(`content`)?.trim()||``;return r?r.length>60?n.push({ruleId:`og-title`,ruleName:`Open Graph Title`,message:`og:title is long (${r.length} characters). Optimal: 50-60 characters`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Shorten your og:title to under 60 characters. Longer titles get truncated on most social platforms.`,data:{value:r,length:r.length}}):r.length<30&&n.push({ruleId:`og-title`,ruleName:`Open Graph Title`,message:`og:title is short (${r.length} characters). Optimal: 50-60 characters`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`Consider expanding your og:title to 50-60 characters to make social shares more compelling.`,data:{value:r,length:r.length}}):n.push({ruleId:`og-title`,ruleName:`Open Graph Title`,message:`Missing og:title tag - social media shares will have no title preview`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta property="og:title" content="Your Page Title" /> to your <head> tag.`}),n}},{meta:{id:`og-description`,name:`Open Graph Description`,category:`SEO`,tier:`free`,description:`Checks for the og:description meta tag`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[property="og:description"]`)?.getAttribute(`content`)?.trim()||``;return r?r.length>200?n.push({ruleId:`og-description`,ruleName:`Open Graph Description`,message:`og:description is long (${r.length} characters). Optimal: 110-160 characters`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Shorten your og:description to under 200 characters. Most platforms truncate longer descriptions.`,data:{value:r,length:r.length}}):r.length<70&&n.push({ruleId:`og-description`,ruleName:`Open Graph Description`,message:`og:description is short (${r.length} characters). Optimal: 110-160 characters`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`Consider expanding your og:description to 110-160 characters to make social shares more engaging.`,data:{value:r,length:r.length}}):n.push({ruleId:`og-description`,ruleName:`Open Graph Description`,message:`Missing og:description tag - social media shares will have no description preview`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta property="og:description" content="Your description" /> to your <head> tag.`}),n}},{meta:{id:`og-image`,name:`Open Graph Image`,category:`SEO`,tier:`free`,description:`Checks for the og:image meta tag`},run(e){let{document:t}=e,n=[];return t.querySelector(`meta[property="og:image"]`)?.getAttribute(`content`)||n.push({ruleId:`og-image`,ruleName:`Open Graph Image`,message:`Missing og:image tag - social media shares will have no image preview`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta property="og:image" content="https://yoursite.com/image.jpg" /> to your <head> tag.`}),n}},{meta:{id:`og-url`,name:`Open Graph URL`,category:`SEO`,tier:`free`,description:`Checks for the og:url meta tag`},run(e){let{document:t}=e,n=[];return t.querySelector(`meta[property="og:url"]`)?.getAttribute(`content`)||n.push({ruleId:`og-url`,ruleName:`Open Graph URL`,message:`Missing og:url tag - social media may not show the correct URL`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta property="og:url" content="https://yoursite.com/page" /> to your <head> tag.`}),n}},{meta:{id:`twitter-card`,name:`Twitter Card`,category:`SEO`,tier:`free`,description:`Checks for Twitter Card meta tags`},run(e){let{document:t}=e,n=[];return t.querySelector(`meta[name="twitter:card"]`)?.getAttribute(`content`)||n.push({ruleId:`twitter-card`,ruleName:`Twitter Card`,message:`Missing Twitter Card tags - tweets with your URL will have no preview card`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta name="twitter:card" content="summary_large_image" />, <meta name="twitter:title" content="..." />, and <meta name="twitter:image" content="..." /> to your <head>.`}),n}},{meta:{id:`canonical-url`,name:`Canonical URL`,category:`SEO`,tier:`free`,description:`Checks for a canonical link tag and validates the URL`},run(e){let{document:t}=e,n=[],r=t.querySelector(`link[rel="canonical"]`),i=r?.getAttribute(`href`)||void 0;return r?i&&!i.startsWith(`http`)&&n.push({ruleId:`canonical-url`,ruleName:`Canonical URL`,message:`Canonical URL should be absolute (include protocol and domain)`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Change your canonical href to an absolute URL starting with https:// (e.g., href="https://yoursite.com/page").`,data:{present:!0,value:i}}):n.push({ruleId:`canonical-url`,ruleName:`Canonical URL`,message:`No canonical link found (recommended for SEO)`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`Add <link rel="canonical" href="https://yoursite.com/this-page" /> to your <head> tag to prevent duplicate content issues.`,data:{present:!1}}),n}},{meta:{id:`robots-noindex`,name:`Robots Noindex`,category:`Pre-Launch`,tier:`free`,description:`Checks for noindex/nofollow in the robots meta tag`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[name="robots"]`)?.getAttribute(`content`)||``;return r.includes(`noindex`)&&n.push({ruleId:`robots-noindex`,ruleName:`Robots Noindex`,message:`Page has noindex meta tag - WILL NOT BE INDEXED by search engines! Remove this before launch or you'll get ZERO organic traffic.`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`free`,fix:`Remove the <meta name="robots" content="noindex" /> tag from your <head>, or change it to content="index, follow".`,data:{metaRobots:r}}),r.includes(`nofollow`)&&n.push({ruleId:`robots-noindex`,ruleName:`Robots Noindex`,message:`Page has nofollow meta tag - links will not be followed`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Remove "nofollow" from your <meta name="robots"> content if you want search engines to follow your links.`,data:{metaRobots:r}}),n}},{meta:{id:`heading-structure`,name:`Heading Structure`,category:`SEO`,tier:`free`,description:`Validates H1 tag presence, count, and heading hierarchy`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`h1`),i=r.length,a=Array.from(r).map(e=>e.textContent?.trim()||``);i===0?n.push({ruleId:`heading-structure`,ruleName:`Heading Structure`,message:`No H1 tag found`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add a single <h1> tag to your page with a clear, descriptive heading that includes your primary keyword.`,data:{h1Count:i}}):i>1&&n.push({ruleId:`heading-structure`,ruleName:`Heading Structure`,message:`Multiple H1 tags found (${i}). Best practice is 1 per page`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`While Google does not penalize multiple H1 tags, using a single H1 per page is a widely recommended best practice for clarity and accessibility.`,data:{h1Count:i,h1Values:a}}),a.forEach((e,t)=>{e?e.length>70&&n.push({ruleId:`heading-structure`,ruleName:`Heading Structure`,message:`H1 #${t+1} is too long (${e.length} characters)`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`Shorten your H1 to under 70 characters for better readability and SEO.`}):n.push({ruleId:`heading-structure`,ruleName:`Heading Structure`,message:`H1 #${t+1} is empty`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add descriptive text content to your <h1> tag.`})});let o=t.querySelectorAll(`h1, h2, h3, h4, h5, h6`),s=0;return Array.from(o).forEach(e=>{let t=Number.parseInt(e.tagName[1]??`1`,10);if(t-s>1){let t=e.textContent?.trim().substring(0,40)||`...`;n.push({ruleId:`heading-structure`,ruleName:`Heading Structure`,message:`${e.tagName} skips heading level from h${s} (content: "${t}")`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`Don't skip heading levels. Use h${s+1} instead of ${e.tagName} to maintain proper hierarchy.`})}s=t}),n}},{meta:{id:`html-lang`,name:`HTML Lang Attribute`,category:`Accessibility`,tier:`free`,description:`Checks for the lang attribute on the <html> tag`},run(e){let{document:t}=e,n=[];return t.documentElement.getAttribute(`lang`)||n.push({ruleId:`html-lang`,ruleName:`HTML Lang Attribute`,message:`Missing lang attribute on <html> tag`,severity:`WARNING`,category:`Accessibility`,tier:`free`,fix:`Add lang="en" (or your language code) to your <html> tag: <html lang="en">.`,data:{present:!1}}),n}},{meta:{id:`viewport`,name:`Viewport Meta Tag`,category:`SEO`,tier:`free`,description:`Checks for the viewport meta tag for mobile responsiveness`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[name="viewport"]`);if(!r)n.push({ruleId:`viewport`,ruleName:`Viewport Meta Tag`,message:`Missing viewport meta tag - page will not render properly on mobile devices`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta name="viewport" content="width=device-width, initial-scale=1" /> to your <head> tag.`,data:{present:!1}});else{let e=r.getAttribute(`content`)||``,t=/user-scalable\s*=\s*no/i.test(e),i=e.match(/maximum-scale\s*=\s*([\d.]+)/i),a=i&&parseFloat(i[1])<2;(t||a)&&n.push({ruleId:`viewport`,ruleName:`Viewport Meta Tag`,message:`Viewport disables or restricts user zoom - this fails WCAG 1.4.4 (Resize text) which requires at least 200% zoom`,severity:`WARNING`,category:`Accessibility`,tier:`free`,fix:`Remove user-scalable=no and ensure maximum-scale is at least 2.0 (or remove it entirely) to allow users to zoom.`})}return n}},{meta:{id:`favicon`,name:`Favicon`,category:`SEO`,tier:`free`,description:`Checks for the presence of a favicon link tag`},run(e){let{document:t}=e,n=[];return t.querySelector(`link[rel*="icon"]`)||n.push({ruleId:`favicon`,ruleName:`Favicon`,message:`No favicon found - browsers will show a default icon in tabs and bookmarks`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <link rel="icon" href="/favicon.ico" /> to your <head> tag. Include multiple sizes for best results.`,data:{present:!1}}),n}},{meta:{id:`anchor-missing-href`,name:`Anchor Missing Href`,category:`SEO`,tier:`free`,description:`Checks that all <a> elements have a valid href attribute`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`a`),i=[];for(let e of r){let t=e.getAttribute(`href`);if(!t||t.trim()===``){let t=e.textContent?.trim()||``,n=t.length>50?t.slice(0,50)+`…`:t;i.push(n||`<empty>`)}}return i.length>0&&n.push({ruleId:`anchor-missing-href`,ruleName:`Anchor Missing Href`,message:`${i.length} <a> element(s) missing a valid href attribute: ${i.join(`, `)}`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add a valid href attribute to all <a> elements. Links without href are not crawlable by search engines and inaccessible to keyboard/screen reader users. If the element is not a link, use a <button> or <span> instead.`,data:{count:i.length,anchors:i}}),n}}];new Map(dt.map(e=>[e.meta.id,e]));function ft(e){let t=e.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);if(!t)return!1;let[,n,r]=t.map(Number);return n===10||n===172&&r>=16&&r<=31||n===192&&r===168||n===127||n===169&&r===254||n===0||n===100&&r>=64&&r<=127||n===198&&(r===18||r===19)||n>=224}function pt(e){let t=e.replace(/^\[|\]$/g,``).toLowerCase();if(ft(t))return!0;if(!t.includes(`:`))return!1;let n=t.match(/^::(?:ffff:)?(\d{1,3}(?:\.\d{1,3}){3})$/);if(n)return ft(n[1]);let r=t.match(/^::(?:ffff:)?([0-9a-f]{1,4}):([0-9a-f]{1,4})$/);if(r){let e=parseInt(r[1],16),t=parseInt(r[2],16);if(ft([e>>8,e&255,t>>8,t&255].join(`.`)))return!0}return!!(t===`::`||t===`::1`||/^f[cd][0-9a-f]{0,2}:/.test(t)||/^fe[89ab][0-9a-f]?:/.test(t)||t.startsWith(`::ffff:`))}function mt(e){let t=e.replace(/^\[|\]$/g,``).toLowerCase(),n=t.match(/^(\d{1,3})\.\d{1,3}\.\d{1,3}\.\d{1,3}$/);if(n)return Number(n[1])===127;if(t===`::1`)return!0;let r=t.match(/^::ffff:(\d{1,3})\.\d{1,3}\.\d{1,3}\.\d{1,3}$/);if(r)return Number(r[1])===127;let i=t.match(/^::ffff:([0-9a-f]{1,4}):[0-9a-f]{1,4}$/);return i?parseInt(i[1],16)>>8==127:!1}function ht(e){return e.port?e.port:e.protocol===`https:`?`443`:`80`}function gt(e,t){if(!t)return!1;let n=e=>e.replace(/^\[|\]$/g,``).toLowerCase();return n(e)===n(t.loopbackHost)}function _t(e,t,n){return n?gt(e,n)&&t===n.port:!1}function vt(e){return!!(e===`localhost`||e===`127.0.0.1`||e===`[::1]`||e===`0.0.0.0`||e.endsWith(`.internal`)||e.endsWith(`.local`)||e.endsWith(`.localhost`)||pt(e))}async function yt(e,t,n,i){let a=e.replace(/^\[|\]$/g,``),o=Date.now();n?.({step:`dns`,status:`start`,host:a});try{let{address:e}=await r.default.lookup(a);if(!(!pt(e)||_t(a,t,i)&&mt(e))){let e=`URLs pointing to private or internal addresses are not allowed`;throw n?.({step:`dns`,status:`fail`,host:a,error:e}),Error(e)}let s=Date.now()-o;return n?.({step:`dns`,status:`ok`,host:a,address:e,ms:s}),{address:e,ms:s}}catch(e){if(e instanceof Error&&e.message.includes(`private or internal`))throw e;let t=`Could not resolve hostname`;throw n?.({step:`dns`,status:`fail`,host:a,error:t}),Error(t)}}function bt(e=i.lookup,t){return function(n,r,i){let a=r??{};e(n,{...a,all:!0},(e,r)=>{if(e){i(e,``,void 0);return}let o=gt(n,t),s=r.filter(e=>!pt(e.address)||o&&mt(e.address));if(s.length===0){i(Error(`URLs pointing to private or internal addresses are not allowed`),``,void 0);return}if(a.all){i(null,s);return}i(null,s[0].address,s[0].family)})}}var xt,St=8,Ct=new Map;function wt(e){let t=(0,ut.buildConnector)({lookup:bt(void 0,e)}),n=(0,ut.buildConnector)({lookup:bt(void 0,void 0)});return function(r,i){let o=String(r.hostname??``).replace(/^\[|\]$/g,``),s=_t(o,String(r.port??``)||(String(r.protocol??``)===`https:`?`443`:`80`),e);if((0,a.isIP)(o)&&pt(o)&&!(s&&mt(o))){i(Error(`URLs pointing to private or internal addresses are not allowed`),null);return}(s?t:n)(r,i)}}function Tt(e){if(!e)return xt??=new ut.Agent({connect:wt()}),xt;let t=`${e.loopbackHost.toLowerCase()}:${e.port}`,n=Ct.get(t);if(!n&&(n=new ut.Agent({connect:wt(e)}),Ct.set(t,n),Ct.size>St)){let e=Ct.keys().next().value;if(e!==void 0&&e!==t){let t=Ct.get(e);Ct.delete(e),t?.close()}}return n}function Et(e,t,n){let r=Tt(n),i=Dt.getStore();return(0,ut.fetch)(e,{...t,dispatcher:i?kt(r,i):r})}var Dt=new o.AsyncLocalStorage;function Ot(e,t){return e?Dt.run(e,t):t()}function kt(e,t){return e.compose(e=>(n,r)=>{let i;try{i=new URL(String(n.origin)).origin}catch{i=void 0}return i===t.origin?e({...n,headers:At(n.headers,t.headers)},r):e(n,r)})}function At(e,t){let n=Object.entries(t).flat();if(e==null)return{...t};if(Array.isArray(e))return[...e,...n];if(typeof e[Symbol.iterator]==`function`){let t=[];for(let[n,r]of e)if(r!==void 0)for(let e of Array.isArray(r)?r:[r])t.push(n,e);return[...t,...n]}return{...e,...t}}function jt(e,t){let n;try{n=new URL(e)}catch{throw Error(`Invalid URL`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw Error(`Only HTTP and HTTPS URLs are allowed`);if(n.hostname===`0.0.0.0`||n.hostname===`[::]`)throw Error(`URLs pointing to private or internal addresses are not allowed. 0.0.0.0 is a bind address rather than a destination: use http://127.0.0.1 with the same port.`);let r=_t(n.hostname,ht(n),t)&&(!pt(n.hostname)||mt(n.hostname));if(vt(n.hostname)&&!r)throw Error(`URLs pointing to private or internal addresses are not allowed`)}async function Mt(e,t,n){try{jt(e,n),t?.({step:`validate`,status:`ok`})}catch(e){let n=e instanceof Error?e.message:`Invalid URL`;throw t?.({step:`validate`,status:`fail`,error:n}),e}let r=new URL(e);return yt(r.hostname,ht(r),t,n)}var Nt=`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 LintPage/1.0 (+https://lintpage.com)`;async function Pt(e,t){let{onStep:n,grant:r}=t??{};await Mt(e,n,r);let i=Date.now();n?.({step:`fetch`,status:`start`,url:e});let a;try{a=await Et(e,{headers:{"User-Agent":Nt,Accept:`text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8`,"Accept-Language":`en-US,en;q=0.9`,"Accept-Encoding":`gzip, deflate, br`},signal:AbortSignal.timeout(3e4)},r)}catch(e){let t=e instanceof Error?e.message:`fetch failed`;throw n?.({step:`fetch`,status:`fail`,error:t}),e}let o=Date.now()-i;if(!a.ok){let e=`Failed to fetch URL: ${a.status} ${a.statusText}`;throw n?.({step:`fetch`,status:`fail`,error:e,statusCode:a.status}),Object.assign(Error(e),{finalUrl:a.url})}n?.({step:`fetch`,status:`ok`,statusCode:a.status,contentType:a.headers.get(`content-type`),ttfbMs:o}),n?.({step:`parse`,status:`start`});let s;try{s=await a.text()}catch(e){let t=e instanceof Error?e.message:`failed to read body`;throw n?.({step:`parse`,status:`fail`,error:t}),e}let c;try{let{JSDOM:e}=await import(`jsdom`);c=new e(s).window.document,n?.({step:`parse`,status:`ok`,sizeBytes:Buffer.byteLength(s,`utf8`)})}catch(e){let t=e instanceof Error?e.message:`failed to parse HTML`;throw n?.({step:`parse`,status:`fail`,error:t}),e}return{document:c,response:a,html:s,ttfbMs:o}}var Ft={"Pre-Launch":25,SEO:30,"AI Visibility":10,Accessibility:20,Performance:15};function It(e){let t={};for(let e of Object.keys(Ft))t[e]={critical:0,warning:0,info:0};for(let n of e){let e=n.category;t[e]||(t[e]={critical:0,warning:0,info:0}),n.severity===`CRITICAL`?t[e].critical++:n.severity===`WARNING`?t[e].warning++:t[e].info++}let n={};for(let[e,r]of Object.entries(Ft)){let i=t[e]||{critical:0,warning:0,info:0},a=Math.min(100,i.critical*30+i.warning*5+i.info*1);n[e]={score:Math.round(r*(1-a/100)*10)/10,max:r,deductionPercent:a}}return n}function Lt(e){let t=It(e),n=Object.values(t).reduce((e,t)=>e+t.score,0);return Math.round(n)}var Rt=new Set([`CRITICAL`,`WARNING`,`INFO`]),zt=`ttfb`,Bt=`redirected-off-site`;function Vt(e){try{let t=new URL(e);return t.hash=``,t.href}catch{return e}}function Ht(e,t){if(!(typeof t!=`string`||!t)&&!(t===e||t===Vt(e)))return t}function Ut(e,t){let n=Wt(e),r=Wt(t);return n&&r&&n!==r?r:null}function Wt(e){try{return new URL(e).hostname.toLowerCase().replace(/\.$/,``).replace(/^www\./,``)}catch{return null}}function Gt(e,t){let n=Ut(e,t);if(!n)return null;let r=``;try{r=new URL(t).pathname}catch{}let i=n===`vercel.com`&&(r.startsWith(`/sso-api`)||r.startsWith(`/login`));return{ruleId:Bt,ruleName:`Redirected to another site`,message:i?`This deployment is behind Vercel Deployment Protection: it redirected to the Vercel login page, so the audit checked that page instead of your site.`:`This URL redirected to ${n}, so the audit checked that site instead of this one.`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`free`,fix:i?`Set VERCEL_AUTOMATION_BYPASS_SECRET to the project's Protection Bypass for Automation secret (Vercel: Settings, Deployment Protection), or turn off protection for this deployment.`:`Audit ${t} directly. If this redirect is intended, set the severity of \`${Bt}\` lower in your config.`,data:{from:e,to:t}}}function Kt(e,t,n){let r=t?.rules;return r?e.map(e=>{if(!n.has(e.ruleId))return e;let t=r[e.ruleId];if(typeof t!=`object`||!t)return e;let i=t.severity;return!i||!Rt.has(i)||i===e.severity?e:{...e,severity:i}}):e}function qt(e,t,n){let r=[];for(let i of e){if(n?.rules){let e=n.rules[i.meta.id];if(e===!1||typeof e==`object`&&e.enabled===!1)continue}try{let e=i.run(t);r.push(...e)}catch(e){console.warn(`[lintpage] Rule "${i.meta.id}" threw an error: ${e instanceof Error?e.message:String(e)}`)}}return r}function Jt(e,t){if(!t?.rules)return!0;let n=t.rules[e];return!(n===!1||typeof n==`object`&&n.enabled===!1)}async function Yt(e,t,n){let r=e.filter(e=>Jt(e.meta.id,n)),i=await Promise.allSettled(r.map(e=>e.run(t))),a=[];for(let e=0;e<i.length;e++){let t=i[e];if(t.status===`fulfilled`)a.push(...t.value);else{let n=t.reason;console.warn(`[lintpage] Async rule "${r[e].meta.id}" threw an error: ${n instanceof Error?n.message:String(n)}`)}}return a}async function Xt(e,t,n){let r=e.filter(e=>Jt(e.meta.id,n)),i=await Promise.allSettled(r.map(e=>e.run(t))),a=[];for(let e=0;e<i.length;e++){let t=i[e];if(t.status===`fulfilled`)a.push(...t.value);else{let n=t.reason;console.warn(`[lintpage] Standalone rule "${r[e].meta.id}" threw an error: ${n instanceof Error?n.message:String(n)}`)}}return a}async function Zt(e,t){let n=t?.onStep,r=[...dt],i=[],a=[];if(t?.plugins)for(let e of t.plugins)r.push(...e.rules),e.asyncRules&&i.push(...e.asyncRules),e.standaloneRules&&a.push(...e.standaloneRules);let o=null,s=0,c=null,l;try{let r=await Pt(e,{onStep:n,grant:t?.grant});l=Ht(e,r.response.url),o={document:r.document,url:e,response:r.response,isHttps:e.startsWith(`https://`)},s=r.ttfbMs}catch(t){let n=t instanceof Error?t.message:String(t),r=/Failed to fetch URL: (\d{3})/.exec(n);c={message:n,statusCode:r?Number(r[1]):void 0},l=Ht(e,t?.finalUrl)}let u=r.length+i.length+a.length;n?.({step:`rules`,status:`start`,count:u});let d=o?qt(r,o,t?.config):[],f=[];if(o&&i.length>0&&f.push(Yt(i,o,t?.config)),a.length>0&&f.push(Xt(a,e,t?.config)),f.length>0){let e=await Promise.all(f);for(let t of e)d.push(...t)}if(c){let t=c.statusCode,n=l?Ut(e,l):null,r=!n&&(t===403||t===429||t===503);d.push({ruleId:`target-unreachable`,ruleName:`Target unreachable to LintPage`,message:n?`The page redirected to ${n}, which ${t?`answered HTTP ${t}`:`could not be fetched`}. DOM-dependent checks were skipped; standalone checks still ran.`:r?`Your WAF or CDN blocked our outer probe (HTTP ${t}). DOM-dependent checks were skipped; AI visibility and other standalone checks still ran.`:`LintPage could not fetch the page (${c.message}). DOM-dependent checks were skipped; standalone checks (AI visibility, robots.txt, sitemap) still ran.`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`free`,fix:n?`Check where ${e} redirects: the failing response came from ${n}, not from this site.`:r?'If you control this site: allow the `LintPage/1.0` token in your WAF or CDN rules. Our probe sends a Chrome-prefixed User-Agent containing "LintPage/1.0", so match on that token rather than on the whole string. If you don\'t control the site, the partial report below still shows what AI crawlers see.':`Verify the URL is reachable from the public internet and returns 2xx for a Chrome-like User-Agent within 30s.`,data:{statusCode:t,raw:c.message}})}if(t?.reportOffSiteRedirect&&l&&Jt(`redirected-off-site`,t?.config)){let t=Gt(e,l);t&&d.push(t)}s>1800?d.push({ruleId:zt,ruleName:`Time to First Byte`,message:`Slow server response time (TTFB: ${s}ms) - aim for under 800ms`,severity:`WARNING`,category:`Performance`,tier:`free`,fix:`Optimize server response time: enable caching, use a CDN, optimize database queries, or upgrade hosting.`,data:{ms:s}}):s>800&&d.push({ruleId:zt,ruleName:`Time to First Byte`,message:`Server response time could be improved (TTFB: ${s}ms) - aim for under 800ms`,severity:`INFO`,category:`Performance`,tier:`free`,fix:`Consider enabling server-side caching or using a CDN to reduce response time.`,data:{ms:s}}),n?.({step:`rules`,status:`done`,found:d.length});let p=new Set([...r.map(e=>e.meta.id),...i.map(e=>e.meta.id),...a.map(e=>e.meta.id),zt,Bt]),m=Kt(t?.adjustResults?t.adjustResults(d):d,t?.config,p),h=It(m),g=Object.values(h).reduce((e,t)=>e+t.score,0),_=m.some(e=>e.severity===`CRITICAL`&&e.category!==`AI Visibility`),v=m.some(e=>e.severity===`CRITICAL`&&e.category===`AI Visibility`),y=_?`FAIL`:v?`AI-FAIL`:`PASS`;return{url:e,timestamp:new Date().toISOString(),results:m,score:Math.round(g),overallStatus:y,categoryScores:h,...l?{finalUrl:l}:{}}}var Qt=[`.lintpagerc.json`,`.lintpagerc`,`lintpage.config.json`];function $t(e){let t=e||process.cwd();if(e&&(0,s.existsSync)(e)&&(0,s.statSync)(e).isFile())try{let t=(0,s.readFileSync)(e,`utf-8`);return JSON.parse(t)}catch{return null}let n=t;for(let e of Qt){let t=(0,c.join)(n,e);if((0,s.existsSync)(t))try{let e=(0,s.readFileSync)(t,`utf-8`);return JSON.parse(e)}catch{return null}}return null}function en(){return{rules:{}}}var tn={meta:{id:`ssl`,name:`SSL / HTTPS`,category:`Pre-Launch`,tier:`pro`,description:`Checks that the site is served over HTTPS`},run(e){let t=[];return e.isHttps||t.push({ruleId:`ssl`,ruleName:`SSL / HTTPS`,message:`Site is not using HTTPS - required for SEO and user trust. Search engines penalize HTTP sites.`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`pro`,fix:`Install an SSL certificate and redirect all HTTP traffic to HTTPS. Most hosting providers offer free SSL via Let's Encrypt.`}),t}},nn={meta:{id:`robots-txt-check`,name:`robots.txt Check`,category:`Pre-Launch`,tier:`pro`,description:`Fetches and validates robots.txt for proper directives`},async run(e){let t=[];try{let n=new URL(`/robots.txt`,e).href,r=await Et(n,{headers:{"User-Agent":`LintPage-Bot/1.0`}});if(!r.ok)return t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`No robots.txt file found - recommended to have one`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Create a robots.txt file at your site root with at least "User-Agent: *" and "Allow: /" directives.`}),t;let i=await r.text(),a=i.split(`
|
|
97
|
-
`).map(e=>e.trim()),o=new Map,s=`*`;for(let e of a){if(!e||e.startsWith(`#`))continue;let[t,...n]=e.split(`:`).map(e=>e.trim()),r=n.join(`:`).trim();if(!t||!r)continue;let i=t.toUpperCase();if(i===`USER-AGENT`)s=r,o.has(s)||o.set(s,{disallow:[],allow:[]});else if(i===`DISALLOW`){let e=o.get(s)||{disallow:[],allow:[]};e.disallow.push(r),o.set(s,e)}else if(i===`ALLOW`){let e=o.get(s)||{disallow:[],allow:[]};e.allow.push(r),o.set(s,e)}}let c=o.get(`*`);c&&c.disallow.includes(`/`)&&t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`robots.txt contains "Disallow: /" for User-Agent: * - this blocks ALL search engines from crawling your entire site!`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`pro`,fix:`Change "Disallow: /" to "Allow: /" in your robots.txt, or remove the Disallow directive entirely.`}),i.toLowerCase().includes(`sitemap`)||t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`robots.txt does not reference sitemap.xml - consider adding a Sitemap directive`,severity:`INFO`,category:`Pre-Launch`,tier:`pro`,fix:`Add "Sitemap: https://yoursite.com/sitemap.xml" to the end of your robots.txt file.`}),a.some(e=>!e||e.startsWith(`#`)?!1:!e.includes(`:`)&&e.length>0)&&t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`robots.txt may have syntax errors - ensure each directive follows "Directive: value" format`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Review each line in robots.txt. Every directive must follow the "Directive: value" format (e.g., "User-Agent: *").`}),(o.size===0||o.size===1&&!o.has(`*`))&&t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`robots.txt exists but has no rules defined - add User-Agent and Disallow/Allow directives`,severity:`INFO`,category:`Pre-Launch`,tier:`pro`,fix:`Add at minimum "User-Agent: *" followed by "Allow: /" to your robots.txt.`})}catch{t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`Could not fetch robots.txt - ensure it exists at root domain`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Create a robots.txt file at your domain root (e.g., https://yoursite.com/robots.txt).`})}return t}},rn={meta:{id:`sitemap-presence`,name:`Sitemap Presence`,category:`Pre-Launch`,tier:`pro`,description:`Checks for the existence and validity of sitemap.xml`},async run(e){let t=[];try{let n=new URL(`/sitemap.xml`,e).href,r=await Et(n,{headers:{"User-Agent":`LintPage-Bot/1.0`}});if(!r.ok)return t.push({ruleId:`sitemap-presence`,ruleName:`Sitemap Presence`,message:`No sitemap.xml found - recommended for search engines to discover your pages`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Generate a sitemap.xml and place it at your domain root. Most frameworks (Next.js, WordPress) have built-in sitemap generation.`}),t;let i=await r.text(),a=i.includes(`<urlset`),o=i.includes(`<sitemapindex`);if((!i.includes(`<?xml`)||!a&&!o)&&t.push({ruleId:`sitemap-presence`,ruleName:`Sitemap Presence`,message:`sitemap.xml exists but may not be valid XML format`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Ensure your sitemap.xml starts with <?xml version="1.0"?> and uses the <urlset> or <sitemapindex> element with proper namespace.`}),o){let e=i.match(/<sitemap>/g);return(!e||e.length===0)&&t.push({ruleId:`sitemap-presence`,ruleName:`Sitemap Presence`,message:`Sitemap index file is empty - add child sitemap references`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Add <sitemap><loc>https://yoursite.com/sitemap-pages.xml</loc></sitemap> entries to your sitemap index.`}),t}let s=i.match(/<loc>/g);(s?s.length:0)===0&&t.push({ruleId:`sitemap-presence`,ruleName:`Sitemap Presence`,message:`sitemap.xml is empty - add URLs to help search engines discover content`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Add <url><loc>https://yoursite.com/page</loc></url> entries to your sitemap for each page you want indexed.`})}catch{t.push({ruleId:`sitemap-presence`,ruleName:`Sitemap Presence`,message:`Could not fetch sitemap.xml - create one at /sitemap.xml`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Create a sitemap.xml at your domain root. Use a sitemap generator or your framework's built-in sitemap feature.`})}return t}},an={meta:{id:`tracking`,name:`Analytics Tracking`,category:`Pre-Launch`,tier:`pro`,description:`Checks for Google Analytics, Google Tag Manager, or Facebook Pixel`},run(e){let{document:t}=e,n=[],r=!1,i=t.querySelectorAll(`script`),a=t.documentElement?.outerHTML||``;return i.forEach(e=>{let t=e.getAttribute(`src`)||``,n=e.textContent||``;(t.includes(`googletagmanager.com/gtag/js`)||n.includes(`gtag(`))&&(r=!0),(t.includes(`googletagmanager.com/gtm.js`)||n.includes(`GTM-`))&&(r=!0),t.includes(`plausible.io/js/`)&&(r=!0),(t.includes(`usefathom.com/script.js`)||t.includes(`cdn.usefathom.com`))&&(r=!0),(t.includes(`matomo.js`)||t.includes(`matomo.php`)||t.includes(`piwik.js`))&&(r=!0),(t.includes(`posthog-js`)||t.includes(`i.posthog.com`))&&(r=!0),(t.includes(`cdn.mxpnl.com`)||t.includes(`mixpanel.com`))&&(r=!0),(t.includes(`va.vercel-scripts.com`)||t.includes(`vitals.vercel-insights.com`))&&(r=!0),t.includes(`static.cloudflareinsights.com`)&&(r=!0),(t.includes(`umami.js`)||t.includes(`umami.is/script.js`))&&(r=!0),t.includes(`clarity.ms/tag`)&&(r=!0)}),!r&&(a.includes(`@vercel/analytics`)||a.includes(`vercel-analytics`))&&(r=!0),r||n.push({ruleId:`tracking`,ruleName:`Analytics Tracking`,message:`No analytics tracking found - you won't be able to measure traffic after launch`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Add an analytics solution to your site. Options include Google Analytics, Plausible, Fathom, Matomo, PostHog, Vercel Analytics, Umami, or Cloudflare Web Analytics.`,data:{foundAnalytics:r}}),n}},on={meta:{id:`x-robots-tag`,name:`X-Robots-Tag Header`,category:`Pre-Launch`,tier:`pro`,description:`Checks the X-Robots-Tag HTTP header for noindex/nofollow`},run(e){let{response:t}=e,n=[],r=t.headers.get(`x-robots-tag`);if(!r)return n;let i=r.toLowerCase();return i.includes(`noindex`)&&n.push({ruleId:`x-robots-tag`,ruleName:`X-Robots-Tag Header`,message:`X-Robots-Tag HTTP header contains "noindex" - page will NOT be indexed by search engines!`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`pro`,fix:`Remove the X-Robots-Tag header from your server configuration, or change its value to "index, follow".`,data:{value:r}}),i.includes(`nofollow`)&&n.push({ruleId:`x-robots-tag`,ruleName:`X-Robots-Tag Header`,message:`X-Robots-Tag HTTP header contains "nofollow" - links will not be followed by search engines`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Remove "nofollow" from the X-Robots-Tag header if you want search engines to follow your links.`,data:{value:r}}),n}},sn={meta:{id:`thin-content`,name:`Thin Content`,category:`SEO`,tier:`pro`,description:`Checks that the page has sufficient text content for search engines`},run(e){let{document:t}=e,n=[],r=(t.body?.textContent||``).trim().split(/\s+/).filter(Boolean).length;return r<300&&n.push({ruleId:`thin-content`,ruleName:`Thin Content`,message:`Page has thin content (${r} words) - search engines prefer pages with substantial content (300+ words)`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Add more meaningful text content to the page. Search engines rank pages with substantial, relevant content higher.`,data:{wordCount:r}}),n}},cn={meta:{id:`duplicate-meta`,name:`Duplicate Meta Tags`,category:`SEO`,tier:`pro`,description:`Checks for duplicate title, meta description, and canonical tags`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`title`);r.length>1&&n.push({ruleId:`duplicate-meta`,ruleName:`Duplicate Meta Tags`,message:`Found ${r.length} <title> tags - should have exactly one`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Remove duplicate <title> tags. Keep only one in your <head> element.`,data:{count:r.length,tag:`title`}});let i=t.querySelectorAll(`meta[name="description"]`);i.length>1&&n.push({ruleId:`duplicate-meta`,ruleName:`Duplicate Meta Tags`,message:`Found ${i.length} meta description tags - should have exactly one`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Remove duplicate <meta name="description"> tags. Keep only one in your <head> element.`,data:{count:i.length,tag:`meta-description`}});let a=t.querySelectorAll(`link[rel="canonical"]`);return a.length>1&&n.push({ruleId:`duplicate-meta`,ruleName:`Duplicate Meta Tags`,message:`Found ${a.length} canonical link tags - should have exactly one`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Remove duplicate <link rel="canonical"> tags. Keep only one in your <head> element.`,data:{count:a.length,tag:`canonical`}}),n}},ln={meta:{id:`structured-data`,name:`Structured Data`,category:`SEO`,tier:`pro`,description:`Checks for the presence and validity of JSON-LD structured data`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`script[type="application/ld+json"]`),i=[];return r.forEach(e=>{try{let t=JSON.parse(e.textContent||``);if(Array.isArray(t[`@graph`]))for(let e of t[`@graph`])e[`@type`]&&i.push(e[`@type`]);else t[`@type`]&&i.push(t[`@type`])}catch{n.push({ruleId:`structured-data`,ruleName:`Structured Data`,message:`Invalid JSON-LD structured data found`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Validate your JSON-LD using Google's Rich Results Test tool and fix any JSON syntax errors.`})}}),i.length===0&&n.push({ruleId:`structured-data`,ruleName:`Structured Data`,message:`No structured data (JSON-LD) found`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Add a <script type="application/ld+json"> block with Organization, WebPage, or other relevant schema.org types.`,data:{types:i}}),n}},un={meta:{id:`charset`,name:`Character Encoding`,category:`SEO`,tier:`pro`,description:`Checks for a proper charset/encoding declaration`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[charset]`),i=t.querySelector(`meta[http-equiv="Content-Type"]`);return!r&&!i&&n.push({ruleId:`charset`,ruleName:`Character Encoding`,message:`Missing character encoding declaration - may cause rendering issues with special characters`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add <meta charset="utf-8" /> as the first element in your <head> tag.`}),n}},dn={meta:{id:`image-alt-text`,name:`Image Alt Text`,category:`Accessibility`,tier:`pro`,description:`Checks that all images have alt attributes`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`img`),i=0;return r.forEach(e=>{e.getAttribute(`alt`)??i++}),i>0&&n.push({ruleId:`image-alt-text`,ruleName:`Image Alt Text`,message:`${i} of ${r.length} images missing alt attributes`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Add descriptive alt attributes to all images. Screen readers use alt text to describe images to visually impaired users. Use alt="" for decorative images.`,data:{total:r.length,missingAlt:i}}),n}},fn={meta:{id:`accessibility`,name:`Accessibility & ARIA`,category:`Accessibility`,tier:`pro`,description:`Checks buttons, links, inputs, and ARIA attributes for accessibility`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`button`),i=0;r.forEach(e=>{let t=e.textContent?.trim(),n=e.getAttribute(`aria-label`),r=e.getAttribute(`aria-labelledby`);!t&&!n&&!r&&i++}),i>0&&n.push({ruleId:`accessibility`,ruleName:`Accessibility & ARIA`,message:`${i} button(s) missing accessible name (no text, aria-label, or aria-labelledby)`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Add visible text content, an aria-label, or aria-labelledby attribute to each button.`,data:{inaccessibleButtons:i}});let a=t.querySelectorAll(`a`),o=0;a.forEach(e=>{let t=e.textContent?.trim(),n=e.getAttribute(`aria-label`),r=e.getAttribute(`aria-labelledby`);!t&&!n&&!r&&o++}),o>0&&n.push({ruleId:`accessibility`,ruleName:`Accessibility & ARIA`,message:`${o} link(s) missing accessible name (no text, aria-label, or aria-labelledby)`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Add descriptive text content, an aria-label, or aria-labelledby attribute to each link so screen readers can identify it.`,data:{inaccessibleLinks:o}});let s=t.querySelectorAll(`input:not([type='hidden'])`),c=0;s.forEach(e=>{let n=e.getAttribute(`id`),r=e.getAttribute(`aria-label`),i=e.getAttribute(`aria-labelledby`),a=e.getAttribute(`title`),o=n&&t.querySelector(`label[for="${n}"]`),s=e.closest(`label`)!==null;!o&&!s&&!r&&!i&&!a&&c++}),c>0&&n.push({ruleId:`accessibility`,ruleName:`Accessibility & ARIA`,message:`${c} input(s) missing associated label`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Add a <label for="inputId"> element, or add an aria-label attribute to each input.`,data:{unlabeledInputs:c}});let l=t.querySelectorAll(`div[onclick], span[onclick]`),u=0;l.forEach(e=>{e.getAttribute(`role`)||u++}),u>0&&n.push({ruleId:`accessibility`,ruleName:`Accessibility & ARIA`,message:`${u} interactive div/span element(s) missing role attribute`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Use a <button> element instead, or add role="button" and an aria-label to interactive elements.`,data:{missingRoles:u}});let d=t.querySelectorAll(`nav, [role="navigation"]`),f=0;return d.forEach(e=>{let t=e.getAttribute(`aria-label`),n=e.getAttribute(`aria-labelledby`);!t&&!n&&f++}),f>0&&n.push({ruleId:`accessibility`,ruleName:`Accessibility & ARIA`,message:`${f} navigation element(s) missing aria-label or aria-labelledby`,severity:`INFO`,category:`Accessibility`,tier:`pro`,fix:`Add aria-label="Main navigation" (or similar descriptive label) to your <nav> elements.`,data:{unlabeledNav:f}}),n}},pn={meta:{id:`semantic-structure`,name:`Semantic Structure`,category:`Accessibility`,tier:`pro`,description:`Checks for proper semantic HTML: landmarks, lists, tables, articles`},run(e){let{document:t}=e,n=[];t.querySelector(`main`)||n.push({ruleId:`semantic-structure`,ruleName:`Semantic Structure`,message:`Missing <main> element - should wrap primary page content for better structure`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Wrap your primary page content in a <main> element. There should be exactly one per page.`}),t.querySelectorAll(`main, section, article, aside, nav`).length===0&&n.push({ruleId:`semantic-structure`,ruleName:`Semantic Structure`,message:`Missing semantic page regions - use <main>, <section>, <article>, <nav>, <aside> instead of generic divs`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Replace generic <div> containers with semantic elements: <main>, <nav>, <section>, <article>, <aside>.`});let r=t.querySelectorAll(`li`),i=0;r.forEach(e=>{let t=e.parentElement;t?.tagName!==`UL`&&t?.tagName!==`OL`&&i++}),i>0&&n.push({ruleId:`semantic-structure`,ruleName:`Semantic Structure`,message:`${i} <li> element(s) found outside of <ul> or <ol> - breaks semantic structure`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Wrap <li> elements inside a <ul> (unordered) or <ol> (ordered) list element.`,data:{orphanedLi:i}});let a=t.querySelectorAll(`table`),o=0;a.forEach(e=>{e.querySelector(`th`)||o++}),o>0&&n.push({ruleId:`semantic-structure`,ruleName:`Semantic Structure`,message:`${o} table(s) missing <th> header cells`,severity:`INFO`,category:`Accessibility`,tier:`pro`,fix:`Add <th> cells to define table column or row headers. Optionally wrap them in a <thead> element for additional structure.`,data:{tablesWithoutHeaders:o}});let s=t.querySelectorAll(`article`),c=0;return s.forEach(e=>{e.querySelector(`h1, h2, h3, h4, h5, h6`)||c++}),c>0&&n.push({ruleId:`semantic-structure`,ruleName:`Semantic Structure`,message:`${c} <article> element(s) without a heading`,severity:`INFO`,category:`Accessibility`,tier:`pro`,fix:`Add a heading (h2-h6) inside each <article> element to provide context.`,data:{articlesWithoutHeading:c}}),n}},mn={meta:{id:`performance`,name:`Performance Hints`,category:`Performance`,tier:`pro`,description:`Checks for inline styles, lazy loading, and script count`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`img`),i=Array.from(r).slice(3),a=0;i.forEach(e=>{e.getAttribute(`loading`)||a++}),a>0&&n.push({ruleId:`performance`,ruleName:`Performance Hints`,message:`${a} below-the-fold image(s) without loading="lazy" - add lazy loading to defer offscreen images`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Add loading="lazy" to images below the fold. Do NOT add loading="lazy" to above-the-fold or LCP images - this hurts performance (per web.dev).`,data:{noLazyLoad:a,totalImages:r.length}});let o=t.querySelectorAll(`script[src]`);return o.length>10&&n.push({ruleId:`performance`,ruleName:`Performance Hints`,message:`Consider reducing external scripts (${o.length} found) for better performance`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Audit your scripts and remove unused ones. Consider bundling or deferring non-critical scripts.`,data:{scriptCount:o.length}}),n}},hn={meta:{id:`image-dimensions`,name:`Image Dimensions`,category:`Performance`,tier:`pro`,description:`Checks that images have explicit width and height to prevent layout shift (CLS)`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`img`),i=0;return r.forEach(e=>{let t=e.getAttribute(`width`),n=e.getAttribute(`height`);(!t||!n)&&i++}),i>0&&n.push({ruleId:`image-dimensions`,ruleName:`Image Dimensions`,message:`${i} image${i===1?``:`s`} missing explicit width/height attributes - causes layout shift (CLS)`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Add width and height attributes to <img> tags to reserve space and prevent layout shift.`,data:{missingCount:i,totalImages:r.length}}),n}},gn={meta:{id:`ttfb-pro`,name:`Time to First Byte (Pro)`,category:`Performance`,tier:`pro`,description:`Measures server response time (TTFB) with detailed thresholds`},async run(e){let t=[];try{let n=Date.now();await Et(e,{headers:{"User-Agent":`LintPage-Bot/1.0`}});let r=Date.now()-n;r>1800?t.push({ruleId:`ttfb-pro`,ruleName:`Time to First Byte (Pro)`,message:`Slow server response time (TTFB: ${r}ms) - aim for under 800ms`,severity:`WARNING`,category:`Performance`,tier:`pro`,fix:`Optimize server response time: enable caching, use a CDN, optimize database queries, or upgrade hosting.`,data:{ms:r}}):r>800&&t.push({ruleId:`ttfb-pro`,ruleName:`Time to First Byte (Pro)`,message:`Server response time could be improved (TTFB: ${r}ms) - aim for under 800ms`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Consider enabling server-side caching or using a CDN to reduce response time.`,data:{ms:r}})}catch{t.push({ruleId:`ttfb-pro`,ruleName:`Time to First Byte (Pro)`,message:`Could not measure TTFB - server may be unreachable`,severity:`WARNING`,category:`Performance`,tier:`pro`,fix:`Ensure your server is accessible and responding to requests.`})}return t}},_n={meta:{id:`mixed-content`,name:`Mixed Content`,category:`Pre-Launch`,tier:`pro`,description:`Checks for HTTP resources loaded on an HTTPS page (mixed content)`},run(e){let{document:t,isHttps:n}=e,r=[];if(!n)return r;let i=[`img[src^="http:"]`,`script[src^="http:"]`,`link[href^="http:"]`,`iframe[src^="http:"]`,`video[src^="http:"]`,`audio[src^="http:"]`,`object[data^="http:"]`,`source[src^="http:"]`],a=0;return i.forEach(e=>{a+=t.querySelectorAll(e).length}),a>0&&r.push({ruleId:`mixed-content`,ruleName:`Mixed Content`,message:`Found ${a} mixed content resource${a===1?``:`s`} (HTTP on HTTPS page) - browsers may block these`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Change all resource URLs from http:// to https:// or use protocol-relative URLs (//).`,data:{count:a}}),r}},vn={meta:{id:`security-headers`,name:`Security Headers`,category:`Pre-Launch`,tier:`pro`,description:`Checks for important security headers (CSP, HSTS, X-Content-Type-Options, Permissions-Policy)`},run(e){let{response:t}=e,n=[],r=[{name:`content-security-policy`,label:`Content-Security-Policy`},{name:`strict-transport-security`,label:`Strict-Transport-Security (HSTS)`},{name:`x-content-type-options`,label:`X-Content-Type-Options`},{name:`permissions-policy`,label:`Permissions-Policy`}],i=[];return r.forEach(({name:e,label:n})=>{t.headers.get(e)||i.push(n)}),i.length>0&&n.push({ruleId:`security-headers`,ruleName:`Security Headers`,message:`Missing security headers: ${i.join(`, `)}`,severity:`INFO`,category:`Pre-Launch`,tier:`pro`,fix:`Configure your server or hosting provider to send these security headers. Most can be set in next.config.js headers() or your CDN settings.`,data:{missing:i}}),n}},yn={meta:{id:`og-image-size`,name:`OG Image Size`,category:`SEO`,tier:`pro`,description:`Checks that the og:image URL exists and advises on recommended dimensions (1200x630)`},run(e){let{document:t}=e,n=[];if(!t.querySelector(`meta[property="og:image"]`)?.getAttribute(`content`)?.trim())return n;let r=t.querySelector(`meta[property="og:image:width"]`),i=t.querySelector(`meta[property="og:image:height"]`),a=Number.parseInt(r?.getAttribute(`content`)||``,10),o=Number.parseInt(i?.getAttribute(`content`)||``,10);return!r||!i||Number.isNaN(a)||Number.isNaN(o)?(n.push({ruleId:`og-image-size`,ruleName:`OG Image Size`,message:`Missing og:image:width and og:image:height meta tags - social platforms may crop your image incorrectly`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add <meta property="og:image:width" content="1200" /> and <meta property="og:image:height" content="630" /> to your <head>.`}),n):((a<1200||o<630)&&n.push({ruleId:`og-image-size`,ruleName:`OG Image Size`,message:`OG image dimensions (${a}x${o}) are below recommended 1200x630 - may appear blurry on social platforms`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Use an image at least 1200x630 pixels for best display on Facebook, LinkedIn, and other social platforms.`,data:{width:a,height:o}}),n)}},bn=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]),xn=new Set([`.jpg`,`.jpeg`,`.png`,`.gif`,`.webp`]),Sn={meta:{id:`og-image-type`,name:`OG Image Type`,category:`SEO`,tier:`pro`,description:`Checks that the og:image type is a widely-supported format (JPEG, PNG, GIF, WebP)`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[property="og:image"]`)?.getAttribute(`content`)?.trim();if(!r)return n;let i=t.querySelector(`meta[property="og:image:type"]`)?.getAttribute(`content`)?.trim();if(i&&!bn.has(i.toLowerCase()))return n.push({ruleId:`og-image-type`,ruleName:`OG Image Type`,message:`OG image type "${i}" may not be supported by all social platforms`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Use JPEG or PNG for og:image. These formats are supported by all social platforms.`,data:{type:i}}),n;if(!i)try{let e=new URL(r,`https://example.com`),t=e.pathname.substring(e.pathname.lastIndexOf(`.`)).toLowerCase();t&&!xn.has(t)&&n.push({ruleId:`og-image-type`,ruleName:`OG Image Type`,message:`OG image URL has extension "${t}" which may not be supported by all social platforms`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Use JPEG or PNG for og:image, and add <meta property="og:image:type" content="image/jpeg" /> to your <head>.`,data:{extension:t}})}catch{}return n}},Cn={meta:{id:`twitter-image`,name:`Twitter/X Image`,category:`SEO`,tier:`pro`,description:`Checks for twitter:image meta tag for rich card previews on X/Twitter`},run(e){let{document:t}=e,n=[];if(!t.querySelector(`meta[name="twitter:card"]`))return n;let r=t.querySelector(`meta[name="twitter:image"]`),i=t.querySelector(`meta[property="og:image"]`);return!r&&!i?n.push({ruleId:`twitter-image`,ruleName:`Twitter/X Image`,message:`Twitter card present but no twitter:image or og:image found - tweets will have no image preview`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add <meta name="twitter:image" content="https://yoursite.com/image.png" /> to your <head>.`}):!r&&i&&n.push({ruleId:`twitter-image`,ruleName:`Twitter/X Image`,message:`No explicit twitter:image - falling back to og:image. Consider adding twitter:image for optimal display.`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Add <meta name="twitter:image" content="..." /> for more control over how your image appears on X/Twitter.`}),n}},wn={meta:{id:`social-preview-render`,name:`Social Preview Completeness`,category:`SEO`,tier:`pro`,description:`Checks that all essential meta tags for social sharing previews are present and consistent`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[property="og:title"]`)?.getAttribute(`content`),i=t.querySelector(`meta[property="og:description"]`)?.getAttribute(`content`),a=t.querySelector(`meta[property="og:image"]`)?.getAttribute(`content`),o=t.querySelector(`meta[property="og:url"]`)?.getAttribute(`content`),s=t.querySelector(`meta[property="og:type"]`)?.getAttribute(`content`),c=t.querySelector(`title`)?.textContent?.trim();return t.querySelector(`meta[name="description"]`)?.getAttribute(`content`),s||n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`Missing og:type meta tag - required by the Open Graph protocol and needed for correct social preview rendering`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add <meta property="og:type" content="website" /> (or "article" for blog posts) to your <head>. This is a required property per the Open Graph protocol.`}),a&&a.trim()&&(t.querySelector(`meta[property="og:image:alt"]`)?.getAttribute(`content`)||n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`Missing og:image:alt - the Open Graph protocol recommends providing alt text when og:image is set`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Add <meta property="og:image:alt" content="Description of the image" /> to your <head> for accessibility.`})),r&&c&&r.length>0&&c.length>0&&r.length>60&&n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`og:title is ${r.length} characters - may be truncated on social platforms (recommended: 50-60)`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Keep og:title under 60 characters for best display on social platforms.`,data:{ogTitleLength:r.length}}),i&&i.length>200&&n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`og:description is ${i.length} characters - may be truncated on social platforms (recommended: under 200)`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Keep og:description under 200 characters for best display on social platforms.`,data:{ogDescLength:i.length}}),o&&!o.startsWith(`http`)&&n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`og:url should be an absolute URL starting with https://`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Change og:url to an absolute URL (e.g., https://yoursite.com/page).`}),a&&!a.startsWith(`http`)&&n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`og:image should be an absolute URL starting with https://`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Change og:image to an absolute URL (e.g., https://yoursite.com/image.png).`}),n}},Tn={meta:{id:`title-keyword-stuffing`,name:`Title Keyword Stuffing`,category:`SEO`,tier:`pro`,description:`Detects potential keyword stuffing in the page title`},run(e){let{document:t}=e,n=[],r=t.querySelector(`title`)?.textContent?.trim();if(!r)return n;let i=r.toLowerCase().split(/[\s\-|:,]+/).filter(e=>e.length>3),a=new Map;for(let e of i)a.set(e,(a.get(e)||0)+1);let o=[];for(let[e,t]of a)t>=3&&o.push(`"${e}" (${t}x)`);o.length>0&&n.push({ruleId:`title-keyword-stuffing`,ruleName:`Title Keyword Stuffing`,message:`Potential keyword stuffing in title: ${o.join(`, `)}`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Write a natural, readable title. Avoid repeating the same keyword more than twice. Search engines may penalize keyword stuffing.`,data:{title:r,stuffedWords:o}});let s=(r.match(/[|–—]/g)||[]).length;return s>=3&&n.push({ruleId:`title-keyword-stuffing`,ruleName:`Title Keyword Stuffing`,message:`Title has ${s} separators - may appear spammy to search engines`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Simplify your title. Use at most one separator (|, – or —) to separate the page name from your brand.`,data:{separatorCount:s}}),n}},En={meta:{id:`content-to-html-ratio`,name:`Content-to-HTML Ratio`,category:`SEO`,tier:`pro`,description:`Checks the ratio of visible text to total HTML markup`},run(e){let{document:t}=e,n=[],r=t.documentElement?.outerHTML?.length||0;if(r===0)return n;let i=(t.body?.textContent||``).replace(/\s+/g,` `).trim().length,a=Math.round(i/r*100);return a<10?n.push({ruleId:`content-to-html-ratio`,ruleName:`Content-to-HTML Ratio`,message:`Low content-to-HTML ratio (${a}%) - may indicate excessive markup or thin content`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Increase meaningful text content or reduce unnecessary HTML markup. Note: content-to-HTML ratio is not a direct ranking factor per Google, but correlates with page speed and code quality.`,data:{ratio:a,textLength:i,htmlLength:r}}):a<20&&n.push({ruleId:`content-to-html-ratio`,ruleName:`Content-to-HTML Ratio`,message:`Content-to-HTML ratio is ${a}% - could be improved (aim for 25%+)`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Consider adding more text content or reducing unnecessary HTML markup to improve the ratio.`,data:{ratio:a,textLength:i,htmlLength:r}}),n}},Dn={meta:{id:`title-uniqueness`,name:`Title Uniqueness`,category:`SEO`,tier:`pro`,description:`Flags titles that appear generic or auto-generated (single-page heuristic)`},run(e){let{document:t,url:n}=e,r=[],i=t.querySelector(`title`)?.textContent?.trim();if(!i)return r;for(let e of[/^home$/i,/^untitled/i,/^page \d+$/i,/^welcome$/i,/^index$/i,/^document$/i,/^my site$/i,/^my website$/i,/^website$/i,/^new page$/i])if(e.test(i)){r.push({ruleId:`title-uniqueness`,ruleName:`Title Uniqueness`,message:`Title "${i}" appears to be a generic/default title - use a unique, descriptive title`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Write a unique, descriptive title for each page that includes your target keyword.`,data:{title:i}});break}try{let e=new URL(n).hostname.replace(`www.`,``),t=e.split(`.`)[0];t&&i.toLowerCase()===t.toLowerCase()&&r.push({ruleId:`title-uniqueness`,ruleName:`Title Uniqueness`,message:`Title is just the domain name - add a descriptive page-specific title`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Include a page-specific description in your title, e.g., "Product Name — Your Brand".`,data:{title:i,hostname:e}})}catch{}return r}},On={meta:{id:`description-uniqueness`,name:`Description Uniqueness`,category:`SEO`,tier:`pro`,description:`Flags meta descriptions that appear generic or auto-generated (single-page heuristic)`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[name="description"]`)?.getAttribute(`content`)?.trim();if(!r)return n;for(let e of[/^welcome to/i,/^this is a website/i,/^a website about/i,/^home page/i,/^we are a company/i,/^default description/i])if(e.test(r)){n.push({ruleId:`description-uniqueness`,ruleName:`Description Uniqueness`,message:`Meta description appears generic - write a unique, compelling description for this page`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Write a unique meta description for each page that summarizes the specific content and includes a call to action.`,data:{description:r}});break}let i=t.querySelector(`title`)?.textContent?.trim();return i&&r.toLowerCase()===i.toLowerCase()&&n.push({ruleId:`description-uniqueness`,ruleName:`Description Uniqueness`,message:`Meta description is identical to the title - they should be different and complementary`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Write a meta description that expands on your title with more detail, a value proposition, or a call to action.`,data:{description:r,title:i}}),n}},kn={Organization:[`name`,`url`],WebSite:[`name`,`url`],WebPage:[`name`],BreadcrumbList:[`itemListElement`],LocalBusiness:[`name`,`address`]},An={Article:[`headline`,`author`,`datePublished`],Product:[`name`,`image`,`offers`]};function jn(e){return typeof e==`string`?[e]:Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function Mn(e,t,n){let r=jn(e[`@type`]);if(r.length===0){n.push({ruleId:`structured-data-validate`,ruleName:`Structured Data Validation`,message:`JSON-LD block missing @type property`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add an @type property (e.g., "Organization", "WebPage", "Article") to your JSON-LD.`});return}let i=r.join(`, `);e[`@context`]||t||n.push({ruleId:`structured-data-validate`,ruleName:`Structured Data Validation`,message:`JSON-LD "${i}" missing @context - should be "https://schema.org"`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add "@context": "https://schema.org" to your JSON-LD block.`,data:{type:i}});for(let t of r){let r=kn[t];if(r){let i=r.filter(t=>!e[t]);i.length>0&&n.push({ruleId:`structured-data-validate`,ruleName:`Structured Data Validation`,message:`JSON-LD "${t}" missing required fields: ${i.join(`, `)}`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add the missing fields to your ${t} schema: ${i.join(`, `)}.`,data:{type:t,missing:i}})}let i=An[t];if(i){let r=i.filter(t=>!e[t]);r.length>0&&n.push({ruleId:`structured-data-validate`,ruleName:`Structured Data Validation`,message:`JSON-LD "${t}" missing recommended fields: ${r.join(`, `)}`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Add the recommended fields to your ${t} schema for richer search results: ${r.join(`, `)}.`,data:{type:t,missing:r}})}}r.includes(`FAQPage`)&&n.push({ruleId:`structured-data-validate`,ruleName:`Structured Data Validation`,message:`FAQPage rich results are only shown for well-known, authoritative government and health websites. For all other sites, this rich result will no longer be shown regularly`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`You can keep or remove this markup. Unused structured data does not cause problems for Search, but it also has no visible effects in Google Search. Consider using other structured data types that still produce rich results for your site type.`,data:{type:`FAQPage`}})}var Nn={meta:{id:`structured-data-validate`,name:`Structured Data Validation`,category:`SEO`,tier:`pro`,description:`Validates JSON-LD structured data for required fields based on schema type`},run(e){let{document:t}=e,n=[];return t.querySelectorAll(`script[type="application/ld+json"]`).forEach(e=>{let t;try{t=JSON.parse(e.textContent||``)}catch{return}if(Array.isArray(t[`@graph`])){let e=t[`@context`];for(let r of t[`@graph`])Mn(r,e,n);return}Mn(t,void 0,n)}),n}},Pn={meta:{id:`hreflang`,name:`Hreflang Tags`,category:`SEO`,tier:`pro`,description:`Validates hreflang tags for multi-language pages`},run(e){let{document:t,url:n}=e,r=[],i=t.querySelectorAll(`link[rel="alternate"][hreflang]`);if(i.length===0)return r;Array.from(i).some(e=>e.getAttribute(`hreflang`)===`x-default`)||r.push({ruleId:`hreflang`,ruleName:`Hreflang Tags`,message:`Hreflang tags found but missing x-default - add a fallback for unmatched languages`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add <link rel="alternate" hreflang="x-default" href="..." /> to specify the default/fallback page.`}),Array.from(i).some(e=>{let t=e.getAttribute(`href`);return t===n||t===n.replace(/\/$/,``)})||r.push({ruleId:`hreflang`,ruleName:`Hreflang Tags`,message:`Hreflang tags do not include a self-referencing tag for the current page`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add a hreflang tag that points to the current page URL with the appropriate language code.`});let a=/^[a-z]{2}(-[A-Z]{2})?$/;return i.forEach(e=>{let t=e.getAttribute(`hreflang`);t&&t!==`x-default`&&!a.test(t)&&r.push({ruleId:`hreflang`,ruleName:`Hreflang Tags`,message:`Invalid hreflang language code "${t}" - use ISO 639-1 format (e.g., "en", "en-US")`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Change "${t}" to a valid ISO 639-1 language code (e.g., "en", "fr", "de-AT").`,data:{invalidLang:t}});let n=e.getAttribute(`href`);n&&!n.startsWith(`http`)&&r.push({ruleId:`hreflang`,ruleName:`Hreflang Tags`,message:`Hreflang href should be an absolute URL (found: "${n}")`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Use absolute URLs (starting with https://) for all hreflang href attributes.`})}),r}},Fn={meta:{id:`canonical-self-referencing`,name:`Canonical Self-Referencing`,category:`SEO`,tier:`pro`,description:`Checks that the canonical URL points to the current page (self-referencing canonical)`},run(e){let{document:t,url:n}=e,r=[],i=t.querySelector(`link[rel="canonical"]`);if(!i)return r;let a=i.getAttribute(`href`)?.trim();if(!a)return r;let o=e=>{try{return new URL(e).href.replace(/\/$/,``)}catch{return e.replace(/\/$/,``)}};try{let e=new URL(a,n).href;o(e)!==o(n)&&(new URL(e).hostname===new URL(n).hostname?r.push({ruleId:`canonical-self-referencing`,ruleName:`Canonical Self-Referencing`,message:`Canonical URL points to a different page on the same site - this tells search engines to index "${e}" instead of this page`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`If this page should be indexed, change the canonical to point to itself. If this is intentional (e.g., pagination), you can ignore this.`,data:{canonical:e,pageUrl:n}}):r.push({ruleId:`canonical-self-referencing`,ruleName:`Canonical Self-Referencing`,message:`Canonical URL points to a different domain ("${new URL(e).hostname}") - this is unusual and may be a misconfiguration`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Cross-domain canonical tags are rarely correct. Verify this is intentional, otherwise change the canonical to point to this page.`,data:{canonical:e,pageUrl:n}}))}catch{r.push({ruleId:`canonical-self-referencing`,ruleName:`Canonical Self-Referencing`,message:`Cannot parse canonical URL "${a}" - ensure it's a valid absolute URL`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Use a valid absolute URL for your canonical tag (e.g., https://yoursite.com/page).`})}return r}},In={meta:{id:`meta-render-blocking`,name:`Render-Blocking Resources`,category:`Performance`,tier:`pro`,description:`Checks for render-blocking stylesheets and synchronous scripts in the <head>`},run(e){let{document:t}=e,n=[],r=t.querySelector(`head`);if(!r)return n;let i=r.querySelectorAll(`script[src]`),a=0;i.forEach(e=>{let t=e.hasAttribute(`async`),n=e.hasAttribute(`defer`),r=e.getAttribute(`type`);!t&&!n&&r!==`module`&&a++}),a>0&&n.push({ruleId:`meta-render-blocking`,ruleName:`Render-Blocking Resources`,message:`${a} synchronous script(s) in <head> may block page rendering`,severity:`WARNING`,category:`Performance`,tier:`pro`,fix:`Add async or defer attributes to non-critical scripts in the <head>, or move them to the end of <body>.`,data:{blockingScripts:a}});let o=r.querySelectorAll(`link[rel="stylesheet"]`),s=0;return o.forEach(e=>{let t=e.getAttribute(`media`);(!t||t===`all`)&&s++}),s>3&&n.push({ruleId:`meta-render-blocking`,ruleName:`Render-Blocking Resources`,message:`${s} render-blocking stylesheets in <head> - consider inlining critical CSS`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Inline critical CSS and load non-critical stylesheets asynchronously using media="print" with an onload handler.`,data:{blockingStylesheets:s}}),n}},Ln={meta:{id:`lazy-load-lcp`,name:`Lazy Load LCP`,category:`Performance`,tier:`pro`,description:`Checks that above-the-fold images (likely LCP candidates) are not lazy-loaded`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`img`),i=Array.from(r).slice(0,3);for(let e of i){let t=e.getAttribute(`loading`),r=e.getAttribute(`fetchpriority`);if(t===`lazy`){let t=e.getAttribute(`src`)||``,r=e.getAttribute(`alt`)||``,i=r?`"${r.substring(0,40)}"`:t?`src="${t.substring(0,50)}"`:`first image`;n.push({ruleId:`lazy-load-lcp`,ruleName:`Lazy Load LCP`,message:`Above-the-fold image (${i}) has loading="lazy" - this delays the Largest Contentful Paint`,severity:`WARNING`,category:`Performance`,tier:`pro`,fix:`Remove loading="lazy" from above-the-fold images. Add fetchpriority="high" to the LCP image instead.`});break}if(!r&&!t){n.push({ruleId:`lazy-load-lcp`,ruleName:`Lazy Load LCP`,message:`Consider adding fetchpriority="high" to your hero/banner image to improve Largest Contentful Paint`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Add fetchpriority="high" to the most important above-the-fold image to prioritize its loading.`});break}}return n}},Rn={meta:{id:`https-links`,name:`HTTPS Links`,category:`Pre-Launch`,tier:`pro`,description:`Checks that internal links use HTTPS instead of HTTP`},run(e){let{document:t,url:n}=e,r=[],i;try{i=new URL(n).hostname}catch{return r}let a=t.querySelectorAll(`a[href^="http:"]`),o=0,s=0;return a.forEach(e=>{let t=e.getAttribute(`href`);if(t)try{new URL(t).hostname===i?o++:s++}catch{}}),o>0&&r.push({ruleId:`https-links`,ruleName:`HTTPS Links`,message:`${o} internal link(s) use HTTP instead of HTTPS`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Change all internal links from http:// to https:// to avoid redirect chains and mixed content warnings.`,data:{internalHttpLinks:o}}),s>0&&r.push({ruleId:`https-links`,ruleName:`HTTPS Links`,message:`${s} external link(s) use HTTP - consider updating to HTTPS where available`,severity:`INFO`,category:`Pre-Launch`,tier:`pro`,fix:`Update external links to use https:// where the destination supports it.`,data:{externalHttpLinks:s}}),r}},zn={meta:{id:`meta-refresh-redirect`,name:`Meta Refresh Redirect`,category:`SEO`,tier:`pro`,description:`Checks for <meta http-equiv="refresh"> redirects which are bad for SEO`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[http-equiv="refresh"]`);if(!r)return n;let i=r.getAttribute(`content`)||``,a=i.toLowerCase().includes(`url=`),o=Number.parseInt(i.split(`;`)[0]||``,10);return a?n.push({ruleId:`meta-refresh-redirect`,ruleName:`Meta Refresh Redirect`,message:`Page uses a meta refresh redirect${Number.isNaN(o)?``:` (${o}s delay)`} - use server-side 301 redirects instead`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Replace <meta http-equiv="refresh"> with a server-side 301 redirect. Meta refreshes are bad for SEO and user experience.`,data:{content:i,delay:Number.isNaN(o)?void 0:o}}):!Number.isNaN(o)&&o>0&&n.push({ruleId:`meta-refresh-redirect`,ruleName:`Meta Refresh Redirect`,message:`Page auto-refreshes every ${o} seconds - this may cause usability issues`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Consider removing the auto-refresh meta tag unless it serves a clear user need.`,data:{content:i,delay:o}}),n}},Bn={meta:{id:`nofollow-audit`,name:`Nofollow Audit`,category:`SEO`,tier:`pro`,description:`Audits the use of rel="nofollow" on internal vs. external links`},run(e){let{document:t,url:n}=e,r=[],i;try{i=new URL(n).hostname}catch{return r}let a=t.querySelectorAll(`a[rel~="nofollow"]`),o=0;return a.forEach(e=>{let t=e.getAttribute(`href`);if(t)try{new URL(t,n).hostname===i&&o++}catch{(t.startsWith(`/`)||t.startsWith(`.`))&&o++}}),o>0&&r.push({ruleId:`nofollow-audit`,ruleName:`Nofollow Audit`,message:`${o} internal link(s) have rel="nofollow" - this wastes PageRank and hurts internal linking`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Remove rel="nofollow" from internal links. Nofollow should only be used for external links you do not want to endorse (e.g., user-generated content, sponsored links).`,data:{internalNofollow:o,totalNofollow:a.length}}),r}},Vn={meta:{id:`cors-policy`,name:`CORS Policy`,category:`Pre-Launch`,tier:`pro`,description:`Checks for overly permissive CORS configuration that could allow unauthorized cross-origin access`},async run(e){let t=[],n=`https://evil.example.com`;try{let r=await Et(e,{method:`GET`,headers:{"User-Agent":`LintPage-Bot/1.0`,Origin:n},redirect:`follow`}),i=r.headers.get(`access-control-allow-origin`),a=r.headers.get(`access-control-allow-credentials`);if(!i)return t;i===`*`?a?.toLowerCase()===`true`?t.push({ruleId:`cors-policy`,ruleName:`CORS Policy`,message:`CORS allows all origins with credentials enabled - this is a security vulnerability`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`pro`,fix:`Set Access-Control-Allow-Origin to your specific trusted domains instead of "*". Wildcard with credentials is blocked by browsers but indicates a dangerous misconfiguration.`}):t.push({ruleId:`cors-policy`,ruleName:`CORS Policy`,message:`CORS allows all origins (Access-Control-Allow-Origin: *) - restrict to trusted domains in production. Note: some hosting platforms (e.g. Vercel, Netlify, Cloudflare Pages) add this header by default, even if you haven't configured it.`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`If you set this header yourself, configure Access-Control-Allow-Origin to only allow requests from your trusted domains (e.g., "https://myapp.com") instead of using the wildcard "*". If your hosting platform adds it automatically, check their documentation for how to override or restrict CORS headers.`}):i.toLowerCase()===n&&(a?.toLowerCase()===`true`?t.push({ruleId:`cors-policy`,ruleName:`CORS Policy`,message:`CORS reflects any origin with credentials enabled - any website can make authenticated cross-origin requests and read responses. This is the most exploitable CORS misconfiguration.`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`pro`,fix:`Configure your server to validate the Origin header against a strict allowlist of trusted domains. Never reflect arbitrary origins when credentials are enabled.`}):t.push({ruleId:`cors-policy`,ruleName:`CORS Policy`,message:`CORS reflects any origin back in Access-Control-Allow-Origin - this is equivalent to a wildcard and allows any site to make cross-origin requests. Note: this may be caused by your hosting platform or a reverse proxy, not your own configuration.`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`If you set this header yourself, configure your server to validate the Origin header against an allowlist of trusted domains instead of reflecting it back. If your hosting platform adds it automatically, check their documentation for how to override or restrict CORS headers.`}))}catch{}return t}},Hn=1e4,Un={meta:{id:`broken-internal-links`,name:`Broken Internal Links`,category:`SEO`,tier:`pro`,description:`Checks that internal links on the page resolve successfully (no 404s or server errors)`},async run(e){let{document:t,url:n}=e,r=[],i;try{i=new URL(n)}catch{return r}let a=new Set,o=[],s=t.querySelectorAll(`a[href]`);for(let e of s){let t=e.getAttribute(`href`);if(!t||t.startsWith(`#`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`javascript:`)||t.startsWith(`data:`))continue;let r;try{r=new URL(t,n)}catch{continue}if(r.hostname!==i.hostname)continue;r.hash=``;let s=r.toString();if(a.has(s))continue;a.add(s);let c=new URL(n);c.hash=``,s!==c.toString()&&o.push(s)}if(o.length===0)return r;let c=o.slice(0,50),l=[],u=[],d=async e=>{try{let t=await Et(e,{method:`HEAD`,headers:{"User-Agent":`LintPage-Bot/1.0`},redirect:`follow`,signal:AbortSignal.timeout(Hn)});if(t.status===405){let t=await Et(e,{method:`GET`,headers:{"User-Agent":`LintPage-Bot/1.0`},redirect:`follow`,signal:AbortSignal.timeout(Hn)});t.status>=400&&l.push({url:e,status:t.status});return}t.status>=400&&l.push({url:e,status:t.status})}catch{u.push(e)}};for(let e=0;e<c.length;e+=10){let t=c.slice(e,e+10);await Promise.all(t.map(d))}if(l.length>0){let e=l.filter(e=>e.status===404),t=l.filter(e=>e.status>=500),n=l.filter(e=>e.status!==404&&e.status<500);e.length>0&&r.push({ruleId:`broken-internal-links`,ruleName:`Broken Internal Links`,message:`${e.length} internal link(s) return 404 Not Found: ${e.map(e=>e.url).join(`, `)}`,severity:`CRITICAL`,category:`SEO`,tier:`pro`,fix:`Remove or update the broken links to point to valid pages. Broken internal links hurt SEO and user experience.`,data:{notFoundLinks:e}}),t.length>0&&r.push({ruleId:`broken-internal-links`,ruleName:`Broken Internal Links`,message:`${t.length} internal link(s) return server errors: ${t.map(e=>`${e.url} (${e.status})`).join(`, `)}`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Investigate server errors on the linked pages. These may indicate temporary issues or misconfigured routes.`,data:{serverErrorLinks:t}}),n.length>0&&r.push({ruleId:`broken-internal-links`,ruleName:`Broken Internal Links`,message:`${n.length} internal link(s) return client errors: ${n.map(e=>`${e.url} (${e.status})`).join(`, `)}`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Check the linked pages for access issues (e.g., 401/403 may indicate authentication or permission problems).`,data:{clientErrorLinks:n}})}return u.length>0&&r.push({ruleId:`broken-internal-links`,ruleName:`Broken Internal Links`,message:`${u.length} internal link(s) could not be reached: ${u.join(`, `)}`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`These links timed out or had network errors during the check. Verify they are accessible.`,data:{unreachableLinks:u}}),o.length>50&&r.push({ruleId:`broken-internal-links`,ruleName:`Broken Internal Links`,message:`Only checked 50 of ${o.length} internal links. Consider reducing the number of links on this page.`,severity:`INFO`,category:`SEO`,tier:`pro`,data:{totalLinks:o.length,checkedLinks:50}}),r}},Wn=`https://developers.openai.com/api/docs/bots`,Gn=`https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler`,Kn=`https://docs.perplexity.ai/docs/resources/perplexity-crawlers`,qn=`https://developers.facebook.com/docs/sharing/webmasters/web-crawlers/`,Jn=`https://developer.amazon.com/amazonbot`,Yn=`https://docs.mistral.ai/robots`,Xn=[{token:`GPTBot`,operator:`OpenAI`,kind:`training`,purpose:`Crawls content for training generative AI foundation models.`,blockingCost:`Your content is excluded from future model training. Live ChatGPT answers are unaffected.`,robots:`documented`,robotsNote:`Disallowing GPTBot "indicates a site's content should not be used in training".`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot`,userAgentSource:`example`,docsUrl:Wn,ipRangesUrl:`https://openai.com/gptbot.json`,verifiedOn:`2026-09-16`,inChecker:!0},{token:`OAI-SearchBot`,operator:`OpenAI`,kind:`search`,purpose:`Builds the search index behind ChatGPT search.`,blockingCost:`You "will not be shown in ChatGPT search answers, though can still appear as navigational links".`,robots:`documented`,userAgent:`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot`,userAgentSource:`example`,docsUrl:Wn,ipRangesUrl:`https://openai.com/searchbot.json`,verifiedOn:`2026-09-16`,inChecker:!0,notes:`When fetching robots.txt itself OpenAI inserts a "robots.txt;" marker into the string.`},{token:`ChatGPT-User`,operator:`OpenAI`,kind:`retrieval`,purpose:`Fetches a page on demand when a ChatGPT user, Custom GPT or GPT Action asks for it.`,blockingCost:`ChatGPT cannot retrieve your page to answer a question about it. This is the expensive one.`,robots:`bypasses`,robotsNote:`"Because these actions are initiated by a user, robots.txt rules may not apply."`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot`,userAgentSource:`documented`,docsUrl:Wn,ipRangesUrl:`https://openai.com/chatgpt-user.json`,verifiedOn:`2026-09-16`,inChecker:!0,notes:`The self-link in the string is +https://openai.com/bot, not /chatgpt-user.`},{token:`OAI-AdsBot`,operator:`OpenAI`,kind:`ads`,purpose:`Validates advertising landing pages. "Only visits pages submitted as ads"; the data is not used for training.`,blockingCost:`Ad landing pages you submit cannot be validated. No effect on organic AI visibility.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-AdsBot/1.0; +https://openai.com/adsbot`,userAgentSource:`documented`,docsUrl:Wn,ipRangesUrl:`https://openai.com/adsbot.json`,verifiedOn:`2026-09-16`},{token:`ClaudeBot`,operator:`Anthropic`,kind:`training`,purpose:`Collects web content that "could potentially contribute to their training".`,blockingCost:`Your content is excluded from Claude training data. Live Claude answers are unaffected.`,robots:`documented`,robotsNote:`Honours robots.txt and the non-standard Crawl-delay directive.`,userAgent:null,userAgentSource:`none`,docsUrl:Gn,ipRangesUrl:`https://claude.com/crawling/bots.json`,verifiedOn:`2026-09-16`,inChecker:!0,probeUserAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ClaudeBot/1.0; +claudebot@anthropic.com`,notes:`Anthropic publishes no User-Agent header string for any of its bots. Match the token.`},{token:`Claude-User`,operator:`Anthropic`,kind:`retrieval`,purpose:`Fetches a page when someone asks Claude a question that needs it.`,blockingCost:`Claude cannot retrieve your content in response to a user query.`,robots:`documented`,robotsNote:`No user-initiated exception is documented, unlike ChatGPT-User and Perplexity-User.`,userAgent:null,userAgentSource:`none`,docsUrl:Gn,ipRangesUrl:`https://claude.com/crawling/bots.json`,verifiedOn:`2026-09-16`,inChecker:!0,probeUserAgent:`Mozilla/5.0 (compatible; Claude-User/1.0; +Claude-User@anthropic.com)`},{token:`Claude-SearchBot`,operator:`Anthropic`,kind:`search`,purpose:`Indexes content to improve Claude search result quality.`,blockingCost:`You are excluded from the index Claude search draws on.`,robots:`documented`,userAgent:null,userAgentSource:`none`,docsUrl:Gn,ipRangesUrl:`https://claude.com/crawling/bots.json`,verifiedOn:`2026-09-16`},{token:`anthropic-ai`,operator:`Anthropic`,kind:`training`,purpose:`Legacy token in wide circulation. Anthropic does not document it.`,blockingCost:`Unknown. Anthropic lists only ClaudeBot, Claude-User and Claude-SearchBot, so this token may control nothing.`,robots:`undocumented`,userAgent:null,userAgentSource:`none`,docsUrl:null,verifiedOn:`2026-09-16`,inChecker:!0,probeUserAgent:`anthropic-ai`,notes:`Appears in countless robots.txt files and blocklists. Absent from Anthropic's documentation, with no retirement notice.`},{token:`PerplexityBot`,operator:`Perplexity`,kind:`search`,purpose:`Indexes pages for Perplexity search. "Not used to crawl content for AI foundation models."`,blockingCost:`You are excluded from Perplexity search results and citations.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)`,userAgentSource:`documented`,docsUrl:Kn,ipRangesUrl:`https://www.perplexity.ai/perplexitybot.json`,verifiedOn:`2026-09-16`,inChecker:!0},{token:`Perplexity-User`,operator:`Perplexity`,kind:`retrieval`,purpose:`Fetches a page because a Perplexity user asked something about it.`,blockingCost:`Perplexity cannot pull up your page to answer a live question.`,robots:`bypasses`,robotsNote:`"Since a user requested the fetch, this fetcher generally ignores robots.txt rules."`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user)`,userAgentSource:`documented`,docsUrl:Kn,ipRangesUrl:`https://www.perplexity.ai/perplexity-user.json`,verifiedOn:`2026-09-16`,inChecker:!0},{token:`Google-Extended`,operator:`Google`,kind:`training`,purpose:`Controls training of future Gemini models and grounding in Gemini Apps and Vertex AI.`,blockingCost:`Excluded from Gemini training and grounding. It does NOT remove you from AI Overviews, and it is not a Search ranking signal.`,robots:`documented`,robotsNote:`"Google-Extended does not impact a site's inclusion in Google Search nor is it used as a ranking signal in Google Search."`,userAgent:null,userAgentSource:`robots-token-only`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers`,verifiedOn:`2026-09-16`,inChecker:!0,probeUserAgent:`Google-Extended`,notes:`A control token, not a fetcher. Nothing ever arrives with this User-Agent, so the checker reads your robots.txt for it and sends no request: there is no live result to report.`},{token:`Googlebot`,operator:`Google`,kind:`search`,purpose:`The Search crawler. AI Overviews and AI Mode are built on Search, so this is what feeds them.`,blockingCost:`You leave Google Search entirely. This is the only documented way out of AI Overviews, which is why it is almost never the right move.`,robots:`documented`,robotsNote:`Common crawlers "always respect robots.txt rules for automatic crawls".`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers`,verifiedOn:`2026-09-16`,notes:`Listed as the contrast case: the AI control people reach for is Google-Extended, but the AI surface they mean is governed here.`},{token:`Google-CloudVertexBot`,operator:`Google`,kind:`training`,purpose:`Crawls sites on their owner's request to build Vertex AI Agents.`,blockingCost:`Vertex AI Agents cannot ingest your site. "It has no effect on Google Search or other products."`,robots:`documented`,userAgent:null,userAgentSource:`none`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers`,verifiedOn:`2026-09-16`,notes:`Google documents the substring only, not a full header string.`},{token:`GoogleOther`,operator:`Google`,kind:`training`,purpose:`Generic crawler used for one-off internal research and development.`,blockingCost:`Preferences for GoogleOther "don't affect any specific product", so blocking it changes little you can observe.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GoogleOther) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers`,verifiedOn:`2026-09-16`},{token:`Google-GeminiNotebook`,operator:`Google`,kind:`retrieval`,purpose:`Fetches URLs a Gemini Notebook user supplies as a source.`,blockingCost:`Nothing you can control by robots.txt: as a user-triggered fetcher it is documented to ignore it.`,robots:`bypasses`,robotsNote:`User-triggered fetchers "generally ignore robots.txt rules".`,userAgent:`Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 (compatible; Google-GeminiNotebook; +https://developers.google.com/crawling/docs/crawlers-fetchers/google-gemininotebook)`,userAgentSource:`documented`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers`,verifiedOn:`2026-09-16`,notes:`Replaced Google-NotebookLM, which Google supported until August 2026.`},{token:`Google-Agent`,operator:`Google`,kind:`retrieval`,purpose:`Agents on Google infrastructure navigating the web and acting on a user's request.`,blockingCost:`Again not robots-controllable. Google pairs it with a Web Bot Auth experiment under the identity https://agent.bot.goog.`,robots:`bypasses`,robotsNote:`User-triggered fetchers "generally ignore robots.txt rules".`,userAgent:`Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; compatible; Google-Agent; +https://developers.google.com/crawling/docs/crawlers-fetchers/google-agent) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers`,verifiedOn:`2026-09-16`},{token:`Applebot-Extended`,operator:`Apple`,kind:`training`,purpose:`Opts your content out of training Apple's general-purpose foundation models.`,blockingCost:`Excluded from Apple Intelligence training only. "Webpages that disallow Applebot-Extended can still be included in search results", and it is not considered in Search ranking.`,robots:`documented`,userAgent:null,userAgentSource:`robots-token-only`,docsUrl:`https://support.apple.com/en-us/119829`,verifiedOn:`2026-09-16`,inChecker:!0,probeUserAgent:`Applebot-Extended`,notes:`Training only. Grounding is a separate control: nosnippet stops Apple using the page as AI context.`},{token:`Applebot`,operator:`Apple`,kind:`search`,purpose:`Powers Spotlight, Siri and Safari search. The crawled data also feeds foundation-model training and AI grounding.`,blockingCost:`Removes you from Apple search surfaces.`,robots:`documented`,robotsNote:`Respects robots.txt, falls back to Googlebot rules when Applebot is not named, and does not follow crawl-delay.`,userAgent:`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15 (Applebot/0.1; +http://www.apple.com/go/applebot)`,userAgentSource:`example`,docsUrl:`https://support.apple.com/en-us/119829`,verifiedOn:`2026-09-16`},{token:`bingbot`,operator:`Microsoft`,kind:`search`,purpose:`Builds the Bing index. Copilot grounds on indexed content, so this is the Copilot crawler in practice.`,blockingCost:`You leave the Bing index, and with it Copilot citation: Bing's AI Performance report "reflects only content that is eligible for indexing".`,robots:`documented`,robotsNote:`Honours one group in priority order: bingbot, then msnbot, then the wildcard.`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:`https://www.bing.com/webmasters/help/which-crawlers-does-bing-use-8c184ec0`,verifiedOn:`2026-09-16`,notes:`Microsoft controls AI use by meta tag rather than by token: noindex bars training, noarchive bars Chat and Copilot, nocache limits them to URL, title and snippet.`},{token:`DuckAssistBot`,operator:`DuckDuckGo`,kind:`retrieval`,purpose:`Crawls in real time for AI-assisted answers. "This data is not used in any way to train AI models."`,blockingCost:`No AI-assisted answers from your content. "Opting out of DuckAssistBot does not impact organic search rankings." Takes effect after 72 hours.`,robots:`documented`,userAgent:`DuckAssistBot/1.2; (+http://duckduckgo.com/duckassistbot.html)`,userAgentSource:`documented`,docsUrl:`https://duckduckgo.com/duckduckgo-help-pages/results/duckassistbot`,verifiedOn:`2026-09-16`},{token:`meta-externalagent`,operator:`Meta`,kind:`training`,purpose:`Trains foundation AI models, and indexes content directly to improve products.`,blockingCost:`Your content is excluded from Meta AI training and indexing.`,robots:`documented`,userAgent:`meta-externalagent/1.1 (+/documentation/sharing/webmasters/web-crawlers)`,userAgentSource:`documented`,docsUrl:qn,verifiedOn:`2026-09-16`,notes:`The parenthetical is relativized on Meta's own page; match the "meta-externalagent/1.1" prefix rather than the whole string.`},{token:`meta-externalfetcher`,operator:`Meta`,kind:`retrieval`,purpose:`Fetches links a user asked about, including for agentic AI.`,blockingCost:`Meta AI cannot follow a link to your page on a user's behalf.`,robots:`bypasses`,robotsNote:`"May bypass robots.txt because it performs fetches that were requested by the user."`,userAgent:`meta-externalfetcher/1.1 (+/documentation/sharing/webmasters/web-crawlers)`,userAgentSource:`documented`,docsUrl:qn,verifiedOn:`2026-09-16`},{token:`meta-webindexer`,operator:`Meta`,kind:`search`,purpose:`Builds the index Meta AI search cites from.`,blockingCost:`You are excluded from Meta AI search citations.`,robots:`documented`,userAgent:`meta-webindexer/1.1 (+/documentation/sharing/webmasters/web-crawlers)`,userAgentSource:`documented`,docsUrl:qn,verifiedOn:`2026-09-16`},{token:`facebookexternalhit`,operator:`Meta`,kind:`retrieval`,purpose:`Scrapes a page to build the share preview when someone posts your link.`,blockingCost:`Links to your site post without a title, description or image. Nothing to do with AI.`,robots:`bypasses`,robotsNote:`"Might bypass robots.txt when performing security or integrity checks."`,userAgent:`facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)`,userAgentSource:`documented`,docsUrl:qn,verifiedOn:`2026-09-16`,notes:`Listed because it is routinely swept up in AI blocklists, which silently breaks link previews.`},{token:`Amazonbot`,operator:`Amazon`,kind:`training`,purpose:`Crawls to "improve our products and services", which may include training Amazon AI.`,blockingCost:`Excluded from Amazon AI training and product data.`,robots:`documented`,robotsNote:`"Respects the Robots Exclusion Protocol."`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:Jn,ipRangesUrl:`https://developer.amazon.com/amazonbot/ip-addresses/`,verifiedOn:`2026-09-16`},{token:`Amzn-SearchBot`,operator:`Amazon`,kind:`search`,purpose:`Builds Amazon's search index.`,blockingCost:`Excluded from Amazon search results.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amzn-SearchBot/0.1) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:Jn,ipRangesUrl:`https://developer.amazon.com/amazonbot/searchbot-ip-addresses/`,verifiedOn:`2026-09-16`},{token:`Amzn-User`,operator:`Amazon`,kind:`retrieval`,purpose:`Live retrieval on a user's behalf, including for Alexa.`,blockingCost:`Alexa cannot read your page out in answer to a question.`,robots:`partial`,robotsNote:`"May not follow all robots.txt directives."`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amzn-User/0.1) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:Jn,ipRangesUrl:`https://developer.amazon.com/amazonbot/live-ip-addresses/`,verifiedOn:`2026-09-16`},{token:`MistralAI-User`,operator:`Mistral`,kind:`retrieval`,purpose:`Fetches pages to answer a user's question in Le Chat.`,blockingCost:`Mistral cannot retrieve your page for a live answer.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; MistralAI-User/1.0; +https://docs.mistral.ai/robots)`,userAgentSource:`documented`,docsUrl:Yn,ipRangesUrl:`https://mistral.ai/mistralai-user-ips.json`,verifiedOn:`2026-09-16`},{token:`MistralAI-Index`,operator:`Mistral`,kind:`search`,purpose:`Builds a search index. Explicitly not training.`,blockingCost:`Excluded from Mistral's search index.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; MistralAI-Index/1.0; +https://docs.mistral.ai/robots)`,userAgentSource:`documented`,docsUrl:Yn,ipRangesUrl:`https://mistral.ai/mistralai-index-ips.json`,verifiedOn:`2026-09-16`},{token:`MistralAI-Training`,operator:`Mistral`,kind:`training`,purpose:`Collects training data for Mistral models.`,blockingCost:`Excluded from Mistral training data.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; MistralAI-Training/1.0; +https://docs.mistral.ai/robots)`,userAgentSource:`documented`,docsUrl:Yn,verifiedOn:`2026-09-16`,notes:`The only Mistral agent with no published IP list, so it is the one you cannot verify.`},{token:`CCBot`,operator:`Common Crawl`,kind:`dataset`,purpose:`Builds the Common Crawl public archive. A nonprofit corpus, not an AI product.`,blockingCost:`You leave the corpus that many third-party models train on, which blocks them indirectly. Archives already published stay published.`,robots:`documented`,userAgent:`CCBot/2.0 (https://commoncrawl.org/faq/)`,userAgentSource:`documented`,docsUrl:`https://commoncrawl.org/ccbot`,ipRangesUrl:`https://index.commoncrawl.org/ccbot.json`,verifiedOn:`2026-09-16`,notes:`Predates the LLM era. Verifiable by reverse DNS under *.crawl.commoncrawl.org.`},{token:`YouBot`,operator:`You.com`,kind:`search`,purpose:`Indexes pages for You.com search.`,blockingCost:`Excluded from You.com results.`,robots:`documented`,robotsNote:`"Fully respects robots.txt directives, including user-agent specific rules and crawl-delay."`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; YouBot/1.0; +https://docs.you.com/youbot; env:prod) Chrome/X.X.X.X Safari/537.36`,userAgentSource:`documented`,docsUrl:`https://you.com/docs/youbot`,verifiedOn:`2026-09-16`,notes:`Verifiable three ways: IP range, reverse DNS, and Cloudflare Web Bot Auth.`},{token:`Diffbot`,operator:`Diffbot`,kind:`search`,purpose:`Crawls for Diffbot's Knowledge Graph. "It is not used for AI training."`,blockingCost:`Excluded from the Knowledge Graph and products built on it.`,robots:`partial`,robotsNote:`Obeys robots.txt by default, but the default is overridable under a partnership agreement.`,userAgent:null,userAgentSource:`none`,docsUrl:`https://www.diffbot.com/docs/crawl/faq/robots-txt`,verifiedOn:`2026-09-16`,notes:`Diffbot documents the token and a Diffbot-User variant, but no header string.`},{token:`Webzio-extended`,operator:`Webz.io`,kind:`dataset`,purpose:`Collects content resold as datasets. The "-extended" token covers AI and ML use.`,blockingCost:`Your content is kept out of datasets sold on for AI training.`,robots:`documented`,robotsNote:`"Meticulously adheres to robots.txt exclusions."`,userAgent:null,userAgentSource:`none`,docsUrl:`https://webz.io/bot.html`,verifiedOn:`2026-09-16`,notes:`Webz.io also operates the Webzio and Omgilibot tokens. No header string is published for any of them.`}],Zn=`AI Visibility`,Qn=`pro`,$n=`/blog/ai-crawler-accessibility-guide`,er=`LintPage/1.0 (+https://lintpage.com)`,tr=5e3,nr=3600*1e3,rr=200,ir=Xn.filter(e=>e.inChecker).map(e=>({name:e.token,userAgent:e.probeUserAgent??e.userAgent??e.token,purpose:e.purpose,controlOnly:e.userAgentSource===`robots-token-only`})),ar=new Map;async function or(e,t,n=tr){let r=new AbortController,i=setTimeout(()=>r.abort(),n);try{return await Et(e,{...t,signal:r.signal})}finally{clearTimeout(i)}}async function sr(e){try{let t=new URL(`/robots.txt`,e).href,n=await or(t,{headers:{"User-Agent":er}});return n.ok?{fetched:!0,raw:await n.text()}:{fetched:!1,raw:null}}catch{return{fetched:!1,raw:null}}}async function cr(e){try{let t=new URL(`/llms.txt`,e).href;return{exists:(await or(t,{headers:{"User-Agent":er}})).ok}}catch{return{exists:!1}}}function lr(e){let t=new Map,n=[],r=!1;for(let i of e.split(`
|
|
98
|
-
`)){let e=i.replace(/#.*$/,``).trim();if(!e)continue;let a=e.indexOf(`:`);if(a===-1)continue;let o=e.slice(0,a).trim().toLowerCase(),s=e.slice(a+1).trim();if(o===`user-agent`){r&&=(n=[],!1);let e=s.toLowerCase();n.push(e),t.has(e)||t.set(e,{allow:[],disallow:[]})}else if(o===`disallow`||o===`allow`){r=!0;for(let e of n){let n=t.get(e);n&&(o===`disallow`?n.disallow.push(s):n.allow.push(s))}}}return t}function ur(e,t){if(e===``)return!1;if(e===`/`)return!0;let n=`^`;for(let t of e)t===`*`?n+=`.*`:t===`$`?n+=`$`:n+=t.replace(/[.+?^${}()|[\]\\]/g,`\\$&`);try{return new RegExp(n).test(t)}catch{return!1}}function dr(e,t,n){if(e===null)return`NO_ROBOTS_TXT`;let r=lr(e),i=r.get(t.toLowerCase()),a=r.get(`*`),o=i??a;if(!o)return`ALLOWED`;let s=[...o.disallow.map(e=>({pattern:e,allow:!1})),...o.allow.map(e=>({pattern:e,allow:!0}))].filter(e=>e.pattern&&ur(e.pattern,n));return s.length===0?`ALLOWED`:(s.sort((e,t)=>t.pattern.length-e.pattern.length||(e.allow?-1:t.allow?1:0)),s[0].allow?`ALLOWED`:`DISALLOWED`)}function fr(e,t){return e===200?`SUCCESS_200`:e===403?`BLOCKED_403`:e===429?`BLOCKED_429`:e>=500?`SERVER_ERROR_5XX`:t||e>=300&&e<400?`REDIRECTED`:`ERROR`}function pr(e){return e.replace(/<script[^>]*>[\s\S]*?<\/script>/gi,``).replace(/<style[^>]*>[\s\S]*?<\/style>/gi,``).replace(/<noscript[^>]*>[\s\S]*?<\/noscript>/gi,``).replace(/<[^>]+>/g,` `).replace(/ /g,` `).replace(/\s+/g,` `).trim().length}async function mr(e,t,n){let r=(()=>{try{return new URL(e).pathname||`/`}catch{return`/`}})(),i=dr(n,t.name,r);if(t.controlOnly)return{bot:t.name,userAgent:t.userAgent,robotsStatus:i,fetchStatus:`NOT_FETCHED`,silentBlock:!1,likelyJsRendered:!1,controlOnly:!0};let a=`ERROR`,o,s,c,l,u,d=!1;try{let n=Date.now(),r=await or(e,{headers:{"User-Agent":t.userAgent},redirect:`follow`});if(s=Date.now()-n,o=r.status,l=r.url,a=fr(r.status,r.redirected),r.status===200){let e=await r.text();c=e.length,u=pr(e),!t.controlOnly&&u<rr&&(d=!0)}}catch(e){a=e instanceof Error&&e.name===`AbortError`?`TIMEOUT`:`ERROR`}let f=i===`ALLOWED`||i===`NO_ROBOTS_TXT`,p=a===`BLOCKED_403`||a===`BLOCKED_429`||a===`SERVER_ERROR_5XX`,m=!t.controlOnly&&f&&p;return{bot:t.name,userAgent:t.userAgent,robotsStatus:i,fetchStatus:a,httpStatus:o,responseTimeMs:s,contentLength:c,finalUrl:l,bodyTextLength:u,silentBlock:m,likelyJsRendered:d,controlOnly:t.controlOnly}}async function hr(e){let[t,n]=await Promise.all([sr(e),cr(e)]),r=await Promise.all(ir.map(n=>mr(e,n,t.raw))),i={};for(let e of r)i[e.bot]=e;return{scannedAt:Date.now(),url:e,robotsTxt:t,llmsTxt:n,bots:i}}async function gr(e){let t;try{t=new URL(e).hostname}catch{return hr(e)}let n=ar.get(t);if(n&&Date.now()-n.cachedAt<nr)return n.promise;let r=hr(e);return ar.set(t,{promise:r,cachedAt:Date.now()}),r.catch(()=>{ar.get(t)?.promise===r&&ar.delete(t)}),r}function _r(e,t,n,r,i,a){return{ruleId:e,ruleName:t,message:n,severity:r,category:Zn,tier:Qn,fix:i,learnMoreUrl:$n,data:a}}var vr={meta:{id:`ai/all-crawlers-blocked`,name:`AI: site-wide AI access blocked`,category:Zn,tier:Qn,description:`Every tested AI bot is blocked (robots.txt or live block) — page is invisible to AI assistants`},async run(e){let t=await gr(e),n=Object.values(t.bots).filter(e=>!e.controlOnly),r=n.length,i=n.filter(e=>e.robotsStatus===`DISALLOWED`||e.fetchStatus===`BLOCKED_403`||e.fetchStatus===`BLOCKED_429`||e.fetchStatus===`SERVER_ERROR_5XX`);return i.length<r?[]:[_r(`ai/all-crawlers-blocked`,`AI: site-wide AI access blocked`,`All ${r} AI bots tested are blocked \u2014 by robots.txt or live block. ChatGPT, Claude, Perplexity, and Gemini cannot read or cite this page.`,`CRITICAL`,`Review robots.txt for blanket AI bot Disallow rules. If using Cloudflare, check Security Settings → Configure AI bot policies and allow the categories you want to stay visible to (Search, Agent, Training are set separately).`,{blocked:i.length,total:r})]}};function yr(e){return{meta:{id:e.id,name:e.name,category:Zn,tier:Qn,description:e.description},async run(t){let n=(await gr(t)).bots[e.bot];return n.silentBlock?[_r(e.id,e.name,`robots.txt allows ${e.bot} but the live fetch returned HTTP ${n.httpStatus}. This is the Cloudflare-default block: AI bots get a 403 at the edge regardless of what your robots.txt says.`,`CRITICAL`,`Cloudflare \u2192 Security Settings \u2192 Configure AI bot policies, and allow the category "${e.bot}" falls under (Search, Agent or Training). The older "Block AI bots" toggle was deprecated on 2026-09-15, when Cloudflare also applied new defaults to free-plan zones that had never changed the setting. Or, if you intend to opt out, add "User-agent: ${e.bot}\\nDisallow: /" to robots.txt so the signal is intentional.`,{bot:e.bot,httpStatus:n.httpStatus,userAgent:n.userAgent,robotsStatus:n.robotsStatus,fetchStatus:n.fetchStatus})]:[]}}}var br=yr({id:`ai/gptbot-silent-block`,name:`AI: GPTBot silent block`,bot:`GPTBot`,description:`robots.txt allows GPTBot but live fetch returns 403/429 (likely Cloudflare or WAF block)`}),xr=yr({id:`ai/claudebot-silent-block`,name:`AI: ClaudeBot silent block`,bot:`ClaudeBot`,description:`robots.txt allows ClaudeBot but live fetch returns 403/429`}),Sr=yr({id:`ai/perplexitybot-silent-block`,name:`AI: PerplexityBot silent block`,bot:`PerplexityBot`,description:`robots.txt allows PerplexityBot but live fetch returns 403/429`});function Cr(e){return{meta:{id:e.id,name:e.name,category:Zn,tier:Qn,description:e.description},async run(t){let n=(await gr(t)).bots[e.bot],r=n.robotsStatus===`DISALLOWED`,i=n.fetchStatus===`BLOCKED_403`||n.fetchStatus===`BLOCKED_429`||n.fetchStatus===`SERVER_ERROR_5XX`;if(!r&&!i)return[];let a=r?`robots.txt disallows it`:`the live fetch returned HTTP ${n.httpStatus}`;return[_r(e.id,e.name,`${e.bot} cannot reach this page \u2014 ${a}. When a user asks ${e.serviceLabel} a question that should cite this page, the assistant cannot retrieve the content.`,`CRITICAL`,r?`Remove the User-agent: ${e.bot} Disallow rule from robots.txt. "-User" variants represent live retrieval at user request, not training \u2014 opting out of these typically isn't intentional.`:`Cloudflare or your WAF is blocking ${e.bot}. Allow this bot at the edge \u2014 it represents live AI assistant browsing, not training. Blocking it removes you from ${e.serviceLabel}'s answers.`,{bot:e.bot,userAgent:n.userAgent,httpStatus:n.httpStatus,robotsStatus:n.robotsStatus,fetchStatus:n.fetchStatus})]}}}var wr=[vr,br,xr,Sr,Cr({id:`ai/chatgpt-user-blocked`,name:`AI: ChatGPT-User cannot reach page`,bot:`ChatGPT-User`,serviceLabel:`ChatGPT`,description:`ChatGPT-User cannot reach the page — blocks live ChatGPT browsing when users ask questions`}),Cr({id:`ai/claude-user-blocked`,name:`AI: Claude-User cannot reach page`,bot:`Claude-User`,serviceLabel:`Claude`,description:`Claude-User cannot reach the page — blocks live Claude browsing`}),Cr({id:`ai/perplexity-user-blocked`,name:`AI: Perplexity-User cannot reach page`,bot:`Perplexity-User`,serviceLabel:`Perplexity`,description:`Perplexity-User cannot reach the page — blocks live Perplexity browsing`}),{meta:{id:`ai/google-extended-disallowed`,name:`AI: Google-Extended disallowed`,category:Zn,tier:Qn,description:`Google-Extended disallowed — opt-out from Gemini training and grounding; confirm this is intentional`},async run(e){let t=await gr(e);return t.bots[`Google-Extended`].robotsStatus===`DISALLOWED`?[_r(`ai/google-extended-disallowed`,`AI: Google-Extended disallowed`,`robots.txt disallows Google-Extended — your content is opted out of training future Gemini models and of grounding in Gemini Apps and Vertex AI. Confirm this is intentional.`,`WARNING`,`If you want to appear in Gemini responses, remove the User-agent: Google-Extended Disallow rule from robots.txt. This is separate from regular Googlebot: disallowing Google-Extended does not affect search rankings, and it does not remove you from AI Overviews either — those follow Googlebot.`,{robotsStatus:t.bots[`Google-Extended`].robotsStatus})]:[]}},{meta:{id:`ai/applebot-extended-disallowed`,name:`AI: Applebot-Extended disallowed`,category:Zn,tier:Qn,description:`Applebot-Extended disallowed — opt-out from Apple Intelligence; confirm this is intentional`},async run(e){let t=await gr(e);return t.bots[`Applebot-Extended`].robotsStatus===`DISALLOWED`?[_r(`ai/applebot-extended-disallowed`,`AI: Applebot-Extended disallowed`,`robots.txt disallows Applebot-Extended — your content is opted out of Apple Intelligence training. Confirm this is intentional.`,`INFO`,`If you want Apple Intelligence to learn from this page, remove the User-agent: Applebot-Extended Disallow from robots.txt. Regular Applebot (search) is unaffected.`,{robotsStatus:t.bots[`Applebot-Extended`].robotsStatus})]:[]}},{meta:{id:`ai/empty-content-to-bot`,name:`AI: bot receives near-empty content`,category:Zn,tier:Qn,description:`AI bot receives near-empty content (likely client-side rendering blocks the bot from seeing the page)`},async run(e){let t=await gr(e),n=Object.values(t.bots).filter(e=>e.likelyJsRendered&&e.fetchStatus===`SUCCESS_200`);if(n.length===0)return[];let r=n.map(e=>e.bot).join(`, `),i=Math.min(...n.map(e=>e.bodyTextLength??0));return[_r(`ai/empty-content-to-bot`,`AI: bot receives near-empty content`,`${n.length} bot${n.length===1?``:`s`} (${r}) received a 200 OK but the HTML body contained only ${i} characters of readable text. Your content is likely hydrated client-side and invisible to non-rendering crawlers.`,`WARNING`,`Server-render the primary content of this page. Googlebot, bingbot and Applebot document that they render JavaScript; OpenAI, Anthropic, Perplexity and Meta document nothing either way, so content assembled in the browser reaches them only if an undocumented behaviour happens to go your way.`,{bots:n.map(e=>e.bot),minBodyTextLength:i,threshold:rr})]}},{meta:{id:`ai/llms-txt-missing`,name:`AI: llms.txt not found`,category:Zn,tier:Qn,description:`llms.txt file not found — experimental, low confirmed impact; included for completeness`},async run(e){return(await gr(e)).llmsTxt.exists?[]:[_r(`ai/llms-txt-missing`,`AI: llms.txt not found`,`No /llms.txt file at the site root. This is an experimental proposed standard for giving AI assistants a curated index — low confirmed impact today, but trivial to add.`,`INFO`,`If you want to provide an LLM-friendly site index, add /llms.txt at the root listing your most important pages. Spec at https://llmstxt.org. Skip this if you do not want to participate in the experiment.`,{exists:!1})]}}],Tr=[tn,an,on,sn,cn,ln,un,dn,fn,pn,mn,hn,_n,vn,yn,Sn,Cn,wn,Tn,En,Dn,On,Nn,Pn,Fn,In,Ln,Rn,zn,Bn],Er=[Un],Dr=[nn,rn,gn,Vn,...wr],Or={[tn.meta.id]:`INFO`,[Rn.meta.id]:`INFO`,[Fn.meta.id]:`INFO`,[zt]:`INFO`},kr={name:`@lintpage/pro`,rules:Tr,asyncRules:Er,standaloneRules:Dr};function Ar(){return kr}async function jr(e){let t;try{let n=await gr(e);t=Object.values(n.bots).map(e=>e.finalUrl).filter(e=>typeof e==`string`&&e.length>0)}catch{return null}for(let n of t){let t=Gt(e,n);if(t)return{finding:t,finalUrl:n}}return null}async function Mr(e){let t=await Xt(wr,e),n=await jr(e);n&&t.push(n.finding);let r=Lt(t),i=It(t),a=t.some(e=>e.severity===`CRITICAL`&&e.category!==`AI Visibility`),o=t.some(e=>e.severity===`CRITICAL`&&e.category===`AI Visibility`),s=a?`FAIL`:o?`AI-FAIL`:`PASS`;return{url:e,timestamp:new Date().toISOString(),results:t,score:r,overallStatus:s,categoryScores:i,...n?{finalUrl:n.finalUrl}:{}}}function Nr(e){let t=e.replace(/^\[|\]$/g,``).toLowerCase().replace(/\.$/,``);return t===`localhost`||t.endsWith(`.localhost`)?!0:mt(t)}const Pr=/^https?:\/\//i;function Fr(e){let t=Pr.test(e),n=new URL(t?e:`http://${e}`),r=Nr(n.hostname),i=t?e:`${r?`http`:`https`}://${e}`;return r?{url:i,grant:{loopbackHost:n.hostname,port:ht(n)}}:{url:i}}function Ir(e){let t=new Map;for(let n of e){if(!n.isBoolean)continue;let e=n.names[0];if(e)for(let r of n.rawName.split(`,`)){let n=r.trim().replace(/^-{1,2}/,``);n.includes(`-`)&&t.set(n,e)}}return t}function Lr(e,t){let n=Ir(t);if(n.size===0)return e;let r=!1;return e.map(e=>{if(r)return e;if(e===`--`)return r=!0,e;if(!e.startsWith(`--`))return e;let[t,...i]=e.slice(2).split(`=`),a=n.get(t);return a?i.length>0?`--${a}=${i.join(`=`)}`:`--${a}`:e})}const Rr=`VERCEL_AUTOMATION_BYPASS_SECRET`,zr=`LINTPAGE_BYPASS_ORIGINS`;function Br(e){let t;try{t=new URL(e)}catch{return!1}return t.protocol===`https:`?t.hostname.toLowerCase().replace(/\.$/,``).endsWith(`.vercel.app`):!1}function Vr(e){let t=new Set;for(let n of(e??``).split(/[\s,]+/))if(n)try{t.add(new URL(n).origin)}catch{}return t}function Hr(e,t,n){let r=t?.trim();if(!r)return{};if(!Br(e))return{note:`${Rr} is set but not sent: it only goes to https *.vercel.app URLs.`};let i=new URL(e).origin;return Vr(n).has(i)?{scope:{origin:i,headers:{"x-vercel-protection-bypass":r}},note:`Sending the Vercel protection bypass secret to ${i} only.`}:{note:`${Rr} is set but not sent: ${i} is not listed in ${zr}.`}}function Ur(e){return e.ruleId===`x-robots-tag`&&e.severity===`CRITICAL`&&/noindex/i.test(String(e.data?.value??``))}function Wr(e){return e.map(e=>Ur(e)?{...e,severity:`INFO`,data:{...e.data,vercelDowngraded:!0}}:e)}function Gr(e){return e.results.some(e=>e.ruleId===`x-robots-tag`&&e.severity===`INFO`&&e.data?.vercelDowngraded===!0)?[`x-robots-tag`]:[]}function Kr(e,t){let n=[...dt,...Tr,...Er,...Dr],r={};for(let t of n){let n=t.meta.category===`AI Visibility`;e===`only`?r[t.meta.id]=n:n&&(r[t.meta.id]=!1)}return{...t??{},rules:{...t?.rules??{},...r}}}function qr(){return[...Dr,...Er].map(e=>e.meta.id).sort()}function Jr(e){return e===!1?!0:typeof e==`object`&&!!e&&e.enabled===!1}function Yr(e){let t=Xr(e).rules??{};return Object.keys(Or).filter(e=>{let n=t[e];return typeof n==`object`&&!!n&&n.enabled===!0}).sort()}function Xr(e){let t={...e?.rules??{}};for(let e of qr())t[e]=!1;for(let[e,n]of Object.entries(Or))Jr(t[e])||(t[e]={enabled:!0,severity:n});return{...e??{},rules:t}}function Zr(e,t){let n=e;return t.grant&&(n=Xr(n)),t.skipAi&&(n=Kr(`skip`,n)),n}function Qr(e,t){return!e||!t?null:`Error: --ai-only cannot run against localhost. Those rules probe your site as external crawlers, which cannot reach a loopback address.`}const $r=(0,n.default)(`lintpage`);function ei(e){let t=process.env.GITHUB_STEP_SUMMARY;if(t)try{(0,s.appendFileSync)(t,`${e}\n`)}catch(e){console.error(`Could not write the job summary: ${e instanceof Error?e.message:String(e)}`)}}$r.command(`<url>`,`Run an audit on a URL`).option(`--format <format>`,`Output format: text, json, github`,{default:`text`}).option(`--config <path>`,`Path to config file`).option(`--fail-on-warning`,`Exit 1 on warnings (not just criticals)`).option(`--ai-only`,`Run only the AI Visibility module (LP-050…LP-060)`).option(`--skip-ai`,`Skip the AI Visibility module`).option(`--quiet`,`Minimal output (counts only)`).action(async(n,r)=>{let i=r.format||`text`,a=r.config,o=!!r.failOnWarning,s=!!r.aiOnly,c=!!r.skipAi,l=!!r.quiet;s&&c&&(console.error(t.default.red(`Error: --ai-only and --skip-ai are mutually exclusive.`)),process.exit(2));try{let{url:r,grant:u}=Fr(n),d=Qr(s,u);d&&(console.error(t.default.red(d)),process.exit(2));let f=$t(a)??void 0,p=Br(r),m=Zr(f,{grant:u,skipAi:c});!l&&i===`text`&&console.log(t.default.dim(`Auditing ${r}...`));let h=Hr(r,process.env[Rr],process.env[zr]);h.note&&console.error(h.note);let g=await Ot(h.scope,()=>s?Mr(r):Zt(r,{plugins:[Ar()],config:m,grant:u,reportOffSiteRedirect:!0,adjustResults:p?Wr:void 0}));if(u&&(g.localhost={host:u.loopbackHost,notRun:qr(),downgraded:Yr(f)}),p){let e=Gr(g);e.length>0&&(g.vercelDeployment={downgraded:e})}console.log(e.t(g,i,l,o)),i===`github`&&ei(e.a(g));let _=g.results.some(e=>e.severity===`CRITICAL`),v=g.results.some(e=>e.severity===`WARNING`);_&&process.exit(1),o&&v&&process.exit(1),process.exit(0)}catch(r){if(i===`json`)console.error(JSON.stringify({error:r instanceof Error?r.message:String(r)}));else if(i===`github`){let t=r instanceof Error?r.message:String(r);console.log(e.r(n,t)),ei(e.i(n,t))}else console.error(t.default.red(`Error: ${r instanceof Error?r.message:String(r)}`));process.exit(2)}}),$r.command(`init`,`Generate a .lintpagerc.json config file`).action(()=>{let e=(0,c.join)(process.cwd(),`.lintpagerc.json`);(0,s.existsSync)(e)&&(console.log(t.default.yellow(`.lintpagerc.json already exists`)),process.exit(0));let n=en();(0,s.writeFileSync)(e,JSON.stringify(n,null,2)+`
|
|
99
|
-
`),console.log(t.default.green(`Created .lintpagerc.json`)),process.exit(0)})
|
|
96
|
+
`);e.stack=n?`${n}\n${a}`:i.stack}t.exports.fetch=function(e,n=void 0){return ne(e,n).catch(e=>{throw q?J(e,q):e&&typeof e==`object`&&Error.captureStackTrace(e,t.exports.fetch),e})},t.exports.Headers=Re().Headers,t.exports.Response=ze().Response,t.exports.Request=Be().Request,t.exports.FormData=N().FormData;let{setGlobalOrigin:Y,getGlobalOrigin:se}=E();t.exports.setGlobalOrigin=Y,t.exports.getGlobalOrigin=se;let{CacheStorage:X}=Ge(),{kConstruct:Z}=l();t.exports.caches=new X(Z);let{deleteCookie:ce,getCookies:ue,getSetCookies:de,setCookie:fe,parseCookie:$}=Ye();t.exports.deleteCookie=ce,t.exports.getCookies=ue,t.exports.getSetCookies=de,t.exports.setCookie=fe,t.exports.parseCookie=$;let{parseMIMEType:_e,serializeAMimeType:ve}=k();t.exports.parseMIMEType=_e,t.exports.serializeAMimeType=ve;let{CloseEvent:Oe,ErrorEvent:ke,MessageEvent:Ae}=Xe(),{WebSocket:Me,ping:Fe}=it();t.exports.WebSocket=Me,t.exports.CloseEvent=Oe,t.exports.ErrorEvent=ke,t.exports.MessageEvent=Ae,t.exports.ping=Fe,t.exports.WebSocketStream=ot().WebSocketStream,t.exports.WebSocketError=at().WebSocketError,t.exports.request=te(S.request),t.exports.stream=te(S.stream),t.exports.pipeline=te(S.pipeline),t.exports.connect=te(S.connect),t.exports.upgrade=te(S.upgrade),t.exports.MockClient=w,t.exports.MockCallHistory=T,t.exports.MockCallHistoryLog=D,t.exports.MockPool=A,t.exports.MockAgent=O,t.exports.SnapshotAgent=j,t.exports.mockErrors=M;let{EventSource:Ve}=lt();t.exports.EventSource=Ve;function Ue(){globalThis.fetch=t.exports.fetch,globalThis.Headers=t.exports.Headers,globalThis.Response=t.exports.Response,globalThis.Request=t.exports.Request,globalThis.FormData=t.exports.FormData,globalThis.WebSocket=t.exports.WebSocket,globalThis.CloseEvent=t.exports.CloseEvent,globalThis.ErrorEvent=t.exports.ErrorEvent,globalThis.MessageEvent=t.exports.MessageEvent,globalThis.EventSource=t.exports.EventSource}t.exports.install=Ue}))(),dt=[{meta:{id:`title`,name:`Page Title`,category:`SEO`,tier:`free`,description:`Checks for the presence and length of the <title> tag`},run(e){let{document:t}=e,n=[],r=t.querySelector(`title`)?.textContent?.trim()||``,i=r.length;return r?i<30?n.push({ruleId:`title`,ruleName:`Page Title`,message:`Title may be too short - under 30 characters may not be descriptive enough`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Expand your title to 50-60 characters to avoid truncation. Google does not enforce a character limit but truncates based on pixel width (~600px on desktop).`,data:{value:r,length:i}}):i>60&&n.push({ruleId:`title`,ruleName:`Page Title`,message:`Title is over 60 characters - likely to be truncated in search results`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Shorten your title to under 60 characters to avoid truncation. Google truncates based on pixel width (~600px on desktop), which is roughly 60 characters.`,data:{value:r,length:i}}):n.push({ruleId:`title`,ruleName:`Page Title`,message:`Missing title tag`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add a <title>Your Page Title</title> tag inside your <head> element. Aim for 50-60 characters to avoid truncation in search results.`,data:{value:r,length:i}}),n}},{meta:{id:`meta-description`,name:`Meta Description`,category:`SEO`,tier:`free`,description:`Checks for the presence and length of the meta description tag`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[name="description"]`)?.getAttribute(`content`)?.trim()||``,i=r.length;return r?i<120?n.push({ruleId:`meta-description`,ruleName:`Meta Description`,message:`Meta description may be too short - under 120 characters may not fully utilize the available snippet space`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Expand your meta description to 150-160 characters. Google does not enforce a character limit but typically truncates around 160 characters on desktop (~120 on mobile).`,data:{value:r,length:i}}):i>160&&n.push({ruleId:`meta-description`,ruleName:`Meta Description`,message:`Meta description is over 160 characters - likely to be truncated in search results`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Shorten your meta description to under 160 characters. Google truncates snippets based on device width, typically around 160 characters on desktop.`,data:{value:r,length:i}}):n.push({ruleId:`meta-description`,ruleName:`Meta Description`,message:`Missing meta description`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta name="description" content="Your description here" /> to your <head> tag. Aim for 150-160 characters to avoid truncation.`,data:{value:r,length:i}}),n}},{meta:{id:`og-title`,name:`Open Graph Title`,category:`SEO`,tier:`free`,description:`Checks for the og:title meta tag`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[property="og:title"]`)?.getAttribute(`content`)?.trim()||``;return r?r.length>60?n.push({ruleId:`og-title`,ruleName:`Open Graph Title`,message:`og:title is long (${r.length} characters). Optimal: 50-60 characters`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Shorten your og:title to under 60 characters. Longer titles get truncated on most social platforms.`,data:{value:r,length:r.length}}):r.length<30&&n.push({ruleId:`og-title`,ruleName:`Open Graph Title`,message:`og:title is short (${r.length} characters). Optimal: 50-60 characters`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`Consider expanding your og:title to 50-60 characters to make social shares more compelling.`,data:{value:r,length:r.length}}):n.push({ruleId:`og-title`,ruleName:`Open Graph Title`,message:`Missing og:title tag - social media shares will have no title preview`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta property="og:title" content="Your Page Title" /> to your <head> tag.`}),n}},{meta:{id:`og-description`,name:`Open Graph Description`,category:`SEO`,tier:`free`,description:`Checks for the og:description meta tag`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[property="og:description"]`)?.getAttribute(`content`)?.trim()||``;return r?r.length>200?n.push({ruleId:`og-description`,ruleName:`Open Graph Description`,message:`og:description is long (${r.length} characters). Optimal: 110-160 characters`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Shorten your og:description to under 200 characters. Most platforms truncate longer descriptions.`,data:{value:r,length:r.length}}):r.length<70&&n.push({ruleId:`og-description`,ruleName:`Open Graph Description`,message:`og:description is short (${r.length} characters). Optimal: 110-160 characters`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`Consider expanding your og:description to 110-160 characters to make social shares more engaging.`,data:{value:r,length:r.length}}):n.push({ruleId:`og-description`,ruleName:`Open Graph Description`,message:`Missing og:description tag - social media shares will have no description preview`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta property="og:description" content="Your description" /> to your <head> tag.`}),n}},{meta:{id:`og-image`,name:`Open Graph Image`,category:`SEO`,tier:`free`,description:`Checks for the og:image meta tag`},run(e){let{document:t}=e,n=[];return t.querySelector(`meta[property="og:image"]`)?.getAttribute(`content`)||n.push({ruleId:`og-image`,ruleName:`Open Graph Image`,message:`Missing og:image tag - social media shares will have no image preview`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta property="og:image" content="https://yoursite.com/image.jpg" /> to your <head> tag.`}),n}},{meta:{id:`og-url`,name:`Open Graph URL`,category:`SEO`,tier:`free`,description:`Checks for the og:url meta tag`},run(e){let{document:t}=e,n=[];return t.querySelector(`meta[property="og:url"]`)?.getAttribute(`content`)||n.push({ruleId:`og-url`,ruleName:`Open Graph URL`,message:`Missing og:url tag - social media may not show the correct URL`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta property="og:url" content="https://yoursite.com/page" /> to your <head> tag.`}),n}},{meta:{id:`twitter-card`,name:`Twitter Card`,category:`SEO`,tier:`free`,description:`Checks for Twitter Card meta tags`},run(e){let{document:t}=e,n=[];return t.querySelector(`meta[name="twitter:card"]`)?.getAttribute(`content`)||n.push({ruleId:`twitter-card`,ruleName:`Twitter Card`,message:`Missing Twitter Card tags - tweets with your URL will have no preview card`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta name="twitter:card" content="summary_large_image" />, <meta name="twitter:title" content="..." />, and <meta name="twitter:image" content="..." /> to your <head>.`}),n}},{meta:{id:`canonical-url`,name:`Canonical URL`,category:`SEO`,tier:`free`,description:`Checks for a canonical link tag and validates the URL`},run(e){let{document:t}=e,n=[],r=t.querySelector(`link[rel="canonical"]`),i=r?.getAttribute(`href`)||void 0;return r?i&&!i.startsWith(`http`)&&n.push({ruleId:`canonical-url`,ruleName:`Canonical URL`,message:`Canonical URL should be absolute (include protocol and domain)`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Change your canonical href to an absolute URL starting with https:// (e.g., href="https://yoursite.com/page").`,data:{present:!0,value:i}}):n.push({ruleId:`canonical-url`,ruleName:`Canonical URL`,message:`No canonical link found (recommended for SEO)`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`Add <link rel="canonical" href="https://yoursite.com/this-page" /> to your <head> tag to prevent duplicate content issues.`,data:{present:!1}}),n}},{meta:{id:`robots-noindex`,name:`Robots Noindex`,category:`Pre-Launch`,tier:`free`,description:`Checks for noindex/nofollow in the robots meta tag`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[name="robots"]`)?.getAttribute(`content`)||``;return r.includes(`noindex`)&&n.push({ruleId:`robots-noindex`,ruleName:`Robots Noindex`,message:`Page has noindex meta tag - WILL NOT BE INDEXED by search engines! Remove this before launch or you'll get ZERO organic traffic.`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`free`,fix:`Remove the <meta name="robots" content="noindex" /> tag from your <head>, or change it to content="index, follow".`,data:{metaRobots:r}}),r.includes(`nofollow`)&&n.push({ruleId:`robots-noindex`,ruleName:`Robots Noindex`,message:`Page has nofollow meta tag - links will not be followed`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Remove "nofollow" from your <meta name="robots"> content if you want search engines to follow your links.`,data:{metaRobots:r}}),n}},{meta:{id:`heading-structure`,name:`Heading Structure`,category:`SEO`,tier:`free`,description:`Validates H1 tag presence, count, and heading hierarchy`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`h1`),i=r.length,a=Array.from(r).map(e=>e.textContent?.trim()||``);i===0?n.push({ruleId:`heading-structure`,ruleName:`Heading Structure`,message:`No H1 tag found`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add a single <h1> tag to your page with a clear, descriptive heading that includes your primary keyword.`,data:{h1Count:i}}):i>1&&n.push({ruleId:`heading-structure`,ruleName:`Heading Structure`,message:`Multiple H1 tags found (${i}). Best practice is 1 per page`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`While Google does not penalize multiple H1 tags, using a single H1 per page is a widely recommended best practice for clarity and accessibility.`,data:{h1Count:i,h1Values:a}}),a.forEach((e,t)=>{e?e.length>70&&n.push({ruleId:`heading-structure`,ruleName:`Heading Structure`,message:`H1 #${t+1} is too long (${e.length} characters)`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`Shorten your H1 to under 70 characters for better readability and SEO.`}):n.push({ruleId:`heading-structure`,ruleName:`Heading Structure`,message:`H1 #${t+1} is empty`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add descriptive text content to your <h1> tag.`})});let o=t.querySelectorAll(`h1, h2, h3, h4, h5, h6`),s=0;return Array.from(o).forEach(e=>{let t=Number.parseInt(e.tagName[1]??`1`,10);if(t-s>1){let t=e.textContent?.trim().substring(0,40)||`...`;n.push({ruleId:`heading-structure`,ruleName:`Heading Structure`,message:`${e.tagName} skips heading level from h${s} (content: "${t}")`,severity:`INFO`,category:`SEO`,tier:`free`,fix:`Don't skip heading levels. Use h${s+1} instead of ${e.tagName} to maintain proper hierarchy.`})}s=t}),n}},{meta:{id:`html-lang`,name:`HTML Lang Attribute`,category:`Accessibility`,tier:`free`,description:`Checks for the lang attribute on the <html> tag`},run(e){let{document:t}=e,n=[];return t.documentElement.getAttribute(`lang`)||n.push({ruleId:`html-lang`,ruleName:`HTML Lang Attribute`,message:`Missing lang attribute on <html> tag`,severity:`WARNING`,category:`Accessibility`,tier:`free`,fix:`Add lang="en" (or your language code) to your <html> tag: <html lang="en">.`,data:{present:!1}}),n}},{meta:{id:`viewport`,name:`Viewport Meta Tag`,category:`SEO`,tier:`free`,description:`Checks for the viewport meta tag for mobile responsiveness`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[name="viewport"]`);if(!r)n.push({ruleId:`viewport`,ruleName:`Viewport Meta Tag`,message:`Missing viewport meta tag - page will not render properly on mobile devices`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <meta name="viewport" content="width=device-width, initial-scale=1" /> to your <head> tag.`,data:{present:!1}});else{let e=r.getAttribute(`content`)||``,t=/user-scalable\s*=\s*no/i.test(e),i=e.match(/maximum-scale\s*=\s*([\d.]+)/i),a=i&&parseFloat(i[1])<2;(t||a)&&n.push({ruleId:`viewport`,ruleName:`Viewport Meta Tag`,message:`Viewport disables or restricts user zoom - this fails WCAG 1.4.4 (Resize text) which requires at least 200% zoom`,severity:`WARNING`,category:`Accessibility`,tier:`free`,fix:`Remove user-scalable=no and ensure maximum-scale is at least 2.0 (or remove it entirely) to allow users to zoom.`})}return n}},{meta:{id:`favicon`,name:`Favicon`,category:`SEO`,tier:`free`,description:`Checks for the presence of a favicon link tag`},run(e){let{document:t}=e,n=[];return t.querySelector(`link[rel*="icon"]`)||n.push({ruleId:`favicon`,ruleName:`Favicon`,message:`No favicon found - browsers will show a default icon in tabs and bookmarks`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add <link rel="icon" href="/favicon.ico" /> to your <head> tag. Include multiple sizes for best results.`,data:{present:!1}}),n}},{meta:{id:`anchor-missing-href`,name:`Anchor Missing Href`,category:`SEO`,tier:`free`,description:`Checks that all <a> elements have a valid href attribute`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`a`),i=[];for(let e of r){let t=e.getAttribute(`href`);if(!t||t.trim()===``){let t=e.textContent?.trim()||``,n=t.length>50?t.slice(0,50)+`…`:t;i.push(n||`<empty>`)}}return i.length>0&&n.push({ruleId:`anchor-missing-href`,ruleName:`Anchor Missing Href`,message:`${i.length} <a> element(s) missing a valid href attribute: ${i.join(`, `)}`,severity:`WARNING`,category:`SEO`,tier:`free`,fix:`Add a valid href attribute to all <a> elements. Links without href are not crawlable by search engines and inaccessible to keyboard/screen reader users. If the element is not a link, use a <button> or <span> instead.`,data:{count:i.length,anchors:i}}),n}}];new Map(dt.map(e=>[e.meta.id,e]));function ft(e){let t=e.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);if(!t)return!1;let[,n,r]=t.map(Number);return n===10||n===172&&r>=16&&r<=31||n===192&&r===168||n===127||n===169&&r===254||n===0||n===100&&r>=64&&r<=127||n===198&&(r===18||r===19)||n>=224}function pt(e){let t=e.replace(/^\[|\]$/g,``).toLowerCase();if(ft(t))return!0;if(!t.includes(`:`))return!1;let n=t.match(/^::(?:ffff:)?(\d{1,3}(?:\.\d{1,3}){3})$/);if(n)return ft(n[1]);let r=t.match(/^::(?:ffff:)?([0-9a-f]{1,4}):([0-9a-f]{1,4})$/);if(r){let e=parseInt(r[1],16),t=parseInt(r[2],16);if(ft([e>>8,e&255,t>>8,t&255].join(`.`)))return!0}return!!(t===`::`||t===`::1`||/^f[cd][0-9a-f]{0,2}:/.test(t)||/^fe[89ab][0-9a-f]?:/.test(t)||t.startsWith(`::ffff:`))}function mt(e){let t=e.replace(/^\[|\]$/g,``).toLowerCase(),n=t.match(/^(\d{1,3})\.\d{1,3}\.\d{1,3}\.\d{1,3}$/);if(n)return Number(n[1])===127;if(t===`::1`)return!0;let r=t.match(/^::ffff:(\d{1,3})\.\d{1,3}\.\d{1,3}\.\d{1,3}$/);if(r)return Number(r[1])===127;let i=t.match(/^::ffff:([0-9a-f]{1,4}):[0-9a-f]{1,4}$/);return i?parseInt(i[1],16)>>8==127:!1}function ht(e){return e.port?e.port:e.protocol===`https:`?`443`:`80`}function gt(e,t){if(!t)return!1;let n=e=>e.replace(/^\[|\]$/g,``).toLowerCase();return n(e)===n(t.loopbackHost)}function _t(e,t,n){return n?gt(e,n)&&t===n.port:!1}function vt(e){return!!(e===`localhost`||e===`127.0.0.1`||e===`[::1]`||e===`0.0.0.0`||e.endsWith(`.internal`)||e.endsWith(`.local`)||e.endsWith(`.localhost`)||pt(e))}async function yt(e,t,n,i){let a=e.replace(/^\[|\]$/g,``),o=Date.now();n?.({step:`dns`,status:`start`,host:a});try{let{address:e}=await r.default.lookup(a);if(!(!pt(e)||_t(a,t,i)&&mt(e))){let e=`URLs pointing to private or internal addresses are not allowed`;throw n?.({step:`dns`,status:`fail`,host:a,error:e}),Error(e)}let s=Date.now()-o;return n?.({step:`dns`,status:`ok`,host:a,address:e,ms:s}),{address:e,ms:s}}catch(e){if(e instanceof Error&&e.message.includes(`private or internal`))throw e;let t=`Could not resolve hostname`;throw n?.({step:`dns`,status:`fail`,host:a,error:t}),Error(t)}}function bt(e=i.lookup,t){return function(n,r,i){let a=r??{};e(n,{...a,all:!0},(e,r)=>{if(e){i(e,``,void 0);return}let o=gt(n,t),s=r.filter(e=>!pt(e.address)||o&&mt(e.address));if(s.length===0){i(Error(`URLs pointing to private or internal addresses are not allowed`),``,void 0);return}if(a.all){i(null,s);return}i(null,s[0].address,s[0].family)})}}var xt,St=8,Ct=new Map;function wt(e){let t=(0,ut.buildConnector)({lookup:bt(void 0,e)}),n=(0,ut.buildConnector)({lookup:bt(void 0,void 0)});return function(r,i){let o=String(r.hostname??``).replace(/^\[|\]$/g,``),s=_t(o,String(r.port??``)||(String(r.protocol??``)===`https:`?`443`:`80`),e);if((0,a.isIP)(o)&&pt(o)&&!(s&&mt(o))){i(Error(`URLs pointing to private or internal addresses are not allowed`),null);return}(s?t:n)(r,i)}}function Tt(e){if(!e)return xt??=new ut.Agent({connect:wt()}),xt;let t=`${e.loopbackHost.toLowerCase()}:${e.port}`,n=Ct.get(t);if(!n&&(n=new ut.Agent({connect:wt(e)}),Ct.set(t,n),Ct.size>St)){let e=Ct.keys().next().value;if(e!==void 0&&e!==t){let t=Ct.get(e);Ct.delete(e),t?.close()}}return n}function Et(e,t,n){let r=Tt(n),i=Dt.getStore();return(0,ut.fetch)(e,{...t,dispatcher:i?kt(r,i):r})}var Dt=new o.AsyncLocalStorage;function Ot(e,t){return e?Dt.run(e,t):t()}function kt(e,t){return e.compose(e=>(n,r)=>{let i;try{i=new URL(String(n.origin)).origin}catch{i=void 0}return i===t.origin?e({...n,headers:At(n.headers,t.headers)},r):e(n,r)})}function At(e,t){let n=Object.entries(t).flat();if(e==null)return{...t};if(Array.isArray(e))return[...e,...n];if(typeof e[Symbol.iterator]==`function`){let t=[];for(let[n,r]of e)if(r!==void 0)for(let e of Array.isArray(r)?r:[r])t.push(n,e);return[...t,...n]}return{...e,...t}}function jt(e,t){let n;try{n=new URL(e)}catch{throw Error(`Invalid URL`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw Error(`Only HTTP and HTTPS URLs are allowed`);if(n.hostname===`0.0.0.0`||n.hostname===`[::]`)throw Error(`URLs pointing to private or internal addresses are not allowed. 0.0.0.0 is a bind address rather than a destination: use http://127.0.0.1 with the same port.`);let r=_t(n.hostname,ht(n),t)&&(!pt(n.hostname)||mt(n.hostname));if(vt(n.hostname)&&!r)throw Error(`URLs pointing to private or internal addresses are not allowed`)}async function Mt(e,t,n){try{jt(e,n),t?.({step:`validate`,status:`ok`})}catch(e){let n=e instanceof Error?e.message:`Invalid URL`;throw t?.({step:`validate`,status:`fail`,error:n}),e}let r=new URL(e);return yt(r.hostname,ht(r),t,n)}var Nt=`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 LintPage/1.0 (+https://lintpage.com)`;async function Pt(e,t){let{onStep:n,grant:r}=t??{};await Mt(e,n,r);let i=Date.now();n?.({step:`fetch`,status:`start`,url:e});let a;try{a=await Et(e,{headers:{"User-Agent":Nt,Accept:`text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8`,"Accept-Language":`en-US,en;q=0.9`,"Accept-Encoding":`gzip, deflate, br`},signal:AbortSignal.timeout(3e4)},r)}catch(e){let t=e instanceof Error?e.message:`fetch failed`;throw n?.({step:`fetch`,status:`fail`,error:t}),e}let o=Date.now()-i;if(!a.ok){let e=`Failed to fetch URL: ${a.status} ${a.statusText}`;throw n?.({step:`fetch`,status:`fail`,error:e,statusCode:a.status}),Object.assign(Error(e),{finalUrl:a.url})}n?.({step:`fetch`,status:`ok`,statusCode:a.status,contentType:a.headers.get(`content-type`),ttfbMs:o}),n?.({step:`parse`,status:`start`});let s;try{s=await a.text()}catch(e){let t=e instanceof Error?e.message:`failed to read body`;throw n?.({step:`parse`,status:`fail`,error:t}),e}let c;try{let{JSDOM:e}=await import(`jsdom`);c=new e(s).window.document,n?.({step:`parse`,status:`ok`,sizeBytes:Buffer.byteLength(s,`utf8`)})}catch(e){let t=e instanceof Error?e.message:`failed to parse HTML`;throw n?.({step:`parse`,status:`fail`,error:t}),e}return{document:c,response:a,html:s,ttfbMs:o}}var Ft={"Pre-Launch":25,SEO:30,"AI Visibility":10,Accessibility:20,Performance:15};function It(e){let t={};for(let e of Object.keys(Ft))t[e]={critical:0,warning:0,info:0};for(let n of e){let e=n.category;t[e]||(t[e]={critical:0,warning:0,info:0}),n.severity===`CRITICAL`?t[e].critical++:n.severity===`WARNING`?t[e].warning++:t[e].info++}let n={};for(let[e,r]of Object.entries(Ft)){let i=t[e]||{critical:0,warning:0,info:0},a=Math.min(100,i.critical*30+i.warning*5+i.info*1);n[e]={score:Math.round(r*(1-a/100)*10)/10,max:r,deductionPercent:a}}return n}function Lt(e){let t=It(e),n=Object.values(t).reduce((e,t)=>e+t.score,0);return Math.round(n)}var Rt=new Set([`CRITICAL`,`WARNING`,`INFO`]),zt=`ttfb`,Bt=`redirected-off-site`;function Vt(e){try{let t=new URL(e);return t.hash=``,t.href}catch{return e}}function Ht(e,t){if(!(typeof t!=`string`||!t)&&!(t===e||t===Vt(e)))return t}function Ut(e,t){let n=Wt(e),r=Wt(t);return n&&r&&n!==r?r:null}function Wt(e){try{return new URL(e).hostname.toLowerCase().replace(/\.$/,``).replace(/^www\./,``)}catch{return null}}function Gt(e,t){let n=Ut(e,t);if(!n)return null;let r=``;try{r=new URL(t).pathname}catch{}let i=n===`vercel.com`&&(r.startsWith(`/sso-api`)||r.startsWith(`/login`));return{ruleId:Bt,ruleName:`Redirected to another site`,message:i?`This deployment is behind Vercel Deployment Protection: it redirected to the Vercel login page, so the audit checked that page instead of your site.`:`This URL redirected to ${n}, so the audit checked that site instead of this one.`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`free`,fix:i?`Set VERCEL_AUTOMATION_BYPASS_SECRET to the project's Protection Bypass for Automation secret (Vercel: Settings, Deployment Protection), or turn off protection for this deployment.`:`Audit ${t} directly. If this redirect is intended, set the severity of \`${Bt}\` lower in your config.`,data:{from:e,to:t}}}function Kt(e,t,n){let r=t?.rules;return r?e.map(e=>{if(!n.has(e.ruleId))return e;let t=r[e.ruleId];if(typeof t!=`object`||!t)return e;let i=t.severity;return!i||!Rt.has(i)||i===e.severity?e:{...e,severity:i}}):e}function qt(e,t,n){let r=[];for(let i of e){if(n?.rules){let e=n.rules[i.meta.id];if(e===!1||typeof e==`object`&&e.enabled===!1)continue}try{let e=i.run(t);r.push(...e)}catch(e){console.warn(`[lintpage] Rule "${i.meta.id}" threw an error: ${e instanceof Error?e.message:String(e)}`)}}return r}function Jt(e,t){if(!t?.rules)return!0;let n=t.rules[e];return!(n===!1||typeof n==`object`&&n.enabled===!1)}async function Yt(e,t,n){let r=e.filter(e=>Jt(e.meta.id,n)),i=await Promise.allSettled(r.map(e=>e.run(t))),a=[];for(let e=0;e<i.length;e++){let t=i[e];if(t.status===`fulfilled`)a.push(...t.value);else{let n=t.reason;console.warn(`[lintpage] Async rule "${r[e].meta.id}" threw an error: ${n instanceof Error?n.message:String(n)}`)}}return a}async function Xt(e,t,n){let r=e.filter(e=>Jt(e.meta.id,n)),i=await Promise.allSettled(r.map(e=>e.run(t))),a=[];for(let e=0;e<i.length;e++){let t=i[e];if(t.status===`fulfilled`)a.push(...t.value);else{let n=t.reason;console.warn(`[lintpage] Standalone rule "${r[e].meta.id}" threw an error: ${n instanceof Error?n.message:String(n)}`)}}return a}async function Zt(e,t){let n=t?.onStep,r=[...dt],i=[],a=[];if(t?.plugins)for(let e of t.plugins)r.push(...e.rules),e.asyncRules&&i.push(...e.asyncRules),e.standaloneRules&&a.push(...e.standaloneRules);let o=null,s=0,c=null,l;try{let r=await Pt(e,{onStep:n,grant:t?.grant});l=Ht(e,r.response.url),o={document:r.document,url:e,response:r.response,isHttps:e.startsWith(`https://`)},s=r.ttfbMs}catch(t){let n=t instanceof Error?t.message:String(t),r=/Failed to fetch URL: (\d{3})/.exec(n);c={message:n,statusCode:r?Number(r[1]):void 0},l=Ht(e,t?.finalUrl)}let u=r.length+i.length+a.length;n?.({step:`rules`,status:`start`,count:u});let d=o?qt(r,o,t?.config):[],f=[];if(o&&i.length>0&&f.push(Yt(i,o,t?.config)),a.length>0&&f.push(Xt(a,e,t?.config)),f.length>0){let e=await Promise.all(f);for(let t of e)d.push(...t)}if(c){let t=c.statusCode,n=l?Ut(e,l):null,r=!n&&(t===403||t===429||t===503);d.push({ruleId:`target-unreachable`,ruleName:`Target unreachable to LintPage`,message:n?`The page redirected to ${n}, which ${t?`answered HTTP ${t}`:`could not be fetched`}. DOM-dependent checks were skipped; standalone checks still ran.`:r?`Your WAF or CDN blocked our outer probe (HTTP ${t}). DOM-dependent checks were skipped; AI visibility and other standalone checks still ran.`:`LintPage could not fetch the page (${c.message}). DOM-dependent checks were skipped; standalone checks (AI visibility, robots.txt, sitemap) still ran.`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`free`,fix:n?`Check where ${e} redirects: the failing response came from ${n}, not from this site.`:r?'If you control this site: allow the `LintPage/1.0` token in your WAF or CDN rules. Our probe sends a Chrome-prefixed User-Agent containing "LintPage/1.0", so match on that token rather than on the whole string. If you don\'t control the site, the partial report below still shows what AI crawlers see.':`Verify the URL is reachable from the public internet and returns 2xx for a Chrome-like User-Agent within 30s.`,data:{statusCode:t,raw:c.message}})}if(t?.reportOffSiteRedirect&&l&&Jt(`redirected-off-site`,t?.config)){let t=Gt(e,l);t&&d.push(t)}s>1800?d.push({ruleId:zt,ruleName:`Time to First Byte`,message:`Slow server response time (TTFB: ${s}ms) - aim for under 800ms`,severity:`WARNING`,category:`Performance`,tier:`free`,fix:`Optimize server response time: enable caching, use a CDN, optimize database queries, or upgrade hosting.`,data:{ms:s}}):s>800&&d.push({ruleId:zt,ruleName:`Time to First Byte`,message:`Server response time could be improved (TTFB: ${s}ms) - aim for under 800ms`,severity:`INFO`,category:`Performance`,tier:`free`,fix:`Consider enabling server-side caching or using a CDN to reduce response time.`,data:{ms:s}}),n?.({step:`rules`,status:`done`,found:d.length});let p=new Set([...r.map(e=>e.meta.id),...i.map(e=>e.meta.id),...a.map(e=>e.meta.id),zt,Bt]),m=Kt(t?.adjustResults?t.adjustResults(d):d,t?.config,p),h=It(m),g=Object.values(h).reduce((e,t)=>e+t.score,0),_=m.some(e=>e.severity===`CRITICAL`&&e.category!==`AI Visibility`),v=m.some(e=>e.severity===`CRITICAL`&&e.category===`AI Visibility`),y=_?`FAIL`:v?`AI-FAIL`:`PASS`;return{url:e,timestamp:new Date().toISOString(),results:m,score:Math.round(g),overallStatus:y,categoryScores:h,...l?{finalUrl:l}:{}}}var Qt=[`.lintpagerc.json`,`.lintpagerc`,`lintpage.config.json`];function $t(e){let t=e||process.cwd();if(e&&(0,s.existsSync)(e)&&(0,s.statSync)(e).isFile())try{let t=(0,s.readFileSync)(e,`utf-8`);return JSON.parse(t)}catch{return null}let n=t;for(let e of Qt){let t=(0,c.join)(n,e);if((0,s.existsSync)(t))try{let e=(0,s.readFileSync)(t,`utf-8`);return JSON.parse(e)}catch{return null}}return null}function en(){return{rules:{}}}var tn={meta:{id:`ssl`,name:`SSL / HTTPS`,category:`Pre-Launch`,tier:`pro`,description:`Checks that the site is served over HTTPS`},run(e){let t=[];return e.isHttps||t.push({ruleId:`ssl`,ruleName:`SSL / HTTPS`,message:`Site is not using HTTPS - required for SEO and user trust. Search engines penalize HTTP sites.`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`pro`,fix:`Install an SSL certificate and redirect all HTTP traffic to HTTPS. Most hosting providers offer free SSL via Let's Encrypt.`}),t}},nn={meta:{id:`robots-txt-check`,name:`robots.txt Check`,category:`Pre-Launch`,tier:`pro`,description:`Fetches and validates robots.txt for proper directives`},async run(e){let t=[];try{let n=new URL(`/robots.txt`,e).href,r=await Et(n,{headers:{"User-Agent":`LintPage-Bot/1.0`}});if(!r.ok)return t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`No robots.txt file found - recommended to have one`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Create a robots.txt file at your site root with at least "User-Agent: *" and "Allow: /" directives.`}),t;let i=await r.text(),a=i.split(`
|
|
97
|
+
`).map(e=>e.trim()),o=new Map,s=`*`;for(let e of a){if(!e||e.startsWith(`#`))continue;let[t,...n]=e.split(`:`).map(e=>e.trim()),r=n.join(`:`).trim();if(!t||!r)continue;let i=t.toUpperCase();if(i===`USER-AGENT`)s=r,o.has(s)||o.set(s,{disallow:[],allow:[]});else if(i===`DISALLOW`){let e=o.get(s)||{disallow:[],allow:[]};e.disallow.push(r),o.set(s,e)}else if(i===`ALLOW`){let e=o.get(s)||{disallow:[],allow:[]};e.allow.push(r),o.set(s,e)}}let c=o.get(`*`);c&&c.disallow.includes(`/`)&&t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`robots.txt contains "Disallow: /" for User-Agent: * - this blocks ALL search engines from crawling your entire site!`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`pro`,fix:`Change "Disallow: /" to "Allow: /" in your robots.txt, or remove the Disallow directive entirely.`}),i.toLowerCase().includes(`sitemap`)||t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`robots.txt does not reference sitemap.xml - consider adding a Sitemap directive`,severity:`INFO`,category:`Pre-Launch`,tier:`pro`,fix:`Add "Sitemap: https://yoursite.com/sitemap.xml" to the end of your robots.txt file.`}),a.some(e=>!e||e.startsWith(`#`)?!1:!e.includes(`:`)&&e.length>0)&&t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`robots.txt may have syntax errors - ensure each directive follows "Directive: value" format`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Review each line in robots.txt. Every directive must follow the "Directive: value" format (e.g., "User-Agent: *").`}),(o.size===0||o.size===1&&!o.has(`*`))&&t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`robots.txt exists but has no rules defined - add User-Agent and Disallow/Allow directives`,severity:`INFO`,category:`Pre-Launch`,tier:`pro`,fix:`Add at minimum "User-Agent: *" followed by "Allow: /" to your robots.txt.`})}catch{t.push({ruleId:`robots-txt-check`,ruleName:`robots.txt Check`,message:`Could not fetch robots.txt - ensure it exists at root domain`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Create a robots.txt file at your domain root (e.g., https://yoursite.com/robots.txt).`})}return t}},rn={meta:{id:`sitemap-presence`,name:`Sitemap Presence`,category:`Pre-Launch`,tier:`pro`,description:`Checks for the existence and validity of sitemap.xml`},async run(e){let t=[];try{let n=new URL(`/sitemap.xml`,e).href,r=await Et(n,{headers:{"User-Agent":`LintPage-Bot/1.0`}});if(!r.ok)return t.push({ruleId:`sitemap-presence`,ruleName:`Sitemap Presence`,message:`No sitemap.xml found - recommended for search engines to discover your pages`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Generate a sitemap.xml and place it at your domain root. Most frameworks (Next.js, WordPress) have built-in sitemap generation.`}),t;let i=await r.text(),a=i.includes(`<urlset`),o=i.includes(`<sitemapindex`);if((!i.includes(`<?xml`)||!a&&!o)&&t.push({ruleId:`sitemap-presence`,ruleName:`Sitemap Presence`,message:`sitemap.xml exists but may not be valid XML format`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Ensure your sitemap.xml starts with <?xml version="1.0"?> and uses the <urlset> or <sitemapindex> element with proper namespace.`}),o){let e=i.match(/<sitemap>/g);return(!e||e.length===0)&&t.push({ruleId:`sitemap-presence`,ruleName:`Sitemap Presence`,message:`Sitemap index file is empty - add child sitemap references`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Add <sitemap><loc>https://yoursite.com/sitemap-pages.xml</loc></sitemap> entries to your sitemap index.`}),t}let s=i.match(/<loc>/g);(s?s.length:0)===0&&t.push({ruleId:`sitemap-presence`,ruleName:`Sitemap Presence`,message:`sitemap.xml is empty - add URLs to help search engines discover content`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Add <url><loc>https://yoursite.com/page</loc></url> entries to your sitemap for each page you want indexed.`})}catch{t.push({ruleId:`sitemap-presence`,ruleName:`Sitemap Presence`,message:`Could not fetch sitemap.xml - create one at /sitemap.xml`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Create a sitemap.xml at your domain root. Use a sitemap generator or your framework's built-in sitemap feature.`})}return t}},an=[`googletagmanager.com`,`google-analytics.com`,`plausible.io`,`usefathom.com`,`posthog.com`,`mixpanel.com`,`mxpnl.com`,`va.vercel-scripts.com`,`vitals.vercel-insights.com`,`cloudflareinsights.com`,`umami.is`,`clarity.ms`];function on(e){let t=e.toLowerCase().replace(/\.$/,``);return an.some(e=>t===e||t.endsWith(`.${e}`))}function sn(e,t){let n=new Set([`preconnect`,`dns-prefetch`,`preload`,`modulepreload`]);for(let r of Array.from(e.querySelectorAll(`link[rel][href]`)))if((r.getAttribute(`rel`)||``).toLowerCase().split(/\s+/).some(e=>n.has(e)))try{let{hostname:e}=new URL(r.getAttribute(`href`)||``,t);if(on(e))return!0}catch{}return!1}function cn(e){if(e.startsWith(`'`))return null;let t=e.replace(/^[a-z][a-z0-9+.-]*:\/\//i,``);return t===e&&t.endsWith(`:`)?null:(t=t.split(`/`)[0].replace(/:[0-9*]+$/,``).replace(/^\*\./,``),t.includes(`.`)?t:null)}function ln(e){let t=[];for(let n of[`content-security-policy`,`content-security-policy-report-only`]){let r=e.response?.headers?.get(n);r&&t.push(r)}for(let n of Array.from(e.document.querySelectorAll(`meta[http-equiv]`)))(n.getAttribute(`http-equiv`)||``).toLowerCase()===`content-security-policy`&&t.push(n.getAttribute(`content`)||``);return t.some(e=>e.split(/[;,]/).flatMap(e=>e.trim().split(/\s+/).slice(1)).some(e=>{let t=cn(e);return t!==null&&on(t)}))}var un={meta:{id:`tracking`,name:`Analytics Tracking`,category:`Pre-Launch`,tier:`pro`,description:`Checks for an analytics service (Google Analytics, Tag Manager, Plausible, PostHog and others) in the page scripts, resource hints and Content-Security-Policy`},run(e){let{document:t}=e,n=[],r=!1,i=t.querySelectorAll(`script`),a=t.documentElement?.outerHTML||``;return i.forEach(e=>{let t=e.getAttribute(`src`)||``,n=e.textContent||``;(t.includes(`googletagmanager.com/gtag/js`)||n.includes(`gtag(`))&&(r=!0),(t.includes(`googletagmanager.com/gtm.js`)||n.includes(`GTM-`))&&(r=!0),t.includes(`plausible.io/js/`)&&(r=!0),(t.includes(`usefathom.com/script.js`)||t.includes(`cdn.usefathom.com`))&&(r=!0),(t.includes(`matomo.js`)||t.includes(`matomo.php`)||t.includes(`piwik.js`))&&(r=!0),(t.includes(`posthog-js`)||t.includes(`i.posthog.com`))&&(r=!0),(t.includes(`cdn.mxpnl.com`)||t.includes(`mixpanel.com`))&&(r=!0),(t.includes(`va.vercel-scripts.com`)||t.includes(`vitals.vercel-insights.com`))&&(r=!0),t.includes(`static.cloudflareinsights.com`)&&(r=!0),(t.includes(`umami.js`)||t.includes(`umami.is/script.js`))&&(r=!0),t.includes(`clarity.ms/tag`)&&(r=!0)}),!r&&(a.includes(`@vercel/analytics`)||a.includes(`vercel-analytics`))&&(r=!0),!r&&sn(t,e.url)&&(r=!0),!r&&ln(e)&&(r=!0),r||n.push({ruleId:`tracking`,ruleName:`Analytics Tracking`,message:`No analytics script found in the page HTML or headers. Analytics loaded from a JavaScript bundle cannot be detected, so check this yourself`,severity:`INFO`,category:`Pre-Launch`,tier:`pro`,fix:`If the site has no analytics, add one to measure traffic after launch. Options include Google Analytics, Plausible, Fathom, Matomo, PostHog, Vercel Analytics, Umami, or Cloudflare Web Analytics. If it loads analytics from its own JavaScript, nothing needs to change.`,data:{foundAnalytics:r}}),n}},dn={meta:{id:`x-robots-tag`,name:`X-Robots-Tag Header`,category:`Pre-Launch`,tier:`pro`,description:`Checks the X-Robots-Tag HTTP header for noindex/nofollow`},run(e){let{response:t}=e,n=[],r=t.headers.get(`x-robots-tag`);if(!r)return n;let i=r.toLowerCase();return i.includes(`noindex`)&&n.push({ruleId:`x-robots-tag`,ruleName:`X-Robots-Tag Header`,message:`X-Robots-Tag HTTP header contains "noindex" - page will NOT be indexed by search engines!`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`pro`,fix:`Remove the X-Robots-Tag header from your server configuration, or change its value to "index, follow".`,data:{value:r}}),i.includes(`nofollow`)&&n.push({ruleId:`x-robots-tag`,ruleName:`X-Robots-Tag Header`,message:`X-Robots-Tag HTTP header contains "nofollow" - links will not be followed by search engines`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Remove "nofollow" from the X-Robots-Tag header if you want search engines to follow your links.`,data:{value:r}}),n}},fn={meta:{id:`thin-content`,name:`Thin Content`,category:`SEO`,tier:`pro`,description:`Checks that the page has sufficient text content for search engines`},run(e){let{document:t}=e,n=[],r=(t.body?.textContent||``).trim().split(/\s+/).filter(Boolean).length;return r<300&&n.push({ruleId:`thin-content`,ruleName:`Thin Content`,message:`Page has thin content (${r} words) - search engines prefer pages with substantial content (300+ words)`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Add more meaningful text content to the page. Search engines rank pages with substantial, relevant content higher.`,data:{wordCount:r}}),n}},pn={meta:{id:`duplicate-meta`,name:`Duplicate Meta Tags`,category:`SEO`,tier:`pro`,description:`Checks for duplicate title, meta description, and canonical tags`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`title`);r.length>1&&n.push({ruleId:`duplicate-meta`,ruleName:`Duplicate Meta Tags`,message:`Found ${r.length} <title> tags - should have exactly one`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Remove duplicate <title> tags. Keep only one in your <head> element.`,data:{count:r.length,tag:`title`}});let i=t.querySelectorAll(`meta[name="description"]`);i.length>1&&n.push({ruleId:`duplicate-meta`,ruleName:`Duplicate Meta Tags`,message:`Found ${i.length} meta description tags - should have exactly one`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Remove duplicate <meta name="description"> tags. Keep only one in your <head> element.`,data:{count:i.length,tag:`meta-description`}});let a=t.querySelectorAll(`link[rel="canonical"]`);return a.length>1&&n.push({ruleId:`duplicate-meta`,ruleName:`Duplicate Meta Tags`,message:`Found ${a.length} canonical link tags - should have exactly one`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Remove duplicate <link rel="canonical"> tags. Keep only one in your <head> element.`,data:{count:a.length,tag:`canonical`}}),n}},mn={meta:{id:`structured-data`,name:`Structured Data`,category:`SEO`,tier:`pro`,description:`Checks for the presence and validity of JSON-LD structured data`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`script[type="application/ld+json"]`),i=[];return r.forEach(e=>{try{let t=JSON.parse(e.textContent||``);if(Array.isArray(t[`@graph`]))for(let e of t[`@graph`])e[`@type`]&&i.push(e[`@type`]);else t[`@type`]&&i.push(t[`@type`])}catch{n.push({ruleId:`structured-data`,ruleName:`Structured Data`,message:`Invalid JSON-LD structured data found`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Validate your JSON-LD using Google's Rich Results Test tool and fix any JSON syntax errors.`})}}),i.length===0&&n.push({ruleId:`structured-data`,ruleName:`Structured Data`,message:`No structured data (JSON-LD) found`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Add a <script type="application/ld+json"> block with Organization, WebPage, or other relevant schema.org types.`,data:{types:i}}),n}},hn={meta:{id:`charset`,name:`Character Encoding`,category:`SEO`,tier:`pro`,description:`Checks for a proper charset/encoding declaration`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[charset]`),i=t.querySelector(`meta[http-equiv="Content-Type"]`);return!r&&!i&&n.push({ruleId:`charset`,ruleName:`Character Encoding`,message:`Missing character encoding declaration - may cause rendering issues with special characters`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add <meta charset="utf-8" /> as the first element in your <head> tag.`}),n}},gn={meta:{id:`image-alt-text`,name:`Image Alt Text`,category:`Accessibility`,tier:`pro`,description:`Checks that all images have alt attributes`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`img`),i=0;return r.forEach(e=>{e.getAttribute(`alt`)??i++}),i>0&&n.push({ruleId:`image-alt-text`,ruleName:`Image Alt Text`,message:`${i} of ${r.length} images missing alt attributes`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Add descriptive alt attributes to all images. Screen readers use alt text to describe images to visually impaired users. Use alt="" for decorative images.`,data:{total:r.length,missingAlt:i}}),n}},_n={meta:{id:`accessibility`,name:`Accessibility & ARIA`,category:`Accessibility`,tier:`pro`,description:`Checks buttons, links, inputs, and ARIA attributes for accessibility`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`button`),i=0;r.forEach(e=>{let t=e.textContent?.trim(),n=e.getAttribute(`aria-label`),r=e.getAttribute(`aria-labelledby`);!t&&!n&&!r&&i++}),i>0&&n.push({ruleId:`accessibility`,ruleName:`Accessibility & ARIA`,message:`${i} button(s) missing accessible name (no text, aria-label, or aria-labelledby)`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Add visible text content, an aria-label, or aria-labelledby attribute to each button.`,data:{inaccessibleButtons:i}});let a=t.querySelectorAll(`a`),o=0;a.forEach(e=>{let t=e.textContent?.trim(),n=e.getAttribute(`aria-label`),r=e.getAttribute(`aria-labelledby`);!t&&!n&&!r&&o++}),o>0&&n.push({ruleId:`accessibility`,ruleName:`Accessibility & ARIA`,message:`${o} link(s) missing accessible name (no text, aria-label, or aria-labelledby)`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Add descriptive text content, an aria-label, or aria-labelledby attribute to each link so screen readers can identify it.`,data:{inaccessibleLinks:o}});let s=t.querySelectorAll(`input:not([type='hidden'])`),c=0;s.forEach(e=>{let n=e.getAttribute(`id`),r=e.getAttribute(`aria-label`),i=e.getAttribute(`aria-labelledby`),a=e.getAttribute(`title`),o=n&&t.querySelector(`label[for="${n}"]`),s=e.closest(`label`)!==null;!o&&!s&&!r&&!i&&!a&&c++}),c>0&&n.push({ruleId:`accessibility`,ruleName:`Accessibility & ARIA`,message:`${c} input(s) missing associated label`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Add a <label for="inputId"> element, or add an aria-label attribute to each input.`,data:{unlabeledInputs:c}});let l=t.querySelectorAll(`div[onclick], span[onclick]`),u=0;l.forEach(e=>{e.getAttribute(`role`)||u++}),u>0&&n.push({ruleId:`accessibility`,ruleName:`Accessibility & ARIA`,message:`${u} interactive div/span element(s) missing role attribute`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Use a <button> element instead, or add role="button" and an aria-label to interactive elements.`,data:{missingRoles:u}});let d=t.querySelectorAll(`nav, [role="navigation"]`),f=0;return d.forEach(e=>{let t=e.getAttribute(`aria-label`),n=e.getAttribute(`aria-labelledby`);!t&&!n&&f++}),f>0&&n.push({ruleId:`accessibility`,ruleName:`Accessibility & ARIA`,message:`${f} navigation element(s) missing aria-label or aria-labelledby`,severity:`INFO`,category:`Accessibility`,tier:`pro`,fix:`Add aria-label="Main navigation" (or similar descriptive label) to your <nav> elements.`,data:{unlabeledNav:f}}),n}},vn={meta:{id:`semantic-structure`,name:`Semantic Structure`,category:`Accessibility`,tier:`pro`,description:`Checks for proper semantic HTML: landmarks, lists, tables, articles`},run(e){let{document:t}=e,n=[];t.querySelector(`main`)||n.push({ruleId:`semantic-structure`,ruleName:`Semantic Structure`,message:`Missing <main> element - should wrap primary page content for better structure`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Wrap your primary page content in a <main> element. There should be exactly one per page.`}),t.querySelectorAll(`main, section, article, aside, nav`).length===0&&n.push({ruleId:`semantic-structure`,ruleName:`Semantic Structure`,message:`Missing semantic page regions - use <main>, <section>, <article>, <nav>, <aside> instead of generic divs`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Replace generic <div> containers with semantic elements: <main>, <nav>, <section>, <article>, <aside>.`});let r=t.querySelectorAll(`li`),i=0;r.forEach(e=>{let t=e.parentElement;t?.tagName!==`UL`&&t?.tagName!==`OL`&&i++}),i>0&&n.push({ruleId:`semantic-structure`,ruleName:`Semantic Structure`,message:`${i} <li> element(s) found outside of <ul> or <ol> - breaks semantic structure`,severity:`WARNING`,category:`Accessibility`,tier:`pro`,fix:`Wrap <li> elements inside a <ul> (unordered) or <ol> (ordered) list element.`,data:{orphanedLi:i}});let a=t.querySelectorAll(`table`),o=0;a.forEach(e=>{e.querySelector(`th`)||o++}),o>0&&n.push({ruleId:`semantic-structure`,ruleName:`Semantic Structure`,message:`${o} table(s) missing <th> header cells`,severity:`INFO`,category:`Accessibility`,tier:`pro`,fix:`Add <th> cells to define table column or row headers. Optionally wrap them in a <thead> element for additional structure.`,data:{tablesWithoutHeaders:o}});let s=t.querySelectorAll(`article`),c=0;return s.forEach(e=>{e.querySelector(`h1, h2, h3, h4, h5, h6`)||c++}),c>0&&n.push({ruleId:`semantic-structure`,ruleName:`Semantic Structure`,message:`${c} <article> element(s) without a heading`,severity:`INFO`,category:`Accessibility`,tier:`pro`,fix:`Add a heading (h2-h6) inside each <article> element to provide context.`,data:{articlesWithoutHeading:c}}),n}},yn={meta:{id:`performance`,name:`Performance Hints`,category:`Performance`,tier:`pro`,description:`Checks for inline styles, lazy loading, and script count`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`img`),i=Array.from(r).slice(3),a=0;i.forEach(e=>{e.getAttribute(`loading`)||a++}),a>0&&n.push({ruleId:`performance`,ruleName:`Performance Hints`,message:`${a} below-the-fold image(s) without loading="lazy" - add lazy loading to defer offscreen images`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Add loading="lazy" to images below the fold. Do NOT add loading="lazy" to above-the-fold or LCP images - this hurts performance (per web.dev).`,data:{noLazyLoad:a,totalImages:r.length}});let o=t.querySelectorAll(`script[src]`);return o.length>10&&n.push({ruleId:`performance`,ruleName:`Performance Hints`,message:`Consider reducing external scripts (${o.length} found) for better performance`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Audit your scripts and remove unused ones. Consider bundling or deferring non-critical scripts.`,data:{scriptCount:o.length}}),n}},bn={meta:{id:`image-dimensions`,name:`Image Dimensions`,category:`Performance`,tier:`pro`,description:`Checks that images have explicit width and height to prevent layout shift (CLS)`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`img`),i=0;return r.forEach(e=>{let t=e.getAttribute(`width`),n=e.getAttribute(`height`);(!t||!n)&&i++}),i>0&&n.push({ruleId:`image-dimensions`,ruleName:`Image Dimensions`,message:`${i} image${i===1?``:`s`} missing explicit width/height attributes - causes layout shift (CLS)`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Add width and height attributes to <img> tags to reserve space and prevent layout shift.`,data:{missingCount:i,totalImages:r.length}}),n}},xn={meta:{id:`ttfb-pro`,name:`Time to First Byte (Pro)`,category:`Performance`,tier:`pro`,description:`Measures server response time (TTFB) with detailed thresholds`},async run(e){let t=[];try{let n=Date.now();await Et(e,{headers:{"User-Agent":`LintPage-Bot/1.0`}});let r=Date.now()-n;r>1800?t.push({ruleId:`ttfb-pro`,ruleName:`Time to First Byte (Pro)`,message:`Slow server response time (TTFB: ${r}ms) - aim for under 800ms`,severity:`WARNING`,category:`Performance`,tier:`pro`,fix:`Optimize server response time: enable caching, use a CDN, optimize database queries, or upgrade hosting.`,data:{ms:r}}):r>800&&t.push({ruleId:`ttfb-pro`,ruleName:`Time to First Byte (Pro)`,message:`Server response time could be improved (TTFB: ${r}ms) - aim for under 800ms`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Consider enabling server-side caching or using a CDN to reduce response time.`,data:{ms:r}})}catch{t.push({ruleId:`ttfb-pro`,ruleName:`Time to First Byte (Pro)`,message:`Could not measure TTFB - server may be unreachable`,severity:`WARNING`,category:`Performance`,tier:`pro`,fix:`Ensure your server is accessible and responding to requests.`})}return t}},Sn={meta:{id:`mixed-content`,name:`Mixed Content`,category:`Pre-Launch`,tier:`pro`,description:`Checks for HTTP resources loaded on an HTTPS page (mixed content)`},run(e){let{document:t,isHttps:n}=e,r=[];if(!n)return r;let i=[`img[src^="http:"]`,`script[src^="http:"]`,`link[href^="http:"]`,`iframe[src^="http:"]`,`video[src^="http:"]`,`audio[src^="http:"]`,`object[data^="http:"]`,`source[src^="http:"]`],a=0;return i.forEach(e=>{a+=t.querySelectorAll(e).length}),a>0&&r.push({ruleId:`mixed-content`,ruleName:`Mixed Content`,message:`Found ${a} mixed content resource${a===1?``:`s`} (HTTP on HTTPS page) - browsers may block these`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Change all resource URLs from http:// to https:// or use protocol-relative URLs (//).`,data:{count:a}}),r}},Cn={meta:{id:`security-headers`,name:`Security Headers`,category:`Pre-Launch`,tier:`pro`,description:`Checks for important security headers (CSP, HSTS, X-Content-Type-Options, Permissions-Policy)`},run(e){let{response:t}=e,n=[],r=[{name:`content-security-policy`,label:`Content-Security-Policy`},{name:`strict-transport-security`,label:`Strict-Transport-Security (HSTS)`},{name:`x-content-type-options`,label:`X-Content-Type-Options`},{name:`permissions-policy`,label:`Permissions-Policy`}],i=[];return r.forEach(({name:e,label:n})=>{t.headers.get(e)||i.push(n)}),i.length>0&&n.push({ruleId:`security-headers`,ruleName:`Security Headers`,message:`Missing security headers: ${i.join(`, `)}`,severity:`INFO`,category:`Pre-Launch`,tier:`pro`,fix:`Configure your server or hosting provider to send these security headers. Most can be set in next.config.js headers() or your CDN settings.`,data:{missing:i}}),n}},wn={meta:{id:`og-image-size`,name:`OG Image Size`,category:`SEO`,tier:`pro`,description:`Checks that the og:image URL exists and advises on recommended dimensions (1200x630)`},run(e){let{document:t}=e,n=[];if(!t.querySelector(`meta[property="og:image"]`)?.getAttribute(`content`)?.trim())return n;let r=t.querySelector(`meta[property="og:image:width"]`),i=t.querySelector(`meta[property="og:image:height"]`),a=Number.parseInt(r?.getAttribute(`content`)||``,10),o=Number.parseInt(i?.getAttribute(`content`)||``,10);return!r||!i||Number.isNaN(a)||Number.isNaN(o)?(n.push({ruleId:`og-image-size`,ruleName:`OG Image Size`,message:`Missing og:image:width and og:image:height meta tags - social platforms may crop your image incorrectly`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add <meta property="og:image:width" content="1200" /> and <meta property="og:image:height" content="630" /> to your <head>.`}),n):((a<1200||o<630)&&n.push({ruleId:`og-image-size`,ruleName:`OG Image Size`,message:`OG image dimensions (${a}x${o}) are below recommended 1200x630 - may appear blurry on social platforms`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Use an image at least 1200x630 pixels for best display on Facebook, LinkedIn, and other social platforms.`,data:{width:a,height:o}}),n)}},Tn=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]),En=new Set([`.jpg`,`.jpeg`,`.png`,`.gif`,`.webp`]),Dn={meta:{id:`og-image-type`,name:`OG Image Type`,category:`SEO`,tier:`pro`,description:`Checks that the og:image type is a widely-supported format (JPEG, PNG, GIF, WebP)`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[property="og:image"]`)?.getAttribute(`content`)?.trim();if(!r)return n;let i=t.querySelector(`meta[property="og:image:type"]`)?.getAttribute(`content`)?.trim();if(i&&!Tn.has(i.toLowerCase()))return n.push({ruleId:`og-image-type`,ruleName:`OG Image Type`,message:`OG image type "${i}" may not be supported by all social platforms`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Use JPEG or PNG for og:image. These formats are supported by all social platforms.`,data:{type:i}}),n;if(!i)try{let e=new URL(r,`https://example.com`),t=e.pathname.substring(e.pathname.lastIndexOf(`.`)).toLowerCase();t&&!En.has(t)&&n.push({ruleId:`og-image-type`,ruleName:`OG Image Type`,message:`OG image URL has extension "${t}" which may not be supported by all social platforms`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Use JPEG or PNG for og:image, and add <meta property="og:image:type" content="image/jpeg" /> to your <head>.`,data:{extension:t}})}catch{}return n}},On={meta:{id:`twitter-image`,name:`Twitter/X Image`,category:`SEO`,tier:`pro`,description:`Checks for twitter:image meta tag for rich card previews on X/Twitter`},run(e){let{document:t}=e,n=[];if(!t.querySelector(`meta[name="twitter:card"]`))return n;let r=t.querySelector(`meta[name="twitter:image"]`),i=t.querySelector(`meta[property="og:image"]`);return!r&&!i?n.push({ruleId:`twitter-image`,ruleName:`Twitter/X Image`,message:`Twitter card present but no twitter:image or og:image found - tweets will have no image preview`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add <meta name="twitter:image" content="https://yoursite.com/image.png" /> to your <head>.`}):!r&&i&&n.push({ruleId:`twitter-image`,ruleName:`Twitter/X Image`,message:`No explicit twitter:image - falling back to og:image. Consider adding twitter:image for optimal display.`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Add <meta name="twitter:image" content="..." /> for more control over how your image appears on X/Twitter.`}),n}},kn={meta:{id:`social-preview-render`,name:`Social Preview Completeness`,category:`SEO`,tier:`pro`,description:`Checks that all essential meta tags for social sharing previews are present and consistent`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[property="og:title"]`)?.getAttribute(`content`),i=t.querySelector(`meta[property="og:description"]`)?.getAttribute(`content`),a=t.querySelector(`meta[property="og:image"]`)?.getAttribute(`content`),o=t.querySelector(`meta[property="og:url"]`)?.getAttribute(`content`),s=t.querySelector(`meta[property="og:type"]`)?.getAttribute(`content`),c=t.querySelector(`title`)?.textContent?.trim();return t.querySelector(`meta[name="description"]`)?.getAttribute(`content`),s||n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`Missing og:type meta tag - required by the Open Graph protocol and needed for correct social preview rendering`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add <meta property="og:type" content="website" /> (or "article" for blog posts) to your <head>. This is a required property per the Open Graph protocol.`}),a&&a.trim()&&(t.querySelector(`meta[property="og:image:alt"]`)?.getAttribute(`content`)||n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`Missing og:image:alt - the Open Graph protocol recommends providing alt text when og:image is set`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Add <meta property="og:image:alt" content="Description of the image" /> to your <head> for accessibility.`})),r&&c&&r.length>0&&c.length>0&&r.length>60&&n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`og:title is ${r.length} characters - may be truncated on social platforms (recommended: 50-60)`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Keep og:title under 60 characters for best display on social platforms.`,data:{ogTitleLength:r.length}}),i&&i.length>200&&n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`og:description is ${i.length} characters - may be truncated on social platforms (recommended: under 200)`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Keep og:description under 200 characters for best display on social platforms.`,data:{ogDescLength:i.length}}),o&&!o.startsWith(`http`)&&n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`og:url should be an absolute URL starting with https://`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Change og:url to an absolute URL (e.g., https://yoursite.com/page).`}),a&&!a.startsWith(`http`)&&n.push({ruleId:`social-preview-render`,ruleName:`Social Preview Completeness`,message:`og:image should be an absolute URL starting with https://`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Change og:image to an absolute URL (e.g., https://yoursite.com/image.png).`}),n}},An={meta:{id:`title-keyword-stuffing`,name:`Title Keyword Stuffing`,category:`SEO`,tier:`pro`,description:`Detects potential keyword stuffing in the page title`},run(e){let{document:t}=e,n=[],r=t.querySelector(`title`)?.textContent?.trim();if(!r)return n;let i=r.toLowerCase().split(/[\s\-|:,]+/).filter(e=>e.length>3),a=new Map;for(let e of i)a.set(e,(a.get(e)||0)+1);let o=[];for(let[e,t]of a)t>=3&&o.push(`"${e}" (${t}x)`);o.length>0&&n.push({ruleId:`title-keyword-stuffing`,ruleName:`Title Keyword Stuffing`,message:`Potential keyword stuffing in title: ${o.join(`, `)}`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Write a natural, readable title. Avoid repeating the same keyword more than twice. Search engines may penalize keyword stuffing.`,data:{title:r,stuffedWords:o}});let s=(r.match(/[|–—]/g)||[]).length;return s>=3&&n.push({ruleId:`title-keyword-stuffing`,ruleName:`Title Keyword Stuffing`,message:`Title has ${s} separators - may appear spammy to search engines`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Simplify your title. Use at most one separator (|, – or —) to separate the page name from your brand.`,data:{separatorCount:s}}),n}},jn={meta:{id:`content-to-html-ratio`,name:`Content-to-HTML Ratio`,category:`SEO`,tier:`pro`,description:`Checks the ratio of visible text to total HTML markup`},run(e){let{document:t}=e,n=[],r=t.documentElement?.outerHTML?.length||0;if(r===0)return n;let i=(t.body?.textContent||``).replace(/\s+/g,` `).trim().length,a=Math.round(i/r*100);return a<10?n.push({ruleId:`content-to-html-ratio`,ruleName:`Content-to-HTML Ratio`,message:`Low content-to-HTML ratio (${a}%) - may indicate excessive markup or thin content`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Increase meaningful text content or reduce unnecessary HTML markup. Note: content-to-HTML ratio is not a direct ranking factor per Google, but correlates with page speed and code quality.`,data:{ratio:a,textLength:i,htmlLength:r}}):a<20&&n.push({ruleId:`content-to-html-ratio`,ruleName:`Content-to-HTML Ratio`,message:`Content-to-HTML ratio is ${a}% - could be improved (aim for 25%+)`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Consider adding more text content or reducing unnecessary HTML markup to improve the ratio.`,data:{ratio:a,textLength:i,htmlLength:r}}),n}},Mn={meta:{id:`title-uniqueness`,name:`Title Uniqueness`,category:`SEO`,tier:`pro`,description:`Flags titles that appear generic or auto-generated (single-page heuristic)`},run(e){let{document:t,url:n}=e,r=[],i=t.querySelector(`title`)?.textContent?.trim();if(!i)return r;for(let e of[/^home$/i,/^untitled/i,/^page \d+$/i,/^welcome$/i,/^index$/i,/^document$/i,/^my site$/i,/^my website$/i,/^website$/i,/^new page$/i])if(e.test(i)){r.push({ruleId:`title-uniqueness`,ruleName:`Title Uniqueness`,message:`Title "${i}" appears to be a generic/default title - use a unique, descriptive title`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Write a unique, descriptive title for each page that includes your target keyword.`,data:{title:i}});break}try{let e=new URL(n).hostname.replace(`www.`,``),t=e.split(`.`)[0];t&&i.toLowerCase()===t.toLowerCase()&&r.push({ruleId:`title-uniqueness`,ruleName:`Title Uniqueness`,message:`Title is just the domain name - add a descriptive page-specific title`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Include a page-specific description in your title, e.g., "Product Name — Your Brand".`,data:{title:i,hostname:e}})}catch{}return r}},Nn={meta:{id:`description-uniqueness`,name:`Description Uniqueness`,category:`SEO`,tier:`pro`,description:`Flags meta descriptions that appear generic or auto-generated (single-page heuristic)`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[name="description"]`)?.getAttribute(`content`)?.trim();if(!r)return n;for(let e of[/^welcome to/i,/^this is a website/i,/^a website about/i,/^home page/i,/^we are a company/i,/^default description/i])if(e.test(r)){n.push({ruleId:`description-uniqueness`,ruleName:`Description Uniqueness`,message:`Meta description appears generic - write a unique, compelling description for this page`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Write a unique meta description for each page that summarizes the specific content and includes a call to action.`,data:{description:r}});break}let i=t.querySelector(`title`)?.textContent?.trim();return i&&r.toLowerCase()===i.toLowerCase()&&n.push({ruleId:`description-uniqueness`,ruleName:`Description Uniqueness`,message:`Meta description is identical to the title - they should be different and complementary`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Write a meta description that expands on your title with more detail, a value proposition, or a call to action.`,data:{description:r,title:i}}),n}},Pn={Organization:[`name`,`url`],WebSite:[`name`,`url`],WebPage:[`name`],BreadcrumbList:[`itemListElement`],LocalBusiness:[`name`,`address`]},Fn={Article:[`headline`,`author`,`datePublished`],Product:[`name`,`image`,`offers`]};function In(e){return typeof e==`string`?[e]:Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function Ln(e,t,n){let r=In(e[`@type`]);if(r.length===0){n.push({ruleId:`structured-data-validate`,ruleName:`Structured Data Validation`,message:`JSON-LD block missing @type property`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add an @type property (e.g., "Organization", "WebPage", "Article") to your JSON-LD.`});return}let i=r.join(`, `);e[`@context`]||t||n.push({ruleId:`structured-data-validate`,ruleName:`Structured Data Validation`,message:`JSON-LD "${i}" missing @context - should be "https://schema.org"`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add "@context": "https://schema.org" to your JSON-LD block.`,data:{type:i}});for(let t of r){let r=Pn[t];if(r){let i=r.filter(t=>!e[t]);i.length>0&&n.push({ruleId:`structured-data-validate`,ruleName:`Structured Data Validation`,message:`JSON-LD "${t}" missing required fields: ${i.join(`, `)}`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add the missing fields to your ${t} schema: ${i.join(`, `)}.`,data:{type:t,missing:i}})}let i=Fn[t];if(i){let r=i.filter(t=>!e[t]);r.length>0&&n.push({ruleId:`structured-data-validate`,ruleName:`Structured Data Validation`,message:`JSON-LD "${t}" missing recommended fields: ${r.join(`, `)}`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Add the recommended fields to your ${t} schema for richer search results: ${r.join(`, `)}.`,data:{type:t,missing:r}})}}r.includes(`FAQPage`)&&n.push({ruleId:`structured-data-validate`,ruleName:`Structured Data Validation`,message:`FAQPage rich results are only shown for well-known, authoritative government and health websites. For all other sites, this rich result will no longer be shown regularly`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`You can keep or remove this markup. Unused structured data does not cause problems for Search, but it also has no visible effects in Google Search. Consider using other structured data types that still produce rich results for your site type.`,data:{type:`FAQPage`}})}var Rn={meta:{id:`structured-data-validate`,name:`Structured Data Validation`,category:`SEO`,tier:`pro`,description:`Validates JSON-LD structured data for required fields based on schema type`},run(e){let{document:t}=e,n=[];return t.querySelectorAll(`script[type="application/ld+json"]`).forEach(e=>{let t;try{t=JSON.parse(e.textContent||``)}catch{return}if(Array.isArray(t[`@graph`])){let e=t[`@context`];for(let r of t[`@graph`])Ln(r,e,n);return}Ln(t,void 0,n)}),n}},zn={meta:{id:`hreflang`,name:`Hreflang Tags`,category:`SEO`,tier:`pro`,description:`Validates hreflang tags for multi-language pages`},run(e){let{document:t,url:n}=e,r=[],i=t.querySelectorAll(`link[rel="alternate"][hreflang]`);if(i.length===0)return r;Array.from(i).some(e=>e.getAttribute(`hreflang`)===`x-default`)||r.push({ruleId:`hreflang`,ruleName:`Hreflang Tags`,message:`Hreflang tags found but missing x-default - add a fallback for unmatched languages`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add <link rel="alternate" hreflang="x-default" href="..." /> to specify the default/fallback page.`}),Array.from(i).some(e=>{let t=e.getAttribute(`href`);return t===n||t===n.replace(/\/$/,``)})||r.push({ruleId:`hreflang`,ruleName:`Hreflang Tags`,message:`Hreflang tags do not include a self-referencing tag for the current page`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Add a hreflang tag that points to the current page URL with the appropriate language code.`});let a=/^[a-z]{2}(-[A-Z]{2})?$/;return i.forEach(e=>{let t=e.getAttribute(`hreflang`);t&&t!==`x-default`&&!a.test(t)&&r.push({ruleId:`hreflang`,ruleName:`Hreflang Tags`,message:`Invalid hreflang language code "${t}" - use ISO 639-1 format (e.g., "en", "en-US")`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Change "${t}" to a valid ISO 639-1 language code (e.g., "en", "fr", "de-AT").`,data:{invalidLang:t}});let n=e.getAttribute(`href`);n&&!n.startsWith(`http`)&&r.push({ruleId:`hreflang`,ruleName:`Hreflang Tags`,message:`Hreflang href should be an absolute URL (found: "${n}")`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Use absolute URLs (starting with https://) for all hreflang href attributes.`})}),r}},Bn={meta:{id:`canonical-self-referencing`,name:`Canonical Self-Referencing`,category:`SEO`,tier:`pro`,description:`Checks that the canonical URL points to the current page (self-referencing canonical)`},run(e){let{document:t,url:n}=e,r=[],i=t.querySelector(`link[rel="canonical"]`);if(!i)return r;let a=i.getAttribute(`href`)?.trim();if(!a)return r;let o=e=>{try{return new URL(e).href.replace(/\/$/,``)}catch{return e.replace(/\/$/,``)}};try{let e=new URL(a,n).href;o(e)!==o(n)&&(new URL(e).hostname===new URL(n).hostname?r.push({ruleId:`canonical-self-referencing`,ruleName:`Canonical Self-Referencing`,message:`Canonical URL points to a different page on the same site - this tells search engines to index "${e}" instead of this page`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`If this page should be indexed, change the canonical to point to itself. If this is intentional (e.g., pagination), you can ignore this.`,data:{canonical:e,pageUrl:n}}):r.push({ruleId:`canonical-self-referencing`,ruleName:`Canonical Self-Referencing`,message:`Canonical URL points to a different domain ("${new URL(e).hostname}") - this is unusual and may be a misconfiguration`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Cross-domain canonical tags are rarely correct. Verify this is intentional, otherwise change the canonical to point to this page.`,data:{canonical:e,pageUrl:n}}))}catch{r.push({ruleId:`canonical-self-referencing`,ruleName:`Canonical Self-Referencing`,message:`Cannot parse canonical URL "${a}" - ensure it's a valid absolute URL`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Use a valid absolute URL for your canonical tag (e.g., https://yoursite.com/page).`})}return r}},Vn={meta:{id:`meta-render-blocking`,name:`Render-Blocking Resources`,category:`Performance`,tier:`pro`,description:`Checks for render-blocking stylesheets and synchronous scripts in the <head>`},run(e){let{document:t}=e,n=[],r=t.querySelector(`head`);if(!r)return n;let i=r.querySelectorAll(`script[src]`),a=0;i.forEach(e=>{let t=e.hasAttribute(`async`),n=e.hasAttribute(`defer`),r=e.getAttribute(`type`)?.trim().toLowerCase(),i=e.hasAttribute(`nomodule`);!t&&!n&&!i&&r!==`module`&&a++}),a>0&&n.push({ruleId:`meta-render-blocking`,ruleName:`Render-Blocking Resources`,message:`${a} synchronous script(s) in <head> may block page rendering`,severity:`WARNING`,category:`Performance`,tier:`pro`,fix:`Add async or defer attributes to non-critical scripts in the <head>, or move them to the end of <body>.`,data:{blockingScripts:a}});let o=r.querySelectorAll(`link[rel="stylesheet"]`),s=0;return o.forEach(e=>{let t=e.getAttribute(`media`);(!t||t===`all`)&&s++}),s>3&&n.push({ruleId:`meta-render-blocking`,ruleName:`Render-Blocking Resources`,message:`${s} render-blocking stylesheets in <head> - consider inlining critical CSS`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Inline critical CSS and load non-critical stylesheets asynchronously using media="print" with an onload handler.`,data:{blockingStylesheets:s}}),n}},Hn={meta:{id:`lazy-load-lcp`,name:`Lazy Load LCP`,category:`Performance`,tier:`pro`,description:`Checks that above-the-fold images (likely LCP candidates) are not lazy-loaded`},run(e){let{document:t}=e,n=[],r=t.querySelectorAll(`img`),i=Array.from(r).slice(0,3);for(let e of i){let t=e.getAttribute(`loading`),r=e.getAttribute(`fetchpriority`);if(t===`lazy`){let t=e.getAttribute(`src`)||``,r=e.getAttribute(`alt`)||``,i=r?`"${r.substring(0,40)}"`:t?`src="${t.substring(0,50)}"`:`first image`;n.push({ruleId:`lazy-load-lcp`,ruleName:`Lazy Load LCP`,message:`Above-the-fold image (${i}) has loading="lazy" - this delays the Largest Contentful Paint`,severity:`WARNING`,category:`Performance`,tier:`pro`,fix:`Remove loading="lazy" from above-the-fold images. Add fetchpriority="high" to the LCP image instead.`});break}if(!r&&!t){n.push({ruleId:`lazy-load-lcp`,ruleName:`Lazy Load LCP`,message:`Consider adding fetchpriority="high" to your hero/banner image to improve Largest Contentful Paint`,severity:`INFO`,category:`Performance`,tier:`pro`,fix:`Add fetchpriority="high" to the most important above-the-fold image to prioritize its loading.`});break}}return n}},Un={meta:{id:`https-links`,name:`HTTPS Links`,category:`Pre-Launch`,tier:`pro`,description:`Checks that internal links use HTTPS instead of HTTP`},run(e){let{document:t,url:n}=e,r=[],i;try{i=new URL(n).hostname}catch{return r}let a=t.querySelectorAll(`a[href^="http:"]`),o=0,s=0;return a.forEach(e=>{let t=e.getAttribute(`href`);if(t)try{new URL(t).hostname===i?o++:s++}catch{}}),o>0&&r.push({ruleId:`https-links`,ruleName:`HTTPS Links`,message:`${o} internal link(s) use HTTP instead of HTTPS`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`Change all internal links from http:// to https:// to avoid redirect chains and mixed content warnings.`,data:{internalHttpLinks:o}}),s>0&&r.push({ruleId:`https-links`,ruleName:`HTTPS Links`,message:`${s} external link(s) use HTTP - consider updating to HTTPS where available`,severity:`INFO`,category:`Pre-Launch`,tier:`pro`,fix:`Update external links to use https:// where the destination supports it.`,data:{externalHttpLinks:s}}),r}},Wn={meta:{id:`meta-refresh-redirect`,name:`Meta Refresh Redirect`,category:`SEO`,tier:`pro`,description:`Checks for <meta http-equiv="refresh"> redirects which are bad for SEO`},run(e){let{document:t}=e,n=[],r=t.querySelector(`meta[http-equiv="refresh"]`);if(!r)return n;let i=r.getAttribute(`content`)||``,a=i.toLowerCase().includes(`url=`),o=Number.parseInt(i.split(`;`)[0]||``,10);return a?n.push({ruleId:`meta-refresh-redirect`,ruleName:`Meta Refresh Redirect`,message:`Page uses a meta refresh redirect${Number.isNaN(o)?``:` (${o}s delay)`} - use server-side 301 redirects instead`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Replace <meta http-equiv="refresh"> with a server-side 301 redirect. Meta refreshes are bad for SEO and user experience.`,data:{content:i,delay:Number.isNaN(o)?void 0:o}}):!Number.isNaN(o)&&o>0&&n.push({ruleId:`meta-refresh-redirect`,ruleName:`Meta Refresh Redirect`,message:`Page auto-refreshes every ${o} seconds - this may cause usability issues`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`Consider removing the auto-refresh meta tag unless it serves a clear user need.`,data:{content:i,delay:o}}),n}},Gn={meta:{id:`nofollow-audit`,name:`Nofollow Audit`,category:`SEO`,tier:`pro`,description:`Audits the use of rel="nofollow" on internal vs. external links`},run(e){let{document:t,url:n}=e,r=[],i;try{i=new URL(n).hostname}catch{return r}let a=t.querySelectorAll(`a[rel~="nofollow"]`),o=0;return a.forEach(e=>{let t=e.getAttribute(`href`);if(t)try{new URL(t,n).hostname===i&&o++}catch{(t.startsWith(`/`)||t.startsWith(`.`))&&o++}}),o>0&&r.push({ruleId:`nofollow-audit`,ruleName:`Nofollow Audit`,message:`${o} internal link(s) have rel="nofollow" - this wastes PageRank and hurts internal linking`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Remove rel="nofollow" from internal links. Nofollow should only be used for external links you do not want to endorse (e.g., user-generated content, sponsored links).`,data:{internalNofollow:o,totalNofollow:a.length}}),r}},Kn={meta:{id:`cors-policy`,name:`CORS Policy`,category:`Pre-Launch`,tier:`pro`,description:`Checks for overly permissive CORS configuration that could allow unauthorized cross-origin access`},async run(e){let t=[],n=`https://evil.example.com`;try{let r=await Et(e,{method:`GET`,headers:{"User-Agent":`LintPage-Bot/1.0`,Origin:n},redirect:`follow`}),i=r.headers.get(`access-control-allow-origin`),a=r.headers.get(`access-control-allow-credentials`);if(!i)return t;i===`*`?a?.toLowerCase()===`true`?t.push({ruleId:`cors-policy`,ruleName:`CORS Policy`,message:`CORS allows all origins with credentials enabled - this is a security vulnerability`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`pro`,fix:`Set Access-Control-Allow-Origin to your specific trusted domains instead of "*". Wildcard with credentials is blocked by browsers but indicates a dangerous misconfiguration.`}):t.push({ruleId:`cors-policy`,ruleName:`CORS Policy`,message:`CORS allows all origins (Access-Control-Allow-Origin: *) - restrict to trusted domains in production. Note: some hosting platforms (e.g. Vercel, Netlify, Cloudflare Pages) add this header by default, even if you haven't configured it.`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`If you set this header yourself, configure Access-Control-Allow-Origin to only allow requests from your trusted domains (e.g., "https://myapp.com") instead of using the wildcard "*". If your hosting platform adds it automatically, check their documentation for how to override or restrict CORS headers.`}):i.toLowerCase()===n&&(a?.toLowerCase()===`true`?t.push({ruleId:`cors-policy`,ruleName:`CORS Policy`,message:`CORS reflects any origin with credentials enabled - any website can make authenticated cross-origin requests and read responses. This is the most exploitable CORS misconfiguration.`,severity:`CRITICAL`,category:`Pre-Launch`,tier:`pro`,fix:`Configure your server to validate the Origin header against a strict allowlist of trusted domains. Never reflect arbitrary origins when credentials are enabled.`}):t.push({ruleId:`cors-policy`,ruleName:`CORS Policy`,message:`CORS reflects any origin back in Access-Control-Allow-Origin - this is equivalent to a wildcard and allows any site to make cross-origin requests. Note: this may be caused by your hosting platform or a reverse proxy, not your own configuration.`,severity:`WARNING`,category:`Pre-Launch`,tier:`pro`,fix:`If you set this header yourself, configure your server to validate the Origin header against an allowlist of trusted domains instead of reflecting it back. If your hosting platform adds it automatically, check their documentation for how to override or restrict CORS headers.`}))}catch{}return t}},qn=1e4,Jn={meta:{id:`broken-internal-links`,name:`Broken Internal Links`,category:`SEO`,tier:`pro`,description:`Checks that internal links on the page resolve successfully (no 404s or server errors)`},async run(e){let{document:t,url:n}=e,r=[],i;try{i=new URL(n)}catch{return r}let a=new Set,o=[],s=t.querySelectorAll(`a[href]`);for(let e of s){let t=e.getAttribute(`href`);if(!t||t.startsWith(`#`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`javascript:`)||t.startsWith(`data:`))continue;let r;try{r=new URL(t,n)}catch{continue}if(r.hostname!==i.hostname)continue;r.hash=``;let s=r.toString();if(a.has(s))continue;a.add(s);let c=new URL(n);c.hash=``,s!==c.toString()&&o.push(s)}if(o.length===0)return r;let c=o.slice(0,50),l=[],u=[],d=async e=>{try{let t=await Et(e,{method:`HEAD`,headers:{"User-Agent":`LintPage-Bot/1.0`},redirect:`follow`,signal:AbortSignal.timeout(qn)});if(t.status===405){let t=await Et(e,{method:`GET`,headers:{"User-Agent":`LintPage-Bot/1.0`},redirect:`follow`,signal:AbortSignal.timeout(qn)});t.status>=400&&l.push({url:e,status:t.status});return}t.status>=400&&l.push({url:e,status:t.status})}catch{u.push(e)}};for(let e=0;e<c.length;e+=10){let t=c.slice(e,e+10);await Promise.all(t.map(d))}if(l.length>0){let e=l.filter(e=>e.status===404),t=l.filter(e=>e.status>=500),n=l.filter(e=>e.status!==404&&e.status<500);e.length>0&&r.push({ruleId:`broken-internal-links`,ruleName:`Broken Internal Links`,message:`${e.length} internal link(s) return 404 Not Found: ${e.map(e=>e.url).join(`, `)}`,severity:`CRITICAL`,category:`SEO`,tier:`pro`,fix:`Remove or update the broken links to point to valid pages. Broken internal links hurt SEO and user experience.`,data:{notFoundLinks:e}}),t.length>0&&r.push({ruleId:`broken-internal-links`,ruleName:`Broken Internal Links`,message:`${t.length} internal link(s) return server errors: ${t.map(e=>`${e.url} (${e.status})`).join(`, `)}`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Investigate server errors on the linked pages. These may indicate temporary issues or misconfigured routes.`,data:{serverErrorLinks:t}}),n.length>0&&r.push({ruleId:`broken-internal-links`,ruleName:`Broken Internal Links`,message:`${n.length} internal link(s) return client errors: ${n.map(e=>`${e.url} (${e.status})`).join(`, `)}`,severity:`WARNING`,category:`SEO`,tier:`pro`,fix:`Check the linked pages for access issues (e.g., 401/403 may indicate authentication or permission problems).`,data:{clientErrorLinks:n}})}return u.length>0&&r.push({ruleId:`broken-internal-links`,ruleName:`Broken Internal Links`,message:`${u.length} internal link(s) could not be reached: ${u.join(`, `)}`,severity:`INFO`,category:`SEO`,tier:`pro`,fix:`These links timed out or had network errors during the check. Verify they are accessible.`,data:{unreachableLinks:u}}),o.length>50&&r.push({ruleId:`broken-internal-links`,ruleName:`Broken Internal Links`,message:`Only checked 50 of ${o.length} internal links. Consider reducing the number of links on this page.`,severity:`INFO`,category:`SEO`,tier:`pro`,data:{totalLinks:o.length,checkedLinks:50}}),r}},Yn=`https://developers.openai.com/api/docs/bots`,Xn=`https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler`,Zn=`https://docs.perplexity.ai/docs/resources/perplexity-crawlers`,Qn=`https://developers.facebook.com/docs/sharing/webmasters/web-crawlers/`,$n=`https://developer.amazon.com/amazonbot`,er=`https://docs.mistral.ai/robots`,tr=[{token:`GPTBot`,operator:`OpenAI`,kind:`training`,purpose:`Crawls content for training generative AI foundation models.`,blockingCost:`Your content is excluded from future model training. Live ChatGPT answers are unaffected.`,robots:`documented`,robotsNote:`Disallowing GPTBot "indicates a site's content should not be used in training".`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot`,userAgentSource:`example`,docsUrl:Yn,ipRangesUrl:`https://openai.com/gptbot.json`,verifiedOn:`2026-09-16`,inChecker:!0},{token:`OAI-SearchBot`,operator:`OpenAI`,kind:`search`,purpose:`Builds the search index behind ChatGPT search.`,blockingCost:`You "will not be shown in ChatGPT search answers, though can still appear as navigational links".`,robots:`documented`,userAgent:`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot`,userAgentSource:`example`,docsUrl:Yn,ipRangesUrl:`https://openai.com/searchbot.json`,verifiedOn:`2026-09-16`,inChecker:!0,notes:`When fetching robots.txt itself OpenAI inserts a "robots.txt;" marker into the string.`},{token:`ChatGPT-User`,operator:`OpenAI`,kind:`retrieval`,purpose:`Fetches a page on demand when a ChatGPT user, Custom GPT or GPT Action asks for it.`,blockingCost:`ChatGPT cannot retrieve your page to answer a question about it. This is the expensive one.`,robots:`bypasses`,robotsNote:`"Because these actions are initiated by a user, robots.txt rules may not apply."`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot`,userAgentSource:`documented`,docsUrl:Yn,ipRangesUrl:`https://openai.com/chatgpt-user.json`,verifiedOn:`2026-09-16`,inChecker:!0,notes:`The self-link in the string is +https://openai.com/bot, not /chatgpt-user.`},{token:`OAI-AdsBot`,operator:`OpenAI`,kind:`ads`,purpose:`Validates advertising landing pages. "Only visits pages submitted as ads"; the data is not used for training.`,blockingCost:`Ad landing pages you submit cannot be validated. No effect on organic AI visibility.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-AdsBot/1.0; +https://openai.com/adsbot`,userAgentSource:`documented`,docsUrl:Yn,ipRangesUrl:`https://openai.com/adsbot.json`,verifiedOn:`2026-09-16`},{token:`ClaudeBot`,operator:`Anthropic`,kind:`training`,purpose:`Collects web content that "could potentially contribute to their training".`,blockingCost:`Your content is excluded from Claude training data. Live Claude answers are unaffected.`,robots:`documented`,robotsNote:`Honours robots.txt and the non-standard Crawl-delay directive.`,userAgent:null,userAgentSource:`none`,docsUrl:Xn,ipRangesUrl:`https://claude.com/crawling/bots.json`,verifiedOn:`2026-09-16`,inChecker:!0,probeUserAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ClaudeBot/1.0; +claudebot@anthropic.com`,notes:`Anthropic publishes no User-Agent header string for any of its bots. Match the token.`},{token:`Claude-User`,operator:`Anthropic`,kind:`retrieval`,purpose:`Fetches a page when someone asks Claude a question that needs it.`,blockingCost:`Claude cannot retrieve your content in response to a user query.`,robots:`documented`,robotsNote:`No user-initiated exception is documented, unlike ChatGPT-User and Perplexity-User.`,userAgent:null,userAgentSource:`none`,docsUrl:Xn,ipRangesUrl:`https://claude.com/crawling/bots.json`,verifiedOn:`2026-09-16`,inChecker:!0,probeUserAgent:`Mozilla/5.0 (compatible; Claude-User/1.0; +Claude-User@anthropic.com)`},{token:`Claude-SearchBot`,operator:`Anthropic`,kind:`search`,purpose:`Indexes content to improve Claude search result quality.`,blockingCost:`You are excluded from the index Claude search draws on.`,robots:`documented`,userAgent:null,userAgentSource:`none`,docsUrl:Xn,ipRangesUrl:`https://claude.com/crawling/bots.json`,verifiedOn:`2026-09-16`},{token:`anthropic-ai`,operator:`Anthropic`,kind:`training`,purpose:`Legacy token in wide circulation. Anthropic does not document it.`,blockingCost:`Unknown. Anthropic lists only ClaudeBot, Claude-User and Claude-SearchBot, so this token may control nothing.`,robots:`undocumented`,userAgent:null,userAgentSource:`none`,docsUrl:null,verifiedOn:`2026-09-16`,inChecker:!0,probeUserAgent:`anthropic-ai`,notes:`Appears in countless robots.txt files and blocklists. Absent from Anthropic's documentation, with no retirement notice.`},{token:`PerplexityBot`,operator:`Perplexity`,kind:`search`,purpose:`Indexes pages for Perplexity search. "Not used to crawl content for AI foundation models."`,blockingCost:`You are excluded from Perplexity search results and citations.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)`,userAgentSource:`documented`,docsUrl:Zn,ipRangesUrl:`https://www.perplexity.ai/perplexitybot.json`,verifiedOn:`2026-09-16`,inChecker:!0},{token:`Perplexity-User`,operator:`Perplexity`,kind:`retrieval`,purpose:`Fetches a page because a Perplexity user asked something about it.`,blockingCost:`Perplexity cannot pull up your page to answer a live question.`,robots:`bypasses`,robotsNote:`"Since a user requested the fetch, this fetcher generally ignores robots.txt rules."`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user)`,userAgentSource:`documented`,docsUrl:Zn,ipRangesUrl:`https://www.perplexity.ai/perplexity-user.json`,verifiedOn:`2026-09-16`,inChecker:!0},{token:`Google-Extended`,operator:`Google`,kind:`training`,purpose:`Controls training of future Gemini models and grounding in Gemini Apps and Vertex AI.`,blockingCost:`Excluded from Gemini training and grounding. It does NOT remove you from AI Overviews, and it is not a Search ranking signal.`,robots:`documented`,robotsNote:`"Google-Extended does not impact a site's inclusion in Google Search nor is it used as a ranking signal in Google Search."`,userAgent:null,userAgentSource:`robots-token-only`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers`,verifiedOn:`2026-09-16`,inChecker:!0,probeUserAgent:`Google-Extended`,notes:`A control token, not a fetcher. Nothing ever arrives with this User-Agent, so the checker reads your robots.txt for it and sends no request: there is no live result to report.`},{token:`Googlebot`,operator:`Google`,kind:`search`,purpose:`The Search crawler. AI Overviews and AI Mode are built on Search, so this is what feeds them.`,blockingCost:`You leave Google Search entirely. This is the only documented way out of AI Overviews, which is why it is almost never the right move.`,robots:`documented`,robotsNote:`Common crawlers "always respect robots.txt rules for automatic crawls".`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers`,verifiedOn:`2026-09-16`,notes:`Listed as the contrast case: the AI control people reach for is Google-Extended, but the AI surface they mean is governed here.`},{token:`Google-CloudVertexBot`,operator:`Google`,kind:`training`,purpose:`Crawls sites on their owner's request to build Vertex AI Agents.`,blockingCost:`Vertex AI Agents cannot ingest your site. "It has no effect on Google Search or other products."`,robots:`documented`,userAgent:null,userAgentSource:`none`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers`,verifiedOn:`2026-09-16`,notes:`Google documents the substring only, not a full header string.`},{token:`GoogleOther`,operator:`Google`,kind:`training`,purpose:`Generic crawler used for one-off internal research and development.`,blockingCost:`Preferences for GoogleOther "don't affect any specific product", so blocking it changes little you can observe.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GoogleOther) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers`,verifiedOn:`2026-09-16`},{token:`Google-GeminiNotebook`,operator:`Google`,kind:`retrieval`,purpose:`Fetches URLs a Gemini Notebook user supplies as a source.`,blockingCost:`Nothing you can control by robots.txt: as a user-triggered fetcher it is documented to ignore it.`,robots:`bypasses`,robotsNote:`User-triggered fetchers "generally ignore robots.txt rules".`,userAgent:`Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 (compatible; Google-GeminiNotebook; +https://developers.google.com/crawling/docs/crawlers-fetchers/google-gemininotebook)`,userAgentSource:`documented`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers`,verifiedOn:`2026-09-16`,notes:`Replaced Google-NotebookLM, which Google supported until August 2026.`},{token:`Google-Agent`,operator:`Google`,kind:`retrieval`,purpose:`Agents on Google infrastructure navigating the web and acting on a user's request.`,blockingCost:`Again not robots-controllable. Google pairs it with a Web Bot Auth experiment under the identity https://agent.bot.goog.`,robots:`bypasses`,robotsNote:`User-triggered fetchers "generally ignore robots.txt rules".`,userAgent:`Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; compatible; Google-Agent; +https://developers.google.com/crawling/docs/crawlers-fetchers/google-agent) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:`https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers`,verifiedOn:`2026-09-16`},{token:`Applebot-Extended`,operator:`Apple`,kind:`training`,purpose:`Opts your content out of training Apple's general-purpose foundation models.`,blockingCost:`Excluded from Apple Intelligence training only. "Webpages that disallow Applebot-Extended can still be included in search results", and it is not considered in Search ranking.`,robots:`documented`,userAgent:null,userAgentSource:`robots-token-only`,docsUrl:`https://support.apple.com/en-us/119829`,verifiedOn:`2026-09-16`,inChecker:!0,probeUserAgent:`Applebot-Extended`,notes:`Training only. Grounding is a separate control: nosnippet stops Apple using the page as AI context.`},{token:`Applebot`,operator:`Apple`,kind:`search`,purpose:`Powers Spotlight, Siri and Safari search. The crawled data also feeds foundation-model training and AI grounding.`,blockingCost:`Removes you from Apple search surfaces.`,robots:`documented`,robotsNote:`Respects robots.txt, falls back to Googlebot rules when Applebot is not named, and does not follow crawl-delay.`,userAgent:`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15 (Applebot/0.1; +http://www.apple.com/go/applebot)`,userAgentSource:`example`,docsUrl:`https://support.apple.com/en-us/119829`,verifiedOn:`2026-09-16`},{token:`bingbot`,operator:`Microsoft`,kind:`search`,purpose:`Builds the Bing index. Copilot grounds on indexed content, so this is the Copilot crawler in practice.`,blockingCost:`You leave the Bing index, and with it Copilot citation: Bing's AI Performance report "reflects only content that is eligible for indexing".`,robots:`documented`,robotsNote:`Honours one group in priority order: bingbot, then msnbot, then the wildcard.`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:`https://www.bing.com/webmasters/help/which-crawlers-does-bing-use-8c184ec0`,verifiedOn:`2026-09-16`,notes:`Microsoft controls AI use by meta tag rather than by token: noindex bars training, noarchive bars Chat and Copilot, nocache limits them to URL, title and snippet.`},{token:`DuckAssistBot`,operator:`DuckDuckGo`,kind:`retrieval`,purpose:`Crawls in real time for AI-assisted answers. "This data is not used in any way to train AI models."`,blockingCost:`No AI-assisted answers from your content. "Opting out of DuckAssistBot does not impact organic search rankings." Takes effect after 72 hours.`,robots:`documented`,userAgent:`DuckAssistBot/1.2; (+http://duckduckgo.com/duckassistbot.html)`,userAgentSource:`documented`,docsUrl:`https://duckduckgo.com/duckduckgo-help-pages/results/duckassistbot`,verifiedOn:`2026-09-16`},{token:`meta-externalagent`,operator:`Meta`,kind:`training`,purpose:`Trains foundation AI models, and indexes content directly to improve products.`,blockingCost:`Your content is excluded from Meta AI training and indexing.`,robots:`documented`,userAgent:`meta-externalagent/1.1 (+/documentation/sharing/webmasters/web-crawlers)`,userAgentSource:`documented`,docsUrl:Qn,verifiedOn:`2026-09-16`,notes:`The parenthetical is relativized on Meta's own page; match the "meta-externalagent/1.1" prefix rather than the whole string.`},{token:`meta-externalfetcher`,operator:`Meta`,kind:`retrieval`,purpose:`Fetches links a user asked about, including for agentic AI.`,blockingCost:`Meta AI cannot follow a link to your page on a user's behalf.`,robots:`bypasses`,robotsNote:`"May bypass robots.txt because it performs fetches that were requested by the user."`,userAgent:`meta-externalfetcher/1.1 (+/documentation/sharing/webmasters/web-crawlers)`,userAgentSource:`documented`,docsUrl:Qn,verifiedOn:`2026-09-16`},{token:`meta-webindexer`,operator:`Meta`,kind:`search`,purpose:`Builds the index Meta AI search cites from.`,blockingCost:`You are excluded from Meta AI search citations.`,robots:`documented`,userAgent:`meta-webindexer/1.1 (+/documentation/sharing/webmasters/web-crawlers)`,userAgentSource:`documented`,docsUrl:Qn,verifiedOn:`2026-09-16`},{token:`facebookexternalhit`,operator:`Meta`,kind:`retrieval`,purpose:`Scrapes a page to build the share preview when someone posts your link.`,blockingCost:`Links to your site post without a title, description or image. Nothing to do with AI.`,robots:`bypasses`,robotsNote:`"Might bypass robots.txt when performing security or integrity checks."`,userAgent:`facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)`,userAgentSource:`documented`,docsUrl:Qn,verifiedOn:`2026-09-16`,notes:`Listed because it is routinely swept up in AI blocklists, which silently breaks link previews.`},{token:`Amazonbot`,operator:`Amazon`,kind:`training`,purpose:`Crawls to "improve our products and services", which may include training Amazon AI.`,blockingCost:`Excluded from Amazon AI training and product data.`,robots:`documented`,robotsNote:`"Respects the Robots Exclusion Protocol."`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:$n,ipRangesUrl:`https://developer.amazon.com/amazonbot/ip-addresses/`,verifiedOn:`2026-09-16`},{token:`Amzn-SearchBot`,operator:`Amazon`,kind:`search`,purpose:`Builds Amazon's search index.`,blockingCost:`Excluded from Amazon search results.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amzn-SearchBot/0.1) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:$n,ipRangesUrl:`https://developer.amazon.com/amazonbot/searchbot-ip-addresses/`,verifiedOn:`2026-09-16`},{token:`Amzn-User`,operator:`Amazon`,kind:`retrieval`,purpose:`Live retrieval on a user's behalf, including for Alexa.`,blockingCost:`Alexa cannot read your page out in answer to a question.`,robots:`partial`,robotsNote:`"May not follow all robots.txt directives."`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amzn-User/0.1) Chrome/W.X.Y.Z Safari/537.36`,userAgentSource:`documented`,docsUrl:$n,ipRangesUrl:`https://developer.amazon.com/amazonbot/live-ip-addresses/`,verifiedOn:`2026-09-16`},{token:`MistralAI-User`,operator:`Mistral`,kind:`retrieval`,purpose:`Fetches pages to answer a user's question in Le Chat.`,blockingCost:`Mistral cannot retrieve your page for a live answer.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; MistralAI-User/1.0; +https://docs.mistral.ai/robots)`,userAgentSource:`documented`,docsUrl:er,ipRangesUrl:`https://mistral.ai/mistralai-user-ips.json`,verifiedOn:`2026-09-16`},{token:`MistralAI-Index`,operator:`Mistral`,kind:`search`,purpose:`Builds a search index. Explicitly not training.`,blockingCost:`Excluded from Mistral's search index.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; MistralAI-Index/1.0; +https://docs.mistral.ai/robots)`,userAgentSource:`documented`,docsUrl:er,ipRangesUrl:`https://mistral.ai/mistralai-index-ips.json`,verifiedOn:`2026-09-16`},{token:`MistralAI-Training`,operator:`Mistral`,kind:`training`,purpose:`Collects training data for Mistral models.`,blockingCost:`Excluded from Mistral training data.`,robots:`documented`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; MistralAI-Training/1.0; +https://docs.mistral.ai/robots)`,userAgentSource:`documented`,docsUrl:er,verifiedOn:`2026-09-16`,notes:`The only Mistral agent with no published IP list, so it is the one you cannot verify.`},{token:`CCBot`,operator:`Common Crawl`,kind:`dataset`,purpose:`Builds the Common Crawl public archive. A nonprofit corpus, not an AI product.`,blockingCost:`You leave the corpus that many third-party models train on, which blocks them indirectly. Archives already published stay published.`,robots:`documented`,userAgent:`CCBot/2.0 (https://commoncrawl.org/faq/)`,userAgentSource:`documented`,docsUrl:`https://commoncrawl.org/ccbot`,ipRangesUrl:`https://index.commoncrawl.org/ccbot.json`,verifiedOn:`2026-09-16`,notes:`Predates the LLM era. Verifiable by reverse DNS under *.crawl.commoncrawl.org.`},{token:`YouBot`,operator:`You.com`,kind:`search`,purpose:`Indexes pages for You.com search.`,blockingCost:`Excluded from You.com results.`,robots:`documented`,robotsNote:`"Fully respects robots.txt directives, including user-agent specific rules and crawl-delay."`,userAgent:`Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; YouBot/1.0; +https://docs.you.com/youbot; env:prod) Chrome/X.X.X.X Safari/537.36`,userAgentSource:`documented`,docsUrl:`https://you.com/docs/youbot`,verifiedOn:`2026-09-16`,notes:`Verifiable three ways: IP range, reverse DNS, and Cloudflare Web Bot Auth.`},{token:`Diffbot`,operator:`Diffbot`,kind:`search`,purpose:`Crawls for Diffbot's Knowledge Graph. "It is not used for AI training."`,blockingCost:`Excluded from the Knowledge Graph and products built on it.`,robots:`partial`,robotsNote:`Obeys robots.txt by default, but the default is overridable under a partnership agreement.`,userAgent:null,userAgentSource:`none`,docsUrl:`https://www.diffbot.com/docs/crawl/faq/robots-txt`,verifiedOn:`2026-09-16`,notes:`Diffbot documents the token and a Diffbot-User variant, but no header string.`},{token:`Webzio-extended`,operator:`Webz.io`,kind:`dataset`,purpose:`Collects content resold as datasets. The "-extended" token covers AI and ML use.`,blockingCost:`Your content is kept out of datasets sold on for AI training.`,robots:`documented`,robotsNote:`"Meticulously adheres to robots.txt exclusions."`,userAgent:null,userAgentSource:`none`,docsUrl:`https://webz.io/bot.html`,verifiedOn:`2026-09-16`,notes:`Webz.io also operates the Webzio and Omgilibot tokens. No header string is published for any of them.`}],nr=`AI Visibility`,rr=`pro`,ir=`/blog/ai-crawler-accessibility-guide`,ar=`LintPage/1.0 (+https://lintpage.com)`,or=5e3,sr=3600*1e3,cr=200,lr=tr.filter(e=>e.inChecker).map(e=>({name:e.token,userAgent:e.probeUserAgent??e.userAgent??e.token,purpose:e.purpose,controlOnly:e.userAgentSource===`robots-token-only`})),ur=new Map;async function dr(e,t,n=or){let r=new AbortController,i=setTimeout(()=>r.abort(),n);try{return await Et(e,{...t,signal:r.signal})}finally{clearTimeout(i)}}async function fr(e){try{let t=new URL(`/robots.txt`,e).href,n=await dr(t,{headers:{"User-Agent":ar}});return n.ok?{fetched:!0,raw:await n.text()}:{fetched:!1,raw:null}}catch{return{fetched:!1,raw:null}}}async function pr(e){try{let t=new URL(`/llms.txt`,e).href;return{exists:(await dr(t,{headers:{"User-Agent":ar}})).ok}}catch{return{exists:!1}}}function mr(e){let t=new Map,n=[],r=!1;for(let i of e.split(`
|
|
98
|
+
`)){let e=i.replace(/#.*$/,``).trim();if(!e)continue;let a=e.indexOf(`:`);if(a===-1)continue;let o=e.slice(0,a).trim().toLowerCase(),s=e.slice(a+1).trim();if(o===`user-agent`){r&&=(n=[],!1);let e=s.toLowerCase();n.push(e),t.has(e)||t.set(e,{allow:[],disallow:[]})}else if(o===`disallow`||o===`allow`){r=!0;for(let e of n){let n=t.get(e);n&&(o===`disallow`?n.disallow.push(s):n.allow.push(s))}}}return t}function hr(e,t){if(e===``)return!1;if(e===`/`)return!0;let n=`^`;for(let t of e)t===`*`?n+=`.*`:t===`$`?n+=`$`:n+=t.replace(/[.+?^${}()|[\]\\]/g,`\\$&`);try{return new RegExp(n).test(t)}catch{return!1}}function gr(e,t,n){if(e===null)return`NO_ROBOTS_TXT`;let r=mr(e),i=r.get(t.toLowerCase()),a=r.get(`*`),o=i??a;if(!o)return`ALLOWED`;let s=[...o.disallow.map(e=>({pattern:e,allow:!1})),...o.allow.map(e=>({pattern:e,allow:!0}))].filter(e=>e.pattern&&hr(e.pattern,n));return s.length===0?`ALLOWED`:(s.sort((e,t)=>t.pattern.length-e.pattern.length||(e.allow?-1:t.allow?1:0)),s[0].allow?`ALLOWED`:`DISALLOWED`)}function _r(e,t){return e===200?`SUCCESS_200`:e===403?`BLOCKED_403`:e===429?`BLOCKED_429`:e>=500?`SERVER_ERROR_5XX`:t||e>=300&&e<400?`REDIRECTED`:`ERROR`}function vr(e){return e.replace(/<script[^>]*>[\s\S]*?<\/script>/gi,``).replace(/<style[^>]*>[\s\S]*?<\/style>/gi,``).replace(/<noscript[^>]*>[\s\S]*?<\/noscript>/gi,``).replace(/<[^>]+>/g,` `).replace(/ /g,` `).replace(/\s+/g,` `).trim().length}async function yr(e,t,n){let r=(()=>{try{return new URL(e).pathname||`/`}catch{return`/`}})(),i=gr(n,t.name,r);if(t.controlOnly)return{bot:t.name,userAgent:t.userAgent,robotsStatus:i,fetchStatus:`NOT_FETCHED`,silentBlock:!1,likelyJsRendered:!1,controlOnly:!0};let a=`ERROR`,o,s,c,l,u,d=!1;try{let n=Date.now(),r=await dr(e,{headers:{"User-Agent":t.userAgent},redirect:`follow`});if(s=Date.now()-n,o=r.status,l=r.url,a=_r(r.status,r.redirected),r.status===200){let e=await r.text();c=e.length,u=vr(e),!t.controlOnly&&u<cr&&(d=!0)}}catch(e){a=e instanceof Error&&e.name===`AbortError`?`TIMEOUT`:`ERROR`}let f=i===`ALLOWED`||i===`NO_ROBOTS_TXT`,p=a===`BLOCKED_403`||a===`BLOCKED_429`||a===`SERVER_ERROR_5XX`,m=!t.controlOnly&&f&&p;return{bot:t.name,userAgent:t.userAgent,robotsStatus:i,fetchStatus:a,httpStatus:o,responseTimeMs:s,contentLength:c,finalUrl:l,bodyTextLength:u,silentBlock:m,likelyJsRendered:d,controlOnly:t.controlOnly}}async function br(e){let[t,n]=await Promise.all([fr(e),pr(e)]),r=await Promise.all(lr.map(n=>yr(e,n,t.raw))),i={};for(let e of r)i[e.bot]=e;return{scannedAt:Date.now(),url:e,robotsTxt:t,llmsTxt:n,bots:i}}async function xr(e){let t;try{t=new URL(e).hostname}catch{return br(e)}let n=ur.get(t);if(n&&Date.now()-n.cachedAt<sr)return n.promise;let r=br(e);return ur.set(t,{promise:r,cachedAt:Date.now()}),r.catch(()=>{ur.get(t)?.promise===r&&ur.delete(t)}),r}function Sr(e,t,n,r,i,a){return{ruleId:e,ruleName:t,message:n,severity:r,category:nr,tier:rr,fix:i,learnMoreUrl:ir,data:a}}var Cr={meta:{id:`ai/all-crawlers-blocked`,name:`AI: site-wide AI access blocked`,category:nr,tier:rr,description:`Every tested AI bot is blocked (robots.txt or live block) — page is invisible to AI assistants`},async run(e){let t=await xr(e),n=Object.values(t.bots).filter(e=>!e.controlOnly),r=n.length,i=n.filter(e=>e.robotsStatus===`DISALLOWED`||e.fetchStatus===`BLOCKED_403`||e.fetchStatus===`BLOCKED_429`||e.fetchStatus===`SERVER_ERROR_5XX`);return i.length<r?[]:[Sr(`ai/all-crawlers-blocked`,`AI: site-wide AI access blocked`,`All ${r} AI bots tested are blocked \u2014 by robots.txt or live block. ChatGPT, Claude, Perplexity, and Gemini cannot read or cite this page.`,`CRITICAL`,`Review robots.txt for blanket AI bot Disallow rules. If using Cloudflare, check Security Settings → Configure AI bot policies and allow the categories you want to stay visible to (Search, Agent, Training are set separately).`,{blocked:i.length,total:r})]}};function wr(e){return{meta:{id:e.id,name:e.name,category:nr,tier:rr,description:e.description},async run(t){let n=(await xr(t)).bots[e.bot];return n.silentBlock?[Sr(e.id,e.name,`robots.txt allows ${e.bot} but the live fetch returned HTTP ${n.httpStatus}. This is the Cloudflare-default block: AI bots get a 403 at the edge regardless of what your robots.txt says.`,`CRITICAL`,`Cloudflare \u2192 Security Settings \u2192 Configure AI bot policies, and allow the category "${e.bot}" falls under (Search, Agent or Training). The older "Block AI bots" toggle was deprecated on 2026-09-15, when Cloudflare also applied new defaults to free-plan zones that had never changed the setting. Or, if you intend to opt out, add "User-agent: ${e.bot}\\nDisallow: /" to robots.txt so the signal is intentional.`,{bot:e.bot,httpStatus:n.httpStatus,userAgent:n.userAgent,robotsStatus:n.robotsStatus,fetchStatus:n.fetchStatus})]:[]}}}var Tr=wr({id:`ai/gptbot-silent-block`,name:`AI: GPTBot silent block`,bot:`GPTBot`,description:`robots.txt allows GPTBot but live fetch returns 403/429 (likely Cloudflare or WAF block)`}),Er=wr({id:`ai/claudebot-silent-block`,name:`AI: ClaudeBot silent block`,bot:`ClaudeBot`,description:`robots.txt allows ClaudeBot but live fetch returns 403/429`}),Dr=wr({id:`ai/perplexitybot-silent-block`,name:`AI: PerplexityBot silent block`,bot:`PerplexityBot`,description:`robots.txt allows PerplexityBot but live fetch returns 403/429`});function Or(e){return{meta:{id:e.id,name:e.name,category:nr,tier:rr,description:e.description},async run(t){let n=(await xr(t)).bots[e.bot],r=n.robotsStatus===`DISALLOWED`,i=n.fetchStatus===`BLOCKED_403`||n.fetchStatus===`BLOCKED_429`||n.fetchStatus===`SERVER_ERROR_5XX`;if(!r&&!i)return[];let a=r?`robots.txt disallows it`:`the live fetch returned HTTP ${n.httpStatus}`;return[Sr(e.id,e.name,`${e.bot} cannot reach this page \u2014 ${a}. When a user asks ${e.serviceLabel} a question that should cite this page, the assistant cannot retrieve the content.`,`CRITICAL`,r?`Remove the User-agent: ${e.bot} Disallow rule from robots.txt. "-User" variants represent live retrieval at user request, not training \u2014 opting out of these typically isn't intentional.`:`Cloudflare or your WAF is blocking ${e.bot}. Allow this bot at the edge \u2014 it represents live AI assistant browsing, not training. Blocking it removes you from ${e.serviceLabel}'s answers.`,{bot:e.bot,userAgent:n.userAgent,httpStatus:n.httpStatus,robotsStatus:n.robotsStatus,fetchStatus:n.fetchStatus})]}}}var kr=[Cr,Tr,Er,Dr,Or({id:`ai/chatgpt-user-blocked`,name:`AI: ChatGPT-User cannot reach page`,bot:`ChatGPT-User`,serviceLabel:`ChatGPT`,description:`ChatGPT-User cannot reach the page — blocks live ChatGPT browsing when users ask questions`}),Or({id:`ai/claude-user-blocked`,name:`AI: Claude-User cannot reach page`,bot:`Claude-User`,serviceLabel:`Claude`,description:`Claude-User cannot reach the page — blocks live Claude browsing`}),Or({id:`ai/perplexity-user-blocked`,name:`AI: Perplexity-User cannot reach page`,bot:`Perplexity-User`,serviceLabel:`Perplexity`,description:`Perplexity-User cannot reach the page — blocks live Perplexity browsing`}),{meta:{id:`ai/google-extended-disallowed`,name:`AI: Google-Extended disallowed`,category:nr,tier:rr,description:`Google-Extended disallowed — opt-out from Gemini training and grounding; confirm this is intentional`},async run(e){let t=await xr(e);return t.bots[`Google-Extended`].robotsStatus===`DISALLOWED`?[Sr(`ai/google-extended-disallowed`,`AI: Google-Extended disallowed`,`robots.txt disallows Google-Extended — your content is opted out of training future Gemini models and of grounding in Gemini Apps and Vertex AI. Confirm this is intentional.`,`WARNING`,`If you want to appear in Gemini responses, remove the User-agent: Google-Extended Disallow rule from robots.txt. This is separate from regular Googlebot: disallowing Google-Extended does not affect search rankings, and it does not remove you from AI Overviews either — those follow Googlebot.`,{robotsStatus:t.bots[`Google-Extended`].robotsStatus})]:[]}},{meta:{id:`ai/applebot-extended-disallowed`,name:`AI: Applebot-Extended disallowed`,category:nr,tier:rr,description:`Applebot-Extended disallowed — opt-out from Apple Intelligence; confirm this is intentional`},async run(e){let t=await xr(e);return t.bots[`Applebot-Extended`].robotsStatus===`DISALLOWED`?[Sr(`ai/applebot-extended-disallowed`,`AI: Applebot-Extended disallowed`,`robots.txt disallows Applebot-Extended — your content is opted out of Apple Intelligence training. Confirm this is intentional.`,`INFO`,`If you want Apple Intelligence to learn from this page, remove the User-agent: Applebot-Extended Disallow from robots.txt. Regular Applebot (search) is unaffected.`,{robotsStatus:t.bots[`Applebot-Extended`].robotsStatus})]:[]}},{meta:{id:`ai/empty-content-to-bot`,name:`AI: bot receives near-empty content`,category:nr,tier:rr,description:`AI bot receives near-empty content (likely client-side rendering blocks the bot from seeing the page)`},async run(e){let t=await xr(e),n=Object.values(t.bots).filter(e=>e.likelyJsRendered&&e.fetchStatus===`SUCCESS_200`);if(n.length===0)return[];let r=n.map(e=>e.bot).join(`, `),i=Math.min(...n.map(e=>e.bodyTextLength??0));return[Sr(`ai/empty-content-to-bot`,`AI: bot receives near-empty content`,`${n.length} bot${n.length===1?``:`s`} (${r}) received a 200 OK but the HTML body contained only ${i} characters of readable text. Your content is likely hydrated client-side and invisible to non-rendering crawlers.`,`WARNING`,`Server-render the primary content of this page. Googlebot, bingbot and Applebot document that they render JavaScript; OpenAI, Anthropic, Perplexity and Meta document nothing either way, so content assembled in the browser reaches them only if an undocumented behaviour happens to go your way.`,{bots:n.map(e=>e.bot),minBodyTextLength:i,threshold:cr})]}},{meta:{id:`ai/llms-txt-missing`,name:`AI: llms.txt not found`,category:nr,tier:rr,description:`llms.txt file not found — experimental, low confirmed impact; included for completeness`},async run(e){return(await xr(e)).llmsTxt.exists?[]:[Sr(`ai/llms-txt-missing`,`AI: llms.txt not found`,`No /llms.txt file at the site root. This is an experimental proposed standard for giving AI assistants a curated index — low confirmed impact today, but trivial to add.`,`INFO`,`If you want to provide an LLM-friendly site index, add /llms.txt at the root listing your most important pages. Spec at https://llmstxt.org. Skip this if you do not want to participate in the experiment.`,{exists:!1})]}}],Ar=[tn,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,Sn,Cn,wn,Dn,On,kn,An,jn,Mn,Nn,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn],jr=[Jn],Mr=[nn,rn,xn,Kn,...kr],Nr={[tn.meta.id]:`INFO`,[Un.meta.id]:`INFO`,[Bn.meta.id]:`INFO`,[zt]:`INFO`},Pr={name:`@lintpage/pro`,rules:Ar,asyncRules:jr,standaloneRules:Mr};function Fr(){return Pr}async function Ir(e){let t;try{let n=await xr(e);t=Object.values(n.bots).map(e=>e.finalUrl).filter(e=>typeof e==`string`&&e.length>0)}catch{return null}for(let n of t){let t=Gt(e,n);if(t)return{finding:t,finalUrl:n}}return null}async function Lr(e){let t=await Xt(kr,e),n=await Ir(e);n&&t.push(n.finding);let r=Lt(t),i=It(t),a=t.some(e=>e.severity===`CRITICAL`&&e.category!==`AI Visibility`),o=t.some(e=>e.severity===`CRITICAL`&&e.category===`AI Visibility`),s=a?`FAIL`:o?`AI-FAIL`:`PASS`;return{url:e,timestamp:new Date().toISOString(),results:t,score:r,overallStatus:s,categoryScores:i,...n?{finalUrl:n.finalUrl}:{}}}function Rr(e){let t=e.replace(/^\[|\]$/g,``).toLowerCase().replace(/\.$/,``);return t===`localhost`||t.endsWith(`.localhost`)?!0:mt(t)}const zr=/^https?:\/\//i;function Br(e){let t=zr.test(e),n=new URL(t?e:`http://${e}`),r=Rr(n.hostname),i=t?e:`${r?`http`:`https`}://${e}`;return r?{url:i,grant:{loopbackHost:n.hostname,port:ht(n)}}:{url:i}}function Vr(e){let t=new Map;for(let n of e){if(!n.isBoolean)continue;let e=n.names[0];if(e)for(let r of n.rawName.split(`,`)){let n=r.trim().replace(/^-{1,2}/,``);n.includes(`-`)&&t.set(n,e)}}return t}function Hr(e,t){let n=Vr(t);if(n.size===0)return e;let r=!1;return e.map(e=>{if(r)return e;if(e===`--`)return r=!0,e;if(!e.startsWith(`--`))return e;let[t,...i]=e.slice(2).split(`=`),a=n.get(t);return a?i.length>0?`--${a}=${i.join(`=`)}`:`--${a}`:e})}const Ur=`VERCEL_AUTOMATION_BYPASS_SECRET`,Wr=`LINTPAGE_BYPASS_ORIGINS`;function Gr(e){let t;try{t=new URL(e)}catch{return!1}return t.protocol===`https:`?t.hostname.toLowerCase().replace(/\.$/,``).endsWith(`.vercel.app`):!1}function Kr(e){let t=new Set;for(let n of(e??``).split(/[\s,]+/))if(n)try{t.add(new URL(n).origin)}catch{}return t}function qr(e,t,n){let r=t?.trim();if(!r)return{};if(!Gr(e))return{note:`${Ur} is set but not sent: it only goes to https *.vercel.app URLs.`};let i=new URL(e).origin;return Kr(n).has(i)?{scope:{origin:i,headers:{"x-vercel-protection-bypass":r}},note:`Sending the Vercel protection bypass secret to ${i} only.`}:{note:`${Ur} is set but not sent: ${i} is not listed in ${Wr}.`}}function Jr(e){return e.ruleId===`x-robots-tag`&&e.severity===`CRITICAL`&&/noindex/i.test(String(e.data?.value??``))}function Yr(e){return e.map(e=>Jr(e)?{...e,severity:`INFO`,data:{...e.data,vercelDowngraded:!0}}:e)}function Xr(e){return e.results.some(e=>e.ruleId===`x-robots-tag`&&e.severity===`INFO`&&e.data?.vercelDowngraded===!0)?[`x-robots-tag`]:[]}function Zr(e,t){let n=[...dt,...Ar,...jr,...Mr],r={};for(let t of n){let n=t.meta.category===`AI Visibility`;e===`only`?r[t.meta.id]=n:n&&(r[t.meta.id]=!1)}return{...t??{},rules:{...t?.rules??{},...r}}}function Qr(){return[...Mr,...jr].map(e=>e.meta.id).sort()}function $r(e){return e===!1?!0:typeof e==`object`&&!!e&&e.enabled===!1}function ei(e){let t=ti(e).rules??{};return Object.keys(Nr).filter(e=>{let n=t[e];return typeof n==`object`&&!!n&&n.enabled===!0}).sort()}function ti(e){let t={...e?.rules??{}};for(let e of Qr())t[e]=!1;for(let[e,n]of Object.entries(Nr))$r(t[e])||(t[e]={enabled:!0,severity:n});return{...e??{},rules:t}}function ni(e,t){let n=e;return t.grant&&(n=ti(n)),t.skipAi&&(n=Zr(`skip`,n)),n}function ri(e,t){return!e||!t?null:`Error: --ai-only cannot run against localhost. Those rules probe your site as external crawlers, which cannot reach a loopback address.`}const ii=(0,n.default)(`lintpage`);function ai(e){let t=process.env.GITHUB_STEP_SUMMARY;if(t)try{(0,s.appendFileSync)(t,`${e}\n`)}catch(e){console.error(`Could not write the job summary: ${e instanceof Error?e.message:String(e)}`)}}ii.command(`<url>`,`Run an audit on a URL`).option(`--format <format>`,`Output format: text, json, github`,{default:`text`}).option(`--config <path>`,`Path to config file`).option(`--fail-on-warning`,`Exit 1 on warnings (not just criticals)`).option(`--ai-only`,`Run only the AI Visibility module (LP-050…LP-060)`).option(`--skip-ai`,`Skip the AI Visibility module`).option(`--quiet`,`Minimal output (counts only)`).action(async(n,r)=>{let i=r.format||`text`,a=r.config,o=!!r.failOnWarning,s=!!r.aiOnly,c=!!r.skipAi,l=!!r.quiet;s&&c&&(console.error(t.default.red(`Error: --ai-only and --skip-ai are mutually exclusive.`)),process.exit(2));try{let{url:r,grant:u}=Br(n),d=ri(s,u);d&&(console.error(t.default.red(d)),process.exit(2));let f=$t(a)??void 0,p=Gr(r),m=ni(f,{grant:u,skipAi:c});!l&&i===`text`&&console.log(t.default.dim(`Auditing ${r}...`));let h=qr(r,process.env[Ur],process.env[Wr]);h.note&&console.error(h.note);let g=await Ot(h.scope,()=>s?Lr(r):Zt(r,{plugins:[Fr()],config:m,grant:u,reportOffSiteRedirect:!0,adjustResults:p?Yr:void 0}));if(u&&(g.localhost={host:u.loopbackHost,notRun:Qr(),downgraded:ei(f)}),p){let e=Xr(g);e.length>0&&(g.vercelDeployment={downgraded:e})}console.log(e.t(g,i,l,o)),i===`github`&&ai(e.a(g));let _=g.results.some(e=>e.severity===`CRITICAL`),v=g.results.some(e=>e.severity===`WARNING`);_&&process.exit(1),o&&v&&process.exit(1),process.exit(0)}catch(r){if(i===`json`)console.error(JSON.stringify({error:r instanceof Error?r.message:String(r)}));else if(i===`github`){let t=r instanceof Error?r.message:String(r);console.log(e.r(n,t)),ai(e.i(n,t))}else console.error(t.default.red(`Error: ${r instanceof Error?r.message:String(r)}`));process.exit(2)}}),ii.command(`init`,`Generate a .lintpagerc.json config file`).action(()=>{let e=(0,c.join)(process.cwd(),`.lintpagerc.json`);(0,s.existsSync)(e)&&(console.log(t.default.yellow(`.lintpagerc.json already exists`)),process.exit(0));let n=en();(0,s.writeFileSync)(e,JSON.stringify(n,null,2)+`
|
|
99
|
+
`),console.log(t.default.green(`Created .lintpagerc.json`)),process.exit(0)}),ii.help();const oi=(0,c.join)(__dirname,`..`,`package.json`),si=(0,s.existsSync)(oi)?JSON.parse((0,s.readFileSync)(oi,`utf-8`)):{version:`0.0.0`};ii.version(si.version);try{ii.parse([...process.argv.slice(0,2),...Hr(process.argv.slice(2),[ii.globalCommand,...ii.commands].flatMap(e=>e.options))])}catch(e){e instanceof Error&&e.message?(console.error(t.default.red(`Error: ${e.message}`)),console.error(t.default.dim(`Run "lintpage --help" for usage information.`))):console.error(t.default.red(`Error: ${String(e)}`)),process.exit(2)}
|
|
100
100
|
//# sourceMappingURL=cli.cjs.map
|