@kodycodes/cli 1.31.5 → 1.31.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +6 -0
  2. package/dist/{auth-CDE7OTGY.js → auth-QVK2QZCG.js} +4 -4
  3. package/dist/auth.d.ts +15 -0
  4. package/dist/bin.js +6 -6
  5. package/dist/{chunk-CSHXLQ3B.js → chunk-4TU44MXD.js} +2 -2
  6. package/dist/chunk-GVSGNTG6.js +43 -0
  7. package/dist/chunk-GVSGNTG6.js.map +6 -0
  8. package/dist/{chunk-6AUXJTDA.js → chunk-MA2Q2AWD.js} +140 -10
  9. package/dist/chunk-MA2Q2AWD.js.map +6 -0
  10. package/dist/{chunk-YKSELVAI.js → chunk-NTIJ36ZW.js} +68 -17
  11. package/dist/{chunk-YKSELVAI.js.map → chunk-NTIJ36ZW.js.map} +1 -1
  12. package/dist/{chunk-LIE42B73.js → chunk-WNQYXLQ5.js} +82 -46
  13. package/dist/chunk-WNQYXLQ5.js.map +6 -0
  14. package/dist/{chunk-BLPFUGNH.js → chunk-YM4IIHH5.js} +2 -2
  15. package/dist/cli.d.ts +1 -0
  16. package/dist/cli.js +6 -6
  17. package/dist/credential-dir.d.ts +30 -0
  18. package/dist/{dev-command-75DM5QWK.js → dev-command-RS24SIQM.js} +50 -7
  19. package/dist/{dev-command-75DM5QWK.js.map → dev-command-RS24SIQM.js.map} +1 -1
  20. package/dist/dev-command.d.ts +18 -0
  21. package/dist/{git-credential-XLD2N62E.js → git-credential-6EBU7AD4.js} +5 -5
  22. package/dist/{install-ONEJRYZ3.js → install-IR4MAVPG.js} +2 -2
  23. package/dist/login-callback-page.d.ts +1 -1
  24. package/dist/login-notice.d.ts +10 -0
  25. package/dist/{mock-dep-resolve-FRLPKTU2.js → mock-dep-resolve-MFFL6O7J.js} +5 -5
  26. package/dist/{open-api-client-HVWBTRXF.js → open-api-client-KC5DL744.js} +6 -2
  27. package/dist/open-api-client.d.ts +30 -0
  28. package/dist/open-url.d.ts +15 -1
  29. package/dist/{remote-execute-JIL4G3OF.js → remote-execute-ARIXR6ID.js} +2 -2
  30. package/dist/{setup-git-6VJBUPOI.js → setup-git-U6RXCG5T.js} +3 -3
  31. package/package.json +1 -1
  32. package/dist/chunk-6AUXJTDA.js.map +0 -6
  33. package/dist/chunk-LIE42B73.js.map +0 -6
  34. package/dist/chunk-ZILB2HWE.js +0 -24
  35. package/dist/chunk-ZILB2HWE.js.map +0 -6
  36. /package/dist/{auth-CDE7OTGY.js.map → auth-QVK2QZCG.js.map} +0 -0
  37. /package/dist/{chunk-CSHXLQ3B.js.map → chunk-4TU44MXD.js.map} +0 -0
  38. /package/dist/{chunk-BLPFUGNH.js.map → chunk-YM4IIHH5.js.map} +0 -0
  39. /package/dist/{git-credential-XLD2N62E.js.map → git-credential-6EBU7AD4.js.map} +0 -0
  40. /package/dist/{install-ONEJRYZ3.js.map → install-IR4MAVPG.js.map} +0 -0
  41. /package/dist/{mock-dep-resolve-FRLPKTU2.js.map → mock-dep-resolve-MFFL6O7J.js.map} +0 -0
  42. /package/dist/{open-api-client-HVWBTRXF.js.map → open-api-client-KC5DL744.js.map} +0 -0
  43. /package/dist/{remote-execute-JIL4G3OF.js.map → remote-execute-ARIXR6ID.js.map} +0 -0
  44. /package/dist/{setup-git-6VJBUPOI.js.map → setup-git-U6RXCG5T.js.map} +0 -0
package/README.md CHANGED
@@ -235,6 +235,7 @@ kody dev webhook ping --body ./fixture.json
235
235
  kody dev emit demo.event --body ./event.json # subscription delivery shape
236
236
  kody dev check # local bundles + snapshot membership + publish checks (needs login)
237
237
  kody dev check --offline # local bundles + snapshot membership only; publish can still refuse
238
+ kody dev check --debug # also print the publish checks call: HTTP status, error code, request id
238
239
 
239
240
  # Four surfaces against mock then prod:
240
241
  kody execute --target mock --invoke ./greet --params '{"name":"kent"}'
@@ -458,6 +459,11 @@ If the keychain is unavailable (common on headless Linux), the CLI writes a
458
459
  `0600` file under `$XDG_CONFIG_HOME/kody` (or `%APPDATA%\kody` on Windows,
459
460
  `~/Library/Application Support/kody` on macOS). Tokens are never printed.
460
461
 
462
+ `kody login` checks that this folder exists and is writable (creating it when
463
+ missing) before it opens the browser. If the folder is blocked, login stops
464
+ early and prints the folder path plus the commands to fix it. The sign-in link
465
+ is always printed too, so you can paste it into a browser if no window appears.
466
+
461
467
  Access tokens refresh automatically on expiry or HTTP 401.
462
468
 
463
469
  `execute --local` prefers `--token` / `KODY_API_TOKEN` when set; otherwise it
@@ -7,10 +7,10 @@ import {
7
7
  login,
8
8
  refreshStoredCredentials,
9
9
  resolvePendingOrgSlug
10
- } from "./chunk-6AUXJTDA.js";
10
+ } from "./chunk-MA2Q2AWD.js";
11
11
  import "./chunk-CASGRYOF.js";
12
- import "./chunk-ZILB2HWE.js";
13
- import "./chunk-YKSELVAI.js";
12
+ import "./chunk-GVSGNTG6.js";
13
+ import "./chunk-NTIJ36ZW.js";
14
14
  import "./chunk-46IJPEID.js";
15
15
  import "./chunk-PWWN6JI2.js";
16
16
  import "./chunk-5BJUKHNZ.js";
@@ -28,4 +28,4 @@ export {
28
28
  refreshStoredCredentials,
29
29
  resolvePendingOrgSlug
30
30
  };
