@workflow/web 5.0.0-beta.11 → 5.0.0-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (18) hide show
  1. package/build/client/assets/{highlighted-body-B3W2YXNL-ByAVJfTI.js → highlighted-body-B3W2YXNL-DmlmGvFd.js} +1 -1
  2. package/build/client/assets/{home-D68s49Hb.js → home-BQRPxkXT.js} +2 -2
  3. package/build/client/assets/{manifest-f3e412ee.js → manifest-b8838010.js} +1 -1
  4. package/build/client/assets/{mermaid-3ZIDBTTL-Cg06pRM9.js → mermaid-3ZIDBTTL-CeSti4VQ.js} +32 -3
  5. package/build/client/assets/{root-CtIBMIdD.js → root-8wYQKqnE.js} +1 -1
  6. package/build/client/assets/{root-D_G0HW97.css → root-DvB36HGI.css} +1 -1
  7. package/build/client/assets/{run-detail-B1sCKjMc.js → run-detail-Dn4QeKHW.js} +3 -3
  8. package/build/client/assets/{server-build-DyZioyz3.css → server-build-B5Dibl7P.css} +1 -1
  9. package/build/client/assets/{workflow-graph-viewer-D4OsX_TE.js → workflow-graph-viewer-CxZS9r2o.js} +1 -1
  10. package/build/server/assets/{app-C26OkrrR.js → app-D-W9Jr82.js} +1 -1
  11. package/build/server/assets/{highlighted-body-B3W2YXNL-2D25w_37.js → highlighted-body-B3W2YXNL-CcRpp5rq.js} +2 -2
  12. package/build/server/assets/{index-C6jZ_bJo.js → index-BUU6Hdm_.js} +3 -3
  13. package/build/server/assets/{mermaid-3ZIDBTTL-BDYN9XOo.js → mermaid-3ZIDBTTL-Nh9-IDfL.js} +2 -2
  14. package/build/server/assets/{server-build-D82EKMvZ.js → server-build-BshzAvNv.js} +1648 -395
  15. package/build/server/assets/{token-Bjcyh98U.js → token-BaJALexf.js} +2 -2
  16. package/build/server/assets/{token-util-CdvUIKt6.js → token-util-Bc0jltWL.js} +2 -2
  17. package/build/server/index.js +1 -1
  18. package/package.json +6 -6
@@ -14,8 +14,8 @@ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "
14
14
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
15
15
  var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
16
16
  var _a2, _b, _c, _listeners, _onabort, _reader, _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, canAdoptWithSpace_fn, canAdopt_fn, canAdoptType_fn, adoptWithSpace_fn, adopt_fn, canUsurpType_fn, canUsurp_fn, usurp_fn, flatten_fn, partsToRegExp_fn, parseGlob_fn, _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn, _worldPromise, _Run_instances, lazyWorldPromise_get, _encryptionKeyPromise, _resilientStart, getEncryptionKey_fn, pollReturnValue_fn;
17
- import { a as requireReact, S as ServerRouter, c as createReadableStreamFromReadable, r as reactExports, g as getDefaultExportFromCjs, R as React, b as ReactExports, w as withComponentProps, d as withErrorBoundaryProps, M as Meta, L as Links, e as ScrollRestoration, f as Scripts, O as Outlet, u as useNavigate, h as useSearchParams, i as Link$1, j as useRouteError, k as isRouteErrorResponse, l as useLocation, m as useParams } from "./app-C26OkrrR.js";
18
- import require$$0$3, { PassThrough } from "node:stream";
17
+ import { a as requireReact, S as ServerRouter, c as createReadableStreamFromReadable, r as reactExports, g as getDefaultExportFromCjs, R as React, b as ReactExports, w as withComponentProps, d as withErrorBoundaryProps, M as Meta, L as Links, e as ScrollRestoration, f as Scripts, O as Outlet, u as useNavigate, h as useSearchParams, i as Link$1, j as useRouteError, k as isRouteErrorResponse, l as useLocation, m as useParams } from "./app-D-W9Jr82.js";
18
+ import require$$0$4, { PassThrough } from "node:stream";
19
19
  import require$$0 from "util";
20
20
  import require$$1 from "crypto";
21
21
  import require$$2 from "async_hooks";
@@ -23,32 +23,32 @@ import require$$5 from "stream";
23
23
  import crypto, { createHash, webcrypto } from "node:crypto";
24
24
  import minproc from "node:process";
25
25
  import path$3, { join as join$1, resolve, dirname, isAbsolute, sep as sep$1 } from "node:path";
26
- import { fileURLToPath, pathToFileURL } from "node:url";
26
+ import require$$1$2, { fileURLToPath, pathToFileURL } from "node:url";
27
27
  import { createRequire } from "module";
28
28
  import fs$1, { readdir, readlink, readFile, mkdir, access, constants as constants$6, writeFile, unlink, rm } from "node:fs/promises";
29
29
  import require$$3, { types as types$3, promisify, inspect } from "node:util";
30
- import require$$1$2, { AsyncLocalStorage } from "node:async_hooks";
30
+ import require$$1$3, { AsyncLocalStorage } from "node:async_hooks";
31
31
  import { createRequire as createRequire$1 } from "node:module";
32
32
  import { promises } from "node:fs";
33
33
  import { execFile } from "node:child_process";
34
34
  import { setTimeout as setTimeout$1 } from "node:timers/promises";
35
35
  import require$$0$1 from "events";
36
- import require$$0$2 from "node:assert";
37
- import require$$0$4 from "node:net";
36
+ import require$$0$3 from "node:assert";
37
+ import require$$0$5 from "node:net";
38
38
  import require$$2$1 from "node:http";
39
39
  import require$$5$1 from "node:querystring";
40
- import require$$6, { EventEmitter } from "node:events";
41
- import require$$0$5 from "node:diagnostics_channel";
40
+ import require$$0$2, { EventEmitter } from "node:events";
41
+ import require$$0$6 from "node:diagnostics_channel";
42
42
  import require$$4 from "node:tls";
43
- import require$$0$6 from "node:buffer";
43
+ import require$$0$7 from "node:buffer";
44
44
  import require$$3$1 from "node:zlib";
45
45
  import require$$5$2 from "node:perf_hooks";
46
46
  import require$$8 from "node:util/types";
47
47
  import require$$1$1 from "node:sqlite";
48
48
  import require$$2$2 from "node:worker_threads";
49
- import require$$1$3 from "node:console";
49
+ import require$$1$4 from "node:console";
50
50
  import require$$2$3 from "node:timers";
51
- import require$$1$4 from "node:dns";
51
+ import require$$1$5 from "node:dns";
52
52
  import * as path$2 from "path";
53
53
  import path__default from "path";
54
54
  import * as fs from "fs";
