dsh-coding-subscription-oauth 0.6.2 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/bin.js CHANGED
@@ -38,9 +38,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
38
38
  mod
39
39
  ));
40
40
 
41
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/symbols.js
41
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/symbols.js
42
42
  var require_symbols = __commonJS({
43
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/symbols.js"(exports, module) {
43
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/symbols.js"(exports, module) {
44
44
  "use strict";
45
45
  module.exports = {
46
46
  kClose: /* @__PURE__ */ Symbol("close"),
@@ -118,9 +118,9 @@ var require_symbols = __commonJS({
118
118
  }
119
119
  });
120
120
 
121
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/timers.js
121
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/timers.js
122
122
  var require_timers = __commonJS({
123
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/timers.js"(exports, module) {
123
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/timers.js"(exports, module) {
124
124
  "use strict";
125
125
  var fastNow = 0;
126
126
  var RESOLUTION_MS = 1e3;
@@ -347,9 +347,9 @@ var require_timers = __commonJS({
347
347
  }
348
348
  });
349
349
 
350
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/errors.js
350
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/errors.js
351
351
  var require_errors = __commonJS({
352
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/errors.js"(exports, module) {
352
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/errors.js"(exports, module) {
353
353
  "use strict";
354
354
  var kUndiciError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR");
355
355
  var UndiciError = class extends Error {
@@ -756,9 +756,9 @@ var require_errors = __commonJS({
756
756
  }
757
757
  });
758
758
 
759
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/constants.js
759
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/constants.js
760
760
  var require_constants = __commonJS({
761
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/constants.js"(exports, module) {
761
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/constants.js"(exports, module) {
762
762
  "use strict";
763
763
  var wellknownHeaderNames = (
764
764
  /** @type {const} */
@@ -884,9 +884,9 @@ var require_constants = __commonJS({
884
884
  }
885
885
  });
886
886
 
887
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/tree.js
887
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/tree.js
888
888
  var require_tree = __commonJS({
889
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/tree.js"(exports, module) {
889
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/tree.js"(exports, module) {
890
890
  "use strict";
891
891
  var {
892
892
  wellknownHeaderNames,
@@ -1026,9 +1026,9 @@ var require_tree = __commonJS({
1026
1026
  }
1027
1027
  });
1028
1028
 
1029
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/util.js
1029
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/util.js
1030
1030
  var require_util = __commonJS({
1031
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/util.js"(exports, module) {
1031
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/util.js"(exports, module) {
1032
1032
  "use strict";
1033
1033
  var assert = __require("node:assert");
1034
1034
  var { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols();
@@ -1847,9 +1847,9 @@ var require_util = __commonJS({
1847
1847
  }
1848
1848
  });
1849
1849
 
1850
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/stats.js
1850
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/stats.js
1851
1851
  var require_stats = __commonJS({
1852
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/stats.js"(exports, module) {
1852
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/stats.js"(exports, module) {
1853
1853
  "use strict";
1854
1854
  var {
1855
1855
  kConnected,
@@ -1881,9 +1881,9 @@ var require_stats = __commonJS({
1881
1881
  }
1882
1882
  });
1883
1883
 
1884
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/diagnostics.js
1884
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/diagnostics.js
1885
1885
  var require_diagnostics = __commonJS({
1886
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/diagnostics.js"(exports, module) {
1886
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/diagnostics.js"(exports, module) {
1887
1887
  "use strict";
1888
1888
  var diagnosticsChannel = __require("node:diagnostics_channel");
1889
1889
  var util = __require("node:util");
@@ -2098,9 +2098,9 @@ var require_diagnostics = __commonJS({
2098
2098
  }
2099
2099
  });
2100
2100
 
2101
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/request.js
2101
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/request.js
2102
2102
  var require_request = __commonJS({
2103
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/request.js"(exports, module) {
2103
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/request.js"(exports, module) {
2104
2104
  "use strict";
2105
2105
  var {
2106
2106
  InvalidArgumentError,
@@ -2126,6 +2126,18 @@ var require_request = __commonJS({
2126
2126
  var { channels } = require_diagnostics();
2127
2127
  var { headerNameLowerCasedRecord } = require_constants();
2128
2128
  var invalidPathRegex = /[^\u0021-\u00ff]/;
2129
+ function isValidContentLengthHeaderValue(val) {
2130
+ if (typeof val !== "string" || val.length === 0) {
2131
+ return false;
2132
+ }
2133
+ for (let i = 0; i < val.length; i++) {
2134
+ const charCode = val.charCodeAt(i);
2135
+ if (charCode < 48 || charCode > 57) {
2136
+ return false;
2137
+ }
2138
+ }
2139
+ return true;
2140
+ }
2129
2141
  var kHandler = /* @__PURE__ */ Symbol("handler");
2130
2142
  var Request = class {
2131
2143
  constructor(origin, {
@@ -2400,7 +2412,11 @@ var require_request = __commonJS({
2400
2412
  } else if (typeof val[i] === "object") {
2401
2413
  throw new InvalidArgumentError(`invalid ${key} header`);
2402
2414
  } else {
2403
- arr.push(`${val[i]}`);
2415
+ const str = `${val[i]}`;
2416
+ if (!isValidHeaderValue(str)) {
2417
+ throw new InvalidArgumentError(`invalid ${key} header`);
2418
+ }
2419
+ arr.push(str);
2404
2420
  }
2405
2421
  }
2406
2422
  val = arr;
@@ -2412,6 +2428,9 @@ var require_request = __commonJS({
2412
2428
  val = "";
2413
2429
  } else {
2414
2430
  val = `${val}`;
2431
+ if (!isValidHeaderValue(val)) {
2432
+ throw new InvalidArgumentError(`invalid ${key} header`);
2433
+ }
2415
2434
  }
2416
2435
  if (headerName === "host") {
2417
2436
  if (request.host !== null) {
@@ -2425,10 +2444,10 @@ var require_request = __commonJS({
2425
2444
  if (request.contentLength !== null) {
2426
2445
  throw new InvalidArgumentError("duplicate content-length header");
2427
2446
  }
2428
- request.contentLength = parseInt(val, 10);
2429
- if (!Number.isFinite(request.contentLength)) {
2447
+ if (!isValidContentLengthHeaderValue(val)) {
2430
2448
  throw new InvalidArgumentError("invalid content-length header");
2431
2449
  }
2450
+ request.contentLength = parseInt(val, 10);
2432
2451
  } else if (request.contentType === null && headerName === "content-type") {
2433
2452
  request.contentType = val;
2434
2453
  request.headers.push(key, val);
@@ -2458,9 +2477,9 @@ var require_request = __commonJS({
2458
2477
  }
2459
2478
  });
2460
2479
 
2461
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/wrap-handler.js
2480
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/wrap-handler.js
2462
2481
  var require_wrap_handler = __commonJS({
2463
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/wrap-handler.js"(exports, module) {
2482
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/wrap-handler.js"(exports, module) {
2464
2483
  "use strict";
2465
2484
  var { InvalidArgumentError } = require_errors();
2466
2485
  module.exports = class WrapHandler {
@@ -2541,9 +2560,9 @@ var require_wrap_handler = __commonJS({
2541
2560
  }
2542
2561
  });
2543
2562
 
2544
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/dispatcher.js
2563
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/dispatcher.js
2545
2564
  var require_dispatcher = __commonJS({
2546
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/dispatcher.js"(exports, module) {
2565
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/dispatcher.js"(exports, module) {
2547
2566
  "use strict";
2548
2567
  var EventEmitter = __require("node:events");
2549
2568
  var WrapHandler = require_wrap_handler();
@@ -2583,9 +2602,9 @@ var require_dispatcher = __commonJS({
2583
2602
  }
2584
2603
  });
2585
2604
 
2586
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/unwrap-handler.js
2605
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/unwrap-handler.js
2587
2606
  var require_unwrap_handler = __commonJS({
2588
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/unwrap-handler.js"(exports, module) {
2607
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/unwrap-handler.js"(exports, module) {
2589
2608
  "use strict";
2590
2609
  var { parseHeaders } = require_util();
2591
2610
  var { InvalidArgumentError } = require_errors();
@@ -2596,6 +2615,8 @@ var require_unwrap_handler = __commonJS({
2596
2615
  #aborted = false;
2597
2616
  #abort;
2598
2617
  [kResume] = null;
2618
+ rawHeaders = null;
2619
+ rawTrailers = null;
2599
2620
  constructor(abort) {
2600
2621
  this.#abort = abort;
2601
2622
  }
@@ -2642,10 +2663,12 @@ var require_unwrap_handler = __commonJS({
2642
2663
  return this.#handler.onResponseStarted?.();
2643
2664
  }
2644
2665
  onUpgrade(statusCode, rawHeaders, socket) {
2666
+ this.#controller.rawHeaders = rawHeaders;
2645
2667
  this.#handler.onRequestUpgrade?.(this.#controller, statusCode, parseHeaders(rawHeaders), socket);
2646
2668
  }
2647
2669
  onHeaders(statusCode, rawHeaders, resume, statusMessage) {
2648
2670
  this.#controller[kResume] = resume;
2671
+ this.#controller.rawHeaders = rawHeaders;
2649
2672
  this.#handler.onResponseStart?.(this.#controller, statusCode, parseHeaders(rawHeaders), statusMessage);
2650
2673
  return !this.#controller.paused;
2651
2674
  }
@@ -2654,6 +2677,7 @@ var require_unwrap_handler = __commonJS({
2654
2677
  return !this.#controller.paused;
2655
2678
  }
2656
2679
  onComplete(rawTrailers) {
2680
+ this.#controller.rawTrailers = rawTrailers;
2657
2681
  this.#handler.onResponseEnd?.(this.#controller, parseHeaders(rawTrailers));
2658
2682
  }
2659
2683
  onError(err) {
@@ -2666,9 +2690,9 @@ var require_unwrap_handler = __commonJS({
2666
2690
  }
2667
2691
  });
2668
2692
 
2669
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/dispatcher-base.js
2693
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/dispatcher-base.js
2670
2694
  var require_dispatcher_base = __commonJS({
2671
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports, module) {
2695
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports, module) {
2672
2696
  "use strict";
2673
2697
  var Dispatcher2 = require_dispatcher();
2674
2698
  var UnwrapHandler = require_unwrap_handler();
@@ -2680,6 +2704,7 @@ var require_dispatcher_base = __commonJS({
2680
2704
  var { kDestroy, kClose, kClosed, kDestroyed, kDispatch } = require_symbols();
2681
2705
  var kOnDestroyed = /* @__PURE__ */ Symbol("onDestroyed");
2682
2706
  var kOnClosed = /* @__PURE__ */ Symbol("onClosed");
2707
+ var kWebSocketOptions = /* @__PURE__ */ Symbol("webSocketOptions");
2683
2708
  var DispatcherBase = class extends Dispatcher2 {
2684
2709
  /** @type {boolean} */
2685
2710
  [kDestroyed] = false;
@@ -2689,6 +2714,23 @@ var require_dispatcher_base = __commonJS({
2689
2714
  [kClosed] = false;
2690
2715
  /** @type {Array<Function>|null} */
2691
2716
  [kOnClosed] = null;
2717
+ /**
2718
+ * @param {import('../../types/dispatcher').DispatcherOptions} [opts]
2719
+ */
2720
+ constructor(opts) {
2721
+ super();
2722
+ this[kWebSocketOptions] = opts?.webSocket ?? {};
2723
+ }
2724
+ /**
2725
+ * @returns {import('../../types/dispatcher').WebSocketOptions}
2726
+ */
2727
+ get webSocketOptions() {
2728
+ return {
2729
+ maxFragments: this[kWebSocketOptions].maxFragments ?? 131072,
2730
+ maxPayloadSize: this[kWebSocketOptions].maxPayloadSize ?? 128 * 1024 * 1024
2731
+ // 128 MB default
2732
+ };
2733
+ }
2692
2734
  /** @returns {boolean} */
2693
2735
  get destroyed() {
2694
2736
  return this[kDestroyed];
@@ -2800,9 +2842,9 @@ var require_dispatcher_base = __commonJS({
2800
2842
  }
2801
2843
  });
2802
2844
 
2803
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/connect.js
2845
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/connect.js
2804
2846
  var require_connect = __commonJS({
2805
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/connect.js"(exports, module) {
2847
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/connect.js"(exports, module) {
2806
2848
  "use strict";
2807
2849
  var net = __require("node:net");
2808
2850
  var assert = __require("node:assert");
@@ -2831,6 +2873,20 @@ var require_connect = __commonJS({
2831
2873
  if (this._maxCachedSessions === 0) {
2832
2874
  return;
2833
2875
  }
2876
+ if (this._sessionCache.has(sessionKey)) {
2877
+ this._sessionCache.delete(sessionKey);
2878
+ } else if (this._sessionCache.size >= this._maxCachedSessions) {
2879
+ for (const [key, ref] of this._sessionCache) {
2880
+ if (ref.deref() === void 0) {
2881
+ this._sessionCache.delete(key);
2882
+ return;
2883
+ }
2884
+ }
2885
+ const oldest = this._sessionCache.keys().next();
2886
+ if (!oldest.done) {
2887
+ this._sessionCache.delete(oldest.value);
2888
+ }
2889
+ }
2834
2890
  this._sessionCache.set(sessionKey, new WeakRef(session));
2835
2891
  this._sessionRegistry.register(session, sessionKey);
2836
2892
  }
@@ -2912,9 +2968,9 @@ var require_connect = __commonJS({
2912
2968
  }
2913
2969
  });
2914
2970
 
2915
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/llhttp/utils.js
2971
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/llhttp/utils.js
2916
2972
  var require_utils = __commonJS({
2917
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/llhttp/utils.js"(exports) {
2973
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/llhttp/utils.js"(exports) {
2918
2974
  "use strict";
2919
2975
  Object.defineProperty(exports, "__esModule", { value: true });
2920
2976
  exports.enumToMap = enumToMap;
@@ -2928,9 +2984,9 @@ var require_utils = __commonJS({
2928
2984
  }
2929
2985
  });
2930
2986
 
2931
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/llhttp/constants.js
2987
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/llhttp/constants.js
2932
2988
  var require_constants2 = __commonJS({
2933
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/llhttp/constants.js"(exports) {
2989
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/llhttp/constants.js"(exports) {
2934
2990
  "use strict";
2935
2991
  Object.defineProperty(exports, "__esModule", { value: true });
2936
2992
  exports.SPECIAL_HEADERS = exports.MINOR = exports.MAJOR = exports.HTAB_SP_VCHAR_OBS_TEXT = exports.QUOTED_STRING = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.HEX = exports.URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.STATUSES_HTTP = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.HEADER_STATE = exports.FINISH = exports.STATUSES = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;
@@ -3551,9 +3607,9 @@ var require_constants2 = __commonJS({
3551
3607
  }
3552
3608
  });
3553
3609
 
3554
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/llhttp/llhttp-wasm.js
3610
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/llhttp/llhttp-wasm.js
3555
3611
  var require_llhttp_wasm = __commonJS({
3556
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports, module) {
3612
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports, module) {
3557
3613
  "use strict";
3558
3614
  var { Buffer: Buffer3 } = __require("node:buffer");
3559
3615
  var 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//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKkCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyoAgtBxAEhAgyOAgsgASAERgRAQd0BIQIMpwILAkACQAJAAkAgAS0AAEEKaw4XAgMDAAMDAwMDAwMDAwMDAwMDAwMDAwEDCyABQQFqDAULIAFBAWohAUHDASECDI8CCyABQQFqIQEgA0Evai0AAEEBcQ0IIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKcCCyADQQA2AhwgAyABNgIUIANBjQs2AhAgA0ENNgIMQQAhAgymAgsgASAERwRAIANBDzYCCCADIAE2AgRBASECDI0CC0HcASECDKUCCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtB2wEhAgymAgsgAygCBCEAIANBADYCBCADIAAgARAtIgBFBEAgAUEBaiEBDAQLIANB2gE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMpQILIAMoAgQhACADQQA2AgQgAyAAIAEQLSIADQEgAUEBagshAUHBASECDIoCCyADQdkBNgIcIAMgADYCDCADIAFBAWo2AhRBACECDKICC0HCASECDIgCCyADQS9qLQAAQQFxDQEgA0EANgIcIAMgATYCFCADQeQcNgIQIANBGTYCDEEAIQIMoAILIAEgBEYEQEHZASEC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IAFBAWohAUGeASECDOQBCyABQQFqIQFBnwEhAgzjAQtBtwEhAiABIARGDfsBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQezUAGotAABHDSggAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPwBCyADQQA2AgAgBkEBaiEBQQ0MKAtBtgEhAiABIARGDfoBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDScgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPsBCyADQQA2AgAgBkEBaiEBQQwMJwtBtQEhAiABIARGDfkBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQerUAGotAABHDSYgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPoBCyADQQA2AgAgBkEBaiEBQQMMJgtBtAEhAiABIARGDfgBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQejUAGotAABHDSUgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPkBCyADQQA2AgAgBkEBaiEBQSYMJQsgASAERgRAQbMBIQIM+AELAkACQCABLQAAQdQAaw4CAAEnCyABQQFqIQFBmQEhAgzfAQsgAUEBaiEBQZoBIQIM3gELQbIBIQIgASAERg32ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHm1ABqLQAARw0jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz3AQsgA0EANgIAIAZBAWohAUEnDCMLQbEBIQIgASAERg31ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHk1ABqLQAARw0iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz2AQsgA0EANgIAIAZBAWohAUEcDCILQbABIQIgASAERg30ASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHe1ABqLQAARw0hIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz1AQsgA0EANgIAIAZBAWohAUEGDCELQa8BIQIgASAERg3zASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHZ1ABqLQAARw0gIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz0AQsgA0EANgIAIAZBAWohAUEZDCALIAEgBEYEQEGuASECDPMBCwJAAkACQAJAIAEtAABBLWsOIwAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAEkJCQkJAIkJCQDJAsgAUEBaiEBQY4BIQIM3AELIAFBAWohAUGPASECDNsBCyABQQFqIQFBlAEhAgzaAQsgAUEBaiEBQZUBIQIM2QELQa0BIQIgASAERg3xASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHX1ABqLQAARw0eIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzyAQsgA0EANgIAIAZBAWohAUELDB4LIAEgBEYEQEGsASECDPEBCwJAAkAgAS0AAEHBAGsOAwAgASALIAFBAWohAUGQASECDNgBCyABQQFqIQFBkwEhAgzXAQsgASAERgRAQasBIQIM8AELAkACQCABLQAAQcEAaw4PAB8fHx8fHx8fHx8fHx8BHwsgAUEBaiEBQZEBIQIM1wELIAFBAWohAUGSASECDNYBCyABIARGBEBBqgEhAgzvAQsgAS0AAEHMAEcNHCABQQFqIQFBCgwbC0GpASECIAEgBEYN7QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABB0dQAai0AAEcNGiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7gELIANBADYCACAGQQFqIQFBHgwaC0GoASECIAEgBEYN7AEgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBytQAai0AAEcNGSAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7QELIANBADYCACAGQQFqIQFBFQwZC0GnASECIAEgBEYN6wEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBx9QAai0AAEcNGCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7AELIANBADYCACAGQQFqIQFBFwwYC0GmASECIAEgBEYN6gEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBwdQAai0AAEcNFyAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6wELIANBADYCACAGQQFqIQFBGAwXCyABIARGBEBBpQEhAgzqAQsCQAJAIAEtAABByQBrDgcAGRkZGRkBGQsgAUEBaiEBQYsBIQIM0QELIAFBAWohAUGMASECDNABC0GkASECIAEgBEYN6AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBptUAai0AAEcNFSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6QELIANBADYCACAGQQFqIQFBCQwVC0GjASECIAEgBEYN5wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBpNUAai0AAEcNFCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6AELIANBADYCACAGQQFqIQFBHwwUC0GiASECIAEgBEYN5gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBvtQAai0AAEcNEyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5wELIANBADYCACAGQQFqIQFBAgwTC0GhASECIAEgBEYN5QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGA0AgAS0AACAAQbzUAGotAABHDREgAEEBRg0CIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADOUBCyABIARGBEBBoAEhAgzlAQtBASABLQAAQd8ARw0RGiABQQFqIQFBhwEhAgzLAQsgA0EANgIAIAZBAWohAUGIASECDMoBC0GfASECIAEgBEYN4gEgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNDyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4wELIANBADYCACAGQQFqIQFBKQwPC0GeASECIAEgBEYN4QEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBuNQAai0AAEcNDiAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4gELIANBADYCACAGQQFqIQFBLQwOCyABIARGBEBBnQEhAgzhAQsgAS0AAEHFAEcNDiABQQFqIQFBhAEhAgzHAQsgASAERgRAQZwBIQIM4AELAkACQCABLQAAQcwAaw4IAA8PDw8PDwEPCyABQQFqIQFBggEhAgzHAQsgAUEBaiEBQYMBIQIMxgELQZsBIQIgASAERg3eASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEGz1ABqLQAARw0LIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzfAQsgA0EANgIAIAZBAWohAUEjDAsLQZoBIQIgASAERg3dASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGw1ABqLQAARw0KIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzeAQsgA0EANgIAIAZBAWohAUEADAoLIAEgBEYEQEGZASECDN0BCwJAAkAgAS0AAEHIAGsOCAAMDAwMDAwBDAsgAUEBaiEBQf0AIQIMxAELIAFBAWohAUGAASECDMMBCyABIARGBEBBmAEhAgzcAQsCQAJAIAEtAABBzgBrDgMACwELCyABQQFqIQFB/gAhAgzDAQsgAUEBaiEBQf8AIQIMwgELIAEgBEYEQEGXASECDNsBCyABLQAAQdkARw0IIAFBAWohAUEIDAcLQZYBIQIgASAERg3ZASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEGs1ABqLQAARw0GIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzaAQsgA0EANgIAIAZBAWohAUEFDAYLQZUBIQIgASAERg3YASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGm1ABqLQAARw0FIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzZAQsgA0EANgIAIAZBAWohAUEWDAULQZQBIQIgASAERg3XASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0EIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzYAQsgA0EANgIAIAZBAWohAUEQDAQLIAEgBEYEQEGTASECDNcBCwJAAkAgAS0AAEHDAGsODAAGBgYGBgYGBgYGAQYLIAFBAWohAUH5ACECDL4BCyABQQFqIQFB+gAhAgy9AQtBkgEhAiABIARGDdUBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQaDUAGotAABHDQIgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNYBCyADQQA2AgAgBkEBaiEBQSQMAgsgA0EANgIADAILIAEgBEYEQEGRASECDNQBCyABLQAAQcwARw0BIAFBAWohAUETCzoAKSADKAIEIQAgA0EANgIEIAMgACABEC4iAA0CDAELQQAhAiADQQA2AhwgAyABNgIUIANB/h82AhAgA0EGNgIMDNEBC0H4ACECDLcBCyADQZABNgIcIAMgATYCFCADIAA2AgxBACECDM8BC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUYNASADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgzOAQtB9wAhAgy0AQsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDMwBCyABIARGBEBBjwEhAgzMAQsCQCABLQAAQSBGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GbHzYCECADQQY2AgxBACECDMwBC0ECIQIMsgELA0AgAS0AAEEgRw0CIAQgAUEBaiIBRw0AC0GOASECDMoBCyABIARGBEBBjQEhAgzKAQsCQCABLQAAQQlrDgRKAABKAAtB9QAhAgywAQsgAy0AKUEFRgRAQfYAIQIMsAELQfQAIQIMrwELIAEgBEYEQEGMASECDMgBCyADQRA2AgggAyABNgIEDAoLIAEgBEYEQEGLASECDMcBCwJAIAEtAABBCWsOBEcAAEcAC0HzACECDK0BCyABIARHBEAgA0EQNgIIIAMgATYCBEHxACECDK0BC0GKASECDMUBCwJAIAEgBEcEQANAIAEtAABBoNAAai0AACIAQQNHBEACQCAAQQFrDgJJAAQLQfAAIQIMrwELIAQgAUEBaiIBRw0AC0GIASEC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BCABQQFqIgFHDQALQfsAIQIMpwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMpgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMpQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMpAELIANBADYCHCADIAE2AhQgA0G8CjYCECADQQc2AgxBACECDKMBC0HPACECDIkBC0HRACECDIgBC0HnACECDIcBCyABIARGBEBB+gAhAgygAQsCQCABLQAAQQlrDgQgAAAgAAsgAUEBaiEBQeYAIQIMhgELIAEgBEYEQEH5ACECDJ8BCwJAIAEtAABBCWsOBB8AAB8AC0EAIQACQCADKAI4IgJFDQAgAigCOCICRQ0AIAMgAhEAACEACyAARQRAQeIBIQIMhgELIABBFUcEQCADQQA2AhwgAyABNgIUIANByQ02AhAgA0EaNgIMQQAhAgyfAQsgA0H4ADYCHCADIAE2AhQgA0HqGjYCECADQRU2AgxBACECDJ4BCyABIARHBEAgA0ENNgIIIAMgATYCBEHkACECDIUBC0H3ACECDJ0BCyABIARGBEBB9gAhAgydAQsCQAJAAkAgAS0AAEHIAGsOCwABCwsLCwsLCwsCCwsgAUEBaiEBQd0AIQIMhQELIAFBAWohAUHgACECDIQBCyABQQFqIQFB4wAhAgyDAQtB9QAhAiABIARGDZsBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbXVAGotAABHDQggAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJwBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIABEAgA0H0ADYCHCADIAE2AhQgAyAANgIMQQAhAgycAQtB4gAhAgyCAQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJwBC0HhACECDIIBCyADQfMANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMmgELIAMtACkiAEEja0ELSQ0JAkAgAEEGSw0AQQEgAHRBygBxRQ0ADAoLQQAhAiADQQA2AhwgAyABNgIUIANB7Qk2AhAgA0EINgIMDJkBC0HyACECIAEgBEYNmAEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBs9UAai0AAEcNBSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMmQELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfEANgIcIAMgATYCFCADIAA2AgxBACECDJkBC0HfACECDH8LQQAhAAJAIAMoAjgiAkUNACACKAI0IgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANB6g02AhAgA0EmNgIMQQAhAgyZAQtB3gAhAgx/CyADQfAANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMlwELIAMtAClBIUYNBiADQQA2AhwgAyABNgIUIANBkQo2AhAgA0EINgIMQQAhAgyWAQtB7wAhAiABIARGDZUBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDVAGotAABHDQIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIARQ0CIANB7QA2AhwgAyABNgIUIAMgADYCDEEAIQIMlQELIANBADYCAAsgAygCBCEAIANBADYCBCADIAAgARArIgBFDYABIANB7gA2AhwgAyABNgIUIAMgADYCDEEAIQIMkwELQdwAIQIMeQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJMBC0HbACECDHkLIANB7AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyRAQsgAy0AKSIAQSNJDQAgAEEuRg0AIANBADYCHCADIAE2AhQgA0HJCTYCECADQQg2AgxBACECDJABC0HaACECDHYLIAEgBEYEQEHrACECDI8BCwJAIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMjwELQdkAIQIMdQsgASAERwRAIANBDjYCCCADIAE2AgRB2AAhAgx1C0HqACECDI0BCyABIARGBEBB6QAhAgyNAQsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFB1wAhAgx0CyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeiADQegANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyABIARGBEBB5wAhAgyMAQsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ17IANB5gA2AhwgAyABNgIUIAMgADYCDEEAIQIMjAELQdYAIQIMcgsgASAERgRAQeUAIQIMiwELQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIANgIcIAMgATYCFCADIAA2AgxBACECDI0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNfSADQeMANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeyADQeQANgIcIAMgATYCFCADIAA2AgwMiwELQdQAIQIMcQsgAy0AKUEiRg2GAUHTACECDHALQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALIABFBEBB1QAhAgxwCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQaQNNgIQIANBITYCDEEAIQIMiQELIANB4QA2AhwgAyABNgIUIANB0Bo2AhAgA0EVNgIMQQAhAgyIAQsgASAERgRAQeAAIQIMiAELAkACQAJAAkACQCABLQAAQQprDgQBBAQABAsgAUEBaiEBDAELIAFBAWohASADQS9qLQAAQQFxRQ0BC0HSACECDHALIANBADYCHCADIAE2AhQgA0G2ETYCECADQQk2AgxBACECDIgBCyADQQA2AhwgAyABNgIUIANBthE2AhAgA0EJNgIMQQAhAgyHAQsgASAERgRAQd8AIQIMhwELIAEtAABBCkYEQCABQQFqIQEMCQsgAy0ALkHAAHENCCADQQA2AhwgAyABNgIUIANBthE2AhAgA0ECNgIMQQAhAgyGAQsgASAERgRAQd0AIQIMhgELIAEtAAAiAkENRgRAIAFBAWohAUHQACECDG0LIAEhACACQQlrDgQFAQEFAQsgBCABIgBGBEBB3AAhAgyFAQsgAC0AAEEKRw0AIABBAWoMAgtBACECIANBADYCHCADIAA2AhQgA0HKLTYCECADQQc2AgwMgwELIAEgBEYEQEHbACECDIMBCwJAIAEtAABBCWsOBAMAAAMACyABQQFqCyEBQc4AIQIMaAsgASAERgRAQdoAIQIMgQELIAEtAABBCWsOBAABAQABC0EAIQIgA0EANgIcIANBmhI2AhAgA0EHNgIMIAMgAUEBajYCFAx/CyADQYASOwEqQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2QA2AhwgAyABNgIUIANB6ho2AhAgA0EVNgIMQQAhAgx+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsg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c3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==";
@@ -3566,9 +3622,9 @@ var require_llhttp_wasm = __commonJS({
3566
3622
  }
3567
3623
  });
3568
3624
 
3569
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js
3625
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js
3570
3626
  var require_llhttp_simd_wasm = __commonJS({
3571
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports, module) {
3627
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports, module) {
3572
3628
  "use strict";
3573
3629
  var { Buffer: Buffer3 } = __require("node:buffer");
3574
3630
  var 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==";
@@ -3581,9 +3637,9 @@ var require_llhttp_simd_wasm = __commonJS({
3581
3637
  }
3582
3638
  });
3583
3639
 
3584
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/constants.js
3640
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/constants.js
3585
3641
  var require_constants3 = __commonJS({
3586
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/constants.js"(exports, module) {
3642
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/constants.js"(exports, module) {
3587
3643
  "use strict";
3588
3644
  var corsSafeListedMethods = (
3589
3645
  /** @type {const} */
@@ -3805,9 +3861,9 @@ var require_constants3 = __commonJS({
3805
3861
  }
3806
3862
  });
3807
3863
 
3808
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/global.js
3864
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/global.js
3809
3865
  var require_global = __commonJS({
3810
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/global.js"(exports, module) {
3866
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/global.js"(exports, module) {
3811
3867
  "use strict";
3812
3868
  var globalOrigin = /* @__PURE__ */ Symbol.for("undici.globalOrigin.1");
3813
3869
  function getGlobalOrigin() {
@@ -3841,9 +3897,9 @@ var require_global = __commonJS({
3841
3897
  }
3842
3898
  });
3843
3899
 
3844
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/encoding/index.js
3900
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/encoding/index.js
3845
3901
  var require_encoding = __commonJS({
3846
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/encoding/index.js"(exports, module) {
3902
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/encoding/index.js"(exports, module) {
3847
3903
  "use strict";
3848
3904
  var textDecoder = new TextDecoder();
3849
3905
  function utf8DecodeBytes(buffer) {
@@ -3862,9 +3918,9 @@ var require_encoding = __commonJS({
3862
3918
  }
3863
3919
  });
3864
3920
 
3865
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/infra/index.js
3921
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/infra/index.js
3866
3922
  var require_infra = __commonJS({
3867
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/infra/index.js"(exports, module) {
3923
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/infra/index.js"(exports, module) {
3868
3924
  "use strict";
3869
3925
  var assert = __require("node:assert");
3870
3926
  var { utf8DecodeBytes } = require_encoding();
@@ -3975,9 +4031,9 @@ var require_infra = __commonJS({
3975
4031
  }
3976
4032
  });
3977
4033
 
3978
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/data-url.js
4034
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/data-url.js
3979
4035
  var require_data_url = __commonJS({
3980
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/data-url.js"(exports, module) {
4036
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/data-url.js"(exports, module) {
3981
4037
  "use strict";
3982
4038
  var assert = __require("node:assert");
3983
4039
  var { forgivingBase64, collectASequenceOfCodePoints, collectASequenceOfCodePointsFast, isomorphicDecode, removeASCIIWhitespace, removeChars } = require_infra();
@@ -4254,9 +4310,9 @@ var require_data_url = __commonJS({
4254
4310
  }
4255
4311
  });
4256
4312
 
4257
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/runtime-features.js
4313
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/runtime-features.js
4258
4314
  var require_runtime_features = __commonJS({
4259
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/runtime-features.js"(exports, module) {
4315
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/runtime-features.js"(exports, module) {
4260
4316
  "use strict";
4261
4317
  var lazyLoaders = {
4262
4318
  __proto__: null,
@@ -4356,9 +4412,9 @@ var require_runtime_features = __commonJS({
4356
4412
  }
4357
4413
  });
4358
4414
 
4359
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/webidl/index.js
4415
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/webidl/index.js
4360
4416
  var require_webidl = __commonJS({
4361
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/webidl/index.js"(exports, module) {
4417
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/webidl/index.js"(exports, module) {
4362
4418
  "use strict";
4363
4419
  var assert = __require("node:assert");
4364
4420
  var { types, inspect } = __require("node:util");
@@ -4498,7 +4554,7 @@ var require_webidl = __commonJS({
4498
4554
  lowerBound = 0;
4499
4555
  upperBound = Math.pow(2, bitLength) - 1;
4500
4556
  } else {
4501
- lowerBound = Math.pow(-2, bitLength) - 1;
4557
+ lowerBound = -Math.pow(2, bitLength - 1);
4502
4558
  upperBound = Math.pow(2, bitLength - 1) - 1;
4503
4559
  }
4504
4560
  let x = Number(V);
@@ -4535,7 +4591,7 @@ var require_webidl = __commonJS({
4535
4591
  }
4536
4592
  x = webidl.util.IntegerPart(x);
4537
4593
  x = x % Math.pow(2, bitLength);
4538
- if (signedness === "signed" && x >= Math.pow(2, bitLength) - 1) {
4594
+ if (signedness === "signed" && x >= Math.pow(2, bitLength - 1)) {
4539
4595
  return x - Math.pow(2, bitLength);
4540
4596
  }
4541
4597
  return x;
@@ -4958,9 +5014,9 @@ var require_webidl = __commonJS({
4958
5014
  }
4959
5015
  });
4960
5016
 
4961
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/util.js
5017
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/util.js
4962
5018
  var require_util2 = __commonJS({
4963
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/util.js"(exports, module) {
5019
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/util.js"(exports, module) {
4964
5020
  "use strict";
4965
5021
  var { Transform } = __require("node:stream");
4966
5022
  var zlib = __require("node:zlib");
@@ -5725,9 +5781,9 @@ var require_util2 = __commonJS({
5725
5781
  }
5726
5782
  });
5727
5783
 
5728
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/formdata.js
5784
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/formdata.js
5729
5785
  var require_formdata = __commonJS({
5730
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/formdata.js"(exports, module) {
5786
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/formdata.js"(exports, module) {
5731
5787
  "use strict";
5732
5788
  var { iteratorMixin } = require_util2();
5733
5789
  var { kEnumerableProperty } = require_util();
@@ -5887,9 +5943,9 @@ var require_formdata = __commonJS({
5887
5943
  }
5888
5944
  });
5889
5945
 
5890
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/formdata-parser.js
5946
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/formdata-parser.js
5891
5947
  var require_formdata_parser = __commonJS({
5892
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/formdata-parser.js"(exports, module) {
5948
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/formdata-parser.js"(exports, module) {
5893
5949
  "use strict";
5894
5950
  var { bufferToLowerCasedHeaderName } = require_util();
5895
5951
  var { HTTP_TOKEN_CODEPOINTS } = require_data_url();
@@ -6053,7 +6109,7 @@ var require_formdata_parser = __commonJS({
6053
6109
  );
6054
6110
  value = decoder.decode(tokenValue);
6055
6111
  }
6056
- return { name: attrNameStr, value };
6112
+ return { name: attrNameStr, value, extended: isExtended };
6057
6113
  }
6058
6114
  function parseMultipartFormDataHeaders(input, position) {
6059
6115
  let name = null;
@@ -6088,6 +6144,7 @@ var require_formdata_parser = __commonJS({
6088
6144
  switch (bufferToLowerCasedHeaderName(headerName)) {
6089
6145
  case "content-disposition": {
6090
6146
  name = filename = null;
6147
+ let filenameIsExtended = false;
6091
6148
  const dispositionType = collectASequenceOfBytes(
6092
6149
  (char) => isToken(char),
6093
6150
  input,
@@ -6096,7 +6153,7 @@ var require_formdata_parser = __commonJS({
6096
6153
  if (dispositionType.toString("ascii").toLowerCase() !== "form-data") {
6097
6154
  throw parsingError("expected form-data for content-disposition header");
6098
6155
  }
6099
- while (position.position < input.length && input[position.position] !== 13 && input[position.position + 1] !== 10) {
6156
+ while (position.position < input.length && (input[position.position] !== 13 || input[position.position + 1] !== 10)) {
6100
6157
  const attribute = parseContentDispositionAttribute(input, position);
6101
6158
  if (!attribute) {
6102
6159
  break;
@@ -6104,7 +6161,12 @@ var require_formdata_parser = __commonJS({
6104
6161
  if (attribute.name === "name") {
6105
6162
  name = attribute.value;
6106
6163
  } else if (attribute.name === "filename") {
6107
- filename = attribute.value;
6164
+ if (attribute.extended) {
6165
+ filename = attribute.value;
6166
+ filenameIsExtended = true;
6167
+ } else if (!filenameIsExtended) {
6168
+ filename = attribute.value;
6169
+ }
6108
6170
  }
6109
6171
  }
6110
6172
  if (name === null) {
@@ -6140,7 +6202,7 @@ var require_formdata_parser = __commonJS({
6140
6202
  );
6141
6203
  }
6142
6204
  }
6143
- if (input[position.position] !== 13 && input[position.position + 1] !== 10) {
6205
+ if (input[position.position] !== 13 || input[position.position + 1] !== 10) {
6144
6206
  throw parsingError("expected CRLF");
6145
6207
  } else {
6146
6208
  position.position += 2;
@@ -6211,9 +6273,9 @@ var require_formdata_parser = __commonJS({
6211
6273
  }
6212
6274
  });
6213
6275
 
6214
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/promise.js
6276
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/promise.js
6215
6277
  var require_promise = __commonJS({
6216
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/promise.js"(exports, module) {
6278
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/promise.js"(exports, module) {
6217
6279
  "use strict";
6218
6280
  function createDeferredPromise() {
6219
6281
  let res;
@@ -6230,9 +6292,9 @@ var require_promise = __commonJS({
6230
6292
  }
6231
6293
  });
6232
6294
 
6233
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/body.js
6295
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/body.js
6234
6296
  var require_body = __commonJS({
6235
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/body.js"(exports, module) {
6297
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/body.js"(exports, module) {
6236
6298
  "use strict";
6237
6299
  var util = require_util();
6238
6300
  var {
@@ -6513,9 +6575,9 @@ Content-Type: ${value.type || "application/octet-stream"}\r
6513
6575
  }
6514
6576
  });
6515
6577
 
6516
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/client-h1.js
6578
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/client-h1.js
6517
6579
  var require_client_h1 = __commonJS({
6518
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/client-h1.js"(exports, module) {
6580
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/client-h1.js"(exports, module) {
6519
6581
  "use strict";
6520
6582
  var assert = __require("node:assert");
6521
6583
  var util = require_util();
@@ -6525,6 +6587,7 @@ var require_client_h1 = __commonJS({
6525
6587
  RequestContentLengthMismatchError,
6526
6588
  ResponseContentLengthMismatchError,
6527
6589
  RequestAbortedError,
6590
+ InvalidArgumentError,
6528
6591
  HeadersTimeoutError,
6529
6592
  HeadersOverflowError,
6530
6593
  SocketError,
@@ -6571,15 +6634,18 @@ var require_client_h1 = __commonJS({
6571
6634
  var EMPTY_BUF = Buffer.alloc(0);
6572
6635
  var FastBuffer = Buffer[Symbol.species];
6573
6636
  var removeAllListeners = util.removeAllListeners;
6637
+ var kIdleSocketValidation = /* @__PURE__ */ Symbol("kIdleSocketValidation");
6638
+ var kIdleSocketValidationTimeout = /* @__PURE__ */ Symbol("kIdleSocketValidationTimeout");
6639
+ var kSocketUsed = /* @__PURE__ */ Symbol("kSocketUsed");
6574
6640
  var extractBody;
6575
6641
  function lazyllhttp() {
6576
6642
  const llhttpWasmData = process.env.JEST_WORKER_ID ? require_llhttp_wasm() : void 0;
6577
6643
  let mod;
6578
6644
  let useWasmSIMD = process.arch !== "ppc64";
6579
6645
  if (process.env.UNDICI_NO_WASM_SIMD === "1") {
6580
- useWasmSIMD = true;
6581
- } else if (process.env.UNDICI_NO_WASM_SIMD === "0") {
6582
6646
  useWasmSIMD = false;
6647
+ } else if (process.env.UNDICI_NO_WASM_SIMD === "0") {
6648
+ useWasmSIMD = true;
6583
6649
  }
6584
6650
  if (useWasmSIMD) {
6585
6651
  try {
@@ -6697,6 +6763,7 @@ var require_client_h1 = __commonJS({
6697
6763
  this.client = client;
6698
6764
  this.socket = socket;
6699
6765
  this.timeout = null;
6766
+ this.timeoutWeakRef = new WeakRef(this);
6700
6767
  this.timeoutValue = null;
6701
6768
  this.timeoutType = null;
6702
6769
  this.statusCode = 0;
@@ -6722,9 +6789,9 @@ var require_client_h1 = __commonJS({
6722
6789
  }
6723
6790
  if (delay) {
6724
6791
  if (type & USE_FAST_TIMER) {
6725
- this.timeout = timers.setFastTimeout(onParserTimeout, delay, new WeakRef(this));
6792
+ this.timeout = timers.setFastTimeout(onParserTimeout, delay, this.timeoutWeakRef);
6726
6793
  } else {
6727
- this.timeout = setTimeout(onParserTimeout, delay, new WeakRef(this));
6794
+ this.timeout = setTimeout(onParserTimeout, delay, this.timeoutWeakRef);
6728
6795
  this.timeout?.unref();
6729
6796
  }
6730
6797
  }
@@ -6796,19 +6863,47 @@ var require_client_h1 = __commonJS({
6796
6863
  this.paused = true;
6797
6864
  socket.unshift(data);
6798
6865
  } else {
6799
- const ptr = llhttp.llhttp_get_error_reason(this.ptr);
6800
- let message = "";
6801
- if (ptr) {
6802
- const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0);
6803
- message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")";
6804
- }
6805
- throw new HTTPParserError(message, constants2.ERROR[ret], data);
6866
+ throw this.createError(ret, data);
6806
6867
  }
6807
6868
  }
6808
6869
  } catch (err) {
6809
6870
  util.destroy(socket, err);
6810
6871
  }
6811
6872
  }
6873
+ finish() {
6874
+ assert(currentParser === null);
6875
+ assert(this.ptr != null);
6876
+ assert(!this.paused);
6877
+ const { llhttp } = this;
6878
+ let ret;
6879
+ try {
6880
+ currentParser = this;
6881
+ ret = llhttp.llhttp_finish(this.ptr);
6882
+ } finally {
6883
+ currentParser = null;
6884
+ }
6885
+ if (ret === constants2.ERROR.OK) {
6886
+ return null;
6887
+ }
6888
+ if (ret === constants2.ERROR.PAUSED || ret === constants2.ERROR.PAUSED_UPGRADE) {
6889
+ this.paused = true;
6890
+ return null;
6891
+ }
6892
+ return this.createError(ret, EMPTY_BUF);
6893
+ }
6894
+ createError(ret, data) {
6895
+ const { llhttp, contentLength, bytesRead } = this;
6896
+ if (contentLength && bytesRead !== parseInt(contentLength, 10)) {
6897
+ return new ResponseContentLengthMismatchError();
6898
+ }
6899
+ const ptr = llhttp.llhttp_get_error_reason(this.ptr);
6900
+ let message = "";
6901
+ if (ptr) {
6902
+ const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0);
6903
+ message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")";
6904
+ }
6905
+ return new HTTPParserError(message, constants2.ERROR[ret], data);
6906
+ }
6812
6907
  destroy() {
6813
6908
  assert(currentParser === null);
6814
6909
  assert(this.ptr != null);
@@ -6836,6 +6931,10 @@ var require_client_h1 = __commonJS({
6836
6931
  if (socket.destroyed) {
6837
6932
  return -1;
6838
6933
  }
6934
+ if (client[kRunning] === 0) {
6935
+ util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket)));
6936
+ return -1;
6937
+ }
6839
6938
  const request = client[kQueue][client[kRunningIdx]];
6840
6939
  if (!request) {
6841
6940
  return -1;
@@ -6938,6 +7037,10 @@ var require_client_h1 = __commonJS({
6938
7037
  if (socket.destroyed) {
6939
7038
  return -1;
6940
7039
  }
7040
+ if (client[kRunning] === 0) {
7041
+ util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket)));
7042
+ return -1;
7043
+ }
6941
7044
  const request = client[kQueue][client[kRunningIdx]];
6942
7045
  if (!request) {
6943
7046
  return -1;
@@ -7071,6 +7174,7 @@ var require_client_h1 = __commonJS({
7071
7174
  }
7072
7175
  request.onComplete(headers);
7073
7176
  client[kQueue][client[kRunningIdx]++] = null;
7177
+ socket[kSocketUsed] = client[kPending] === 0;
7074
7178
  if (socket[kWriting]) {
7075
7179
  assert(client[kRunning] === 0);
7076
7180
  util.destroy(socket, new InformationalError("reset"));
@@ -7124,6 +7228,9 @@ var require_client_h1 = __commonJS({
7124
7228
  socket[kWriting] = false;
7125
7229
  socket[kReset] = false;
7126
7230
  socket[kBlocking] = false;
7231
+ socket[kIdleSocketValidation] = 0;
7232
+ socket[kIdleSocketValidationTimeout] = null;
7233
+ socket[kSocketUsed] = false;
7127
7234
  socket[kParser] = new Parser(client, socket, llhttpInstance);
7128
7235
  util.addListener(socket, "error", onHttpSocketError);
7129
7236
  util.addListener(socket, "readable", onHttpSocketReadable);
@@ -7163,7 +7270,7 @@ var require_client_h1 = __commonJS({
7163
7270
  * @returns {boolean}
7164
7271
  */
7165
7272
  busy(request) {
7166
- if (socket[kWriting] || socket[kReset] || socket[kBlocking]) {
7273
+ if (socket[kWriting] || socket[kReset] || socket[kBlocking] || socket[kIdleSocketValidation] === 1) {
7167
7274
  return true;
7168
7275
  }
7169
7276
  if (request) {
@@ -7185,7 +7292,11 @@ var require_client_h1 = __commonJS({
7185
7292
  assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
7186
7293
  const parser = this[kParser];
7187
7294
  if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) {
7188
- parser.onMessageComplete();
7295
+ const parserErr = parser.finish();
7296
+ if (parserErr) {
7297
+ this[kError] = parserErr;
7298
+ this[kClient][kOnError](parserErr);
7299
+ }
7189
7300
  return;
7190
7301
  }
7191
7302
  this[kError] = err;
@@ -7197,16 +7308,20 @@ var require_client_h1 = __commonJS({
7197
7308
  function onHttpSocketEnd() {
7198
7309
  const parser = this[kParser];
7199
7310
  if (parser.statusCode && !parser.shouldKeepAlive) {
7200
- parser.onMessageComplete();
7311
+ const parserErr = parser.finish();
7312
+ if (parserErr) {
7313
+ util.destroy(this, parserErr);
7314
+ }
7201
7315
  return;
7202
7316
  }
7203
7317
  util.destroy(this, new SocketError("other side closed", util.getSocketInfo(this)));
7204
7318
  }
7205
7319
  function onHttpSocketClose() {
7206
7320
  const parser = this[kParser];
7321
+ clearIdleSocketValidation(this);
7207
7322
  if (parser) {
7208
7323
  if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) {
7209
- parser.onMessageComplete();
7324
+ this[kError] = parser.finish() || this[kError];
7210
7325
  }
7211
7326
  this[kParser].destroy();
7212
7327
  this[kParser] = null;
@@ -7235,6 +7350,24 @@ var require_client_h1 = __commonJS({
7235
7350
  function onSocketClose() {
7236
7351
  this[kClosed] = true;
7237
7352
  }
7353
+ function clearIdleSocketValidation(socket) {
7354
+ if (socket[kIdleSocketValidationTimeout]) {
7355
+ clearTimeout(socket[kIdleSocketValidationTimeout]);
7356
+ socket[kIdleSocketValidationTimeout] = null;
7357
+ }
7358
+ socket[kIdleSocketValidation] = 0;
7359
+ }
7360
+ function scheduleIdleSocketValidation(client, socket) {
7361
+ socket[kIdleSocketValidation] = 1;
7362
+ socket[kIdleSocketValidationTimeout] = setTimeout(() => {
7363
+ socket[kIdleSocketValidationTimeout] = null;
7364
+ socket[kIdleSocketValidation] = 2;
7365
+ if (client[kSocket] === socket && !socket.destroyed) {
7366
+ client[kResume]();
7367
+ }
7368
+ }, 0);
7369
+ socket[kIdleSocketValidationTimeout].unref?.();
7370
+ }
7238
7371
  function resumeH1(client) {
7239
7372
  const socket = client[kSocket];
7240
7373
  if (socket && !socket.destroyed) {
@@ -7247,6 +7380,29 @@ var require_client_h1 = __commonJS({
7247
7380
  socket.ref();
7248
7381
  socket[kNoRef] = false;
7249
7382
  }
7383
+ if (client[kRunning] === 0 && client[kPending] > 0 && socket[kSocketUsed]) {
7384
+ if (socket[kIdleSocketValidation] === 0) {
7385
+ scheduleIdleSocketValidation(client, socket);
7386
+ socket[kParser].readMore();
7387
+ if (socket.destroyed) {
7388
+ return;
7389
+ }
7390
+ return;
7391
+ }
7392
+ if (socket[kIdleSocketValidation] === 1) {
7393
+ socket[kParser].readMore();
7394
+ if (socket.destroyed) {
7395
+ return;
7396
+ }
7397
+ return;
7398
+ }
7399
+ }
7400
+ if (client[kRunning] === 0) {
7401
+ socket[kParser].readMore();
7402
+ if (socket.destroyed) {
7403
+ return;
7404
+ }
7405
+ }
7250
7406
  if (client[kSize] === 0) {
7251
7407
  if (socket[kParser].timeoutType !== TIMEOUT_KEEP_ALIVE) {
7252
7408
  socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_KEEP_ALIVE);
@@ -7277,8 +7433,16 @@ var require_client_h1 = __commonJS({
7277
7433
  }
7278
7434
  body = bodyStream.stream;
7279
7435
  contentLength = bodyStream.length;
7280
- } else if (util.isBlobLike(body) && request.contentType == null && body.type) {
7281
- headers.push("content-type", body.type);
7436
+ } else if (util.isBlobLike(body) && request.contentType == null) {
7437
+ const contentType = body.type;
7438
+ if (contentType) {
7439
+ const contentTypeValue = `${contentType}`;
7440
+ if (!util.isValidHeaderValue(contentTypeValue)) {
7441
+ util.errorRequest(client, request, new InvalidArgumentError("invalid content-type header"));
7442
+ return false;
7443
+ }
7444
+ headers.push("content-type", contentTypeValue);
7445
+ }
7282
7446
  }
7283
7447
  if (body && typeof body.read === "function") {
7284
7448
  body.read(0);
@@ -7299,6 +7463,7 @@ var require_client_h1 = __commonJS({
7299
7463
  process.emitWarning(new RequestContentLengthMismatchError());
7300
7464
  }
7301
7465
  const socket = client[kSocket];
7466
+ clearIdleSocketValidation(socket);
7302
7467
  const abort = (err) => {
7303
7468
  if (request.aborted || request.completed) {
7304
7469
  return;
@@ -7679,9 +7844,9 @@ ${len.toString(16)}\r
7679
7844
  }
7680
7845
  });
7681
7846
 
7682
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/client-h2.js
7847
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/client-h2.js
7683
7848
  var require_client_h2 = __commonJS({
7684
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/client-h2.js"(exports, module) {
7849
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/client-h2.js"(exports, module) {
7685
7850
  "use strict";
7686
7851
  var assert = __require("node:assert");
7687
7852
  var { pipeline } = __require("node:stream");
@@ -8406,9 +8571,9 @@ var require_client_h2 = __commonJS({
8406
8571
  }
8407
8572
  });
8408
8573
 
8409
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/client.js
8574
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/client.js
8410
8575
  var require_client = __commonJS({
8411
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/client.js"(exports, module) {
8576
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/client.js"(exports, module) {
8412
8577
  "use strict";
8413
8578
  var assert = __require("node:assert");
8414
8579
  var net = __require("node:net");
@@ -8514,7 +8679,8 @@ var require_client = __commonJS({
8514
8679
  useH2c,
8515
8680
  initialWindowSize,
8516
8681
  connectionWindowSize,
8517
- pingInterval
8682
+ pingInterval,
8683
+ webSocket
8518
8684
  } = {}) {
8519
8685
  if (keepAlive !== void 0) {
8520
8686
  throw new InvalidArgumentError("unsupported keepAlive, use pipelining=0 instead");
@@ -8592,7 +8758,7 @@ var require_client = __commonJS({
8592
8758
  if (pingInterval != null && (typeof pingInterval !== "number" || !Number.isInteger(pingInterval) || pingInterval < 0)) {
8593
8759
  throw new InvalidArgumentError("pingInterval must be a positive integer, greater or equal to 0");
8594
8760
  }
8595
- super();
8761
+ super({ webSocket });
8596
8762
  if (typeof connect2 !== "function") {
8597
8763
  connect2 = buildConnector({
8598
8764
  ...tls,
@@ -8604,9 +8770,13 @@ var require_client = __commonJS({
8604
8770
  ...typeof autoSelectFamily === "boolean" ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0,
8605
8771
  ...connect2
8606
8772
  });
8607
- } else if (socketPath != null) {
8773
+ } else {
8608
8774
  const customConnect = connect2;
8609
- connect2 = (opts, callback) => customConnect({ ...opts, socketPath }, callback);
8775
+ connect2 = (opts, callback) => customConnect({
8776
+ ...opts,
8777
+ ...socketPath != null ? { socketPath } : null,
8778
+ ...allowH2 != null ? { allowH2 } : null
8779
+ }, callback);
8610
8780
  }
8611
8781
  this[kUrl] = util.parseOrigin(url);
8612
8782
  this[kConnector] = connect2;
@@ -8928,9 +9098,9 @@ var require_client = __commonJS({
8928
9098
  }
8929
9099
  });
8930
9100
 
8931
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/fixed-queue.js
9101
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/fixed-queue.js
8932
9102
  var require_fixed_queue = __commonJS({
8933
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/fixed-queue.js"(exports, module) {
9103
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/fixed-queue.js"(exports, module) {
8934
9104
  "use strict";
8935
9105
  var kSize = 2048;
8936
9106
  var kMask = kSize - 1;
@@ -8999,9 +9169,9 @@ var require_fixed_queue = __commonJS({
8999
9169
  }
9000
9170
  });
9001
9171
 
9002
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/pool-base.js
9172
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/pool-base.js
9003
9173
  var require_pool_base = __commonJS({
9004
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/pool-base.js"(exports, module) {
9174
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/pool-base.js"(exports, module) {
9005
9175
  "use strict";
9006
9176
  var { PoolStats } = require_stats();
9007
9177
  var DispatcherBase = require_dispatcher_base();
@@ -9175,9 +9345,9 @@ var require_pool_base = __commonJS({
9175
9345
  }
9176
9346
  });
9177
9347
 
9178
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/pool.js
9348
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/pool.js
9179
9349
  var require_pool = __commonJS({
9180
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/pool.js"(exports, module) {
9350
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/pool.js"(exports, module) {
9181
9351
  "use strict";
9182
9352
  var {
9183
9353
  PoolBase,
@@ -9235,7 +9405,7 @@ var require_pool = __commonJS({
9235
9405
  ...connect
9236
9406
  });
9237
9407
  }
9238
- super();
9408
+ super(options);
9239
9409
  this[kConnections] = connections || null;
9240
9410
  this[kUrl] = util.parseOrigin(origin);
9241
9411
  this[kOptions] = { ...util.deepClone(options), connect, allowH2, clientTtl, socketPath };
@@ -9277,9 +9447,9 @@ var require_pool = __commonJS({
9277
9447
  }
9278
9448
  });
9279
9449
 
9280
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/balanced-pool.js
9450
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/balanced-pool.js
9281
9451
  var require_balanced_pool = __commonJS({
9282
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/balanced-pool.js"(exports, module) {
9452
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/balanced-pool.js"(exports, module) {
9283
9453
  "use strict";
9284
9454
  var {
9285
9455
  BalancedPoolMissingUpstreamError,
@@ -9321,7 +9491,7 @@ var require_balanced_pool = __commonJS({
9321
9491
  if (typeof factory !== "function") {
9322
9492
  throw new InvalidArgumentError("factory must be a function.");
9323
9493
  }
9324
- super();
9494
+ super(opts);
9325
9495
  this[kOptions] = { ...util.deepClone(opts) };
9326
9496
  this[kOptions].interceptors = opts.interceptors ? { ...opts.interceptors } : void 0;
9327
9497
  this[kIndex] = -1;
@@ -9425,9 +9595,9 @@ var require_balanced_pool = __commonJS({
9425
9595
  }
9426
9596
  });
9427
9597
 
9428
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/round-robin-pool.js
9598
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/round-robin-pool.js
9429
9599
  var require_round_robin_pool = __commonJS({
9430
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/round-robin-pool.js"(exports, module) {
9600
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/round-robin-pool.js"(exports, module) {
9431
9601
  "use strict";
9432
9602
  var {
9433
9603
  PoolBase,
@@ -9542,9 +9712,9 @@ var require_round_robin_pool = __commonJS({
9542
9712
  }
9543
9713
  });
9544
9714
 
9545
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/agent.js
9715
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/agent.js
9546
9716
  var require_agent = __commonJS({
9547
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/agent.js"(exports, module) {
9717
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/agent.js"(exports, module) {
9548
9718
  "use strict";
9549
9719
  var { InvalidArgumentError, MaxOriginsReachedError } = require_errors();
9550
9720
  var { kClients, kRunning, kClose, kDestroy, kDispatch, kUrl } = require_symbols();
@@ -9573,7 +9743,7 @@ var require_agent = __commonJS({
9573
9743
  if (typeof maxOrigins !== "number" || Number.isNaN(maxOrigins) || maxOrigins <= 0) {
9574
9744
  throw new InvalidArgumentError("maxOrigins must be a number greater than 0");
9575
9745
  }
9576
- super();
9746
+ super(options);
9577
9747
  if (connect && typeof connect !== "function") {
9578
9748
  connect = { ...connect };
9579
9749
  }
@@ -9675,9 +9845,9 @@ var require_agent = __commonJS({
9675
9845
  }
9676
9846
  });
9677
9847
 
9678
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/socks5-utils.js
9848
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/socks5-utils.js
9679
9849
  var require_socks5_utils = __commonJS({
9680
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/socks5-utils.js"(exports, module) {
9850
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/socks5-utils.js"(exports, module) {
9681
9851
  "use strict";
9682
9852
  var { Buffer: Buffer3 } = __require("node:buffer");
9683
9853
  var net = __require("node:net");
@@ -9710,28 +9880,37 @@ var require_socks5_utils = __commonJS({
9710
9880
  }
9711
9881
  function parseIPv6(address) {
9712
9882
  const buffer = Buffer3.alloc(16);
9713
- const parts = address.split(":");
9714
- let partIndex = 0;
9715
- let bufferIndex = 0;
9716
- const doubleColonIndex = address.indexOf("::");
9883
+ let normalizedAddress = address;
9884
+ if (address.includes(".")) {
9885
+ const lastColonIndex = address.lastIndexOf(":");
9886
+ const ipv4Part = address.slice(lastColonIndex + 1);
9887
+ if (net.isIPv4(ipv4Part)) {
9888
+ const octets = ipv4Part.split(".").map(Number);
9889
+ const high = (octets[0] << 8 | octets[1]).toString(16);
9890
+ const low = (octets[2] << 8 | octets[3]).toString(16);
9891
+ normalizedAddress = `${address.slice(0, lastColonIndex)}:${high}:${low}`;
9892
+ }
9893
+ }
9894
+ const doubleColonIndex = normalizedAddress.indexOf("::");
9717
9895
  if (doubleColonIndex !== -1) {
9718
- const nonEmptyParts = parts.filter((p) => p.length > 0).length;
9719
- const skipParts = 8 - nonEmptyParts;
9720
- for (let i = 0; i < parts.length; i++) {
9721
- if (parts[i] === "" && i === doubleColonIndex / 3) {
9722
- bufferIndex += skipParts * 2;
9723
- } else if (parts[i] !== "") {
9724
- const value = parseInt(parts[i], 16);
9725
- buffer.writeUInt16BE(value, bufferIndex);
9726
- bufferIndex += 2;
9727
- }
9896
+ const before = normalizedAddress.slice(0, doubleColonIndex);
9897
+ const after = normalizedAddress.slice(doubleColonIndex + 2);
9898
+ const beforeParts = before === "" ? [] : before.split(":");
9899
+ const afterParts = after === "" ? [] : after.split(":");
9900
+ let bufferIndex = 0;
9901
+ for (const part of beforeParts) {
9902
+ buffer.writeUInt16BE(parseInt(part, 16), bufferIndex);
9903
+ bufferIndex += 2;
9904
+ }
9905
+ bufferIndex = 16 - afterParts.length * 2;
9906
+ for (const part of afterParts) {
9907
+ buffer.writeUInt16BE(parseInt(part, 16), bufferIndex);
9908
+ bufferIndex += 2;
9728
9909
  }
9729
9910
  } else {
9730
- for (const part of parts) {
9731
- if (part === "") continue;
9732
- const value = parseInt(part, 16);
9733
- buffer.writeUInt16BE(value, partIndex * 2);
9734
- partIndex++;
9911
+ const parts = normalizedAddress.split(":");
9912
+ for (let i = 0; i < parts.length; i++) {
9913
+ buffer.writeUInt16BE(parseInt(parts[i], 16), i * 2);
9735
9914
  }
9736
9915
  }
9737
9916
  return buffer;
@@ -9827,9 +10006,9 @@ var require_socks5_utils = __commonJS({
9827
10006
  }
9828
10007
  });
9829
10008
 
9830
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/socks5-client.js
10009
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/socks5-client.js
9831
10010
  var require_socks5_client = __commonJS({
9832
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/core/socks5-client.js"(exports, module) {
10011
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/socks5-client.js"(exports, module) {
9833
10012
  "use strict";
9834
10013
  var { EventEmitter } = __require("node:events");
9835
10014
  var { Buffer: Buffer3 } = __require("node:buffer");
@@ -9837,6 +10016,7 @@ var require_socks5_client = __commonJS({
9837
10016
  var { debuglog } = __require("node:util");
9838
10017
  var { parseAddress } = require_socks5_utils();
9839
10018
  var debug = debuglog("undici:socks5");
10019
+ var EMPTY_BUFFER = Buffer3.alloc(0);
9840
10020
  var SOCKS_VERSION = 5;
9841
10021
  var AUTH_METHODS = {
9842
10022
  NO_AUTH: 0,
@@ -9869,6 +10049,7 @@ var require_socks5_client = __commonJS({
9869
10049
  INITIAL: "initial",
9870
10050
  HANDSHAKING: "handshaking",
9871
10051
  AUTHENTICATING: "authenticating",
10052
+ AUTHENTICATED: "authenticated",
9872
10053
  CONNECTING: "connecting",
9873
10054
  CONNECTED: "connected",
9874
10055
  ERROR: "error",
@@ -9883,15 +10064,18 @@ var require_socks5_client = __commonJS({
9883
10064
  this.socket = socket;
9884
10065
  this.options = options;
9885
10066
  this.state = STATES.INITIAL;
9886
- this.buffer = Buffer3.alloc(0);
10067
+ this.buffer = EMPTY_BUFFER;
10068
+ this.onSocketData = this.onData.bind(this);
10069
+ this.onSocketError = this.onError.bind(this);
10070
+ this.onSocketClose = this.onClose.bind(this);
9887
10071
  this.authMethods = [];
9888
10072
  if (options.username && options.password) {
9889
10073
  this.authMethods.push(AUTH_METHODS.USERNAME_PASSWORD);
9890
10074
  }
9891
10075
  this.authMethods.push(AUTH_METHODS.NO_AUTH);
9892
- this.socket.on("data", this.onData.bind(this));
9893
- this.socket.on("error", this.onError.bind(this));
9894
- this.socket.on("close", this.onClose.bind(this));
10076
+ this.socket.on("data", this.onSocketData);
10077
+ this.socket.on("error", this.onSocketError);
10078
+ this.socket.on("close", this.onSocketClose);
9895
10079
  }
9896
10080
  /**
9897
10081
  * Handle incoming data from the socket
@@ -9940,6 +10124,10 @@ var require_socks5_client = __commonJS({
9940
10124
  this.socket.destroy();
9941
10125
  }
9942
10126
  }
10127
+ markAuthenticated() {
10128
+ this.state = STATES.AUTHENTICATED;
10129
+ this.emit("authenticated");
10130
+ }
9943
10131
  /**
9944
10132
  * Start the SOCKS5 handshake
9945
10133
  */
@@ -9975,7 +10163,7 @@ var require_socks5_client = __commonJS({
9975
10163
  this.buffer = this.buffer.subarray(2);
9976
10164
  debug("server selected auth method", method);
9977
10165
  if (method === AUTH_METHODS.NO_AUTH) {
9978
- this.emit("authenticated");
10166
+ this.markAuthenticated();
9979
10167
  } else if (method === AUTH_METHODS.USERNAME_PASSWORD) {
9980
10168
  this.state = STATES.AUTHENTICATING;
9981
10169
  this.sendAuthRequest();
@@ -10022,7 +10210,7 @@ var require_socks5_client = __commonJS({
10022
10210
  }
10023
10211
  this.buffer = this.buffer.subarray(2);
10024
10212
  debug("authentication successful");
10025
- this.emit("authenticated");
10213
+ this.markAuthenticated();
10026
10214
  }
10027
10215
  /**
10028
10216
  * Send CONNECT command
@@ -10030,8 +10218,11 @@ var require_socks5_client = __commonJS({
10030
10218
  * @param {number} port - Target port
10031
10219
  */
10032
10220
  connect(address, port) {
10033
- if (this.state === STATES.CONNECTED) {
10034
- throw new InvalidArgumentError("Already connected");
10221
+ if (this.state === STATES.CONNECTING || this.state === STATES.CONNECTED) {
10222
+ throw new InvalidArgumentError("Connection already in progress");
10223
+ }
10224
+ if (this.state !== STATES.AUTHENTICATED) {
10225
+ throw new InvalidArgumentError("Client must be authenticated before CONNECT");
10035
10226
  }
10036
10227
  debug("connecting to", address, port);
10037
10228
  this.state = STATES.CONNECTING;
@@ -10105,8 +10296,9 @@ var require_socks5_client = __commonJS({
10105
10296
  offset += 16;
10106
10297
  }
10107
10298
  const boundPort = this.buffer.readUInt16BE(offset);
10108
- this.buffer = this.buffer.subarray(responseLength);
10299
+ this.buffer = EMPTY_BUFFER;
10109
10300
  this.state = STATES.CONNECTED;
10301
+ this.socket.removeListener("data", this.onSocketData);
10110
10302
  debug("connected, bound address:", boundAddress, "port:", boundPort);
10111
10303
  this.emit("connected", { address: boundAddress, port: boundPort });
10112
10304
  }
@@ -10147,16 +10339,15 @@ var require_socks5_client = __commonJS({
10147
10339
  }
10148
10340
  });
10149
10341
 
10150
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js
10342
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js
10151
10343
  var require_socks5_proxy_agent = __commonJS({
10152
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js"(exports, module) {
10344
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js"(exports, module) {
10153
10345
  "use strict";
10154
- var net = __require("node:net");
10155
10346
  var { URL: URL2 } = __require("node:url");
10156
10347
  var tls;
10157
10348
  var DispatcherBase = require_dispatcher_base();
10158
10349
  var { InvalidArgumentError } = require_errors();
10159
- var { Socks5Client } = require_socks5_client();
10350
+ var { Socks5Client, STATES } = require_socks5_client();
10160
10351
  var { kDispatch, kClose, kDestroy } = require_symbols();
10161
10352
  var Pool = require_pool();
10162
10353
  var buildConnector = require_connect();
@@ -10165,8 +10356,10 @@ var require_socks5_proxy_agent = __commonJS({
10165
10356
  var kProxyUrl = /* @__PURE__ */ Symbol("proxy url");
10166
10357
  var kProxyHeaders = /* @__PURE__ */ Symbol("proxy headers");
10167
10358
  var kProxyAuth = /* @__PURE__ */ Symbol("proxy auth");
10168
- var kPool = /* @__PURE__ */ Symbol("pool");
10359
+ var kProxyProtocol = /* @__PURE__ */ Symbol("proxy protocol");
10360
+ var kPools = /* @__PURE__ */ Symbol("pools");
10169
10361
  var kConnector = /* @__PURE__ */ Symbol("connector");
10362
+ var kRequestTls = /* @__PURE__ */ Symbol("request tls settings");
10170
10363
  var experimentalWarningEmitted = false;
10171
10364
  var Socks5ProxyAgent = class extends DispatcherBase {
10172
10365
  constructor(proxyUrl, options = {}) {
@@ -10187,6 +10380,8 @@ var require_socks5_proxy_agent = __commonJS({
10187
10380
  }
10188
10381
  this[kProxyUrl] = url;
10189
10382
  this[kProxyHeaders] = options.headers || {};
10383
+ this[kProxyProtocol] = options.proxyTls ? "https:" : "http:";
10384
+ this[kRequestTls] = options.requestTls;
10190
10385
  this[kProxyAuth] = {
10191
10386
  username: options.username || (url.username ? decodeURIComponent(url.username) : null),
10192
10387
  password: options.password || (url.password ? decodeURIComponent(url.password) : null)
@@ -10195,7 +10390,7 @@ var require_socks5_proxy_agent = __commonJS({
10195
10390
  ...options.proxyTls,
10196
10391
  servername: options.proxyTls?.servername || url.hostname
10197
10392
  });
10198
- this[kPool] = null;
10393
+ this[kPools] = /* @__PURE__ */ new Map();
10199
10394
  }
10200
10395
  /**
10201
10396
  * Create a SOCKS5 connection to the proxy
@@ -10205,20 +10400,18 @@ var require_socks5_proxy_agent = __commonJS({
10205
10400
  const proxyPort = parseInt(this[kProxyUrl].port) || 1080;
10206
10401
  debug("creating SOCKS5 connection to", proxyHost, proxyPort);
10207
10402
  const socket = await new Promise((resolve6, reject) => {
10208
- const onConnect = () => {
10209
- socket2.removeListener("error", onError);
10210
- resolve6(socket2);
10211
- };
10212
- const onError = (err) => {
10213
- socket2.removeListener("connect", onConnect);
10214
- reject(err);
10215
- };
10216
- const socket2 = net.connect({
10403
+ this[kConnector]({
10404
+ hostname: proxyHost,
10217
10405
  host: proxyHost,
10218
- port: proxyPort
10406
+ port: proxyPort,
10407
+ protocol: this[kProxyProtocol]
10408
+ }, (err, socket2) => {
10409
+ if (err) {
10410
+ reject(err);
10411
+ } else {
10412
+ resolve6(socket2);
10413
+ }
10219
10414
  });
10220
- socket2.once("connect", onConnect);
10221
- socket2.once("error", onError);
10222
10415
  });
10223
10416
  const socks5Client = new Socks5Client(socket, this[kProxyAuth]);
10224
10417
  socks5Client.on("error", (err) => {
@@ -10240,7 +10433,7 @@ var require_socks5_proxy_agent = __commonJS({
10240
10433
  socks5Client.removeListener("authenticated", onAuthenticated);
10241
10434
  reject(err);
10242
10435
  };
10243
- if (socks5Client.state === "authenticated") {
10436
+ if (socks5Client.state === STATES.AUTHENTICATED) {
10244
10437
  clearTimeout(timeout);
10245
10438
  resolve6();
10246
10439
  } else {
@@ -10272,12 +10465,14 @@ var require_socks5_proxy_agent = __commonJS({
10272
10465
  /**
10273
10466
  * Dispatch a request through the SOCKS5 proxy
10274
10467
  */
10275
- async [kDispatch](opts, handler) {
10468
+ [kDispatch](opts, handler) {
10276
10469
  const { origin } = opts;
10277
10470
  debug("dispatching request to", origin, "via SOCKS5");
10278
10471
  try {
10279
- if (!this[kPool] || this[kPool].destroyed || this[kPool].closed) {
10280
- this[kPool] = new Pool(origin, {
10472
+ const originKey = String(origin);
10473
+ let pool = this[kPools].get(originKey);
10474
+ if (!pool || pool.destroyed || pool.closed) {
10475
+ pool = new Pool(origin, {
10281
10476
  pipelining: opts.pipelining,
10282
10477
  connections: opts.connections,
10283
10478
  connect: async (connectOpts, callback) => {
@@ -10294,9 +10489,9 @@ var require_socks5_proxy_agent = __commonJS({
10294
10489
  }
10295
10490
  debug("upgrading to TLS");
10296
10491
  finalSocket = tls.connect({
10492
+ ...this[kRequestTls],
10297
10493
  socket,
10298
- servername: targetHost,
10299
- ...connectOpts.tls || {}
10494
+ servername: this[kRequestTls]?.servername || targetHost
10300
10495
  });
10301
10496
  await new Promise((resolve6, reject) => {
10302
10497
  finalSocket.once("secureConnect", resolve6);
@@ -10310,35 +10505,46 @@ var require_socks5_proxy_agent = __commonJS({
10310
10505
  }
10311
10506
  }
10312
10507
  });
10508
+ this[kPools].set(originKey, pool);
10313
10509
  }
10314
- return this[kPool][kDispatch](opts, handler);
10510
+ return pool[kDispatch](opts, handler);
10315
10511
  } catch (err) {
10316
10512
  debug("dispatch error:", err);
10317
- if (typeof handler.onError === "function") {
10513
+ if (typeof handler.onResponseError === "function") {
10514
+ handler.onResponseError(null, err);
10515
+ return false;
10516
+ } else if (typeof handler.onError === "function") {
10318
10517
  handler.onError(err);
10518
+ return false;
10319
10519
  } else {
10320
10520
  throw err;
10321
10521
  }
10322
10522
  }
10323
10523
  }
10324
10524
  async [kClose]() {
10325
- if (this[kPool]) {
10326
- await this[kPool].close();
10525
+ const closePromises = [];
10526
+ for (const pool of this[kPools].values()) {
10527
+ closePromises.push(pool.close());
10327
10528
  }
10529
+ this[kPools].clear();
10530
+ await Promise.all(closePromises);
10328
10531
  }
10329
10532
  async [kDestroy](err) {
10330
- if (this[kPool]) {
10331
- await this[kPool].destroy(err);
10533
+ const destroyPromises = [];
10534
+ for (const pool of this[kPools].values()) {
10535
+ destroyPromises.push(pool.destroy(err));
10332
10536
  }
10537
+ this[kPools].clear();
10538
+ await Promise.all(destroyPromises);
10333
10539
  }
10334
10540
  };
10335
10541
  module.exports = Socks5ProxyAgent;
10336
10542
  }
10337
10543
  });
10338
10544
 
10339
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/proxy-agent.js
10545
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/proxy-agent.js
10340
10546
  var require_proxy_agent = __commonJS({
10341
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/proxy-agent.js"(exports, module) {
10547
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/proxy-agent.js"(exports, module) {
10342
10548
  "use strict";
10343
10549
  var { kProxy, kClose, kDestroy, kDispatch } = require_symbols();
10344
10550
  var Agent = require_agent();
@@ -10454,7 +10660,8 @@ var require_proxy_agent = __commonJS({
10454
10660
  factory: agentFactory,
10455
10661
  username: opts.username || username,
10456
10662
  password: opts.password || password,
10457
- proxyTls: opts.proxyTls
10663
+ proxyTls: opts.proxyTls,
10664
+ requestTls: opts.requestTls
10458
10665
  });
10459
10666
  }
10460
10667
  if (!this[kTunnelProxy] && protocol2 === "http:" && this[kProxy].protocol === "http:") {
@@ -10592,9 +10799,9 @@ var require_proxy_agent = __commonJS({
10592
10799
  }
10593
10800
  });
10594
10801
 
10595
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js
10802
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js
10596
10803
  var require_env_http_proxy_agent = __commonJS({
10597
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports, module) {
10804
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports, module) {
10598
10805
  "use strict";
10599
10806
  var DispatcherBase = require_dispatcher_base();
10600
10807
  var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols();
@@ -10715,9 +10922,9 @@ var require_env_http_proxy_agent = __commonJS({
10715
10922
  }
10716
10923
  });
10717
10924
 
10718
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/retry-handler.js
10925
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/retry-handler.js
10719
10926
  var require_retry_handler = __commonJS({
10720
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/retry-handler.js"(exports, module) {
10927
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/retry-handler.js"(exports, module) {
10721
10928
  "use strict";
10722
10929
  var assert = __require("node:assert");
10723
10930
  var { kRetryHandlerDefaultRetry } = require_symbols();
@@ -10732,6 +10939,23 @@ var require_retry_handler = __commonJS({
10732
10939
  const retryTime = new Date(retryAfter).getTime();
10733
10940
  return isNaN(retryTime) ? 0 : retryTime - Date.now();
10734
10941
  }
10942
+ function validatePartialResponseContentLength(headers, range, statusCode, retryCount) {
10943
+ const contentLength = headers["content-length"];
10944
+ if (contentLength == null) {
10945
+ return;
10946
+ }
10947
+ if (!Number.isFinite(range.start) || !Number.isFinite(range.end)) {
10948
+ return;
10949
+ }
10950
+ const length = Number(contentLength);
10951
+ const expectedLength = range.end - range.start + 1;
10952
+ if (!Number.isFinite(length) || length !== expectedLength) {
10953
+ throw new RequestRetryError("Content-Length mismatch", statusCode, {
10954
+ headers,
10955
+ data: { count: retryCount }
10956
+ });
10957
+ }
10958
+ }
10735
10959
  var RetryHandler = class _RetryHandler {
10736
10960
  constructor(opts, { dispatch, handler }) {
10737
10961
  const { retryOptions, ...dispatchOpts } = opts;
@@ -10900,6 +11124,7 @@ var require_retry_handler = __commonJS({
10900
11124
  data: { count: this.retryCount }
10901
11125
  });
10902
11126
  }
11127
+ validatePartialResponseContentLength(headers, contentRange, statusCode, this.retryCount);
10903
11128
  const { start, size, end = size ? size - 1 : null } = contentRange;
10904
11129
  assert(this.start === start, "content-range mismatch");
10905
11130
  assert(this.end == null || this.end === end, "content-range mismatch");
@@ -10918,6 +11143,7 @@ var require_retry_handler = __commonJS({
10918
11143
  );
10919
11144
  return;
10920
11145
  }
11146
+ validatePartialResponseContentLength(headers, range, statusCode, this.retryCount);
10921
11147
  const { start, size, end = size ? size - 1 : null } = range;
10922
11148
  assert(
10923
11149
  start != null && Number.isFinite(start),
@@ -11024,9 +11250,9 @@ var require_retry_handler = __commonJS({
11024
11250
  }
11025
11251
  });
11026
11252
 
11027
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/retry-agent.js
11253
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/retry-agent.js
11028
11254
  var require_retry_agent = __commonJS({
11029
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/retry-agent.js"(exports, module) {
11255
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/retry-agent.js"(exports, module) {
11030
11256
  "use strict";
11031
11257
  var Dispatcher2 = require_dispatcher();
11032
11258
  var RetryHandler = require_retry_handler();
@@ -11059,9 +11285,9 @@ var require_retry_agent = __commonJS({
11059
11285
  }
11060
11286
  });
11061
11287
 
11062
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/h2c-client.js
11288
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/h2c-client.js
11063
11289
  var require_h2c_client = __commonJS({
11064
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/dispatcher/h2c-client.js"(exports, module) {
11290
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/h2c-client.js"(exports, module) {
11065
11291
  "use strict";
11066
11292
  var { InvalidArgumentError } = require_errors();
11067
11293
  var Client = require_client();
@@ -11075,7 +11301,7 @@ var require_h2c_client = __commonJS({
11075
11301
  "h2c-client: Only h2c protocol is supported"
11076
11302
  );
11077
11303
  }
11078
- const { connect, maxConcurrentStreams, pipelining, ...opts } = clientOpts ?? {};
11304
+ const { maxConcurrentStreams, pipelining, ...opts } = clientOpts ?? {};
11079
11305
  let defaultMaxConcurrentStreams = 100;
11080
11306
  let defaultPipelining = 100;
11081
11307
  if (maxConcurrentStreams != null && Number.isInteger(maxConcurrentStreams) && maxConcurrentStreams > 0) {
@@ -11102,9 +11328,9 @@ var require_h2c_client = __commonJS({
11102
11328
  }
11103
11329
  });
11104
11330
 
11105
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/readable.js
11331
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/readable.js
11106
11332
  var require_readable = __commonJS({
11107
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/readable.js"(exports, module) {
11333
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/readable.js"(exports, module) {
11108
11334
  "use strict";
11109
11335
  var assert = __require("node:assert");
11110
11336
  var { Readable } = __require("node:stream");
@@ -11504,9 +11730,9 @@ var require_readable = __commonJS({
11504
11730
  }
11505
11731
  });
11506
11732
 
11507
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/api-request.js
11733
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-request.js
11508
11734
  var require_api_request = __commonJS({
11509
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/api-request.js"(exports, module) {
11735
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-request.js"(exports, module) {
11510
11736
  "use strict";
11511
11737
  var assert = __require("node:assert");
11512
11738
  var { AsyncResource } = __require("node:async_hooks");
@@ -11525,7 +11751,7 @@ var require_api_request = __commonJS({
11525
11751
  if (typeof callback !== "function") {
11526
11752
  throw new InvalidArgumentError("invalid callback");
11527
11753
  }
11528
- if (highWaterMark && (typeof highWaterMark !== "number" || highWaterMark < 0)) {
11754
+ if (highWaterMark != null && (!Number.isFinite(highWaterMark) || highWaterMark < 0)) {
11529
11755
  throw new InvalidArgumentError("invalid highWaterMark");
11530
11756
  }
11531
11757
  if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") {
@@ -11682,9 +11908,9 @@ var require_api_request = __commonJS({
11682
11908
  }
11683
11909
  });
11684
11910
 
11685
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/abort-signal.js
11911
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/abort-signal.js
11686
11912
  var require_abort_signal = __commonJS({
11687
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/abort-signal.js"(exports, module) {
11913
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/abort-signal.js"(exports, module) {
11688
11914
  "use strict";
11689
11915
  var { addAbortListener } = require_util();
11690
11916
  var { RequestAbortedError } = require_errors();
@@ -11734,9 +11960,9 @@ var require_abort_signal = __commonJS({
11734
11960
  }
11735
11961
  });
11736
11962
 
11737
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/api-stream.js
11963
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-stream.js
11738
11964
  var require_api_stream = __commonJS({
11739
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/api-stream.js"(exports, module) {
11965
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-stream.js"(exports, module) {
11740
11966
  "use strict";
11741
11967
  var assert = __require("node:assert");
11742
11968
  var { finished } = __require("node:stream");
@@ -11895,9 +12121,9 @@ var require_api_stream = __commonJS({
11895
12121
  }
11896
12122
  });
11897
12123
 
11898
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/api-pipeline.js
12124
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-pipeline.js
11899
12125
  var require_api_pipeline = __commonJS({
11900
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/api-pipeline.js"(exports, module) {
12126
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-pipeline.js"(exports, module) {
11901
12127
  "use strict";
11902
12128
  var {
11903
12129
  Readable,
@@ -12096,9 +12322,9 @@ var require_api_pipeline = __commonJS({
12096
12322
  }
12097
12323
  });
12098
12324
 
12099
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/api-upgrade.js
12325
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-upgrade.js
12100
12326
  var require_api_upgrade = __commonJS({
12101
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/api-upgrade.js"(exports, module) {
12327
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-upgrade.js"(exports, module) {
12102
12328
  "use strict";
12103
12329
  var { InvalidArgumentError, SocketError } = require_errors();
12104
12330
  var { AsyncResource } = __require("node:async_hooks");
@@ -12190,9 +12416,9 @@ var require_api_upgrade = __commonJS({
12190
12416
  }
12191
12417
  });
12192
12418
 
12193
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/api-connect.js
12419
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-connect.js
12194
12420
  var require_api_connect = __commonJS({
12195
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/api-connect.js"(exports, module) {
12421
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-connect.js"(exports, module) {
12196
12422
  "use strict";
12197
12423
  var assert = __require("node:assert");
12198
12424
  var { AsyncResource } = __require("node:async_hooks");
@@ -12281,9 +12507,9 @@ var require_api_connect = __commonJS({
12281
12507
  }
12282
12508
  });
12283
12509
 
12284
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/index.js
12510
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/index.js
12285
12511
  var require_api = __commonJS({
12286
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/api/index.js"(exports, module) {
12512
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/index.js"(exports, module) {
12287
12513
  "use strict";
12288
12514
  module.exports.request = require_api_request();
12289
12515
  module.exports.stream = require_api_stream();
@@ -12293,9 +12519,9 @@ var require_api = __commonJS({
12293
12519
  }
12294
12520
  });
12295
12521
 
12296
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-errors.js
12522
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-errors.js
12297
12523
  var require_mock_errors = __commonJS({
12298
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-errors.js"(exports, module) {
12524
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-errors.js"(exports, module) {
12299
12525
  "use strict";
12300
12526
  var { UndiciError } = require_errors();
12301
12527
  var kMockNotMatchedError = /* @__PURE__ */ Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED");
@@ -12319,9 +12545,9 @@ var require_mock_errors = __commonJS({
12319
12545
  }
12320
12546
  });
12321
12547
 
12322
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-symbols.js
12548
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-symbols.js
12323
12549
  var require_mock_symbols = __commonJS({
12324
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-symbols.js"(exports, module) {
12550
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-symbols.js"(exports, module) {
12325
12551
  "use strict";
12326
12552
  module.exports = {
12327
12553
  kAgent: /* @__PURE__ */ Symbol("agent"),
@@ -12356,9 +12582,9 @@ var require_mock_symbols = __commonJS({
12356
12582
  }
12357
12583
  });
12358
12584
 
12359
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-utils.js
12585
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-utils.js
12360
12586
  var require_mock_utils = __commonJS({
12361
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-utils.js"(exports, module) {
12587
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-utils.js"(exports, module) {
12362
12588
  "use strict";
12363
12589
  var { MockNotMatchedError } = require_mock_errors();
12364
12590
  var {
@@ -12733,9 +12959,9 @@ var require_mock_utils = __commonJS({
12733
12959
  }
12734
12960
  });
12735
12961
 
12736
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-interceptor.js
12962
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-interceptor.js
12737
12963
  var require_mock_interceptor = __commonJS({
12738
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-interceptor.js"(exports, module) {
12964
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-interceptor.js"(exports, module) {
12739
12965
  "use strict";
12740
12966
  var { getResponseData, buildKey, addMockDispatch } = require_mock_utils();
12741
12967
  var {
@@ -12897,9 +13123,9 @@ var require_mock_interceptor = __commonJS({
12897
13123
  }
12898
13124
  });
12899
13125
 
12900
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-client.js
13126
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-client.js
12901
13127
  var require_mock_client = __commonJS({
12902
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-client.js"(exports, module) {
13128
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-client.js"(exports, module) {
12903
13129
  "use strict";
12904
13130
  var { promisify } = __require("node:util");
12905
13131
  var Client = require_client();
@@ -12958,19 +13184,19 @@ var require_mock_client = __commonJS({
12958
13184
  }
12959
13185
  });
12960
13186
 
12961
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-call-history.js
13187
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-call-history.js
12962
13188
  var require_mock_call_history = __commonJS({
12963
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-call-history.js"(exports, module) {
13189
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-call-history.js"(exports, module) {
12964
13190
  "use strict";
12965
13191
  var { kMockCallHistoryAddLog } = require_mock_symbols();
12966
13192
  var { InvalidArgumentError } = require_errors();
12967
- function handleFilterCallsWithOptions(criteria, options, handler, store) {
13193
+ function handleFilterCallsWithOptions(criteria, options, handler, store, allLogs) {
12968
13194
  switch (options.operator) {
12969
13195
  case "OR":
12970
- store.push(...handler(criteria));
13196
+ store.push(...handler(criteria, allLogs));
12971
13197
  return store;
12972
13198
  case "AND":
12973
- return handler.call({ logs: store }, criteria);
13199
+ return handler(criteria, store);
12974
13200
  default:
12975
13201
  throw new InvalidArgumentError("options.operator must to be a case insensitive string equal to 'OR' or 'AND'");
12976
13202
  }
@@ -12989,14 +13215,14 @@ var require_mock_call_history = __commonJS({
12989
13215
  return finalOptions;
12990
13216
  }
12991
13217
  function makeFilterCalls(parameterName) {
12992
- return (parameterValue) => {
13218
+ return (parameterValue, logs) => {
12993
13219
  if (typeof parameterValue === "string" || parameterValue == null) {
12994
- return this.logs.filter((log) => {
13220
+ return logs.filter((log) => {
12995
13221
  return log[parameterName] === parameterValue;
12996
13222
  });
12997
13223
  }
12998
13224
  if (parameterValue instanceof RegExp) {
12999
- return this.logs.filter((log) => {
13225
+ return logs.filter((log) => {
13000
13226
  return parameterValue.test(log[parameterName]);
13001
13227
  });
13002
13228
  }
@@ -13101,30 +13327,30 @@ var require_mock_call_history = __commonJS({
13101
13327
  return this.logs;
13102
13328
  }
13103
13329
  const finalOptions = { operator: "OR", ...buildAndValidateFilterCallsOptions(options) };
13104
- let maybeDuplicatedLogsFiltered = [];
13330
+ let maybeDuplicatedLogsFiltered = finalOptions.operator === "AND" ? this.logs : [];
13105
13331
  if ("protocol" in criteria) {
13106
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.protocol, finalOptions, this.filterCallsByProtocol, maybeDuplicatedLogsFiltered);
13332
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.protocol, finalOptions, this.filterCallsByProtocol, maybeDuplicatedLogsFiltered, this.logs);
13107
13333
  }
13108
13334
  if ("host" in criteria) {
13109
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.host, finalOptions, this.filterCallsByHost, maybeDuplicatedLogsFiltered);
13335
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.host, finalOptions, this.filterCallsByHost, maybeDuplicatedLogsFiltered, this.logs);
13110
13336
  }
13111
13337
  if ("port" in criteria) {
13112
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.port, finalOptions, this.filterCallsByPort, maybeDuplicatedLogsFiltered);
13338
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.port, finalOptions, this.filterCallsByPort, maybeDuplicatedLogsFiltered, this.logs);
13113
13339
  }
13114
13340
  if ("origin" in criteria) {
13115
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.origin, finalOptions, this.filterCallsByOrigin, maybeDuplicatedLogsFiltered);
13341
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.origin, finalOptions, this.filterCallsByOrigin, maybeDuplicatedLogsFiltered, this.logs);
13116
13342
  }
13117
13343
  if ("path" in criteria) {
13118
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.path, finalOptions, this.filterCallsByPath, maybeDuplicatedLogsFiltered);
13344
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.path, finalOptions, this.filterCallsByPath, maybeDuplicatedLogsFiltered, this.logs);
13119
13345
  }
13120
13346
  if ("hash" in criteria) {
13121
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.hash, finalOptions, this.filterCallsByHash, maybeDuplicatedLogsFiltered);
13347
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.hash, finalOptions, this.filterCallsByHash, maybeDuplicatedLogsFiltered, this.logs);
13122
13348
  }
13123
13349
  if ("fullUrl" in criteria) {
13124
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.fullUrl, finalOptions, this.filterCallsByFullUrl, maybeDuplicatedLogsFiltered);
13350
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.fullUrl, finalOptions, this.filterCallsByFullUrl, maybeDuplicatedLogsFiltered, this.logs);
13125
13351
  }
13126
13352
  if ("method" in criteria) {
13127
- maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.method, finalOptions, this.filterCallsByMethod, maybeDuplicatedLogsFiltered);
13353
+ maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.method, finalOptions, this.filterCallsByMethod, maybeDuplicatedLogsFiltered, this.logs);
13128
13354
  }
13129
13355
  const uniqLogsFiltered = [...new Set(maybeDuplicatedLogsFiltered)];
13130
13356
  return uniqLogsFiltered;
@@ -13158,9 +13384,9 @@ var require_mock_call_history = __commonJS({
13158
13384
  }
13159
13385
  });
13160
13386
 
13161
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-pool.js
13387
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-pool.js
13162
13388
  var require_mock_pool = __commonJS({
13163
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-pool.js"(exports, module) {
13389
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-pool.js"(exports, module) {
13164
13390
  "use strict";
13165
13391
  var { promisify } = __require("node:util");
13166
13392
  var Pool = require_pool();
@@ -13219,9 +13445,9 @@ var require_mock_pool = __commonJS({
13219
13445
  }
13220
13446
  });
13221
13447
 
13222
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/pending-interceptors-formatter.js
13448
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js
13223
13449
  var require_pending_interceptors_formatter = __commonJS({
13224
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports, module) {
13450
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports, module) {
13225
13451
  "use strict";
13226
13452
  var { Transform } = __require("node:stream");
13227
13453
  var { Console } = __require("node:console");
@@ -13260,9 +13486,9 @@ var require_pending_interceptors_formatter = __commonJS({
13260
13486
  }
13261
13487
  });
13262
13488
 
13263
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-agent.js
13489
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-agent.js
13264
13490
  var require_mock_agent = __commonJS({
13265
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/mock-agent.js"(exports, module) {
13491
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/mock-agent.js"(exports, module) {
13266
13492
  "use strict";
13267
13493
  var { kClients } = require_symbols();
13268
13494
  var Agent = require_agent();
@@ -13444,9 +13670,9 @@ ${pendingInterceptorsFormatter.format(pending)}`.trim()
13444
13670
  }
13445
13671
  });
13446
13672
 
13447
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/snapshot-utils.js
13673
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/snapshot-utils.js
13448
13674
  var require_snapshot_utils = __commonJS({
13449
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/snapshot-utils.js"(exports, module) {
13675
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/snapshot-utils.js"(exports, module) {
13450
13676
  "use strict";
13451
13677
  var { InvalidArgumentError } = require_errors();
13452
13678
  var { runtimeFeatures } = require_runtime_features();
@@ -13530,9 +13756,9 @@ var require_snapshot_utils = __commonJS({
13530
13756
  }
13531
13757
  });
13532
13758
 
13533
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/snapshot-recorder.js
13759
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/snapshot-recorder.js
13534
13760
  var require_snapshot_recorder = __commonJS({
13535
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/snapshot-recorder.js"(exports, module) {
13761
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/snapshot-recorder.js"(exports, module) {
13536
13762
  "use strict";
13537
13763
  var { writeFile, readFile: readFile4, mkdir: mkdir4 } = __require("node:fs/promises");
13538
13764
  var { dirname: dirname4, resolve: resolve6 } = __require("node:path");
@@ -13906,9 +14132,9 @@ var require_snapshot_recorder = __commonJS({
13906
14132
  }
13907
14133
  });
13908
14134
 
13909
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/snapshot-agent.js
14135
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/snapshot-agent.js
13910
14136
  var require_snapshot_agent = __commonJS({
13911
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/mock/snapshot-agent.js"(exports, module) {
14137
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/snapshot-agent.js"(exports, module) {
13912
14138
  "use strict";
13913
14139
  var Agent = require_agent();
13914
14140
  var MockAgent = require_mock_agent();
@@ -14193,11 +14419,12 @@ var require_snapshot_agent = __commonJS({
14193
14419
  }
14194
14420
  });
14195
14421
 
14196
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/global.js
14422
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/global.js
14197
14423
  var require_global2 = __commonJS({
14198
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/global.js"(exports, module) {
14424
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/global.js"(exports, module) {
14199
14425
  "use strict";
14200
- var globalDispatcher = /* @__PURE__ */ Symbol.for("undici.globalDispatcher.1");
14426
+ var globalDispatcher = /* @__PURE__ */ Symbol.for("undici.globalDispatcher.2");
14427
+ var legacyGlobalDispatcher = /* @__PURE__ */ Symbol.for("undici.globalDispatcher.1");
14201
14428
  var { InvalidArgumentError } = require_errors();
14202
14429
  var Agent = require_agent();
14203
14430
  if (getGlobalDispatcher2() === void 0) {
@@ -14213,9 +14440,15 @@ var require_global2 = __commonJS({
14213
14440
  enumerable: false,
14214
14441
  configurable: false
14215
14442
  });
14443
+ Object.defineProperty(globalThis, legacyGlobalDispatcher, {
14444
+ value: agent,
14445
+ writable: true,
14446
+ enumerable: false,
14447
+ configurable: false
14448
+ });
14216
14449
  }
14217
14450
  function getGlobalDispatcher2() {
14218
- return globalThis[globalDispatcher];
14451
+ return globalThis[legacyGlobalDispatcher];
14219
14452
  }
14220
14453
  var installedExports = (
14221
14454
  /** @type {const} */
@@ -14240,9 +14473,9 @@ var require_global2 = __commonJS({
14240
14473
  }
14241
14474
  });
14242
14475
 
14243
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/decorator-handler.js
14476
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/decorator-handler.js
14244
14477
  var require_decorator_handler = __commonJS({
14245
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/decorator-handler.js"(exports, module) {
14478
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/decorator-handler.js"(exports, module) {
14246
14479
  "use strict";
14247
14480
  var assert = __require("node:assert");
14248
14481
  var WrapHandler = require_wrap_handler();
@@ -14296,9 +14529,9 @@ var require_decorator_handler = __commonJS({
14296
14529
  }
14297
14530
  });
14298
14531
 
14299
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/redirect-handler.js
14532
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/redirect-handler.js
14300
14533
  var require_redirect_handler = __commonJS({
14301
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/redirect-handler.js"(exports, module) {
14534
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/redirect-handler.js"(exports, module) {
14302
14535
  "use strict";
14303
14536
  var util = require_util();
14304
14537
  var { kBodyUsed } = require_symbols();
@@ -14456,9 +14689,9 @@ var require_redirect_handler = __commonJS({
14456
14689
  }
14457
14690
  });
14458
14691
 
14459
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/redirect.js
14692
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/redirect.js
14460
14693
  var require_redirect = __commonJS({
14461
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/redirect.js"(exports, module) {
14694
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/redirect.js"(exports, module) {
14462
14695
  "use strict";
14463
14696
  var RedirectHandler = require_redirect_handler();
14464
14697
  function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections } = {}) {
@@ -14478,9 +14711,9 @@ var require_redirect = __commonJS({
14478
14711
  }
14479
14712
  });
14480
14713
 
14481
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/response-error.js
14714
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/response-error.js
14482
14715
  var require_response_error = __commonJS({
14483
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/response-error.js"(exports, module) {
14716
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/response-error.js"(exports, module) {
14484
14717
  "use strict";
14485
14718
  var DecoratorHandler = require_decorator_handler();
14486
14719
  var { ResponseError } = require_errors();
@@ -14560,9 +14793,9 @@ var require_response_error = __commonJS({
14560
14793
  }
14561
14794
  });
14562
14795
 
14563
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/retry.js
14796
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/retry.js
14564
14797
  var require_retry = __commonJS({
14565
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/retry.js"(exports, module) {
14798
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/retry.js"(exports, module) {
14566
14799
  "use strict";
14567
14800
  var RetryHandler = require_retry_handler();
14568
14801
  module.exports = (globalOpts) => {
@@ -14584,9 +14817,9 @@ var require_retry = __commonJS({
14584
14817
  }
14585
14818
  });
14586
14819
 
14587
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/dump.js
14820
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/dump.js
14588
14821
  var require_dump = __commonJS({
14589
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/dump.js"(exports, module) {
14822
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/dump.js"(exports, module) {
14590
14823
  "use strict";
14591
14824
  var { InvalidArgumentError, RequestAbortedError } = require_errors();
14592
14825
  var DecoratorHandler = require_decorator_handler();
@@ -14670,9 +14903,9 @@ var require_dump = __commonJS({
14670
14903
  }
14671
14904
  });
14672
14905
 
14673
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/dns.js
14906
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/dns.js
14674
14907
  var require_dns = __commonJS({
14675
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/dns.js"(exports, module) {
14908
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/dns.js"(exports, module) {
14676
14909
  "use strict";
14677
14910
  var { isIP } = __require("node:net");
14678
14911
  var { lookup } = __require("node:dns");
@@ -15109,22 +15342,134 @@ var require_dns = __commonJS({
15109
15342
  }
15110
15343
  });
15111
15344
 
15112
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/cache.js
15345
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/cache.js
15113
15346
  var require_cache = __commonJS({
15114
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/cache.js"(exports, module) {
15347
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/cache.js"(exports, module) {
15115
15348
  "use strict";
15116
15349
  var {
15117
15350
  safeHTTPMethods,
15118
15351
  pathHasQueryOrFragment,
15119
- hasSafeIterator
15352
+ hasSafeIterator,
15353
+ isValidHTTPToken
15120
15354
  } = require_util();
15121
15355
  var { serializePathWithQuery } = require_util();
15356
+ var MAX_DELTA_SECONDS = 2147483647;
15357
+ var RESTRICTIVE_DIRECTIVE_NAMES = ["no-store", "private", "no-cache"];
15358
+ var kInvalidCacheControlDirectives = /* @__PURE__ */ Symbol("invalid cache-control directives");
15359
+ function trimOWS(value) {
15360
+ return value.replace(/^[\t ]+|[\t ]+$/g, "");
15361
+ }
15362
+ function arrayIncludes(array, value) {
15363
+ for (let i = 0; i < array.length; i++) {
15364
+ if (array[i] === value) {
15365
+ return true;
15366
+ }
15367
+ }
15368
+ return false;
15369
+ }
15370
+ function trimOWSStart(value) {
15371
+ return value.replace(/^[\t ]+/, "");
15372
+ }
15373
+ function trimOWSEnd(value) {
15374
+ return value.replace(/[\t ]+$/, "");
15375
+ }
15376
+ function findUnescapedQuote(value, start) {
15377
+ let escaped = false;
15378
+ for (let i = start; i < value.length; i++) {
15379
+ if (escaped) {
15380
+ escaped = false;
15381
+ } else if (value[i] === "\\") {
15382
+ escaped = true;
15383
+ } else if (value[i] === '"') {
15384
+ return i;
15385
+ }
15386
+ }
15387
+ return -1;
15388
+ }
15389
+ function splitCacheControlHeaderValue(value) {
15390
+ const directives = [];
15391
+ let start = 0;
15392
+ let quoteStart = -1;
15393
+ let inQuote = false;
15394
+ let escaped = false;
15395
+ for (let i = 0; i < value.length; i++) {
15396
+ if (inQuote) {
15397
+ if (escaped) {
15398
+ escaped = false;
15399
+ } else if (value[i] === "\\") {
15400
+ escaped = true;
15401
+ } else if (value[i] === '"') {
15402
+ inQuote = false;
15403
+ quoteStart = -1;
15404
+ }
15405
+ } else if (value[i] === '"') {
15406
+ inQuote = true;
15407
+ quoteStart = i;
15408
+ } else if (value[i] === ",") {
15409
+ directives.push({ value: value.substring(start, i), fromMalformedQuote: false });
15410
+ start = i + 1;
15411
+ }
15412
+ }
15413
+ if (!inQuote) {
15414
+ directives.push({ value: value.substring(start), fromMalformedQuote: false });
15415
+ return directives;
15416
+ }
15417
+ const tail = value.substring(start);
15418
+ const quoteOffset = quoteStart - start;
15419
+ let tailStart = 0;
15420
+ for (let i = 0; i < tail.length; i++) {
15421
+ if (tail[i] === ",") {
15422
+ directives.push({
15423
+ value: tail.substring(tailStart, i),
15424
+ fromMalformedQuote: tailStart > quoteOffset
15425
+ });
15426
+ tailStart = i + 1;
15427
+ }
15428
+ }
15429
+ directives.push({
15430
+ value: tail.substring(tailStart),
15431
+ fromMalformedQuote: tailStart > quoteOffset
15432
+ });
15433
+ return directives;
15434
+ }
15435
+ function markInvalidCacheControlDirective(directives, key) {
15436
+ let invalidDirectives = directives[kInvalidCacheControlDirectives];
15437
+ if (invalidDirectives === void 0) {
15438
+ invalidDirectives = /* @__PURE__ */ new Set();
15439
+ Object.defineProperty(directives, kInvalidCacheControlDirectives, {
15440
+ value: invalidDirectives
15441
+ });
15442
+ }
15443
+ invalidDirectives.add(key);
15444
+ }
15445
+ function hasInvalidCacheControlDirective(directives, key) {
15446
+ return directives[kInvalidCacheControlDirectives]?.has(key) === true;
15447
+ }
15448
+ function getMalformedRestrictiveDirectiveName(key) {
15449
+ for (const directiveName of RESTRICTIVE_DIRECTIVE_NAMES) {
15450
+ if (key.startsWith(directiveName) && key.length > directiveName.length && !isValidHTTPToken(key[directiveName.length])) {
15451
+ return directiveName;
15452
+ }
15453
+ }
15454
+ let tokenOnlyKey = "";
15455
+ let hasInvalidTokenChar = false;
15456
+ for (let i = 0; i < key.length; i++) {
15457
+ if (isValidHTTPToken(key[i])) {
15458
+ tokenOnlyKey += key[i];
15459
+ } else {
15460
+ hasInvalidTokenChar = true;
15461
+ }
15462
+ }
15463
+ if (hasInvalidTokenChar && arrayIncludes(RESTRICTIVE_DIRECTIVE_NAMES, tokenOnlyKey)) {
15464
+ return tokenOnlyKey;
15465
+ }
15466
+ }
15122
15467
  function makeCacheKey(opts) {
15123
15468
  if (!opts.origin) {
15124
15469
  throw new Error("opts.origin is undefined");
15125
15470
  }
15126
15471
  let fullPath = opts.path || "/";
15127
- if (opts.query && !pathHasQueryOrFragment(opts.path)) {
15472
+ if (opts.query && !pathHasQueryOrFragment(fullPath)) {
15128
15473
  fullPath = serializePathWithQuery(fullPath, opts.query);
15129
15474
  }
15130
15475
  return {
@@ -15134,6 +15479,18 @@ var require_cache = __commonJS({
15134
15479
  headers: opts.headers
15135
15480
  };
15136
15481
  }
15482
+ function appendHeader(headers, key, val) {
15483
+ const headerName = key.toLowerCase();
15484
+ const current = headers[headerName];
15485
+ const values = Array.isArray(val) ? val : [val];
15486
+ if (current === void 0) {
15487
+ headers[headerName] = Array.isArray(val) ? val.slice() : val;
15488
+ } else if (Array.isArray(current)) {
15489
+ current.push(...values);
15490
+ } else {
15491
+ headers[headerName] = [current, ...values];
15492
+ }
15493
+ }
15137
15494
  function normalizeHeaders(opts) {
15138
15495
  let headers;
15139
15496
  if (opts.headers == null) {
@@ -15149,11 +15506,11 @@ var require_cache = __commonJS({
15149
15506
  if (typeof key !== "string" || typeof val !== "string") {
15150
15507
  throw new Error("opts.headers is not a valid header map");
15151
15508
  }
15152
- headers[key.toLowerCase()] = val;
15509
+ appendHeader(headers, key, val);
15153
15510
  }
15154
15511
  } else {
15155
15512
  for (const key of Object.keys(opts.headers)) {
15156
- headers[key.toLowerCase()] = opts.headers[key];
15513
+ appendHeader(headers, key, opts.headers[key]);
15157
15514
  }
15158
15515
  }
15159
15516
  } else {
@@ -15198,25 +15555,32 @@ var require_cache = __commonJS({
15198
15555
  }
15199
15556
  function parseCacheControlHeader(header) {
15200
15557
  const output = {};
15201
- let directives;
15202
- if (Array.isArray(header)) {
15203
- directives = [];
15204
- for (const directive of header) {
15205
- directives.push(...directive.split(","));
15206
- }
15207
- } else {
15208
- directives = header.split(",");
15209
- }
15558
+ const invalidNumericDirectives = /* @__PURE__ */ new Set();
15559
+ const invalidNoArgumentDirectives = /* @__PURE__ */ new Set();
15560
+ const directives = splitCacheControlHeaderValue(Array.isArray(header) ? header.join(",") : header);
15210
15561
  for (let i = 0; i < directives.length; i++) {
15211
- const directive = directives[i].toLowerCase();
15562
+ const directiveRecord = directives[i];
15563
+ const directive = directiveRecord.value.toLowerCase();
15564
+ const fromMalformedQuote = directiveRecord.fromMalformedQuote;
15212
15565
  const keyValueDelimiter = directive.indexOf("=");
15213
15566
  let key;
15214
15567
  let value;
15568
+ let keyHasTrailingWhitespace = false;
15569
+ let valueHasLeadingWhitespace = false;
15215
15570
  if (keyValueDelimiter !== -1) {
15216
- key = directive.substring(0, keyValueDelimiter).trimStart();
15217
- value = directive.substring(keyValueDelimiter + 1);
15571
+ const rawKey = directive.substring(0, keyValueDelimiter);
15572
+ const rawValue = directive.substring(keyValueDelimiter + 1);
15573
+ keyHasTrailingWhitespace = trimOWSEnd(rawKey) !== rawKey;
15574
+ valueHasLeadingWhitespace = trimOWSStart(rawValue) !== rawValue;
15575
+ key = trimOWS(rawKey);
15576
+ value = trimOWSStart(rawValue);
15218
15577
  } else {
15219
- key = directive.trim();
15578
+ key = trimOWS(directive);
15579
+ }
15580
+ const malformedRestrictiveDirectiveName = getMalformedRestrictiveDirectiveName(key);
15581
+ if (malformedRestrictiveDirectiveName !== void 0) {
15582
+ output[malformedRestrictiveDirectiveName] = true;
15583
+ continue;
15220
15584
  }
15221
15585
  switch (key) {
15222
15586
  case "min-fresh":
@@ -15225,45 +15589,85 @@ var require_cache = __commonJS({
15225
15589
  case "s-maxage":
15226
15590
  case "stale-while-revalidate":
15227
15591
  case "stale-if-error": {
15228
- if (value === void 0 || value[0] === " ") {
15592
+ if (fromMalformedQuote || invalidNumericDirectives.has(key)) {
15593
+ continue;
15594
+ }
15595
+ if (value === void 0 || keyHasTrailingWhitespace || valueHasLeadingWhitespace) {
15596
+ delete output[key];
15597
+ invalidNumericDirectives.add(key);
15598
+ markInvalidCacheControlDirective(output, key);
15229
15599
  continue;
15230
15600
  }
15231
15601
  if (value.length >= 2 && value[0] === '"' && value[value.length - 1] === '"') {
15232
15602
  value = value.substring(1, value.length - 1);
15233
15603
  }
15234
- const parsedValue = parseInt(value, 10);
15235
- if (parsedValue !== parsedValue) {
15604
+ if (!/^[0-9]+$/.test(value)) {
15605
+ delete output[key];
15606
+ invalidNumericDirectives.add(key);
15607
+ markInvalidCacheControlDirective(output, key);
15236
15608
  continue;
15237
15609
  }
15238
- if (key === "max-age" && key in output && output[key] >= parsedValue) {
15239
- continue;
15610
+ const parsedValue = Math.min(parseInt(value, 10), MAX_DELTA_SECONDS);
15611
+ if (key === "min-fresh") {
15612
+ if (!(key in output) || output[key] < parsedValue) {
15613
+ output[key] = parsedValue;
15614
+ }
15615
+ } else if (!(key in output) || output[key] > parsedValue) {
15616
+ output[key] = parsedValue;
15240
15617
  }
15241
- output[key] = parsedValue;
15242
15618
  break;
15243
15619
  }
15244
15620
  case "private":
15245
15621
  case "no-cache": {
15622
+ if (fromMalformedQuote) {
15623
+ output[key] = true;
15624
+ break;
15625
+ }
15626
+ if (value !== void 0 && value.length === 0) {
15627
+ output[key] = true;
15628
+ break;
15629
+ }
15246
15630
  if (value) {
15247
15631
  if (value[0] === '"') {
15248
- const headers = [value.substring(1)];
15249
- let foundEndingQuote = value[value.length - 1] === '"';
15250
- if (!foundEndingQuote) {
15632
+ value = trimOWSEnd(value);
15633
+ let fieldList = "";
15634
+ let lastQuotedPart = i;
15635
+ let foundEndingQuote = false;
15636
+ const closingQuote = findUnescapedQuote(value, 1);
15637
+ if (closingQuote !== -1) {
15638
+ fieldList = value.substring(1, closingQuote);
15639
+ foundEndingQuote = true;
15640
+ } else {
15641
+ const fieldListParts = [value.substring(1)];
15251
15642
  for (let j = i + 1; j < directives.length; j++) {
15252
- const nextPart = directives[j];
15253
- const nextPartLength = nextPart.length;
15254
- headers.push(nextPart.trim());
15255
- if (nextPartLength !== 0 && nextPart[nextPartLength - 1] === '"') {
15643
+ const nextPart = trimOWS(directives[j].value);
15644
+ const closingQuote2 = findUnescapedQuote(nextPart, 0);
15645
+ lastQuotedPart = j;
15646
+ if (closingQuote2 !== -1) {
15647
+ fieldListParts.push(nextPart.substring(0, closingQuote2));
15256
15648
  foundEndingQuote = true;
15257
15649
  break;
15258
15650
  }
15651
+ fieldListParts.push(nextPart);
15259
15652
  }
15653
+ fieldList = fieldListParts.join(",");
15654
+ }
15655
+ if (!foundEndingQuote) {
15656
+ output[key] = true;
15657
+ break;
15260
15658
  }
15261
- if (foundEndingQuote) {
15262
- let lastHeader = headers[headers.length - 1];
15263
- if (lastHeader[lastHeader.length - 1] === '"') {
15264
- lastHeader = lastHeader.substring(0, lastHeader.length - 1);
15265
- headers[headers.length - 1] = lastHeader;
15659
+ i = lastQuotedPart;
15660
+ const headers = fieldList.split(",");
15661
+ let validFieldNames = true;
15662
+ for (let j = 0; j < headers.length; j++) {
15663
+ headers[j] = trimOWS(headers[j]);
15664
+ if (!isValidHTTPToken(headers[j])) {
15665
+ validFieldNames = false;
15266
15666
  }
15667
+ }
15668
+ if (!validFieldNames) {
15669
+ output[key] = true;
15670
+ } else if (output[key] !== true) {
15267
15671
  if (key in output) {
15268
15672
  output[key] = output[key].concat(headers);
15269
15673
  } else {
@@ -15271,10 +15675,15 @@ var require_cache = __commonJS({
15271
15675
  }
15272
15676
  }
15273
15677
  } else {
15274
- if (key in output) {
15275
- output[key] = output[key].concat(value);
15276
- } else {
15277
- output[key] = [value];
15678
+ const fieldName = trimOWS(value);
15679
+ if (!isValidHTTPToken(fieldName)) {
15680
+ output[key] = true;
15681
+ } else if (output[key] !== true) {
15682
+ if (key in output) {
15683
+ output[key] = output[key].concat(fieldName);
15684
+ } else {
15685
+ output[key] = [fieldName];
15686
+ }
15278
15687
  }
15279
15688
  }
15280
15689
  break;
@@ -15282,16 +15691,23 @@ var require_cache = __commonJS({
15282
15691
  }
15283
15692
  // eslint-disable-next-line no-fallthrough
15284
15693
  case "public":
15285
- case "no-store":
15286
15694
  case "must-revalidate":
15287
15695
  case "proxy-revalidate":
15288
15696
  case "immutable":
15289
15697
  case "no-transform":
15290
15698
  case "must-understand":
15291
15699
  case "only-if-cached":
15292
- if (value) {
15700
+ if (fromMalformedQuote || invalidNoArgumentDirectives.has(key)) {
15293
15701
  continue;
15294
15702
  }
15703
+ if (value !== void 0) {
15704
+ delete output[key];
15705
+ invalidNoArgumentDirectives.add(key);
15706
+ continue;
15707
+ }
15708
+ output[key] = true;
15709
+ break;
15710
+ case "no-store":
15295
15711
  output[key] = true;
15296
15712
  break;
15297
15713
  default:
@@ -15300,21 +15716,51 @@ var require_cache = __commonJS({
15300
15716
  }
15301
15717
  return output;
15302
15718
  }
15719
+ function splitVaryHeader(varyHeader) {
15720
+ const values = Array.isArray(varyHeader) ? varyHeader : [varyHeader];
15721
+ const output = [];
15722
+ for (let i = 0; i < values.length; i++) {
15723
+ const parts = values[i].split(",");
15724
+ for (let j = 0; j < parts.length; j++) {
15725
+ output.push(parts[j]);
15726
+ }
15727
+ }
15728
+ return output;
15729
+ }
15730
+ function hasVaryStar(varyHeader) {
15731
+ const values = splitVaryHeader(varyHeader);
15732
+ for (let i = 0; i < values.length; i++) {
15733
+ if (trimOWS(values[i]).indexOf("*") !== -1) {
15734
+ return true;
15735
+ }
15736
+ }
15737
+ return false;
15738
+ }
15303
15739
  function parseVaryHeader(varyHeader, headers) {
15304
- if (typeof varyHeader === "string" && varyHeader.includes("*")) {
15740
+ if (hasVaryStar(varyHeader)) {
15305
15741
  return headers;
15306
15742
  }
15307
15743
  const output = (
15308
15744
  /** @type {Record<string, string | string[] | null>} */
15309
15745
  {}
15310
15746
  );
15311
- const varyingHeaders = typeof varyHeader === "string" ? varyHeader.split(",") : varyHeader;
15747
+ const varyingHeaders = splitVaryHeader(varyHeader);
15312
15748
  for (const header of varyingHeaders) {
15313
- const trimmedHeader = header.trim().toLowerCase();
15314
- output[trimmedHeader] = headers[trimmedHeader] ?? null;
15749
+ const trimmedHeader = trimOWS(header).toLowerCase();
15750
+ if (trimmedHeader.length === 0) {
15751
+ continue;
15752
+ }
15753
+ if (!isValidHTTPToken(trimmedHeader)) {
15754
+ return void 0;
15755
+ }
15756
+ const headerValue = headers[trimmedHeader];
15757
+ output[trimmedHeader] = Array.isArray(headerValue) ? headerValue.slice() : headerValue ?? null;
15315
15758
  }
15316
15759
  return output;
15317
15760
  }
15761
+ function isInvalidOrWildcardVaryHeader(varyHeader) {
15762
+ return hasVaryStar(varyHeader) || parseVaryHeader(varyHeader, {}) === void 0;
15763
+ }
15318
15764
  function isEtagUsable(etag) {
15319
15765
  if (etag.length <= 2) {
15320
15766
  return false;
@@ -15345,24 +15791,23 @@ var require_cache = __commonJS({
15345
15791
  throw new TypeError(`${name} needs to have at least one method`);
15346
15792
  }
15347
15793
  for (const method of methods) {
15348
- if (!safeHTTPMethods.includes(method)) {
15794
+ if (!arrayIncludes(safeHTTPMethods, method)) {
15349
15795
  throw new TypeError(`element of ${name}-array needs to be one of following values: ${safeHTTPMethods.join(", ")}, got ${method}`);
15350
15796
  }
15351
15797
  }
15352
15798
  }
15353
15799
  function makeDeduplicationKey(cacheKey, excludeHeaders) {
15354
- let key = `${cacheKey.origin}:${cacheKey.method}:${cacheKey.path}`;
15800
+ const headers = {};
15355
15801
  if (cacheKey.headers) {
15356
15802
  const sortedHeaders = Object.keys(cacheKey.headers).sort();
15357
15803
  for (const header of sortedHeaders) {
15358
15804
  if (excludeHeaders?.has(header.toLowerCase())) {
15359
15805
  continue;
15360
15806
  }
15361
- const value = cacheKey.headers[header];
15362
- key += `:${header}=${Array.isArray(value) ? value.join(",") : value}`;
15807
+ headers[header] = cacheKey.headers[header];
15363
15808
  }
15364
15809
  }
15365
- return key;
15810
+ return JSON.stringify([cacheKey.origin, cacheKey.method, cacheKey.path, headers]);
15366
15811
  }
15367
15812
  module.exports = {
15368
15813
  makeCacheKey,
@@ -15370,7 +15815,10 @@ var require_cache = __commonJS({
15370
15815
  assertCacheKey,
15371
15816
  assertCacheValue,
15372
15817
  parseCacheControlHeader,
15818
+ hasInvalidCacheControlDirective,
15373
15819
  parseVaryHeader,
15820
+ hasVaryStar,
15821
+ isInvalidOrWildcardVaryHeader,
15374
15822
  isEtagUsable,
15375
15823
  assertCacheMethods,
15376
15824
  assertCacheStore,
@@ -15379,9 +15827,9 @@ var require_cache = __commonJS({
15379
15827
  }
15380
15828
  });
15381
15829
 
15382
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/date.js
15830
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/date.js
15383
15831
  var require_date = __commonJS({
15384
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/util/date.js"(exports, module) {
15832
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/util/date.js"(exports, module) {
15385
15833
  "use strict";
15386
15834
  function parseHttpDate(date) {
15387
15835
  switch (date[3]) {
@@ -15393,6 +15841,13 @@ var require_date = __commonJS({
15393
15841
  return parseRfc850Date(date);
15394
15842
  }
15395
15843
  }
15844
+ function makeDate(year, monthIdx, day, hour, minute, second, weekday) {
15845
+ const result = new Date(Date.UTC(year, monthIdx, day, hour, minute, second));
15846
+ if (year >= 0 && year <= 99) {
15847
+ result.setUTCFullYear(year);
15848
+ }
15849
+ return result.getUTCFullYear() === year && result.getUTCMonth() === monthIdx && result.getUTCDate() === day && result.getUTCHours() === hour && result.getUTCMinutes() === minute && result.getUTCSeconds() === second && result.getUTCDay() === weekday ? result : void 0;
15850
+ }
15396
15851
  function parseImfDate(date) {
15397
15852
  if (date.length !== 29 || date[4] !== " " || date[7] !== " " || date[11] !== " " || date[16] !== " " || date[19] !== ":" || date[22] !== ":" || date[25] !== " " || date[26] !== "G" || date[27] !== "M" || date[28] !== "T") {
15398
15853
  return void 0;
@@ -15553,8 +16008,7 @@ var require_date = __commonJS({
15553
16008
  }
15554
16009
  second = (code1 - 48) * 10 + (code2 - 48);
15555
16010
  }
15556
- const result = new Date(Date.UTC(year, monthIdx, day, hour, minute, second));
15557
- return result.getUTCDay() === weekday ? result : void 0;
16011
+ return makeDate(year, monthIdx, day, hour, minute, second, weekday);
15558
16012
  }
15559
16013
  function parseAscTimeDate(date) {
15560
16014
  if (date.length !== 24 || date[7] !== " " || date[10] !== " " || date[19] !== " ") {
@@ -15716,8 +16170,7 @@ var require_date = __commonJS({
15716
16170
  return void 0;
15717
16171
  }
15718
16172
  const year = (yearDigit1 - 48) * 1e3 + (yearDigit2 - 48) * 100 + (yearDigit3 - 48) * 10 + (yearDigit4 - 48);
15719
- const result = new Date(Date.UTC(year, monthIdx, day, hour, minute, second));
15720
- return result.getUTCDay() === weekday ? result : void 0;
16173
+ return makeDate(year, monthIdx, day, hour, minute, second, weekday);
15721
16174
  }
15722
16175
  function parseRfc850Date(date) {
15723
16176
  let commaIndex = -1;
@@ -15866,8 +16319,7 @@ var require_date = __commonJS({
15866
16319
  }
15867
16320
  second = (code1 - 48) * 10 + (code2 - 48);
15868
16321
  }
15869
- const result = new Date(Date.UTC(year, monthIdx, day, hour, minute, second));
15870
- return result.getUTCDay() === weekday ? result : void 0;
16322
+ return makeDate(year, monthIdx, day, hour, minute, second, weekday);
15871
16323
  }
15872
16324
  module.exports = {
15873
16325
  parseHttpDate
@@ -15875,14 +16327,17 @@ var require_date = __commonJS({
15875
16327
  }
15876
16328
  });
15877
16329
 
15878
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/cache-handler.js
16330
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/cache-handler.js
15879
16331
  var require_cache_handler = __commonJS({
15880
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/cache-handler.js"(exports, module) {
16332
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/cache-handler.js"(exports, module) {
15881
16333
  "use strict";
15882
16334
  var util = require_util();
15883
16335
  var {
15884
16336
  parseCacheControlHeader,
16337
+ hasInvalidCacheControlDirective,
15885
16338
  parseVaryHeader,
16339
+ hasVaryStar,
16340
+ isInvalidOrWildcardVaryHeader,
15886
16341
  isEtagUsable
15887
16342
  } = require_cache();
15888
16343
  var { parseHttpDate } = require_date();
@@ -15906,6 +16361,78 @@ var require_cache_handler = __commonJS({
15906
16361
  206
15907
16362
  ];
15908
16363
  var MAX_RESPONSE_AGE = 2147483647e3;
16364
+ function trimOWS(value) {
16365
+ return value.replace(/^[\t ]+|[\t ]+$/g, "");
16366
+ }
16367
+ function arrayIncludes(array, value) {
16368
+ for (let i = 0; i < array.length; i++) {
16369
+ if (array[i] === value) {
16370
+ return true;
16371
+ }
16372
+ }
16373
+ return false;
16374
+ }
16375
+ function appendConnectionHeaderTokens(headersToRemove, connectionHeader) {
16376
+ const values = Array.isArray(connectionHeader) ? connectionHeader : [connectionHeader];
16377
+ for (let i = 0; i < values.length; i++) {
16378
+ const tokens = values[i].split(",");
16379
+ for (let j = 0; j < tokens.length; j++) {
16380
+ headersToRemove.push(trimOWS(tokens[j]).toLowerCase());
16381
+ }
16382
+ }
16383
+ }
16384
+ function getSameOriginPath(cacheKey, location) {
16385
+ if (typeof location !== "string") {
16386
+ return void 0;
16387
+ }
16388
+ let originUrl;
16389
+ let requestUrl;
16390
+ let locationUrl;
16391
+ try {
16392
+ originUrl = new URL(cacheKey.origin);
16393
+ requestUrl = new URL(cacheKey.path, originUrl);
16394
+ locationUrl = new URL(location, requestUrl);
16395
+ } catch {
16396
+ return void 0;
16397
+ }
16398
+ if (locationUrl.origin !== originUrl.origin) {
16399
+ return void 0;
16400
+ }
16401
+ return locationUrl.pathname + locationUrl.search;
16402
+ }
16403
+ function deleteCachedUri(store, cacheKey, path) {
16404
+ deleteCachedValue(store, {
16405
+ ...cacheKey,
16406
+ path
16407
+ });
16408
+ for (let i = 0; i < util.safeHTTPMethods.length; i++) {
16409
+ const method = util.safeHTTPMethods[i];
16410
+ if (method !== cacheKey.method) {
16411
+ deleteCachedValue(store, {
16412
+ ...cacheKey,
16413
+ method,
16414
+ path
16415
+ });
16416
+ }
16417
+ }
16418
+ }
16419
+ function deleteLocationTargets(store, cacheKey, headerValue) {
16420
+ if (headerValue === void 0) {
16421
+ return;
16422
+ }
16423
+ const values = Array.isArray(headerValue) ? headerValue : [headerValue];
16424
+ for (let i = 0; i < values.length; i++) {
16425
+ const path = getSameOriginPath(cacheKey, values[i]);
16426
+ if (path !== void 0) {
16427
+ deleteCachedUri(store, cacheKey, path);
16428
+ }
16429
+ }
16430
+ }
16431
+ function invalidateUnsafeRequest(store, cacheKey, resHeaders) {
16432
+ deleteCachedUri(store, cacheKey, cacheKey.path);
16433
+ deleteLocationTargets(store, cacheKey, resHeaders.location);
16434
+ deleteLocationTargets(store, cacheKey, resHeaders["content-location"]);
16435
+ }
15909
16436
  var CacheHandler = class {
15910
16437
  /**
15911
16438
  * @type {import('../../types/cache-interceptor.d.ts').default.CacheKey}
@@ -15965,35 +16492,49 @@ var require_cache_handler = __commonJS({
15965
16492
  statusMessage
15966
16493
  );
15967
16494
  const handler = this;
15968
- if (!util.safeHTTPMethods.includes(this.#cacheKey.method) && statusCode >= 200 && statusCode <= 399) {
15969
- try {
15970
- this.#store.delete(this.#cacheKey)?.catch?.(noop);
15971
- } catch {
15972
- }
16495
+ if (!arrayIncludes(util.safeHTTPMethods, this.#cacheKey.method) && statusCode >= 200 && statusCode <= 399) {
16496
+ invalidateUnsafeRequest(this.#store, this.#cacheKey, resHeaders);
15973
16497
  return downstreamOnHeaders();
15974
16498
  }
15975
16499
  const cacheControlHeader = resHeaders["cache-control"];
15976
- const heuristicallyCacheable = resHeaders["last-modified"] && HEURISTICALLY_CACHEABLE_STATUS_CODES.includes(statusCode);
16500
+ const heuristicallyCacheable = resHeaders["last-modified"] && arrayIncludes(HEURISTICALLY_CACHEABLE_STATUS_CODES, statusCode);
15977
16501
  if (!cacheControlHeader && !resHeaders["expires"] && !heuristicallyCacheable && !this.#cacheByDefault) {
16502
+ if (statusCode === 304 && resHeaders.vary && isInvalidOrWildcardVaryHeader(resHeaders.vary)) {
16503
+ deleteCachedValue(this.#store, this.#cacheKey);
16504
+ }
15978
16505
  return downstreamOnHeaders();
15979
16506
  }
15980
16507
  const cacheControlDirectives = cacheControlHeader ? parseCacheControlHeader(cacheControlHeader) : {};
15981
16508
  if (!canCacheResponse(this.#cacheType, statusCode, resHeaders, cacheControlDirectives, this.#cacheKey.headers)) {
16509
+ if (statusCode === 304 && (cacheControlHeader || revalidationResponseDisallowsCachedReuse(this.#cacheType, resHeaders, cacheControlDirectives))) {
16510
+ deleteCachedValue(this.#store, this.#cacheKey);
16511
+ }
15982
16512
  return downstreamOnHeaders();
15983
16513
  }
15984
16514
  const now = Date.now();
15985
- const resAge = resHeaders.age ? getAge(resHeaders.age) : void 0;
15986
- if (resAge && resAge >= MAX_RESPONSE_AGE) {
16515
+ const resAge = Object.hasOwn(resHeaders, "age") ? getAge(resHeaders.age) : void 0;
16516
+ if (resAge !== void 0 && resAge >= MAX_RESPONSE_AGE) {
16517
+ deleteCachedValueIfNotModified(statusCode, this.#store, this.#cacheKey);
16518
+ return downstreamOnHeaders();
16519
+ }
16520
+ const resDate = Object.hasOwn(resHeaders, "date") ? getDate(resHeaders.date) : void 0;
16521
+ if (resDate === null) {
16522
+ deleteCachedValueIfNotModified(statusCode, this.#store, this.#cacheKey);
15987
16523
  return downstreamOnHeaders();
15988
16524
  }
15989
- const resDate = typeof resHeaders.date === "string" ? parseHttpDate(resHeaders.date) : void 0;
16525
+ const apparentAge = resDate ? Math.max(0, now - resDate.getTime()) : 0;
16526
+ const currentAge = Math.max(apparentAge, resAge ?? 0);
15990
16527
  const staleAt = determineStaleAt(this.#cacheType, now, resAge, resHeaders, resDate, cacheControlDirectives) ?? this.#cacheByDefault;
15991
- if (staleAt === void 0 || resAge && resAge > staleAt) {
16528
+ if (staleAt === void 0 || currentAge >= staleAt) {
16529
+ if (cacheControlHeader || staleAt !== void 0) {
16530
+ deleteCachedValueIfNotModified(statusCode, this.#store, this.#cacheKey);
16531
+ }
15992
16532
  return downstreamOnHeaders();
15993
16533
  }
15994
- const baseTime = resDate ? resDate.getTime() : now;
16534
+ const baseTime = now - currentAge;
15995
16535
  const absoluteStaleAt = staleAt + baseTime;
15996
16536
  if (now >= absoluteStaleAt) {
16537
+ deleteCachedValueIfNotModified(statusCode, this.#store, this.#cacheKey);
15997
16538
  return downstreamOnHeaders();
15998
16539
  }
15999
16540
  let varyDirectives;
@@ -16003,7 +16544,8 @@ var require_cache_handler = __commonJS({
16003
16544
  return downstreamOnHeaders();
16004
16545
  }
16005
16546
  }
16006
- const deleteAt = determineDeleteAt(baseTime, cacheControlDirectives, absoluteStaleAt);
16547
+ const cachedAt = baseTime;
16548
+ const deleteAt = determineDeleteAt(baseTime, now, cacheControlDirectives, absoluteStaleAt);
16007
16549
  const strippedHeaders = stripNecessaryHeaders(resHeaders, cacheControlDirectives);
16008
16550
  const value = {
16009
16551
  statusCode,
@@ -16011,7 +16553,7 @@ var require_cache_handler = __commonJS({
16011
16553
  headers: strippedHeaders,
16012
16554
  vary: varyDirectives,
16013
16555
  cacheControlDirectives,
16014
- cachedAt: resAge ? now - resAge : now,
16556
+ cachedAt,
16015
16557
  staleAt: absoluteStaleAt,
16016
16558
  deleteAt
16017
16559
  };
@@ -16023,6 +16565,7 @@ var require_cache_handler = __commonJS({
16023
16565
  value.statusCode = cachedValue.statusCode;
16024
16566
  value.statusMessage = cachedValue.statusMessage;
16025
16567
  value.etag = cachedValue.etag;
16568
+ value.vary = varyDirectives ?? cachedValue.vary;
16026
16569
  value.headers = { ...cachedValue.headers, ...strippedHeaders };
16027
16570
  downstreamOnHeaders();
16028
16571
  this.#writeStream = this.#store.createWriteStream(this.#cacheKey, value);
@@ -16113,11 +16656,25 @@ var require_cache_handler = __commonJS({
16113
16656
  this.#handler.onResponseError?.(controller, err);
16114
16657
  }
16115
16658
  };
16659
+ function deleteCachedValue(store, cacheKey) {
16660
+ try {
16661
+ store.delete(cacheKey)?.catch?.(noop);
16662
+ } catch {
16663
+ }
16664
+ }
16665
+ function deleteCachedValueIfNotModified(statusCode, store, cacheKey) {
16666
+ if (statusCode === 304) {
16667
+ deleteCachedValue(store, cacheKey);
16668
+ }
16669
+ }
16670
+ function revalidationResponseDisallowsCachedReuse(cacheType, resHeaders, cacheControlDirectives) {
16671
+ return cacheControlDirectives["no-store"] === true || cacheType === "shared" && cacheControlDirectives.private === true || (resHeaders.vary ? isInvalidOrWildcardVaryHeader(resHeaders.vary) : false);
16672
+ }
16116
16673
  function canCacheResponse(cacheType, statusCode, resHeaders, cacheControlDirectives, reqHeaders) {
16117
- if (statusCode < 200 || NOT_UNDERSTOOD_STATUS_CODES.includes(statusCode)) {
16674
+ if (statusCode < 200 || arrayIncludes(NOT_UNDERSTOOD_STATUS_CODES, statusCode)) {
16118
16675
  return false;
16119
16676
  }
16120
- if (!HEURISTICALLY_CACHEABLE_STATUS_CODES.includes(statusCode) && !resHeaders["expires"] && !cacheControlDirectives.public && cacheControlDirectives["max-age"] === void 0 && // RFC 9111: a private response directive, if the cache is not shared
16677
+ if (!arrayIncludes(HEURISTICALLY_CACHEABLE_STATUS_CODES, statusCode) && !resHeaders["expires"] && !cacheControlDirectives.public && cacheControlDirectives["max-age"] === void 0 && // RFC 9111: a private response directive, if the cache is not shared
16121
16678
  !(cacheControlDirectives.private && cacheType === "private") && !(cacheControlDirectives["s-maxage"] !== void 0 && cacheType === "shared")) {
16122
16679
  return false;
16123
16680
  }
@@ -16127,60 +16684,98 @@ var require_cache_handler = __commonJS({
16127
16684
  if (cacheType === "shared" && cacheControlDirectives.private === true) {
16128
16685
  return false;
16129
16686
  }
16130
- if (resHeaders.vary?.includes("*")) {
16687
+ if (resHeaders.vary && hasVaryStar(resHeaders.vary)) {
16131
16688
  return false;
16132
16689
  }
16133
- if (reqHeaders?.authorization) {
16690
+ if (reqHeaders != null && Object.hasOwn(reqHeaders, "authorization")) {
16134
16691
  if (!cacheControlDirectives.public && !cacheControlDirectives["s-maxage"] && !cacheControlDirectives["must-revalidate"]) {
16135
16692
  return false;
16136
16693
  }
16137
16694
  if (typeof reqHeaders.authorization !== "string") {
16138
16695
  return false;
16139
16696
  }
16140
- if (Array.isArray(cacheControlDirectives["no-cache"]) && cacheControlDirectives["no-cache"].includes("authorization")) {
16697
+ if (Array.isArray(cacheControlDirectives["no-cache"]) && arrayIncludes(cacheControlDirectives["no-cache"], "authorization")) {
16141
16698
  return false;
16142
16699
  }
16143
- if (Array.isArray(cacheControlDirectives["private"]) && cacheControlDirectives["private"].includes("authorization")) {
16700
+ if (Array.isArray(cacheControlDirectives["private"]) && arrayIncludes(cacheControlDirectives["private"], "authorization")) {
16144
16701
  return false;
16145
16702
  }
16146
16703
  }
16147
16704
  return true;
16148
16705
  }
16706
+ function getDate(dateHeader) {
16707
+ let dateValue = dateHeader;
16708
+ if (Array.isArray(dateValue)) {
16709
+ if (dateValue.length !== 1) {
16710
+ return null;
16711
+ }
16712
+ dateValue = dateValue[0];
16713
+ }
16714
+ if (typeof dateValue !== "string") {
16715
+ return null;
16716
+ }
16717
+ return parseHttpDate(dateValue);
16718
+ }
16149
16719
  function getAge(ageHeader) {
16150
- const age = parseInt(Array.isArray(ageHeader) ? ageHeader[0] : ageHeader);
16151
- return isNaN(age) ? void 0 : age * 1e3;
16720
+ let ageValue = ageHeader;
16721
+ if (Array.isArray(ageValue)) {
16722
+ if (ageValue.length !== 1) {
16723
+ return MAX_RESPONSE_AGE;
16724
+ }
16725
+ ageValue = ageValue[0];
16726
+ }
16727
+ if (typeof ageValue !== "string" || !/^[\t ]*[0-9]+[\t ]*$/.test(ageValue)) {
16728
+ return MAX_RESPONSE_AGE;
16729
+ }
16730
+ const age = BigInt(ageValue.replace(/^[\t ]+|[\t ]+$/g, ""));
16731
+ if (age >= BigInt(MAX_RESPONSE_AGE / 1e3)) {
16732
+ return MAX_RESPONSE_AGE;
16733
+ }
16734
+ return Number(age) * 1e3;
16152
16735
  }
16153
16736
  function determineStaleAt(cacheType, now, age, resHeaders, responseDate, cacheControlDirectives) {
16154
16737
  if (cacheType === "shared") {
16738
+ if (hasInvalidCacheControlDirective(cacheControlDirectives, "s-maxage")) {
16739
+ return 0;
16740
+ }
16155
16741
  const sMaxAge = cacheControlDirectives["s-maxage"];
16156
16742
  if (sMaxAge !== void 0) {
16157
- return sMaxAge > 0 ? sMaxAge * 1e3 : void 0;
16743
+ return sMaxAge * 1e3;
16158
16744
  }
16159
16745
  }
16746
+ if (hasInvalidCacheControlDirective(cacheControlDirectives, "max-age")) {
16747
+ return 0;
16748
+ }
16160
16749
  const maxAge = cacheControlDirectives["max-age"];
16161
16750
  if (maxAge !== void 0) {
16162
- return maxAge > 0 ? maxAge * 1e3 : void 0;
16751
+ return maxAge * 1e3;
16163
16752
  }
16164
- if (typeof resHeaders.expires === "string") {
16753
+ if (Object.hasOwn(resHeaders, "expires")) {
16754
+ if (typeof resHeaders.expires !== "string") {
16755
+ return 0;
16756
+ }
16165
16757
  const expiresDate = parseHttpDate(resHeaders.expires);
16166
- if (expiresDate) {
16167
- if (now >= expiresDate.getTime()) {
16168
- return void 0;
16758
+ if (!expiresDate) {
16759
+ return 0;
16760
+ }
16761
+ if (now >= expiresDate.getTime()) {
16762
+ return 0;
16763
+ }
16764
+ if (responseDate) {
16765
+ if (responseDate >= expiresDate) {
16766
+ return 0;
16169
16767
  }
16170
- if (responseDate) {
16171
- if (responseDate >= expiresDate) {
16172
- return void 0;
16173
- }
16174
- if (age !== void 0 && age > expiresDate - responseDate) {
16175
- return void 0;
16176
- }
16768
+ const freshnessLifetime = expiresDate.getTime() - responseDate.getTime();
16769
+ if (age !== void 0 && age >= freshnessLifetime) {
16770
+ return 0;
16177
16771
  }
16178
- return expiresDate.getTime() - now;
16772
+ return freshnessLifetime;
16179
16773
  }
16774
+ return expiresDate.getTime() - now;
16180
16775
  }
16181
16776
  if (typeof resHeaders["last-modified"] === "string") {
16182
- const lastModified = new Date(resHeaders["last-modified"]);
16183
- if (isValidDate(lastModified)) {
16777
+ const lastModified = parseHttpDate(resHeaders["last-modified"]);
16778
+ if (lastModified) {
16184
16779
  if (lastModified.getTime() >= now) {
16185
16780
  return void 0;
16186
16781
  }
@@ -16189,11 +16784,11 @@ var require_cache_handler = __commonJS({
16189
16784
  }
16190
16785
  }
16191
16786
  if (cacheControlDirectives.immutable) {
16192
- return 31536e3;
16787
+ return 31536e6;
16193
16788
  }
16194
16789
  return void 0;
16195
16790
  }
16196
- function determineDeleteAt(now, cacheControlDirectives, staleAt) {
16791
+ function determineDeleteAt(baseTime, cachedAt, cacheControlDirectives, staleAt) {
16197
16792
  let staleWhileRevalidate = -Infinity;
16198
16793
  let staleIfError = -Infinity;
16199
16794
  let immutable = -Infinity;
@@ -16204,11 +16799,12 @@ var require_cache_handler = __commonJS({
16204
16799
  staleIfError = staleAt + cacheControlDirectives["stale-if-error"] * 1e3;
16205
16800
  }
16206
16801
  if (cacheControlDirectives.immutable && staleWhileRevalidate === -Infinity && staleIfError === -Infinity) {
16207
- immutable = now + 31536e6;
16802
+ immutable = cachedAt + 31536e6;
16208
16803
  }
16209
16804
  if (staleWhileRevalidate === -Infinity && staleIfError === -Infinity && immutable === -Infinity) {
16210
- const freshnessLifetime = staleAt - now;
16211
- return staleAt + freshnessLifetime;
16805
+ const freshnessLifetime = staleAt - baseTime;
16806
+ const datePrecisionPadding = Math.min(Math.max(cachedAt - baseTime, 0), 1e3);
16807
+ return staleAt + freshnessLifetime + datePrecisionPadding;
16212
16808
  }
16213
16809
  return Math.max(staleAt, staleWhileRevalidate, staleIfError, immutable);
16214
16810
  }
@@ -16226,11 +16822,7 @@ var require_cache_handler = __commonJS({
16226
16822
  "age"
16227
16823
  ];
16228
16824
  if (resHeaders["connection"]) {
16229
- if (Array.isArray(resHeaders["connection"])) {
16230
- headersToRemove.push(...resHeaders["connection"].map((header) => header.trim()));
16231
- } else {
16232
- headersToRemove.push(...resHeaders["connection"].split(",").map((header) => header.trim()));
16233
- }
16825
+ appendConnectionHeaderTokens(headersToRemove, resHeaders["connection"]);
16234
16826
  }
16235
16827
  if (Array.isArray(cacheControlDirectives["no-cache"])) {
16236
16828
  headersToRemove.push(...cacheControlDirectives["no-cache"]);
@@ -16240,23 +16832,20 @@ var require_cache_handler = __commonJS({
16240
16832
  }
16241
16833
  let strippedHeaders;
16242
16834
  for (const headerName of headersToRemove) {
16243
- if (resHeaders[headerName]) {
16835
+ if (Object.hasOwn(resHeaders, headerName)) {
16244
16836
  strippedHeaders ??= { ...resHeaders };
16245
16837
  delete strippedHeaders[headerName];
16246
16838
  }
16247
16839
  }
16248
16840
  return strippedHeaders ?? resHeaders;
16249
16841
  }
16250
- function isValidDate(date) {
16251
- return date instanceof Date && Number.isFinite(date.valueOf());
16252
- }
16253
16842
  module.exports = CacheHandler;
16254
16843
  }
16255
16844
  });
16256
16845
 
16257
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/cache/memory-cache-store.js
16846
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/cache/memory-cache-store.js
16258
16847
  var require_memory_cache_store = __commonJS({
16259
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/cache/memory-cache-store.js"(exports, module) {
16848
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/cache/memory-cache-store.js"(exports, module) {
16260
16849
  "use strict";
16261
16850
  var { Writable } = __require("node:stream");
16262
16851
  var { EventEmitter } = __require("node:events");
@@ -16420,26 +17009,57 @@ var require_memory_cache_store = __commonJS({
16420
17009
  }
16421
17010
  };
16422
17011
  function findEntry(key, entries, now) {
16423
- return entries.find((entry) => entry.deleteAt > now && entry.method === key.method && (entry.vary == null || Object.keys(entry.vary).every((headerName) => {
16424
- if (entry.vary[headerName] === null) {
16425
- return key.headers[headerName] === void 0;
17012
+ for (let i = 0; i < entries.length; i++) {
17013
+ const entry = entries[i];
17014
+ if (entry.deleteAt > now && entry.method === key.method && varyMatches(key, entry)) {
17015
+ return entry;
16426
17016
  }
16427
- return entry.vary[headerName] === key.headers[headerName];
16428
- })));
17017
+ }
17018
+ }
17019
+ function varyMatches(key, entry) {
17020
+ if (entry.vary == null) {
17021
+ return true;
17022
+ }
17023
+ for (const headerName in entry.vary) {
17024
+ if (Object.hasOwn(entry.vary, headerName) && !headerValueEquals(key.headers?.[headerName], entry.vary[headerName])) {
17025
+ return false;
17026
+ }
17027
+ }
17028
+ return true;
17029
+ }
17030
+ function headerValueEquals(lhs, rhs) {
17031
+ if (lhs == null && rhs == null) {
17032
+ return true;
17033
+ }
17034
+ if (lhs == null && rhs != null || lhs != null && rhs == null) {
17035
+ return false;
17036
+ }
17037
+ if (Array.isArray(lhs) && Array.isArray(rhs)) {
17038
+ if (lhs.length !== rhs.length) {
17039
+ return false;
17040
+ }
17041
+ for (let i = 0; i < lhs.length; i++) {
17042
+ if (lhs[i] !== rhs[i]) {
17043
+ return false;
17044
+ }
17045
+ }
17046
+ return true;
17047
+ }
17048
+ return lhs === rhs;
16429
17049
  }
16430
17050
  module.exports = MemoryCacheStore;
16431
17051
  }
16432
17052
  });
16433
17053
 
16434
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/cache-revalidation-handler.js
17054
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/cache-revalidation-handler.js
16435
17055
  var require_cache_revalidation_handler = __commonJS({
16436
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/cache-revalidation-handler.js"(exports, module) {
17056
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/cache-revalidation-handler.js"(exports, module) {
16437
17057
  "use strict";
16438
17058
  var assert = __require("node:assert");
16439
17059
  var CacheRevalidationHandler = class {
16440
17060
  #successful = false;
16441
17061
  /**
16442
- * @type {((boolean, any) => void) | null}
17062
+ * @type {((success: boolean, context?: any, statusCode?: number, headers?: import('../../types/header.d.ts').IncomingHttpHeaders) => void) | null}
16443
17063
  */
16444
17064
  #callback;
16445
17065
  /**
@@ -16452,7 +17072,7 @@ var require_cache_revalidation_handler = __commonJS({
16452
17072
  */
16453
17073
  #allowErrorStatusCodes;
16454
17074
  /**
16455
- * @param {(boolean) => void} callback Function to call if the cached value is valid
17075
+ * @param {(success: boolean, context?: any, statusCode?: number, headers?: import('../../types/header.d.ts').IncomingHttpHeaders) => void} callback Function to call if the cached value is valid
16456
17076
  * @param {import('../../types/dispatcher.d.ts').default.DispatchHandlers} handler
16457
17077
  * @param {boolean} allowErrorStatusCodes
16458
17078
  */
@@ -16474,7 +17094,7 @@ var require_cache_revalidation_handler = __commonJS({
16474
17094
  onResponseStart(controller, statusCode, headers, statusMessage) {
16475
17095
  assert(this.#callback != null);
16476
17096
  this.#successful = statusCode === 304 || this.#allowErrorStatusCodes && statusCode >= 500 && statusCode <= 504;
16477
- this.#callback(this.#successful, this.#context);
17097
+ this.#callback(this.#successful, this.#context, statusCode, headers);
16478
17098
  this.#callback = null;
16479
17099
  if (this.#successful) {
16480
17100
  return true;
@@ -16518,9 +17138,9 @@ var require_cache_revalidation_handler = __commonJS({
16518
17138
  }
16519
17139
  });
16520
17140
 
16521
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/cache.js
17141
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/cache.js
16522
17142
  var require_cache2 = __commonJS({
16523
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/cache.js"(exports, module) {
17143
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/cache.js"(exports, module) {
16524
17144
  "use strict";
16525
17145
  var assert = __require("node:assert");
16526
17146
  var { Readable } = __require("node:stream");
@@ -16528,8 +17148,9 @@ var require_cache2 = __commonJS({
16528
17148
  var CacheHandler = require_cache_handler();
16529
17149
  var MemoryCacheStore = require_memory_cache_store();
16530
17150
  var CacheRevalidationHandler = require_cache_revalidation_handler();
16531
- var { assertCacheStore, assertCacheMethods, makeCacheKey, normalizeHeaders, parseCacheControlHeader } = require_cache();
17151
+ var { assertCacheStore, assertCacheMethods, makeCacheKey, normalizeHeaders, parseCacheControlHeader, isInvalidOrWildcardVaryHeader } = require_cache();
16532
17152
  var { AbortError } = require_errors();
17153
+ var { parseHttpDate } = require_date();
16533
17154
  function assertCacheOrigins(origins, name) {
16534
17155
  if (origins === void 0) return;
16535
17156
  if (!Array.isArray(origins)) {
@@ -16544,6 +17165,37 @@ var require_cache2 = __commonJS({
16544
17165
  }
16545
17166
  var nop = () => {
16546
17167
  };
17168
+ function trimOWS(value) {
17169
+ return value.replace(/^[\t ]+|[\t ]+$/g, "");
17170
+ }
17171
+ function arrayIncludes(array, value) {
17172
+ for (let i = 0; i < array.length; i++) {
17173
+ if (array[i] === value) {
17174
+ return true;
17175
+ }
17176
+ }
17177
+ return false;
17178
+ }
17179
+ function hasPragmaNoCache(headers) {
17180
+ const pragma = headers?.pragma;
17181
+ if (!pragma) {
17182
+ return false;
17183
+ }
17184
+ const values = Array.isArray(pragma) ? pragma : [pragma];
17185
+ for (let i = 0; i < values.length; i++) {
17186
+ const value = values[i];
17187
+ if (typeof value !== "string") {
17188
+ continue;
17189
+ }
17190
+ const directives = value.split(",");
17191
+ for (let j = 0; j < directives.length; j++) {
17192
+ if (trimOWS(directives[j]).toLowerCase() === "no-cache") {
17193
+ return true;
17194
+ }
17195
+ }
17196
+ }
17197
+ return false;
17198
+ }
16547
17199
  function needsRevalidation(result, cacheControlDirectives, { headers = {} }) {
16548
17200
  if (cacheControlDirectives?.["no-cache"]) {
16549
17201
  return true;
@@ -16556,10 +17208,58 @@ var require_cache2 = __commonJS({
16556
17208
  }
16557
17209
  return false;
16558
17210
  }
16559
- function isStale(result, cacheControlDirectives) {
17211
+ function staleResponseRequiresRevalidation(result, cacheType) {
17212
+ return result.cacheControlDirectives?.["must-revalidate"] === true || cacheType === "shared" && (result.cacheControlDirectives?.["proxy-revalidate"] === true || // https://www.rfc-editor.org/rfc/rfc9111.html#section-5.2.2.10
17213
+ // s-maxage implies proxy-revalidate for shared caches.
17214
+ result.cacheControlDirectives?.["s-maxage"] !== void 0);
17215
+ }
17216
+ function revalidationResponseDisallowsCachedReuse(cacheType, headers) {
17217
+ if (headers.vary && isInvalidOrWildcardVaryHeader(headers.vary)) {
17218
+ return true;
17219
+ }
17220
+ const cacheControl = headers["cache-control"];
17221
+ if (!cacheControl) {
17222
+ return false;
17223
+ }
17224
+ const cacheControlDirectives = parseCacheControlHeader(cacheControl);
17225
+ return cacheControlDirectives["no-store"] === true || cacheType === "shared" && cacheControlDirectives.private === true;
17226
+ }
17227
+ function revalidationResponseUpdatesCacheControl(headers) {
17228
+ return headers["cache-control"] !== void 0;
17229
+ }
17230
+ function deleteCachedValue(store, cacheKey) {
17231
+ try {
17232
+ store.delete(cacheKey)?.catch?.(nop);
17233
+ } catch {
17234
+ }
17235
+ }
17236
+ function getUsableLastModified(headers) {
17237
+ const lastModified = headers?.["last-modified"];
17238
+ if (typeof lastModified === "string" && parseHttpDate(lastModified)) {
17239
+ return lastModified;
17240
+ }
17241
+ }
17242
+ function makeRevalidationHeaders(opts, result) {
17243
+ const headers = {
17244
+ ...opts.headers,
17245
+ "if-modified-since": getUsableLastModified(result.headers) ?? new Date(result.cachedAt).toUTCString()
17246
+ };
17247
+ if (result.etag) {
17248
+ headers["if-none-match"] = result.etag;
17249
+ }
17250
+ if (result.vary) {
17251
+ for (const key in result.vary) {
17252
+ if (result.vary[key] != null) {
17253
+ headers[key] = result.vary[key];
17254
+ }
17255
+ }
17256
+ }
17257
+ return headers;
17258
+ }
17259
+ function isStale(result, cacheControlDirectives, cacheType) {
16560
17260
  const now = Date.now();
16561
17261
  if (now > result.staleAt) {
16562
- if (cacheControlDirectives?.["max-stale"]) {
17262
+ if (!staleResponseRequiresRevalidation(result, cacheType) && cacheControlDirectives?.["max-stale"]) {
16563
17263
  const gracePeriod = result.staleAt + cacheControlDirectives["max-stale"] * 1e3;
16564
17264
  return now > gracePeriod;
16565
17265
  }
@@ -16572,9 +17272,9 @@ var require_cache2 = __commonJS({
16572
17272
  }
16573
17273
  return false;
16574
17274
  }
16575
- function withinStaleWhileRevalidateWindow(result) {
17275
+ function withinStaleWhileRevalidateWindow(result, cacheType) {
16576
17276
  const staleWhileRevalidate = result.cacheControlDirectives?.["stale-while-revalidate"];
16577
- if (!staleWhileRevalidate) {
17277
+ if (!staleWhileRevalidate || staleResponseRequiresRevalidation(result, cacheType)) {
16578
17278
  return false;
16579
17279
  }
16580
17280
  const now = Date.now();
@@ -16674,32 +17374,17 @@ var require_cache2 = __commonJS({
16674
17374
  return dispatch(opts, new CacheHandler(globalOpts, cacheKey, handler));
16675
17375
  }
16676
17376
  const age = Math.round((now - result.cachedAt) / 1e3);
16677
- if (reqCacheControl?.["max-age"] && age >= reqCacheControl["max-age"]) {
16678
- return dispatch(opts, handler);
16679
- }
16680
- const stale = isStale(result, reqCacheControl);
16681
- const revalidate = needsRevalidation(result, reqCacheControl, opts);
17377
+ const requestMaxAgeExpired = reqCacheControl?.["max-age"] !== void 0 && age >= reqCacheControl["max-age"];
17378
+ const stale = requestMaxAgeExpired || isStale(result, reqCacheControl, globalOpts.type);
17379
+ const revalidate = requestMaxAgeExpired || needsRevalidation(result, reqCacheControl, opts);
16682
17380
  if (stale || revalidate) {
16683
17381
  if (util.isStream(opts.body) && util.bodyLength(opts.body) !== 0) {
16684
17382
  return dispatch(opts, new CacheHandler(globalOpts, cacheKey, handler));
16685
17383
  }
16686
- if (!revalidate && withinStaleWhileRevalidateWindow(result)) {
17384
+ if (!revalidate && withinStaleWhileRevalidateWindow(result, globalOpts.type)) {
16687
17385
  sendCachedValue(handler, opts, result, age, null, true);
16688
17386
  queueMicrotask(() => {
16689
- const headers2 = {
16690
- ...opts.headers,
16691
- "if-modified-since": new Date(result.cachedAt).toUTCString()
16692
- };
16693
- if (result.etag) {
16694
- headers2["if-none-match"] = result.etag;
16695
- }
16696
- if (result.vary) {
16697
- for (const key in result.vary) {
16698
- if (result.vary[key] != null) {
16699
- headers2[key] = result.vary[key];
16700
- }
16701
- }
16702
- }
17387
+ const headers2 = makeRevalidationHeaders(opts, result);
16703
17388
  dispatch(
16704
17389
  {
16705
17390
  ...opts,
@@ -16725,32 +17410,33 @@ var require_cache2 = __commonJS({
16725
17410
  return true;
16726
17411
  }
16727
17412
  let withinStaleIfErrorThreshold = false;
16728
- const staleIfErrorExpiry = result.cacheControlDirectives["stale-if-error"] ?? reqCacheControl?.["stale-if-error"];
16729
- if (staleIfErrorExpiry) {
16730
- withinStaleIfErrorThreshold = now < result.staleAt + staleIfErrorExpiry * 1e3;
16731
- }
16732
- const headers = {
16733
- ...opts.headers,
16734
- "if-modified-since": new Date(result.cachedAt).toUTCString()
16735
- };
16736
- if (result.etag) {
16737
- headers["if-none-match"] = result.etag;
16738
- }
16739
- if (result.vary) {
16740
- for (const key in result.vary) {
16741
- if (result.vary[key] != null) {
16742
- headers[key] = result.vary[key];
16743
- }
17413
+ if (!staleResponseRequiresRevalidation(result, globalOpts.type)) {
17414
+ const staleIfErrorExpiry = result.cacheControlDirectives["stale-if-error"] ?? reqCacheControl?.["stale-if-error"];
17415
+ if (staleIfErrorExpiry) {
17416
+ withinStaleIfErrorThreshold = now < result.staleAt + staleIfErrorExpiry * 1e3;
16744
17417
  }
16745
17418
  }
17419
+ const headers = makeRevalidationHeaders(opts, result);
16746
17420
  return dispatch(
16747
17421
  {
16748
17422
  ...opts,
16749
17423
  headers
16750
17424
  },
16751
17425
  new CacheRevalidationHandler(
16752
- (success, context) => {
17426
+ (success, context, statusCode, headers2) => {
16753
17427
  if (success) {
17428
+ if (statusCode === 304) {
17429
+ if (revalidationResponseDisallowsCachedReuse(globalOpts.type, headers2)) {
17430
+ if (util.isStream(result.body)) {
17431
+ result.body.on("error", nop).destroy();
17432
+ }
17433
+ deleteCachedValue(globalOpts.store, cacheKey);
17434
+ return dispatch(opts, new CacheHandler(globalOpts, cacheKey, handler));
17435
+ }
17436
+ if (revalidationResponseUpdatesCacheControl(headers2)) {
17437
+ deleteCachedValue(globalOpts.store, cacheKey);
17438
+ }
17439
+ }
16754
17440
  sendCachedValue(handler, opts, result, age, context, stale);
16755
17441
  } else if (util.isStream(result.body)) {
16756
17442
  result.body.on("error", nop).destroy();
@@ -16792,10 +17478,16 @@ var require_cache2 = __commonJS({
16792
17478
  cacheByDefault,
16793
17479
  type
16794
17480
  };
16795
- const safeMethodsToNotCache = util.safeHTTPMethods.filter((method) => methods.includes(method) === false);
17481
+ const safeMethodsToNotCache = [];
17482
+ for (let i = 0; i < util.safeHTTPMethods.length; i++) {
17483
+ const method = util.safeHTTPMethods[i];
17484
+ if (!arrayIncludes(methods, method)) {
17485
+ safeMethodsToNotCache.push(method);
17486
+ }
17487
+ }
16796
17488
  return (dispatch) => {
16797
17489
  return (opts2, handler) => {
16798
- if (!opts2.origin || safeMethodsToNotCache.includes(opts2.method)) {
17490
+ if (!opts2.origin || arrayIncludes(safeMethodsToNotCache, opts2.method)) {
16799
17491
  return dispatch(opts2, handler);
16800
17492
  }
16801
17493
  if (origins !== void 0) {
@@ -16821,7 +17513,7 @@ var require_cache2 = __commonJS({
16821
17513
  ...opts2,
16822
17514
  headers: normalizeHeaders(opts2)
16823
17515
  };
16824
- const reqCacheControl = opts2.headers?.["cache-control"] ? parseCacheControlHeader(opts2.headers["cache-control"]) : void 0;
17516
+ const reqCacheControl = opts2.headers?.["cache-control"] ? parseCacheControlHeader(opts2.headers["cache-control"]) : hasPragmaNoCache(opts2.headers) ? { "no-cache": true } : void 0;
16825
17517
  if (reqCacheControl?.["no-store"]) {
16826
17518
  return dispatch(opts2, handler);
16827
17519
  }
@@ -16854,9 +17546,9 @@ var require_cache2 = __commonJS({
16854
17546
  }
16855
17547
  });
16856
17548
 
16857
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/decompress.js
17549
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/decompress.js
16858
17550
  var require_decompress = __commonJS({
16859
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/decompress.js"(exports, module) {
17551
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/decompress.js"(exports, module) {
16860
17552
  "use strict";
16861
17553
  var { createInflate, createGunzip, createBrotliDecompress, createZstdDecompress } = __require("node:zlib");
16862
17554
  var { pipeline } = __require("node:stream");
@@ -17068,9 +17760,9 @@ var require_decompress = __commonJS({
17068
17760
  }
17069
17761
  });
17070
17762
 
17071
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/deduplication-handler.js
17763
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/deduplication-handler.js
17072
17764
  var require_deduplication_handler = __commonJS({
17073
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/handler/deduplication-handler.js"(exports, module) {
17765
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/deduplication-handler.js"(exports, module) {
17074
17766
  "use strict";
17075
17767
  var { RequestAbortedError } = require_errors();
17076
17768
  var DEFAULT_MAX_BUFFER_SIZE = 5 * 1024 * 1024;
@@ -17427,9 +18119,9 @@ var require_deduplication_handler = __commonJS({
17427
18119
  }
17428
18120
  });
17429
18121
 
17430
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/deduplicate.js
18122
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/deduplicate.js
17431
18123
  var require_deduplicate = __commonJS({
17432
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/interceptor/deduplicate.js"(exports, module) {
18124
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/deduplicate.js"(exports, module) {
17433
18125
  "use strict";
17434
18126
  var diagnosticsChannel = __require("node:diagnostics_channel");
17435
18127
  var util = require_util();
@@ -17512,9 +18204,9 @@ var require_deduplicate = __commonJS({
17512
18204
  }
17513
18205
  });
17514
18206
 
17515
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/cache/sqlite-cache-store.js
18207
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/cache/sqlite-cache-store.js
17516
18208
  var require_sqlite_cache_store = __commonJS({
17517
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/cache/sqlite-cache-store.js"(exports, module) {
18209
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/cache/sqlite-cache-store.js"(exports, module) {
17518
18210
  "use strict";
17519
18211
  var { Writable } = __require("node:stream");
17520
18212
  var { assertCacheKey, assertCacheValue } = require_cache();
@@ -17677,7 +18369,7 @@ var require_sqlite_cache_store = __commonJS({
17677
18369
  SELECT
17678
18370
  id
17679
18371
  FROM cacheInterceptorV${VERSION}
17680
- ORDER BY cachedAt DESC
18372
+ ORDER BY cachedAt ASC
17681
18373
  LIMIT ?
17682
18374
  )
17683
18375
  `);
@@ -17732,7 +18424,6 @@ var require_sqlite_cache_store = __commonJS({
17732
18424
  existingValue.id
17733
18425
  );
17734
18426
  } else {
17735
- this.#prune();
17736
18427
  this.#insertValueQuery.run(
17737
18428
  url,
17738
18429
  key.method,
@@ -17747,6 +18438,7 @@ var require_sqlite_cache_store = __commonJS({
17747
18438
  value.cachedAt,
17748
18439
  value.staleAt
17749
18440
  );
18441
+ this.#prune();
17750
18442
  }
17751
18443
  }
17752
18444
  /**
@@ -17834,7 +18526,7 @@ var require_sqlite_cache_store = __commonJS({
17834
18526
  const now = Date.now();
17835
18527
  for (const value of values) {
17836
18528
  if (now >= value.deleteAt && !canBeExpired) {
17837
- return void 0;
18529
+ continue;
17838
18530
  }
17839
18531
  let matches = true;
17840
18532
  if (value.vary) {
@@ -17864,16 +18556,21 @@ var require_sqlite_cache_store = __commonJS({
17864
18556
  if (lhs.length !== rhs.length) {
17865
18557
  return false;
17866
18558
  }
17867
- return lhs.every((x, i) => x === rhs[i]);
18559
+ for (let i = 0; i < lhs.length; i++) {
18560
+ if (lhs[i] !== rhs[i]) {
18561
+ return false;
18562
+ }
18563
+ }
18564
+ return true;
17868
18565
  }
17869
18566
  return lhs === rhs;
17870
18567
  }
17871
18568
  }
17872
18569
  });
17873
18570
 
17874
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/headers.js
18571
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/headers.js
17875
18572
  var require_headers = __commonJS({
17876
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/headers.js"(exports, module) {
18573
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/headers.js"(exports, module) {
17877
18574
  "use strict";
17878
18575
  var { kConstruct } = require_symbols();
17879
18576
  var { kEnumerableProperty } = require_util();
@@ -18332,9 +19029,9 @@ var require_headers = __commonJS({
18332
19029
  }
18333
19030
  });
18334
19031
 
18335
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/response.js
19032
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/response.js
18336
19033
  var require_response = __commonJS({
18337
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/response.js"(exports, module) {
19034
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/response.js"(exports, module) {
18338
19035
  "use strict";
18339
19036
  var { Headers, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers();
18340
19037
  var { extractBody, cloneBody, mixinBody, streamRegistry, bodyUnusable } = require_body();
@@ -18754,9 +19451,9 @@ var require_response = __commonJS({
18754
19451
  }
18755
19452
  });
18756
19453
 
18757
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/request.js
19454
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/request.js
18758
19455
  var require_request2 = __commonJS({
18759
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/request.js"(exports, module) {
19456
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/request.js"(exports, module) {
18760
19457
  "use strict";
18761
19458
  var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body();
18762
19459
  var { Headers, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers();
@@ -19510,9 +20207,9 @@ var require_request2 = __commonJS({
19510
20207
  }
19511
20208
  });
19512
20209
 
19513
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js
20210
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js
19514
20211
  var require_subresource_integrity = __commonJS({
19515
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js"(exports, module) {
20212
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js"(exports, module) {
19516
20213
  "use strict";
19517
20214
  var assert = __require("node:assert");
19518
20215
  var { runtimeFeatures } = require_runtime_features();
@@ -19649,9 +20346,9 @@ var require_subresource_integrity = __commonJS({
19649
20346
  }
19650
20347
  });
19651
20348
 
19652
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/index.js
20349
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/index.js
19653
20350
  var require_fetch = __commonJS({
19654
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/index.js"(exports, module) {
20351
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/index.js"(exports, module) {
19655
20352
  "use strict";
19656
20353
  var {
19657
20354
  makeNetworkError,
@@ -20153,7 +20850,7 @@ var require_fetch = __commonJS({
20153
20850
  cacheState = "";
20154
20851
  }
20155
20852
  let responseStatus = 0;
20156
- if (fetchParams.request.mode !== "navigator" || !response.hasCrossOriginRedirects) {
20853
+ if (fetchParams.request.mode !== "navigate" || !response.hasCrossOriginRedirects) {
20157
20854
  responseStatus = response.status;
20158
20855
  const mimeType = extractMimeType(response.headersList);
20159
20856
  if (mimeType !== "failure") {
@@ -20317,7 +21014,7 @@ var require_fetch = __commonJS({
20317
21014
  if (contentLength != null) {
20318
21015
  contentLengthHeaderValue = isomorphicEncode(`${contentLength}`);
20319
21016
  }
20320
- if (contentLengthHeaderValue != null) {
21017
+ if (contentLengthHeaderValue != null && !httpRequest.headersList.contains("content-length", true)) {
20321
21018
  httpRequest.headersList.append("content-length", contentLengthHeaderValue, true);
20322
21019
  }
20323
21020
  if (contentLength != null && httpRequest.keepalive) {
@@ -20793,9 +21490,9 @@ var require_fetch = __commonJS({
20793
21490
  }
20794
21491
  });
20795
21492
 
20796
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cache/util.js
21493
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cache/util.js
20797
21494
  var require_util3 = __commonJS({
20798
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cache/util.js"(exports, module) {
21495
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cache/util.js"(exports, module) {
20799
21496
  "use strict";
20800
21497
  var assert = __require("node:assert");
20801
21498
  var { URLSerializer } = require_data_url();
@@ -20823,9 +21520,9 @@ var require_util3 = __commonJS({
20823
21520
  }
20824
21521
  });
20825
21522
 
20826
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cache/cache.js
21523
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cache/cache.js
20827
21524
  var require_cache3 = __commonJS({
20828
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cache/cache.js"(exports, module) {
21525
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cache/cache.js"(exports, module) {
20829
21526
  "use strict";
20830
21527
  var assert = __require("node:assert");
20831
21528
  var { kConstruct } = require_symbols();
@@ -21372,9 +22069,9 @@ var require_cache3 = __commonJS({
21372
22069
  }
21373
22070
  });
21374
22071
 
21375
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cache/cachestorage.js
22072
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cache/cachestorage.js
21376
22073
  var require_cachestorage = __commonJS({
21377
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cache/cachestorage.js"(exports, module) {
22074
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cache/cachestorage.js"(exports, module) {
21378
22075
  "use strict";
21379
22076
  var { Cache } = require_cache3();
21380
22077
  var { webidl } = require_webidl();
@@ -21482,9 +22179,9 @@ var require_cachestorage = __commonJS({
21482
22179
  }
21483
22180
  });
21484
22181
 
21485
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cookies/constants.js
22182
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cookies/constants.js
21486
22183
  var require_constants4 = __commonJS({
21487
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cookies/constants.js"(exports, module) {
22184
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cookies/constants.js"(exports, module) {
21488
22185
  "use strict";
21489
22186
  var maxAttributeValueSize = 1024;
21490
22187
  var maxNameValuePairSize = 4096;
@@ -21495,9 +22192,9 @@ var require_constants4 = __commonJS({
21495
22192
  }
21496
22193
  });
21497
22194
 
21498
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cookies/util.js
22195
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cookies/util.js
21499
22196
  var require_util4 = __commonJS({
21500
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cookies/util.js"(exports, module) {
22197
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cookies/util.js"(exports, module) {
21501
22198
  "use strict";
21502
22199
  function isCTLExcludingHtab(value) {
21503
22200
  for (let i = 0; i < value.length; ++i) {
@@ -21560,14 +22257,48 @@ var require_util4 = __commonJS({
21560
22257
  for (let i = 0; i < path.length; ++i) {
21561
22258
  const code = path.charCodeAt(i);
21562
22259
  if (code < 32 || // exclude CTLs (0-31)
21563
- code === 127 || // DEL
22260
+ code > 126 || // exclude DEL and non-ascii
21564
22261
  code === 59) {
21565
22262
  throw new Error("Invalid cookie path");
21566
22263
  }
21567
22264
  }
21568
22265
  }
22266
+ function isLetterOrDigit(code) {
22267
+ return code >= 48 && code <= 57 || // 0-9
22268
+ code >= 65 && code <= 90 || // A-Z
22269
+ code >= 97 && code <= 122;
22270
+ }
21569
22271
  function validateCookieDomain(domain) {
21570
- if (domain.startsWith("-") || domain.endsWith(".") || domain.endsWith("-")) {
22272
+ if (domain === " ") {
22273
+ return;
22274
+ }
22275
+ if (domain.length > 255) {
22276
+ throw new Error("Invalid cookie domain");
22277
+ }
22278
+ let labelLength = 0;
22279
+ for (let i = 0; i < domain.length; ++i) {
22280
+ const code = domain.charCodeAt(i);
22281
+ if (code === 46) {
22282
+ if (labelLength === 0) {
22283
+ throw new Error("Invalid cookie domain");
22284
+ }
22285
+ if (domain.charCodeAt(i - 1) === 45) {
22286
+ throw new Error("Invalid cookie domain");
22287
+ }
22288
+ labelLength = 0;
22289
+ continue;
22290
+ }
22291
+ if (labelLength === 0 && !isLetterOrDigit(code)) {
22292
+ throw new Error("Invalid cookie domain");
22293
+ }
22294
+ if (!isLetterOrDigit(code) && code !== 45) {
22295
+ throw new Error("Invalid cookie domain");
22296
+ }
22297
+ if (++labelLength > 63) {
22298
+ throw new Error("Invalid cookie domain");
22299
+ }
22300
+ }
22301
+ if (labelLength === 0 || domain.charCodeAt(domain.length - 1) === 45) {
21571
22302
  throw new Error("Invalid cookie domain");
21572
22303
  }
21573
22304
  }
@@ -21650,7 +22381,11 @@ var require_util4 = __commonJS({
21650
22381
  throw new Error("Invalid unparsed");
21651
22382
  }
21652
22383
  const [key, ...value] = part.split("=");
21653
- out.push(`${key.trim()}=${value.join("=")}`);
22384
+ const trimmedKey = key.trim();
22385
+ const joinedValue = value.join("=");
22386
+ validateCookieName(trimmedKey);
22387
+ validateCookieValue(joinedValue);
22388
+ out.push(`${trimmedKey}=${joinedValue}`);
21654
22389
  }
21655
22390
  return out.join("; ");
21656
22391
  }
@@ -21665,15 +22400,14 @@ var require_util4 = __commonJS({
21665
22400
  }
21666
22401
  });
21667
22402
 
21668
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cookies/parse.js
22403
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cookies/parse.js
21669
22404
  var require_parse = __commonJS({
21670
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cookies/parse.js"(exports, module) {
22405
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cookies/parse.js"(exports, module) {
21671
22406
  "use strict";
21672
22407
  var { collectASequenceOfCodePointsFast } = require_infra();
21673
22408
  var { maxNameValuePairSize, maxAttributeValueSize } = require_constants4();
21674
22409
  var { isCTLExcludingHtab } = require_util4();
21675
22410
  var assert = __require("node:assert");
21676
- var { unescape: qsUnescape } = __require("node:querystring");
21677
22411
  function parseSetCookie(header) {
21678
22412
  if (isCTLExcludingHtab(header)) {
21679
22413
  return null;
@@ -21707,7 +22441,7 @@ var require_parse = __commonJS({
21707
22441
  }
21708
22442
  return {
21709
22443
  name,
21710
- value: qsUnescape(value),
22444
+ value,
21711
22445
  ...parseUnparsedAttributes(unparsedAttributes)
21712
22446
  };
21713
22447
  }
@@ -21781,18 +22515,14 @@ var require_parse = __commonJS({
21781
22515
  } else if (attributeNameLowercase === "httponly") {
21782
22516
  cookieAttributeList.httpOnly = true;
21783
22517
  } else if (attributeNameLowercase === "samesite") {
21784
- let enforcement = "Default";
21785
22518
  const attributeValueLowercase = attributeValue.toLowerCase();
21786
- if (attributeValueLowercase.includes("none")) {
21787
- enforcement = "None";
21788
- }
21789
- if (attributeValueLowercase.includes("strict")) {
21790
- enforcement = "Strict";
22519
+ if (attributeValueLowercase === "none") {
22520
+ cookieAttributeList.sameSite = "None";
22521
+ } else if (attributeValueLowercase === "strict") {
22522
+ cookieAttributeList.sameSite = "Strict";
22523
+ } else if (attributeValueLowercase === "lax") {
22524
+ cookieAttributeList.sameSite = "Lax";
21791
22525
  }
21792
- if (attributeValueLowercase.includes("lax")) {
21793
- enforcement = "Lax";
21794
- }
21795
- cookieAttributeList.sameSite = enforcement;
21796
22526
  } else {
21797
22527
  cookieAttributeList.unparsed ??= [];
21798
22528
  cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`);
@@ -21806,9 +22536,9 @@ var require_parse = __commonJS({
21806
22536
  }
21807
22537
  });
21808
22538
 
21809
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cookies/index.js
22539
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cookies/index.js
21810
22540
  var require_cookies = __commonJS({
21811
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/cookies/index.js"(exports, module) {
22541
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cookies/index.js"(exports, module) {
21812
22542
  "use strict";
21813
22543
  var { parseSetCookie } = require_parse();
21814
22544
  var { stringify } = require_util4();
@@ -21941,9 +22671,9 @@ var require_cookies = __commonJS({
21941
22671
  }
21942
22672
  });
21943
22673
 
21944
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/events.js
22674
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/events.js
21945
22675
  var require_events = __commonJS({
21946
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/events.js"(exports, module) {
22676
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/events.js"(exports, module) {
21947
22677
  "use strict";
21948
22678
  var { webidl } = require_webidl();
21949
22679
  var { kEnumerableProperty } = require_util();
@@ -22209,9 +22939,9 @@ var require_events = __commonJS({
22209
22939
  }
22210
22940
  });
22211
22941
 
22212
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/constants.js
22942
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/constants.js
22213
22943
  var require_constants5 = __commonJS({
22214
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/constants.js"(exports, module) {
22944
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/constants.js"(exports, module) {
22215
22945
  "use strict";
22216
22946
  var uid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
22217
22947
  var staticPropertyDescriptors = {
@@ -22265,9 +22995,9 @@ var require_constants5 = __commonJS({
22265
22995
  }
22266
22996
  });
22267
22997
 
22268
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/util.js
22998
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/util.js
22269
22999
  var require_util5 = __commonJS({
22270
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/util.js"(exports, module) {
23000
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/util.js"(exports, module) {
22271
23001
  "use strict";
22272
23002
  var { states, opcodes } = require_constants5();
22273
23003
  var { isUtf8 } = __require("node:buffer");
@@ -22442,9 +23172,9 @@ var require_util5 = __commonJS({
22442
23172
  }
22443
23173
  });
22444
23174
 
22445
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/frame.js
23175
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/frame.js
22446
23176
  var require_frame = __commonJS({
22447
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/frame.js"(exports, module) {
23177
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/frame.js"(exports, module) {
22448
23178
  "use strict";
22449
23179
  var { runtimeFeatures } = require_runtime_features();
22450
23180
  var { maxUnsigned16Bit, opcodes } = require_constants5();
@@ -22547,9 +23277,9 @@ var require_frame = __commonJS({
22547
23277
  }
22548
23278
  });
22549
23279
 
22550
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/connection.js
23280
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/connection.js
22551
23281
  var require_connection = __commonJS({
22552
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/connection.js"(exports, module) {
23282
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/connection.js"(exports, module) {
22553
23283
  "use strict";
22554
23284
  var { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = require_constants5();
22555
23285
  var { parseExtensions, isClosed, isClosing, isEstablished, isConnecting, validateCloseCodeAndReason } = require_util5();
@@ -22703,9 +23433,9 @@ var require_connection = __commonJS({
22703
23433
  }
22704
23434
  });
22705
23435
 
22706
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/permessage-deflate.js
23436
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/permessage-deflate.js
22707
23437
  var require_permessage_deflate = __commonJS({
22708
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports, module) {
23438
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports, module) {
22709
23439
  "use strict";
22710
23440
  var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __require("node:zlib");
22711
23441
  var { isValidClientWindowBits } = require_util5();
@@ -22713,27 +23443,26 @@ var require_permessage_deflate = __commonJS({
22713
23443
  var tail = Buffer.from([0, 0, 255, 255]);
22714
23444
  var kBuffer = /* @__PURE__ */ Symbol("kBuffer");
22715
23445
  var kLength = /* @__PURE__ */ Symbol("kLength");
22716
- var kDefaultMaxDecompressedSize = 4 * 1024 * 1024;
22717
23446
  var PerMessageDeflate = class {
22718
23447
  /** @type {import('node:zlib').InflateRaw} */
22719
23448
  #inflate;
22720
23449
  #options = {};
22721
- /** @type {boolean} */
22722
- #aborted = false;
22723
- /** @type {Function|null} */
22724
- #currentCallback = null;
23450
+ #maxPayloadSize = 0;
22725
23451
  /**
22726
23452
  * @param {Map<string, string>} extensions
22727
23453
  */
22728
- constructor(extensions) {
23454
+ constructor(extensions, options) {
22729
23455
  this.#options.serverNoContextTakeover = extensions.has("server_no_context_takeover");
22730
23456
  this.#options.serverMaxWindowBits = extensions.get("server_max_window_bits");
23457
+ this.#maxPayloadSize = options.maxPayloadSize;
22731
23458
  }
23459
+ /**
23460
+ * Decompress a compressed payload.
23461
+ * @param {Buffer} chunk Compressed data
23462
+ * @param {boolean} fin Final fragment flag
23463
+ * @param {Function} callback Callback function
23464
+ */
22732
23465
  decompress(chunk, fin, callback) {
22733
- if (this.#aborted) {
22734
- callback(new MessageSizeExceededError());
22735
- return;
22736
- }
22737
23466
  if (!this.#inflate) {
22738
23467
  let windowBits = Z_DEFAULT_WINDOWBITS;
22739
23468
  if (this.#options.serverMaxWindowBits) {
@@ -22752,20 +23481,11 @@ var require_permessage_deflate = __commonJS({
22752
23481
  this.#inflate[kBuffer] = [];
22753
23482
  this.#inflate[kLength] = 0;
22754
23483
  this.#inflate.on("data", (data) => {
22755
- if (this.#aborted) {
22756
- return;
22757
- }
22758
23484
  this.#inflate[kLength] += data.length;
22759
- if (this.#inflate[kLength] > kDefaultMaxDecompressedSize) {
22760
- this.#aborted = true;
23485
+ if (this.#maxPayloadSize > 0 && this.#inflate[kLength] > this.#maxPayloadSize) {
23486
+ callback(new MessageSizeExceededError());
22761
23487
  this.#inflate.removeAllListeners();
22762
- this.#inflate.destroy();
22763
23488
  this.#inflate = null;
22764
- if (this.#currentCallback) {
22765
- const cb = this.#currentCallback;
22766
- this.#currentCallback = null;
22767
- cb(new MessageSizeExceededError());
22768
- }
22769
23489
  return;
22770
23490
  }
22771
23491
  this.#inflate[kBuffer].push(data);
@@ -22775,19 +23495,17 @@ var require_permessage_deflate = __commonJS({
22775
23495
  callback(err);
22776
23496
  });
22777
23497
  }
22778
- this.#currentCallback = callback;
22779
23498
  this.#inflate.write(chunk);
22780
23499
  if (fin) {
22781
23500
  this.#inflate.write(tail);
22782
23501
  }
22783
23502
  this.#inflate.flush(() => {
22784
- if (this.#aborted || !this.#inflate) {
23503
+ if (!this.#inflate) {
22785
23504
  return;
22786
23505
  }
22787
23506
  const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength]);
22788
23507
  this.#inflate[kBuffer].length = 0;
22789
23508
  this.#inflate[kLength] = 0;
22790
- this.#currentCallback = null;
22791
23509
  callback(null, full);
22792
23510
  });
22793
23511
  }
@@ -22796,9 +23514,9 @@ var require_permessage_deflate = __commonJS({
22796
23514
  }
22797
23515
  });
22798
23516
 
22799
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/receiver.js
23517
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/receiver.js
22800
23518
  var require_receiver = __commonJS({
22801
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/receiver.js"(exports, module) {
23519
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/receiver.js"(exports, module) {
22802
23520
  "use strict";
22803
23521
  var { Writable } = __require("node:stream");
22804
23522
  var assert = __require("node:assert");
@@ -22828,16 +23546,23 @@ var require_receiver = __commonJS({
22828
23546
  #extensions;
22829
23547
  /** @type {import('./websocket').Handler} */
22830
23548
  #handler;
23549
+ /** @type {number} */
23550
+ #maxFragments;
23551
+ /** @type {number} */
23552
+ #maxPayloadSize;
22831
23553
  /**
22832
23554
  * @param {import('./websocket').Handler} handler
22833
23555
  * @param {Map<string, string>|null} extensions
23556
+ * @param {{ maxFragments?: number, maxPayloadSize?: number }} [options]
22834
23557
  */
22835
- constructor(handler, extensions) {
23558
+ constructor(handler, extensions, options = {}) {
22836
23559
  super();
22837
23560
  this.#handler = handler;
22838
23561
  this.#extensions = extensions == null ? /* @__PURE__ */ new Map() : extensions;
23562
+ this.#maxFragments = options.maxFragments ?? 0;
23563
+ this.#maxPayloadSize = options.maxPayloadSize ?? 0;
22839
23564
  if (this.#extensions.has("permessage-deflate")) {
22840
- this.#extensions.set("permessage-deflate", new PerMessageDeflate(extensions));
23565
+ this.#extensions.set("permessage-deflate", new PerMessageDeflate(extensions, options));
22841
23566
  }
22842
23567
  }
22843
23568
  /**
@@ -22850,6 +23575,13 @@ var require_receiver = __commonJS({
22850
23575
  this.#loop = true;
22851
23576
  this.run(callback);
22852
23577
  }
23578
+ #validatePayloadLength() {
23579
+ if (this.#maxPayloadSize > 0 && !isControlFrame(this.#info.opcode) && this.#info.payloadLength + this.#fragmentsBytes > this.#maxPayloadSize) {
23580
+ failWebsocketConnection(this.#handler, 1009, "Payload size exceeds maximum allowed size");
23581
+ return false;
23582
+ }
23583
+ return true;
23584
+ }
22853
23585
  /**
22854
23586
  * Runs whenever a new chunk is received.
22855
23587
  * Callback is called whenever there are no more chunks buffering,
@@ -22909,6 +23641,9 @@ var require_receiver = __commonJS({
22909
23641
  if (payloadLength <= 125) {
22910
23642
  this.#info.payloadLength = payloadLength;
22911
23643
  this.#state = parserStates.READ_DATA;
23644
+ if (!this.#validatePayloadLength()) {
23645
+ return;
23646
+ }
22912
23647
  } else if (payloadLength === 126) {
22913
23648
  this.#state = parserStates.PAYLOADLENGTH_16;
22914
23649
  } else if (payloadLength === 127) {
@@ -22929,6 +23664,9 @@ var require_receiver = __commonJS({
22929
23664
  const buffer = this.consume(2);
22930
23665
  this.#info.payloadLength = buffer.readUInt16BE(0);
22931
23666
  this.#state = parserStates.READ_DATA;
23667
+ if (!this.#validatePayloadLength()) {
23668
+ return;
23669
+ }
22932
23670
  } else if (this.#state === parserStates.PAYLOADLENGTH_64) {
22933
23671
  if (this.#byteOffset < 8) {
22934
23672
  return callback();
@@ -22942,6 +23680,9 @@ var require_receiver = __commonJS({
22942
23680
  }
22943
23681
  this.#info.payloadLength = lower;
22944
23682
  this.#state = parserStates.READ_DATA;
23683
+ if (!this.#validatePayloadLength()) {
23684
+ return;
23685
+ }
22945
23686
  } else if (this.#state === parserStates.READ_DATA) {
22946
23687
  if (this.#byteOffset < this.#info.payloadLength) {
22947
23688
  return callback();
@@ -22952,30 +23693,43 @@ var require_receiver = __commonJS({
22952
23693
  this.#state = parserStates.INFO;
22953
23694
  } else {
22954
23695
  if (!this.#info.compressed) {
22955
- this.writeFragments(body);
23696
+ if (!this.writeFragments(body)) {
23697
+ return;
23698
+ }
22956
23699
  if (!this.#info.fragmented && this.#info.fin) {
22957
23700
  websocketMessageReceived(this.#handler, this.#info.binaryType, this.consumeFragments());
22958
23701
  }
22959
23702
  this.#state = parserStates.INFO;
22960
23703
  } else {
22961
- this.#extensions.get("permessage-deflate").decompress(body, this.#info.fin, (error, data) => {
22962
- if (error) {
22963
- const code = error instanceof MessageSizeExceededError ? 1009 : 1007;
22964
- failWebsocketConnection(this.#handler, code, error.message);
22965
- return;
22966
- }
22967
- this.writeFragments(data);
22968
- if (!this.#info.fin) {
22969
- this.#state = parserStates.INFO;
23704
+ this.#extensions.get("permessage-deflate").decompress(
23705
+ body,
23706
+ this.#info.fin,
23707
+ (error, data) => {
23708
+ if (error) {
23709
+ const code = error instanceof MessageSizeExceededError ? 1009 : 1007;
23710
+ failWebsocketConnection(this.#handler, code, error.message);
23711
+ return;
23712
+ }
23713
+ if (!this.writeFragments(data)) {
23714
+ return;
23715
+ }
23716
+ if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) {
23717
+ failWebsocketConnection(this.#handler, 1009, new MessageSizeExceededError().message);
23718
+ return;
23719
+ }
23720
+ if (!this.#info.fin) {
23721
+ this.#state = parserStates.INFO;
23722
+ this.#loop = true;
23723
+ this.run(callback);
23724
+ return;
23725
+ }
23726
+ websocketMessageReceived(this.#handler, this.#info.binaryType, this.consumeFragments());
22970
23727
  this.#loop = true;
23728
+ this.#state = parserStates.INFO;
22971
23729
  this.run(callback);
22972
- return;
22973
- }
22974
- websocketMessageReceived(this.#handler, this.#info.binaryType, this.consumeFragments());
22975
- this.#loop = true;
22976
- this.#state = parserStates.INFO;
22977
- this.run(callback);
22978
- });
23730
+ },
23731
+ this.#fragmentsBytes
23732
+ );
22979
23733
  this.#loop = false;
22980
23734
  break;
22981
23735
  }
@@ -23023,8 +23777,13 @@ var require_receiver = __commonJS({
23023
23777
  }
23024
23778
  }
23025
23779
  writeFragments(fragment) {
23780
+ if (this.#maxFragments > 0 && this.#fragments.length === this.#maxFragments) {
23781
+ failWebsocketConnection(this.#handler, 1008, "Too many message fragments");
23782
+ return false;
23783
+ }
23026
23784
  this.#fragmentsBytes += fragment.length;
23027
23785
  this.#fragments.push(fragment);
23786
+ return true;
23028
23787
  }
23029
23788
  consumeFragments() {
23030
23789
  const fragments = this.#fragments;
@@ -23114,9 +23873,9 @@ var require_receiver = __commonJS({
23114
23873
  }
23115
23874
  });
23116
23875
 
23117
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/sender.js
23876
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/sender.js
23118
23877
  var require_sender = __commonJS({
23119
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/sender.js"(exports, module) {
23878
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/sender.js"(exports, module) {
23120
23879
  "use strict";
23121
23880
  var { WebsocketFrameSend } = require_frame();
23122
23881
  var { opcodes, sendHints } = require_constants5();
@@ -23201,9 +23960,9 @@ var require_sender = __commonJS({
23201
23960
  }
23202
23961
  });
23203
23962
 
23204
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/websocket.js
23963
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/websocket.js
23205
23964
  var require_websocket = __commonJS({
23206
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/websocket.js"(exports, module) {
23965
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/websocket.js"(exports, module) {
23207
23966
  "use strict";
23208
23967
  var { isArrayBuffer } = __require("node:util/types");
23209
23968
  var { webidl } = require_webidl();
@@ -23491,7 +24250,13 @@ var require_websocket = __commonJS({
23491
24250
  */
23492
24251
  #onConnectionEstablished(response, parsedExtensions) {
23493
24252
  this.#handler.socket = response.socket;
23494
- const parser = new ByteParser(this.#handler, parsedExtensions);
24253
+ const webSocketOptions = this.#handler.controller.dispatcher?.webSocketOptions;
24254
+ const maxFragments = webSocketOptions?.maxFragments;
24255
+ const maxPayloadSize = webSocketOptions?.maxPayloadSize;
24256
+ const parser = new ByteParser(this.#handler, parsedExtensions, {
24257
+ maxFragments,
24258
+ maxPayloadSize
24259
+ });
23495
24260
  parser.on("drain", () => this.#handler.onParserDrain());
23496
24261
  parser.on("error", (err) => this.#handler.onParserError(err));
23497
24262
  this.#parser = parser;
@@ -23685,9 +24450,9 @@ var require_websocket = __commonJS({
23685
24450
  }
23686
24451
  });
23687
24452
 
23688
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/stream/websocketerror.js
24453
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/stream/websocketerror.js
23689
24454
  var require_websocketerror = __commonJS({
23690
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/stream/websocketerror.js"(exports, module) {
24455
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/stream/websocketerror.js"(exports, module) {
23691
24456
  "use strict";
23692
24457
  var { webidl } = require_webidl();
23693
24458
  var { validateCloseCodeAndReason } = require_util5();
@@ -23765,9 +24530,9 @@ var require_websocketerror = __commonJS({
23765
24530
  }
23766
24531
  });
23767
24532
 
23768
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/stream/websocketstream.js
24533
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/stream/websocketstream.js
23769
24534
  var require_websocketstream = __commonJS({
23770
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/websocket/stream/websocketstream.js"(exports, module) {
24535
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/stream/websocketstream.js"(exports, module) {
23771
24536
  "use strict";
23772
24537
  var { createDeferredPromise } = require_promise();
23773
24538
  var { environmentSettingsObject } = require_util2();
@@ -23935,7 +24700,12 @@ var require_websocketstream = __commonJS({
23935
24700
  /** @type {import('../websocket').Handler['onConnectionEstablished']} */
23936
24701
  #onConnectionEstablished(response, parsedExtensions) {
23937
24702
  this.#handler.socket = response.socket;
23938
- const parser = new ByteParser(this.#handler, parsedExtensions);
24703
+ const maxFragments = this.#handler.controller.dispatcher?.webSocketOptions?.maxFragments;
24704
+ const maxPayloadSize = this.#handler.controller.dispatcher?.webSocketOptions?.maxPayloadSize;
24705
+ const parser = new ByteParser(this.#handler, parsedExtensions, {
24706
+ maxFragments,
24707
+ maxPayloadSize
24708
+ });
23939
24709
  parser.on("drain", () => this.#handler.onParserDrain());
23940
24710
  parser.on("error", (err) => this.#handler.onParserError(err));
23941
24711
  this.#parser = parser;
@@ -23946,12 +24716,6 @@ var require_websocketstream = __commonJS({
23946
24716
  start: (controller) => {
23947
24717
  this.#readableStreamController = controller;
23948
24718
  },
23949
- pull(controller) {
23950
- let chunk;
23951
- while (controller.desiredSize > 0 && (chunk = response.socket.read()) !== null) {
23952
- controller.enqueue(chunk);
23953
- }
23954
- },
23955
24719
  cancel: (reason) => this.#cancel(reason)
23956
24720
  });
23957
24721
  const writable = new WritableStream({
@@ -23978,7 +24742,7 @@ var require_websocketstream = __commonJS({
23978
24742
  try {
23979
24743
  chunk = utf8Decode(data);
23980
24744
  } catch {
23981
- failWebsocketConnection(this.#handler, "Received invalid UTF-8 in text frame.");
24745
+ failWebsocketConnection(this.#handler, 1007, "Received invalid UTF-8 in text frame.");
23982
24746
  return;
23983
24747
  }
23984
24748
  } else if (type === opcodes.BINARY) {
@@ -24077,9 +24841,9 @@ var require_websocketstream = __commonJS({
24077
24841
  }
24078
24842
  });
24079
24843
 
24080
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/eventsource/util.js
24844
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/eventsource/util.js
24081
24845
  var require_util6 = __commonJS({
24082
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/eventsource/util.js"(exports, module) {
24846
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/eventsource/util.js"(exports, module) {
24083
24847
  "use strict";
24084
24848
  function isValidLastEventId(value) {
24085
24849
  return value.indexOf("\0") === -1;
@@ -24098,9 +24862,9 @@ var require_util6 = __commonJS({
24098
24862
  }
24099
24863
  });
24100
24864
 
24101
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/eventsource/eventsource-stream.js
24865
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/eventsource/eventsource-stream.js
24102
24866
  var require_eventsource_stream = __commonJS({
24103
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports, module) {
24867
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports, module) {
24104
24868
  "use strict";
24105
24869
  var { Transform } = __require("node:stream");
24106
24870
  var { isASCIINumber, isValidLastEventId } = require_util6();
@@ -24329,9 +25093,9 @@ ${value}`;
24329
25093
  }
24330
25094
  });
24331
25095
 
24332
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/eventsource/eventsource.js
25096
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/eventsource/eventsource.js
24333
25097
  var require_eventsource = __commonJS({
24334
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/eventsource/eventsource.js"(exports, module) {
25098
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/eventsource/eventsource.js"(exports, module) {
24335
25099
  "use strict";
24336
25100
  var { pipeline } = __require("node:stream");
24337
25101
  var { fetching } = require_fetch();
@@ -24646,9 +25410,9 @@ var require_eventsource = __commonJS({
24646
25410
  }
24647
25411
  });
24648
25412
 
24649
- // node_modules/.pnpm/undici@7.24.8/node_modules/undici/index.js
25413
+ // node_modules/.pnpm/undici@7.29.0/node_modules/undici/index.js
24650
25414
  var require_undici = __commonJS({
24651
- "node_modules/.pnpm/undici@7.24.8/node_modules/undici/index.js"(exports, module) {
25415
+ "node_modules/.pnpm/undici@7.29.0/node_modules/undici/index.js"(exports, module) {
24652
25416
  "use strict";
24653
25417
  var Client = require_client();
24654
25418
  var Dispatcher2 = require_dispatcher();
@@ -24856,7 +25620,7 @@ import { readFile, stat } from "node:fs/promises";
24856
25620
  import { homedir } from "node:os";
24857
25621
  import { join, resolve } from "node:path";
24858
25622
 
24859
- // node_modules/.pnpm/dsh-coding-oauth-core@0.1.0/node_modules/dsh-coding-oauth-core/lib/proxy.js
25623
+ // node_modules/.pnpm/dsh-coding-oauth-core@0.1.1/node_modules/dsh-coding-oauth-core/lib/proxy.js
24860
25624
  var import_undici = __toESM(require_undici(), 1);
24861
25625
  var DEFAULT_PROXIED_HOSTS = [
24862
25626
  "auth.x.ai",
@@ -24985,7 +25749,7 @@ function codingOAuthProxyUnreachableHint() {
24985
25749
  return codingOAuthProxyInEffect() === void 0 ? "" : "; check that CODING_OAUTH_PROXY is reachable";
24986
25750
  }
24987
25751
 
24988
- // node_modules/.pnpm/dsh-coding-oauth-core@0.1.0/node_modules/dsh-coding-oauth-core/lib/ids.js
25752
+ // node_modules/.pnpm/dsh-coding-oauth-core@0.1.1/node_modules/dsh-coding-oauth-core/lib/ids.js
24989
25753
  var XAI_PI_PROVIDER = "xai";
24990
25754
  var CODEX_PI_PROVIDER = "openai-codex";
24991
25755
  var KIMI_PI_PROVIDER = "kimi-coding";
@@ -25004,7 +25768,7 @@ var KIMI_CODE_OAUTH_MODELS_CACHE_FILENAME = ".kimi-code-oauth-models.json";
25004
25768
  var CLAUDE_CODE_OAUTH_MODELS_CACHE_FILENAME = ".claude-code-oauth-models.json";
25005
25769
  var DEFAULT_GROK_BUILD_MODEL = "grok-4.6";
25006
25770
 
25007
- // node_modules/.pnpm/dsh-coding-oauth-core@0.1.0/node_modules/dsh-coding-oauth-core/lib/state-contract.js
25771
+ // node_modules/.pnpm/dsh-coding-oauth-core@0.1.1/node_modules/dsh-coding-oauth-core/lib/state-contract.js
25008
25772
  var GROK_BUILD_AUTH_STATUS_PATH = "/plugins/dsh-grok-build/auth/status";
25009
25773
  var GROK_BUILD_AUTH_LOGIN_PATH = "/plugins/dsh-grok-build/auth/login";
25010
25774
  var GROK_BUILD_AUTH_LOGIN_CODE_PATH = "/plugins/dsh-grok-build/auth/login/code";