31
- //# sourceMappingURL=auth-CDE7OTGY.js.map
31
+ //# sourceMappingURL=auth-QVK2QZCG.js.map
package/dist/auth.d.ts CHANGED
@@ -11,7 +11,22 @@ export type LoginOptions = {
11
11
  timeoutMs?: number;
12
12
  now?: () => number;
13
13
  fetchFn?: typeof fetch;
14
+ /**
15
+ * Called with the sign-in URL every time, before the browser is opened, so
16
+ * the CLI can always print it as a fallback.
17
+ */
14
18
  onAuthorizationUrl?: (url: URL) => void;
19
+ /**
20
+ * Called after trying to open the browser. `opened` is false when the
21
+ * system opener failed, so the CLI can tell the user to use the printed URL.
22
+ */
23
+ onBrowserOpenResult?: (result: {
24
+ opened: boolean;
25
+ }) => void;
26
+ /** Test seam for opening the browser. Defaults to {@link openUrl}. */
27
+ openUrlFn?: (url: string) => Promise<boolean>;
28
+ /** Test seam: platform used for the fix steps in folder errors. */
29
+ platform?: NodeJS.Platform;
15
30
  /**
16
31
  * Test seam: resolve org + account after the code exchange so the localhost
17
32
  * callback page can show them (and multi-org storage can name the login).
package/dist/bin.js CHANGED
@@ -2,17 +2,17 @@
2
2
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  runCli
5
- } from "./chunk-LIE42B73.js";
5
+ } from "./chunk-WNQYXLQ5.js";
6
6
  import "./chunk-2XPH7L2P.js";
7
7
  import "./chunk-SLNAWWQK.js";
8
8
  import "./chunk-YDWTXEKQ.js";
9
- import "./chunk-CSHXLQ3B.js";
10
- import "./chunk-BLPFUGNH.js";
9
+ import "./chunk-4TU44MXD.js";
10
+ import "./chunk-YM4IIHH5.js";
11
11
  import "./chunk-6ZYUGXVW.js";
12
- import "./chunk-6AUXJTDA.js";
12
+ import "./chunk-MA2Q2AWD.js";
13
13
  import "./chunk-CASGRYOF.js";
14
- import "./chunk-ZILB2HWE.js";
15
- import "./chunk-YKSELVAI.js";
14
+ import "./chunk-GVSGNTG6.js";
15
+ import "./chunk-NTIJ36ZW.js";
16
16
  import "./chunk-46IJPEID.js";
17
17
  import "./chunk-PWWN6JI2.js";
18
18
  import "./chunk-5BJUKHNZ.js";
@@ -30,7 +30,7 @@ async function resolveLocalExecuteBearer(input) {
30
30
  `kody login credentials for ${mcpOrigin} are only sent to ${expectedPairedApiOrigin(mcpUrl)}. For ${apiOrigin}, run \`kody auth bootstrap --code \u2026 --api-url ${apiOrigin}\` or set KODY_API_TOKEN.`
31
31
  );
32
32
  }
33
- const ensure = input.ensureCredentials ?? (await import("./auth-CDE7OTGY.js")).ensureFreshCredentials;
33
+ const ensure = input.ensureCredentials ?? (await import("./auth-QVK2QZCG.js")).ensureFreshCredentials;
34
34
  try {
35
35
  const credentials = await ensure({
36
36
  mcpUrl: input.mcpUrl,
@@ -51,4 +51,4 @@ async function resolveLocalExecuteBearer(input) {
51
51
  export {
52
52
  resolveLocalExecuteBearer
53
53
  };
54
- //# sourceMappingURL=chunk-CSHXLQ3B.js.map
54
+ //# sourceMappingURL=chunk-4TU44MXD.js.map
@@ -0,0 +1,43 @@
1
+ import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
+
3
+ // src/open-url.ts
4
+ import { spawn } from "node:child_process";
5
+ var openerSettleMs = 1500;
6
+ async function openUrl(url, options = {}) {
7
+ const platform = options.platform ?? process.platform;
8
+ const command = platform === "darwin" ? "open" : platform === "win32" ? "cmd" : "xdg-open";
9
+ const args = platform === "win32" ? ["/c", "start", "", url] : [url];
10
+ const spawnFn = options.spawnFn ?? spawn;
11
+ return await new Promise((resolve) => {
12
+ let settled = false;
13
+ const finish = (opened) => {
14
+ if (settled) return;
15
+ settled = true;
16
+ clearTimeout(timer);
17
+ resolve(opened);
18
+ };
19
+ const timer = setTimeout(
20
+ () => finish(true),
21
+ options.settleMs ?? openerSettleMs
22
+ );
23
+ let child;
24
+ try {
25
+ child = spawnFn(command, args, {
26
+ detached: true,
27
+ stdio: "ignore",
28
+ windowsHide: true
29
+ });
30
+ } catch {
31
+ finish(false);
32
+ return;
33
+ }
34
+ child.on("error", () => finish(false));
35
+ child.on("exit", (code) => finish(code === 0 || code === null));
36
+ child.unref();
37
+ });
38
+ }
39
+
40
+ export {
41
+ openUrl
42
+ };
43
+ //# sourceMappingURL=chunk-GVSGNTG6.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/open-url.ts"],
4
+ "mappings": ";;;AAAA,SAAS,aAAa;AAGtB,IAAM,iBAAiB;AAgBvB,eAAsB,QACrB,KACA,UAA0B,CAAC,GACR;AACnB,QAAM,WAAW,QAAQ,YAAY,QAAQ;AAC7C,QAAM,UACL,aAAa,WAAW,SAAS,aAAa,UAAU,QAAQ;AACjE,QAAM,OAAO,aAAa,UAAU,CAAC,MAAM,SAAS,IAAI,GAAG,IAAI,CAAC,GAAG;AACnE,QAAM,UAAU,QAAQ,WAAW;AACnC,SAAO,MAAM,IAAI,QAAQ,CAAC,YAAY;AACrC,QAAI,UAAU;AACd,UAAM,SAAS,CAAC,WAAoB;AACnC,UAAI,QAAS;AACb,gBAAU;AACV,mBAAa,KAAK;AAClB,cAAQ,MAAM;AAAA,IACf;AACA,UAAM,QAAQ;AAAA,MACb,MAAM,OAAO,IAAI;AAAA,MACjB,QAAQ,YAAY;AAAA,IACrB;AACA,QAAI;AACJ,QAAI;AACH,cAAQ,QAAQ,SAAS,MAAM;AAAA,QAC9B,UAAU;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,MACd,CAAC;AAAA,IACF,QAAQ;AACP,aAAO,KAAK;AACZ;AAAA,IACD;AACA,UAAM,GAAG,SAAS,MAAM,OAAO,KAAK,CAAC;AACrC,UAAM,GAAG,QAAQ,CAAC,SAAS,OAAO,SAAS,KAAK,SAAS,IAAI,CAAC;AAC9D,UAAM,MAAM;AAAA,EACb,CAAC;AACF;",
5
+ "names": []
6
+ }
@@ -4,12 +4,12 @@ import {
4
4
  } from "./chunk-CASGRYOF.js";
5
5
  import {
6
6
  openUrl
7
- } from "./chunk-ZILB2HWE.js";
7
+ } from "./chunk-GVSGNTG6.js";
8
8
  import {
9
9
  OpenApiError,
10
10
  openApiGet,
11
11
  openApiRequest
12
- } from "./chunk-YKSELVAI.js";
12
+ } from "./chunk-NTIJ36ZW.js";
13
13
  import {
14
14
  isScopedApiToken,
15
15
  notAuthenticatedMessage
@@ -18,6 +18,7 @@ import {
18
18
  orgSlugFromFlag
19
19
  } from "./chunk-CWWHR4FH.js";
20
20
  import {
21
+ fileStorePath,
21
22
  loadCredentialStore,
22
23
  loadCredentials,
23
24
  loadPendingCredentials,
@@ -38,6 +39,7 @@ import {
38
39
  import {
39
40
  createServer
40
41
  } from "node:http";
42
+ import { dirname as dirname2 } from "node:path";
41
43
 
42
44
  // src/login-callback-assets.ts
43
45
  var kodyMarkPngDataUri = "data:image/png;base64,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";
@@ -60,6 +62,10 @@ var errorCopy = {
60
62
  failed: {
61
63
  title: "Sign-in failed",
62
64
  body: "Kody could not finish signing the CLI in."
65
+ },
66
+ save_failed: {
67
+ title: "Approved, but not saved",
68
+ body: "You approved the connection, but the Kody CLI could not save your sign-in on this computer. Your terminal shows what went wrong and how to fix it."
63
69
  }
64
70
  };
65
71
  function escapeHtml(value) {
@@ -353,7 +359,7 @@ function renderError(page) {
353
359
  <p class="lead">${escapeHtml(copy.body)}</p>
354
360
  </div>
355
361
  </div>
356
- <p class="next">Return to your terminal and run <code>kody login</code> to try again.</p>
362
+ <p class="next">${page.error === "save_failed" ? "Return to your terminal, follow the fix it shows, then run <code>kody login</code> again." : "Return to your terminal and run <code>kody login</code> to try again."}</p>
357
363
  </section>
358
364
  </main>
359
365
  ${closeScript()}
@@ -415,6 +421,103 @@ async function discoverLoginIdentity(input) {
415
421
  };
416
422
  }
417
423
 
424
+ // src/credential-dir.ts
425
+ import { mkdirSync, rmSync, statSync, writeFileSync } from "node:fs";
426
+ import { dirname, join } from "node:path";
427
+ var folderErrorCodes = /* @__PURE__ */ new Set([
428
+ "EACCES",
429
+ "EPERM",
430
+ "EROFS",
431
+ "ENOTDIR",
432
+ "EEXIST",
433
+ "ENOENT"
434
+ ]);
435
+ function errorCode(error) {
436
+ if (error && typeof error === "object" && "code" in error) {
437
+ const code = error.code;
438
+ return typeof code === "string" ? code : void 0;
439
+ }
440
+ return void 0;
441
+ }
442
+ function errorText(error) {
443
+ if (error instanceof Error) return error.message;
444
+ return String(error);
445
+ }
446
+ function isCredentialFolderError(error) {
447
+ const code = errorCode(error);
448
+ return code !== void 0 && folderErrorCodes.has(code);
449
+ }
450
+ function credentialDirFor(mcpUrl, resolution) {
451
+ return dirname(resolution?.fileStorePath?.(mcpUrl) ?? fileStorePath(mcpUrl));
452
+ }
453
+ function quote(path) {
454
+ return `"${path.replaceAll('"', '\\"')}"`;
455
+ }
456
+ function credentialDirFixSteps(dir, platform = process.platform) {
457
+ if (platform === "win32") {
458
+ return [
459
+ "To fix it:",
460
+ ` 1. Open File Explorer and go to ${dir}`,
461
+ ' 2. Right-click the folder, choose Properties, then Security, and give your user "Full control".',
462
+ " 3. Run `kody login` again."
463
+ ].join("\n");
464
+ }
465
+ const lines = [
466
+ "To fix it, open Terminal and run these two commands (your Mac or computer password may be requested):",
467
+ ` sudo mkdir -p ${quote(dir)}`,
468
+ ` sudo chown -R "$(whoami)" ${quote(dir)} && chmod u+rwx ${quote(dir)}`,
469
+ "Then run `kody login` again."
470
+ ];
471
+ if (platform === "darwin") {
472
+ lines.push(
473
+ "If macOS still blocks it, open System Settings, then Privacy & Security, then Full Disk Access, and turn on your terminal app (for example Terminal or iTerm). Quit and reopen the terminal, then run `kody login` again."
474
+ );
475
+ }
476
+ return lines.join("\n");
477
+ }
478
+ var CredentialDirError = class extends Error {
479
+ dir;
480
+ code;
481
+ constructor(input) {
482
+ const code = errorCode(input.cause);
483
+ const detail = errorText(input.cause);
484
+ const intro = input.phase === "preflight" ? "Kody cannot sign you in yet because it is not allowed to save files in this folder:" : "You approved the sign-in, but Kody could not save it on this computer because it is not allowed to write to this folder:";
485
+ super(
486
+ [
487
+ intro,
488
+ ` ${input.dir}`,
489
+ `What went wrong: ${detail}`,
490
+ "",
491
+ credentialDirFixSteps(input.dir, input.platform)
492
+ ].join("\n"),
493
+ { cause: input.cause }
494
+ );
495
+ this.name = "CredentialDirError";
496
+ this.dir = input.dir;
497
+ this.code = code;
498
+ }
499
+ };
500
+ function ensureCredentialDirWritable(dir, options = {}) {
501
+ try {
502
+ mkdirSync(dir, { recursive: true, mode: 448 });
503
+ if (!statSync(dir).isDirectory()) {
504
+ const error = new Error(`${dir} is a file, not a folder.`);
505
+ error.code = "ENOTDIR";
506
+ throw error;
507
+ }
508
+ const probe = join(dir, `.kody-write-check-${process.pid}-${Date.now()}`);
509
+ writeFileSync(probe, "", { mode: 384 });
510
+ rmSync(probe, { force: true });
511
+ } catch (error) {
512
+ throw new CredentialDirError({
513
+ dir,
514
+ cause: error,
515
+ phase: "preflight",
516
+ platform: options.platform
517
+ });
518
+ }
519
+ }
520
+
418
521
  // src/discover-org.ts
419
522
  async function discoverOrgSlugFromAccessToken(input) {
420
523
  try {
@@ -1869,6 +1972,13 @@ async function login(options = {}) {
1869
1972
  const mcpUrl = options.mcpUrl ?? defaultMcpUrl;
1870
1973
  const apiUrl = options.apiUrl ?? defaultApiUrl;
1871
1974
  const orgHint = options.org === void 0 ? void 0 : orgSlugFromFlag(options.org);
1975
+ const credentialDir = options.backend?.kind === "file" && options.backend.path ? dirname2(options.backend.path) : options.backend ? void 0 : credentialDirFor(mcpUrl, options.resolution);
1976
+ if (credentialDir) {
1977
+ ensureCredentialDirWritable(
1978
+ credentialDir,
1979
+ options.platform ? { platform: options.platform } : {}
1980
+ );
1981
+ }
1872
1982
  const redirectUri = cliRedirectUrl();
1873
1983
  const expectedState = crypto.randomUUID();
1874
1984
  const issuer = new URL(mcpUrl).origin;
@@ -1888,7 +1998,13 @@ async function login(options = {}) {
1888
1998
  const server = await startCallbackServer(redirectUri);
1889
1999
  options.onAuthorizationUrl?.(authorizationUrl);
1890
2000
  if (options.openBrowser !== false) {
1891
- await openUrl(authorizationUrl.href);
2001
+ let opened = false;
2002
+ try {
2003
+ opened = await (options.openUrlFn ?? openUrl)(authorizationUrl.href);
2004
+ } catch {
2005
+ opened = false;
2006
+ }
2007
+ options.onBrowserOpenResult?.({ opened });
1892
2008
  }
1893
2009
  let completeCallback;
1894
2010
  try {
@@ -1967,11 +2083,25 @@ async function login(options = {}) {
1967
2083
  scopes: device.scopes,
1968
2084
  org
1969
2085
  });
1970
- const saved = saveCredentials(
1971
- credentials,
1972
- options.backend,
1973
- options.resolution
1974
- );
2086
+ let saved;
2087
+ try {
2088
+ saved = saveCredentials(credentials, options.backend, options.resolution);
2089
+ } catch (error) {
2090
+ completeCallback?.({ kind: "error", error: "save_failed" });
2091
+ completeCallback = void 0;
2092
+ if (isCredentialFolderError(error)) {
2093
+ throw new CredentialDirError({
2094
+ dir: credentialDir ?? credentialDirFor(mcpUrl, options.resolution),
2095
+ cause: redactError(error),
2096
+ phase: "save",
2097
+ ...options.platform ? { platform: options.platform } : {}
2098
+ });
2099
+ }
2100
+ throw new Error(
2101
+ `You approved the sign-in, but Kody could not save it on this computer. What went wrong: ${redactError(error).message}`,
2102
+ { cause: error }
2103
+ );
2104
+ }
1975
2105
  completeCallback?.({
1976
2106
  kind: "success",
1977
2107
  ...org ? { org } : {},
@@ -2002,4 +2132,4 @@ export {
2002
2132
  ensureOpenApiCredentials,
2003
2133
  login
2004
2134
  };
2005
- //# sourceMappingURL=chunk-6AUXJTDA.js.map
2135
+ //# sourceMappingURL=chunk-MA2Q2AWD.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/auth.ts", "../src/login-callback-assets.ts", "../src/login-callback-page.ts", "../src/discover-login-identity.ts", "../src/credential-dir.ts", "../src/discover-org.ts", "../../../node_modules/oauth4webapi/src/index.ts", "../src/oauth-browser.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,EACC;AAAA,OAIM;AACP,SAAS,WAAAA,gBAAe;;;ACEjB,IAAM,qBACZ;AAEM,IAAM,yBACZ;;;ACyBD,IAAM,YAGF;AAAA,EACH,QAAQ;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AAAA,EACA,gBAAgB;AAAA,IACf,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AAAA,EACA,SAAS;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AAAA,EACA,aAAa;AAAA,IACZ,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AACD;AAEA,SAAS,WAAW,OAAuB;AAC1C,SAAO,MACL,WAAW,KAAK,OAAO,EACvB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,QAAQ,EACxB,WAAW,KAAK,OAAO;AAC1B;AAEA,SAAS,aAAa,SAAmD;AACxE,QAAM,UAAU,QAAQ,aAAa,KAAK;AAC1C,QAAM,QAAQ,QAAQ,OAAO,KAAK;AAClC,QAAM,WAAW,QAAQ,UAAU,KAAK;AACxC,MAAI,WAAW,SAAS,YAAY,MAAO,QAAO,GAAG,OAAO,KAAK,KAAK;AACtE,MAAI,QAAS,QAAO;AACpB,MAAI,MAAO,QAAO;AAClB,MAAI,SAAU,QAAO;AACrB,SAAO;AACR;AAEA,SAAS,eAAuB;AAG/B,SAAO;AAAA,iBACS,kBAAkB;AAAA;AAEnC;AAEA,SAAS,cAAc,MAAmC;AACzD,MAAI,SAAS,WAAW;AACvB,WAAO;AAAA;AAAA;AAAA;AAAA,EAIR;AACA,SAAO;AAAA;AAAA;AAAA;AAIR;AAEA,SAAS,UAAkB;AAG1B,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBA4BiB,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0J/C;AAEA,SAAS,cAAsB;AAE9B,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASR;AAEA,SAAS,cAAc,MAAoC;AAC1D,QAAM,MAAM,KAAK,KAAK,KAAK;AAC3B,QAAM,UAAU,KAAK,UAAU,aAAa,KAAK,OAAO,IAAI;AAC5D,QAAM,QAAkB,CAAC;AACzB,MAAI,KAAK;AACR,UAAM;AAAA,MACL,yDAAyD,WAAW,GAAG,CAAC;AAAA,IACzE;AAAA,EACD;AACA,MAAI,SAAS;AACZ,UAAM;AAAA,MACL,6DAA6D,WAAW,OAAO,CAAC;AAAA,IACjF;AAAA,EACD;AACA,QAAM,YACL,MAAM,SAAS,IAAI,qBAAqB,MAAM,KAAK,EAAE,CAAC,UAAU;AACjE,QAAM,OAAO,MACV,oCAAoC,WAAW,GAAG,CAAC,eACnD;AACH,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAOC,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,yBAKO,aAAa,CAAC;AAAA;AAAA,QAE/B,cAAc,SAAS,CAAC;AAAA;AAAA;AAAA,0BAGN,IAAI;AAAA;AAAA;AAAA,MAGxB,SAAS;AAAA;AAAA;AAAA;AAAA,EAIb,YAAY,CAAC;AAAA;AAAA;AAGf;AAEA,SAAS,YAAY,MAAkC;AACtD,QAAM,OAAO,UAAU,KAAK,KAAK;AACjC,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAMC,WAAW,KAAK,KAAK,CAAC;AAAA,SACtB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,0DAIwC,WAAW,KAAK,KAAK,CAAC;AAAA,yBACvD,aAAa,CAAC;AAAA;AAAA,QAE/B,cAAc,OAAO,CAAC;AAAA;AAAA,cAEhB,WAAW,KAAK,KAAK,CAAC;AAAA,0BACV,WAAW,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA,sBAI5C,KAAK,UAAU,gBACZ,8FACA,uEACJ;AAAA;AAAA;AAAA,EAGA,YAAY,CAAC;AAAA;AAAA;AAGf;AAGO,SAAS,wBAAwB,MAAiC;AACxE,MAAI,KAAK,SAAS,UAAW,QAAO,cAAc,IAAI;AACtD,SAAO,YAAY,IAAI;AACxB;AAGO,SAAS,iCACf,OACyB;AACzB,QAAM,aAAa,MAAM,KAAK,EAAE,YAAY;AAC5C,MACC,eAAe,mBACf,eAAe,YACf,eAAe,oBACd;AACD,WAAO;AAAA,EACR;AACA,MACC,eAAe,aACf,eAAe,mBACf,eAAe,mBACf,WAAW,SAAS,SAAS,GAC5B;AACD,WAAO;AAAA,EACR;AACA,MACC,eAAe,oBACf,eAAe,qBACf,eAAe,iBACd;AACD,WAAO;AAAA,EACR;AACA,SAAO;AACR;;;ACtZA,eAAsB,sBAAsB,OAOjB;AAC1B,QAAM,UAAU,MAAM,WAAW;AAAA,IAChC,OAAO,MAAM;AAAA,IACb,QAAQ,MAAM,UAAU;AAAA,IACxB,MAAM;AAAA,IACN,SAAS,MAAM;AAAA,IACf,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC;AAAA,EACvC,CAAC;AACD,MAAI,CAAC,WAAW,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACtE,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,QAAM,SAAS;AAMf,QAAM,UAAU,OAAO,OAAO,KAAK,SAAS,WAAW,OAAO,IAAI,OAAO;AACzE,MAAI,CAAC,SAAS;AACb,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,QAAM,UAAgC,CAAC;AACvC,MAAI,OAAO,OAAO,iBAAiB,YAAY,OAAO,aAAa,KAAK,GAAG;AAC1E,YAAQ,cAAc,OAAO,aAAa,KAAK;AAAA,EAChD;AACA,MAAI,OAAO,OAAO,UAAU,YAAY,OAAO,MAAM,KAAK,GAAG;AAC5D,YAAQ,QAAQ,OAAO,MAAM,KAAK;AAAA,EACnC;AACA,MAAI,OAAO,OAAO,aAAa,YAAY,OAAO,SAAS,KAAK,GAAG;AAClE,YAAQ,WAAW,OAAO,SAAS,KAAK;AAAA,EACzC;AACA,SAAO;AAAA,IACN,KAAK,gBAAgB,OAAO;AAAA,IAC5B;AAAA,EACD;AACD;;;AC5DA,SAAS,WAAW,QAAQ,UAAU,qBAAqB;AAC3D,SAAS,SAAS,YAAY;AAI9B,IAAM,mBAAmB,oBAAI,IAAI;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAED,SAAS,UAAU,OAAoC;AACtD,MAAI,SAAS,OAAO,UAAU,YAAY,UAAU,OAAO;AAC1D,UAAM,OAAQ,MAA6B;AAC3C,WAAO,OAAO,SAAS,WAAW,OAAO;AAAA,EAC1C;AACA,SAAO;AACR;AAEA,SAAS,UAAU,OAAwB;AAC1C,MAAI,iBAAiB,MAAO,QAAO,MAAM;AACzC,SAAO,OAAO,KAAK;AACpB;AAGO,SAAS,wBAAwB,OAAyB;AAChE,QAAM,OAAO,UAAU,KAAK;AAC5B,SAAO,SAAS,UAAa,iBAAiB,IAAI,IAAI;AACvD;AAMO,SAAS,iBACf,QACA,YACS;AACT,SAAO,QAAQ,YAAY,gBAAgB,MAAM,KAAK,cAAc,MAAM,CAAC;AAC5E;AAEA,SAAS,MAAM,MAAsB;AACpC,SAAO,IAAI,KAAK,WAAW,KAAK,KAAK,CAAC;AACvC;AAGO,SAAS,sBACf,KACA,WAA4B,QAAQ,UAC3B;AACT,MAAI,aAAa,SAAS;AACzB,WAAO;AAAA,MACN;AAAA,MACA,qCAAqC,GAAG;AAAA,MACxC;AAAA,MACA;AAAA,IACD,EAAE,KAAK,IAAI;AAAA,EACZ;AACA,QAAM,QAAQ;AAAA,IACb;AAAA,IACA,mBAAmB,MAAM,GAAG,CAAC;AAAA,IAC7B,+BAA+B,MAAM,GAAG,CAAC,mBAAmB,MAAM,GAAG,CAAC;AAAA,IACtE;AAAA,EACD;AACA,MAAI,aAAa,UAAU;AAC1B,UAAM;AAAA,MACL;AAAA,IACD;AAAA,EACD;AACA,SAAO,MAAM,KAAK,IAAI;AACvB;AAGO,IAAM,qBAAN,cAAiC,MAAM;AAAA,EACpC;AAAA,EACA;AAAA,EACT,YAAY,OAKT;AACF,UAAM,OAAO,UAAU,MAAM,KAAK;AAClC,UAAM,SAAS,UAAU,MAAM,KAAK;AACpC,UAAM,QACL,MAAM,UAAU,cACb,wFACA;AACJ;AAAA,MACC;AAAA,QACC;AAAA,QACA,KAAK,MAAM,GAAG;AAAA,QACd,oBAAoB,MAAM;AAAA,QAC1B;AAAA,QACA,sBAAsB,MAAM,KAAK,MAAM,QAAQ;AAAA,MAChD,EAAE,KAAK,IAAI;AAAA,MACX,EAAE,OAAO,MAAM,MAAM;AAAA,IACtB;AACA,SAAK,OAAO;AACZ,SAAK,MAAM,MAAM;AACjB,SAAK,OAAO;AAAA,EACb;AACD;AAQO,SAAS,4BACf,KACA,UAA0C,CAAC,GACpC;AACP,MAAI;AACH,cAAU,KAAK,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAC/C,QAAI,CAAC,SAAS,GAAG,EAAE,YAAY,GAAG;AACjC,YAAM,QAAQ,IAAI,MAAM,GAAG,GAAG,2BAA2B;AAGzD,YAAM,OAAO;AACb,YAAM;AAAA,IACP;AACA,UAAM,QAAQ,KAAK,KAAK,qBAAqB,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,EAAE;AACxE,kBAAc,OAAO,IAAI,EAAE,MAAM,IAAM,CAAC;AACxC,WAAO,OAAO,EAAE,OAAO,KAAK,CAAC;AAAA,EAC9B,SAAS,OAAO;AACf,UAAM,IAAI,mBAAmB;AAAA,MAC5B;AAAA,MACA,OAAO;AAAA,MACP,OAAO;AAAA,MACP,UAAU,QAAQ;AAAA,IACnB,CAAC;AAAA,EACF;AACD;;;ACnIA,eAAsB,+BAA+B,OAKjC;AACnB,MAAI;AACH,UAAM,WAAW,MAAM,sBAAsB,KAAK;AAClD,WAAO,gBAAgB,SAAS,GAAG;AAAA,EACpC,SAAS,OAAO;AACf,UAAM,UACL,iBAAiB,QAAQ,MAAM,UAAU;AAC1C,QAAI,QAAQ,WAAW,sCAAsC,EAAG,OAAM;AACtE,UAAM,IAAI;AAAA,MACT,wDAAwD,OAAO;AAAA,IAChE;AAAA,EACD;AACD;;;ACvBA,IAAI;AAEJ,IAAI,OAAO,cAAc,eAAe,CAAC,UAAU,WAAW,aAAa,cAAc,GAAG;AAC1F,QAAM,OAAO;AACb,QAAM,UAAU;AAChB,eAAa,GAAG,IAAI,IAAI,OAAO;AACjC;AAiDA,SAAS,gBAA8B,OAAgB,UAAwB;AAC7E,MAAI,SAAS,MAAM;AACjB,WAAO;EACT;AAEA,MAAI;AACF,WACE,iBAAiB,YACjB,OAAO,eAAe,KAAK,EAAE,OAAO,WAAW,MAAM,SAAS,UAAU,OAAO,WAAW;EAE9F,QAAQ;AACN,WAAO;EACT;AACF;AAoCA,IAAM,wBAAwB;AAC9B,IAAM,uBAAuB;AAI7B,SAAS,eAAe,SAAiB,MAAa,OAAe;AACnE,QAAM,MAAM,IAAI,UAAU,SAAS,EAAE,MAAK,CAAE;AAC5C,SAAO,OAAO,KAAK,EAAE,KAAI,CAAE;AAC3B,SAAO;AACT;AAoKO,IAAM,wBAAuC,uBAAM;AAgCnD,IAAM,YAA2B,uBAAM;AAmBvC,IAAM,iBAAgC,uBAAM;AAoI5C,IAAM,cAA6B,uBAAM;AAqFzC,IAAM,aAA4B,uBAAM;AA2gB/C,IAAM,UAAU,IAAI,YAAW;AAC/B,IAAM,UAAU,IAAI,YAAW;AAI/B,SAAS,IAAI,OAA0B;AACrC,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,QAAQ,OAAO,KAAK;EAC7B;AAEA,SAAO,QAAQ,OAAO,KAAK;AAC7B;AAEA,IAAI;AAEJ,IAAI,WAAW,UAAU,UAAU;AACjC,oBAAkB,CAAC,UAAS;AAC1B,QAAI,iBAAiB,aAAa;AAChC,cAAQ,IAAI,WAAW,KAAK;IAC9B;AAGA,WAAO,MAAM,SAAS,EAAE,UAAU,aAAa,aAAa,KAAI,CAAE;EACpE;AACF,OAAO;AACL,QAAM,aAAa;AACnB,oBAAkB,CAAC,UAAS;AAC1B,QAAI,iBAAiB,aAAa;AAChC,cAAQ,IAAI,WAAW,KAAK;IAC9B;AAEA,UAAM,MAAM,CAAA;AACZ,aAAS,IAAI,GAAG,IAAI,MAAM,YAAY,KAAK,YAAY;AAErD,UAAI,KAAK,OAAO,aAAa,MAAM,MAAM,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC;IAC7E;AACA,WAAO,KAAK,IAAI,KAAK,EAAE,CAAC,EAAE,QAAQ,MAAM,EAAE,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG;EACpF;AACF;AAEA,IAAI;AAGJ,IAAI,WAAW,YAAY;AACzB,oBAAkB,CAAC,UAAS;AAC1B,QAAI;AAEF,aAAO,WAAW,WAAW,OAAO,EAAE,UAAU,YAAW,CAAE;IAC/D,SAAS,OAAO;AACd,YAAM,eACJ,qDACA,uBACA,KAAK;IAET;EACF;AACF,OAAO;AACL,oBAAkB,CAAC,UAAS;AAC1B,QAAI;AACF,YAAM,SAAS,KAAK,MAAM,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,OAAO,EAAE,CAAC;AAClF,YAAM,QAAQ,IAAI,WAAW,OAAO,MAAM;AAC1C,eAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,cAAM,CAAC,IAAI,OAAO,WAAW,CAAC;MAChC;AACA,aAAO;IACT,SAAS,OAAO;AACd,YAAM,eACJ,qDACA,uBACA,KAAK;IAET;EACF;AACF;AAIA,SAAS,KAAK,OAAwC;AACpD,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,gBAAgB,KAAK;EAC9B;AAEA,SAAO,gBAAgB,KAAK;AAC9B;AAOM,IAAO,4BAAP,cAAyC,MAAK;EAClD;EAIA,YAAY,SAAiB,SAA6B;AACxD,UAAM,SAAS,OAAO;AACtB,SAAK,OAAO,KAAK,YAAY;AAC7B,SAAK,OAAO;AAEZ,UAAM,oBAAoB,MAAM,KAAK,WAAW;EAClD;;AAQI,IAAO,2BAAP,cAAwC,MAAK;EACjD;EAKA,YAAY,SAAiB,SAA4C;AACvE,UAAM,SAAS,OAAO;AACtB,SAAK,OAAO,KAAK,YAAY;AAC7B,QAAI,SAAS,MAAM;AACjB,WAAK,OAAO,SAAS;IACvB;AAEA,UAAM,oBAAoB,MAAM,KAAK,WAAW;EAClD;;AAGF,SAAS,IAAI,SAAiB,MAAe,OAAe;AAC1D,SAAO,IAAI,yBAAyB,SAAS,EAAE,MAAM,MAAK,CAAE;AAC9D;AA0KA,SAAS,aAA6B,OAAc;AAClD,MAAI,UAAU,QAAQ,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;AACvE,WAAO;EACT;AAEA,SAAO;AACT;AAEA,SAAS,eAAe,OAA6D;AACnF,MAAI,gBAAgB,OAAO,OAAO,GAAG;AACnC,YAAQ,OAAO,YAAY,MAAM,QAAO,CAAE;EAC5C;AACA,QAAM,UAAU,IAAI,QAAQ,SAAS,CAAA,CAAE;AAEvC,MAAI,cAAc,CAAC,QAAQ,IAAI,YAAY,GAAG;AAC5C,YAAQ,IAAI,cAAc,UAAU;EACtC;AAEA,MAAI,QAAQ,IAAI,eAAe,GAAG;AAChC,UAAM,eACJ,sEACA,qBAAqB;EAEzB;AAEA,SAAO;AACT;AAEA,SAAS,OAAO,KAAU,OAAwC;AAChE,MAAI,UAAU,QAAW;AACvB,QAAI,OAAO,UAAU,YAAY;AAC/B,cAAQ,MAAM,IAAI,IAAI;IACxB;AAEA,QAAI,EAAE,iBAAiB,cAAc;AACnC,YAAM,eACJ,iEACA,oBAAoB;IAExB;AAEA,WAAO;EACT;AAEA,SAAO;AACT;AAEA,SAAS,mBAAmB,UAAgB;AAC1C,MAAI,SAAS,SAAS,IAAI,GAAG;AAC3B,WAAO,SAAS,QAAQ,MAAM,GAAG;EACnC;AACA,SAAO;AACT;AAEA,SAAS,iBAAiB,KAAU,WAAmB,wBAAwB,OAAK;AAClF,MAAI,IAAI,aAAa,KAAK;AACxB,QAAI,WAAW;EACjB,OAAO;AACL,QAAI,WAAW,mBACb,GAAG,SAAS,IAAI,wBAAwB,IAAI,WAAW,IAAI,SAAS,QAAQ,SAAS,EAAE,CAAC,EAAE;EAE9F;AACA,SAAO;AACT;AAEA,SAAS,gBAAgB,KAAU,WAAiB;AAClD,MAAI,WAAW,mBAAmB,GAAG,IAAI,QAAQ,IAAI,SAAS,EAAE;AAChE,SAAO;AACT;AAEA,eAAe,iBACb,OACA,SACA,WACA,SAAmC;AAEnC,MAAI,EAAE,iBAAiB,MAAM;AAC3B,UAAM,eAAe,IAAI,OAAO,gCAAgC,oBAAoB;EACtF;AAEA,gBAAc,OAAO,UAAU,qBAAqB,MAAM,IAAI;AAE9D,QAAM,MAAM,UAAU,IAAI,IAAI,MAAM,IAAI,CAAC;AAEzC,QAAM,UAAU,eAAe,SAAS,OAAO;AAC/C,UAAQ,IAAI,UAAU,kBAAkB;AAExC,UAAQ,UAAU,WAAW,KAAK,OAAO,IAAI,MAAM;IACjD,MAAM;IACN,SAAS,OAAO,YAAY,QAAQ,QAAO,CAAE;IAC7C,QAAQ;IACR,UAAU;IACV,QAAQ,OAAO,KAAK,SAAS,MAAM;GACpC;AACH;AAoBA,eAAsB,iBACpB,kBACA,SAAiC;AAEjC,SAAO,iBACL,kBACA,oBACA,CAAC,QAAO;AACN,YAAQ,SAAS,WAAW;MAC1B,KAAK;MACL,KAAK;AACH,wBAAgB,KAAK,kCAAkC;AACvD;MACF,KAAK;AACH,yBAAiB,KAAK,wCAAwC;AAC9D;MACF;AACE,cAAM,eACJ,6DACA,qBAAqB;IAE3B;AACA,WAAO;EACT,GACA,OAAO;AAEX;AAEA,SAAS,aACP,OACA,QACA,IACA,MACA,OAAe;AAEf,MAAI;AACF,QAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK,GAAG;AACxD,YAAM,eAAe,GAAG,EAAE,qBAAqB,sBAAsB,KAAK;IAC5E;AAEA,QAAI,QAAQ;AAAG;AAEf,QAAI,QAAQ;AACV,UAAI,UAAU,GAAG;AACf,cAAM,eAAe,GAAG,EAAE,kCAAkC,uBAAuB,KAAK;MAC1F;AACA;IACF;AAEA,UAAM,eAAe,GAAG,EAAE,8BAA8B,uBAAuB,KAAK;EACtF,SAAS,KAAK;AACZ,QAAI,MAAM;AACR,YAAM,IAAK,IAAc,SAAS,MAAM,KAAK;IAC/C;AAEA,UAAM;EACR;AACF;AAEA,SAAS,aACP,OACA,IACA,MACA,OAAe;AAEf,MAAI;AACF,QAAI,OAAO,UAAU,UAAU;AAC7B,YAAM,eAAe,GAAG,EAAE,qBAAqB,sBAAsB,KAAK;IAC5E;AAEA,QAAI,MAAM,WAAW,GAAG;AACtB,YAAM,eAAe,GAAG,EAAE,sBAAsB,uBAAuB,KAAK;IAC9E;EACF,SAAS,KAAK;AACZ,QAAI,MAAM;AACR,YAAM,IAAK,IAAc,SAAS,MAAM,KAAK;IAC/C;AAEA,UAAM;EACR;AACF;AAmBA,eAAsB,yBACpB,0BACA,UAAkB;AAElB,QAAM,WAAW;AACjB,MAAI,EAAE,oBAAoB,QAAQ,aAAa,mBAAmB;AAChE,UAAM,eACJ,yDACA,oBAAoB;EAExB;AAEA,MAAI,CAAC,gBAAgB,UAAU,QAAQ,GAAG;AACxC,UAAM,eAAe,8CAA8C,oBAAoB;EACzF;AAEA,MAAI,SAAS,WAAW,KAAK;AAC3B,UAAM,IACJ,oGACA,yBACA,QAAQ;EAEZ;AAEA,yBAAuB,QAAQ;AAC/B,QAAM,OAAO,MAAM,oBAAyC,QAAQ;AAEpE,eAAa,KAAK,QAAQ,qCAAqC,kBAAkB,EAAE,MAAM,KAAI,CAAE;AAE/F,MAAI,aAAa,qBAAqB,IAAI,IAAI,KAAK,MAAM,EAAE,SAAS,SAAS,MAAM;AACjF,UAAM,IACJ,uEACA,2BACA,EAAE,UAAU,SAAS,MAAM,MAAM,MAAM,WAAW,SAAQ,CAAE;EAEhE;AAEA,SAAO;AACT;AAEA,SAAS,sBAAsB,UAAkB;AAC/C,oBAAkB,UAAU,kBAAkB;AAChD;AAEA,SAAS,QAAQ,aAAuB,OAAe;AACrD,MAAI,MAAM;AACV,MAAI,MAAM,SAAS,GAAG;AACpB,UAAM,OAAO,MAAM,IAAG;AACtB,WAAO,GAAG,MAAM,KAAK,IAAI,CAAC,QAAQ,IAAI;EACxC,WAAW,MAAM,WAAW,GAAG;AAC7B,WAAO,GAAG,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC;EACnC,OAAO;AACL,WAAO,MAAM,CAAC;EAChB;AACA,SAAO,IAAI,KAAK,sBAAsB,QAAQ;AAChD;AAQA,SAAS,kBAAkB,UAAoB,aAAmB;AAChE,MAAI,eAAe,QAAQ,MAAM,aAAa;AAC5C,UAAM,QAAQ,UAAU,WAAW;EACrC;AACF;AAKA,SAAS,cAAW;AAClB,SAAO,KAAK,OAAO,gBAAgB,IAAI,WAAW,EAAE,CAAC,CAAC;AACxD;AAYM,SAAU,6BAA0B;AACxC,SAAO,YAAW;AACpB;AAoCA,eAAsB,2BAA2B,cAAoB;AACnE,eAAa,cAAc,cAAc;AAEzC,SAAO,KAAK,MAAM,OAAO,OAAO,OAAO,WAAW,IAAI,YAAY,CAA4B,CAAC;AACjG;AAqHA,SAAS,aAAa,QAAuC;AAC3D,QAAM,OAAO,SAAS,SAAS;AAE/B,SAAO,OAAO,SAAS,YAAY,OAAO,SAAS,IAAI,IAAI,OAAO;AACpE;AAEA,SAAS,kBAAkB,QAA4C;AACrE,QAAM,YAAY,SAAS,cAAc;AAEzC,SAAO,OAAO,cAAc,YAAY,OAAO,SAAS,SAAS,KAAK,KAAK,KAAK,SAAS,MAAM,KAC3F,YACA;AACN;AAKA,SAAS,YAAS;AAChB,SAAO,KAAK,MAAM,KAAK,IAAG,IAAK,GAAI;AACrC;AAEA,SAAS,SAAS,IAAuB;AACvC,MAAI,OAAO,OAAO,YAAY,OAAO,MAAM;AACzC,UAAM,eAAe,0BAA0B,oBAAoB;EACrE;AAEA,eAAa,GAAG,QAAQ,aAAa;AACvC;AAEA,SAAS,aAAa,QAAc;AAClC,MAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,UAAM,eAAe,8BAA8B,oBAAoB;EACzE;AAEA,eAAa,OAAO,WAAW,oBAAoB;AACrD;AAkOM,SAAU,OAAI;AAClB,SAAO,CAAC,KAAK,QAAQ,MAAM,aAAY;AACrC,SAAK,IAAI,aAAa,OAAO,SAAS;EACxC;AACF;AA0KA,IAAM,WAAmE,IAAI,QAEzE,CAAC,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,IAClC,CAAC,KAAK,SAAQ;AACZ,MAAI;AACF,WAAO,IAAI,IAAI,KAAK,IAAI;EAC1B,QAAQ;AACN,WAAO;EACT;AACF;AAKE,SAAU,cAAc,KAAU,cAAiC;AACvE,MAAI,gBAAgB,IAAI,aAAa,UAAU;AAC7C,UAAM,IAAI,sCAAsC,wBAAwB,GAAG;EAC7E;AAEA,MAAI,IAAI,aAAa,YAAY,IAAI,aAAa,SAAS;AACzD,UAAM,IAAI,4CAA4C,4BAA4B,GAAG;EACvF;AACF;AAEA,SAAS,iBACP,OACA,UACA,cACA,cAAiC;AAEjC,MAAI;AACJ,MAAI,OAAO,UAAU,YAAY,EAAE,MAAM,SAAS,KAAK,IAAI;AACzD,UAAM,IACJ,0DAA0D,eAAe,6BAA6B,QAAQ,MAAM,OAAO,QAAQ,GAAG,IACtI,UAAU,SAAY,0BAA0B,yBAChD,EAAE,WAAW,eAAe,yBAAyB,QAAQ,KAAK,SAAQ,CAAE;EAEhF;AAEA,gBAAc,KAAK,YAAY;AAE/B,SAAO;AACT;AAWM,SAAU,gBACd,IACA,UACA,cACA,cAAiC;AAEjC,MAAI,gBAAgB,GAAG,yBAAyB,YAAY,GAAG,uBAAuB;AACpF,WAAO,iBACL,GAAG,sBAAsB,QAAQ,GACjC,UACA,cACA,YAAY;EAEhB;AAEA,SAAO,iBAAiB,GAAG,QAAQ,GAAG,UAAU,cAAc,YAAY;AAC5E;AAwRM,IAAO,oBAAP,cAAiC,MAAK;EAIjC;EAET;EAKA;EAKA;EAMA;EAMA;EAKA,YACE,SACA,SAGC;AAED,UAAM,SAAS,OAAO;AACtB,SAAK,OAAO,KAAK,YAAY;AAC7B,SAAK,OAAO;AACZ,SAAK,QAAQ,QAAQ;AACrB,SAAK,QAAQ,QAAQ,MAAM;AAC3B,SAAK,SAAS,QAAQ,SAAS;AAC/B,SAAK,oBAAoB,QAAQ,MAAM;AACvC,WAAO,eAAe,MAAM,YAAY,EAAE,YAAY,OAAO,OAAO,QAAQ,SAAQ,CAAE;AAGtF,UAAM,oBAAoB,MAAM,KAAK,WAAW;EAClD;;AAeI,IAAO,6BAAP,cAA0C,MAAK;EAI1C;EAET;EAKA;EAMA;EAKA,YACE,SACA,SAEC;AAED,UAAM,SAAS,OAAO;AACtB,SAAK,OAAO,KAAK,YAAY;AAC7B,SAAK,OAAO;AACZ,SAAK,QAAQ,QAAQ;AACrB,SAAK,QAAQ,QAAQ,MAAM,IAAI,OAAO;AACtC,SAAK,oBAAoB,QAAQ,MAAM,IAAI,mBAAmB,KAAK;AAGnE,UAAM,oBAAoB,MAAM,KAAK,WAAW;EAClD;;AAiBI,IAAO,gCAAP,cAA6C,MAAK;EAI7C;EAET;EAMA;EAKA;EAKA,YAAY,SAAiB,SAAkE;AAC7F,UAAM,SAAS,OAAO;AACtB,SAAK,OAAO,KAAK,YAAY;AAC7B,SAAK,OAAO;AACZ,SAAK,QAAQ,QAAQ;AACrB,SAAK,SAAS,QAAQ,SAAS;AAC/B,SAAK,WAAW,QAAQ;AACxB,WAAO,eAAe,MAAM,YAAY,EAAE,YAAY,MAAK,CAAE;AAG7D,UAAM,oBAAoB,MAAM,KAAK,WAAW;EAClD;;AAsEF,IAAM,aAAa;AACnB,IAAM,eAAe;AACrB,IAAM,cAAc;AAEpB,IAAM,qBAAqB,MAAM,aAAa,eAAe;AAC7D,IAAM,eAAe,MAAM,aAAa,gBAAgB,aAAa;AAErE,IAAM,WAAW,IAAI,OAAO,cAAc,aAAa,GAAG;AAC1D,IAAM,gBAAgB,IAAI,OAAO,aAAa,qBAAqB,aAAa;AAChF,IAAM,kBAAkB,IAAI,OAAO,aAAa,eAAe,aAAa;AAC5E,IAAM,iBAAiB,IAAI,OAAO,OAAO,eAAe,mBAAmB;AAE3E,SAAS,+BACP,UAAkB;AAElB,MAAI,CAAC,gBAAgB,UAAU,QAAQ,GAAG;AACxC,UAAM,eAAe,8CAA8C,oBAAoB;EACzF;AAEA,QAAM,SAAS,SAAS,QAAQ,IAAI,kBAAkB;AACtD,MAAI,WAAW,MAAM;AACnB,WAAO;EACT;AAEA,QAAM,aAAyC,CAAA;AAE/C,MAAI,OAA2B;AAC/B,SAAO,MAAM;AACX,QAAI,QAAiC,KAAK,MAAM,QAAQ;AACxD,UAAM,SAAS,QAAQ,GAAG,EAAE,YAAW;AACvC,QAAI,CAAC,QAAQ;AACX,aAAO;IACT;AAGA,UAAM,cAAc,KAAK,UAAU,MAAO,CAAC,EAAE,MAAM;AACnD,QAAI,eAAe,CAAC,YAAY,MAAM,QAAQ,GAAG;AAE/C,aAAO;IACT;AAEA,UAAM,aAAa,YAAY,MAAM,WAAW;AAChD,UAAM,gBAAgB,CAAC,CAAC;AACxB,WAAO,aAAa,WAAW,CAAC,IAAI;AAEpC,UAAM,aAAqD,CAAA;AAC3D,QAAI;AAEJ,QAAI,eAAe;AACjB,aAAO,MAAM;AACX,YAAI;AACJ,YAAI;AACJ,YAAK,QAAQ,KAAK,MAAM,aAAa,GAAI;AACvC;AAAC,WAAC,EAAE,KAAK,OAAO,IAAI,IAAI;AACxB,cAAI,MAAM,SAAS,IAAI,GAAG;AACxB,oBAAQ,MAAM,QAAQ,eAAe,IAAI;UAC3C;AAEA,qBAAW,IAAI,YAAW,CAAuB,IAAI;AACrD;QACF;AAEA,YAAK,QAAQ,KAAK,MAAM,eAAe,GAAI;AACzC;AAAC,WAAC,EAAE,KAAK,OAAO,IAAI,IAAI;AAExB,qBAAW,IAAI,YAAW,CAAuB,IAAI;AACrD;QACF;AAEA,YAAK,QAAQ,KAAK,MAAM,cAAc,GAAI;AACxC,cAAI,OAAO,KAAK,UAAU,EAAE,QAAQ;AAClC;UACF;AACA;AAAC,WAAC,EAAE,SAAS,IAAI,IAAI;AACrB;QACF;AAEA,eAAO;MACT;IACF,OAAO;AAEL,aAAO,eAAe;IACxB;AAEA,UAAM,YAAsC,EAAE,QAAQ,WAAU;AAChE,QAAI,SAAS;AAEX,gBAAU,UAAU;IACtB;AACA,eAAW,KAAK,SAAS;EAC3B;AAEA,MAAI,CAAC,WAAW,QAAQ;AACtB,WAAO;EACT;AAEA,SAAO;AACT;AAiEA,eAAe,4BAA4B,UAAkB;AAC3D,MAAI,SAAS,SAAS,OAAO,SAAS,SAAS,KAAK;AAClD,2BAAuB,QAAQ;AAC/B,0BAAsB,QAAQ;AAC9B,QAAI;AACF,YAAM,OAAkB,MAAM,SAAS,MAAK,EAAG,KAAI;AACnD,UAAI,aAA0B,IAAI,KAAK,OAAO,KAAK,UAAU,YAAY,KAAK,MAAM,QAAQ;AAC1F,eAAO;MACT;IACF,QAAQ;IAAC;EACX;AACA,SAAO;AACT;AAEA,eAAe,oBAAoB,UAAoB,UAAkB,OAAa;AACpF,MAAI,SAAS,WAAW,UAAU;AAChC,kCAA8B,QAAQ;AAEtC,QAAI;AACJ,QAAK,MAAM,MAAM,4BAA4B,QAAQ,GAAI;AACvD,YAAM,SAAS,MAAM,OAAM;AAC3B,YAAM,IAAI,kBAAkB,uDAAuD;QACjF,OAAO;QACP;OACD;IACH;AACA,UAAM,IACJ,+BAA+B,KAAK,2CACpC,yBACA,QAAQ;EAEZ;AACF;AAEA,SAAS,WAAW,QAAkB;AACpC,MAAI,CAAC,QAAQ,IAAI,MAAM,GAAG;AACxB,UAAM,eAAe,4CAA4C,qBAAqB;EACxF;AACF;AAwYM,SAAU,eAAe,OAAyB;AACtD,SAAO,MAAM,QAAQ,IAAI,cAAc,GAAG,MAAM,GAAG,EAAE,CAAC;AACxD;AAqKA,eAAe,qBACb,IACA,QACA,sBACA,KACA,MACA,SACA,SAAsE;AAEtE,QAAM,qBAAqB,IAAI,QAAQ,MAAM,OAAO;AACpD,UAAQ,IAAI,gBAAgB,iDAAiD;AAE7E,UAAQ,UAAU,WAAW,KAAK,OAAO,IAAI,MAAM;IACjD;IACA,SAAS,OAAO,YAAY,QAAQ,QAAO,CAAE;IAC7C,QAAQ;IACR,UAAU;IACV,QAAQ,OAAO,KAAK,SAAS,MAAM;GACpC;AACH;AAaA,eAAe,qBACb,IACA,QACA,sBACA,WACA,YACA,SAAmE;AAEnE,QAAM,MAAM,gBACV,IACA,kBACA,OAAO,2BACP,UAAU,qBAAqB,MAAM,IAAI;AAG3C,aAAW,IAAI,cAAc,SAAS;AACtC,QAAM,UAAU,eAAe,SAAS,OAAO;AAC/C,UAAQ,IAAI,UAAU,kBAAkB;AAExC,MAAI,SAAS,SAAS,QAAW;AAC/B,eAAW,QAAQ,IAAI;AACvB,UAAM,QAAQ,KAAK,SAAS,KAAK,SAAS,MAAM;EAClD;AAEA,QAAM,WAAW,MAAM,qBACrB,IACA,QACA,sBACA,KACA,YACA,SACA,OAAO;AAET,WAAS,MAAM,WAAW,UAAU,GAAG;AACvC,SAAO;AACT;AAoBA,eAAsB,yBACpB,IACA,QACA,sBACA,cACA,SAAqC;AAErC,WAAS,EAAE;AACX,eAAa,MAAM;AAEnB,eAAa,cAAc,gBAAgB;AAE3C,QAAM,aAAa,IAAI,gBAAgB,SAAS,oBAAoB;AACpE,aAAW,IAAI,iBAAiB,YAAY;AAC5C,SAAO,qBACL,IACA,QACA,sBACA,iBACA,YACA,OAAO;AAEX;AAEA,IAAM,gBAAgB,oBAAI,QAAO;AACjC,IAAM,UAAU,oBAAI,QAAO;AAerB,SAAU,0BAA0B,KAA0B;AAClE,MAAI,CAAC,IAAI,UAAU;AACjB,WAAO;EACT;AAEA,QAAM,SAAS,cAAc,IAAI,GAAG;AACpC,MAAI,CAAC,QAAQ;AACX,UAAM,eACJ,kFACA,qBAAqB;EAEzB;AAEA,SAAO;AACT;AA6DA,eAAe,kCACb,IACA,QACA,UACA,iCACA,WACA,sBAAsD;AAEtD,WAAS,EAAE;AACX,eAAa,MAAM;AAEnB,MAAI,CAAC,gBAAgB,UAAU,QAAQ,GAAG;AACxC,UAAM,eAAe,8CAA8C,oBAAoB;EACzF;AAEA,QAAM,oBAAoB,UAAU,KAAK,gBAAgB;AAEzD,yBAAuB,QAAQ;AAC/B,QAAM,OAAO,MAAM,oBAAsD,QAAQ;AAEjF,eAAa,KAAK,cAAc,2CAA2C,kBAAkB;IAC3F,MAAM;GACP;AAED,eAAa,KAAK,YAAY,yCAAyC,kBAAkB;IACvF,MAAM;GACP;AAED,OAAK,aAAa,KAAK,WAAW,YAAW;AAE7C,MAAI,KAAK,eAAe,QAAW;AACjC,QAAI,YACF,OAAO,KAAK,eAAe,WAAW,WAAW,KAAK,UAAU,IAAI,KAAK;AAC3E,iBAAa,WAAW,MAAM,yCAAyC,kBAAkB;MACvF,MAAM;KACP;AACD,SAAK,aAAa;EACpB;AAEA,MAAI,KAAK,kBAAkB,QAAW;AACpC,iBAAa,KAAK,eAAe,4CAA4C,kBAAkB;MAC7F,MAAM;KACP;EACH;AAGA,MAAI,KAAK,UAAU,UAAa,OAAO,KAAK,UAAU,UAAU;AAC9D,UAAM,IAAI,qDAAqD,kBAAkB,EAAE,MAAM,KAAI,CAAE;EACjG;AAEA,MAAI,KAAK,aAAa,QAAW;AAC/B,iBAAa,KAAK,UAAU,uCAAuC,kBAAkB;MACnF,MAAM;KACP;AAED,UAAM,iBAAiD,CAAA;AAEvD,QAAI,OAAO,sBAAsB,MAAM;AACrC,qBAAe,KAAK,WAAW;IACjC;AAEA,QAAI,OAAO,oBAAoB,QAAW;AACxC,mBAAa,OAAO,iBAAiB,MAAM,0BAA0B;AACrE,qBAAe,KAAK,WAAW;IACjC;AAEA,QAAI,iCAAiC,QAAQ;AAC3C,qBAAe,KAAK,GAAG,+BAA+B;IACxD;AAEA,UAAM,EAAE,QAAQ,IAAG,IAAK,MAAM,sBAC5B,IACA,QACA,KAAK,UACL,gBACA,SAAS;AAGX,mCAA+B,QAAQ,MAAM;AAC7C,iCAA6B,MAAM;AAEnC,YAAQ,IAAI,UAAU,GAAG;AACzB,kBAAc,IAAI,MAAM,MAAiB;EAC3C;AAEA,MAAI,uBAAuB,KAAK,UAAU,MAAM,QAAW;AACzD,yBAAqB,KAAK,UAAU,EAAE,UAAU,IAAI;EACtD,WAAW,KAAK,eAAe,UAAU,KAAK,eAAe,UAAU;AACrE,UAAM,IAAI,0BAA0B,kCAAkC,EAAE,OAAO,EAAE,MAAM,KAAI,EAAE,CAAE;EACjG;AAEA,SAAO;AACT;AAEA,SAAS,8BAA8B,UAAkB;AACvD,MAAI;AACJ,MAAK,aAAa,+BAA+B,QAAQ,GAAI;AAC3D,UAAM,IAAI,8BACR,yEACA,EAAE,OAAO,YAAY,SAAQ,CAAE;EAEnC;AACF;AAqBA,eAAsB,4BACpB,IACA,QACA,UACA,SAAqC;AAErC,SAAO,kCACL,IACA,QACA,UACA,QACA,UAAU,UAAU,GACpB,SAAS,oBAAoB;AAEjC;AAYA,SAAS,iBAAiB,UAAkB,QAA+C;AACzF,MAAI,MAAM,QAAQ,OAAO,OAAO,GAAG,GAAG;AACpC,QAAI,CAAC,OAAO,OAAO,IAAI,SAAS,QAAQ,GAAG;AACzC,YAAM,IAAI,+CAA+C,sBAAsB;QAC7E;QACA,QAAQ,OAAO;QACf,OAAO;OACR;IACH;EACF,WAAW,OAAO,OAAO,QAAQ,UAAU;AACzC,UAAM,IAAI,+CAA+C,sBAAsB;MAC7E;MACA,QAAQ,OAAO;MACf,OAAO;KACR;EACH;AAEA,SAAO;AACT;AAYA,SAAS,eAAe,IAAyB,QAA+C;AAE9F,QAAM,WAAW,GAAG,eAAe,IAAI,MAAM,KAAK,GAAG;AACrD,MAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,UAAM,IAAI,6CAA6C,sBAAsB;MAC3E;MACA,QAAQ,OAAO;MACf,OAAO;KACR;EACH;AACA,SAAO;AACT;AAEA,IAAM,UAAU,oBAAI,QAAO;AAC3B,SAAS,MAAM,cAA6B;AAC1C,UAAQ,IAAI,YAAY;AACxB,SAAO;AACT;AAkBO,IAAM,SAAwB,uBAAM;AA0B3C,eAAsB,8BACpB,IACA,QACA,sBACA,oBACA,aACA,cACA,SAAqC;AAErC,WAAS,EAAE;AACX,eAAa,MAAM;AAEnB,MAAI,CAAC,QAAQ,IAAI,kBAAkB,GAAG;AACpC,UAAM,eACJ,qIACA,qBAAqB;EAEzB;AAEA,eAAa,aAAa,eAAe;AAEzC,QAAM,OAAO,sBAAsB,oBAAoB,MAAM;AAC7D,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,iDAAiD,gBAAgB;EAC7E;AAEA,QAAM,aAAa,IAAI,gBAAgB,SAAS,oBAAoB;AACpE,aAAW,IAAI,gBAAgB,WAAW;AAC1C,aAAW,IAAI,QAAQ,IAAI;AAE3B,MAAI,iBAAiB,QAAQ;AAC3B,iBAAa,cAAc,gBAAgB;AAC3C,eAAW,IAAI,iBAAiB,YAAY;EAC9C;AAEA,SAAO,qBACL,IACA,QACA,sBACA,sBACA,YACA,OAAO;AAEX;AA+CA,IAAM,gBAAgB;EACpB,KAAK;EACL,QAAQ;EACR,WAAW;EACX,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,OAAO;EACP,QAAQ;EACR,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,WAAW;;AAGb,SAAS,iBACP,UACA,QAA+C;AAE/C,aAAW,SAAS,UAAU;AAC5B,QAAI,OAAO,OAAO,KAAK,MAAM,QAAW;AACtC,YAAM,IAAI,QAAQ,KAAK,MAAM,cAAc,KAAK,CAAC,mBAAmB,kBAAkB;QACpF,QAAQ,OAAO;OAChB;IACH;EACF;AACA,SAAO;AACT;AAEA,SAAS,oBACP,OACA,QAA+C;AAE/C,MAAI,OAAO,OAAO,OAAO,KAAK,MAAM,UAAU;AAC5C,UAAM,IAAI,mBAAmB,KAAK,MAAM,cAAc,KAAK,CAAC,gBAAgB,kBAAkB;MAC5F,QAAQ,OAAO;KAChB;EACH;AACA,SAAO;AACT;AAEA,SAAS,sBACP,IACA,QACA,SACA,gBACA,WAAyC;AAEzC,SAAO,YACL,SACA,sBAAsB,KACpB,QACA,OAAO,8BACP,GAAG,uCACH,OAAO,GAET,aAAa,MAAM,GACnB,kBAAkB,MAAM,GACxB,SAAS,EAER,KAAK,iBAAiB,KAAK,QAAW,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,GAAG,cAAc,CAAC,CAAC,EAC7F,KAAK,eAAe,KAAK,QAAW,EAAE,CAAC,EACvC,KAAK,iBAAiB,KAAK,QAAW,OAAO,SAAS,CAAC,EACvD,KAAK,oBAAoB,KAAK,QAAW,KAAK,CAAC;AACpD;AAEA,SAAS,qBACP,QACA,QAAqD;AAErD,MAAI,WAAW,mBAAmB;AAChC,WAAO;EACT;AACA,QAAM,aAAa,WAAW;AAC9B,MAAI,YAAY;AACd,aAAS,OAAO;EAClB;AACA,MAAI,WAAW,QAAW;AACxB,WAAO;EACT;AACA,eAAa,QAAQ,MAAM,aAAa,6BAA6B,mBAAmB;AACxF,SAAO;AACT;AAEA,SAAS,6BAA6B,QAAkB;AACtD,MAAI,OAAO,cAAc,QAAW;AAClC,iBACE,OAAO,WACP,MACA,8CACA,kBACA,EAAE,OAAM,CAAE;EAEd;AACF;AAEA,SAAS,wBACP,QACA,QACA,QAAyC;AAEzC,MAAI,WAAW,mBAAmB;AAChC;EACF;AACA,QAAM,MAAM,UAAS,IAAK,aAAa,MAAM;AAC7C,QAAM,YAAY,kBAAkB,MAAM;AAC1C,MAAK,OAAmB,YAAa,SAAS,MAAM,WAAW;AAC7D,UAAM,IACJ,oEACA,qBACA,EAAE,QAAQ,KAAK,WAAW,OAAO,YAAW,CAAE;EAElD;AACF;AAEA,SAAS,qBAAqB,QAAoB,eAA4C;AAC5F,QAAM,WAAW,kBAAkB,gBAAgB,SAAY;AAC/D,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,IAAI,2CAA2C,sBAAsB;MACzE;MACA;MACA,OAAO;KACR;EACH;AACF;AAEA,SAAS,+BAA+B,QAAgB,QAAkB;AACxE,MAAI,MAAM,QAAQ,OAAO,GAAG,KAAK,OAAO,IAAI,WAAW,GAAG;AACxD,QAAI,OAAO,QAAQ,QAAW;AAC5B,YAAM,IACJ,2EACA,sBACA,EAAE,QAAQ,OAAO,MAAK,CAAE;IAE5B;AACA,QAAI,OAAO,QAAQ,OAAO,WAAW;AACnC,YAAM,IAAI,4DAA4D,sBAAsB;QAC1F,UAAU,OAAO;QACjB;QACA,OAAO;OACR;IACH;EACF;AACF;AA2CO,IAAM,gBAA+B,uBAAM;AAO3C,IAAM,oBAAmC,uBAAM;AA2CtD,eAAsB,iCACpB,IACA,QACA,UACA,SAAiD;AAEjD,MACE,OAAO,SAAS,kBAAkB,YAClC,OAAO,SAAS,WAAW,YAC3B,SAAS,gBACT;AACA,WAAO,uCACL,IACA,QACA,UACA,QAAQ,eACR,QAAQ,QACR,QAAQ,UAAU,GAClB,QAAQ,oBAAoB;EAEhC;AAEA,SAAO,uCACL,IACA,QACA,UACA,SAAS,QACT,UAAU,UAAU,GACpB,SAAS,oBAAoB;AAEjC;AAEA,eAAe,uCACb,IACA,QACA,UACA,eACA,QACA,WACA,sBAAsD;AAEtD,QAAM,2BAA2D,CAAA;AAEjE,UAAQ,eAAe;IACrB,KAAK;AACH,sBAAgB;AAChB;IACF,KAAK;AACH;IACF;AACE,mBAAa,eAAe,0BAA0B;AACtD,+BAAyB,KAAK,OAAO;EACzC;AAEA,WAAS,qBAAqB,QAAQ,MAAM;AAC5C,MAAI,WAAW,mBAAmB;AAChC,6BAAyB,KAAK,WAAW;EAC3C;AAEA,QAAM,SAAS,MAAM,kCACnB,IACA,QACA,UACA,0BACA,WACA,oBAAoB;AAGtB,eAAa,OAAO,UAAU,uCAAuC,kBAAkB;IACrF,MAAM;GACP;AAED,QAAM,SAAS,0BAA0B,MAAM;AAC/C,0BAAwB,QAAQ,QAAQ,MAAM;AAC9C,uBAAqB,QAAQ,aAAa;AAE1C,SAAO;AACT;AAEA,eAAe,uCACb,IACA,QACA,UACA,QACA,WACA,sBAAsD;AAEtD,QAAM,SAAS,MAAM,kCACnB,IACA,QACA,UACA,QACA,WACA,oBAAoB;AAGtB,QAAM,SAAS,0BAA0B,MAAM;AAC/C,MAAI,QAAQ;AACV,4BAAwB,QAAQ,QAAQ,qBAAqB,QAAQ,MAAM,CAAC;AAC5E,yBAAqB,QAAQ,aAAa;EAC5C;AAEA,SAAO;AACT;AASO,IAAM,6BAA6B;AAQnC,IAAM,sBAAsB;AAQ5B,IAAM,wBAAwB;AAQ9B,IAAM,+BAA+B;AAuBrC,IAAM,cAAc;AAQpB,IAAM,mBAAmB;AAgBzB,IAAM,uBAAuB;AAQ7B,IAAM,0BAA0B;AAQhC,IAAM,yBAAyB;AAQ/B,IAAM,6BAA6B;AAUnC,IAAM,sBAAsB;AAU5B,IAAM,uBAAuB;AAQ7B,IAAM,4BAA4B;AAgBlC,IAAM,0BAA0B;AAQhC,IAAM,0BAA0B;AA6QvC,SAAS,uBAAuB,UAAkB;AAChD,MAAI,SAAS,UAAU;AACrB,UAAM,eAAe,yCAAyC,qBAAqB;EACrF;AACF;AA8XA,eAAe,YACb,KACA,UACAC,YACAC,iBACA,YAA0C;AAE1C,MAAI,EAAE,GAAG,iBAAiB,GAAG,SAAS,OAAM,IAAK,IAAI,MAAM,GAAG;AAE9D,MAAI,WAAW,GAAG;AAChB,QAAI,eAAe,QAAW;AAC5B,YAAM,MAAM,WAAW,GAAG;AACzB,OAAC,EAAE,GAAG,iBAAiB,GAAG,SAAS,OAAM,IAAK,IAAI,MAAM,GAAG;IAC9D,OAAO;AACL,YAAM,IAAI,0BAA0B,oCAAoC,EAAE,OAAO,IAAG,CAAE;IACxF;EACF;AAEA,MAAI,WAAW,GAAG;AAChB,UAAM,IAAI,eAAe,kBAAkB,GAAG;EAChD;AAEA,MAAI;AACJ,MAAI;AACF,aAAS,KAAK,MAAM,IAAI,KAAK,eAAe,CAAC,CAAC;EAChD,SAAS,OAAO;AACd,UAAM,IAAI,6DAA6D,aAAa,KAAK;EAC3F;AAEA,MAAI,CAAC,aAAyC,MAAM,GAAG;AACrD,UAAM,IAAI,yCAAyC,kBAAkB,GAAG;EAC1E;AAEA,WAAS,MAAM;AACf,MAAI,OAAO,SAAS,QAAW;AAC7B,UAAM,IAAI,0BAA0B,2DAA2D;MAC7F,OAAO,EAAE,OAAM;KAChB;EACH;AAEA,MAAI;AACJ,MAAI;AACF,aAAS,KAAK,MAAM,IAAI,KAAK,OAAO,CAAC,CAAC;EACxC,SAAS,OAAO;AACd,UAAM,IAAI,8DAA8D,aAAa,KAAK;EAC5F;AAEA,MAAI,CAAC,aAAyB,MAAM,GAAG;AACrC,UAAM,IAAI,0CAA0C,kBAAkB,GAAG;EAC3E;AAEA,QAAM,MAAM,UAAS,IAAKD;AAE1B,MAAI,OAAO,QAAQ,QAAW;AAC5B,QAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,YAAM,IAAI,qDAAqD,kBAAkB,EAAE,OAAM,CAAE;IAC7F;AAEA,QAAI,OAAO,OAAO,MAAMC,iBAAgB;AACtC,YAAM,IACJ,4FACA,qBACA,EAAE,QAAQ,KAAK,WAAWA,iBAAgB,OAAO,MAAK,CAAE;IAE5D;EACF;AAEA,MAAI,OAAO,QAAQ,QAAW;AAC5B,QAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,YAAM,IAAI,+CAA+C,kBAAkB,EAAE,OAAM,CAAE;IACvF;EACF;AAEA,MAAI,OAAO,QAAQ,QAAW;AAC5B,QAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,YAAM,IAAI,4CAA4C,kBAAkB,EAAE,OAAM,CAAE;IACpF;EACF;AAEA,MAAI,OAAO,QAAQ,QAAW;AAC5B,QAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,YAAM,IAAI,gDAAgD,kBAAkB,EAAE,OAAM,CAAE;IACxF;AACA,QAAI,OAAO,MAAM,MAAMA,iBAAgB;AACrC,YAAM,IAAI,iDAAiD,qBAAqB;QAC9E;QACA;QACA,WAAWA;QACX,OAAO;OACR;IACH;EACF;AAEA,MAAI,OAAO,QAAQ,QAAW;AAC5B,QAAI,OAAO,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,OAAO,GAAG,GAAG;AAChE,YAAM,IAAI,8CAA8C,kBAAkB,EAAE,OAAM,CAAE;IACtF;EACF;AAEA,SAAO,EAAE,QAAQ,QAAQ,KAAK,IAAG;AACnC;AAqZA,SAAS,sBACP,QACA,QACA,UACA,QAAkC;AAElC,MAAI,WAAW,QAAW;AACxB,QAAI,OAAO,WAAW,WAAW,OAAO,QAAQ,SAAS,CAAC,OAAO,SAAS,OAAO,GAAG,GAAG;AACrF,YAAM,IAAI,yCAAyC,kBAAkB;QACnE;QACA,UAAU;QACV,QAAQ;OACT;IACH;AACA;EACF;AAEA,MAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,QAAI,CAAC,OAAO,SAAS,OAAO,GAAG,GAAG;AAChC,YAAM,IAAI,yCAAyC,kBAAkB;QACnE;QACA,UAAU;QACV,QAAQ;OACT;IACH;AACA;EACF;AAEA,MAAI,aAAa,QAAW;AAC1B,QACE,OAAO,aAAa,WAChB,OAAO,QAAQ,WACf,OAAO,aAAa,aAClB,CAAC,SAAS,OAAO,GAAG,IACpB,CAAC,SAAS,SAAS,OAAO,GAAG,GACnC;AACA,YAAM,IAAI,yCAAyC,kBAAkB;QACnE;QACA,UAAU;QACV,QAAQ;OACT;IACH;AACA;EACF;AAEA,QAAM,IACJ,oFACA,QACA,EAAE,QAAQ,QAAQ,SAAQ,CAAE;AAEhC;AAMA,SAAS,sBAAsB,YAA6B,MAAY;AACtE,QAAM,EAAE,GAAG,OAAO,OAAM,IAAK,WAAW,OAAO,IAAI;AACnD,MAAI,SAAS,GAAG;AACd,UAAM,IAAI,IAAI,IAAI,0CAA0C,gBAAgB;EAC9E;AACA,SAAO;AACT;AAeO,IAAM,iBAAgC,uBAAM;AAQ5C,IAAM,gBAA+B,uBAAM;AAuB5C,SAAU,qBACd,IACA,QACA,YACA,eAAqE;AAErE,WAAS,EAAE;AACX,eAAa,MAAM;AAEnB,MAAI,sBAAsB,KAAK;AAC7B,iBAAa,WAAW;EAC1B;AAEA,MAAI,EAAE,sBAAsB,kBAAkB;AAC5C,UAAM,eACJ,+DACA,oBAAoB;EAExB;AAEA,MAAI,sBAAsB,YAAY,UAAU,GAAG;AACjD,UAAM,IACJ,0GACA,kBACA,EAAE,WAAU,CAAE;EAElB;AAEA,QAAM,MAAM,sBAAsB,YAAY,KAAK;AACnD,QAAM,QAAQ,sBAAsB,YAAY,OAAO;AAEvD,MAAI,CAAC,OAAO,GAAG,gDAAgD;AAC7D,UAAM,IAAI,6CAA6C,kBAAkB,EAAE,WAAU,CAAE;EACzF;AAEA,MAAI,OAAO,QAAQ,GAAG,QAAQ;AAC5B,UAAM,IAAI,sDAAsD,kBAAkB;MAChF,UAAU,GAAG;MACb;KACD;EACH;AAEA,UAAQ,eAAe;IACrB,KAAK;IACL,KAAK;AACH,UAAI,UAAU,QAAW;AACvB,cAAM,IAAI,qDAAqD,kBAAkB;UAC/E,UAAU;UACV;SACD;MACH;AACA;IACF,KAAK;AACH;IACF;AACE,mBAAa,eAAe,0BAA0B;AAEtD,UAAI,UAAU,eAAe;AAC3B,cAAM,IACJ,UAAU,SACN,uCACA,+CACJ,kBACA,EAAE,UAAU,eAAe,WAAU,CAAE;MAE3C;EACJ;AAEA,QAAM,QAAQ,sBAAsB,YAAY,OAAO;AACvD,MAAI,OAAO;AACT,UAAM,IAAI,2BAA2B,sDAAsD;MACzF,OAAO;KACR;EACH;AAEA,QAAM,WAAW,sBAAsB,YAAY,UAAU;AAC7D,QAAM,QAAQ,sBAAsB,YAAY,OAAO;AACvD,MAAI,aAAa,UAAa,UAAU,QAAW;AACjD,UAAM,IAAI,0BAA0B,6CAA6C;EACnF;AAEA,SAAO,MAAM,IAAI,gBAAgB,UAAU,CAAC;AAC9C;AAqoCA,eAAe,oBACb,UACA,QAAsC,uBAAqB;AAE3D,MAAI;AACJ,MAAI;AACF,WAAO,MAAM,SAAS,KAAI;EAC5B,SAAS,OAAO;AACd,UAAM,QAAQ;AACd,UAAM,IAAI,2CAA2C,aAAa,KAAK;EACzE;AAEA,MAAI,CAAC,aAAgB,IAAI,GAAG;AAC1B,UAAM,IAAI,8CAA8C,kBAAkB,EAAE,MAAM,KAAI,CAAE;EAC1F;AAEA,SAAO;AACT;AAsBO,IAAM,oBAAmC,uBAAM;AAW/C,IAAM,kBAAiC,uBAAM;;;ACx/NpD,SAAS,UAAU,SAAiD;AACnE,SAAO,WAAW;AACnB;AAEA,SAAS,iBAAiB,QAAa,SAAmC;AACzE,SAAO;AAAA,IACN,WAAW;AAAA,IACX,CAAO,WAAW,GAAG,UAAU,OAAO;AAAA,IACtC,GAAI,OAAO,aAAa,UACrB,EAAE,CAAO,qBAAqB,GAAG,KAAK,IACtC,CAAC;AAAA,EACL;AACD;AAEA,eAAsB,+BAA+B,OAGd;AACtC,QAAM,UAAU,iBAAiB,MAAM,QAAQ,MAAM,OAAO;AAC5D,QAAM,WAAW,MAAY,iBAAiB,MAAM,QAAQ,OAAO;AACnE,SAAa,yBAAyB,MAAM,QAAQ,QAAQ;AAC7D;AAEO,SAAS,eAAe,QAA8B;AAC5D,SAAO;AAAA,IACN,WAAW,qBAAqB,MAAM;AAAA,IACtC,4BAA4B;AAAA,EAC7B;AACD;AAEA,eAAsB,yBAAyB,OAQ9B;AAChB,MAAI,CAAC,MAAM,oBAAoB,wBAAwB;AACtD,UAAM,IAAI,MAAM,2DAA2D;AAAA,EAC5E;AACA,QAAM,MAAM,IAAI,IAAI,MAAM,oBAAoB,sBAAsB;AACpE,MAAI,aAAa,IAAI,aAAa,eAAe,MAAM,MAAM,EAAE,SAAS;AACxE,MAAI,aAAa;AAAA,IAChB;AAAA,KACC,MAAM,eAAe,eAAe,GAAG;AAAA,EACzC;AACA,MAAI,aAAa,IAAI,iBAAiB,MAAM;AAC5C,MAAI,aAAa,IAAI,SAAS,MAAM,SAAS,cAAc,KAAK,GAAG,CAAC;AACpE,MAAI,aAAa,IAAI,kBAAkB,MAAM,aAAa;AAC1D,MAAI,aAAa,IAAI,yBAAyB,MAAM;AACpD,MAAI,aAAa,IAAI,SAAS,MAAM,KAAK;AACzC,MAAI,aAAa,IAAI,YAAY,MAAM,MAAM;AAC7C,MAAI,MAAM,QAAQ,QAAW;AAC5B,QAAI,aAAa,IAAI,OAAO,gBAAgB,MAAM,GAAG,CAAC;AAAA,EACvD;AACA,SAAO;AACR;AAEA,SAAS,SAAS,QAAgB;AACjC,SAAO,IAAI,IAAI,MAAM,EAAE,aAAa,UACjC,EAAE,CAAO,qBAAqB,GAAG,KAAK,IACtC,CAAC;AACL;AAEA,eAAsB,0BAA0B,OAQrB;AAC1B,QAAM,SAAS,eAAe,MAAM,MAAM;AAC1C,QAAM,SAAe;AAAA,IACpB,MAAM;AAAA,IACN;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,EACP;AACA,QAAM,WAAW,IAAI,gBAAgB;AACrC,WAAS,IAAI,YAAY,MAAM,MAAM;AACrC,QAAM,WAAW,MAAY;AAAA,IAC5B,MAAM;AAAA,IACN;AAAA,IACM,KAAK;AAAA,IACX;AAAA,IACA,MAAM,YAAY;AAAA,IAClB,MAAM;AAAA,IACN;AAAA,MACC,GAAG,SAAS,MAAM,oBAAoB,MAAM;AAAA,MAC5C,CAAO,WAAW,GAAG,UAAU,MAAM,OAAO;AAAA,MAC5C,sBAAsB;AAAA,IACvB;AAAA,EACD;AACA,QAAM,SAAS,MAAY;AAAA,IAC1B,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACA,SAAO,mBAAmB,MAAM,oBAAoB,QAAQ,MAAM;AACnE;AAEA,eAAsB,mBAAmB,OAKd;AAC1B,QAAM,SAAS,IAAI,IAAI,MAAM,MAAM;AACnC,QAAM,sBAAsB,MAAM,+BAA+B;AAAA,IAChE;AAAA,IACA,SAAS,MAAM;AAAA,EAChB,CAAC;AACD,QAAM,SAAS,eAAe,MAAM,MAAM;AAC1C,QAAM,WAAW,MAAY;AAAA,IAC5B;AAAA,IACA;AAAA,IACM,KAAK;AAAA,IACX,MAAM;AAAA,IACN;AAAA,MACC,GAAG,SAAS,oBAAoB,MAAM;AAAA,MACtC,CAAO,WAAW,GAAG,UAAU,MAAM,OAAO;AAAA,IAC7C;AAAA,EACD;AACA,QAAM,SAAS,MAAY;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACA,SAAO,mBAAmB,oBAAoB,QAAQ,MAAM;AAC7D;AAEA,SAAS,mBACR,QACA,QACgB;AAChB,SAAO;AAAA,IACN,aAAa,OAAO;AAAA,IACpB,GAAI,OAAO,gBAAgB,EAAE,cAAc,OAAO,cAAc,IAAI,CAAC;AAAA,IACrE,WAAW,OAAO,cAAc;AAAA,IAChC,GAAI,OAAO,OAAO,eAAe,WAC9B,EAAE,WAAW,OAAO,WAAW,IAC/B,CAAC;AAAA,IACJ,GAAI,OAAO,QAAQ,EAAE,OAAO,OAAO,MAAM,IAAI,CAAC;AAAA,IAC9C;AAAA,EACD;AACD;AAEA,eAAsB,iBAGnB;AACF,QAAM,WAAiB,2BAA2B;AAClD,QAAM,YAAY,MAAY,2BAA2B,QAAQ;AACjE,SAAO,EAAE,UAAU,UAAU;AAC9B;;;AP/EO,SAAS,qBACf,aACA,MAAc,KAAK,IAAI,GACb;AACV,MAAI,CAAC,YAAY,UAAW,QAAO;AACnC,SAAO,MAAM,qBAAqB,YAAY;AAC/C;AAEO,SAAS,sBAAsB,OAehB;AACrB,QAAM,MAAM,MAAM,OAAO,KAAK,IAAI;AAClC,QAAM,YACL,OAAO,MAAM,OAAO,eAAe,WAChC,MAAM,MAAM,OAAO,aAAa,MAChC,MAAM,UAAU;AACpB,QAAM,MAAM,MAAM,OAAO,MAAM,UAAU;AACzC,SAAO;AAAA,IACN,SAAS;AAAA,IACT,QAAQ,MAAM;AAAA,IACd,GAAI,MAAM,EAAE,IAAI,IAAI,CAAC;AAAA,IACrB,UAAU,MAAM;AAAA,IAChB,wBAAwB,MAAM;AAAA,IAC9B,UAAU,MAAM,OAAO;AAAA,IACvB,cACC,mBAAmB,MAAM,SACtB,MAAM,OAAO,gBACb,MAAM,UAAU;AAAA,IACpB,aAAa,MAAM,OAAO;AAAA,IAC1B,cAAc,MAAM,OAAO,iBAAiB,MAAM,UAAU;AAAA,IAC5D,WAAW,MAAM,OAAO,cAAc;AAAA,IACtC;AAAA,IACA,OAAO,MAAM,OAAO,SAAS,MAAM,UAAU;AAAA,EAC9C;AACD;AAEA,SAAS,kBAAkB,OASL;AACrB,QAAM,MAAM,MAAM,OAAO,MAAM,UAAU;AACzC,SAAO;AAAA,IACN,SAAS;AAAA,IACT,QAAQ,MAAM;AAAA,IACd,GAAI,MAAM,EAAE,IAAI,IAAI,CAAC;AAAA,IACrB,UAAU,MAAM;AAAA,IAChB,wBAAwB,MAAM;AAAA,IAC9B,UAAU,IAAI;AAAA,MACb;AAAA,MACA,MAAM;AAAA,IACP,EAAE;AAAA,IACF,aAAa,MAAM;AAAA,IACnB,WAAW;AAAA,IACX,WAAW,MAAM;AAAA,IACjB,OAAO,MAAM,OAAO,KAAK,GAAG;AAAA,EAC7B;AACD;AAEA,eAAe,gBAAgB,OAU5B;AACF,QAAM,SAAS,MAAM,eAAe;AAAA,IACnC,OAAO,MAAM;AAAA,IACb,QAAQ,MAAM;AAAA,IACd,SAAS,MAAM;AAAA,IACf,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM,EAAE,UAAU,MAAM,UAAU,MAAM,WAAW;AAAA,EACpD,CAAC;AACD,MAAI,CAAC,UAAU,OAAO,WAAW,YAAY,MAAM,QAAQ,MAAM,GAAG;AACnE,UAAM,IAAI,MAAM,sCAAsC;AAAA,EACvD;AACA,QAAM,SAAS;AAMf,MACC,OAAO,OAAO,UAAU,YACxB,CAAC,OAAO,MAAM,WAAW,UAAU,GAClC;AACD,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACrE;AACA,QAAM,YACL,OAAO,OAAO,eAAe,WAC1B,KAAK,MAAM,OAAO,UAAU,IAC5B;AACJ,QAAM,SAAS,MAAM,QAAQ,OAAO,MAAM,IACvC,OAAO,OAAO;AAAA,IACd,CAAC,UAA2B,OAAO,UAAU;AAAA,EAC9C,IACC,CAAC;AACJ,QAAM,WACL,OAAO,OAAO,WAAW,SAAS,YAAY,OAAO,UAAU,KAAK,KAAK,IACtE,OAAO,UAAU,KAAK,KAAK,IAC3B;AACJ,SAAO;AAAA,IACN,OAAO,OAAO;AAAA,IACd,GAAI,OAAO,SAAS,SAAS,IAAI,EAAE,UAAU,IAAI,CAAC;AAAA,IAClD;AAAA,IACA,GAAI,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,EAChC;AACD;AAEA,eAAsB,yBAAyB,OAOhB;AAC9B,QAAM,EAAE,YAAY,IAAI;AACxB,MAAI,iBAAiB,YAAY,WAAW,GAAG;AAC9C,QAAI,CAAC,qBAAqB,aAAa,MAAM,GAAG,EAAG,QAAO;AAC1D,UAAM,OAAO,MAAM,yBAAyB,KAAK;AACjD,QAAI,KAAM,QAAO;AACjB,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC9D;AACA,MAAI,CAAC,YAAY,cAAc;AAC9B,UAAM,IAAI,MAAM,+CAA+C;AAAA,EAChE;AACA,QAAM,YAAY,MAAM,mBAAmB;AAAA,IAC1C,QAAQ,YAAY;AAAA,IACpB,QAAQ,YAAY;AAAA,IACpB,cAAc,YAAY;AAAA,IAC1B,SAAS,MAAM;AAAA,EAChB,CAAC;AACD,QAAM,SAAS,MAAM,UAAU;AAC/B,QAAM,SAAS,MAAM,gBAAgB;AAAA,IACpC;AAAA,IACA,kBAAkB,UAAU;AAAA,IAC5B,UAAU;AAAA,IACV,SAAS,MAAM;AAAA,EAChB,CAAC;AACD,QAAM,OAAO,kBAAkB;AAAA,IAC9B,QAAQ,YAAY;AAAA,IACpB;AAAA,IACA,wBAAwB,UAAU;AAAA,IAClC,OAAO,OAAO;AAAA,IACd,WAAW,OAAO;AAAA,IAClB,QAAQ,OAAO;AAAA,IACf,UAAU;AAAA,IACV,KAAK,YAAY,OAAO,OAAO;AAAA,EAChC,CAAC;AACD,kBAAgB,MAAM,MAAM,SAAS,MAAM,YAAY,EAAE,UAAU,MAAM,CAAC;AAC1E,SAAO;AACR;AAMA,eAAsB,sBAAsB,OAYjB;AAC1B,QAAM,SAAS,MAAM,UAAU;AAC/B,QAAM,WAAW,oBAAoB,QAAQ,MAAM,SAAS,MAAM,UAAU;AAC5E,MAAI,CAAC,UAAU,QAAS,QAAO,UAAU,aAAa;AACtD,MAAI,UAAU,uBAAuB,QAAQ,MAAM,SAAS,MAAM,UAAU;AAC5E,MAAI,CAAC,QAAS,QAAO,SAAS,aAAa;AAC3C,MAAI,qBAAqB,SAAS,MAAM,GAAG,GAAG;AAC7C,QAAI,CAAC,QAAQ,aAAc,QAAO;AAClC,QAAI;AACH,gBAAU,MAAM,yBAAyB;AAAA,QACxC,aAAa;AAAA,QACb,SAAS,MAAM;AAAA,QACf,YAAY,MAAM;AAAA,QAClB,KAAK,MAAM;AAAA,QACX,SAAS,MAAM;AAAA,QACf,QAAQ,MAAM;AAAA,MACf,CAAC;AAAA,IACF,QAAQ;AACP,aAAO;AAAA,IACR;AAAA,EACD;AACA,QAAM,WAAW,MAAM,eAAe;AACtC,MAAI;AACH,UAAM,OAAO,MAAM,SAAS;AAAA,MAC3B;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,SAAS,MAAM;AAAA,IAChB,CAAC;AACD,sBAAkB,QAAQ,MAAM,MAAM,SAAS,MAAM,UAAU;AAC/D,WAAO;AAAA,EACR,QAAQ;AACP,WAAO;AAAA,EACR;AACD;AAEA,eAAsB,uBAAuB,OAad;AAC9B,QAAM,SAAS,MAAM,UAAU;AAC/B,QAAM,sBAAsB;AAAA,IAC3B;AAAA,IACA,QAAQ,MAAM;AAAA,IACd,SAAS,MAAM;AAAA,IACf,YAAY,MAAM;AAAA,IAClB,KAAK,MAAM;AAAA,IACX,SAAS,MAAM;AAAA,IACf,aAAa,MAAM;AAAA,EACpB,CAAC;AACD,QAAM,cAAc,gBAAgB,QAAQ,MAAM,SAAS,MAAM,YAAY;AAAA,IAC5E,KAAK,MAAM;AAAA,EACZ,CAAC;AACD,MAAI,CAAC,aAAa;AACjB,QAAI,MAAM,KAAK;AACd,YAAM,IAAI;AAAA,QACT,4BAA4B,MAAM,GAAG,6BAA6B,MAAM,GAAG,yBAAyB,MAAM,GAAG;AAAA,MAC9G;AAAA,IACD;AACA,UAAM,IAAI,MAAM,wBAAwB,CAAC;AAAA,EAC1C;AACA,MAAI,CAAC,qBAAqB,aAAa,MAAM,GAAG,GAAG;AAClD,WAAO;AAAA,EACR;AACA,SAAO,MAAM,yBAAyB;AAAA,IACrC;AAAA,IACA,SAAS,MAAM;AAAA,IACf,YAAY,MAAM;AAAA,IAClB,KAAK,MAAM;AAAA,IACX,SAAS,MAAM;AAAA,IACf,QAAQ,MAAM;AAAA,EACf,CAAC;AACF;AAQA,eAAsB,yBACrB,OAC6B;AAC7B,QAAM,cAAc,MAAM,uBAAuB,KAAK;AACtD,MAAI,iBAAiB,YAAY,WAAW,EAAG,QAAO;AACtD,SAAO,yBAAyB;AAAA,IAC/B;AAAA,IACA,SAAS,MAAM;AAAA,IACf,YAAY,MAAM;AAAA,IAClB,KAAK,MAAM;AAAA,IACX,SAAS,MAAM;AAAA,IACf,QAAQ,MAAM;AAAA,EACf,CAAC;AACF;AAEA,eAAe,yBAAyB,OAOF;AACrC,QAAM,EAAE,YAAY,IAAI;AACxB,MAAI;AACH,UAAM,UAAU,MAAM,WAAW;AAAA,MAChC,OAAO,YAAY;AAAA,MACnB,QAAQ,MAAM,UAAU;AAAA,MACxB,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MACf,GAAI,YAAY,MAAM,EAAE,KAAK,YAAY,IAAI,IAAI,CAAC;AAAA,IACnD,CAAC;AACD,QAAI,CAAC,WAAW,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACtE,aAAO;AAAA,IACR;AACA,UAAM,YAAY,KAAK;AAAA,MACtB,OAAQ,QAAqC,eAAe,WACxD,QAAmC,aACpC;AAAA,IACJ;AACA,UAAM,MAAM,MAAM,OAAO,KAAK,IAAI;AAClC,QAAI,CAAC,OAAO,SAAS,SAAS,KAAK,aAAa,IAAK,QAAO;AAC5D,UAAM,OAAO,EAAE,GAAG,aAAa,UAAU;AACzC,oBAAgB,MAAM,MAAM,SAAS,MAAM,YAAY,EAAE,UAAU,MAAM,CAAC;AAC1E,WAAO;AAAA,EACR,SAAS,OAAO;AACf,QACC,iBAAiB,iBAChB,MAAM,WAAW,OAAO,MAAM,WAAW,MACzC;AACD,aAAO;AAAA,IACR;AACA,UAAM;AAAA,EACP;AACD;AAEA,SAAS,oBAAoB,aAAmC;AAC/D,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACvC,UAAM,SAAS,aAAa;AAC5B,UAAM,OAAO,OAAO,YAAY,IAAI;AACpC,WAAO,OAAO,MAAM,YAAY,UAAU,MAAM,QAAQ,MAAM,CAAC;AAC/D,WAAO,GAAG,SAAS,CAAC,UAAU;AAC7B,UAAI,UAAU,SAAS,MAAM,SAAS,cAAc;AACnD;AAAA,UACC,IAAI;AAAA,YACH,uBAAuB,IAAI;AAAA,UAC5B;AAAA,QACD;AACA;AAAA,MACD;AACA,aAAO,KAAK;AAAA,IACb,CAAC;AAAA,EACF,CAAC;AACF;AAYA,SAAS,iBACR,UACA,QACA,MACO;AACP,MAAI,SAAS,YAAa;AAC1B,WAAS,UAAU,QAAQ;AAAA,IAC1B,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,EAClB,CAAC;AACD,WAAS,IAAI,wBAAwB,IAAI,CAAC;AAC3C;AAEA,SAAS,gBAAgB,OAKI;AAC5B,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACvC,QAAI,UAAU;AACd,QAAI;AAEJ,UAAM,cAAc,MAAM;AACzB,YAAM,OAAO,MAAM;AAAA,IACpB;AAEA,UAAM,aAAa,CAAC,UAAiB;AACpC,UAAI,QAAS;AACb,gBAAU;AACV,mBAAa,KAAK;AAClB,kBAAY;AACZ,aAAO,KAAK;AAAA,IACb;AAEA,UAAM,cAAc,CAAC,WAA4B;AAChD,UAAI,QAAS;AACb,gBAAU;AACV,mBAAa,KAAK;AAClB,cAAQ,MAAM;AAAA,IACf;AAEA,UAAM,QAAQ,WAAW,MAAM;AAC9B,UAAI,mBAAmB,CAAC,gBAAgB,aAAa;AACpD,yBAAiB,iBAAiB,KAAK;AAAA,UACtC,MAAM;AAAA,UACN,OAAO;AAAA,QACR,CAAC;AAAA,MACF;AACA,iBAAW,IAAI,MAAM,0CAA0C,CAAC;AAAA,IACjE,GAAG,MAAM,SAAS;AAElB,UAAM,OAAO;AAAA,MACZ;AAAA,MACA,CAAC,SAA0B,aAA6B;AACvD,YAAI;AACH,gBAAM,MAAM,IAAI,IAAI,QAAQ,OAAO,KAAK,MAAM,WAAW;AACzD,cAAI,IAAI,aAAa,MAAM,YAAY,UAAU;AAChD,qBAAS,UAAU,GAAG,EAAE,IAAI,WAAW;AACvC;AAAA,UACD;AACA,gBAAM,QAAQ,IAAI,aAAa,IAAI,OAAO;AAC1C,cAAI,OAAO;AACV,kBAAM,cAAc,IAAI,aAAa,IAAI,mBAAmB,KAAK;AACjE,kBAAM,OAAO,iCAAiC,KAAK;AACnD,6BAAiB,UAAU,KAAK,EAAE,MAAM,SAAS,OAAO,KAAK,CAAC;AAC9D,uBAAW,IAAI,MAAM,eAAe,KAAK,CAAC;AAC1C;AAAA,UACD;AACA,gBAAM,QAAQ,IAAI,aAAa,IAAI,OAAO;AAC1C,gBAAM,OAAO,IAAI,aAAa,IAAI,MAAM;AACxC,gBAAM,MAAM,IAAI,aAAa,IAAI,KAAK,KAAK;AAC3C,cAAI,UAAU,MAAM,iBAAiB,CAAC,MAAM;AAC3C,kBAAM,OACL,SAAS,UAAU,MAAM,gBACtB,mBACA;AACJ,6BAAiB,UAAU,KAAK,EAAE,MAAM,SAAS,OAAO,KAAK,CAAC;AAC9D,uBAAW,IAAI,MAAM,uCAAuC,CAAC;AAC7D;AAAA,UACD;AACA,4BAAkB;AAClB,sBAAY;AAAA,YACX;AAAA,YACA,GAAI,MAAM,EAAE,IAAI,IAAI,CAAC;AAAA,YACrB,SAAS,MAAM;AACd;AAAA,gBACC;AAAA,gBACA,KAAK,SAAS,YAAY,MAAM;AAAA,gBAChC;AAAA,cACD;AACA,0BAAY;AAAA,YACb;AAAA,UACD,CAAC;AAAA,QACF,SAAS,OAAO;AACf,qBAAW,YAAY,KAAK,CAAC;AAAA,QAC9B;AAAA,MACD;AAAA,IACD;AAAA,EACD,CAAC;AACF;AAEA,eAAsB,MAAM,UAAwB,CAAC,GAOlD;AACF,QAAM,SAAS,QAAQ,UAAU;AACjC,QAAM,SAAS,QAAQ,UAAU;AACjC,QAAM,UACL,QAAQ,QAAQ,SAAY,SAAY,gBAAgB,QAAQ,GAAG;AAIpE,QAAM,gBACL,QAAQ,SAAS,SAAS,UAAU,QAAQ,QAAQ,OACjDC,SAAQ,QAAQ,QAAQ,IAAI,IAC5B,QAAQ,UACP,SACA,iBAAiB,QAAQ,QAAQ,UAAU;AAChD,MAAI,eAAe;AAClB;AAAA,MACC;AAAA,MACA,QAAQ,WAAW,EAAE,UAAU,QAAQ,SAAS,IAAI,CAAC;AAAA,IACtD;AAAA,EACD;AACA,QAAM,cAAc,eAAe;AACnC,QAAM,gBAAgB,OAAO,WAAW;AACxC,QAAM,SAAS,IAAI,IAAI,MAAM,EAAE;AAC/B,QAAM,sBAAsB,MAAM,+BAA+B;AAAA,IAChE,QAAQ,IAAI,IAAI,MAAM;AAAA,IACtB,SAAS,QAAQ;AAAA,EAClB,CAAC;AACD,QAAM,OAAO,MAAM,eAAe;AAClC,QAAM,mBAAmB,MAAM,yBAAyB;AAAA,IACvD;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,eAAe,KAAK;AAAA,IACpB,GAAI,UAAU,EAAE,KAAK,QAAQ,IAAI,CAAC;AAAA,EACnC,CAAC;AACD,QAAM,SAAS,MAAM,oBAAoB,WAAW;AACpD,UAAQ,qBAAqB,gBAAgB;AAC7C,MAAI,QAAQ,gBAAgB,OAAO;AAClC,QAAI,SAAS;AACb,QAAI;AACH,eAAS,OAAO,QAAQ,aAAa,SAAS,iBAAiB,IAAI;AAAA,IACpE,QAAQ;AACP,eAAS;AAAA,IACV;AACA,YAAQ,sBAAsB,EAAE,OAAO,CAAC;AAAA,EACzC;AACA,MAAI;AACJ,MAAI;AACH,UAAM,WAAW,MAAM,gBAAgB;AAAA,MACtC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,QAAQ,aAAa;AAAA,IACjC,CAAC;AACD,uBAAmB,SAAS;AAC5B,UAAM,cAAc,IAAI,IAAI,YAAY,IAAI;AAC5C,gBAAY,aAAa,IAAI,QAAQ,SAAS,IAAI;AAClD,gBAAY,aAAa,IAAI,SAAS,aAAa;AACnD,QAAI,SAAS,IAAK,aAAY,aAAa,IAAI,OAAO,SAAS,GAAG;AAClE,UAAM,SAAS,MAAM,0BAA0B;AAAA,MAC9C;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,OAAO;AAAA,MACP,cAAc,KAAK;AAAA,MACnB,SAAS,QAAQ;AAAA,IAClB,CAAC;AACD,UAAM,SAAS,MAAM,gBAAgB;AAAA,MACpC;AAAA,MACA,kBAAkB,OAAO;AAAA,MACzB,UAAU,QAAQ,YAAY;AAAA,MAC9B,SAAS,QAAQ;AAAA,IAClB,CAAC;AAED,QAAI,MAAM,OAAO,YAAY;AAC7B,QAAI;AACJ,UAAM,WAAW,QAAQ,oBAAoB;AAC7C,QAAI;AACH,YAAM,WAAW;AACjB,YAAM,WAAW,MAAM,SAAS;AAAA,QAC/B;AAAA,QACA;AAAA,QACA,aAAa,OAAO;AAAA,QACpB,SAAS,QAAQ;AAAA,QACjB,GAAI,WAAW,EAAE,KAAK,SAAS,IAAI,CAAC;AAAA,MACrC,CAAC;AACD,UAAI,WAAW,SAAS,QAAQ,SAAS;AACxC,2BAAmB,EAAE,MAAM,SAAS,OAAO,SAAS,CAAC;AACrD,2BAAmB;AACnB,cAAM,IAAI;AAAA,UACT,2BAA2B,SAAS,GAAG,iBAAiB,OAAO;AAAA,QAChE;AAAA,MACD;AACA,YAAM,SAAS;AACf,gBAAU,SAAS;AAAA,IACpB,SAAS,OAAO;AAKf,UACC,iBAAiB,SACjB,MAAM,QAAQ,WAAW,yBAAyB,GACjD;AACD,cAAM;AAAA,MACP;AACA,UAAI,CAAC,KAAK;AACT,cAAM,WAAW;AAAA,UAChB;AAAA,UACA,QAAQ;AAAA,UACR,QAAQ;AAAA,QACT;AACA,YAAI,YAAY,OAAO,KAAK,SAAS,IAAI,EAAE,SAAS,GAAG;AACtD,6BAAmB,EAAE,MAAM,SAAS,OAAO,SAAS,CAAC;AACrD,6BAAmB;AACnB,gBAAM,IAAI;AAAA,YACT;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAEA,UAAM,cAAc,kBAAkB;AAAA,MACrC;AAAA,MACA;AAAA,MACA,wBAAwB,OAAO;AAAA,MAC/B,OAAO,OAAO;AAAA,MACd,WAAW,OAAO;AAAA,MAClB,QAAQ,OAAO;AAAA,MACf;AAAA,IACD,CAAC;AACD,QAAI;AACJ,QAAI;AACH,cAAQ,gBAAgB,aAAa,QAAQ,SAAS,QAAQ,UAAU;AAAA,IACzE,SAAS,OAAO;AACf,yBAAmB,EAAE,MAAM,SAAS,OAAO,cAAc,CAAC;AAC1D,yBAAmB;AACnB,UAAI,wBAAwB,KAAK,GAAG;AACnC,cAAM,IAAI,mBAAmB;AAAA,UAC5B,KAAK,iBAAiB,iBAAiB,QAAQ,QAAQ,UAAU;AAAA,UACjE,OAAO,YAAY,KAAK;AAAA,UACxB,OAAO;AAAA,UACP,GAAI,QAAQ,WAAW,EAAE,UAAU,QAAQ,SAAS,IAAI,CAAC;AAAA,QAC1D,CAAC;AAAA,MACF;AACA,YAAM,IAAI;AAAA,QACT,2FAA2F,YAAY,KAAK,EAAE,OAAO;AAAA,QACrH,EAAE,OAAO,MAAM;AAAA,MAChB;AAAA,IACD;AAEA,uBAAmB;AAAA,MAClB,MAAM;AAAA,MACN,GAAI,MAAM,EAAE,IAAI,IAAI,CAAC;AAAA,MACrB,GAAI,UAAU,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC9B,CAAC;AACD,uBAAmB;AAEnB,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,aAAa,MAAM,QAAQ;AAAA,MAC3B,aAAa,MAAM,QAAQ;AAAA,MAC3B,GAAI,MAAM,EAAE,IAAI,IAAI,CAAC;AAAA,MACrB,GAAI,UAAU,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC9B;AAAA,EACD,SAAS,OAAO;AACf,uBAAmB,EAAE,MAAM,SAAS,OAAO,SAAS,CAAC;AACrD,WAAO,MAAM;AACb,UAAM,YAAY,KAAK;AAAA,EACxB;AACD;",
5
+ "names": ["dirname", "clockSkew", "clockTolerance", "dirname"]
6
+ }
@@ -1146,9 +1146,30 @@ var bakedOpenApiRoutes = [
1146
1146
  ];
1147
1147
 
1148
1148
  // src/open-api-client.ts
1149
+ function formatOpenApiHttpDebugLine(event) {
1150
+ const outcome = event.status === null ? `no response (${event.networkError ?? "network error"})` : `HTTP ${event.status}`;
1151
+ const parts = [
1152
+ `${event.method} ${event.url} -> ${outcome}`,
1153
+ ...event.code ? [`code ${event.code}`] : [],
1154
+ ...event.reason ? [`reason ${event.reason}`] : [],
1155
+ `request id ${event.requestId ?? "none"}`,
1156
+ `${(event.elapsedMs / 1e3).toFixed(1)} s`,
1157
+ `sent ${formatByteCount(event.requestBytes)}`
1158
+ ];
1159
+ return `debug: ${parts.join(", ")}`;
1160
+ }
1161
+ function formatByteCount(bytes) {
1162
+ if (bytes >= 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MiB`;
1163
+ if (bytes >= 1024) return `${(bytes / 1024).toFixed(1)} KiB`;
1164
+ return `${bytes} B`;
1165
+ }
1149
1166
  var OpenApiError = class extends Error {
1150
1167
  status;
1151
1168
  code;
1169
+ /** `X-Kody-Request-Id` from the failed response, when there was one. */
1170
+ requestId;
1171
+ /** `error.details.reason` from the failed response, when there was one. */
1172
+ reason;
1152
1173
  /**
1153
1174
  * Set when `fetch` rejected before an HTTP response. `false` = connect
1154
1175
  * phase (nothing sent); `"unknown"` = body may have reached the server.
@@ -1159,6 +1180,8 @@ var OpenApiError = class extends Error {
1159
1180
  this.name = "OpenApiError";
1160
1181
  this.status = options.status ?? null;
1161
1182
  this.code = options.code ?? null;
1183
+ this.requestId = options.requestId ?? null;
1184
+ this.reason = options.reason ?? null;
1162
1185
  if (options.sent !== void 0) this.sent = options.sent;
1163
1186
  }
1164
1187
  };
@@ -1253,21 +1276,47 @@ async function openApiRequest(input) {
1253
1276
  body = JSON.stringify(input.body);
1254
1277
  }
1255
1278
  const fetchFn = input.fetchFn ?? fetch;
1279
+ const startedAt = Date.now();
1280
+ const debugBase = {
1281
+ method,
1282
+ url: `${url.origin}${url.pathname}`,
1283
+ requestBytes: body ? Buffer.byteLength(body) : 0
1284
+ };
1256
1285
  let response;
1257
1286
  try {
1258
1287
  response = await fetchFn(url, { method, headers, body });
1259
1288
  } catch (error) {
1289
+ input.onHttpDebug?.({
1290
+ ...debugBase,
1291
+ elapsedMs: Date.now() - startedAt,
1292
+ status: null,
1293
+ code: null,
1294
+ reason: null,
1295
+ requestId: null,
1296
+ networkError: error instanceof Error ? error.message : String(error)
1297
+ });
1260
1298
  throw new OpenApiError(
1261
1299
  formatUnreachableApiMessage({ origin: url.origin, error }),
1262
1300
  { sent: requestSentStatus(error) }
1263
1301
  );
1264
1302
  }
1265
1303
  const responseBody = await readJson(response);
1304
+ const requestId = response.headers.get(apiRequestIdHeader)?.trim() || null;
1305
+ const failure = response.ok ? null : readErrorBody(responseBody);
1306
+ input.onHttpDebug?.({
1307
+ ...debugBase,
1308
+ elapsedMs: Date.now() - startedAt,
1309
+ status: response.status,
1310
+ code: failure?.code ?? null,
1311
+ reason: failure?.reason ?? null,
1312
+ requestId
1313
+ });
1266
1314
  if (!response.ok) {
1267
- throw describeOpenApiFailure(response.status, responseBody, url);
1315
+ throw describeOpenApiFailure(response.status, responseBody, url, requestId);
1268
1316
  }
1269
1317
  return responseBody;
1270
1318
  }
1319
+ var apiRequestIdHeader = "x-kody-request-id";
1271
1320
  async function callOpenApiOperation(input) {
1272
1321
  const operationId = input.operationId.trim();
1273
1322
  if (!operationId) {
@@ -1293,6 +1342,7 @@ async function callOpenApiOperation(input) {
1293
1342
  token: input.token,
1294
1343
  apiUrl,
1295
1344
  fetchFn: input.fetchFn,
1345
+ ...input.onHttpDebug ? { onHttpDebug: input.onHttpDebug } : {},
1296
1346
  ...input.org ? { org: input.org } : {},
1297
1347
  method: built.method,
1298
1348
  path: built.path,
@@ -1535,23 +1585,24 @@ async function readJson(response) {
1535
1585
  function readErrorBody(body) {
1536
1586
  if (!isRecord(body) || body.error == null) return null;
1537
1587
  const { error } = body;
1538
- if (typeof error === "string") return { code: null, message: error };
1588
+ if (typeof error === "string") {
1589
+ return { code: null, message: error, reason: null };
1590
+ }
1539
1591
  if (isRecord(error)) {
1540
1592
  const code = typeof error.code === "string" ? error.code : null;
1541
1593
  const message = typeof error.message === "string" ? error.message : code ?? JSON.stringify(error);
1542
- return { code, message };
1594
+ const reason = isRecord(error.details) && typeof error.details.reason === "string" ? error.details.reason : null;
1595
+ return { code, message, reason };
1543
1596
  }
1544
- return { code: null, message: String(error) };
1597
+ return { code: null, message: String(error), reason: null };
1545
1598
  }
1546
- function describeOpenApiFailure(status, body, url) {
1599
+ function describeOpenApiFailure(status, body, url, requestId = null) {
1547
1600
  const failure = readErrorBody(body);
1548
1601
  const code = failure?.code ?? null;
1602
+ const meta = { status, code, requestId, reason: failure?.reason ?? null };
1549
1603
  const detail = failure?.message ? ` Server said: ${failure.message}` : "";
1550
1604
  if (status === 401) {
1551
- return new OpenApiError(rejectedApiTokenMessage(detail), {
1552
- status,
1553
- code
1554
- });
1605
+ return new OpenApiError(rejectedApiTokenMessage(detail), meta);
1555
1606
  }
1556
1607
  if (status === 403 && code === "insufficient_scope") {
1557
1608
  return new OpenApiError(
@@ -1559,18 +1610,16 @@ function describeOpenApiFailure(status, body, url) {
1559
1610
  ...readInsufficientScopeDetails(body),
1560
1611
  currentLifetime: currentStoredTokenLifetimeAlias(url.origin)
1561
1612
  })}${detail}`,
1562
- { status, code }
1613
+ meta
1563
1614
  );
1564
1615
  }
1565
1616
  if (code === "feature_disabled") {
1566
- return new OpenApiError(`Kody returned feature_disabled.${detail}`, {
1567
- status,
1568
- code
1569
- });
1617
+ return new OpenApiError(`Kody returned feature_disabled.${detail}`, meta);
1570
1618
  }
1619
+ const message = failure?.message ?? `Kody API request failed with HTTP ${status} (${url.pathname}).`;
1571
1620
  return new OpenApiError(
1572
- failure?.message ?? `Kody API request failed with HTTP ${status} (${url.pathname}).`,
1573
- { status, code }
1621
+ status >= 500 && requestId && !message.includes(requestId) ? `${message} (request id ${requestId})` : message,
1622
+ meta
1574
1623
  );
1575
1624
  }
1576
1625
  function isRecord(value) {
@@ -1578,11 +1627,13 @@ function isRecord(value) {
1578
1627
  }
1579
1628
 
1580
1629
  export {
1630
+ formatOpenApiHttpDebugLine,
1581
1631
  OpenApiError,
1582
1632
  openApiDocumentPath,
1583
1633
  cliCredentialBootstrapRedeemOperationId,
1584
1634
  openApiGet,
1585
1635
  openApiRequest,
1636
+ apiRequestIdHeader,
1586
1637
  callOpenApiOperation,
1587
1638
  assertApiOperationAllowed,
1588
1639
  buildOpenApiHttpRequest,
@@ -1594,4 +1645,4 @@ export {
1594
1645
  toolResultFromHttpBody,
1595
1646
  whoamiWithApiToken
1596
1647
  };
1597
- //# sourceMappingURL=chunk-YKSELVAI.js.map
1648
+ //# sourceMappingURL=chunk-NTIJ36ZW.js.map