@@ -48941,6 +48941,11 @@ const WorkflowInvokePayloadSchema = object$1({
48941
48941
  runId: string$3(),
48942
48942
  traceCarrier: TraceCarrierSchema.optional(),
48943
48943
  requestedAt: date$2().optional(),
48944
+ /** Consecutive replay divergences in this recovery chain and latest position. */
48945
+ replayDivergence: object$1({
48946
+ eventId: string$3(),
48947
+ count: number$3().int().positive()
48948
+ }).optional(),
48944
48949
  /** Number of times this message has been re-enqueued due to server errors (5xx) */
48945
48950
  serverErrorRetryCount: number$3().int().optional(),
48946
48951
  /** Step ID for inline step execution in combined handler. If provided, the flow execution
@@ -49421,7 +49426,8 @@ function getWebRevivers() {
49421
49426
  // Error family. The reducer side (see
49422
49427
  // `packages/core/src/serialization/reducers/common.ts`) emits a tagged
49423
49428
  // entry for each built-in Error subclass plus the workflow-specific
49424
- // `FatalError` / `RetryableError` and `AggregateError`. Without
49429
+ // `FatalError` / `RetryableError` / `HookConflictError` /
49430
+ // `RuntimeDecryptionError` and `AggregateError`. Without
49425
49431
  // matching revivers here, `devalue.unflatten` throws "Unknown type X"
49426
49432
  // — which surfaces in the web o11y UI as "Failed to load resource
49427
49433
  // details: Unknown type FatalError".
@@ -49467,6 +49473,18 @@ function getWebRevivers() {
49467
49473
  error2.stack = value.stack;
49468
49474
  return error2;
49469
49475
  },
49476
+ HookConflictError: (value) => {
49477
+ const opts = "cause" in value ? { cause: value.cause } : void 0;
49478
+ const error2 = new Error(value.message, opts);
49479
+ error2.name = "HookConflictError";
49480
+ error2.token = value.token;
49481
+ if (value.conflictingRunId !== void 0) {
49482
+ error2.conflictingRunId = value.conflictingRunId;
49483
+ }
49484
+ if (value.stack !== void 0)
49485
+ error2.stack = value.stack;
49486
+ return error2;
49487
+ },
49470
49488
  RetryableError: (value) => {
49471
49489
  const opts = "cause" in value ? { cause: value.cause } : void 0;
49472
49490
  const error2 = new Error(value.message, opts);
@@ -49478,6 +49496,17 @@ function getWebRevivers() {
49478
49496
  }
49479
49497
  return error2;
49480
49498
  },
49499
+ RuntimeDecryptionError: (value) => {
49500
+ const opts = "cause" in value ? { cause: value.cause } : void 0;
49501
+ const error2 = new Error(value.message, opts);
49502
+ error2.name = "RuntimeDecryptionError";
49503
+ if (value.context !== void 0) {
49504
+ error2.context = value.context;
49505
+ }
49506
+ if (value.stack !== void 0)
49507
+ error2.stack = value.stack;
49508
+ return error2;
49509
+ },
49481
49510
  DOMException: (value) => {
49482
49511
  const G2 = globalThis;
49483
49512
  if (typeof G2.DOMException === "function") {
@@ -80627,7 +80656,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
80627
80656
  var et = ({ className: e, language: t, style: o, isIncomplete: n, ...s2 }) => jsxRuntimeExports.jsx("div", { className: f("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2", e), "data-incomplete": n || void 0, "data-language": t, "data-streamdown": "code-block", style: { contentVisibility: "auto", containIntrinsicSize: "auto 200px", ...o }, ...s2 });
80628
80657
  var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
80629
80658
  var ot = ({ language: e }) => jsxRuntimeExports.jsx("div", { className: "flex h-8 items-center text-muted-foreground text-xs", "data-language": e, "data-streamdown": "code-block-header", children: jsxRuntimeExports.jsx("span", { className: "ml-1 font-mono lowercase", children: e }) });
80630
- var cn$1 = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-2D25w_37.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
80659
+ var cn$1 = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-CcRpp5rq.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
80631
80660
  let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
80632
80661
  `).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
80633
80662
  return jsxRuntimeExports.jsx(Se.Provider, { value: { code: e }, children: jsxRuntimeExports.jsxs(et, { isIncomplete: s2, language: t, children: [jsxRuntimeExports.jsx(ot, { language: t }), n ? jsxRuntimeExports.jsx("div", { className: "pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end", children: jsxRuntimeExports.jsx("div", { className: "pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur", "data-streamdown": "code-block-actions", children: n }) }) : null, jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: jsxRuntimeExports.jsx(Qe, { className: o, language: t, result: c, ...r2 }), children: jsxRuntimeExports.jsx(dn, { className: o, code: i, language: t, raw: c, ...r2 }) })] }) });
@@ -80949,7 +80978,7 @@ var Dt = ({ children: e, className: t, onDownload: o, onError: n }) => {
80949
80978
  }, []), jsxRuntimeExports.jsxs("div", { className: "relative", ref: i, children: [jsxRuntimeExports.jsx("button", { className: f("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50", t), disabled: c, onClick: () => r2(!s2), title: "Download table", type: "button", children: e != null ? e : jsxRuntimeExports.jsx(Z, { size: 14 }) }), s2 ? jsxRuntimeExports.jsxs("div", { className: "absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg", children: [jsxRuntimeExports.jsx("button", { className: "w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40", onClick: () => a2("csv"), title: "Download table as CSV", type: "button", children: "CSV" }), jsxRuntimeExports.jsx("button", { className: "w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40", onClick: () => a2("markdown"), title: "Download table as Markdown", type: "button", children: "Markdown" })] }) : null] });
80950
80979
  };
80951
80980
  var Vt = ({ children: e, className: t, showControls: o, ...n }) => jsxRuntimeExports.jsxs("div", { className: "my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2", "data-streamdown": "table-wrapper", children: [o ? jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-end gap-1", children: [jsxRuntimeExports.jsx(Ht, {}), jsxRuntimeExports.jsx(Dt, {})] }) : null, jsxRuntimeExports.jsx("div", { className: "border-collapse overflow-x-auto overscroll-y-auto rounded-md border border-border bg-background", children: jsxRuntimeExports.jsx("table", { className: f("w-full divide-y divide-border", t), "data-streamdown": "table", ...n, children: e }) })] });
80952
- var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-BDYN9XOo.js").then((e) => ({ default: e.Mermaid }))), Kn = /language-([^\s]+)/;
80981
+ var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-Nh9-IDfL.js").then((e) => ({ default: e.Mermaid }))), Kn = /language-([^\s]+)/;
80953
80982
  function ke(e, t) {
80954
80983
  if (!(e != null && e.position || t != null && t.position)) return true;
80955
80984
  if (!(e != null && e.position && (t != null && t.position))) return false;
@@ -84869,7 +84898,7 @@ function NewTraceViewerContent({ trace: trace2, onLoadMore, hasMore, isLoadingMo
84869
84898
  prevSpanIdRef.current = prevSpanId;
84870
84899
  nextSpanIdRef.current = nextSpanId;
84871
84900
  handleSelectSpanRef.current = handleSelectSpan;
84872
- return jsxRuntimeExports.jsxs("div", { "data-pane": "pane-root", "data-has-detail": activeSpan ? "" : void 0, className: "grid w-full h-full max-h-full grid-cols-[minmax(100px,1fr)] data-[has-detail]:grid-cols-[minmax(100px,1fr)_clamp(280px,420px,100%)]", children: [jsxRuntimeExports.jsxs("div", { id: "trace-parent", className: "grid grid-rows-[1fr] h-full min-h-0 overflow-hidden relative bg-background-100", children: [jsxRuntimeExports.jsxs(SplitPane, { scrollContainerRef, startHeader: jsxRuntimeExports.jsxs("div", { className: "bg-background-100 border-b border-gray-alpha-400 h-10 min-h-10 flex items-center pl-4 pr-2 gap-1.5", children: [jsxRuntimeExports.jsx(Search, { className: "w-3.5 h-3.5 shrink-0 text-gray-800" }), jsxRuntimeExports.jsx("input", { id: "trace-viewer-search", name: "trace-viewer-search", type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), onKeyDown: (e) => {
84901
+ return jsxRuntimeExports.jsxs("div", { "data-pane": "pane-root", "data-has-detail": activeSpan ? "" : void 0, className: "grid w-full h-full max-h-full grid-cols-[minmax(100px,1fr)] data-[has-detail]:grid-cols-[minmax(100px,1fr)_clamp(280px,360px,100%)]", children: [jsxRuntimeExports.jsxs("div", { id: "trace-parent", className: "grid grid-rows-[1fr] h-full min-h-0 overflow-hidden relative bg-background-100", children: [jsxRuntimeExports.jsxs(SplitPane, { scrollContainerRef, startHeader: jsxRuntimeExports.jsxs("div", { className: "bg-background-100 border-b border-gray-alpha-400 h-10 min-h-10 flex items-center pl-4 pr-2 gap-1.5", children: [jsxRuntimeExports.jsx(Search, { className: "w-3.5 h-3.5 shrink-0 text-gray-800" }), jsxRuntimeExports.jsx("input", { id: "trace-viewer-search", name: "trace-viewer-search", type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), onKeyDown: (e) => {
84873
84902
  if (e.key === "Escape" && searchQuery) {
84874
84903
  e.preventDefault();
84875
84904
  e.stopPropagation();
@@ -88861,7 +88890,7 @@ const encryption = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
88861
88890
  encrypt: encrypt$1,
88862
88891
  importKey
88863
88892
  }, Symbol.toStringTag, { value: "Module" }));
88864
- const version$1 = "5.0.0-beta.11";
88893
+ const version$1 = "5.0.0-beta.12";
88865
88894
  const WorldCacheKey = Symbol.for("@workflow/world//cache");
88866
88895
  const WorldCachePromiseKey = Symbol.for("@workflow/world//cachePromise");
88867
88896
  const GetWorldFnKey$1 = Symbol.for("@workflow/world//getWorldFn");
@@ -93251,7 +93280,8 @@ function requireSymbols() {
93251
93280
  kPingInterval: Symbol("ping interval"),
93252
93281
  kNoProxyAgent: Symbol("no proxy agent"),
93253
93282
  kHttpProxyAgent: Symbol("http proxy agent"),
93254
- kHttpsProxyAgent: Symbol("https proxy agent")
93283
+ kHttpsProxyAgent: Symbol("https proxy agent"),
93284
+ kSocks5ProxyAgent: Symbol("socks5 proxy agent")
93255
93285
  };
93256
93286
  return symbols;
93257
93287
  }
@@ -93843,6 +93873,29 @@ function requireErrors() {
93843
93873
  return true;
93844
93874
  }
93845
93875
  }
93876
+ class Socks5ProxyError extends UndiciError {
93877
+ constructor(message2, code2) {
93878
+ super(message2);
93879
+ this.name = "Socks5ProxyError";
93880
+ this.message = message2 || "SOCKS5 proxy error";
93881
+ this.code = code2 || "UND_ERR_SOCKS5";
93882
+ }
93883
+ }
93884
+ const kMessageSizeExceededError = Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED");
93885
+ class MessageSizeExceededError extends UndiciError {
93886
+ constructor(message2) {
93887
+ super(message2);
93888
+ this.name = "MessageSizeExceededError";
93889
+ this.message = message2 || "Max decompressed message size exceeded";
93890
+ this.code = "UND_ERR_WS_MESSAGE_SIZE_EXCEEDED";
93891
+ }
93892
+ static [Symbol.hasInstance](instance) {
93893
+ return instance && instance[kMessageSizeExceededError] === true;
93894
+ }
93895
+ get [kMessageSizeExceededError]() {
93896
+ return true;
93897
+ }
93898
+ }
93846
93899
  errors = {
93847
93900
  AbortError,
93848
93901
  HTTPParserError,
@@ -93866,7 +93919,9 @@ function requireErrors() {
93866
93919
  RequestRetryError,
93867
93920
  ResponseError,
93868
93921
  SecureProxyConnectionError,
93869
- MaxOriginsReachedError
93922
+ MaxOriginsReachedError,
93923
+ Socks5ProxyError,
93924
+ MessageSizeExceededError
93870
93925
  };
93871
93926
  return errors;
93872
93927
  }
@@ -94148,13 +94203,13 @@ var hasRequiredUtil$5;
94148
94203
  function requireUtil$5() {
94149
94204
  if (hasRequiredUtil$5) return util$5;
94150
94205
  hasRequiredUtil$5 = 1;
94151
- const assert2 = require$$0$2;
94206
+ const assert2 = require$$0$3;
94152
94207
  const { kDestroyed, kBodyUsed, kListeners, kBody } = requireSymbols();
94153
94208
  const { IncomingMessage } = require$$2$1;
94154
- const stream = require$$0$3;
94155
- const net2 = require$$0$4;
94209
+ const stream = require$$0$4;
94210
+ const net2 = require$$0$5;
94156
94211
  const { stringify: stringify2 } = require$$5$1;
94157
- const { EventEmitter: EE } = require$$6;
94212
+ const { EventEmitter: EE } = require$$0$2;
94158
94213
  const timers2 = requireTimers();
94159
94214
  const { InvalidArgumentError, ConnectTimeoutError } = requireErrors();
94160
94215
  const { headerNameLowerCasedRecord } = requireConstants$5();
@@ -94315,6 +94370,11 @@ function requireUtil$5() {
94315
94370
  function isIterable(obj) {
94316
94371
  return !!(obj != null && (typeof obj[Symbol.iterator] === "function" || typeof obj[Symbol.asyncIterator] === "function"));
94317
94372
  }
94373
+ function hasSafeIterator(obj) {
94374
+ const prototype = Object.getPrototypeOf(obj);
94375
+ const ownIterator = Object.prototype.hasOwnProperty.call(obj, Symbol.iterator);
94376
+ return ownIterator || prototype != null && prototype !== Object.prototype && typeof obj[Symbol.iterator] === "function";
94377
+ }
94318
94378
  function bodyLength(body2) {
94319
94379
  if (body2 == null) {
94320
94380
  return 0;
@@ -94366,19 +94426,29 @@ function requireUtil$5() {
94366
94426
  for (let i = 0; i < headers2.length; i += 2) {
94367
94427
  const key = headerNameToString(headers2[i]);
94368
94428
  let val = obj[key];
94369
- if (val) {
94370
- if (typeof val === "string") {
94371
- val = [val];
94372
- obj[key] = val;
94373
- }
94374
- val.push(headers2[i + 1].toString("latin1"));
94375
- } else {
94376
- const headersValue = headers2[i + 1];
94377
- if (typeof headersValue === "string") {
94378
- obj[key] = headersValue;
94429
+ if (val !== void 0) {
94430
+ if (!Object.hasOwn(obj, key)) {
94431
+ const headersValue = typeof headers2[i + 1] === "string" ? headers2[i + 1] : Array.isArray(headers2[i + 1]) ? headers2[i + 1].map((x2) => x2.toString("latin1")) : headers2[i + 1].toString("latin1");
94432
+ if (key === "__proto__") {
94433
+ Object.defineProperty(obj, key, {
94434
+ value: headersValue,
94435
+ enumerable: true,
94436
+ configurable: true,
94437
+ writable: true
94438
+ });
94439
+ } else {
94440
+ obj[key] = headersValue;
94441
+ }
94379
94442
  } else {
94380
- obj[key] = Array.isArray(headersValue) ? headersValue.map((x2) => x2.toString("latin1")) : headersValue.toString("latin1");
94443
+ if (typeof val === "string") {
94444
+ val = [val];
94445
+ obj[key] = val;
94446
+ }
94447
+ val.push(headers2[i + 1].toString("latin1"));
94381
94448
  }
94449
+ } else {
94450
+ const headersValue = typeof headers2[i + 1] === "string" ? headers2[i + 1] : Array.isArray(headers2[i + 1]) ? headers2[i + 1].map((x2) => x2.toString("latin1")) : headers2[i + 1].toString("latin1");
94451
+ obj[key] = headersValue;
94382
94452
  }
94383
94453
  }
94384
94454
  return obj;
@@ -94911,6 +94981,7 @@ function requireUtil$5() {
94911
94981
  getServerName,
94912
94982
  isStream,
94913
94983
  isIterable,
94984
+ hasSafeIterator,
94914
94985
  isAsyncIterable,
94915
94986
  isDestroyed,
94916
94987
  headerNameToString,
@@ -94989,7 +95060,7 @@ var hasRequiredDiagnostics;
94989
95060
  function requireDiagnostics() {
94990
95061
  if (hasRequiredDiagnostics) return diagnostics;
94991
95062
  hasRequiredDiagnostics = 1;
94992
- const diagnosticsChannel = require$$0$5;
95063
+ const diagnosticsChannel = require$$0$6;
94993
95064
  const util2 = require$$3;
94994
95065
  const undiciDebugLog = util2.debuglog("undici");
94995
95066
  const fetchDebuglog = util2.debuglog("fetch");
@@ -95149,10 +95220,12 @@ function requireDiagnostics() {
95149
95220
  diagnosticsChannel.subscribe(
95150
95221
  "undici:websocket:open",
95151
95222
  (evt) => {
95152
- const {
95153
- address: { address, port }
95154
- } = evt;
95155
- debugLog("connection opened %s%s", address, port ? `:${port}` : "");
95223
+ if (evt.address != null) {
95224
+ const { address, port } = evt.address;
95225
+ debugLog("connection opened %s%s", address, port ? `:${port}` : "");
95226
+ } else {
95227
+ debugLog("connection opened");
95228
+ }
95156
95229
  }
95157
95230
  );
95158
95231
  diagnosticsChannel.subscribe(
@@ -95208,7 +95281,7 @@ function requireRequest$1() {
95208
95281
  InvalidArgumentError,
95209
95282
  NotSupportedError
95210
95283
  } = requireErrors();
95211
- const assert2 = require$$0$2;
95284
+ const assert2 = require$$0$3;
95212
95285
  const {
95213
95286
  isValidHTTPToken,
95214
95287
  isValidHeaderValue,
@@ -95217,6 +95290,7 @@ function requireRequest$1() {
95217
95290
  isBuffer,
95218
95291
  isFormDataLike,
95219
95292
  isIterable,
95293
+ hasSafeIterator,
95220
95294
  isBlobLike,
95221
95295
  serializePathWithQuery,
95222
95296
  assertRequestHandler,
@@ -95227,6 +95301,18 @@ function requireRequest$1() {
95227
95301
  const { channels } = requireDiagnostics();
95228
95302
  const { headerNameLowerCasedRecord } = requireConstants$5();
95229
95303
  const invalidPathRegex = /[^\u0021-\u00ff]/;
95304
+ function isValidContentLengthHeaderValue(val) {
95305
+ if (typeof val !== "string" || val.length === 0) {
95306
+ return false;
95307
+ }
95308
+ for (let i = 0; i < val.length; i++) {
95309
+ const charCode = val.charCodeAt(i);
95310
+ if (charCode < 48 || charCode > 57) {
95311
+ return false;
95312
+ }
95313
+ }
95314
+ return true;
95315
+ }
95230
95316
  const kHandler = Symbol("handler");
95231
95317
  class Request2 {
95232
95318
  constructor(origin, {
@@ -95244,7 +95330,8 @@ function requireRequest$1() {
95244
95330
  expectContinue,
95245
95331
  servername,
95246
95332
  throwOnError,
95247
- maxRedirections
95333
+ maxRedirections,
95334
+ typeOfService
95248
95335
  }, handler) {
95249
95336
  if (typeof path2 !== "string") {
95250
95337
  throw new InvalidArgumentError("path must be a string");
@@ -95261,6 +95348,9 @@ function requireRequest$1() {
95261
95348
  if (upgrade && typeof upgrade !== "string") {
95262
95349
  throw new InvalidArgumentError("upgrade must be a string");
95263
95350
  }
95351
+ if (upgrade && !isValidHeaderValue(upgrade)) {
95352
+ throw new InvalidArgumentError("invalid upgrade header");
95353
+ }
95264
95354
  if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {
95265
95355
  throw new InvalidArgumentError("invalid headersTimeout");
95266
95356
  }
@@ -95279,9 +95369,13 @@ function requireRequest$1() {
95279
95369
  if (maxRedirections != null && maxRedirections !== 0) {
95280
95370
  throw new InvalidArgumentError("maxRedirections is not supported, use the redirect interceptor");
95281
95371
  }
95372
+ if (typeOfService != null && (!Number.isInteger(typeOfService) || typeOfService < 0 || typeOfService > 255)) {
95373
+ throw new InvalidArgumentError("typeOfService must be an integer between 0 and 255");
95374
+ }
95282
95375
  this.headersTimeout = headersTimeout;
95283
95376
  this.bodyTimeout = bodyTimeout;
95284
95377
  this.method = method;
95378
+ this.typeOfService = typeOfService ?? 0;
95285
95379
  this.abort = null;
95286
95380
  if (body2 == null) {
95287
95381
  this.body = null;
@@ -95337,7 +95431,7 @@ function requireRequest$1() {
95337
95431
  processHeader(this, headers2[i], headers2[i + 1]);
95338
95432
  }
95339
95433
  } else if (headers2 && typeof headers2 === "object") {
95340
- if (headers2[Symbol.iterator]) {
95434
+ if (hasSafeIterator(headers2)) {
95341
95435
  for (const header of headers2) {
95342
95436
  if (!Array.isArray(header) || header.length !== 2) {
95343
95437
  throw new InvalidArgumentError("headers must be in key-value pair format");
@@ -95507,28 +95601,40 @@ function requireRequest$1() {
95507
95601
  } else {
95508
95602
  val = `${val}`;
95509
95603
  }
95510
- if (request2.host === null && headerName === "host") {
95604
+ if (headerName === "host") {
95605
+ if (request2.host !== null) {
95606
+ throw new InvalidArgumentError("duplicate host header");
95607
+ }
95511
95608
  if (typeof val !== "string") {
95512
95609
  throw new InvalidArgumentError("invalid host header");
95513
95610
  }
95514
95611
  request2.host = val;
95515
- } else if (request2.contentLength === null && headerName === "content-length") {
95516
- request2.contentLength = parseInt(val, 10);
95517
- if (!Number.isFinite(request2.contentLength)) {
95612
+ } else if (headerName === "content-length") {
95613
+ if (request2.contentLength !== null) {
95614
+ throw new InvalidArgumentError("duplicate content-length header");
95615
+ }
95616
+ if (!isValidContentLengthHeaderValue(val)) {
95518
95617
  throw new InvalidArgumentError("invalid content-length header");
95519
95618
  }
95619
+ request2.contentLength = parseInt(val, 10);
95520
95620
  } else if (request2.contentType === null && headerName === "content-type") {
95521
95621
  request2.contentType = val;
95522
95622
  request2.headers.push(key, val);
95523
95623
  } else if (headerName === "transfer-encoding" || headerName === "keep-alive" || headerName === "upgrade") {
95524
95624
  throw new InvalidArgumentError(`invalid ${headerName} header`);
95525
95625
  } else if (headerName === "connection") {
95526
- const value = typeof val === "string" ? val.toLowerCase() : null;
95527
- if (value !== "close" && value !== "keep-alive") {
95626
+ const value = typeof val === "string" ? val : null;
95627
+ if (value === null) {
95528
95628
  throw new InvalidArgumentError("invalid connection header");
95529
95629
  }
95530
- if (value === "close") {
95531
- request2.reset = true;
95630
+ for (const token of value.toLowerCase().split(",")) {
95631
+ const trimmed = token.trim();
95632
+ if (!isValidHTTPToken(trimmed)) {
95633
+ throw new InvalidArgumentError("invalid connection header");
95634
+ }
95635
+ if (trimmed === "close") {
95636
+ request2.reset = true;
95637
+ }
95532
95638
  }
95533
95639
  } else if (headerName === "expect") {
95534
95640
  throw new NotSupportedError("expect header not supported");
@@ -95559,6 +95665,10 @@ function requireWrapHandler() {
95559
95665
  var _a4, _b2;
95560
95666
  return (_b2 = (_a4 = __privateGet(this, _handler)).onConnect) == null ? void 0 : _b2.call(_a4, abort, context);
95561
95667
  }
95668
+ onResponseStarted() {
95669
+ var _a4, _b2;
95670
+ return (_b2 = (_a4 = __privateGet(this, _handler)).onResponseStarted) == null ? void 0 : _b2.call(_a4);
95671
+ }
95562
95672
  onHeaders(statusCode, rawHeaders, resume, statusMessage) {
95563
95673
  var _a4, _b2;
95564
95674
  return (_b2 = (_a4 = __privateGet(this, _handler)).onHeaders) == null ? void 0 : _b2.call(_a4, statusCode, rawHeaders, resume, statusMessage);
@@ -95591,7 +95701,7 @@ function requireWrapHandler() {
95591
95701
  var _a4, _b2;
95592
95702
  const rawHeaders = [];
95593
95703
  for (const [key, val] of Object.entries(headers2)) {
95594
- rawHeaders.push(Buffer.from(key), Array.isArray(val) ? val.map((v2) => Buffer.from(v2)) : Buffer.from(val));
95704
+ rawHeaders.push(Buffer.from(key, "latin1"), toRawHeaderValue(val));
95595
95705
  }
95596
95706
  (_b2 = (_a4 = __privateGet(this, _handler)).onUpgrade) == null ? void 0 : _b2.call(_a4, statusCode, rawHeaders, socket);
95597
95707
  }
@@ -95599,7 +95709,7 @@ function requireWrapHandler() {
95599
95709
  var _a4, _b2;
95600
95710
  const rawHeaders = [];
95601
95711
  for (const [key, val] of Object.entries(headers2)) {
95602
- rawHeaders.push(Buffer.from(key), Array.isArray(val) ? val.map((v2) => Buffer.from(v2)) : Buffer.from(val));
95712
+ rawHeaders.push(Buffer.from(key, "latin1"), toRawHeaderValue(val));
95603
95713
  }
95604
95714
  if (((_b2 = (_a4 = __privateGet(this, _handler)).onHeaders) == null ? void 0 : _b2.call(_a4, statusCode, rawHeaders, () => controller.resume(), statusMessage)) === false) {
95605
95715
  controller.pause();
@@ -95615,7 +95725,7 @@ function requireWrapHandler() {
95615
95725
  var _a4, _b2;
95616
95726
  const rawTrailers = [];
95617
95727
  for (const [key, val] of Object.entries(trailers)) {
95618
- rawTrailers.push(Buffer.from(key), Array.isArray(val) ? val.map((v2) => Buffer.from(v2)) : Buffer.from(val));
95728
+ rawTrailers.push(Buffer.from(key, "latin1"), toRawHeaderValue(val));
95619
95729
  }
95620
95730
  (_b2 = (_a4 = __privateGet(this, _handler)).onComplete) == null ? void 0 : _b2.call(_a4, rawTrailers);
95621
95731
  }
@@ -95627,6 +95737,9 @@ function requireWrapHandler() {
95627
95737
  (_b2 = (_a4 = __privateGet(this, _handler)).onError) == null ? void 0 : _b2.call(_a4, err);
95628
95738
  }
95629
95739
  }, _handler = new WeakMap(), _a3);
95740
+ function toRawHeaderValue(value) {
95741
+ return Array.isArray(value) ? value.map((item) => Buffer.from(item, "latin1")) : Buffer.from(value, "latin1");
95742
+ }
95630
95743
  return wrapHandler$1;
95631
95744
  }
95632
95745
  var dispatcher;
@@ -95634,7 +95747,7 @@ var hasRequiredDispatcher;
95634
95747
  function requireDispatcher() {
95635
95748
  if (hasRequiredDispatcher) return dispatcher;
95636
95749
  hasRequiredDispatcher = 1;
95637
- const EventEmitter2 = require$$6;
95750
+ const EventEmitter2 = require$$0$2;
95638
95751
  const WrapHandler = requireWrapHandler();
95639
95752
  const wrapInterceptor = (dispatch2) => (opts, handler) => dispatch2(opts, WrapHandler.wrap(handler));
95640
95753
  class Dispatcher extends EventEmitter2 {
@@ -95735,6 +95848,10 @@ function requireUnwrapHandler() {
95735
95848
  __privateSet(this, _controller, new UnwrapController(abort));
95736
95849
  (_b3 = (_a4 = __privateGet(this, _handler)).onRequestStart) == null ? void 0 : _b3.call(_a4, __privateGet(this, _controller), context);
95737
95850
  }
95851
+ onResponseStarted() {
95852
+ var _a4, _b3;
95853
+ return (_b3 = (_a4 = __privateGet(this, _handler)).onResponseStarted) == null ? void 0 : _b3.call(_a4);
95854
+ }
95738
95855
  onUpgrade(statusCode, rawHeaders, socket) {
95739
95856
  var _a4, _b3;
95740
95857
  (_b3 = (_a4 = __privateGet(this, _handler)).onRequestUpgrade) == null ? void 0 : _b3.call(_a4, __privateGet(this, _controller), statusCode, parseHeaders2(rawHeaders), socket);
@@ -95907,8 +96024,8 @@ var hasRequiredConnect;
95907
96024
  function requireConnect() {
95908
96025
  if (hasRequiredConnect) return connect;
95909
96026
  hasRequiredConnect = 1;
95910
- const net2 = require$$0$4;
95911
- const assert2 = require$$0$2;
96027
+ const net2 = require$$0$5;
96028
+ const assert2 = require$$0$3;
95912
96029
  const util2 = requireUtil$5();
95913
96030
  const { InvalidArgumentError } = requireErrors();
95914
96031
  let tls;
@@ -95934,6 +96051,20 @@ function requireConnect() {
95934
96051
  if (this._maxCachedSessions === 0) {
95935
96052
  return;
95936
96053
  }
96054
+ if (this._sessionCache.has(sessionKey)) {
96055
+ this._sessionCache.delete(sessionKey);
96056
+ } else if (this._sessionCache.size >= this._maxCachedSessions) {
96057
+ for (const [key, ref] of this._sessionCache) {
96058
+ if (ref.deref() === void 0) {
96059
+ this._sessionCache.delete(key);
96060
+ return;
96061
+ }
96062
+ }
96063
+ const oldest = this._sessionCache.keys().next();
96064
+ if (!oldest.done) {
96065
+ this._sessionCache.delete(oldest.value);
96066
+ }
96067
+ }
95937
96068
  this._sessionCache.set(sessionKey, new WeakRef(session));
95938
96069
  this._sessionRegistry.register(session, sessionKey);
95939
96070
  }
@@ -96662,7 +96793,7 @@ function requireLlhttpWasm() {
96662
96793
  if (hasRequiredLlhttpWasm) return llhttpWasm.exports;
96663
96794
  hasRequiredLlhttpWasm = 1;
96664
96795
  (function(module) {
96665
- const { Buffer: Buffer2 } = require$$0$6;
96796
+ const { Buffer: Buffer2 } = require$$0$7;
96666
96797
  const wasmBase64 = "AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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C0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAg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ogKiAqICogKiAqICogKiAqICogKiAqICogIAogILIAQgAUEBaiIBRw0AC0HJACECDOwCCyABQQFqIQEgA0Evai0AAEEBcQ2lAiADQQA2AhwgAyABNgIUIANBlxA2AhAgA0EKNgIMQQAhAgzrAgsgASAERwRAA0AgAS0AAEEgRw0VIAQgAUEBaiIBRw0AC0H4ACECDOsCC0H4ACECDOoCCyADQQI6ACgMOAtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQM6AILQQAhAgzOAgtBDSECDM0CC0ETIQIMzAILQRUhAgzLAgtBFiECDMoCC0EYIQIMyQILQRkhAgzIAgtBGiECDMcCC0EbIQIMxgILQRwhAgzFAgtBHSECDMQCC0EeIQIMwwILQR8hAgzCAgtBICECDMECC0EiIQIMwAILQSMhAgy/AgtBJSECDL4CC0HlACECDL0CCyADQT02AhwgAyABNgIUIAMgADYCDEEAIQIM1QILIANBGzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDNQCCyADQSA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzTAgsgA0ETNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0gILIANBCzYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNECCyADQRA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzQAgsgA0EgNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzwILIANBCzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM4CCyADQQw2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzNAgtBACECIANBADYCHCADIAE2AhQgA0HdDjYCECADQRI2AgwMzAILAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB/QEhAgzMAgsCQAJAIAMtADZBAUcNAEEAIQACQCADKAI4IgJFDQAgAigCYCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUcNASADQfwBNgIcIAMgATYCFCADQdwZNgIQIANBFTYCDEEAIQIMzQILQdwBIQIMswILIANBADYCHCADIAE2AhQgA0H5CzYCECADQR82AgxBACECDMsCCwJAAkAgAy0AKEEBaw4CBAEAC0HbASECDLICC0HUASECDLECCyADQQI6ADFBACEAAkAgAygCOCICRQ0AIAIoAgAiAkUNACADIAIRAAAhAAsgAEUEQEHdASECDLECCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQbQMNgIQIANBEDYCDEEAIQIMygILIANB+wE2AhwgAyABNgIUIANBgRo2AhAgA0EVNgIMQQAhAgzJAgsgASAERgRAQfoBIQIMyQILIAEtAABByABGDQEgA0EBOgAoC0HAASECDK4CC0HaASECDK0CCyABIARHBEAgA0EMNgIIIAMgATYCBEHZASECDK0CC0H5ASECDMUCCyABIARGBEBB+AEhAgzFAgsgAS0AAEHIAEcNBCABQQFqIQFB2AEhAgyrAgsgASAERgRAQfcBIQIMxAILAkACQCABLQAAQcUAaw4QAAUFBQUFBQUFBQUFBQUFAQULIAFBAWohAUHWASECDKsCCyABQQFqIQFB1wEhAgyqAgtB9gEhAiABIARGDcICIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbrVAGotAABHDQMgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMMCCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIARQRAQeMBIQIMqgILIANB9QE2AhwgAyABNgIUIAMgADYCDEEAIQIMwgILQfQBIQIgASAERg3BAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEG41QBqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzCAgsgA0GBBDsBKCADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIADQMMAgsgA0EANgIAC0EAIQIgA0EANgIcIAMgATYCFCADQeUfNgIQIANBCDYCDAy/AgtB1QEhAgylAgsgA0HzATYCHCADIAE2AhQgAyAANgIMQQAhAgy9AgtBACEAAkAgAygCOCICRQ0AIAIoAkAiAkUNACADIAIRAAAhAAsgAEUNbiAAQRVHBEAgA0EANgIcIAMgATYCFCADQYIPNgIQIANBIDYCDEEAIQIMvQILIANBjwE2AhwgAyABNgIUIANB7Bs2AhAgA0EVNgIMQQAhAgy8AgsgASAERwRAIANBDTYCCCADIAE2AgRB0wEhAgyjAgtB8gEhAgy7AgsgASAERgRAQfEBIQIMuwILAkACQAJAIAEtAABByABrDgsAAQgICAgICAgIAggLIAFBAWohAUHQASECDKMCCyABQQFqIQFB0QEhAgyiAgsgAUEBaiEBQdIBIQIMoQILQfABIQIgASAERg25AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBtdUAai0AAEcNBCAAQQJGDQMgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuQILQe8BIQIgASAERg24AiADKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABBs9UAai0AAEcNAyAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuAILQe4BIQIgASAERg23AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMtwILIAMoAgQhACADQgA3AwAgAyAAIAVBAWoiARArIgBFDQIgA0HsATYCHCADIAE2AhQgAyAANgIMQQAhAgy2AgsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNnAIgA0HtATYCHCADIAE2AhQgAyAANgIMQQAhAgy0AgtBzwEhAgyaAgtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDLQCC0HOASECDJoCCyADQesBNgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMsgILIAEgBEYEQEHrASECDLICCyABLQAAQS9GBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GyODYCECADQQg2AgxBACECDLECC0HNASECDJcCCyABIARHBEAgA0EONgIIIAMgATYCBEHMASECDJcCC0HqASECDK8CCyABIARGBEBB6QEhAgyvAgsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFBywEhAgyWAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZcCIANB6AE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAEgBEYEQEHnASECDK4CCwJAIAEtAABBLkYEQCABQQFqIQEMAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5gE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILQcoBIQIMlAILIAEgBEYEQEHlASECDK0CC0EAIQBBASEFQQEhB0EAIQICQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQCABLQAAQTBrDgoKCQABAgMEBQYICwtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshAkEAIQVBACEHDAILQQkhAkEBIQBBACEFQQAhBwwBC0EAIQVBASECCyADIAI6ACsgAUEBaiEBAkACQCADLQAuQRBxDQACQAJAAkAgAy0AKg4DAQACBAsgB0UNAwwCCyAADQEMAgsgBUUNAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDQIgA0HiATYCHCADIAE2AhQgAyAANgIMQQAhAgyvAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZoCIANB4wE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ2YAiADQeQBNgIcIAMgATYCFCADIAA2AgwMrQILQckBIQIMkwILQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANBpA02AhAgA0EhNgIMQQAhAgytAgtByAEhAgyTAgsgA0HhATYCHCADIAE2AhQgA0HQGjYCECADQRU2AgxBACECDKsCCyABIARGBEBB4QEhAgyrAgsCQCABLQAAQSBGBEAgA0EAOwE0IAFBAWohAQwBCyADQQA2AhwgAyABNgIUIANBmRE2AhAgA0EJNgIMQQAhAgyrAgtBxwEhAgyRAgsgASAERgRAQeABIQIMqgILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyrAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqgILQcYBIQIMkAILIAEgBEYEQEHfASECDKkCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqgILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKkCC0HFASECDI8CCyABIARGBEBB3gEhAgyoAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKkCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyoAgtBxAEhAgyOAgsgASAERgRAQd0BIQIMpwILAkACQAJAAkAgAS0AAEEKaw4XAgMDAAMDAwMDAwMDAwMDAwMDAwMDAwEDCyABQQFqDAULIAFBAWohAUHDASECDI8CCyABQQFqIQEgA0Evai0AAEEBcQ0IIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKcCCyADQQA2AhwgAyABNgIUIANBjQs2AhAgA0ENNgIMQQAhAgymAgsgASAERwRAIANBDzYCCCADIAE2AgRBASECDI0CC0HcASECDKUCCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtB2wEhAgymAgsgAygCBCEAIANBADYCBCADIAAgARAtIgBFBEAgAUEBaiEBDAQLIANB2gE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMpQILIAMoAgQhACADQQA2AgQgAyAAIAEQLSIADQEgAUEBagshAUHBASECDIoCCyADQdkBNgIcIAMgADYCDCADIAFBAWo2AhRBACECDKICC0HCASECDIgCCyADQS9qLQAAQQFxDQEgA0EANgIcIAMgATYCFCADQeQcNgIQIANBGTYCDEEAIQIMoAILIAEgBEYEQEHZASECDKACCwJAAkACQCABLQAAQQprDgQBAgIAAgsgAUEBaiEBDAILIAFBAWohAQwBCyADLQAuQcAAcUUNAQtBACEAAkAgAygCOCICRQ0AIAIoAjwiAkUNACADIAIRAAAhAAsgAEUNoAEgAEEVRgRAIANB2QA2AhwgAyABNgIUIANBtxo2AhAgA0EVNgIMQQAhAgyfAgsgA0EANgIcIAMgATYCFCADQYANNgIQIANBGzYCDEEAIQIMngILIANBADYCHCADIAE2AhQgA0HcKDYCECADQQI2AgxBACECDJ0CCyABIARHBEAgA0EMNgIIIAMgATYCBEG/ASECDIQCC0HYASECDJwCCyABIARGBEBB1wEhAgycAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEtAABBwQBrDhUAAQIDWgQFBlpaWgcICQoLDA0ODxBaCyABQQFqIQFB+wAhAgySAgsgAUEBaiEBQfwAIQIMkQILIAFBAWohAUGBASECDJACCyABQQFqIQFBhQEhAgyPAgsgAUEBaiEBQYYBIQIMjgILIAFBAWohAUGJASECDI0CCyABQQFqIQFBigEhAgyMAgsgAUEBaiEBQY0BIQIMiwILIAFBAWohAUGWASECDIoCCyABQQFqIQFBlwEhAgyJAgsgAUEBaiEBQZgBIQIMiAILIAFBAWohAUGlASECDIcCCyABQQFqIQFBpgEhAgyGAgsgAUEBaiEBQawBIQIMhQILIAFBAWohAUG0ASECDIQCCyABQQFqIQFBtwEhAgyDAgsgAUEBaiEBQb4BIQIMggILIAEgBEYEQEHWASECDJsCCyABLQAAQc4ARw1IIAFBAWohAUG9ASECDIECCyABIARGBEBB1QEhAgyaAgsCQAJAAkAgAS0AAEHCAGsOEgBKSkpKSkpKSkoBSkpKSkpKAkoLIAFBAWohAUG4ASECDIICCyABQQFqIQFBuwEhAgyBAgsgAUEBaiEBQbwBIQIMgAILQdQBIQIgASAERg2YAiADKAIAIgAgBCABa2ohBSABIABrQQdqIQYCQANAIAEtAAAgAEGo1QBqLQAARw1FIABBB0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAgsgA0EANgIAIAZBAWohAUEbDEULIAEgBEYEQEHTASECDJgCCwJAAkAgAS0AAEHJAGsOBwBHR0dHRwFHCyABQQFqIQFBuQEhAgz/AQsgAUEBaiEBQboBIQIM/gELQdIBIQIgASAERg2WAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw1DIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyXAgsgA0EANgIAIAZBAWohAUEPDEMLQdEBIQIgASAERg2VAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw1CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyWAgsgA0EANgIAIAZBAWohAUEgDEILQdABIQIgASAERg2UAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw1BIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyVAgsgA0EANgIAIAZBAWohAUESDEELIAEgBEYEQEHPASECDJQCCwJAAkAgAS0AAEHFAGsODgBDQ0NDQ0NDQ0NDQ0MBQwsgAUEBaiEBQbUBIQIM+wELIAFBAWohAUG2ASECDPoBC0HOASECIAEgBEYNkgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBntUAai0AAEcNPyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMkwILIANBADYCACAGQQFqIQFBBww/C0HNASECIAEgBEYNkQIgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBmNUAai0AAEcNPiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMkgILIANBADYCACAGQQFqIQFBKAw+CyABIARGBEBBzAEhAgyRAgsCQAJAAkAgAS0AAEHFAGsOEQBBQUFBQUFBQUEBQUFBQUECQQsgAUEBaiEBQbEBIQIM+QELIAFBAWohAUGyASECDPgBCyABQQFqIQFBswEhAgz3AQtBywEhAiABIARGDY8CIAMoAgAiACAEIAFraiEFIAEgAGtBBmohBgJAA0AgAS0AACAAQZHVAGotAABHDTwgAEEGRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJACCyADQQA2AgAgBkEBaiEBQRoMPAtBygEhAiABIARGDY4CIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQY3VAGotAABHDTsgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADI8CCyADQQA2AgAgBkEBaiEBQSEMOwsgASAERgRAQckBIQIMjgILAkACQCABLQAAQcEAaw4UAD09PT09PT09PT09PT09PT09PQE9CyABQQFqIQFBrQEhAgz1AQsgAUEBaiEBQbABIQIM9AELIAEgBEYEQEHIASECDI0CCwJAAkAgAS0AAEHVAGsOCwA8PDw8PDw8PDwBPAsgAUEBaiEBQa4BIQIM9AELIAFBAWohAUGvASECDPMBC0HHASECIAEgBEYNiwIgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNOCAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMjAILIANBADYCACAGQQFqIQFBKgw4CyABIARGBEBBxgEhAgyLAgsgAS0AAEHQAEcNOCABQQFqIQFBJQw3C0HFASECIAEgBEYNiQIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBgdUAai0AAEcNNiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMigILIANBADYCACAGQQFqIQFBDgw2CyABIARGBEBBxAEhAgyJAgsgAS0AAEHFAEcNNiABQQFqIQFBqwEhAgzvAQsgASAERgRAQcMBIQIMiAILAkACQAJAAkAgAS0AAEHCAGsODwABAjk5OTk5OTk5OTk5AzkLIAFBAWohAUGnASECDPEBCyABQQFqIQFBqAEhAgzwAQsgAUEBaiEBQakBIQIM7wELIAFBAWohAUGqASECDO4BC0HCASECIAEgBEYNhgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABB/tQAai0AAEcNMyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMhwILIANBADYCACAGQQFqIQFBFAwzC0HBASECIAEgBEYNhQIgAygCACIAIAQgAWtqIQUgASAAa0EEaiEGAkADQCABLQAAIABB+dQAai0AAEcNMiAAQQRGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMhgILIANBADYCACAGQQFqIQFBKwwyC0HAASECIAEgBEYNhAIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABB9tQAai0AAEcNMSAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMhQILIANBADYCACAGQQFqIQFBLAwxC0G/ASECIAEgBEYNgwIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBodUAai0AAEcNMCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMhAILIANBADYCACAGQQFqIQFBEQwwC0G+ASECIAEgBEYNggIgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABB8tQAai0AAEcNLyAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMgwILIANBADYCACAGQQFqIQFBLgwvCyABIARGBEBBvQEhAgyCAgsCQAJAAkACQAJAIAEtAABBwQBrDhUANDQ0NDQ0NDQ0NAE0NAI0NAM0NAQ0CyABQQFqIQFBmwEhAgzsAQsgAUEBaiEBQZwBIQIM6wELIAFBAWohAUGdASECDOoBCyABQQFqIQFBogEhAgzpAQsgAUEBaiEBQaQBIQIM6AELIAEgBEYEQEG8ASECDIECCwJAAkAgAS0AAEHSAGsOAwAwATALIAFBAWohAUGjASECDOgBCyABQQFqIQFBBAwtC0G7ASECIAEgBEYN/wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB8NQAai0AAEcNLCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMgAILIANBADYCACAGQQFqIQFBHQwsCyABIARGBEBBugEhAgz/AQsCQAJAIAEtAABByQBrDgcBLi4uLi4ALgsgAUEBaiEBQaEBIQIM5gELIAFBAWohAUEiDCsLIAEgBEYEQEG5ASECDP4BCyABLQAAQdAARw0rIAFBAWohAUGgASECDOQBCyABIARGBEBBuAEhAgz9AQsCQAJAIAEtAABBxgBrDgsALCwsLCwsLCwsASwLIAFBAWohAUGeASECDOQBCyABQQFqIQFBnwEhAgzjAQtBtwEhAiABIARGDfsBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQezUAGotAABHDSggAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPwBCyADQQA2AgAgBkEBaiEBQQ0MKAtBtgEhAiABIARGDfoBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDScgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPsBCyADQQA2AgAgBkEBaiEBQQwMJwtBtQEhAiABIARGDfkBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQerUAGotAABHDSYgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPoBCyADQQA2AgAgBkEBaiEBQQMMJgtBtAEhAiABIARGDfgBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQejUAGotAABHDSUgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPkBCyADQQA2AgAgBkEBaiEBQSYMJQsgASAERgRAQbMBIQIM+AELAkACQCABLQAAQdQAaw4CAAEnCyABQQFqIQFBmQEhAgzfAQsgAUEBaiEBQZoBIQIM3gELQbIBIQIgASAERg32ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHm1ABqLQAARw0jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz3AQsgA0EANgIAIAZBAWohAUEnDCMLQbEBIQIgASAERg31ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHk1ABqLQAARw0iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz2AQsgA0EANgIAIAZBAWohAUEcDCILQbABIQIgASAERg30ASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHe1ABqLQAARw0hIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz1AQsgA0EANgIAIAZBAWohAUEGDCELQa8BIQIgASAERg3zASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHZ1ABqLQAARw0gIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz0AQsgA0EANgIAIAZBAWohAUEZDCALIAEgBEYEQEGuASECDPMBCwJAAkACQAJAIAEtAABBLWsOIwAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAEkJCQkJAIkJCQDJAsgAUEBaiEBQY4BIQIM3AELIAFBAWohAUGPASECDNsBCyABQQFqIQFBlAEhAgzaAQsgAUEBaiEBQZUBIQIM2QELQa0BIQIgASAERg3xASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHX1ABqLQAARw0eIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzyAQsgA0EANgIAIAZBAWohAUELDB4LIAEgBEYEQEGsASECDPEBCwJAAkAgAS0AAEHBAGsOAwAgASALIAFBAWohAUGQASECDNgBCyABQQFqIQFBkwEhAgzXAQsgASAERgRAQasBIQIM8AELAkACQCABLQAAQcEAaw4PAB8fHx8fHx8fHx8fHx8BHwsgAUEBaiEBQZEBIQIM1wELIAFBAWohAUGSASECDNYBCyABIARGBEBBqgEhAgzvAQsgAS0AAEHMAEcNHCABQQFqIQFBCgwbC0GpASECIAEgBEYN7QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABB0dQAai0AAEcNGiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7gELIANBADYCACAGQQFqIQFBHgwaC0GoASECIAEgBEYN7AEgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBytQAai0AAEcNGSAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7QELIANBADYCACAGQQFqIQFBFQwZC0GnASECIAEgBEYN6wEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBx9QAai0AAEcNGCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7AELIANBADYCACAGQQFqIQFBFwwYC0GmASECIAEgBEYN6gEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBwdQAai0AAEcNFyAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6wELIANBADYCACAGQQFqIQFBGAwXCyABIARGBEBBpQEhAgzqAQsCQAJAIAEtAABByQBrDgcAGRkZGRkBGQsgAUEBaiEBQYsBIQIM0QELIAFBAWohAUGMASECDNABC0GkASECIAEgBEYN6AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBptUAai0AAEcNFSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6QELIANBADYCACAGQQFqIQFBCQwVC0GjASECIAEgBEYN5wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBpNUAai0AAEcNFCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6AELIANBADYCACAGQQFqIQFBHwwUC0GiASECIAEgBEYN5gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBvtQAai0AAEcNEyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5wELIANBADYCACAGQQFqIQFBAgwTC0GhASECIAEgBEYN5QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGA0AgAS0AACAAQbzUAGotAABHDREgAEEBRg0CIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADOUBCyABIARGBEBBoAEhAgzlAQtBASABLQAAQd8ARw0RGiABQQFqIQFBhwEhAgzLAQsgA0EANgIAIAZBAWohAUGIASECDMoBC0GfASECIAEgBEYN4gEgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNDyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4wELIANBADYCACAGQQFqIQFBKQwPC0GeASECIAEgBEYN4QEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBuNQAai0AAEcNDiAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4gELIANBADYCACAGQQFqIQFBLQwOCyABIARGBEBBnQEhAgzhAQsgAS0AAEHFAEcNDiABQQFqIQFBhAEhAgzHAQsgASAERgRAQZwBIQIM4AELAkACQCABLQAAQcwAaw4IAA8PDw8PDwEPCyABQQFqIQFBggEhAgzHAQsgAUEBaiEBQYMBIQIMxgELQZsBIQIgASAERg3eASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEGz1ABqLQAARw0LIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzfAQsgA0EANgIAIAZBAWohAUEjDAsLQZoBIQIgASAERg3dASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGw1ABqLQAARw0KIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzeAQsgA0EANgIAIAZBAWohAUEADAoLIAEgBEYEQEGZASECDN0BCwJAAkAgAS0AAEHIAGsOCAAMDAwMDAwBDAsgAUEBaiEBQf0AIQIMxAELIAFBAWohAUGAASECDMMBCyABIARGBEBBmAEhAgzcAQsCQAJAIAEtAABBzgBrDgMACwELCyABQQFqIQFB/gAhAgzDAQsgAUEBaiEBQf8AIQIMwgELIAEgBEYEQEGXASECDNsBCyABLQAAQdkARw0IIAFBAWohAUEIDAcLQZYBIQIgASAERg3ZASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEGs1ABqLQAARw0GIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzaAQsgA0EANgIAIAZBAWohAUEFDAYLQZUBIQIgASAERg3YASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGm1ABqLQAARw0FIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzZAQsgA0EANgIAIAZBAWohAUEWDAULQZQBIQIgASAERg3XASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0EIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzYAQsgA0EANgIAIAZBAWohAUEQDAQLIAEgBEYEQEGTASECDNcBCwJAAkAgAS0AAEHDAGsODAAGBgYGBgYGBgYGAQYLIAFBAWohAUH5ACECDL4BCyABQQFqIQFB+gAhAgy9AQtBkgEhAiABIARGDdUBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQaDUAGotAABHDQIgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNYBCyADQQA2AgAgBkEBaiEBQSQMAgsgA0EANgIADAILIAEgBEYEQEGRASECDNQBCyABLQAAQcwARw0BIAFBAWohAUETCzoAKSADKAIEIQAgA0EANgIEIAMgACABEC4iAA0CDAELQQAhAiADQQA2AhwgAyABNgIUIANB/h82AhAgA0EGNgIMDNEBC0H4ACECDLcBCyADQZABNgIcIAMgATYCFCADIAA2AgxBACECDM8BC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUYNASADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgzOAQtB9wAhAgy0AQsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDMwBCyABIARGBEBBjwEhAgzMAQsCQCABLQAAQSBGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GbHzYCECADQQY2AgxBACECDMwBC0ECIQIMsgELA0AgAS0AAEEgRw0CIAQgAUEBaiIBRw0AC0GOASECDMoBCyABIARGBEBBjQEhAgzKAQsCQCABLQAAQQlrDgRKAABKAAtB9QAhAgywAQsgAy0AKUEFRgRAQfYAIQIMsAELQfQAIQIMrwELIAEgBEYEQEGMASECDMgBCyADQRA2AgggAyABNgIEDAoLIAEgBEYEQEGLASECDMcBCwJAIAEtAABBCWsOBEcAAEcAC0HzACECDK0BCyABIARHBEAgA0EQNgIIIAMgATYCBEHxACECDK0BC0GKASECDMUBCwJAIAEgBEcEQANAIAEtAABBoNAAai0AACIAQQNHBEACQCAAQQFrDgJJAAQLQfAAIQIMrwELIAQgAUEBaiIBRw0AC0GIASEC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BCABQQFqIgFHDQALQfsAIQIMpwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMpgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMpQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMpAELIANBADYCHCADIAE2AhQgA0G8CjYCECADQQc2AgxBACECDKMBC0HPACECDIkBC0HRACECDIgBC0HnACECDIcBCyABIARGBEBB+gAhAgygAQsCQCABLQAAQQlrDgQgAAAgAAsgAUEBaiEBQeYAIQIMhgELIAEgBEYEQEH5ACECDJ8BCwJAIAEtAABBCWsOBB8AAB8AC0EAIQACQCADKAI4IgJFDQAgAigCOCICRQ0AIAMgAhEAACEACyAARQRAQeIBIQIMhgELIABBFUcEQCADQQA2AhwgAyABNgIUIANByQ02AhAgA0EaNgIMQQAhAgyfAQsgA0H4ADYCHCADIAE2AhQgA0HqGjYCECADQRU2AgxBACECDJ4BCyABIARHBEAgA0ENNgIIIAMgATYCBEHkACECDIUBC0H3ACECDJ0BCyABIARGBEBB9gAhAgydAQsCQAJAAkAgAS0AAEHIAGsOCwABCwsLCwsLCwsCCwsgAUEBaiEBQd0AIQIMhQELIAFBAWohAUHgACECDIQBCyABQQFqIQFB4wAhAgyDAQtB9QAhAiABIARGDZsBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbXVAGotAABHDQggAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJwBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIABEAgA0H0ADYCHCADIAE2AhQgAyAANgIMQQAhAgycAQtB4gAhAgyCAQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJwBC0HhACECDIIBCyADQfMANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMmgELIAMtACkiAEEja0ELSQ0JAkAgAEEGSw0AQQEgAHRBygBxRQ0ADAoLQQAhAiADQQA2AhwgAyABNgIUIANB7Qk2AhAgA0EINgIMDJkBC0HyACECIAEgBEYNmAEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBs9UAai0AAEcNBSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMmQELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfEANgIcIAMgATYCFCADIAA2AgxBACECDJkBC0HfACECDH8LQQAhAAJAIAMoAjgiAkUNACACKAI0IgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANB6g02AhAgA0EmNgIMQQAhAgyZAQtB3gAhAgx/CyADQfAANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMlwELIAMtAClBIUYNBiADQQA2AhwgAyABNgIUIANBkQo2AhAgA0EINgIMQQAhAgyWAQtB7wAhAiABIARGDZUBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDVAGotAABHDQIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIARQ0CIANB7QA2AhwgAyABNgIUIAMgADYCDEEAIQIMlQELIANBADYCAAsgAygCBCEAIANBADYCBCADIAAgARArIgBFDYABIANB7gA2AhwgAyABNgIUIAMgADYCDEEAIQIMkwELQdwAIQIMeQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJMBC0HbACECDHkLIANB7AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyRAQsgAy0AKSIAQSNJDQAgAEEuRg0AIANBADYCHCADIAE2AhQgA0HJCTYCECADQQg2AgxBACECDJABC0HaACECDHYLIAEgBEYEQEHrACECDI8BCwJAIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMjwELQdkAIQIMdQsgASAERwRAIANBDjYCCCADIAE2AgRB2AAhAgx1C0HqACECDI0BCyABIARGBEBB6QAhAgyNAQsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFB1wAhAgx0CyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeiADQegANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyABIARGBEBB5wAhAgyMAQsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ17IANB5gA2AhwgAyABNgIUIAMgADYCDEEAIQIMjAELQdYAIQIMcgsgASAERgRAQeUAIQIMiwELQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIANgIcIAMgATYCFCADIAA2AgxBACECDI0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNfSADQeMANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeyADQeQANgIcIAMgATYCFCADIAA2AgwMiwELQdQAIQIMcQsgAy0AKUEiRg2GAUHTACECDHALQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALIABFBEBB1QAhAgxwCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQaQNNgIQIANBITYCDEEAIQIMiQELIANB4QA2AhwgAyABNgIUIANB0Bo2AhAgA0EVNgIMQQAhAgyIAQsgASAERgRAQeAAIQIMiAELAkACQAJAAkACQCABLQAAQQprDgQBBAQABAsgAUEBaiEBDAELIAFBAWohASADQS9qLQAAQQFxRQ0BC0HSACECDHALIANBADYCHCADIAE2AhQgA0G2ETYCECADQQk2AgxBACECDIgBCyADQQA2AhwgAyABNgIUIANBthE2AhAgA0EJNgIMQQAhAgyHAQsgASAERgRAQd8AIQIMhwELIAEtAABBCkYEQCABQQFqIQEMCQsgAy0ALkHAAHENCCADQQA2AhwgAyABNgIUIANBthE2AhAgA0ECNgIMQQAhAgyGAQsgASAERgRAQd0AIQIMhgELIAEtAAAiAkENRgRAIAFBAWohAUHQACECDG0LIAEhACACQQlrDgQFAQEFAQsgBCABIgBGBEBB3AAhAgyFAQsgAC0AAEEKRw0AIABBAWoMAgtBACECIANBADYCHCADIAA2AhQgA0HKLTYCECADQQc2AgwMgwELIAEgBEYEQEHbACECDIMBCwJAIAEtAABBCWsOBAMAAAMACyABQQFqCyEBQc4AIQIMaAsgASAERgRAQdoAIQIMgQELIAEtAABBCWsOBAABAQABC0EAIQIgA0EANgIcIANBmhI2AhAgA0EHNgIMIAMgAUEBajYCFAx/CyADQYASOwEqQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2QA2AhwgAyABNgIUIANB6ho2AhAgA0EVNgIMQQAhAgx+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsg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c3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==";
96667
96798
  let wasmBuffer;
96668
96799
  Object.defineProperty(module, "exports", {
@@ -96680,7 +96811,7 @@ function requireLlhttp_simdWasm() {
96680
96811
  if (hasRequiredLlhttp_simdWasm) return llhttp_simdWasm.exports;
96681
96812
  hasRequiredLlhttp_simdWasm = 1;
96682
96813
  (function(module) {
96683
- const { Buffer: Buffer2 } = require$$0$6;
96814
+ const { Buffer: Buffer2 } = require$$0$7;
96684
96815
  const wasmBase64 = "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+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANA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BTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==";
96685
96816
  let wasmBuffer;
96686
96817
  Object.defineProperty(module, "exports", {
@@ -96977,7 +97108,7 @@ var hasRequiredInfra;
96977
97108
  function requireInfra() {
96978
97109
  if (hasRequiredInfra) return infra;
96979
97110
  hasRequiredInfra = 1;
96980
- const assert2 = require$$0$2;
97111
+ const assert2 = require$$0$3;
96981
97112
  const { utf8DecodeBytes } = requireEncoding();
96982
97113
  function collectASequenceOfCodePoints(condition, input, position2) {
96983
97114
  let result = "";
@@ -97090,7 +97221,7 @@ var hasRequiredDataUrl;
97090
97221
  function requireDataUrl() {
97091
97222
  if (hasRequiredDataUrl) return dataUrl;
97092
97223
  hasRequiredDataUrl = 1;
97093
- const assert2 = require$$0$2;
97224
+ const assert2 = require$$0$3;
97094
97225
  const { forgivingBase64, collectASequenceOfCodePoints, collectASequenceOfCodePointsFast, isomorphicDecode, removeASCIIWhitespace, removeChars } = requireInfra();
97095
97226
  const encoder2 = new TextEncoder();
97096
97227
  const HTTP_TOKEN_CODEPOINTS = /^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u;
@@ -97477,7 +97608,7 @@ var hasRequiredWebidl;
97477
97608
  function requireWebidl() {
97478
97609
  if (hasRequiredWebidl) return webidl_1;
97479
97610
  hasRequiredWebidl = 1;
97480
- const assert2 = require$$0$2;
97611
+ const assert2 = require$$0$3;
97481
97612
  const { types: types2, inspect: inspect2 } = require$$3;
97482
97613
  const { runtimeFeatures: runtimeFeatures2 } = requireRuntimeFeatures();
97483
97614
  const UNDEFINED2 = 1;
@@ -97615,7 +97746,7 @@ function requireWebidl() {
97615
97746
  lowerBound = 0;
97616
97747
  upperBound = Math.pow(2, bitLength) - 1;
97617
97748
  } else {
97618
- lowerBound = Math.pow(-2, bitLength) - 1;
97749
+ lowerBound = -Math.pow(2, bitLength - 1);
97619
97750
  upperBound = Math.pow(2, bitLength - 1) - 1;
97620
97751
  }
97621
97752
  let x2 = Number(V2);
@@ -97652,7 +97783,7 @@ function requireWebidl() {
97652
97783
  }
97653
97784
  x2 = webidl.util.IntegerPart(x2);
97654
97785
  x2 = x2 % Math.pow(2, bitLength);
97655
- if (signedness === "signed" && x2 >= Math.pow(2, bitLength) - 1) {
97786
+ if (signedness === "signed" && x2 >= Math.pow(2, bitLength - 1)) {
97656
97787
  return x2 - Math.pow(2, bitLength);
97657
97788
  }
97658
97789
  return x2;
@@ -97765,6 +97896,7 @@ function requireWebidl() {
97765
97896
  };
97766
97897
  };
97767
97898
  webidl.dictionaryConverter = function(converters) {
97899
+ converters.sort((a2, b2) => (a2.key > b2.key) - (a2.key < b2.key));
97768
97900
  return (dictionary, prefix, argument) => {
97769
97901
  const dict = {};
97770
97902
  if (dictionary != null && webidl.util.Type(dictionary) !== OBJECT2) {
@@ -98080,14 +98212,14 @@ function requireUtil$4() {
98080
98212
  var _zlibOptions;
98081
98213
  if (hasRequiredUtil$4) return util$4;
98082
98214
  hasRequiredUtil$4 = 1;
98083
- const { Transform: Transform2 } = require$$0$3;
98215
+ const { Transform: Transform2 } = require$$0$4;
98084
98216
  const zlib = require$$3$1;
98085
98217
  const { redirectStatusSet, referrerPolicyTokens, badPortsSet } = requireConstants$3();
98086
98218
  const { getGlobalOrigin } = requireGlobal$1();
98087
98219
  const { collectAnHTTPQuotedString, parseMIMEType } = requireDataUrl();
98088
98220
  const { performance: performance2 } = require$$5$2;
98089
98221
  const { ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = requireUtil$5();
98090
- const assert2 = require$$0$2;
98222
+ const assert2 = require$$0$3;
98091
98223
  const { isUint8Array: isUint8Array2 } = require$$8;
98092
98224
  const { webidl } = requireWebidl();
98093
98225
  const { isomorphicEncode, collectASequenceOfCodePoints, removeChars } = requireInfra();
@@ -98782,7 +98914,7 @@ function requireUtil$4() {
98782
98914
  return !!(url2.username || url2.password);
98783
98915
  }
98784
98916
  function isTraversableNavigable(navigable) {
98785
- return true;
98917
+ return navigable != null && navigable !== "client" && navigable !== "no-traversable";
98786
98918
  }
98787
98919
  class EnvironmentSettingsObjectBase {
98788
98920
  constructor() {
@@ -99027,11 +99159,11 @@ function requireFormdataParser() {
99027
99159
  const { HTTP_TOKEN_CODEPOINTS } = requireDataUrl();
99028
99160
  const { makeEntry } = requireFormdata();
99029
99161
  const { webidl } = requireWebidl();
99030
- const assert2 = require$$0$2;
99162
+ const assert2 = require$$0$3;
99031
99163
  const { isomorphicDecode } = requireInfra();
99032
- const { utf8DecodeBytes } = requireEncoding();
99033
99164
  const dd = Buffer.from("--");
99034
99165
  const decoder2 = new TextDecoder();
99166
+ const decoderIgnoreBOM = new TextDecoder("utf-8", { ignoreBOM: true });
99035
99167
  function isAsciiString(chars2) {
99036
99168
  for (let i = 0; i < chars2.length; ++i) {
99037
99169
  if ((chars2.charCodeAt(i) & -128) !== 0) {
@@ -99108,7 +99240,7 @@ function requireFormdataParser() {
99108
99240
  }
99109
99241
  value = new File([body2], filename, { type: contentType });
99110
99242
  } else {
99111
- value = utf8DecodeBytes(Buffer.from(body2));
99243
+ value = decoderIgnoreBOM.decode(Buffer.from(body2));
99112
99244
  }
99113
99245
  assert2(webidl.is.USVString(name2));
99114
99246
  assert2(typeof value === "string" && webidl.is.USVString(value) || webidl.is.File(value));
@@ -99185,7 +99317,7 @@ function requireFormdataParser() {
99185
99317
  );
99186
99318
  value = decoder2.decode(tokenValue);
99187
99319
  }
99188
- return { name: attrNameStr, value };
99320
+ return { name: attrNameStr, value, extended: isExtended };
99189
99321
  }
99190
99322
  function parseMultipartFormDataHeaders(input, position2) {
99191
99323
  let name2 = null;
@@ -99220,6 +99352,7 @@ function requireFormdataParser() {
99220
99352
  switch (bufferToLowerCasedHeaderName(headerName)) {
99221
99353
  case "content-disposition": {
99222
99354
  name2 = filename = null;
99355
+ let filenameIsExtended = false;
99223
99356
  const dispositionType = collectASequenceOfBytes(
99224
99357
  (char) => isToken(char),
99225
99358
  input,
@@ -99228,7 +99361,7 @@ function requireFormdataParser() {
99228
99361
  if (dispositionType.toString("ascii").toLowerCase() !== "form-data") {
99229
99362
  throw parsingError("expected form-data for content-disposition header");
99230
99363
  }
99231
- while (position2.position < input.length && input[position2.position] !== 13 && input[position2.position + 1] !== 10) {
99364
+ while (position2.position < input.length && (input[position2.position] !== 13 || input[position2.position + 1] !== 10)) {
99232
99365
  const attribute = parseContentDispositionAttribute(input, position2);
99233
99366
  if (!attribute) {
99234
99367
  break;
@@ -99236,7 +99369,12 @@ function requireFormdataParser() {
99236
99369
  if (attribute.name === "name") {
99237
99370
  name2 = attribute.value;
99238
99371
  } else if (attribute.name === "filename") {
99239
- filename = attribute.value;
99372
+ if (attribute.extended) {
99373
+ filename = attribute.value;
99374
+ filenameIsExtended = true;
99375
+ } else if (!filenameIsExtended) {
99376
+ filename = attribute.value;
99377
+ }
99240
99378
  }
99241
99379
  }
99242
99380
  if (name2 === null) {
@@ -99272,7 +99410,7 @@ function requireFormdataParser() {
99272
99410
  );
99273
99411
  }
99274
99412
  }
99275
- if (input[position2.position] !== 13 && input[position2.position + 1] !== 10) {
99413
+ if (input[position2.position] !== 13 || input[position2.position + 1] !== 10) {
99276
99414
  throw parsingError("expected CRLF");
99277
99415
  } else {
99278
99416
  position2.position += 2;
@@ -99375,8 +99513,8 @@ function requireBody() {
99375
99513
  } = requireUtil$4();
99376
99514
  const { FormData, setFormDataState } = requireFormdata();
99377
99515
  const { webidl } = requireWebidl();
99378
- const assert2 = require$$0$2;
99379
- const { isErrored, isDisturbed } = require$$0$3;
99516
+ const assert2 = require$$0$3;
99517
+ const { isErrored, isDisturbed } = require$$0$4;
99380
99518
  const { isUint8Array: isUint8Array2 } = require$$8;
99381
99519
  const { serializeAMimeType } = requireDataUrl();
99382
99520
  const { multipartFormDataParser } = requireFormdataParser();
@@ -99650,7 +99788,7 @@ var hasRequiredClientH1;
99650
99788
  function requireClientH1() {
99651
99789
  if (hasRequiredClientH1) return clientH1;
99652
99790
  hasRequiredClientH1 = 1;
99653
- const assert2 = require$$0$2;
99791
+ const assert2 = require$$0$3;
99654
99792
  const util2 = requireUtil$5();
99655
99793
  const { channels } = requireDiagnostics();
99656
99794
  const timers2 = requireTimers();
@@ -99710,9 +99848,9 @@ function requireClientH1() {
99710
99848
  let mod;
99711
99849
  let useWasmSIMD = process.arch !== "ppc64";
99712
99850
  if (process.env.UNDICI_NO_WASM_SIMD === "1") {
99713
- useWasmSIMD = true;
99714
- } else if (process.env.UNDICI_NO_WASM_SIMD === "0") {
99715
99851
  useWasmSIMD = false;
99852
+ } else if (process.env.UNDICI_NO_WASM_SIMD === "0") {
99853
+ useWasmSIMD = true;
99716
99854
  }
99717
99855
  if (useWasmSIMD) {
99718
99856
  try {
@@ -99830,6 +99968,7 @@ function requireClientH1() {
99830
99968
  this.client = client2;
99831
99969
  this.socket = socket;
99832
99970
  this.timeout = null;
99971
+ this.timeoutWeakRef = new WeakRef(this);
99833
99972
  this.timeoutValue = null;
99834
99973
  this.timeoutType = null;
99835
99974
  this.statusCode = 0;
@@ -99856,9 +99995,9 @@ function requireClientH1() {
99856
99995
  }
99857
99996
  if (delay) {
99858
99997
  if (type & USE_FAST_TIMER) {
99859
- this.timeout = timers2.setFastTimeout(onParserTimeout, delay, new WeakRef(this));
99998
+ this.timeout = timers2.setFastTimeout(onParserTimeout, delay, this.timeoutWeakRef);
99860
99999
  } else {
99861
- this.timeout = setTimeout(onParserTimeout, delay, new WeakRef(this));
100000
+ this.timeout = setTimeout(onParserTimeout, delay, this.timeoutWeakRef);
99862
100001
  (_a3 = this.timeout) == null ? void 0 : _a3.unref();
99863
100002
  }
99864
100003
  }
@@ -99930,19 +100069,47 @@ function requireClientH1() {
99930
100069
  this.paused = true;
99931
100070
  socket.unshift(data);
99932
100071
  } else {
99933
- const ptr = llhttp.llhttp_get_error_reason(this.ptr);
99934
- let message2 = "";
99935
- if (ptr) {
99936
- const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0);
99937
- message2 = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")";
99938
- }
99939
- throw new HTTPParserError(message2, constants2.ERROR[ret], data);
100072
+ throw this.createError(ret, data);
99940
100073
  }
99941
100074
  }
99942
100075
  } catch (err) {
99943
100076
  util2.destroy(socket, err);
99944
100077
  }
99945
100078
  }
100079
+ finish() {
100080
+ assert2(currentParser === null);
100081
+ assert2(this.ptr != null);
100082
+ assert2(!this.paused);
100083
+ const { llhttp } = this;
100084
+ let ret;
100085
+ try {
100086
+ currentParser = this;
100087
+ ret = llhttp.llhttp_finish(this.ptr);
100088
+ } finally {
100089
+ currentParser = null;
100090
+ }
100091
+ if (ret === constants2.ERROR.OK) {
100092
+ return null;
100093
+ }
100094
+ if (ret === constants2.ERROR.PAUSED || ret === constants2.ERROR.PAUSED_UPGRADE) {
100095
+ this.paused = true;
100096
+ return null;
100097
+ }
100098
+ return this.createError(ret, EMPTY_BUF);
100099
+ }
100100
+ createError(ret, data) {
100101
+ const { llhttp, contentLength, bytesRead } = this;
100102
+ if (contentLength && bytesRead !== parseInt(contentLength, 10)) {
100103
+ return new ResponseContentLengthMismatchError();
100104
+ }
100105
+ const ptr = llhttp.llhttp_get_error_reason(this.ptr);
100106
+ let message2 = "";
100107
+ if (ptr) {
100108
+ const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0);
100109
+ message2 = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")";
100110
+ }
100111
+ return new HTTPParserError(message2, constants2.ERROR[ret], data);
100112
+ }
99946
100113
  destroy() {
99947
100114
  assert2(currentParser === null);
99948
100115
  assert2(this.ptr != null);
@@ -100319,7 +100486,11 @@ function requireClientH1() {
100319
100486
  assert2(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
100320
100487
  const parser = this[kParser];
100321
100488
  if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) {
100322
- parser.onMessageComplete();
100489
+ const parserErr = parser.finish();
100490
+ if (parserErr) {
100491
+ this[kError] = parserErr;
100492
+ this[kClient][kOnError](parserErr);
100493
+ }
100323
100494
  return;
100324
100495
  }
100325
100496
  this[kError] = err;
@@ -100332,7 +100503,10 @@ function requireClientH1() {
100332
100503
  function onHttpSocketEnd() {
100333
100504
  const parser = this[kParser];
100334
100505
  if (parser.statusCode && !parser.shouldKeepAlive) {
100335
- parser.onMessageComplete();
100506
+ const parserErr = parser.finish();
100507
+ if (parserErr) {
100508
+ util2.destroy(this, parserErr);
100509
+ }
100336
100510
  return;
100337
100511
  }
100338
100512
  util2.destroy(this, new SocketError("other side closed", util2.getSocketInfo(this)));
@@ -100341,7 +100515,7 @@ function requireClientH1() {
100341
100515
  const parser = this[kParser];
100342
100516
  if (parser) {
100343
100517
  if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) {
100344
- parser.onMessageComplete();
100518
+ this[kError] = parser.finish() || this[kError];
100345
100519
  }
100346
100520
  this[kParser].destroy();
100347
100521
  this[kParser] = null;
@@ -100465,6 +100639,9 @@ function requireClientH1() {
100465
100639
  if (blocking) {
100466
100640
  socket[kBlocking] = true;
100467
100641
  }
100642
+ if (socket.setTypeOfService) {
100643
+ socket.setTypeOfService(request2.typeOfService);
100644
+ }
100468
100645
  let header = `${method} ${path2} HTTP/1.1\r
100469
100646
  `;
100470
100647
  if (typeof host === "string") {
@@ -100815,8 +100992,8 @@ var hasRequiredClientH2;
100815
100992
  function requireClientH2() {
100816
100993
  if (hasRequiredClientH2) return clientH2;
100817
100994
  hasRequiredClientH2 = 1;
100818
- const assert2 = require$$0$2;
100819
- const { pipeline } = require$$0$3;
100995
+ const assert2 = require$$0$3;
100996
+ const { pipeline } = require$$0$4;
100820
100997
  const util2 = requireUtil$5();
100821
100998
  const {
100822
100999
  RequestContentLengthMismatchError,
@@ -101295,11 +101472,14 @@ function requireClientH2() {
101295
101472
  if (request2.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream.resume.bind(stream), "") === false) {
101296
101473
  stream.pause();
101297
101474
  }
101298
- });
101299
- stream.on("data", (chunk) => {
101300
- if (request2.onData(chunk) === false) {
101301
- stream.pause();
101302
- }
101475
+ stream.on("data", (chunk) => {
101476
+ if (request2.aborted || request2.completed) {
101477
+ return;
101478
+ }
101479
+ if (request2.onData(chunk) === false) {
101480
+ stream.pause();
101481
+ }
101482
+ });
101303
101483
  });
101304
101484
  stream.once("end", () => {
101305
101485
  stream.removeAllListeners("data");
@@ -101347,6 +101527,7 @@ function requireClientH2() {
101347
101527
  if (request2.aborted || request2.completed) {
101348
101528
  return;
101349
101529
  }
101530
+ stream.removeAllListeners("data");
101350
101531
  request2.onComplete(trailers);
101351
101532
  });
101352
101533
  return true;
@@ -101538,8 +101719,8 @@ var hasRequiredClient;
101538
101719
  function requireClient() {
101539
101720
  if (hasRequiredClient) return client;
101540
101721
  hasRequiredClient = 1;
101541
- const assert2 = require$$0$2;
101542
- const net2 = require$$0$4;
101722
+ const assert2 = require$$0$3;
101723
+ const net2 = require$$0$5;
101543
101724
  const http = require$$2$1;
101544
101725
  const util2 = requireUtil$5();
101545
101726
  const { ClientStats } = requireStats();
@@ -101733,6 +101914,13 @@ function requireClient() {
101733
101914
  ...typeof autoSelectFamily === "boolean" ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0,
101734
101915
  ...connect3
101735
101916
  });
101917
+ } else {
101918
+ const customConnect = connect3;
101919
+ connect3 = (opts, callback) => customConnect({
101920
+ ...opts,
101921
+ ...socketPath != null ? { socketPath } : null,
101922
+ ...allowH2 != null ? { allowH2 } : null
101923
+ }, callback);
101736
101924
  }
101737
101925
  this[kUrl] = util2.parseOrigin(url2);
101738
101926
  this[kConnector] = connect3;
@@ -101883,57 +102071,62 @@ function requireClient() {
101883
102071
  connector: client2[kConnector]
101884
102072
  });
101885
102073
  }
101886
- client2[kConnector]({
101887
- host,
101888
- hostname: hostname2,
101889
- protocol,
101890
- port,
101891
- servername: client2[kServerName],
101892
- localAddress: client2[kLocalAddress]
101893
- }, (err, socket) => {
101894
- var _a4;
101895
- if (err) {
101896
- handleConnectError(client2, err, { host, hostname: hostname2, protocol, port });
101897
- client2[kResume]();
101898
- return;
101899
- }
101900
- if (client2.destroyed) {
101901
- util2.destroy(socket.on("error", noop3), new ClientDestroyedError());
101902
- client2[kResume]();
101903
- return;
101904
- }
101905
- assert2(socket);
101906
- try {
101907
- client2[kHTTPContext] = socket.alpnProtocol === "h2" ? connectH2(client2, socket) : connectH1(client2, socket);
101908
- } catch (err2) {
101909
- socket.destroy().on("error", noop3);
101910
- handleConnectError(client2, err2, { host, hostname: hostname2, protocol, port });
102074
+ try {
102075
+ client2[kConnector]({
102076
+ host,
102077
+ hostname: hostname2,
102078
+ protocol,
102079
+ port,
102080
+ servername: client2[kServerName],
102081
+ localAddress: client2[kLocalAddress]
102082
+ }, (err, socket) => {
102083
+ var _a4;
102084
+ if (err) {
102085
+ handleConnectError(client2, err, { host, hostname: hostname2, protocol, port });
102086
+ client2[kResume]();
102087
+ return;
102088
+ }
102089
+ if (client2.destroyed) {
102090
+ util2.destroy(socket.on("error", noop3), new ClientDestroyedError());
102091
+ client2[kResume]();
102092
+ return;
102093
+ }
102094
+ assert2(socket);
102095
+ try {
102096
+ client2[kHTTPContext] = socket.alpnProtocol === "h2" ? connectH2(client2, socket) : connectH1(client2, socket);
102097
+ } catch (err2) {
102098
+ socket.destroy().on("error", noop3);
102099
+ handleConnectError(client2, err2, { host, hostname: hostname2, protocol, port });
102100
+ client2[kResume]();
102101
+ return;
102102
+ }
102103
+ client2[kConnecting] = false;
102104
+ socket[kCounter] = 0;
102105
+ socket[kMaxRequests] = client2[kMaxRequests];
102106
+ socket[kClient] = client2;
102107
+ socket[kError] = null;
102108
+ if (channels.connected.hasSubscribers) {
102109
+ channels.connected.publish({
102110
+ connectParams: {
102111
+ host,
102112
+ hostname: hostname2,
102113
+ protocol,
102114
+ port,
102115
+ version: (_a4 = client2[kHTTPContext]) == null ? void 0 : _a4.version,
102116
+ servername: client2[kServerName],
102117
+ localAddress: client2[kLocalAddress]
102118
+ },
102119
+ connector: client2[kConnector],
102120
+ socket
102121
+ });
102122
+ }
102123
+ client2.emit("connect", client2[kUrl], [client2]);
101911
102124
  client2[kResume]();
101912
- return;
101913
- }
101914
- client2[kConnecting] = false;
101915
- socket[kCounter] = 0;
101916
- socket[kMaxRequests] = client2[kMaxRequests];
101917
- socket[kClient] = client2;
101918
- socket[kError] = null;
101919
- if (channels.connected.hasSubscribers) {
101920
- channels.connected.publish({
101921
- connectParams: {
101922
- host,
101923
- hostname: hostname2,
101924
- protocol,
101925
- port,
101926
- version: (_a4 = client2[kHTTPContext]) == null ? void 0 : _a4.version,
101927
- servername: client2[kServerName],
101928
- localAddress: client2[kLocalAddress]
101929
- },
101930
- connector: client2[kConnector],
101931
- socket
101932
- });
101933
- }
101934
- client2.emit("connect", client2[kUrl], [client2]);
102125
+ });
102126
+ } catch (err) {
102127
+ handleConnectError(client2, err, { host, hostname: hostname2, protocol, port });
101935
102128
  client2[kResume]();
101936
- });
102129
+ }
101937
102130
  }
101938
102131
  function handleConnectError(client2, err, { host, hostname: hostname2, protocol, port }) {
101939
102132
  var _a3;
@@ -102017,6 +102210,9 @@ function requireClient() {
102017
102210
  return;
102018
102211
  }
102019
102212
  const request2 = client2[kQueue][client2[kPendingIdx]];
102213
+ if (request2 === null) {
102214
+ return;
102215
+ }
102020
102216
  if (client2[kUrl].protocol === "https:" && client2[kServerName] !== request2.servername) {
102021
102217
  if (client2[kRunning] > 0) {
102022
102218
  return;
@@ -102367,7 +102563,7 @@ function requirePool() {
102367
102563
  super();
102368
102564
  this[kConnections] = connections || null;
102369
102565
  this[kUrl] = util2.parseOrigin(origin);
102370
- this[kOptions] = { ...util2.deepClone(options), connect: connect2, allowH2, clientTtl };
102566
+ this[kOptions] = { ...util2.deepClone(options), connect: connect2, allowH2, clientTtl, socketPath };
102371
102567
  this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0;
102372
102568
  this[kFactory] = factory;
102373
102569
  this.on("connect", (origin2, targets) => {
@@ -102424,7 +102620,7 @@ function requireBalancedPool() {
102424
102620
  } = requirePoolBase();
102425
102621
  const Pool = requirePool();
102426
102622
  const { kUrl } = requireSymbols();
102427
- const { parseOrigin } = requireUtil$5();
102623
+ const util2 = requireUtil$5();
102428
102624
  const kFactory = Symbol("factory");
102429
102625
  const kOptions = Symbol("options");
102430
102626
  const kGreatestCommonDivisor = Symbol("kGreatestCommonDivisor");
@@ -102451,7 +102647,8 @@ function requireBalancedPool() {
102451
102647
  throw new InvalidArgumentError("factory must be a function.");
102452
102648
  }
102453
102649
  super();
102454
- this[kOptions] = opts;
102650
+ this[kOptions] = { ...util2.deepClone(opts) };
102651
+ this[kOptions].interceptors = opts.interceptors ? { ...opts.interceptors } : void 0;
102455
102652
  this[kIndex] = -1;
102456
102653
  this[kCurrentWeight] = 0;
102457
102654
  this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100;
@@ -102466,11 +102663,11 @@ function requireBalancedPool() {
102466
102663
  this._updateBalancedPoolStats();
102467
102664
  }
102468
102665
  addUpstream(upstream) {
102469
- const upstreamOrigin = parseOrigin(upstream).origin;
102666
+ const upstreamOrigin = util2.parseOrigin(upstream).origin;
102470
102667
  if (this[kClients].find((pool3) => pool3[kUrl].origin === upstreamOrigin && pool3.closed !== true && pool3.destroyed !== true)) {
102471
102668
  return this;
102472
102669
  }
102473
- const pool2 = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]));
102670
+ const pool2 = this[kFactory](upstreamOrigin, this[kOptions]);
102474
102671
  this[kAddClient](pool2);
102475
102672
  pool2.on("connect", () => {
102476
102673
  pool2[kWeight] = Math.min(this[kMaxWeightPerServer], pool2[kWeight] + this[kErrorPenalty]);
@@ -102500,7 +102697,7 @@ function requireBalancedPool() {
102500
102697
  this[kGreatestCommonDivisor] = result;
102501
102698
  }
102502
102699
  removeUpstream(upstream) {
102503
- const upstreamOrigin = parseOrigin(upstream).origin;
102700
+ const upstreamOrigin = util2.parseOrigin(upstream).origin;
102504
102701
  const pool2 = this[kClients].find((pool3) => pool3[kUrl].origin === upstreamOrigin && pool3.closed !== true && pool3.destroyed !== true);
102505
102702
  if (pool2) {
102506
102703
  this[kRemoveClient](pool2);
@@ -102508,7 +102705,7 @@ function requireBalancedPool() {
102508
102705
  return this;
102509
102706
  }
102510
102707
  getUpstream(upstream) {
102511
- const upstreamOrigin = parseOrigin(upstream).origin;
102708
+ const upstreamOrigin = util2.parseOrigin(upstream).origin;
102512
102709
  return this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true);
102513
102710
  }
102514
102711
  get upstreams() {
@@ -102617,7 +102814,7 @@ function requireRoundRobinPool() {
102617
102814
  super();
102618
102815
  this[kConnections] = connections || null;
102619
102816
  this[kUrl] = util2.parseOrigin(origin);
102620
- this[kOptions] = { ...util2.deepClone(options), connect: connect2, allowH2, clientTtl };
102817
+ this[kOptions] = { ...util2.deepClone(options), connect: connect2, allowH2, clientTtl, socketPath };
102621
102818
  this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0;
102622
102819
  this[kFactory] = factory;
102623
102820
  this[kIndex] = -1;
@@ -102802,6 +102999,671 @@ function requireAgent() {
102802
102999
  agent = Agent;
102803
103000
  return agent;
102804
103001
  }
103002
+ var socks5Utils;
103003
+ var hasRequiredSocks5Utils;
103004
+ function requireSocks5Utils() {
103005
+ if (hasRequiredSocks5Utils) return socks5Utils;
103006
+ hasRequiredSocks5Utils = 1;
103007
+ const { Buffer: Buffer2 } = require$$0$7;
103008
+ const net2 = require$$0$5;
103009
+ const { InvalidArgumentError } = requireErrors();
103010
+ function parseAddress(address) {
103011
+ if (net2.isIPv4(address)) {
103012
+ const parts = address.split(".").map(Number);
103013
+ return {
103014
+ type: 1,
103015
+ // IPv4
103016
+ buffer: Buffer2.from(parts)
103017
+ };
103018
+ }
103019
+ if (net2.isIPv6(address)) {
103020
+ return {
103021
+ type: 4,
103022
+ // IPv6
103023
+ buffer: parseIPv6(address)
103024
+ };
103025
+ }
103026
+ const domainBuffer = Buffer2.from(address, "utf8");
103027
+ if (domainBuffer.length > 255) {
103028
+ throw new InvalidArgumentError("Domain name too long (max 255 bytes)");
103029
+ }
103030
+ return {
103031
+ type: 3,
103032
+ // Domain
103033
+ buffer: Buffer2.concat([Buffer2.from([domainBuffer.length]), domainBuffer])
103034
+ };
103035
+ }
103036
+ function parseIPv6(address) {
103037
+ const buffer = Buffer2.alloc(16);
103038
+ const doubleColonIndex = address.indexOf("::");
103039
+ if (doubleColonIndex !== -1) {
103040
+ const before = address.slice(0, doubleColonIndex);
103041
+ const after = address.slice(doubleColonIndex + 2);
103042
+ const beforeParts = before === "" ? [] : before.split(":");
103043
+ const afterParts = after === "" ? [] : after.split(":");
103044
+ let bufferIndex = 0;
103045
+ for (const part of beforeParts) {
103046
+ buffer.writeUInt16BE(parseInt(part, 16), bufferIndex);
103047
+ bufferIndex += 2;
103048
+ }
103049
+ bufferIndex = 16 - afterParts.length * 2;
103050
+ for (const part of afterParts) {
103051
+ buffer.writeUInt16BE(parseInt(part, 16), bufferIndex);
103052
+ bufferIndex += 2;
103053
+ }
103054
+ } else {
103055
+ const parts = address.split(":");
103056
+ for (let i = 0; i < parts.length; i++) {
103057
+ buffer.writeUInt16BE(parseInt(parts[i], 16), i * 2);
103058
+ }
103059
+ }
103060
+ return buffer;
103061
+ }
103062
+ function buildAddressBuffer(type, addressBuffer, port) {
103063
+ const portBuffer = Buffer2.allocUnsafe(2);
103064
+ portBuffer.writeUInt16BE(port, 0);
103065
+ return Buffer2.concat([
103066
+ Buffer2.from([type]),
103067
+ addressBuffer,
103068
+ portBuffer
103069
+ ]);
103070
+ }
103071
+ function parseResponseAddress(buffer, offset2 = 0) {
103072
+ if (buffer.length < offset2 + 1) {
103073
+ throw new InvalidArgumentError("Buffer too small to contain address type");
103074
+ }
103075
+ const addressType = buffer[offset2];
103076
+ let address;
103077
+ let currentOffset = offset2 + 1;
103078
+ switch (addressType) {
103079
+ case 1: {
103080
+ if (buffer.length < currentOffset + 6) {
103081
+ throw new InvalidArgumentError("Buffer too small for IPv4 address");
103082
+ }
103083
+ address = Array.from(buffer.subarray(currentOffset, currentOffset + 4)).join(".");
103084
+ currentOffset += 4;
103085
+ break;
103086
+ }
103087
+ case 3: {
103088
+ if (buffer.length < currentOffset + 1) {
103089
+ throw new InvalidArgumentError("Buffer too small for domain length");
103090
+ }
103091
+ const domainLength = buffer[currentOffset];
103092
+ currentOffset += 1;
103093
+ if (buffer.length < currentOffset + domainLength + 2) {
103094
+ throw new InvalidArgumentError("Buffer too small for domain address");
103095
+ }
103096
+ address = buffer.subarray(currentOffset, currentOffset + domainLength).toString("utf8");
103097
+ currentOffset += domainLength;
103098
+ break;
103099
+ }
103100
+ case 4: {
103101
+ if (buffer.length < currentOffset + 18) {
103102
+ throw new InvalidArgumentError("Buffer too small for IPv6 address");
103103
+ }
103104
+ const parts = [];
103105
+ for (let i = 0; i < 8; i++) {
103106
+ const value = buffer.readUInt16BE(currentOffset + i * 2);
103107
+ parts.push(value.toString(16));
103108
+ }
103109
+ address = parts.join(":");
103110
+ currentOffset += 16;
103111
+ break;
103112
+ }
103113
+ default:
103114
+ throw new InvalidArgumentError(`Invalid address type: ${addressType}`);
103115
+ }
103116
+ if (buffer.length < currentOffset + 2) {
103117
+ throw new InvalidArgumentError("Buffer too small for port");
103118
+ }
103119
+ const port = buffer.readUInt16BE(currentOffset);
103120
+ currentOffset += 2;
103121
+ return {
103122
+ address,
103123
+ port,
103124
+ bytesRead: currentOffset - offset2
103125
+ };
103126
+ }
103127
+ function createReplyError(replyCode) {
103128
+ const messages = {
103129
+ 1: "General SOCKS server failure",
103130
+ 2: "Connection not allowed by ruleset",
103131
+ 3: "Network unreachable",
103132
+ 4: "Host unreachable",
103133
+ 5: "Connection refused",
103134
+ 6: "TTL expired",
103135
+ 7: "Command not supported",
103136
+ 8: "Address type not supported"
103137
+ };
103138
+ const message2 = messages[replyCode] || `Unknown SOCKS5 error code: ${replyCode}`;
103139
+ const error2 = new Error(message2);
103140
+ error2.code = `SOCKS5_${replyCode}`;
103141
+ return error2;
103142
+ }
103143
+ socks5Utils = {
103144
+ parseAddress,
103145
+ parseIPv6,
103146
+ buildAddressBuffer,
103147
+ parseResponseAddress,
103148
+ createReplyError
103149
+ };
103150
+ return socks5Utils;
103151
+ }
103152
+ var socks5Client;
103153
+ var hasRequiredSocks5Client;
103154
+ function requireSocks5Client() {
103155
+ if (hasRequiredSocks5Client) return socks5Client;
103156
+ hasRequiredSocks5Client = 1;
103157
+ const { EventEmitter: EventEmitter2 } = require$$0$2;
103158
+ const { Buffer: Buffer2 } = require$$0$7;
103159
+ const { InvalidArgumentError, Socks5ProxyError } = requireErrors();
103160
+ const { debuglog } = require$$3;
103161
+ const { parseAddress } = requireSocks5Utils();
103162
+ const debug = debuglog("undici:socks5");
103163
+ const EMPTY_BUFFER = Buffer2.alloc(0);
103164
+ const SOCKS_VERSION = 5;
103165
+ const AUTH_METHODS = {
103166
+ NO_AUTH: 0,
103167
+ GSSAPI: 1,
103168
+ USERNAME_PASSWORD: 2,
103169
+ NO_ACCEPTABLE: 255
103170
+ };
103171
+ const COMMANDS = {
103172
+ CONNECT: 1,
103173
+ BIND: 2,
103174
+ UDP_ASSOCIATE: 3
103175
+ };
103176
+ const ADDRESS_TYPES = {
103177
+ IPV4: 1,
103178
+ DOMAIN: 3,
103179
+ IPV6: 4
103180
+ };
103181
+ const REPLY_CODES = {
103182
+ SUCCEEDED: 0,
103183
+ GENERAL_FAILURE: 1,
103184
+ CONNECTION_NOT_ALLOWED: 2,
103185
+ NETWORK_UNREACHABLE: 3,
103186
+ HOST_UNREACHABLE: 4,
103187
+ CONNECTION_REFUSED: 5,
103188
+ TTL_EXPIRED: 6,
103189
+ COMMAND_NOT_SUPPORTED: 7,
103190
+ ADDRESS_TYPE_NOT_SUPPORTED: 8
103191
+ };
103192
+ const STATES = {
103193
+ INITIAL: "initial",
103194
+ HANDSHAKING: "handshaking",
103195
+ AUTHENTICATING: "authenticating",
103196
+ CONNECTING: "connecting",
103197
+ CONNECTED: "connected",
103198
+ ERROR: "error",
103199
+ CLOSED: "closed"
103200
+ };
103201
+ class Socks5Client extends EventEmitter2 {
103202
+ constructor(socket, options = {}) {
103203
+ super();
103204
+ if (!socket) {
103205
+ throw new InvalidArgumentError("socket is required");
103206
+ }
103207
+ this.socket = socket;
103208
+ this.options = options;
103209
+ this.state = STATES.INITIAL;
103210
+ this.buffer = EMPTY_BUFFER;
103211
+ this.onSocketData = this.onData.bind(this);
103212
+ this.onSocketError = this.onError.bind(this);
103213
+ this.onSocketClose = this.onClose.bind(this);
103214
+ this.authMethods = [];
103215
+ if (options.username && options.password) {
103216
+ this.authMethods.push(AUTH_METHODS.USERNAME_PASSWORD);
103217
+ }
103218
+ this.authMethods.push(AUTH_METHODS.NO_AUTH);
103219
+ this.socket.on("data", this.onSocketData);
103220
+ this.socket.on("error", this.onSocketError);
103221
+ this.socket.on("close", this.onSocketClose);
103222
+ }
103223
+ /**
103224
+ * Handle incoming data from the socket
103225
+ */
103226
+ onData(data) {
103227
+ debug("received data", data.length, "bytes in state", this.state);
103228
+ this.buffer = Buffer2.concat([this.buffer, data]);
103229
+ try {
103230
+ switch (this.state) {
103231
+ case STATES.HANDSHAKING:
103232
+ this.handleHandshakeResponse();
103233
+ break;
103234
+ case STATES.AUTHENTICATING:
103235
+ this.handleAuthResponse();
103236
+ break;
103237
+ case STATES.CONNECTING:
103238
+ this.handleConnectResponse();
103239
+ break;
103240
+ }
103241
+ } catch (err) {
103242
+ this.onError(err);
103243
+ }
103244
+ }
103245
+ /**
103246
+ * Handle socket errors
103247
+ */
103248
+ onError(err) {
103249
+ debug("socket error", err);
103250
+ this.state = STATES.ERROR;
103251
+ this.emit("error", err);
103252
+ this.destroy();
103253
+ }
103254
+ /**
103255
+ * Handle socket close
103256
+ */
103257
+ onClose() {
103258
+ debug("socket closed");
103259
+ this.state = STATES.CLOSED;
103260
+ this.emit("close");
103261
+ }
103262
+ /**
103263
+ * Destroy the client and underlying socket
103264
+ */
103265
+ destroy() {
103266
+ if (this.socket && !this.socket.destroyed) {
103267
+ this.socket.destroy();
103268
+ }
103269
+ }
103270
+ /**
103271
+ * Start the SOCKS5 handshake
103272
+ */
103273
+ handshake() {
103274
+ if (this.state !== STATES.INITIAL) {
103275
+ throw new InvalidArgumentError("Handshake already started");
103276
+ }
103277
+ debug("starting handshake with", this.authMethods.length, "auth methods");
103278
+ this.state = STATES.HANDSHAKING;
103279
+ const request2 = Buffer2.alloc(2 + this.authMethods.length);
103280
+ request2[0] = SOCKS_VERSION;
103281
+ request2[1] = this.authMethods.length;
103282
+ this.authMethods.forEach((method, i) => {
103283
+ request2[2 + i] = method;
103284
+ });
103285
+ this.socket.write(request2);
103286
+ }
103287
+ /**
103288
+ * Handle handshake response from server
103289
+ */
103290
+ handleHandshakeResponse() {
103291
+ if (this.buffer.length < 2) {
103292
+ return;
103293
+ }
103294
+ const version2 = this.buffer[0];
103295
+ const method = this.buffer[1];
103296
+ if (version2 !== SOCKS_VERSION) {
103297
+ throw new Socks5ProxyError(`Invalid SOCKS version: ${version2}`, "UND_ERR_SOCKS5_VERSION");
103298
+ }
103299
+ if (method === AUTH_METHODS.NO_ACCEPTABLE) {
103300
+ throw new Socks5ProxyError("No acceptable authentication method", "UND_ERR_SOCKS5_AUTH_REJECTED");
103301
+ }
103302
+ this.buffer = this.buffer.subarray(2);
103303
+ debug("server selected auth method", method);
103304
+ if (method === AUTH_METHODS.NO_AUTH) {
103305
+ this.emit("authenticated");
103306
+ } else if (method === AUTH_METHODS.USERNAME_PASSWORD) {
103307
+ this.state = STATES.AUTHENTICATING;
103308
+ this.sendAuthRequest();
103309
+ } else {
103310
+ throw new Socks5ProxyError(`Unsupported authentication method: ${method}`, "UND_ERR_SOCKS5_AUTH_METHOD");
103311
+ }
103312
+ }
103313
+ /**
103314
+ * Send username/password authentication request
103315
+ */
103316
+ sendAuthRequest() {
103317
+ const { username, password } = this.options;
103318
+ if (!username || !password) {
103319
+ throw new InvalidArgumentError("Username and password required for authentication");
103320
+ }
103321
+ debug("sending username/password auth");
103322
+ const usernameBuffer = Buffer2.from(username);
103323
+ const passwordBuffer = Buffer2.from(password);
103324
+ if (usernameBuffer.length > 255 || passwordBuffer.length > 255) {
103325
+ throw new InvalidArgumentError("Username or password too long");
103326
+ }
103327
+ const request2 = Buffer2.alloc(3 + usernameBuffer.length + passwordBuffer.length);
103328
+ request2[0] = 1;
103329
+ request2[1] = usernameBuffer.length;
103330
+ usernameBuffer.copy(request2, 2);
103331
+ request2[2 + usernameBuffer.length] = passwordBuffer.length;
103332
+ passwordBuffer.copy(request2, 3 + usernameBuffer.length);
103333
+ this.socket.write(request2);
103334
+ }
103335
+ /**
103336
+ * Handle authentication response
103337
+ */
103338
+ handleAuthResponse() {
103339
+ if (this.buffer.length < 2) {
103340
+ return;
103341
+ }
103342
+ const version2 = this.buffer[0];
103343
+ const status = this.buffer[1];
103344
+ if (version2 !== 1) {
103345
+ throw new Socks5ProxyError(`Invalid auth sub-negotiation version: ${version2}`, "UND_ERR_SOCKS5_AUTH_VERSION");
103346
+ }
103347
+ if (status !== 0) {
103348
+ throw new Socks5ProxyError("Authentication failed", "UND_ERR_SOCKS5_AUTH_FAILED");
103349
+ }
103350
+ this.buffer = this.buffer.subarray(2);
103351
+ debug("authentication successful");
103352
+ this.emit("authenticated");
103353
+ }
103354
+ /**
103355
+ * Send CONNECT command
103356
+ * @param {string} address - Target address (IP or domain)
103357
+ * @param {number} port - Target port
103358
+ */
103359
+ connect(address, port) {
103360
+ if (this.state === STATES.CONNECTED) {
103361
+ throw new InvalidArgumentError("Already connected");
103362
+ }
103363
+ debug("connecting to", address, port);
103364
+ this.state = STATES.CONNECTING;
103365
+ const request2 = this.buildConnectRequest(COMMANDS.CONNECT, address, port);
103366
+ this.socket.write(request2);
103367
+ }
103368
+ /**
103369
+ * Build a SOCKS5 request
103370
+ */
103371
+ buildConnectRequest(command, address, port) {
103372
+ const { type: addressType, buffer: addressBuffer } = parseAddress(address);
103373
+ const request2 = Buffer2.alloc(4 + addressBuffer.length + 2);
103374
+ request2[0] = SOCKS_VERSION;
103375
+ request2[1] = command;
103376
+ request2[2] = 0;
103377
+ request2[3] = addressType;
103378
+ addressBuffer.copy(request2, 4);
103379
+ request2.writeUInt16BE(port, 4 + addressBuffer.length);
103380
+ return request2;
103381
+ }
103382
+ /**
103383
+ * Handle CONNECT response
103384
+ */
103385
+ handleConnectResponse() {
103386
+ if (this.buffer.length < 4) {
103387
+ return;
103388
+ }
103389
+ const version2 = this.buffer[0];
103390
+ const reply = this.buffer[1];
103391
+ const addressType = this.buffer[3];
103392
+ if (version2 !== SOCKS_VERSION) {
103393
+ throw new Socks5ProxyError(`Invalid SOCKS version in reply: ${version2}`, "UND_ERR_SOCKS5_REPLY_VERSION");
103394
+ }
103395
+ let responseLength = 4;
103396
+ if (addressType === ADDRESS_TYPES.IPV4) {
103397
+ responseLength += 4 + 2;
103398
+ } else if (addressType === ADDRESS_TYPES.DOMAIN) {
103399
+ if (this.buffer.length < 5) {
103400
+ return;
103401
+ }
103402
+ responseLength += 1 + this.buffer[4] + 2;
103403
+ } else if (addressType === ADDRESS_TYPES.IPV6) {
103404
+ responseLength += 16 + 2;
103405
+ } else {
103406
+ throw new Socks5ProxyError(`Invalid address type in reply: ${addressType}`, "UND_ERR_SOCKS5_ADDR_TYPE");
103407
+ }
103408
+ if (this.buffer.length < responseLength) {
103409
+ return;
103410
+ }
103411
+ if (reply !== REPLY_CODES.SUCCEEDED) {
103412
+ const errorMessage = this.getReplyErrorMessage(reply);
103413
+ throw new Socks5ProxyError(`SOCKS5 connection failed: ${errorMessage}`, `UND_ERR_SOCKS5_REPLY_${reply}`);
103414
+ }
103415
+ let boundAddress;
103416
+ let offset2 = 4;
103417
+ if (addressType === ADDRESS_TYPES.IPV4) {
103418
+ boundAddress = Array.from(this.buffer.subarray(offset2, offset2 + 4)).join(".");
103419
+ offset2 += 4;
103420
+ } else if (addressType === ADDRESS_TYPES.DOMAIN) {
103421
+ const domainLength = this.buffer[offset2];
103422
+ offset2 += 1;
103423
+ boundAddress = this.buffer.subarray(offset2, offset2 + domainLength).toString();
103424
+ offset2 += domainLength;
103425
+ } else if (addressType === ADDRESS_TYPES.IPV6) {
103426
+ const parts = [];
103427
+ for (let i = 0; i < 8; i++) {
103428
+ const value = this.buffer.readUInt16BE(offset2 + i * 2);
103429
+ parts.push(value.toString(16));
103430
+ }
103431
+ boundAddress = parts.join(":");
103432
+ offset2 += 16;
103433
+ }
103434
+ const boundPort = this.buffer.readUInt16BE(offset2);
103435
+ this.buffer = EMPTY_BUFFER;
103436
+ this.state = STATES.CONNECTED;
103437
+ this.socket.removeListener("data", this.onSocketData);
103438
+ debug("connected, bound address:", boundAddress, "port:", boundPort);
103439
+ this.emit("connected", { address: boundAddress, port: boundPort });
103440
+ }
103441
+ /**
103442
+ * Get human-readable error message for reply code
103443
+ */
103444
+ getReplyErrorMessage(reply) {
103445
+ switch (reply) {
103446
+ case REPLY_CODES.GENERAL_FAILURE:
103447
+ return "General SOCKS server failure";
103448
+ case REPLY_CODES.CONNECTION_NOT_ALLOWED:
103449
+ return "Connection not allowed by ruleset";
103450
+ case REPLY_CODES.NETWORK_UNREACHABLE:
103451
+ return "Network unreachable";
103452
+ case REPLY_CODES.HOST_UNREACHABLE:
103453
+ return "Host unreachable";
103454
+ case REPLY_CODES.CONNECTION_REFUSED:
103455
+ return "Connection refused";
103456
+ case REPLY_CODES.TTL_EXPIRED:
103457
+ return "TTL expired";
103458
+ case REPLY_CODES.COMMAND_NOT_SUPPORTED:
103459
+ return "Command not supported";
103460
+ case REPLY_CODES.ADDRESS_TYPE_NOT_SUPPORTED:
103461
+ return "Address type not supported";
103462
+ default:
103463
+ return `Unknown error code: ${reply}`;
103464
+ }
103465
+ }
103466
+ }
103467
+ socks5Client = {
103468
+ Socks5Client,
103469
+ AUTH_METHODS,
103470
+ COMMANDS,
103471
+ ADDRESS_TYPES,
103472
+ REPLY_CODES,
103473
+ STATES
103474
+ };
103475
+ return socks5Client;
103476
+ }
103477
+ var socks5ProxyAgent;
103478
+ var hasRequiredSocks5ProxyAgent;
103479
+ function requireSocks5ProxyAgent() {
103480
+ if (hasRequiredSocks5ProxyAgent) return socks5ProxyAgent;
103481
+ hasRequiredSocks5ProxyAgent = 1;
103482
+ const net2 = require$$0$5;
103483
+ const { URL: URL2 } = require$$1$2;
103484
+ let tls;
103485
+ const DispatcherBase = requireDispatcherBase();
103486
+ const { InvalidArgumentError } = requireErrors();
103487
+ const { Socks5Client } = requireSocks5Client();
103488
+ const { kDispatch, kClose, kDestroy } = requireSymbols();
103489
+ const Pool = requirePool();
103490
+ const buildConnector = requireConnect();
103491
+ const { debuglog } = require$$3;
103492
+ const debug = debuglog("undici:socks5-proxy");
103493
+ const kProxyUrl = Symbol("proxy url");
103494
+ const kProxyHeaders = Symbol("proxy headers");
103495
+ const kProxyAuth = Symbol("proxy auth");
103496
+ const kPool = Symbol("pool");
103497
+ const kConnector = Symbol("connector");
103498
+ let experimentalWarningEmitted = false;
103499
+ class Socks5ProxyAgent extends DispatcherBase {
103500
+ constructor(proxyUrl, options = {}) {
103501
+ var _a3;
103502
+ super();
103503
+ if (!experimentalWarningEmitted) {
103504
+ process.emitWarning(
103505
+ "SOCKS5 proxy support is experimental and subject to change",
103506
+ "ExperimentalWarning"
103507
+ );
103508
+ experimentalWarningEmitted = true;
103509
+ }
103510
+ if (!proxyUrl) {
103511
+ throw new InvalidArgumentError("Proxy URL is mandatory");
103512
+ }
103513
+ const url2 = typeof proxyUrl === "string" ? new URL2(proxyUrl) : proxyUrl;
103514
+ if (url2.protocol !== "socks5:" && url2.protocol !== "socks:") {
103515
+ throw new InvalidArgumentError("Proxy URL must use socks5:// or socks:// protocol");
103516
+ }
103517
+ this[kProxyUrl] = url2;
103518
+ this[kProxyHeaders] = options.headers || {};
103519
+ this[kProxyAuth] = {
103520
+ username: options.username || (url2.username ? decodeURIComponent(url2.username) : null),
103521
+ password: options.password || (url2.password ? decodeURIComponent(url2.password) : null)
103522
+ };
103523
+ this[kConnector] = options.connect || buildConnector({
103524
+ ...options.proxyTls,
103525
+ servername: ((_a3 = options.proxyTls) == null ? void 0 : _a3.servername) || url2.hostname
103526
+ });
103527
+ this[kPool] = null;
103528
+ }
103529
+ /**
103530
+ * Create a SOCKS5 connection to the proxy
103531
+ */
103532
+ async createSocks5Connection(targetHost, targetPort) {
103533
+ const proxyHost = this[kProxyUrl].hostname;
103534
+ const proxyPort = parseInt(this[kProxyUrl].port) || 1080;
103535
+ debug("creating SOCKS5 connection to", proxyHost, proxyPort);
103536
+ const socket = await new Promise((resolve2, reject) => {
103537
+ const onConnect = () => {
103538
+ socket2.removeListener("error", onError);
103539
+ resolve2(socket2);
103540
+ };
103541
+ const onError = (err) => {
103542
+ socket2.removeListener("connect", onConnect);
103543
+ reject(err);
103544
+ };
103545
+ const socket2 = net2.connect({
103546
+ host: proxyHost,
103547
+ port: proxyPort
103548
+ });
103549
+ socket2.once("connect", onConnect);
103550
+ socket2.once("error", onError);
103551
+ });
103552
+ const socks5Client2 = new Socks5Client(socket, this[kProxyAuth]);
103553
+ socks5Client2.on("error", (err) => {
103554
+ debug("SOCKS5 error:", err);
103555
+ socket.destroy();
103556
+ });
103557
+ await socks5Client2.handshake();
103558
+ await new Promise((resolve2, reject) => {
103559
+ const timeout2 = setTimeout(() => {
103560
+ reject(new Error("SOCKS5 authentication timeout"));
103561
+ }, 5e3);
103562
+ const onAuthenticated = () => {
103563
+ clearTimeout(timeout2);
103564
+ socks5Client2.removeListener("error", onError);
103565
+ resolve2();
103566
+ };
103567
+ const onError = (err) => {
103568
+ clearTimeout(timeout2);
103569
+ socks5Client2.removeListener("authenticated", onAuthenticated);
103570
+ reject(err);
103571
+ };
103572
+ if (socks5Client2.state === "authenticated") {
103573
+ clearTimeout(timeout2);
103574
+ resolve2();
103575
+ } else {
103576
+ socks5Client2.once("authenticated", onAuthenticated);
103577
+ socks5Client2.once("error", onError);
103578
+ }
103579
+ });
103580
+ await socks5Client2.connect(targetHost, targetPort);
103581
+ await new Promise((resolve2, reject) => {
103582
+ const timeout2 = setTimeout(() => {
103583
+ reject(new Error("SOCKS5 connection timeout"));
103584
+ }, 5e3);
103585
+ const onConnected = (info) => {
103586
+ debug("SOCKS5 tunnel established to", targetHost, targetPort, "via", info);
103587
+ clearTimeout(timeout2);
103588
+ socks5Client2.removeListener("error", onError);
103589
+ resolve2();
103590
+ };
103591
+ const onError = (err) => {
103592
+ clearTimeout(timeout2);
103593
+ socks5Client2.removeListener("connected", onConnected);
103594
+ reject(err);
103595
+ };
103596
+ socks5Client2.once("connected", onConnected);
103597
+ socks5Client2.once("error", onError);
103598
+ });
103599
+ return socket;
103600
+ }
103601
+ /**
103602
+ * Dispatch a request through the SOCKS5 proxy
103603
+ */
103604
+ async [kDispatch](opts, handler) {
103605
+ const { origin } = opts;
103606
+ debug("dispatching request to", origin, "via SOCKS5");
103607
+ try {
103608
+ if (!this[kPool] || this[kPool].destroyed || this[kPool].closed) {
103609
+ this[kPool] = new Pool(origin, {
103610
+ pipelining: opts.pipelining,
103611
+ connections: opts.connections,
103612
+ connect: async (connectOpts, callback) => {
103613
+ try {
103614
+ const url2 = new URL2(origin);
103615
+ const targetHost = url2.hostname;
103616
+ const targetPort = parseInt(url2.port) || (url2.protocol === "https:" ? 443 : 80);
103617
+ debug("establishing SOCKS5 connection to", targetHost, targetPort);
103618
+ const socket = await this.createSocks5Connection(targetHost, targetPort);
103619
+ let finalSocket = socket;
103620
+ if (url2.protocol === "https:") {
103621
+ if (!tls) {
103622
+ tls = require("node:tls");
103623
+ }
103624
+ debug("upgrading to TLS");
103625
+ finalSocket = tls.connect({
103626
+ socket,
103627
+ servername: targetHost,
103628
+ ...connectOpts.tls || {}
103629
+ });
103630
+ await new Promise((resolve2, reject) => {
103631
+ finalSocket.once("secureConnect", resolve2);
103632
+ finalSocket.once("error", reject);
103633
+ });
103634
+ }
103635
+ callback(null, finalSocket);
103636
+ } catch (err) {
103637
+ debug("SOCKS5 connection error:", err);
103638
+ callback(err);
103639
+ }
103640
+ }
103641
+ });
103642
+ }
103643
+ return this[kPool][kDispatch](opts, handler);
103644
+ } catch (err) {
103645
+ debug("dispatch error:", err);
103646
+ if (typeof handler.onError === "function") {
103647
+ handler.onError(err);
103648
+ } else {
103649
+ throw err;
103650
+ }
103651
+ }
103652
+ }
103653
+ async [kClose]() {
103654
+ if (this[kPool]) {
103655
+ await this[kPool].close();
103656
+ }
103657
+ }
103658
+ async [kDestroy](err) {
103659
+ if (this[kPool]) {
103660
+ await this[kPool].destroy(err);
103661
+ }
103662
+ }
103663
+ }
103664
+ socks5ProxyAgent = Socks5ProxyAgent;
103665
+ return socks5ProxyAgent;
103666
+ }
102805
103667
  var proxyAgent;
102806
103668
  var hasRequiredProxyAgent;
102807
103669
  function requireProxyAgent() {
@@ -102816,6 +103678,7 @@ function requireProxyAgent() {
102816
103678
  const buildConnector = requireConnect();
102817
103679
  const Client = requireClient();
102818
103680
  const { channels } = requireDiagnostics();
103681
+ const Socks5ProxyAgent = requireSocks5ProxyAgent();
102819
103682
  const kAgent = Symbol("proxy agent");
102820
103683
  const kClient = Symbol("proxy client");
102821
103684
  const kProxyHeaders = Symbol("proxy headers");
@@ -102916,6 +103779,16 @@ function requireProxyAgent() {
102916
103779
  const agentFactory = opts.factory || defaultAgentFactory;
102917
103780
  const factory = (origin2, options) => {
102918
103781
  const { protocol: protocol2 } = new URL(origin2);
103782
+ if (this[kProxy].protocol === "socks5:" || this[kProxy].protocol === "socks:") {
103783
+ return new Socks5ProxyAgent(this[kProxy].uri, {
103784
+ headers: this[kProxyHeaders],
103785
+ connect: connect2,
103786
+ factory: agentFactory,
103787
+ username: opts.username || username,
103788
+ password: opts.password || password,
103789
+ proxyTls: opts.proxyTls
103790
+ });
103791
+ }
102919
103792
  if (!this[kTunnelProxy] && protocol2 === "http:" && this[kProxy].protocol === "http:") {
102920
103793
  return new Http1ProxyWrapper(this[kProxy].uri, {
102921
103794
  headers: this[kProxyHeaders],
@@ -102925,12 +103798,20 @@ function requireProxyAgent() {
102925
103798
  }
102926
103799
  return agentFactory(origin2, options);
102927
103800
  };
102928
- this[kClient] = clientFactory(url2, { connect: connect2 });
103801
+ if (protocol === "socks5:" || protocol === "socks:") {
103802
+ this[kClient] = null;
103803
+ } else {
103804
+ this[kClient] = clientFactory(url2, { connect: connect2 });
103805
+ }
102929
103806
  this[kAgent] = new Agent({
102930
103807
  ...opts,
102931
103808
  factory,
102932
103809
  connect: async (opts2, callback) => {
102933
103810
  var _a3;
103811
+ if (!this[kClient]) {
103812
+ callback(new InvalidArgumentError("Cannot establish tunnel connection without a proxy client"));
103813
+ return;
103814
+ }
102934
103815
  let requestedPath = opts2.host;
102935
103816
  if (!opts2.port) {
102936
103817
  requestedPath += `:${defaultProtocolPort(opts2.protocol)}`;
@@ -102997,16 +103878,18 @@ function requireProxyAgent() {
102997
103878
  );
102998
103879
  }
102999
103880
  [kClose]() {
103000
- return Promise.all([
103001
- this[kAgent].close(),
103002
- this[kClient].close()
103003
- ]);
103881
+ const promises2 = [this[kAgent].close()];
103882
+ if (this[kClient]) {
103883
+ promises2.push(this[kClient].close());
103884
+ }
103885
+ return Promise.all(promises2);
103004
103886
  }
103005
103887
  [kDestroy]() {
103006
- return Promise.all([
103007
- this[kAgent].destroy(),
103008
- this[kClient].destroy()
103009
- ]);
103888
+ const promises2 = [this[kAgent].destroy()];
103889
+ if (this[kClient]) {
103890
+ promises2.push(this[kClient].destroy());
103891
+ }
103892
+ return Promise.all(promises2);
103010
103893
  }
103011
103894
  }
103012
103895
  _ProxyAgent_instances = new WeakSet();
@@ -103176,7 +104059,7 @@ var hasRequiredRetryHandler;
103176
104059
  function requireRetryHandler() {
103177
104060
  if (hasRequiredRetryHandler) return retryHandler;
103178
104061
  hasRequiredRetryHandler = 1;
103179
- const assert2 = require$$0$2;
104062
+ const assert2 = require$$0$3;
103180
104063
  const { kRetryHandlerDefaultRetry } = requireSymbols();
103181
104064
  const { RequestRetryError } = requireErrors();
103182
104065
  const WrapHandler = requireWrapHandler();
@@ -103547,7 +104430,7 @@ function requireH2cClient() {
103547
104430
  "h2c-client: Only h2c protocol is supported"
103548
104431
  );
103549
104432
  }
103550
- const { connect: connect2, maxConcurrentStreams, pipelining, ...opts } = clientOpts ?? {};
104433
+ const { maxConcurrentStreams, pipelining, ...opts } = clientOpts ?? {};
103551
104434
  let defaultMaxConcurrentStreams = 100;
103552
104435
  let defaultPipelining = 100;
103553
104436
  if (maxConcurrentStreams != null && Number.isInteger(maxConcurrentStreams) && maxConcurrentStreams > 0) {
@@ -103580,8 +104463,8 @@ var hasRequiredReadable;
103580
104463
  function requireReadable() {
103581
104464
  if (hasRequiredReadable) return readable;
103582
104465
  hasRequiredReadable = 1;
103583
- const assert2 = require$$0$2;
103584
- const { Readable } = require$$0$3;
104466
+ const assert2 = require$$0$3;
104467
+ const { Readable } = require$$0$4;
103585
104468
  const { RequestAbortedError, NotSupportedError, InvalidArgumentError, AbortError } = requireErrors();
103586
104469
  const util2 = requireUtil$5();
103587
104470
  const { ReadableStreamFrom } = requireUtil$5();
@@ -103982,8 +104865,8 @@ var hasRequiredApiRequest;
103982
104865
  function requireApiRequest() {
103983
104866
  if (hasRequiredApiRequest) return apiRequest.exports;
103984
104867
  hasRequiredApiRequest = 1;
103985
- const assert2 = require$$0$2;
103986
- const { AsyncResource } = require$$1$2;
104868
+ const assert2 = require$$0$3;
104869
+ const { AsyncResource } = require$$1$3;
103987
104870
  const { Readable } = requireReadable();
103988
104871
  const { InvalidArgumentError, RequestAbortedError } = requireErrors();
103989
104872
  const util2 = requireUtil$5();
@@ -103999,7 +104882,7 @@ function requireApiRequest() {
103999
104882
  if (typeof callback !== "function") {
104000
104883
  throw new InvalidArgumentError("invalid callback");
104001
104884
  }
104002
- if (highWaterMark && (typeof highWaterMark !== "number" || highWaterMark < 0)) {
104885
+ if (highWaterMark != null && (!Number.isFinite(highWaterMark) || highWaterMark < 0)) {
104003
104886
  throw new InvalidArgumentError("invalid highWaterMark");
104004
104887
  }
104005
104888
  if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") {
@@ -104213,9 +105096,9 @@ var hasRequiredApiStream;
104213
105096
  function requireApiStream() {
104214
105097
  if (hasRequiredApiStream) return apiStream;
104215
105098
  hasRequiredApiStream = 1;
104216
- const assert2 = require$$0$2;
104217
- const { finished } = require$$0$3;
104218
- const { AsyncResource } = require$$1$2;
105099
+ const assert2 = require$$0$3;
105100
+ const { finished } = require$$0$4;
105101
+ const { AsyncResource } = require$$1$3;
104219
105102
  const { InvalidArgumentError, InvalidReturnValueError } = requireErrors();
104220
105103
  const util2 = requireUtil$5();
104221
105104
  const { addSignal, removeSignal } = requireAbortSignal();
@@ -104379,9 +105262,9 @@ function requireApiPipeline() {
104379
105262
  Readable,
104380
105263
  Duplex,
104381
105264
  PassThrough: PassThrough2
104382
- } = require$$0$3;
104383
- const assert2 = require$$0$2;
104384
- const { AsyncResource } = require$$1$2;
105265
+ } = require$$0$4;
105266
+ const assert2 = require$$0$3;
105267
+ const { AsyncResource } = require$$1$3;
104385
105268
  const {
104386
105269
  InvalidArgumentError,
104387
105270
  InvalidReturnValueError,
@@ -104577,8 +105460,8 @@ function requireApiUpgrade() {
104577
105460
  if (hasRequiredApiUpgrade) return apiUpgrade;
104578
105461
  hasRequiredApiUpgrade = 1;
104579
105462
  const { InvalidArgumentError, SocketError } = requireErrors();
104580
- const { AsyncResource } = require$$1$2;
104581
- const assert2 = require$$0$2;
105463
+ const { AsyncResource } = require$$1$3;
105464
+ const assert2 = require$$0$3;
104582
105465
  const util2 = requireUtil$5();
104583
105466
  const { kHTTP2Stream } = requireSymbols();
104584
105467
  const { addSignal, removeSignal } = requireAbortSignal();
@@ -104670,8 +105553,8 @@ var hasRequiredApiConnect;
104670
105553
  function requireApiConnect() {
104671
105554
  if (hasRequiredApiConnect) return apiConnect;
104672
105555
  hasRequiredApiConnect = 1;
104673
- const assert2 = require$$0$2;
104674
- const { AsyncResource } = require$$1$2;
105556
+ const assert2 = require$$0$3;
105557
+ const { AsyncResource } = require$$1$3;
104675
105558
  const { InvalidArgumentError, SocketError } = requireErrors();
104676
105559
  const util2 = requireUtil$5();
104677
105560
  const { addSignal, removeSignal } = requireAbortSignal();
@@ -104825,7 +105708,8 @@ function requireMockSymbols() {
104825
105708
  kMockAgentAddCallHistoryLog: Symbol("mock agent add call history log"),
104826
105709
  kMockAgentIsCallHistoryEnabled: Symbol("mock agent is call history enabled"),
104827
105710
  kMockAgentAcceptsNonStandardSearchParameters: Symbol("mock agent accepts non standard search parameters"),
104828
- kMockCallHistoryAddLog: Symbol("mock call history add log")
105711
+ kMockCallHistoryAddLog: Symbol("mock call history add log"),
105712
+ kTotalDispatchCount: Symbol("total dispatch count")
104829
105713
  };
104830
105714
  return mockSymbols;
104831
105715
  }
@@ -104840,7 +105724,8 @@ function requireMockUtils() {
104840
105724
  kMockAgent,
104841
105725
  kOriginalDispatch,
104842
105726
  kOrigin,
104843
- kGetNetConnect
105727
+ kGetNetConnect,
105728
+ kTotalDispatchCount
104844
105729
  } = requireMockSymbols();
104845
105730
  const { serializePathWithQuery } = requireUtil$5();
104846
105731
  const { STATUS_CODES } = require$$2$1;
@@ -105000,6 +105885,7 @@ function requireMockUtils() {
105000
105885
  const replyData = typeof data === "function" ? { callback: data } : { ...data };
105001
105886
  const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } };
105002
105887
  mockDispatches.push(newMockDispatch);
105888
+ mockDispatches[kTotalDispatchCount] = (mockDispatches[kTotalDispatchCount] || 0) + 1;
105003
105889
  return newMockDispatch;
105004
105890
  }
105005
105891
  function deleteMockDispatch(mockDispatches, key) {
@@ -105134,13 +106020,16 @@ function requireMockUtils() {
105134
106020
  } catch (error2) {
105135
106021
  if (error2.code === "UND_MOCK_ERR_MOCK_NOT_MATCHED") {
105136
106022
  const netConnect = agent2[kGetNetConnect]();
106023
+ const totalInterceptsCount = this[kDispatches][kTotalDispatchCount] || this[kDispatches].length;
106024
+ const pendingInterceptsCount = this[kDispatches].filter(({ consumed }) => !consumed).length;
106025
+ const interceptsMessage = `, ${pendingInterceptsCount} interceptor(s) remaining out of ${totalInterceptsCount} defined`;
105137
106026
  if (netConnect === false) {
105138
- throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`);
106027
+ throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)${interceptsMessage}`);
105139
106028
  }
105140
106029
  if (checkNetConnect(netConnect, origin)) {
105141
106030
  originalDispatch.call(this, opts, handler);
105142
106031
  } else {
105143
- throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`);
106032
+ throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)${interceptsMessage}`);
105144
106033
  }
105145
106034
  } else {
105146
106035
  throw error2;
@@ -105435,13 +106324,13 @@ function requireMockCallHistory() {
105435
106324
  hasRequiredMockCallHistory = 1;
105436
106325
  const { kMockCallHistoryAddLog } = requireMockSymbols();
105437
106326
  const { InvalidArgumentError } = requireErrors();
105438
- function handleFilterCallsWithOptions(criteria, options, handler, store) {
106327
+ function handleFilterCallsWithOptions(criteria, options, handler, store, allLogs) {
105439
106328
  switch (options.operator) {
105440
106329
  case "OR":
105441
- store.push(...handler(criteria));
106330
+ store.push(...handler(criteria, allLogs));
105442
106331
  return store;
105443
106332
  case "AND":
105444
- return handler.call({ logs: store }, criteria);
106333
+ return handler(criteria, store);
105445
106334
  default:
105446
106335
  throw new InvalidArgumentError("options.operator must to be a case insensitive string equal to 'OR' or 'AND'");
105447
106336
  }
@@ -105460,14 +106349,14 @@ function requireMockCallHistory() {
105460
106349
  return finalOptions;
105461
106350
  }
105462
106351
  function makeFilterCalls(parameterName) {
105463
- return (parameterValue) => {
106352
+ return (parameterValue, logs) => {
105464
106353
  if (typeof parameterValue === "string" || parameterValue == null) {
105465
- return this.logs.filter((log) => {
106354
+ return logs.filter((log) => {
105466
106355
  return log[parameterName] === parameterValue;
105467
106356
  });
105468
106357
  }
105469
106358
  if (parameterValue instanceof RegExp) {
105470
- return this.logs.filter((log) => {
106359
+ return logs.filter((log) => {
105471
106360
  return parameterValue.test(log[parameterName]);
105472
106361
  });
105473
106362
  }
@@ -105582,30 +106471,30 @@ function requireMockCallHistory() {
105582
106471
  return this.logs;
105583
106472
  }
105584
106473
  const finalOptions = { operator: "OR", ...buildAndValidateFilterCallsOptions(options) };
105585
- let maybeDuplicatedLogsFiltered = [];
106474
+ let maybeDuplicatedLogsFiltered = finalOptions.operator === "AND" ? this.logs : [];
105586
106475
  if ("protocol" in criteria) {
105587
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.protocol, finalOptions, this.filterCallsByProtocol, maybeDuplicatedLogsFiltered);
106476
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.protocol, finalOptions, this.filterCallsByProtocol, maybeDuplicatedLogsFiltered, this.logs);
105588
106477
  }
105589
106478
  if ("host" in criteria) {
105590
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.host, finalOptions, this.filterCallsByHost, maybeDuplicatedLogsFiltered);
106479
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.host, finalOptions, this.filterCallsByHost, maybeDuplicatedLogsFiltered, this.logs);
105591
106480
  }
105592
106481
  if ("port" in criteria) {
105593
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.port, finalOptions, this.filterCallsByPort, maybeDuplicatedLogsFiltered);
106482
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.port, finalOptions, this.filterCallsByPort, maybeDuplicatedLogsFiltered, this.logs);
105594
106483
  }
105595
106484
  if ("origin" in criteria) {
105596
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.origin, finalOptions, this.filterCallsByOrigin, maybeDuplicatedLogsFiltered);
106485
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.origin, finalOptions, this.filterCallsByOrigin, maybeDuplicatedLogsFiltered, this.logs);
105597
106486
  }
105598
106487
  if ("path" in criteria) {
105599
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.path, finalOptions, this.filterCallsByPath, maybeDuplicatedLogsFiltered);
106488
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.path, finalOptions, this.filterCallsByPath, maybeDuplicatedLogsFiltered, this.logs);
105600
106489
  }
105601
106490
  if ("hash" in criteria) {
105602
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.hash, finalOptions, this.filterCallsByHash, maybeDuplicatedLogsFiltered);
106491
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.hash, finalOptions, this.filterCallsByHash, maybeDuplicatedLogsFiltered, this.logs);
105603
106492
  }
105604
106493
  if ("fullUrl" in criteria) {
105605
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.fullUrl, finalOptions, this.filterCallsByFullUrl, maybeDuplicatedLogsFiltered);
106494
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.fullUrl, finalOptions, this.filterCallsByFullUrl, maybeDuplicatedLogsFiltered, this.logs);
105606
106495
  }
105607
106496
  if ("method" in criteria) {
105608
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.method, finalOptions, this.filterCallsByMethod, maybeDuplicatedLogsFiltered);
106497
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.method, finalOptions, this.filterCallsByMethod, maybeDuplicatedLogsFiltered, this.logs);
105609
106498
  }
105610
106499
  const uniqLogsFiltered = [...new Set(maybeDuplicatedLogsFiltered)];
105611
106500
  return uniqLogsFiltered;
@@ -105696,8 +106585,8 @@ var hasRequiredPendingInterceptorsFormatter;
105696
106585
  function requirePendingInterceptorsFormatter() {
105697
106586
  if (hasRequiredPendingInterceptorsFormatter) return pendingInterceptorsFormatter;
105698
106587
  hasRequiredPendingInterceptorsFormatter = 1;
105699
- const { Transform: Transform2 } = require$$0$3;
105700
- const { Console } = require$$1$3;
106588
+ const { Transform: Transform2 } = require$$0$4;
106589
+ const { Console } = require$$1$4;
105701
106590
  const PERSISTENT = process.versions.icu ? "✅" : "Y ";
105702
106591
  const NOT_PERSISTENT = process.versions.icu ? "❌" : "N ";
105703
106592
  pendingInterceptorsFormatter = class PendingInterceptorsFormatter {
@@ -106731,7 +107620,7 @@ function requireDecoratorHandler() {
106731
107620
  var _handler, _onCompleteCalled, _onErrorCalled, _onResponseStartCalled, _a3;
106732
107621
  if (hasRequiredDecoratorHandler) return decoratorHandler;
106733
107622
  hasRequiredDecoratorHandler = 1;
106734
- const assert2 = require$$0$2;
107623
+ const assert2 = require$$0$3;
106735
107624
  const WrapHandler = requireWrapHandler();
106736
107625
  decoratorHandler = (_a3 = class {
106737
107626
  constructor(handler) {
@@ -106795,9 +107684,9 @@ function requireRedirectHandler() {
106795
107684
  hasRequiredRedirectHandler = 1;
106796
107685
  const util2 = requireUtil$5();
106797
107686
  const { kBodyUsed } = requireSymbols();
106798
- const assert2 = require$$0$2;
107687
+ const assert2 = require$$0$3;
106799
107688
  const { InvalidArgumentError } = requireErrors();
106800
- const EE = require$$6;
107689
+ const EE = require$$0$2;
106801
107690
  const redirectableStatusCodes = [300, 301, 302, 303, 307, 308];
106802
107691
  const kBody = Symbol("body");
106803
107692
  const noop3 = () => {
@@ -106939,7 +107828,7 @@ function requireRedirectHandler() {
106939
107828
  }
106940
107829
  }
106941
107830
  } else if (headers2 && typeof headers2 === "object") {
106942
- const entries = typeof headers2[Symbol.iterator] === "function" ? headers2 : Object.entries(headers2);
107831
+ const entries = util2.hasSafeIterator(headers2) ? headers2 : Object.entries(headers2);
106943
107832
  for (const [key, value] of entries) {
106944
107833
  if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {
106945
107834
  ret.push(key, value);
@@ -107191,11 +108080,90 @@ function requireDns() {
107191
108080
  var _maxItems, _records, _maxTTL, _maxItems2, _DNSInstance_instances, defaultLookup_fn, defaultPick_fn, _state, _opts, _dispatch, _origin, _controller, _newOrigin, _firstTry;
107192
108081
  if (hasRequiredDns) return dns;
107193
108082
  hasRequiredDns = 1;
107194
- const { isIP } = require$$0$4;
107195
- const { lookup } = require$$1$4;
108083
+ const { isIP } = require$$0$5;
108084
+ const { lookup } = require$$1$5;
107196
108085
  const DecoratorHandler = requireDecoratorHandler();
107197
108086
  const { InvalidArgumentError, InformationalError } = requireErrors();
107198
108087
  const maxInt = Math.pow(2, 31) - 1;
108088
+ function hasSafeIterator(headers2) {
108089
+ const prototype = Object.getPrototypeOf(headers2);
108090
+ const ownIterator = Object.prototype.hasOwnProperty.call(headers2, Symbol.iterator);
108091
+ return ownIterator || prototype != null && prototype !== Object.prototype && typeof headers2[Symbol.iterator] === "function";
108092
+ }
108093
+ function isHostHeader(key) {
108094
+ return typeof key === "string" && key.toLowerCase() === "host";
108095
+ }
108096
+ function normalizeHeaders(headers2) {
108097
+ if (headers2 == null) {
108098
+ return null;
108099
+ }
108100
+ if (Array.isArray(headers2)) {
108101
+ if (headers2.length === 0 || !Array.isArray(headers2[0])) {
108102
+ return headers2;
108103
+ }
108104
+ const normalized = [];
108105
+ for (const header of headers2) {
108106
+ if (Array.isArray(header) && header.length === 2) {
108107
+ normalized.push(header[0], header[1]);
108108
+ } else {
108109
+ normalized.push(header);
108110
+ }
108111
+ }
108112
+ return normalized;
108113
+ }
108114
+ if (typeof headers2 === "object" && hasSafeIterator(headers2)) {
108115
+ const normalized = [];
108116
+ for (const header of headers2) {
108117
+ if (Array.isArray(header) && header.length === 2) {
108118
+ normalized.push(header[0], header[1]);
108119
+ } else {
108120
+ normalized.push(header);
108121
+ }
108122
+ }
108123
+ return normalized;
108124
+ }
108125
+ return headers2;
108126
+ }
108127
+ function hasHostHeader(headers2) {
108128
+ if (headers2 == null) {
108129
+ return false;
108130
+ }
108131
+ if (Array.isArray(headers2)) {
108132
+ if (headers2.length === 0) {
108133
+ return false;
108134
+ }
108135
+ for (let i = 0; i < headers2.length; i += 2) {
108136
+ if (isHostHeader(headers2[i])) {
108137
+ return true;
108138
+ }
108139
+ }
108140
+ return false;
108141
+ }
108142
+ if (typeof headers2 === "object") {
108143
+ for (const key in headers2) {
108144
+ if (isHostHeader(key)) {
108145
+ return true;
108146
+ }
108147
+ }
108148
+ }
108149
+ return false;
108150
+ }
108151
+ function withHostHeader(host, headers2) {
108152
+ const normalizedHeaders = normalizeHeaders(headers2);
108153
+ if (hasHostHeader(normalizedHeaders)) {
108154
+ return normalizedHeaders;
108155
+ }
108156
+ if (Array.isArray(normalizedHeaders)) {
108157
+ return ["host", host, ...normalizedHeaders];
108158
+ }
108159
+ if (normalizedHeaders && typeof normalizedHeaders === "object") {
108160
+ return {
108161
+ host,
108162
+ ...normalizedHeaders
108163
+ };
108164
+ }
108165
+ return { host };
108166
+ }
107199
108167
  class DNSStorage {
107200
108168
  constructor(opts) {
107201
108169
  __privateAdd(this, _maxItems, 0);
@@ -107461,7 +108429,8 @@ function requireDns() {
107461
108429
  }
107462
108430
  const dispatchOpts = {
107463
108431
  ...__privateGet(this, _opts),
107464
- origin: `${__privateGet(this, _origin).protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}`
108432
+ origin: `${__privateGet(this, _origin).protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}`,
108433
+ headers: withHostHeader(__privateGet(this, _origin).host, __privateGet(this, _opts).headers)
107465
108434
  };
107466
108435
  __privateGet(this, _dispatch).call(this, dispatchOpts, this);
107467
108436
  return;
@@ -107544,10 +108513,7 @@ function requireDns() {
107544
108513
  servername: origin.hostname,
107545
108514
  // For SNI on TLS
107546
108515
  origin: newOrigin.origin,
107547
- headers: {
107548
- host: origin.host,
107549
- ...origDispatchOpts.headers
107550
- }
108516
+ headers: withHostHeader(origin.host, origDispatchOpts.headers)
107551
108517
  };
107552
108518
  dispatch2(
107553
108519
  dispatchOpts,
@@ -107570,7 +108536,8 @@ function requireCache$2() {
107570
108536
  hasRequiredCache$2 = 1;
107571
108537
  const {
107572
108538
  safeHTTPMethods,
107573
- pathHasQueryOrFragment
108539
+ pathHasQueryOrFragment,
108540
+ hasSafeIterator
107574
108541
  } = requireUtil$5();
107575
108542
  const { serializePathWithQuery } = requireUtil$5();
107576
108543
  function makeCacheKey(opts) {
@@ -107578,7 +108545,7 @@ function requireCache$2() {
107578
108545
  throw new Error("opts.origin is undefined");
107579
108546
  }
107580
108547
  let fullPath = opts.path || "/";
107581
- if (opts.query && !pathHasQueryOrFragment(opts.path)) {
108548
+ if (opts.query && !pathHasQueryOrFragment(fullPath)) {
107582
108549
  fullPath = serializePathWithQuery(fullPath, opts.query);
107583
108550
  }
107584
108551
  return {
@@ -107592,22 +108559,23 @@ function requireCache$2() {
107592
108559
  let headers2;
107593
108560
  if (opts.headers == null) {
107594
108561
  headers2 = {};
107595
- } else if (typeof opts.headers[Symbol.iterator] === "function") {
108562
+ } else if (typeof opts.headers === "object") {
107596
108563
  headers2 = {};
107597
- for (const x2 of opts.headers) {
107598
- if (!Array.isArray(x2)) {
107599
- throw new Error("opts.headers is not a valid header map");
108564
+ if (hasSafeIterator(opts.headers)) {
108565
+ for (const x2 of opts.headers) {
108566
+ if (!Array.isArray(x2)) {
108567
+ throw new Error("opts.headers is not a valid header map");
108568
+ }
108569
+ const [key, val] = x2;
108570
+ if (typeof key !== "string" || typeof val !== "string") {
108571
+ throw new Error("opts.headers is not a valid header map");
108572
+ }
108573
+ headers2[key.toLowerCase()] = val;
107600
108574
  }
107601
- const [key, val] = x2;
107602
- if (typeof key !== "string" || typeof val !== "string") {
107603
- throw new Error("opts.headers is not a valid header map");
108575
+ } else {
108576
+ for (const key of Object.keys(opts.headers)) {
108577
+ headers2[key.toLowerCase()] = opts.headers[key];
107604
108578
  }
107605
- headers2[key.toLowerCase()] = val;
107606
- }
107607
- } else if (typeof opts.headers === "object") {
107608
- headers2 = {};
107609
- for (const key of Object.keys(opts.headers)) {
107610
- headers2[key.toLowerCase()] = opts.headers[key];
107611
108579
  }
107612
108580
  } else {
107613
108581
  throw new Error("opts.headers is not an object");
@@ -107804,18 +108772,17 @@ function requireCache$2() {
107804
108772
  }
107805
108773
  }
107806
108774
  function makeDeduplicationKey(cacheKey, excludeHeaders) {
107807
- let key = `${cacheKey.origin}:${cacheKey.method}:${cacheKey.path}`;
108775
+ const headers2 = {};
107808
108776
  if (cacheKey.headers) {
107809
108777
  const sortedHeaders = Object.keys(cacheKey.headers).sort();
107810
108778
  for (const header of sortedHeaders) {
107811
108779
  if (excludeHeaders == null ? void 0 : excludeHeaders.has(header.toLowerCase())) {
107812
108780
  continue;
107813
108781
  }
107814
- const value = cacheKey.headers[header];
107815
- key += `:${header}=${Array.isArray(value) ? value.join(",") : value}`;
108782
+ headers2[header] = cacheKey.headers[header];
107816
108783
  }
107817
108784
  }
107818
- return key;
108785
+ return JSON.stringify([cacheKey.origin, cacheKey.method, cacheKey.path, headers2]);
107819
108786
  }
107820
108787
  cache$2 = {
107821
108788
  makeCacheKey,
@@ -108439,7 +109406,7 @@ function requireCacheHandler() {
108439
109406
  return downstreamOnHeaders();
108440
109407
  }
108441
109408
  const cacheControlDirectives = cacheControlHeader ? parseCacheControlHeader(cacheControlHeader) : {};
108442
- if (!canCacheResponse(__privateGet(this, _cacheType), statusCode, resHeaders, cacheControlDirectives)) {
109409
+ if (!canCacheResponse(__privateGet(this, _cacheType), statusCode, resHeaders, cacheControlDirectives, __privateGet(this, _cacheKey).headers)) {
108443
109410
  return downstreamOnHeaders();
108444
109411
  }
108445
109412
  const now2 = Date.now();
@@ -108585,7 +109552,7 @@ function requireCacheHandler() {
108585
109552
  _store = new WeakMap();
108586
109553
  _handler = new WeakMap();
108587
109554
  _writeStream = new WeakMap();
108588
- function canCacheResponse(cacheType, statusCode, resHeaders, cacheControlDirectives) {
109555
+ function canCacheResponse(cacheType, statusCode, resHeaders, cacheControlDirectives, reqHeaders) {
108589
109556
  var _a3;
108590
109557
  if (statusCode < 200 || NOT_UNDERSTOOD_STATUS_CODES.includes(statusCode)) {
108591
109558
  return false;
@@ -108603,8 +109570,11 @@ function requireCacheHandler() {
108603
109570
  if ((_a3 = resHeaders.vary) == null ? void 0 : _a3.includes("*")) {
108604
109571
  return false;
108605
109572
  }
108606
- if (resHeaders.authorization) {
108607
- if (!cacheControlDirectives.public || typeof resHeaders.authorization !== "string") {
109573
+ if (reqHeaders == null ? void 0 : reqHeaders.authorization) {
109574
+ if (!cacheControlDirectives.public && !cacheControlDirectives["s-maxage"] && !cacheControlDirectives["must-revalidate"]) {
109575
+ return false;
109576
+ }
109577
+ if (typeof reqHeaders.authorization !== "string") {
108608
109578
  return false;
108609
109579
  }
108610
109580
  if (Array.isArray(cacheControlDirectives["no-cache"]) && cacheControlDirectives["no-cache"].includes("authorization")) {
@@ -108673,9 +109643,13 @@ function requireCacheHandler() {
108673
109643
  if (cacheControlDirectives["stale-if-error"]) {
108674
109644
  staleIfError = staleAt + cacheControlDirectives["stale-if-error"] * 1e3;
108675
109645
  }
108676
- if (staleWhileRevalidate === -Infinity && staleIfError === -Infinity) {
109646
+ if (cacheControlDirectives.immutable && staleWhileRevalidate === -Infinity && staleIfError === -Infinity) {
108677
109647
  immutable = now2 + 31536e6;
108678
109648
  }
109649
+ if (staleWhileRevalidate === -Infinity && staleIfError === -Infinity && immutable === -Infinity) {
109650
+ const freshnessLifetime = staleAt - now2;
109651
+ return staleAt + freshnessLifetime;
109652
+ }
108679
109653
  return Math.max(staleAt, staleWhileRevalidate, staleIfError, immutable);
108680
109654
  }
108681
109655
  function stripNecessaryHeaders(resHeaders, cacheControlDirectives) {
@@ -108725,8 +109699,8 @@ function requireMemoryCacheStore() {
108725
109699
  var _maxCount, _maxSize2, _maxEntrySize, _size2, _count, _entries, _hasEmittedMaxSizeEvent;
108726
109700
  if (hasRequiredMemoryCacheStore) return memoryCacheStore;
108727
109701
  hasRequiredMemoryCacheStore = 1;
108728
- const { Writable } = require$$0$3;
108729
- const { EventEmitter: EventEmitter2 } = require$$6;
109702
+ const { Writable } = require$$0$4;
109703
+ const { EventEmitter: EventEmitter2 } = require$$0$2;
108730
109704
  const { assertCacheKey, assertCacheValue } = requireCache$2();
108731
109705
  class MemoryCacheStore extends EventEmitter2 {
108732
109706
  /**
@@ -108910,7 +109884,7 @@ function requireCacheRevalidationHandler() {
108910
109884
  var _successful, _callback, _handler, _context, _allowErrorStatusCodes;
108911
109885
  if (hasRequiredCacheRevalidationHandler) return cacheRevalidationHandler;
108912
109886
  hasRequiredCacheRevalidationHandler = 1;
108913
- const assert2 = require$$0$2;
109887
+ const assert2 = require$$0$3;
108914
109888
  class CacheRevalidationHandler {
108915
109889
  /**
108916
109890
  * @param {(boolean) => void} callback Function to call if the cached value is valid
@@ -109007,8 +109981,8 @@ var hasRequiredCache$1;
109007
109981
  function requireCache$1() {
109008
109982
  if (hasRequiredCache$1) return cache$1;
109009
109983
  hasRequiredCache$1 = 1;
109010
- const assert2 = require$$0$2;
109011
- const { Readable } = require$$0$3;
109984
+ const assert2 = require$$0$3;
109985
+ const { Readable } = require$$0$4;
109012
109986
  const util2 = requireUtil$5();
109013
109987
  const CacheHandler = requireCacheHandler();
109014
109988
  const MemoryCacheStore = requireMemoryCacheStore();
@@ -109351,7 +110325,7 @@ function requireDecompress() {
109351
110325
  if (hasRequiredDecompress) return decompress;
109352
110326
  hasRequiredDecompress = 1;
109353
110327
  const { createInflate, createGunzip, createBrotliDecompress, createZstdDecompress } = require$$3$1;
109354
- const { pipeline } = require$$0$3;
110328
+ const { pipeline } = require$$0$4;
109355
110329
  const DecoratorHandler = requireDecoratorHandler();
109356
110330
  const { runtimeFeatures: runtimeFeatures2 } = requireRuntimeFeatures();
109357
110331
  const supportedEncodings = {
@@ -109568,28 +110542,31 @@ function requireDecompress() {
109568
110542
  var deduplicationHandler;
109569
110543
  var hasRequiredDeduplicationHandler;
109570
110544
  function requireDeduplicationHandler() {
109571
- var _primaryHandler, _waitingHandlers, _chunks, _statusCode, _headers, _statusMessage, _aborted, _controller, _onComplete, _DeduplicationHandler_instances, notifyWaitingHandlers_fn, notifyWaitingHandlersError_fn;
110545
+ var _primaryHandler, _waitingHandlers, _maxBufferSize, _statusCode, _headers, _statusMessage, _aborted, _responseStarted, _responseDataStarted, _completed, _controller, _onComplete, _DeduplicationHandler_instances, createWaitingHandler_fn, bufferWaitingChunk_fn, flushWaitingHandler_fn, errorWaitingHandler_fn, pruneDoneWaitingHandlers_fn;
109572
110546
  if (hasRequiredDeduplicationHandler) return deduplicationHandler;
109573
110547
  hasRequiredDeduplicationHandler = 1;
110548
+ const { RequestAbortedError } = requireErrors();
110549
+ const DEFAULT_MAX_BUFFER_SIZE = 5 * 1024 * 1024;
109574
110550
  class DeduplicationHandler {
109575
110551
  /**
109576
110552
  * @param {DispatchHandler} primaryHandler The primary handler
109577
110553
  * @param {() => void} onComplete Callback when request completes
110554
+ * @param {number} [maxBufferSize] Maximum paused buffer size per waiting handler
109578
110555
  */
109579
- constructor(primaryHandler, onComplete) {
110556
+ constructor(primaryHandler, onComplete, maxBufferSize = DEFAULT_MAX_BUFFER_SIZE) {
109580
110557
  __privateAdd(this, _DeduplicationHandler_instances);
109581
110558
  /**
109582
110559
  * @type {DispatchHandler}
109583
110560
  */
109584
110561
  __privateAdd(this, _primaryHandler);
109585
110562
  /**
109586
- * @type {DispatchHandler[]}
110563
+ * @type {WaitingHandler[]}
109587
110564
  */
109588
110565
  __privateAdd(this, _waitingHandlers, []);
109589
110566
  /**
109590
- * @type {Buffer[]}
110567
+ * @type {number}
109591
110568
  */
109592
- __privateAdd(this, _chunks, []);
110569
+ __privateAdd(this, _maxBufferSize, DEFAULT_MAX_BUFFER_SIZE);
109593
110570
  /**
109594
110571
  * @type {number}
109595
110572
  */
@@ -109606,6 +110583,18 @@ function requireDeduplicationHandler() {
109606
110583
  * @type {boolean}
109607
110584
  */
109608
110585
  __privateAdd(this, _aborted, false);
110586
+ /**
110587
+ * @type {boolean}
110588
+ */
110589
+ __privateAdd(this, _responseStarted, false);
110590
+ /**
110591
+ * @type {boolean}
110592
+ */
110593
+ __privateAdd(this, _responseDataStarted, false);
110594
+ /**
110595
+ * @type {boolean}
110596
+ */
110597
+ __privateAdd(this, _completed, false);
109609
110598
  /**
109610
110599
  * @type {import('../../types/dispatcher.d.ts').default.DispatchController | null}
109611
110600
  */
@@ -109616,16 +110605,48 @@ function requireDeduplicationHandler() {
109616
110605
  __privateAdd(this, _onComplete, null);
109617
110606
  __privateSet(this, _primaryHandler, primaryHandler);
109618
110607
  __privateSet(this, _onComplete, onComplete);
110608
+ __privateSet(this, _maxBufferSize, maxBufferSize);
109619
110609
  }
109620
110610
  /**
109621
- * Add a waiting handler that will receive the buffered response
110611
+ * Add a waiting handler that will receive response events.
110612
+ * Returns false if deduplication can no longer safely attach this handler.
110613
+ *
109622
110614
  * @param {DispatchHandler} handler
110615
+ * @returns {boolean}
109623
110616
  */
109624
110617
  addWaitingHandler(handler) {
109625
- __privateGet(this, _waitingHandlers).push(handler);
110618
+ var _a3, _b2;
110619
+ if (__privateGet(this, _completed) || __privateGet(this, _responseDataStarted)) {
110620
+ return false;
110621
+ }
110622
+ const waitingHandler = __privateMethod(this, _DeduplicationHandler_instances, createWaitingHandler_fn).call(this, handler);
110623
+ const waitingController = waitingHandler.controller;
110624
+ try {
110625
+ (_a3 = handler.onRequestStart) == null ? void 0 : _a3.call(handler, waitingController, null);
110626
+ if (waitingController.aborted) {
110627
+ waitingHandler.done = true;
110628
+ return true;
110629
+ }
110630
+ if (__privateGet(this, _responseStarted)) {
110631
+ (_b2 = handler.onResponseStart) == null ? void 0 : _b2.call(
110632
+ handler,
110633
+ waitingController,
110634
+ __privateGet(this, _statusCode),
110635
+ __privateGet(this, _headers),
110636
+ __privateGet(this, _statusMessage)
110637
+ );
110638
+ }
110639
+ } catch {
110640
+ waitingHandler.done = true;
110641
+ return true;
110642
+ }
110643
+ if (!waitingController.aborted) {
110644
+ __privateGet(this, _waitingHandlers).push(waitingHandler);
110645
+ }
110646
+ return true;
109626
110647
  }
109627
110648
  /**
109628
- * @param {() => void} abort
110649
+ * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
109629
110650
  * @param {any} context
109630
110651
  */
109631
110652
  onRequestStart(controller, context) {
@@ -109650,30 +110671,100 @@ function requireDeduplicationHandler() {
109650
110671
  * @param {string} statusMessage
109651
110672
  */
109652
110673
  onResponseStart(controller, statusCode, headers2, statusMessage) {
109653
- var _a3, _b2;
110674
+ var _a3, _b2, _c2;
110675
+ __privateSet(this, _responseStarted, true);
109654
110676
  __privateSet(this, _statusCode, statusCode);
109655
110677
  __privateSet(this, _headers, headers2);
109656
110678
  __privateSet(this, _statusMessage, statusMessage);
109657
110679
  (_b2 = (_a3 = __privateGet(this, _primaryHandler)).onResponseStart) == null ? void 0 : _b2.call(_a3, controller, statusCode, headers2, statusMessage);
110680
+ for (const waitingHandler of __privateGet(this, _waitingHandlers)) {
110681
+ const { handler, controller: waitingController } = waitingHandler;
110682
+ if (waitingHandler.done || waitingController.aborted) {
110683
+ waitingHandler.done = true;
110684
+ continue;
110685
+ }
110686
+ try {
110687
+ (_c2 = handler.onResponseStart) == null ? void 0 : _c2.call(
110688
+ handler,
110689
+ waitingController,
110690
+ statusCode,
110691
+ headers2,
110692
+ statusMessage
110693
+ );
110694
+ } catch {
110695
+ }
110696
+ if (waitingController.aborted) {
110697
+ waitingHandler.done = true;
110698
+ }
110699
+ }
110700
+ __privateMethod(this, _DeduplicationHandler_instances, pruneDoneWaitingHandlers_fn).call(this);
109658
110701
  }
109659
110702
  /**
109660
110703
  * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
109661
110704
  * @param {Buffer} chunk
109662
110705
  */
109663
110706
  onResponseData(controller, chunk) {
109664
- var _a3, _b2;
109665
- __privateGet(this, _chunks).push(Buffer.from(chunk));
110707
+ var _a3, _b2, _c2;
110708
+ if (__privateGet(this, _aborted) || __privateGet(this, _completed)) {
110709
+ return;
110710
+ }
110711
+ __privateSet(this, _responseDataStarted, true);
109666
110712
  (_b2 = (_a3 = __privateGet(this, _primaryHandler)).onResponseData) == null ? void 0 : _b2.call(_a3, controller, chunk);
110713
+ for (const waitingHandler of __privateGet(this, _waitingHandlers)) {
110714
+ const { handler, controller: waitingController } = waitingHandler;
110715
+ if (waitingHandler.done || waitingController.aborted) {
110716
+ waitingHandler.done = true;
110717
+ continue;
110718
+ }
110719
+ if (waitingController.paused) {
110720
+ __privateMethod(this, _DeduplicationHandler_instances, bufferWaitingChunk_fn).call(this, waitingHandler, chunk);
110721
+ continue;
110722
+ }
110723
+ try {
110724
+ (_c2 = handler.onResponseData) == null ? void 0 : _c2.call(handler, waitingController, chunk);
110725
+ } catch {
110726
+ }
110727
+ if (waitingController.aborted) {
110728
+ waitingHandler.done = true;
110729
+ waitingHandler.bufferedChunks = [];
110730
+ waitingHandler.bufferedBytes = 0;
110731
+ }
110732
+ }
110733
+ __privateMethod(this, _DeduplicationHandler_instances, pruneDoneWaitingHandlers_fn).call(this);
109667
110734
  }
109668
110735
  /**
109669
110736
  * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
109670
110737
  * @param {object} trailers
109671
110738
  */
109672
110739
  onResponseEnd(controller, trailers) {
109673
- var _a3, _b2, _c2;
110740
+ var _a3, _b2, _c2, _d, _e2;
110741
+ if (__privateGet(this, _aborted) || __privateGet(this, _completed)) {
110742
+ return;
110743
+ }
110744
+ __privateSet(this, _completed, true);
109674
110745
  (_b2 = (_a3 = __privateGet(this, _primaryHandler)).onResponseEnd) == null ? void 0 : _b2.call(_a3, controller, trailers);
109675
- __privateMethod(this, _DeduplicationHandler_instances, notifyWaitingHandlers_fn).call(this);
109676
- (_c2 = __privateGet(this, _onComplete)) == null ? void 0 : _c2.call(this);
110746
+ for (const waitingHandler of __privateGet(this, _waitingHandlers)) {
110747
+ if (waitingHandler.done || waitingHandler.controller.aborted) {
110748
+ waitingHandler.done = true;
110749
+ continue;
110750
+ }
110751
+ __privateMethod(this, _DeduplicationHandler_instances, flushWaitingHandler_fn).call(this, waitingHandler);
110752
+ if (waitingHandler.done || waitingHandler.controller.aborted) {
110753
+ waitingHandler.done = true;
110754
+ continue;
110755
+ }
110756
+ if (waitingHandler.controller.paused && waitingHandler.bufferedChunks.length > 0) {
110757
+ waitingHandler.pendingTrailers = trailers;
110758
+ continue;
110759
+ }
110760
+ try {
110761
+ (_d = (_c2 = waitingHandler.handler).onResponseEnd) == null ? void 0 : _d.call(_c2, waitingHandler.controller, trailers);
110762
+ } catch {
110763
+ }
110764
+ waitingHandler.done = true;
110765
+ }
110766
+ __privateMethod(this, _DeduplicationHandler_instances, pruneDoneWaitingHandlers_fn).call(this);
110767
+ (_e2 = __privateGet(this, _onComplete)) == null ? void 0 : _e2.call(this);
109677
110768
  }
109678
110769
  /**
109679
110770
  * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
@@ -109681,103 +110772,155 @@ function requireDeduplicationHandler() {
109681
110772
  */
109682
110773
  onResponseError(controller, err) {
109683
110774
  var _a3, _b2, _c2;
110775
+ if (__privateGet(this, _completed)) {
110776
+ return;
110777
+ }
109684
110778
  __privateSet(this, _aborted, true);
110779
+ __privateSet(this, _completed, true);
109685
110780
  (_b2 = (_a3 = __privateGet(this, _primaryHandler)).onResponseError) == null ? void 0 : _b2.call(_a3, controller, err);
109686
- __privateMethod(this, _DeduplicationHandler_instances, notifyWaitingHandlersError_fn).call(this, err);
110781
+ for (const waitingHandler of __privateGet(this, _waitingHandlers)) {
110782
+ __privateMethod(this, _DeduplicationHandler_instances, errorWaitingHandler_fn).call(this, waitingHandler, err);
110783
+ }
110784
+ __privateSet(this, _waitingHandlers, []);
109687
110785
  (_c2 = __privateGet(this, _onComplete)) == null ? void 0 : _c2.call(this);
109688
110786
  }
109689
110787
  }
109690
110788
  _primaryHandler = new WeakMap();
109691
110789
  _waitingHandlers = new WeakMap();
109692
- _chunks = new WeakMap();
110790
+ _maxBufferSize = new WeakMap();
109693
110791
  _statusCode = new WeakMap();
109694
110792
  _headers = new WeakMap();
109695
110793
  _statusMessage = new WeakMap();
109696
110794
  _aborted = new WeakMap();
110795
+ _responseStarted = new WeakMap();
110796
+ _responseDataStarted = new WeakMap();
110797
+ _completed = new WeakMap();
109697
110798
  _controller = new WeakMap();
109698
110799
  _onComplete = new WeakMap();
109699
110800
  _DeduplicationHandler_instances = new WeakSet();
109700
110801
  /**
109701
- * Notify all waiting handlers with the buffered response
110802
+ * @param {DispatchHandler} handler
110803
+ * @returns {WaitingHandler}
109702
110804
  */
109703
- notifyWaitingHandlers_fn = function() {
109704
- var _a3, _b2, _c2, _d;
109705
- const body2 = Buffer.concat(__privateGet(this, _chunks));
109706
- for (const handler of __privateGet(this, _waitingHandlers)) {
109707
- const waitingController = {
109708
- resume() {
109709
- },
109710
- pause() {
109711
- },
109712
- get paused() {
109713
- return false;
109714
- },
109715
- get aborted() {
109716
- return false;
109717
- },
109718
- get reason() {
109719
- return null;
109720
- },
109721
- abort() {
109722
- }
109723
- };
109724
- try {
109725
- (_a3 = handler.onRequestStart) == null ? void 0 : _a3.call(handler, waitingController, null);
109726
- if (waitingController.aborted) {
109727
- continue;
110805
+ createWaitingHandler_fn = function(handler) {
110806
+ const waitingHandler = {
110807
+ handler,
110808
+ controller: null,
110809
+ bufferedChunks: [],
110810
+ bufferedBytes: 0,
110811
+ pendingTrailers: null,
110812
+ done: false
110813
+ };
110814
+ const state = {
110815
+ aborted: false,
110816
+ paused: false,
110817
+ reason: null
110818
+ };
110819
+ waitingHandler.controller = {
110820
+ resume: () => {
110821
+ var _a3, _b2;
110822
+ if (state.aborted) {
110823
+ return;
109728
110824
  }
109729
- (_b2 = handler.onResponseStart) == null ? void 0 : _b2.call(
109730
- handler,
109731
- waitingController,
109732
- __privateGet(this, _statusCode),
109733
- __privateGet(this, _headers),
109734
- __privateGet(this, _statusMessage)
109735
- );
109736
- if (waitingController.aborted) {
109737
- continue;
110825
+ state.paused = false;
110826
+ __privateMethod(this, _DeduplicationHandler_instances, flushWaitingHandler_fn).call(this, waitingHandler);
110827
+ if (__privateGet(this, _completed) && waitingHandler.pendingTrailers && waitingHandler.bufferedChunks.length === 0 && !state.paused && !state.aborted) {
110828
+ try {
110829
+ (_b2 = (_a3 = waitingHandler.handler).onResponseEnd) == null ? void 0 : _b2.call(_a3, waitingHandler.controller, waitingHandler.pendingTrailers);
110830
+ } catch {
110831
+ }
110832
+ waitingHandler.pendingTrailers = null;
110833
+ waitingHandler.done = true;
109738
110834
  }
109739
- if (body2.length > 0) {
109740
- (_c2 = handler.onResponseData) == null ? void 0 : _c2.call(handler, waitingController, body2);
110835
+ __privateMethod(this, _DeduplicationHandler_instances, pruneDoneWaitingHandlers_fn).call(this);
110836
+ },
110837
+ pause: () => {
110838
+ if (!state.aborted) {
110839
+ state.paused = true;
109741
110840
  }
109742
- (_d = handler.onResponseEnd) == null ? void 0 : _d.call(handler, waitingController, {});
109743
- } catch {
110841
+ },
110842
+ get paused() {
110843
+ return state.paused;
110844
+ },
110845
+ get aborted() {
110846
+ return state.aborted;
110847
+ },
110848
+ get reason() {
110849
+ return state.reason;
110850
+ },
110851
+ abort: (reason) => {
110852
+ state.aborted = true;
110853
+ state.reason = reason ?? null;
110854
+ waitingHandler.done = true;
110855
+ waitingHandler.pendingTrailers = null;
110856
+ waitingHandler.bufferedChunks = [];
110857
+ waitingHandler.bufferedBytes = 0;
109744
110858
  }
110859
+ };
110860
+ return waitingHandler;
110861
+ };
110862
+ /**
110863
+ * @param {WaitingHandler} waitingHandler
110864
+ * @param {Buffer} chunk
110865
+ */
110866
+ bufferWaitingChunk_fn = function(waitingHandler, chunk) {
110867
+ if (waitingHandler.done || waitingHandler.controller.aborted) {
110868
+ waitingHandler.done = true;
110869
+ waitingHandler.bufferedChunks = [];
110870
+ waitingHandler.bufferedBytes = 0;
110871
+ return;
110872
+ }
110873
+ const bufferedChunk = Buffer.from(chunk);
110874
+ waitingHandler.bufferedChunks.push(bufferedChunk);
110875
+ waitingHandler.bufferedBytes += bufferedChunk.length;
110876
+ if (waitingHandler.bufferedBytes > __privateGet(this, _maxBufferSize)) {
110877
+ const err = new RequestAbortedError(`Deduplicated waiting handler exceeded maxBufferSize (${__privateGet(this, _maxBufferSize)} bytes) while paused`);
110878
+ __privateMethod(this, _DeduplicationHandler_instances, errorWaitingHandler_fn).call(this, waitingHandler, err);
109745
110879
  }
109746
- __privateSet(this, _waitingHandlers, []);
109747
- __privateSet(this, _chunks, []);
109748
110880
  };
109749
110881
  /**
109750
- * Notify all waiting handlers of an error
109751
- * @param {Error} err
110882
+ * @param {WaitingHandler} waitingHandler
109752
110883
  */
109753
- notifyWaitingHandlersError_fn = function(err) {
109754
- var _a3, _b2;
109755
- for (const handler of __privateGet(this, _waitingHandlers)) {
109756
- const waitingController = {
109757
- resume() {
109758
- },
109759
- pause() {
109760
- },
109761
- get paused() {
109762
- return false;
109763
- },
109764
- get aborted() {
109765
- return true;
109766
- },
109767
- get reason() {
109768
- return err;
109769
- },
109770
- abort() {
109771
- }
109772
- };
110884
+ flushWaitingHandler_fn = function(waitingHandler) {
110885
+ var _a3;
110886
+ const { handler, controller } = waitingHandler;
110887
+ while (!waitingHandler.done && !controller.aborted && !controller.paused && waitingHandler.bufferedChunks.length > 0) {
110888
+ const bufferedChunk = waitingHandler.bufferedChunks.shift();
110889
+ waitingHandler.bufferedBytes -= bufferedChunk.length;
109773
110890
  try {
109774
- (_a3 = handler.onRequestStart) == null ? void 0 : _a3.call(handler, waitingController, null);
109775
- (_b2 = handler.onResponseError) == null ? void 0 : _b2.call(handler, waitingController, err);
110891
+ (_a3 = handler.onResponseData) == null ? void 0 : _a3.call(handler, controller, bufferedChunk);
109776
110892
  } catch {
109777
110893
  }
110894
+ if (controller.aborted) {
110895
+ waitingHandler.done = true;
110896
+ waitingHandler.pendingTrailers = null;
110897
+ waitingHandler.bufferedChunks = [];
110898
+ waitingHandler.bufferedBytes = 0;
110899
+ break;
110900
+ }
109778
110901
  }
109779
- __privateSet(this, _waitingHandlers, []);
109780
- __privateSet(this, _chunks, []);
110902
+ };
110903
+ /**
110904
+ * @param {WaitingHandler} waitingHandler
110905
+ * @param {Error} err
110906
+ */
110907
+ errorWaitingHandler_fn = function(waitingHandler, err) {
110908
+ var _a3, _b2;
110909
+ if (waitingHandler.done) {
110910
+ return;
110911
+ }
110912
+ waitingHandler.done = true;
110913
+ waitingHandler.pendingTrailers = null;
110914
+ waitingHandler.bufferedChunks = [];
110915
+ waitingHandler.bufferedBytes = 0;
110916
+ try {
110917
+ waitingHandler.controller.abort(err);
110918
+ (_b2 = (_a3 = waitingHandler.handler).onResponseError) == null ? void 0 : _b2.call(_a3, waitingHandler.controller, err);
110919
+ } catch {
110920
+ }
110921
+ };
110922
+ pruneDoneWaitingHandlers_fn = function() {
110923
+ __privateSet(this, _waitingHandlers, __privateGet(this, _waitingHandlers).filter((waitingHandler) => waitingHandler.done === false));
109781
110924
  };
109782
110925
  deduplicationHandler = DeduplicationHandler;
109783
110926
  return deduplicationHandler;
@@ -109787,7 +110930,7 @@ var hasRequiredDeduplicate;
109787
110930
  function requireDeduplicate() {
109788
110931
  if (hasRequiredDeduplicate) return deduplicate;
109789
110932
  hasRequiredDeduplicate = 1;
109790
- const diagnosticsChannel = require$$0$5;
110933
+ const diagnosticsChannel = require$$0$6;
109791
110934
  const util2 = requireUtil$5();
109792
110935
  const DeduplicationHandler = requireDeduplicationHandler();
109793
110936
  const { normalizeHeaders, makeCacheKey, makeDeduplicationKey } = requireCache$2();
@@ -109796,7 +110939,8 @@ function requireDeduplicate() {
109796
110939
  const {
109797
110940
  methods = ["GET"],
109798
110941
  skipHeaderNames = [],
109799
- excludeHeaderNames = []
110942
+ excludeHeaderNames = [],
110943
+ maxBufferSize = 5 * 1024 * 1024
109800
110944
  } = opts;
109801
110945
  if (typeof opts !== "object" || opts === null) {
109802
110946
  throw new TypeError(`expected type of opts to be an Object, got ${opts === null ? "null" : typeof opts}`);
@@ -109815,6 +110959,9 @@ function requireDeduplicate() {
109815
110959
  if (!Array.isArray(excludeHeaderNames)) {
109816
110960
  throw new TypeError(`expected opts.excludeHeaderNames to be an array, got ${typeof excludeHeaderNames}`);
109817
110961
  }
110962
+ if (!Number.isFinite(maxBufferSize) || maxBufferSize <= 0) {
110963
+ throw new TypeError(`expected opts.maxBufferSize to be a positive finite number, got ${maxBufferSize}`);
110964
+ }
109818
110965
  const skipHeaderNamesSet = new Set(skipHeaderNames.map((name2) => name2.toLowerCase()));
109819
110966
  const excludeHeaderNamesSet = new Set(excludeHeaderNames.map((name2) => name2.toLowerCase()));
109820
110967
  const pendingRequests = /* @__PURE__ */ new Map();
@@ -109838,8 +110985,10 @@ function requireDeduplicate() {
109838
110985
  const dedupeKey = makeDeduplicationKey(cacheKey, excludeHeaderNamesSet);
109839
110986
  const pendingHandler = pendingRequests.get(dedupeKey);
109840
110987
  if (pendingHandler) {
109841
- pendingHandler.addWaitingHandler(handler);
109842
- return true;
110988
+ if (pendingHandler.addWaitingHandler(handler)) {
110989
+ return true;
110990
+ }
110991
+ return dispatch2(opts2, handler);
109843
110992
  }
109844
110993
  const deduplicationHandler2 = new DeduplicationHandler(
109845
110994
  handler,
@@ -109848,7 +110997,8 @@ function requireDeduplicate() {
109848
110997
  if (pendingRequestsChannel.hasSubscribers) {
109849
110998
  pendingRequestsChannel.publish({ size: pendingRequests.size, key: dedupeKey, type: "removed" });
109850
110999
  }
109851
- }
111000
+ },
111001
+ maxBufferSize
109852
111002
  );
109853
111003
  pendingRequests.set(dedupeKey, deduplicationHandler2);
109854
111004
  if (pendingRequestsChannel.hasSubscribers) {
@@ -109866,7 +111016,7 @@ function requireSqliteCacheStore() {
109866
111016
  var _maxEntrySize, _maxCount, _db, _getValuesQuery, _updateValueQuery, _insertValueQuery, _deleteExpiredValuesQuery, _deleteByUrlQuery, _countEntriesQuery, _deleteOldValuesQuery, _SqliteCacheStore_instances, prune_fn, makeValueUrl_fn, findValue_fn, _a3;
109867
111017
  if (hasRequiredSqliteCacheStore) return sqliteCacheStore;
109868
111018
  hasRequiredSqliteCacheStore = 1;
109869
- const { Writable } = require$$0$3;
111019
+ const { Writable } = require$$0$4;
109870
111020
  const { assertCacheKey, assertCacheValue } = requireCache$2();
109871
111021
  let DatabaseSync;
109872
111022
  const VERSION = 3;
@@ -110028,7 +111178,7 @@ function requireSqliteCacheStore() {
110028
111178
  SELECT
110029
111179
  id
110030
111180
  FROM cacheInterceptorV${VERSION}
110031
- ORDER BY cachedAt DESC
111181
+ ORDER BY cachedAt ASC
110032
111182
  LIMIT ?
110033
111183
  )
110034
111184
  `));
@@ -110083,7 +111233,6 @@ function requireSqliteCacheStore() {
110083
111233
  existingValue.id
110084
111234
  );
110085
111235
  } else {
110086
- __privateMethod(this, _SqliteCacheStore_instances, prune_fn).call(this);
110087
111236
  __privateGet(this, _insertValueQuery).run(
110088
111237
  url2,
110089
111238
  key.method,
@@ -110098,6 +111247,7 @@ function requireSqliteCacheStore() {
110098
111247
  value.cachedAt,
110099
111248
  value.staleAt
110100
111249
  );
111250
+ __privateMethod(this, _SqliteCacheStore_instances, prune_fn).call(this);
110101
111251
  }
110102
111252
  }
110103
111253
  /**
@@ -110184,7 +111334,7 @@ function requireSqliteCacheStore() {
110184
111334
  const now2 = Date.now();
110185
111335
  for (const value of values) {
110186
111336
  if (now2 >= value.deleteAt && !canBeExpired) {
110187
- return void 0;
111337
+ continue;
110188
111338
  }
110189
111339
  let matches = true;
110190
111340
  if (value.vary) {
@@ -110233,7 +111383,7 @@ function requireHeaders() {
110233
111383
  isValidHeaderValue
110234
111384
  } = requireUtil$4();
110235
111385
  const { webidl } = requireWebidl();
110236
- const assert2 = require$$0$2;
111386
+ const assert2 = require$$0$3;
110237
111387
  const util2 = require$$3;
110238
111388
  function isHTTPWhiteSpaceCharCode(code2) {
110239
111389
  return code2 === 10 || code2 === 13 || code2 === 9 || code2 === 32;
@@ -110710,7 +111860,7 @@ function requireResponse() {
110710
111860
  const { webidl } = requireWebidl();
110711
111861
  const { URLSerializer } = requireDataUrl();
110712
111862
  const { kConstruct } = requireSymbols();
110713
- const assert2 = require$$0$2;
111863
+ const assert2 = require$$0$3;
110714
111864
  const { isomorphicEncode, serializeJavascriptValueToJSONString } = requireInfra();
110715
111865
  const textEncoder2 = new TextEncoder("utf-8");
110716
111866
  const _Response = class _Response {
@@ -111142,8 +112292,8 @@ function requireRequest() {
111142
112292
  const { webidl } = requireWebidl();
111143
112293
  const { URLSerializer } = requireDataUrl();
111144
112294
  const { kConstruct } = requireSymbols();
111145
- const assert2 = require$$0$2;
111146
- const { getMaxListeners, setMaxListeners, defaultMaxListeners } = require$$6;
112295
+ const assert2 = require$$0$3;
112296
+ const { getMaxListeners, setMaxListeners, defaultMaxListeners } = require$$0$2;
111147
112297
  const kAbortController = Symbol("abortController");
111148
112298
  const requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {
111149
112299
  signal.removeEventListener("abort", abort);
@@ -111881,7 +113031,7 @@ var hasRequiredSubresourceIntegrity;
111881
113031
  function requireSubresourceIntegrity() {
111882
113032
  if (hasRequiredSubresourceIntegrity) return subresourceIntegrity;
111883
113033
  hasRequiredSubresourceIntegrity = 1;
111884
- const assert2 = require$$0$2;
113034
+ const assert2 = require$$0$3;
111885
113035
  const { runtimeFeatures: runtimeFeatures2 } = requireRuntimeFeatures();
111886
113036
  const validSRIHashAlgorithmTokenSet = /* @__PURE__ */ new Map([["sha256", 0], ["sha384", 1], ["sha512", 2]]);
111887
113037
  let crypto$1;
@@ -112065,7 +113215,7 @@ function requireFetch() {
112065
113215
  includesCredentials,
112066
113216
  isTraversableNavigable
112067
113217
  } = requireUtil$4();
112068
- const assert2 = require$$0$2;
113218
+ const assert2 = require$$0$3;
112069
113219
  const { safelyExtractBody, extractBody } = requireBody();
112070
113220
  const {
112071
113221
  redirectStatusSet,
@@ -112074,8 +113224,8 @@ function requireFetch() {
112074
113224
  requestBodyHeader,
112075
113225
  subresourceSet
112076
113226
  } = requireConstants$3();
112077
- const EE = require$$6;
112078
- const { Readable, pipeline, finished, isErrored, isReadable } = require$$0$3;
113227
+ const EE = require$$0$2;
113228
+ const { Readable, pipeline, finished, isErrored, isReadable } = require$$0$4;
112079
113229
  const { addAbortListener, bufferToLowerCasedHeaderName } = requireUtil$5();
112080
113230
  const { dataURLProcessor, serializeAMimeType, minimizeSupportedMimeType } = requireDataUrl();
112081
113231
  const { getGlobalDispatcher } = requireGlobal();
@@ -112177,8 +113327,11 @@ function requireFetch() {
112177
113327
  request: request2,
112178
113328
  processResponseEndOfBody: handleFetchDone,
112179
113329
  processResponse,
112180
- dispatcher: getRequestDispatcher(requestObject)
113330
+ dispatcher: getRequestDispatcher(requestObject),
112181
113331
  // undici
113332
+ // Keep requestObject alive to prevent its AbortController from being GC'd
113333
+ // See https://github.com/nodejs/undici/issues/4627
113334
+ requestObject
112182
113335
  });
112183
113336
  return p2.promise;
112184
113337
  }
@@ -112248,8 +113401,10 @@ function requireFetch() {
112248
113401
  processResponseEndOfBody,
112249
113402
  processResponseConsumeBody,
112250
113403
  useParallelQueue = false,
112251
- dispatcher: dispatcher2 = getGlobalDispatcher()
113404
+ dispatcher: dispatcher2 = getGlobalDispatcher(),
112252
113405
  // undici
113406
+ requestObject = null
113407
+ // Keep alive to prevent AbortController GC, see #4627
112253
113408
  }) {
112254
113409
  var _a3, _b2, _c2;
112255
113410
  assert2(dispatcher2);
@@ -112273,7 +113428,9 @@ function requireFetch() {
112273
113428
  processResponseConsumeBody,
112274
113429
  processResponseEndOfBody,
112275
113430
  taskDestination,
112276
- crossOriginIsolatedCapability
113431
+ crossOriginIsolatedCapability,
113432
+ // Keep requestObject alive to prevent its AbortController from being GC'd
113433
+ requestObject
112277
113434
  };
112278
113435
  assert2(!request2.body || request2.body.stream);
112279
113436
  if (request2.window === "client") {
@@ -112413,7 +113570,7 @@ function requireFetch() {
112413
113570
  }
112414
113571
  case "blob:": {
112415
113572
  if (!resolveObjectURL) {
112416
- resolveObjectURL = require$$0$6.resolveObjectURL;
113573
+ resolveObjectURL = require$$0$7.resolveObjectURL;
112417
113574
  }
112418
113575
  const blobURLEntry = requestCurrentURL(request2);
112419
113576
  if (blobURLEntry.search.length !== 0) {
@@ -112517,7 +113674,7 @@ function requireFetch() {
112517
113674
  cacheState = "";
112518
113675
  }
112519
113676
  let responseStatus = 0;
112520
- if (fetchParams.request.mode !== "navigator" || !response2.hasCrossOriginRedirects) {
113677
+ if (fetchParams.request.mode !== "navigate" || !response2.hasCrossOriginRedirects) {
112521
113678
  responseStatus = response2.status;
112522
113679
  const mimeType = extractMimeType(response2.headersList);
112523
113680
  if (mimeType !== "failure") {
@@ -112678,7 +113835,7 @@ function requireFetch() {
112678
113835
  if (contentLength != null) {
112679
113836
  contentLengthHeaderValue = isomorphicEncode(`${contentLength}`);
112680
113837
  }
112681
- if (contentLengthHeaderValue != null) {
113838
+ if (contentLengthHeaderValue != null && !httpRequest.headersList.contains("content-length", true)) {
112682
113839
  httpRequest.headersList.append("content-length", contentLengthHeaderValue, true);
112683
113840
  }
112684
113841
  if (contentLength != null && httpRequest.keepalive) ;
@@ -112751,10 +113908,10 @@ function requireFetch() {
112751
113908
  response2.rangeRequested = true;
112752
113909
  }
112753
113910
  response2.requestIncludesCredentials = includeCredentials;
112754
- if (response2.status === 401 && httpRequest.responseTainting !== "cors" && includeCredentials && isTraversableNavigable(request2.traversableForUserPrompts)) {
113911
+ if (response2.status === 401 && httpRequest.responseTainting !== "cors" && includeCredentials && (request2.useURLCredentials !== void 0 || isTraversableNavigable(request2.traversableForUserPrompts))) {
112755
113912
  if (request2.body != null) {
112756
113913
  if (request2.body.source == null) {
112757
- return makeNetworkError("expected non-null body source");
113914
+ return response2;
112758
113915
  }
112759
113916
  request2.body = safelyExtractBody(request2.body.source)[0];
112760
113917
  }
@@ -112957,9 +114114,11 @@ function requireFetch() {
112957
114114
  function dispatch2({ body: body2 }) {
112958
114115
  const url2 = requestCurrentURL(request2);
112959
114116
  const agent2 = fetchParams.controller.dispatcher;
114117
+ const path2 = url2.pathname + url2.search;
114118
+ const hasTrailingQuestionMark = url2.search.length === 0 && url2.href[url2.href.length - url2.hash.length - 1] === "?";
112960
114119
  return new Promise((resolve2, reject) => agent2.dispatch(
112961
114120
  {
112962
- path: url2.pathname + url2.search,
114121
+ path: hasTrailingQuestionMark ? `${path2}?` : path2,
112963
114122
  origin: url2.origin,
112964
114123
  method: request2.method,
112965
114124
  body: agent2.isMockActive ? request2.body && (request2.body.source || request2.body.stream) : body2,
@@ -112990,7 +114149,15 @@ function requireFetch() {
112990
114149
  }
112991
114150
  const headersList = new HeadersList();
112992
114151
  for (let i = 0; i < rawHeaders.length; i += 2) {
112993
- headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i]), rawHeaders[i + 1].toString("latin1"), true);
114152
+ const nameStr = bufferToLowerCasedHeaderName(rawHeaders[i]);
114153
+ const value = rawHeaders[i + 1];
114154
+ if (Array.isArray(value) && !Buffer.isBuffer(rawHeaders[i + 1])) {
114155
+ for (const val of value) {
114156
+ headersList.append(nameStr, val.toString("latin1"), true);
114157
+ }
114158
+ } else {
114159
+ headersList.append(nameStr, value.toString("latin1"), true);
114160
+ }
112994
114161
  }
112995
114162
  const location2 = headersList.get("location", true);
112996
114163
  this.body = new Readable({ read: resume });
@@ -113105,7 +114272,15 @@ function requireFetch() {
113105
114272
  }
113106
114273
  const headersList = new HeadersList();
113107
114274
  for (let i = 0; i < rawHeaders.length; i += 2) {
113108
- headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i]), rawHeaders[i + 1].toString("latin1"), true);
114275
+ const nameStr = bufferToLowerCasedHeaderName(rawHeaders[i]);
114276
+ const value = rawHeaders[i + 1];
114277
+ if (Array.isArray(value) && !Buffer.isBuffer(rawHeaders[i + 1])) {
114278
+ for (const val of value) {
114279
+ headersList.append(nameStr, val.toString("latin1"), true);
114280
+ }
114281
+ } else {
114282
+ headersList.append(nameStr, value.toString("latin1"), true);
114283
+ }
113109
114284
  }
113110
114285
  resolve2({
113111
114286
  status,
@@ -113132,7 +114307,7 @@ var hasRequiredUtil$3;
113132
114307
  function requireUtil$3() {
113133
114308
  if (hasRequiredUtil$3) return util$3;
113134
114309
  hasRequiredUtil$3 = 1;
113135
- const assert2 = require$$0$2;
114310
+ const assert2 = require$$0$3;
113136
114311
  const { URLSerializer } = requireDataUrl();
113137
114312
  const { isValidHeaderName } = requireUtil$4();
113138
114313
  function urlEquals(A2, B2, excludeFragment = false) {
@@ -113163,7 +114338,7 @@ function requireCache() {
113163
114338
  var _relevantRequestResponseList, _Cache_instances, batchCacheOperations_fn, queryCache_fn, requestMatchesCachedItem_fn, internalMatchAll_fn;
113164
114339
  if (hasRequiredCache) return cache;
113165
114340
  hasRequiredCache = 1;
113166
- const assert2 = require$$0$2;
114341
+ const assert2 = require$$0$3;
113167
114342
  const { kConstruct } = requireSymbols();
113168
114343
  const { urlEquals, getFieldValues } = requireUtil$3();
113169
114344
  const { kEnumerableProperty, isDisturbed } = requireUtil$5();
@@ -114015,7 +115190,7 @@ function requireParse$1() {
114015
115190
  const { collectASequenceOfCodePointsFast } = requireInfra();
114016
115191
  const { maxNameValuePairSize, maxAttributeValueSize } = requireConstants$2();
114017
115192
  const { isCTLExcludingHtab } = requireUtil$2();
114018
- const assert2 = require$$0$2;
115193
+ const assert2 = require$$0$3;
114019
115194
  const { unescape: qsUnescape } = require$$5$1;
114020
115195
  function parseSetCookie(header) {
114021
115196
  if (isCTLExcludingHtab(header)) {
@@ -114625,7 +115800,7 @@ function requireUtil$1() {
114625
115800
  if (hasRequiredUtil$1) return util$1;
114626
115801
  hasRequiredUtil$1 = 1;
114627
115802
  const { states, opcodes } = requireConstants$1();
114628
- const { isUtf8 } = require$$0$6;
115803
+ const { isUtf8 } = require$$0$7;
114629
115804
  const { removeHTTPWhitespace } = requireDataUrl();
114630
115805
  const { collectASequenceOfCodePointsFast } = requireInfra();
114631
115806
  function isConnecting(readyState) {
@@ -114717,13 +115892,17 @@ function requireUtil$1() {
114717
115892
  return extensionList;
114718
115893
  }
114719
115894
  function isValidClientWindowBits(value) {
115895
+ if (value.length === 0) {
115896
+ return false;
115897
+ }
114720
115898
  for (let i = 0; i < value.length; i++) {
114721
115899
  const byte = value.charCodeAt(i);
114722
115900
  if (byte < 48 || byte > 57) {
114723
115901
  return false;
114724
115902
  }
114725
115903
  }
114726
- return true;
115904
+ const num = Number.parseInt(value, 10);
115905
+ return num >= 8 && num <= 15;
114727
115906
  }
114728
115907
  function getURLRecord(url2, baseURL) {
114729
115908
  let urlRecord;
@@ -114910,7 +116089,7 @@ function requireConnection() {
114910
116089
  const { Headers: Headers2, getHeadersList } = requireHeaders();
114911
116090
  const { getDecodeSplit } = requireUtil$4();
114912
116091
  const { WebsocketFrameSend } = requireFrame();
114913
- const assert2 = require$$0$2;
116092
+ const assert2 = require$$0$3;
114914
116093
  const { runtimeFeatures: runtimeFeatures2 } = requireRuntimeFeatures();
114915
116094
  const crypto$1 = runtimeFeatures2.has("crypto") ? crypto : null;
114916
116095
  let warningEmitted = false;
@@ -115059,23 +116238,36 @@ function requireConnection() {
115059
116238
  var permessageDeflate;
115060
116239
  var hasRequiredPermessageDeflate;
115061
116240
  function requirePermessageDeflate() {
115062
- var _inflate, _options2;
116241
+ var _inflate, _options2, _aborted, _currentCallback;
115063
116242
  if (hasRequiredPermessageDeflate) return permessageDeflate;
115064
116243
  hasRequiredPermessageDeflate = 1;
115065
116244
  const { createInflateRaw, Z_DEFAULT_WINDOWBITS } = require$$3$1;
115066
116245
  const { isValidClientWindowBits } = requireUtil$1();
116246
+ const { MessageSizeExceededError } = requireErrors();
115067
116247
  const tail = Buffer.from([0, 0, 255, 255]);
115068
116248
  const kBuffer = Symbol("kBuffer");
115069
116249
  const kLength = Symbol("kLength");
116250
+ const kDefaultMaxDecompressedSize = 4 * 1024 * 1024;
115070
116251
  class PerMessageDeflate {
116252
+ /**
116253
+ * @param {Map<string, string>} extensions
116254
+ */
115071
116255
  constructor(extensions2) {
115072
116256
  /** @type {import('node:zlib').InflateRaw} */
115073
116257
  __privateAdd(this, _inflate);
115074
116258
  __privateAdd(this, _options2, {});
116259
+ /** @type {boolean} */
116260
+ __privateAdd(this, _aborted, false);
116261
+ /** @type {Function|null} */
116262
+ __privateAdd(this, _currentCallback, null);
115075
116263
  __privateGet(this, _options2).serverNoContextTakeover = extensions2.has("server_no_context_takeover");
115076
116264
  __privateGet(this, _options2).serverMaxWindowBits = extensions2.get("server_max_window_bits");
115077
116265
  }
115078
116266
  decompress(chunk, fin, callback) {
116267
+ if (__privateGet(this, _aborted)) {
116268
+ callback(new MessageSizeExceededError());
116269
+ return;
116270
+ }
115079
116271
  if (!__privateGet(this, _inflate)) {
115080
116272
  let windowBits = Z_DEFAULT_WINDOWBITS;
115081
116273
  if (__privateGet(this, _options2).serverMaxWindowBits) {
@@ -115085,32 +116277,59 @@ function requirePermessageDeflate() {
115085
116277
  }
115086
116278
  windowBits = Number.parseInt(__privateGet(this, _options2).serverMaxWindowBits);
115087
116279
  }
115088
- __privateSet(this, _inflate, createInflateRaw({ windowBits }));
116280
+ try {
116281
+ __privateSet(this, _inflate, createInflateRaw({ windowBits }));
116282
+ } catch (err) {
116283
+ callback(err);
116284
+ return;
116285
+ }
115089
116286
  __privateGet(this, _inflate)[kBuffer] = [];
115090
116287
  __privateGet(this, _inflate)[kLength] = 0;
115091
116288
  __privateGet(this, _inflate).on("data", (data) => {
115092
- __privateGet(this, _inflate)[kBuffer].push(data);
116289
+ if (__privateGet(this, _aborted)) {
116290
+ return;
116291
+ }
115093
116292
  __privateGet(this, _inflate)[kLength] += data.length;
116293
+ if (__privateGet(this, _inflate)[kLength] > kDefaultMaxDecompressedSize) {
116294
+ __privateSet(this, _aborted, true);
116295
+ __privateGet(this, _inflate).removeAllListeners();
116296
+ __privateGet(this, _inflate).destroy();
116297
+ __privateSet(this, _inflate, null);
116298
+ if (__privateGet(this, _currentCallback)) {
116299
+ const cb = __privateGet(this, _currentCallback);
116300
+ __privateSet(this, _currentCallback, null);
116301
+ cb(new MessageSizeExceededError());
116302
+ }
116303
+ return;
116304
+ }
116305
+ __privateGet(this, _inflate)[kBuffer].push(data);
115094
116306
  });
115095
116307
  __privateGet(this, _inflate).on("error", (err) => {
115096
116308
  __privateSet(this, _inflate, null);
115097
116309
  callback(err);
115098
116310
  });
115099
116311
  }
116312
+ __privateSet(this, _currentCallback, callback);
115100
116313
  __privateGet(this, _inflate).write(chunk);
115101
116314
  if (fin) {
115102
116315
  __privateGet(this, _inflate).write(tail);
115103
116316
  }
115104
116317
  __privateGet(this, _inflate).flush(() => {
116318
+ if (__privateGet(this, _aborted) || !__privateGet(this, _inflate)) {
116319
+ return;
116320
+ }
115105
116321
  const full = Buffer.concat(__privateGet(this, _inflate)[kBuffer], __privateGet(this, _inflate)[kLength]);
115106
116322
  __privateGet(this, _inflate)[kBuffer].length = 0;
115107
116323
  __privateGet(this, _inflate)[kLength] = 0;
116324
+ __privateSet(this, _currentCallback, null);
115108
116325
  callback(null, full);
115109
116326
  });
115110
116327
  }
115111
116328
  }
115112
116329
  _inflate = new WeakMap();
115113
116330
  _options2 = new WeakMap();
116331
+ _aborted = new WeakMap();
116332
+ _currentCallback = new WeakMap();
115114
116333
  permessageDeflate = { PerMessageDeflate };
115115
116334
  return permessageDeflate;
115116
116335
  }
@@ -115120,8 +116339,8 @@ function requireReceiver() {
115120
116339
  var _buffers, _fragmentsBytes, _byteOffset, _loop, _state, _info, _fragments, _extensions, _handler;
115121
116340
  if (hasRequiredReceiver) return receiver;
115122
116341
  hasRequiredReceiver = 1;
115123
- const { Writable } = require$$0$3;
115124
- const assert2 = require$$0$2;
116342
+ const { Writable } = require$$0$4;
116343
+ const assert2 = require$$0$3;
115125
116344
  const { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = requireConstants$1();
115126
116345
  const {
115127
116346
  isValidStatusCode,
@@ -115135,7 +116354,12 @@ function requireReceiver() {
115135
116354
  const { failWebsocketConnection } = requireConnection();
115136
116355
  const { WebsocketFrameSend } = requireFrame();
115137
116356
  const { PerMessageDeflate } = requirePermessageDeflate();
116357
+ const { MessageSizeExceededError } = requireErrors();
115138
116358
  class ByteParser extends Writable {
116359
+ /**
116360
+ * @param {import('./websocket').Handler} handler
116361
+ * @param {Map<string, string>|null} extensions
116362
+ */
115139
116363
  constructor(handler, extensions2) {
115140
116364
  super();
115141
116365
  __privateAdd(this, _buffers, []);
@@ -115250,12 +116474,12 @@ function requireReceiver() {
115250
116474
  }
115251
116475
  const buffer = this.consume(8);
115252
116476
  const upper = buffer.readUInt32BE(0);
115253
- if (upper > 2 ** 31 - 1) {
116477
+ const lower2 = buffer.readUInt32BE(4);
116478
+ if (upper !== 0 || lower2 > 2 ** 31 - 1) {
115254
116479
  failWebsocketConnection(__privateGet(this, _handler), 1009, "Received payload length > 2^31 bytes.");
115255
116480
  return;
115256
116481
  }
115257
- const lower2 = buffer.readUInt32BE(4);
115258
- __privateGet(this, _info).payloadLength = (upper << 8) + lower2;
116482
+ __privateGet(this, _info).payloadLength = lower2;
115259
116483
  __privateSet(this, _state, parserStates.READ_DATA);
115260
116484
  } else if (__privateGet(this, _state) === parserStates.READ_DATA) {
115261
116485
  if (__privateGet(this, _byteOffset) < __privateGet(this, _info).payloadLength) {
@@ -115275,7 +116499,8 @@ function requireReceiver() {
115275
116499
  } else {
115276
116500
  __privateGet(this, _extensions).get("permessage-deflate").decompress(body2, __privateGet(this, _info).fin, (error2, data) => {
115277
116501
  if (error2) {
115278
- failWebsocketConnection(__privateGet(this, _handler), 1007, error2.message);
116502
+ const code2 = error2 instanceof MessageSizeExceededError ? 1009 : 1007;
116503
+ failWebsocketConnection(__privateGet(this, _handler), code2, error2.message);
115279
116504
  return;
115280
116505
  }
115281
116506
  this.writeFragments(data);
@@ -115559,6 +116784,16 @@ function requireWebsocket() {
115559
116784
  const { SendQueue } = requireSender();
115560
116785
  const { WebsocketFrameSend } = requireFrame();
115561
116786
  const { channels } = requireDiagnostics();
116787
+ function getSocketAddress(socket) {
116788
+ var _a3, _b2;
116789
+ if (typeof (socket == null ? void 0 : socket.address) === "function") {
116790
+ return socket.address();
116791
+ }
116792
+ if (typeof ((_b2 = (_a3 = socket == null ? void 0 : socket.session) == null ? void 0 : _a3.socket) == null ? void 0 : _b2.address) === "function") {
116793
+ return socket.session.socket.address();
116794
+ }
116795
+ return null;
116796
+ }
115562
116797
  const _WebSocket = class _WebSocket extends EventTarget {
115563
116798
  /**
115564
116799
  * @param {string} url
@@ -115860,7 +117095,7 @@ function requireWebsocket() {
115860
117095
  if (channels.open.hasSubscribers) {
115861
117096
  const headers2 = response2.headersList.entries;
115862
117097
  channels.open.publish({
115863
- address: response2.socket.address(),
117098
+ address: getSocketAddress(response2.socket),
115864
117099
  protocol: __privateGet(this, _protocol),
115865
117100
  extensions: __privateGet(this, _extensions),
115866
117101
  websocket: this,
@@ -116297,12 +117532,6 @@ function requireWebsocketstream() {
116297
117532
  start: (controller) => {
116298
117533
  __privateSet(this, _readableStreamController, controller);
116299
117534
  },
116300
- pull(controller) {
116301
- let chunk;
116302
- while (controller.desiredSize > 0 && (chunk = response2.socket.read()) !== null) {
116303
- controller.enqueue(chunk);
116304
- }
116305
- },
116306
117535
  cancel: (reason) => __privateMethod(this, _WebSocketStream_instances, cancel_fn).call(this, reason)
116307
117536
  });
116308
117537
  const writable = new WritableStream({
@@ -116329,7 +117558,7 @@ function requireWebsocketstream() {
116329
117558
  try {
116330
117559
  chunk = utf8Decode(data);
116331
117560
  } catch {
116332
- failWebsocketConnection(__privateGet(this, _handler), "Received invalid UTF-8 in text frame.");
117561
+ failWebsocketConnection(__privateGet(this, _handler), 1007, "Received invalid UTF-8 in text frame.");
116333
117562
  return;
116334
117563
  }
116335
117564
  } else if (type === opcodes.BINARY) {
@@ -116453,7 +117682,7 @@ var hasRequiredEventsourceStream;
116453
117682
  function requireEventsourceStream() {
116454
117683
  if (hasRequiredEventsourceStream) return eventsourceStream;
116455
117684
  hasRequiredEventsourceStream = 1;
116456
- const { Transform: Transform2 } = require$$0$3;
117685
+ const { Transform: Transform2 } = require$$0$4;
116457
117686
  const { isASCIINumber, isValidLastEventId } = requireUtil();
116458
117687
  const BOM = [239, 187, 191];
116459
117688
  const LF = 10;
@@ -116685,7 +117914,7 @@ function requireEventsource() {
116685
117914
  var _events, _url2, _withCredentials, _readyState, _request, _controller, _dispatcher2, _state, _EventSource_instances, connect_fn, reconnect_fn;
116686
117915
  if (hasRequiredEventsource) return eventsource;
116687
117916
  hasRequiredEventsource = 1;
116688
- const { pipeline } = require$$0$3;
117917
+ const { pipeline } = require$$0$4;
116689
117918
  const { fetching } = requireFetch();
116690
117919
  const { makeRequest: makeRequest2 } = requireRequest();
116691
117920
  const { webidl } = requireWebidl();
@@ -117022,6 +118251,7 @@ function requireUndici() {
117022
118251
  const RoundRobinPool = requireRoundRobinPool();
117023
118252
  const Agent = requireAgent();
117024
118253
  const ProxyAgent = requireProxyAgent();
118254
+ const Socks5ProxyAgent = requireSocks5ProxyAgent();
117025
118255
  const EnvHttpProxyAgent = requireEnvHttpProxyAgent();
117026
118256
  const RetryAgent = requireRetryAgent();
117027
118257
  const H2CClient = requireH2cClient();
@@ -117048,6 +118278,7 @@ function requireUndici() {
117048
118278
  module.exports.RoundRobinPool = RoundRobinPool;
117049
118279
  module.exports.Agent = Agent;
117050
118280
  module.exports.ProxyAgent = ProxyAgent;
118281
+ module.exports.Socks5ProxyAgent = Socks5ProxyAgent;
117051
118282
  module.exports.EnvHttpProxyAgent = EnvHttpProxyAgent;
117052
118283
  module.exports.RetryAgent = RetryAgent;
117053
118284
  module.exports.H2CClient = H2CClient;
@@ -118814,7 +120045,7 @@ function createLocalWorld(args) {
118814
120045
  const basedir = mergedConfig.dataDir;
118815
120046
  const hooksDir = path$3.join(basedir, "hooks");
118816
120047
  const taggedHookFiles = await listTaggedFiles(hooksDir, tag);
118817
- const { HookSchema: HookSchema2 } = await import("./index-C6jZ_bJo.js");
120048
+ const { HookSchema: HookSchema2 } = await import("./index-BUU6Hdm_.js");
118818
120049
  await Promise.all(taggedHookFiles.map(async (hookFile) => {
118819
120050
  const hook = await readJSON(path$3.join(hooksDir, hookFile), HookSchema2);
118820
120051
  if (hook == null ? void 0 : hook.token) {
@@ -118966,8 +120197,8 @@ function requireGetVercelOidcToken() {
118966
120197
  }
118967
120198
  try {
118968
120199
  const [{ getTokenPayload, isExpired }, { refreshToken }] = await Promise.all([
118969
- await import("./token-util-CdvUIKt6.js").then((n) => n.t),
118970
- await import("./token-Bjcyh98U.js").then((n) => n.t)
120200
+ await import("./token-util-Bc0jltWL.js").then((n) => n.t),
120201
+ await import("./token-BaJALexf.js").then((n) => n.t)
118971
120202
  ]);
118972
120203
  if (!token || isExpired(getTokenPayload(token), options == null ? void 0 : options.expirationBufferMs)) {
118973
120204
  await refreshToken(options);
@@ -119531,7 +120762,10 @@ function requireDist() {
119531
120762
  }
119532
120763
  var distExports = requireDist();
119533
120764
  let _dispatcher;
119534
- function getDispatcher() {
120765
+ function getDispatcher(config2) {
120766
+ return (config2 == null ? void 0 : config2.dispatcher) ?? getDefaultDispatcher();
120767
+ }
120768
+ function getDefaultDispatcher() {
119535
120769
  if (!_dispatcher) {
119536
120770
  _dispatcher = new undiciExports.RetryAgent(new undiciExports.Agent({
119537
120771
  connections: 8,
@@ -119592,7 +120826,7 @@ async function fetchRunKey(deploymentId, projectId, runId, options) {
119592
120826
  Authorization: `Bearer ${token}`
119593
120827
  },
119594
120828
  // @ts-expect-error -- undici dispatcher is accepted by Node.js fetch but not in @types/node's RequestInit
119595
- dispatcher: getDispatcher()
120829
+ dispatcher: getDispatcher({ dispatcher: options == null ? void 0 : options.dispatcher })
119596
120830
  });
119597
120831
  if (!response2.ok) {
119598
120832
  let body2;
@@ -119613,7 +120847,7 @@ async function fetchRunKey(deploymentId, projectId, runId, options) {
119613
120847
  }
119614
120848
  return Buffer.from(result.data.key, "base64");
119615
120849
  }
119616
- function createGetEncryptionKeyForRun(projectId, teamId, token) {
120850
+ function createGetEncryptionKeyForRun(projectId, teamId, token, dispatcher2) {
119617
120851
  if (!projectId)
119618
120852
  return void 0;
119619
120853
  const isServerlessRuntime = process.env.VERCEL === "1";
@@ -119640,7 +120874,11 @@ function createGetEncryptionKeyForRun(projectId, teamId, token) {
119640
120874
  }
119641
120875
  if (!deploymentId)
119642
120876
  return void 0;
119643
- return fetchRunKey(deploymentId, projectId, runId, { token, teamId });
120877
+ return fetchRunKey(deploymentId, projectId, runId, {
120878
+ token,
120879
+ teamId,
120880
+ dispatcher: dispatcher2
120881
+ });
119644
120882
  };
119645
120883
  }
119646
120884
  let otelApiPromise = null;
@@ -122616,7 +123854,13 @@ function parseBinaryHeaders(headers2) {
122616
123854
  `Missing required CloudEvent headers: ${missingFields.join(", ")}`
122617
123855
  );
122618
123856
  }
122619
- const region = getHeader(headers2, "ce-vqsregion") ?? void 0;
123857
+ const rawRegion = getHeader(headers2, "ce-vqsregion") ?? void 0;
123858
+ if (rawRegion !== void 0 && !/^[a-z]{2,5}[0-9]{1,2}$/.test(rawRegion)) {
123859
+ throw new Error(
123860
+ `Invalid ce-vqsregion header: ${JSON.stringify(rawRegion)}. Region must match /^[a-z]{2,5}[0-9]{1,2}$/ (e.g. "iad1", "lhr1").`
123861
+ );
123862
+ }
123863
+ const region = rawRegion;
122620
123864
  const base = {
122621
123865
  queueName,
122622
123866
  consumerGroup,
@@ -123465,6 +124709,14 @@ function parseQueueHeaders(headers2) {
123465
124709
  receiptHandle
123466
124710
  };
123467
124711
  }
124712
+ var REGION_PATTERN = /^[a-z]{2,5}[0-9]{1,2}$/;
124713
+ function validateRegion(region) {
124714
+ if (!REGION_PATTERN.test(region)) {
124715
+ throw new Error(
124716
+ `Invalid region code: ${JSON.stringify(region)}. Region must match the pattern /^[a-z]{2,5}[0-9]{1,2}$/ (e.g. "iad1", "lhr1").`
124717
+ );
124718
+ }
124719
+ }
123468
124720
  var DEFAULT_BASE_URL_RESOLVER = (region) => new URL(`https://${region}.vercel-queue.com`);
123469
124721
  function resolveBaseUrl(region, resolver2) {
123470
124722
  return (resolver2 ?? DEFAULT_BASE_URL_RESOLVER)(region);
@@ -123482,6 +124734,7 @@ var ApiClient = class _ApiClient {
123482
124734
  __publicField(this, "region");
123483
124735
  __publicField(this, "baseUrlResolver");
123484
124736
  __publicField(this, "dispatcher");
124737
+ validateRegion(options.region);
123485
124738
  this.region = options.region;
123486
124739
  this.baseUrlResolver = options.resolveBaseUrl;
123487
124740
  this.baseUrl = resolveBaseUrl(this.region, this.baseUrlResolver);
@@ -123596,7 +124849,7 @@ Cause: ${cause}`
123596
124849
  }
123597
124850
  console.debug("[VQS Debug] Request:", JSON.stringify(logData, null, 2));
123598
124851
  }
123599
- init2.headers.set("User-Agent", `@vercel/queue/${"0.1.7"}`);
124852
+ init2.headers.set("User-Agent", `@vercel/queue/${"0.2.1"}`);
123600
124853
  init2.headers.set("Vqs-Client-Ts", (/* @__PURE__ */ new Date()).toISOString());
123601
124854
  const fetchInit = this.dispatcher ? { ...init2, dispatcher: this.dispatcher } : init2;
123602
124855
  const response2 = await fetch(url2, fetchInit);
@@ -124138,7 +125391,7 @@ var QueueClient = class {
124138
125391
  setApi(this, new ApiClient({ ...options, region }));
124139
125392
  }
124140
125393
  };
124141
- const version = "5.0.0-beta.10";
125394
+ const version = "5.0.0-beta.11";
124142
125395
  const HTTP_DEBUG_ENABLED = typeof process !== "undefined" && typeof process.env.DEBUG === "string" && (process.env.DEBUG.includes("workflow:") || process.env.DEBUG === "*");
124143
125396
  function httpLog(method, endpoint, status, ms2) {
124144
125397
  if (HTTP_DEBUG_ENABLED) {
@@ -124259,7 +125512,7 @@ async function makeRequest({ endpoint, options = {}, config: config2 = {}, schem
124259
125512
  let response2;
124260
125513
  try {
124261
125514
  response2 = await fetch(request2, {
124262
- dispatcher: getDispatcher()
125515
+ dispatcher: getDispatcher(config2)
124263
125516
  });
124264
125517
  } catch (error2) {
124265
125518
  const elapsed = Date.now() - fetchStart;
@@ -124495,7 +125748,7 @@ function createQueue$1(config2) {
124495
125748
  const dualTransport = new DualTransport();
124496
125749
  const clientOptions = {
124497
125750
  region,
124498
- dispatcher: getDispatcher(),
125751
+ dispatcher: getDispatcher(config2),
124499
125752
  transport: dualTransport,
124500
125753
  ...usingProxy && {
124501
125754
  // final path will be /queues-proxy/api/v3/topic/...
@@ -124611,7 +125864,7 @@ function createResolveLatestDeploymentId(config2) {
124611
125864
  Authorization: `Bearer ${token}`
124612
125865
  },
124613
125866
  // @ts-expect-error -- undici dispatcher is accepted by Node.js fetch but not in @types/node's RequestInit
124614
- dispatcher: getDispatcher()
125867
+ dispatcher: getDispatcher(config2)
124615
125868
  });
124616
125869
  if (!response2.ok) {
124617
125870
  let body2;
@@ -124662,7 +125915,7 @@ async function resolveRefDescriptor(descriptor, runId, config2) {
124662
125915
  const response2 = await fetch(url2, {
124663
125916
  method: "GET",
124664
125917
  headers: headers2,
124665
- dispatcher: getDispatcher()
125918
+ dispatcher: getDispatcher(config2)
124666
125919
  });
124667
125920
  span == null ? void 0 : span.setAttributes({
124668
125921
  ...HttpResponseStatusCode(response2.status)
@@ -125478,7 +126731,7 @@ function createVercelWorld(config2) {
125478
126731
  ...createQueue$1(config2),
125479
126732
  ...createStorage(config2),
125480
126733
  ...instrumentObject("world.streams", createStreamer(config2)),
125481
- getEncryptionKeyForRun: createGetEncryptionKeyForRun(projectId, (_b2 = config2 == null ? void 0 : config2.projectConfig) == null ? void 0 : _b2.teamId, config2 == null ? void 0 : config2.token),
126734
+ getEncryptionKeyForRun: createGetEncryptionKeyForRun(projectId, (_b2 = config2 == null ? void 0 : config2.projectConfig) == null ? void 0 : _b2.teamId, config2 == null ? void 0 : config2.token, config2 == null ? void 0 : config2.dispatcher),
125482
126735
  resolveLatestDeploymentId: createResolveLatestDeploymentId(config2)
125483
126736
  };
125484
126737
  }
@@ -152132,7 +153385,7 @@ const route4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
152132
153385
  __proto__: null,
152133
153386
  loader
152134
153387
  }, Symbol.toStringTag, { value: "Module" }));
152135
- const serverManifest = { "entry": { "module": "/assets/entry.client-DOJDY_4b.js", "imports": ["/assets/index-BXZSIDEp.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": true, "module": "/assets/root-CtIBMIdD.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/mermaid-3ZIDBTTL-Cg06pRM9.js"], "css": ["/assets/root-D_G0HW97.css", "/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/home": { "id": "routes/home", "parentId": "root", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": false, "module": "/assets/home-D68s49Hb.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/workflow-graph-viewer-D4OsX_TE.js", "/assets/mermaid-3ZIDBTTL-Cg06pRM9.js", "/assets/index-B6-SzLmT.js"], "css": ["/assets/workflow-graph-viewer-DnlNuQQH.css", "/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/run-detail": { "id": "routes/run-detail", "parentId": "root", "path": "run/:runId", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": false, "module": "/assets/run-detail-B1sCKjMc.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/workflow-graph-viewer-D4OsX_TE.js", "/assets/mermaid-3ZIDBTTL-Cg06pRM9.js", "/assets/encryption-g14N5vQl.js", "/assets/index-B6-SzLmT.js"], "css": ["/assets/workflow-graph-viewer-DnlNuQQH.css", "/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/api.rpc": { "id": "routes/api.rpc", "parentId": "root", "path": "api/rpc", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": false, "hasErrorBoundary": false, "module": "/assets/api.rpc-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/api.stream.$streamId": { "id": "routes/api.stream.$streamId", "parentId": "root", "path": "api/stream/:streamId", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": false, "hasErrorBoundary": false, "module": "/assets/api.stream._streamId-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 } }, "url": "/assets/manifest-f3e412ee.js", "version": "f3e412ee", "sri": void 0 };
153388
+ const serverManifest = { "entry": { "module": "/assets/entry.client-DOJDY_4b.js", "imports": ["/assets/index-BXZSIDEp.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": true, "module": "/assets/root-8wYQKqnE.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/mermaid-3ZIDBTTL-CeSti4VQ.js"], "css": ["/assets/root-DvB36HGI.css", "/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/home": { "id": "routes/home", "parentId": "root", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": false, "module": "/assets/home-BQRPxkXT.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/workflow-graph-viewer-CxZS9r2o.js", "/assets/mermaid-3ZIDBTTL-CeSti4VQ.js", "/assets/index-B6-SzLmT.js"], "css": ["/assets/workflow-graph-viewer-DnlNuQQH.css", "/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/run-detail": { "id": "routes/run-detail", "parentId": "root", "path": "run/:runId", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": false, "module": "/assets/run-detail-Dn4QeKHW.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/workflow-graph-viewer-CxZS9r2o.js", "/assets/mermaid-3ZIDBTTL-CeSti4VQ.js", "/assets/encryption-g14N5vQl.js", "/assets/index-B6-SzLmT.js"], "css": ["/assets/workflow-graph-viewer-DnlNuQQH.css", "/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/api.rpc": { "id": "routes/api.rpc", "parentId": "root", "path": "api/rpc", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": false, "hasErrorBoundary": false, "module": "/assets/api.rpc-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/api.stream.$streamId": { "id": "routes/api.stream.$streamId", "parentId": "root", "path": "api/stream/:streamId", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": false, "hasErrorBoundary": false, "module": "/assets/api.stream._streamId-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 } }, "url": "/assets/manifest-b8838010.js", "version": "b8838010", "sri": void 0 };
152136
153389
  const assetsBuildDirectory = "build/client";
152137
153390
  const basename = "/";
152138
153391
  const future = { "unstable_optimizeDeps": false, "unstable_subResourceIntegrity": false, "unstable_trailingSlashAwareDataRequests": false, "unstable_previewServerPrerendering": false, "v8_middleware": false, "v8_splitRouteModules": false, "v8_viteEnvironmentApi": false };