@jevitate/cli 0.8.0 → 0.9.0

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 (122) hide show
  1. package/dist/approval-provenance.d.ts +16 -0
  2. package/dist/approval-provenance.js +18 -1
  3. package/dist/approval-provenance.js.map +1 -1
  4. package/dist/bin.js +17011 -13887
  5. package/dist/browser-cli.d.ts +10 -0
  6. package/dist/browser-cli.js +50 -0
  7. package/dist/browser-cli.js.map +1 -0
  8. package/dist/build-info.generated.js +2 -2
  9. package/dist/change-context.d.ts +44 -0
  10. package/dist/change-context.js +203 -0
  11. package/dist/change-context.js.map +1 -0
  12. package/dist/check-api.d.ts +1 -1
  13. package/dist/check-api.js +44 -7
  14. package/dist/check-api.js.map +1 -1
  15. package/dist/check-cli.d.ts +2 -1
  16. package/dist/check-cli.js +47 -7
  17. package/dist/check-cli.js.map +1 -1
  18. package/dist/check-execute.d.ts +16 -1
  19. package/dist/check-execute.js +58 -27
  20. package/dist/check-execute.js.map +1 -1
  21. package/dist/check-plan.d.ts +14 -0
  22. package/dist/check-plan.js +24 -1
  23. package/dist/check-plan.js.map +1 -1
  24. package/dist/check-types.d.ts +39 -5
  25. package/dist/check-types.js +8 -0
  26. package/dist/check-types.js.map +1 -1
  27. package/dist/cli-output.js +3 -1
  28. package/dist/cli-output.js.map +1 -1
  29. package/dist/exit-codes.d.ts +6 -3
  30. package/dist/exit-codes.js +9 -3
  31. package/dist/exit-codes.js.map +1 -1
  32. package/dist/explore-adversarial.js +2 -2
  33. package/dist/explore-adversarial.js.map +1 -1
  34. package/dist/explore-cli.js +3 -2
  35. package/dist/explore-cli.js.map +1 -1
  36. package/dist/explore-coverage.js +3 -3
  37. package/dist/explore-coverage.js.map +1 -1
  38. package/dist/explore-feature.js +3 -3
  39. package/dist/explore-feature.js.map +1 -1
  40. package/dist/explore-goal.js +11 -5
  41. package/dist/explore-goal.js.map +1 -1
  42. package/dist/findings-filing.d.ts +6 -0
  43. package/dist/findings-filing.js +15 -1
  44. package/dist/findings-filing.js.map +1 -1
  45. package/dist/heal-probe-guard.d.ts +9 -0
  46. package/dist/heal-probe-guard.js +113 -0
  47. package/dist/heal-probe-guard.js.map +1 -0
  48. package/dist/host-health-run.d.ts +32 -1
  49. package/dist/host-health-run.js +38 -1
  50. package/dist/host-health-run.js.map +1 -1
  51. package/dist/journey-api.d.ts +42 -3
  52. package/dist/journey-api.js +190 -12
  53. package/dist/journey-api.js.map +1 -1
  54. package/dist/journey-cli.js +105 -15
  55. package/dist/journey-cli.js.map +1 -1
  56. package/dist/journey-heal.d.ts +74 -0
  57. package/dist/journey-heal.js +180 -0
  58. package/dist/journey-heal.js.map +1 -0
  59. package/dist/journey-network-checks.d.ts +5 -1
  60. package/dist/journey-network-checks.js +15 -4
  61. package/dist/journey-network-checks.js.map +1 -1
  62. package/dist/journey-prefix.js +2 -2
  63. package/dist/journey-prefix.js.map +1 -1
  64. package/dist/journey-proposal-store.d.ts +100 -0
  65. package/dist/journey-proposal-store.js +342 -0
  66. package/dist/journey-proposal-store.js.map +1 -0
  67. package/dist/journey-result-record.d.ts +40 -0
  68. package/dist/journey-result-record.js +28 -0
  69. package/dist/journey-result-record.js.map +1 -0
  70. package/dist/journey-review-api.js +7 -0
  71. package/dist/journey-review-api.js.map +1 -1
  72. package/dist/journey-review.d.ts +7 -0
  73. package/dist/journey-review.js +39 -0
  74. package/dist/journey-review.js.map +1 -1
  75. package/dist/launch-armed.js +5 -1
  76. package/dist/launch-armed.js.map +1 -1
  77. package/dist/login-cli.d.ts +2 -0
  78. package/dist/login-cli.js +56 -11
  79. package/dist/login-cli.js.map +1 -1
  80. package/dist/mcp-api.d.ts +5 -1
  81. package/dist/mcp-api.js +53 -8
  82. package/dist/mcp-api.js.map +1 -1
  83. package/dist/mcp-cli-tools.js +25 -5
  84. package/dist/mcp-cli-tools.js.map +1 -1
  85. package/dist/multi-run.d.ts +7 -6
  86. package/dist/multi-run.js +5 -4
  87. package/dist/multi-run.js.map +1 -1
  88. package/dist/persona-login.d.ts +60 -3
  89. package/dist/persona-login.js +341 -31
  90. package/dist/persona-login.js.map +1 -1
  91. package/dist/program.js +2 -0
  92. package/dist/program.js.map +1 -1
  93. package/dist/report-api.d.ts +1 -0
  94. package/dist/report-api.js +1 -0
  95. package/dist/report-api.js.map +1 -1
  96. package/dist/resource-preflight.js +5 -3
  97. package/dist/resource-preflight.js.map +1 -1
  98. package/dist/run-metadata.d.ts +5 -2
  99. package/dist/run-metadata.js +10 -3
  100. package/dist/run-metadata.js.map +1 -1
  101. package/dist/run-tags-cli.d.ts +2 -0
  102. package/dist/run-tags-cli.js +8 -2
  103. package/dist/run-tags-cli.js.map +1 -1
  104. package/dist/self-heal-adapter.d.ts +43 -27
  105. package/dist/self-heal-adapter.js +196 -62
  106. package/dist/self-heal-adapter.js.map +1 -1
  107. package/dist/source-cli.js +5 -3
  108. package/dist/source-cli.js.map +1 -1
  109. package/dist/suite-explore-options.js +1 -0
  110. package/dist/suite-explore-options.js.map +1 -1
  111. package/dist/sweep-api.d.ts +23 -0
  112. package/dist/sweep-api.js +39 -8
  113. package/dist/sweep-api.js.map +1 -1
  114. package/dist/sweep-cli.js +3 -1
  115. package/dist/sweep-cli.js.map +1 -1
  116. package/dist/ux-usability.js +3 -2
  117. package/dist/ux-usability.js.map +1 -1
  118. package/package.json +10 -10
  119. package/skills/jevitate-ci-check/SKILL.md +9 -1
  120. package/skills/jevitate-getting-started/SKILL.md +2 -1
  121. package/skills/jevitate-mission-scope/SKILL.md +2 -2
  122. package/skills/jevitate-run-journey/SKILL.md +25 -5
@@ -3,6 +3,7 @@ import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, wri
3
3
  import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { redactText, redactUrl } from "@jevitate/ai-core";
6
+ import { clock } from "@jevitate/domain";
6
7
  import { assertAuthorizedExploreTarget, isLoginLikeUrl, UnauthorizedExploreTargetError } from "@jevitate/explore";
7
8
  import { sessionLaunchOptions } from "./browser-run-options.js";
8
9
  import { findGitRoot, sessionFileInProjectRefusal } from "./project-dir.js";
@@ -47,34 +48,130 @@ function httpUrl(v, what) {
47
48
  throw new LoginArgsError(`${what} must not carry credentials in the URL`);
48
49
  return u.href;
49
50
  }
50
- const LOGIN_KEYS = ["url", "userEnv", "passwordEnv", "userField", "passwordField", "submit", "success"];
51
+ const LOGIN_KEYS = ["url", "api", "userEnv", "passwordEnv", "userField", "passwordField", "submit", "success"];
52
+ /** The keys only a form sign-in uses (refused beside `api`). */
53
+ const FORM_ONLY_KEYS = ["url", "userField", "passwordField", "submit", "success"];
54
+ const API_KEYS = ["url", "userKey", "passwordKey", "tokenPath", "storageKey", "storage", "verifyUrl"];
55
+ /** A JSON body key: a plain identifier (letters, digits, `_`, `-`). */
56
+ const BODY_KEY = /^[A-Za-z_][A-Za-z0-9_-]{0,63}$/;
57
+ /** One segment of a token path: an identifier or an array index. */
58
+ const PATH_SEGMENT = /^(?:[A-Za-z_][A-Za-z0-9_-]{0,63}|0|[1-9][0-9]{0,5})$/;
59
+ const UNSAFE_SEGMENTS = new Set(["__proto__", "prototype", "constructor"]);
60
+ /** A storage key: a safe identifier (letters, digits, `_`, `-`, `.`, `:`, `$`). */
61
+ const STORAGE_KEY = /^[A-Za-z_$][A-Za-z0-9_$.:-]{0,127}$/;
62
+ const FLAG_LABELS = {
63
+ url: "--api",
64
+ userKey: "--api-user-key",
65
+ passwordKey: "--api-password-key",
66
+ tokenPath: "--token-path",
67
+ storageKey: "--storage-key",
68
+ storage: "--storage",
69
+ verifyUrl: "--verify-url",
70
+ };
71
+ /** `a.b.0.c` → its segments (strict: identifiers or indexes, no prototype keys). */
72
+ export function parseTokenPath(path, what) {
73
+ const segments = path.split(".");
74
+ if (segments.length > 8 || segments.some((s) => !PATH_SEGMENT.test(s) || UNSAFE_SEGMENTS.has(s))) {
75
+ throw new LoginArgsError(`${what} must be a simple dotted path of identifiers or array indexes (e.g. token, data.accessToken; at most 8 segments), got ${JSON.stringify(path)}`);
76
+ }
77
+ return segments;
78
+ }
79
+ /** Validates an API login's settings (fail closed before any network). */
80
+ export function parseApiLogin(raw, labels = FLAG_LABELS) {
81
+ const url = httpUrl(raw.url, labels.url);
82
+ for (const [k, label] of [["userKey", labels.userKey], ["passwordKey", labels.passwordKey]]) {
83
+ const v = raw[k];
84
+ if (v !== undefined && !BODY_KEY.test(v))
85
+ throw new LoginArgsError(`${label} must be a JSON key of letters, digits, _ or - (starting with a letter or _), got ${JSON.stringify(v)}`);
86
+ }
87
+ const userKey = raw.userKey ?? "username";
88
+ const passwordKey = raw.passwordKey ?? "password";
89
+ if (userKey === passwordKey)
90
+ throw new LoginArgsError(`${labels.userKey} and ${labels.passwordKey} must differ (both are ${JSON.stringify(userKey)})`);
91
+ if (raw.storage !== undefined && raw.storage !== "local") {
92
+ if (raw.storage === "session") {
93
+ throw new LoginArgsError(`${labels.storage} session is not supported: a Playwright storage state holds cookies and localStorage only, so a sessionStorage token could not be saved or restored — use ${labels.storage} local, or a cookie session`);
94
+ }
95
+ throw new LoginArgsError(`${labels.storage} must be local, got ${JSON.stringify(raw.storage)}`);
96
+ }
97
+ let segments;
98
+ if (raw.tokenPath !== undefined)
99
+ segments = parseTokenPath(raw.tokenPath, labels.tokenPath);
100
+ else if (raw.storageKey !== undefined || raw.storage !== undefined)
101
+ throw new LoginArgsError(`${labels.storageKey}/${labels.storage} place the token ${labels.tokenPath} reads: pass ${labels.tokenPath} too`);
102
+ if (raw.storageKey !== undefined && !STORAGE_KEY.test(raw.storageKey)) {
103
+ throw new LoginArgsError(`${labels.storageKey} must be a safe identifier (letters, digits, _ $ . : -; starting with a letter, _ or $), got ${JSON.stringify(raw.storageKey)}`);
104
+ }
105
+ const storageKey = raw.storageKey ?? segments?.at(-1);
106
+ if (storageKey !== undefined && !STORAGE_KEY.test(storageKey)) {
107
+ throw new LoginArgsError(`${labels.tokenPath} ends in ${JSON.stringify(storageKey)}, which is not a storage key: name one with ${labels.storageKey}`);
108
+ }
109
+ return {
110
+ url,
111
+ userKey,
112
+ passwordKey,
113
+ ...optional("tokenPath", raw.tokenPath),
114
+ ...optional("storageKey", storageKey),
115
+ storage: "local",
116
+ ...optional("verifyUrl", raw.verifyUrl === undefined ? undefined : httpUrl(raw.verifyUrl, labels.verifyUrl)),
117
+ };
118
+ }
51
119
  /** Validates a personas file entry's `login` object (`where` names it in errors). */
52
120
  export function parsePersonaLogin(v, where) {
53
121
  if (v === null || typeof v !== "object" || Array.isArray(v))
54
- throw new LoginArgsError(`${where} must be an object {url, userEnv, passwordEnv, …}`);
122
+ throw new LoginArgsError(`${where} must be an object {url | api, userEnv, passwordEnv, …}`);
55
123
  const o = v;
56
124
  for (const k of Object.keys(o)) {
57
125
  if (!LOGIN_KEYS.includes(k)) {
58
126
  throw new LoginArgsError(`${where}.${k}: unknown key (allowed: ${LOGIN_KEYS.join(", ")}; credentials are read from the environment variables userEnv/passwordEnv name)`);
59
127
  }
60
128
  }
61
- const str = (k, required) => {
62
- const x = o[k];
129
+ const str = (from, k, label, required) => {
130
+ const x = from[k];
63
131
  if (x === undefined && !required)
64
132
  return undefined;
65
133
  if (typeof x !== "string" || x.trim() === "")
66
- throw new LoginArgsError(`${where}.${k} must be a non-empty string`);
134
+ throw new LoginArgsError(`${label} must be a non-empty string`);
67
135
  return x;
68
136
  };
69
- const login = {
70
- url: httpUrl(str("url", true), `${where}.url`),
71
- userEnv: str("userEnv", true),
72
- passwordEnv: str("passwordEnv", true),
73
- ...optional("userField", str("userField", false)),
74
- ...optional("passwordField", str("passwordField", false)),
75
- ...optional("submit", str("submit", false)),
76
- ...optional("success", str("success", false)),
77
- };
137
+ const userEnv = str(o, "userEnv", `${where}.userEnv`, true);
138
+ const passwordEnv = str(o, "passwordEnv", `${where}.passwordEnv`, true);
139
+ let login;
140
+ if (o.api !== undefined) {
141
+ const formKeys = FORM_ONLY_KEYS.filter((k) => o[k] !== undefined);
142
+ if (formKeys.length > 0)
143
+ throw new LoginArgsError(`${where}: api signs in through an HTTP endpoint — the form keys ${formKeys.join(", ")} do not apply beside it`);
144
+ const a = typeof o.api === "string" ? { url: o.api } : o.api;
145
+ if (a === null || typeof a !== "object" || Array.isArray(a))
146
+ throw new LoginArgsError(`${where}.api must be the endpoint URL or an object {url, userKey?, passwordKey?, tokenPath?, storageKey?, storage?, verifyUrl?}`);
147
+ const ao = a;
148
+ for (const k of Object.keys(ao)) {
149
+ if (!API_KEYS.includes(k))
150
+ throw new LoginArgsError(`${where}.api.${k}: unknown key (allowed: ${API_KEYS.join(", ")})`);
151
+ }
152
+ const label = (k) => `${where}.api${typeof o.api === "string" && k === "url" ? "" : `.${k}`}`;
153
+ const api = parseApiLogin({
154
+ url: str(ao, "url", label("url"), true),
155
+ userKey: str(ao, "userKey", label("userKey"), false),
156
+ passwordKey: str(ao, "passwordKey", label("passwordKey"), false),
157
+ tokenPath: str(ao, "tokenPath", label("tokenPath"), false),
158
+ storageKey: str(ao, "storageKey", label("storageKey"), false),
159
+ storage: str(ao, "storage", label("storage"), false),
160
+ verifyUrl: str(ao, "verifyUrl", label("verifyUrl"), false),
161
+ }, { url: label("url"), userKey: label("userKey"), passwordKey: label("passwordKey"), tokenPath: label("tokenPath"), storageKey: label("storageKey"), storage: label("storage"), verifyUrl: label("verifyUrl") });
162
+ login = { api, userEnv, passwordEnv };
163
+ }
164
+ else {
165
+ login = {
166
+ url: httpUrl(str(o, "url", `${where}.url`, true), `${where}.url`),
167
+ userEnv,
168
+ passwordEnv,
169
+ ...optional("userField", str(o, "userField", `${where}.userField`, false)),
170
+ ...optional("passwordField", str(o, "passwordField", `${where}.passwordField`, false)),
171
+ ...optional("submit", str(o, "submit", `${where}.submit`, false)),
172
+ ...optional("success", str(o, "success", `${where}.success`, false)),
173
+ };
174
+ }
78
175
  assertEnvVarName(login.userEnv, `${where}.userEnv`);
79
176
  assertEnvVarName(login.passwordEnv, `${where}.passwordEnv`);
80
177
  if (login.success !== undefined)
@@ -86,6 +183,26 @@ function optional(k, v) {
86
183
  }
87
184
  /** `jevitate login`'s flags → a validated `PersonaLogin` (fail closed before any browser opens). */
88
185
  export function loginFromFlags(f) {
186
+ if (f.api !== undefined) {
187
+ if (f.url !== undefined)
188
+ throw new LoginArgsError("--api and --url are two ways to sign in: pass one");
189
+ const formFlags = [
190
+ ["--user-field", f.userField],
191
+ ["--password-field", f.passwordField],
192
+ ["--submit", f.submit],
193
+ ["--success", f.success],
194
+ ]
195
+ .filter(([, v]) => v !== undefined)
196
+ .map(([k]) => k);
197
+ if (formFlags.length > 0)
198
+ throw new LoginArgsError(`--api signs in through an HTTP endpoint, not a form: ${formFlags.join(", ")} ${formFlags.length === 1 ? "does" : "do"} not apply`);
199
+ const login = { api: parseApiLogin(f.api), userEnv: f.userEnv, passwordEnv: f.passwordEnv };
200
+ assertEnvVarName(login.userEnv, "--user-env");
201
+ assertEnvVarName(login.passwordEnv, "--password-env");
202
+ return login;
203
+ }
204
+ if (f.url === undefined)
205
+ throw new LoginArgsError("missing --url (or --api)");
89
206
  const login = {
90
207
  url: httpUrl(f.url, "--url"),
91
208
  userEnv: f.userEnv,
@@ -136,9 +253,9 @@ export function resolveLoginSecrets(login, env) {
136
253
  };
137
254
  return { username: read(login.userEnv, "--user-env"), password: read(login.passwordEnv, "--password-env") };
138
255
  }
139
- /** Removes both credentials (and URL credentials/tokens) from a text before it leaves this module. */
140
- function scrub(text, secrets) {
141
- return redactText(text, [secrets.password, secrets.username]);
256
+ /** Removes both credentials, and any session token read (#449), (and URL credentials/tokens) from a text before it leaves this module. */
257
+ function scrub(text, secrets, token) {
258
+ return redactText(text, token === undefined ? [secrets.password, secrets.username] : [token, secrets.password, secrets.username]);
142
259
  }
143
260
  // ── the login ─────────────────────────────────────────────────────────────────────────────────
144
261
  const VISIBLE_PASSWORD = 'input[type="password"]';
@@ -161,6 +278,28 @@ async function firstVisible(candidates) {
161
278
  function fieldBySpec(page, spec) {
162
279
  return [page.getByLabel(spec, { exact: true }), page.getByLabel(spec), page.locator(spec)];
163
280
  }
281
+ /**
282
+ * Waits (bounded by `timeoutMs`) until a login field is visible: any candidate from the user list or
283
+ * the password list. A client-rendered form (an SPA that mounts after load) therefore gets its chance
284
+ * before the "no username field" verdict. A timeout (or a candidate selector that is not CSS) is
285
+ * swallowed, so the existing field-not-found errors are still what the operator sees.
286
+ */
287
+ async function waitForLoginField(page, login, timeoutMs) {
288
+ const candidates = [
289
+ ...(login.userField === undefined ? userCandidates(page) : fieldBySpec(page, login.userField)),
290
+ ...(login.passwordField === undefined ? passwordCandidates(page) : fieldBySpec(page, login.passwordField)),
291
+ ];
292
+ try {
293
+ await candidates
294
+ .map((c) => c.filter({ visible: true }))
295
+ .reduce((a, b) => a.or(b))
296
+ .first()
297
+ .waitFor({ state: "visible", timeout: timeoutMs });
298
+ }
299
+ catch {
300
+ // No field appeared within the bound (or a candidate was not a valid selector): the lookups below decide.
301
+ }
302
+ }
164
303
  function userCandidates(page) {
165
304
  return [
166
305
  page.locator(`${TEXT_INPUT}[autocomplete~="username"]`),
@@ -216,11 +355,49 @@ function pathOf(url) {
216
355
  return "?";
217
356
  }
218
357
  }
358
+ /** How often {@link waitForNoSignInForm} re-checks the page for sign-in-form evidence (clock time). */
359
+ const SIGN_IN_FORM_POLL_MS = 100;
360
+ /** The submit controls whose accessible name marks a form as a sign-in form. */
361
+ const SIGN_IN_BUTTON = /sign\s*in|log\s*in|login|continue/i;
362
+ /**
363
+ * True when the page shows evidence of a sign-in form (#442): a login-like URL, OR a visible password
364
+ * field together with a visible username/email field ({@link userCandidates}) or a visible button whose
365
+ * accessible name matches {@link SIGN_IN_BUTTON}. A page with only a password field (an API-credentials
366
+ * or settings form) is NOT a sign-in form — it is not evidence of an expired session.
367
+ */
368
+ async function showsSignInForm(page) {
369
+ if (isLoginLikeUrl(page.url()))
370
+ return true;
371
+ if ((await page.locator(VISIBLE_PASSWORD).filter({ visible: true }).count().catch(() => 0)) === 0)
372
+ return false;
373
+ if ((await firstVisible(userCandidates(page))) !== undefined)
374
+ return true;
375
+ return (await firstVisible([page.getByRole("button", { name: SIGN_IN_BUTTON })])) !== undefined;
376
+ }
377
+ /**
378
+ * Waits until {@link showsSignInForm} is false, bounded by `timeoutMs` of clock time (polled on the
379
+ * injectable clock, never a real-time sleep). Throws a Playwright-shaped `TimeoutError` at the bound,
380
+ * so the caller's existing timeout handling reports the login as failed.
381
+ */
382
+ async function waitForNoSignInForm(page, timeoutMs) {
383
+ const deadline = clock.now() + Math.max(0, timeoutMs);
384
+ for (;;) {
385
+ if (!(await showsSignInForm(page)))
386
+ return;
387
+ const left = deadline - clock.now();
388
+ if (left <= 0) {
389
+ const err = new Error(`Timeout ${Math.round(timeoutMs)}ms exceeded waiting for the page to leave its sign-in form`);
390
+ err.name = "TimeoutError";
391
+ throw err;
392
+ }
393
+ await clock.sleep(Math.min(SIGN_IN_FORM_POLL_MS, left));
394
+ }
395
+ }
219
396
  async function waitForSuccess(page, success, timeoutMs) {
220
397
  if (success === undefined) {
221
- // Default: the app moved off its sign-in page — no login-like URL and no visible password field.
398
+ // Default: the app moved off its sign-in page — no login-like URL, and no sign-in-form evidence.
222
399
  await page.waitForURL((u) => !isLoginLikeUrl(u.href), { timeout: timeoutMs, waitUntil: "load" });
223
- await page.locator(VISIBLE_PASSWORD).filter({ visible: true }).first().waitFor({ state: "detached", timeout: timeoutMs });
400
+ await waitForNoSignInForm(page, timeoutMs);
224
401
  return;
225
402
  }
226
403
  if (success.kind === "urlIncludes") {
@@ -268,8 +445,11 @@ export async function performLogin(page, login, secrets, opts) {
268
445
  const success = login.success === undefined ? undefined : parseLoginSuccess(login.success);
269
446
  const t = opts.timeoutMs;
270
447
  try {
448
+ if (login.url === undefined)
449
+ throw new LoginFailedError("no sign-in page: the login parameters name an API endpoint, not a form");
271
450
  await page.goto(login.url, { waitUntil: "load", timeout: t });
272
451
  assertPageAuthorized(page, opts.allowlist);
452
+ await waitForLoginField(page, login, t);
273
453
  const findUser = async () => firstVisible(login.userField === undefined ? userCandidates(page) : fieldBySpec(page, login.userField));
274
454
  const findPassword = async () => firstVisible(login.passwordField === undefined ? passwordCandidates(page) : fieldBySpec(page, login.passwordField));
275
455
  let password = await findPassword();
@@ -372,21 +552,28 @@ export function writeStorageStateFile(path, json) {
372
552
  throw err;
373
553
  }
374
554
  }
375
- /** Signs in on a fresh, unrecorded session and saves its storage state (mode 0600). */
376
- export async function mintStorageState(o) {
377
- const secrets = resolveLoginSecrets(o.login, o.env);
378
- const save = resolve(o.save);
379
- const refusal = sessionFileInProjectRefusal(save, "the storage state");
380
- if (refusal !== undefined)
381
- throw new LoginArgsError(refusal);
555
+ function assertLoginOriginAuthorized(url, allowlist, what) {
382
556
  try {
383
- assertAuthorizedExploreTarget(o.login.url, o.allowlist);
557
+ assertAuthorizedExploreTarget(url, allowlist);
384
558
  }
385
559
  catch (err) {
386
560
  if (err instanceof UnauthorizedExploreTargetError)
387
- throw new LoginArgsError(`login URL ${JSON.stringify(o.login.url)} is not an authorized origin (allowed: ${o.allowlist.join(", ") || "<none>"}) — refused`);
561
+ throw new LoginArgsError(`${what} ${JSON.stringify(redactUrl(url))} is not an authorized origin (allowed: ${allowlist.join(", ") || "<none>"}) — refused`);
388
562
  throw err;
389
563
  }
564
+ }
565
+ /** Signs in on a fresh, unrecorded session and saves its storage state (mode 0600). */
566
+ export async function mintStorageState(o) {
567
+ if (o.login.api !== undefined)
568
+ return mintApiStorageState(o, o.login.api);
569
+ if (o.login.url === undefined)
570
+ throw new LoginArgsError("the login parameters name neither a sign-in page (url) nor an endpoint (api)");
571
+ const save = resolve(o.save);
572
+ const refusal = sessionFileInProjectRefusal(save, "the storage state");
573
+ if (refusal !== undefined)
574
+ throw new LoginArgsError(refusal);
575
+ assertLoginOriginAuthorized(o.login.url, o.allowlist, "login URL");
576
+ const secrets = resolveLoginSecrets(o.login, o.env);
390
577
  // Never recorded: no video directory, no tracing, no screenshots — whatever the run's own flags say.
391
578
  const { recordVideo: _video, ...launch } = o.browser ?? {};
392
579
  let session;
@@ -406,6 +593,129 @@ export async function mintStorageState(o) {
406
593
  await session?.close().catch(() => undefined);
407
594
  }
408
595
  }
596
+ /** The value at a dotted path in a parsed JSON body (own properties only), or undefined. */
597
+ function valueAtPath(body, segments) {
598
+ let cur = body;
599
+ for (const s of segments) {
600
+ if (cur === null || typeof cur !== "object" || !Object.prototype.hasOwnProperty.call(cur, s))
601
+ return undefined;
602
+ cur = cur[s];
603
+ }
604
+ return cur;
605
+ }
606
+ /** The app page an API login's session is proven on (and whose origin receives the token). */
607
+ export function apiVerifyUrl(api) {
608
+ return api.verifyUrl ?? `${new URL(api.url).origin}/`;
609
+ }
610
+ /**
611
+ * #449: signs in through an HTTP endpoint. The credentials are POSTed as JSON (from a fresh,
612
+ * unrecorded browser context, so the response's `Set-Cookie` lands in its cookie jar); redirects are
613
+ * never followed. The storage state is the context's cookies plus, with a token path, the token
614
+ * written into the verify URL origin's localStorage. Every message is scrubbed of both credentials
615
+ * and the token; a failed sign-in or verification writes nothing.
616
+ */
617
+ async function mintApiStorageState(o, api) {
618
+ const save = resolve(o.save);
619
+ const refusal = sessionFileInProjectRefusal(save, "the storage state");
620
+ if (refusal !== undefined)
621
+ throw new LoginArgsError(refusal);
622
+ const appUrl = apiVerifyUrl(api);
623
+ assertLoginOriginAuthorized(api.url, o.allowlist, "login endpoint");
624
+ assertLoginOriginAuthorized(appUrl, o.allowlist, "the app page (--verify-url)");
625
+ if (o.verify !== undefined)
626
+ assertLoginOriginAuthorized(o.verify.url, o.allowlist, "the app page (--verify-url)");
627
+ const secrets = resolveLoginSecrets(o.login, o.env);
628
+ const segments = api.tokenPath === undefined ? undefined : parseTokenPath(api.tokenPath, "--token-path");
629
+ const { recordVideo: _video, ...launch } = o.browser ?? {};
630
+ let session;
631
+ let token;
632
+ let tmp;
633
+ try {
634
+ session = await o.port.open({ ...sessionLaunchOptions(launch), allowedOrigins: [...o.allowlist], baseUrl: appUrl });
635
+ const context = session.page.context();
636
+ const response = await context.request.post(api.url, {
637
+ data: { [api.userKey]: secrets.username, [api.passwordKey]: secrets.password },
638
+ headers: { accept: "application/json" },
639
+ maxRedirects: 0,
640
+ failOnStatusCode: false,
641
+ timeout: o.timeoutMs,
642
+ });
643
+ const status = response.status();
644
+ const where = pathOf(api.url);
645
+ if (status >= 300 && status < 400) {
646
+ const location = response.headers()["location"];
647
+ const target = location === undefined ? undefined : originOf(new URL(location, api.url).href);
648
+ if (target !== undefined && target !== new URL(api.url).origin) {
649
+ throw new LoginFailedError(`the sign-in endpoint ${where} redirected (HTTP ${status}) to another origin, ${target} — redirects are never followed`);
650
+ }
651
+ if (segments !== undefined)
652
+ throw new LoginFailedError(`the sign-in endpoint ${where} answered HTTP ${status} (a redirect, not followed), not a JSON body holding --token-path ${api.tokenPath}`);
653
+ }
654
+ else if (status < 200 || status >= 300) {
655
+ throw new LoginFailedError(`the sign-in endpoint ${where} answered HTTP ${status} — the credentials in ${o.login.userEnv}/${o.login.passwordEnv} were not accepted`);
656
+ }
657
+ if (segments !== undefined) {
658
+ let body;
659
+ try {
660
+ body = JSON.parse(await response.text());
661
+ }
662
+ catch {
663
+ throw new LoginFailedError(`the sign-in endpoint ${where} answered HTTP ${status} with a body that is not JSON — --token-path ${api.tokenPath} cannot be read`);
664
+ }
665
+ const v = valueAtPath(body, segments);
666
+ if (typeof v === "number" && Number.isFinite(v))
667
+ token = String(v);
668
+ else if (typeof v === "string" && v !== "")
669
+ token = v;
670
+ else
671
+ throw new LoginFailedError(`the sign-in endpoint's JSON response has no ${v === undefined || v === null ? "value" : "string value"} at --token-path ${api.tokenPath}`);
672
+ }
673
+ const raw = session.captureStorageState !== undefined ? await session.captureStorageState() : JSON.stringify(await context.storageState());
674
+ const state = JSON.parse(raw);
675
+ if (token === undefined && (state.cookies ?? []).length === 0) {
676
+ throw new LoginFailedError(`the sign-in endpoint ${where} answered HTTP ${status} but set no cookie — name the token in its JSON response with --token-path`);
677
+ }
678
+ if (token !== undefined) {
679
+ const origin = new URL(appUrl).origin;
680
+ const origins = (state.origins ?? []).filter((x) => x.origin !== origin);
681
+ const existing = (state.origins ?? []).find((x) => x.origin === origin)?.localStorage ?? [];
682
+ origins.push({ origin, localStorage: [...existing.filter((e) => e.name !== api.storageKey), { name: api.storageKey, value: token }] });
683
+ state.origins = origins;
684
+ }
685
+ await session.close().catch(() => undefined);
686
+ session = undefined;
687
+ let landed = appUrl;
688
+ const json = JSON.stringify(state);
689
+ if (o.verify === undefined) {
690
+ writeStorageStateFile(save, json);
691
+ }
692
+ else {
693
+ // Proven before it replaces anything: the check runs on a 0600 temp file beside the target.
694
+ tmp = join(dirname(save), `.${basename(save)}.${randomUUID()}.verify.json`);
695
+ writeStorageStateFile(tmp, json);
696
+ const verdict = await checkSession({ storageState: tmp, url: o.verify.url, allowlist: o.allowlist, check: o.verify.check, port: o.port, ...(o.browser === undefined ? {} : { browser: o.browser }), timeoutMs: o.timeoutMs });
697
+ if (!verdict.ok)
698
+ throw new LoginFailedError(`signed in through ${where}, but ${verdict.reason.replace(basename(tmp), "the new storage state")} — nothing saved`);
699
+ if (verdict.landedUrl !== undefined)
700
+ landed = verdict.landedUrl;
701
+ renameSync(tmp, save);
702
+ tmp = undefined;
703
+ }
704
+ return { saved: save, landedUrl: scrub(redactUrl(landed), secrets, token) };
705
+ }
706
+ catch (err) {
707
+ if (err instanceof LoginFailedError)
708
+ throw new LoginFailedError(scrub(err.message, secrets, token));
709
+ if (err instanceof LoginArgsError)
710
+ throw new LoginArgsError(scrub(err.message, secrets, token));
711
+ throw new LoginFailedError(scrub(`the sign-in failed: ${err instanceof Error ? err.message.split("\n")[0] : String(err)}`, secrets, token));
712
+ }
713
+ finally {
714
+ if (tmp !== undefined)
715
+ rmSync(tmp, { force: true });
716
+ await session?.close().catch(() => undefined);
717
+ }
718
+ }
409
719
  /** How long the check waits for a client-side redirect (an SPA that asks its API, then routes to /login). */
410
720
  const SETTLE_MS = 3_000;
411
721
  /**
@@ -453,9 +763,9 @@ async function judgeLanding(page, o) {
453
763
  if (isLoginLikeUrl(landed)) {
454
764
  return { ok: false, landedUrl: where, reason: `the session in ${state} is not signed in: ${pathOf(o.url)} redirected to the sign-in page ${pathOf(landed)}` };
455
765
  }
456
- const pw = await page.locator(VISIBLE_PASSWORD).filter({ visible: true }).count().catch(() => 0);
457
- if (pw > 0)
458
- return { ok: false, landedUrl: where, reason: `the session in ${state} is not signed in: ${pathOf(landed)} shows a sign-in form (a password field)` };
766
+ if (await showsSignInForm(page)) {
767
+ return { ok: false, landedUrl: where, reason: `the session in ${state} is not signed in: ${pathOf(landed)} shows a sign-in form (a password field with a username field or a sign-in button)` };
768
+ }
459
769
  return { ok: true, landedUrl: where };
460
770
  }
461
771
  case "urlExcludes":
@@ -1 +1 @@
1
- {"version":3,"file":"persona-login.js","sourceRoot":"","sources":["../src/persona-login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persona-login.js","sourceRoot":"","sources":["../src/persona-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAElH,OAAO,EAAE,oBAAoB,EAA0B,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AA+D5E,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,GAAG,cAAuB,CAAC;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,yGAAyG;AACzG,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,IAAI,GAAG,gBAAyB,CAAC;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,QAAQ,GAAG,0BAA0B,CAAC;AAC5C,gGAAgG;AAChG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;AAE1F,yFAAyF;AACzF,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAY;IACzD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,qKAAqK,CAAC,CAAC;IACzM,CAAC;IACD,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,IAAI,IAAI,uEAAuE,CAAC,CAAC;IACnH,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,CAAS,EAAE,IAAY;IACtC,IAAI,CAAM,CAAC;IACX,IAAI,CAAC;QACH,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAAE,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAC;IAC3H,IAAI,CAAC,CAAC,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,EAAE;QAAE,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,wCAAwC,CAAC,CAAC;IACtH,OAAO,CAAC,CAAC,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AACxH,gEAAgE;AAChE,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAC3F,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAU,CAAC;AAE/G,uEAAuE;AACvE,MAAM,QAAQ,GAAG,gCAAgC,CAAC;AAClD,oEAAoE;AACpE,MAAM,YAAY,GAAG,sDAAsD,CAAC;AAC5E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AAC3E,mFAAmF;AACnF,MAAM,WAAW,GAAG,qCAAqC,CAAC;AAa1D,MAAM,WAAW,GAAmB;IAClC,GAAG,EAAE,OAAO;IACZ,OAAO,EAAE,gBAAgB;IACzB,WAAW,EAAE,oBAAoB;IACjC,SAAS,EAAE,cAAc;IACzB,UAAU,EAAE,eAAe;IAC3B,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,cAAc;CAC1B,CAAC;AAEF,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAY;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,yHAAyH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAC3B,GAQC,EACD,SAAyB,WAAW;IAEpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAU,EAAE,CAAC;QACrG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,GAAG,KAAK,qFAAqF,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvL,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,UAAU,CAAC;IAC1C,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,UAAU,CAAC;IAClD,IAAI,OAAO,KAAK,WAAW;QAAE,MAAM,IAAI,cAAc,CAAC,GAAG,MAAM,CAAC,OAAO,QAAQ,MAAM,CAAC,WAAW,0BAA0B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvJ,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QACzD,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,cAAc,CACtB,GAAG,MAAM,CAAC,OAAO,6JAA6J,MAAM,CAAC,OAAO,6BAA6B,CAC1N,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,cAAc,CAAC,GAAG,MAAM,CAAC,OAAO,uBAAuB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,QAA8B,CAAC;IACnC,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;QAAE,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;SACvF,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,cAAc,CAAC,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,oBAAoB,MAAM,CAAC,SAAS,gBAAgB,MAAM,CAAC,SAAS,MAAM,CAAC,CAAC;IAC/M,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,cAAc,CAAC,GAAG,MAAM,CAAC,UAAU,gGAAgG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACjL,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,cAAc,CAAC,GAAG,MAAM,CAAC,SAAS,YAAY,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,+CAA+C,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACxJ,CAAC;IACD,OAAO;QACL,GAAG;QACH,OAAO;QACP,WAAW;QACX,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC;QACvC,GAAG,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;QACrC,OAAO,EAAE,OAAO;QAChB,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;KAC7G,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,iBAAiB,CAAC,CAAU,EAAE,KAAa;IACzD,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,GAAG,KAAK,yDAAyD,CAAC,CAAC;IACzJ,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAE,UAAgC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,cAAc,CAAC,GAAG,KAAK,IAAI,CAAC,2BAA2B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAC3K,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,IAA6B,EAAE,CAAS,EAAE,KAAa,EAAE,QAAiB,EAAsB,EAAE;QAC7G,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QACnD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,MAAM,IAAI,cAAc,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;QAC9G,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,UAAU,EAAE,IAAI,CAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,KAAK,cAAc,EAAE,IAAI,CAAE,CAAC;IACzE,IAAI,KAAmB,CAAC;IACxB,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QAClE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,GAAG,KAAK,2DAA2D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACnK,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7D,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,GAAG,KAAK,yHAAyH,CAAC,CAAC;QACzN,MAAM,EAAE,GAAG,CAA4B,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,IAAI,CAAE,QAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,cAAc,CAAC,GAAG,KAAK,QAAQ,CAAC,2BAA2B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjJ,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,GAAG,KAAK,OAAO,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9G,MAAM,GAAG,GAAG,aAAa,CACvB;YACE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAE;YACxC,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;YACpD,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;YAChE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;YAC1D,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;YAC7D,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;YACpD,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;SAC3D,EACD,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAC9M,CAAC;QACF,KAAK,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,KAAK,GAAG;YACN,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,MAAM,EAAE,IAAI,CAAE,EAAE,GAAG,KAAK,MAAM,CAAC;YAClE,OAAO;YACP,WAAW;YACX,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,KAAK,YAAY,EAAE,KAAK,CAAC,CAAC;YAC1E,GAAG,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,GAAG,KAAK,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACtF,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,SAAS,EAAE,KAAK,CAAC,CAAC;YACjE,GAAG,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,UAAU,EAAE,KAAK,CAAC,CAAC;SACrE,CAAC;IACJ,CAAC;IACD,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC;IACpD,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAsB,CAAI,EAAE,CAAgB;IAC3D,OAAO,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAC;AACjE,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,cAAc,CAAC,CAS9B;IACC,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,cAAc,CAAC,mDAAmD,CAAC,CAAC;QACvG,MAAM,SAAS,GACb;YACE,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC;YAC7B,CAAC,kBAAkB,EAAE,CAAC,CAAC,aAAa,CAAC;YACrC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;SAE3B;aACE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,wDAAwD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC;QACvL,MAAM,KAAK,GAAiB,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1G,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9C,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,cAAc,CAAC,0BAA0B,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAiB;QAC1B,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC;QACrC,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,aAAa,CAAC;QAC7C,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QAC/B,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;KAClC,CAAC;IACF,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9C,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC;AACf,CAAC;AAOD,+DAA+D;AAC/D,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7F,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/E,CAAC;IACD,MAAM,IAAI,cAAc,CAAC,4EAA4E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/H,CAAC;AAQD,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACnE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtF,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACpF,MAAM,IAAI,cAAc,CAAC,6EAA6E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChI,CAAC;AASD,mHAAmH;AACnH,MAAM,UAAU,mBAAmB,CAAC,KAAmB,EAAE,GAAiD;IACxG,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE;QAClD,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;YAAE,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,0BAA0B,IAAI,aAAa,CAAC,CAAC;QAC9G,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC;AAC9G,CAAC;AAED,0IAA0I;AAC1I,SAAS,KAAK,CAAC,IAAY,EAAE,OAAqB,EAAE,KAAc;IAChE,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpI,CAAC;AAED,iGAAiG;AAEjG,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAClD,MAAM,UAAU,GAAG,+KAA+K,CAAC;AAEnM,8GAA8G;AAC9G,KAAK,UAAU,YAAY,CAAC,UAA8B;IACxD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,8EAA8E;QAChF,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kFAAkF;AAClF,SAAS,WAAW,CAAC,IAAU,EAAE,IAAY;IAC3C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,iBAAiB,CAAC,IAAU,EAAE,KAAmB,EAAE,SAAiB;IACjF,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9F,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;KAC3G,CAAC;IACF,IAAI,CAAC;QACH,MAAM,UAAU;aACb,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACzB,KAAK,EAAE;aACP,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,0GAA0G;IAC5G,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAU;IAChC,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,4BAA4B,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,yBAAyB,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,qBAAqB,UAAU,gBAAgB,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,sBAAsB,UAAU,iBAAiB,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,sBAAsB,UAAU,iBAAiB,CAAC;QAC5E,IAAI,CAAC,UAAU,CAAC,8CAA8C,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,YAAY,gBAAgB,KAAK,UAAU,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAU;IACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,0DAA0D,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAU,EAAE,IAAwB;IAC/D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpI,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3H,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,YAAY,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,YAAY,gBAAgB,mBAAmB,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,YAAY,UAAU,mBAAmB,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,4DAA4D,EAAE,CAAC;KACjG,CAAC,CAAC;AACL,CAAC;AAED,oFAAoF;AACpF,SAAS,oBAAoB,CAAC,IAAU,EAAE,SAA4B;IACpE,IAAI,CAAC;QACH,6BAA6B,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,8BAA8B,CAAC;YAAE,MAAM,GAAG,CAAC;QAChE,MAAM,IAAI,gBAAgB,CAAC,0BAA0B,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,iDAAiD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,8EAA8E,CAAC,CAAC;IAC5O,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,uGAAuG;AACvG,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,gFAAgF;AAChF,MAAM,cAAc,GAAG,oCAAoC,CAAC;AAE5D;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,IAAU;IACvC,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChH,IAAI,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC1E,OAAO,CAAC,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;AAClG,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,mBAAmB,CAAC,IAAU,EAAE,SAAiB;IAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACtD,SAAS,CAAC;QACR,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO;QAC3C,MAAM,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,4DAA4D,CAAC,CAAC;YACpH,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC;YAC1B,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAU,EAAE,OAAiC,EAAE,SAAiB;IAC5F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,iGAAiG;QACjG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACjG,MAAM,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACnC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IACzG,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACvC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACjG,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,GAAG,uCAAuC,CAAC;AAE3D;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAU,EAAE,SAAiB;IACjD,MAAM,KAAK,GAAG,IAAI,OAAO,CAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAClD,OAAO,IAAI;SACR,OAAO,CAAC,UAAU,CAAC;SACnB,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SACzB,KAAK,EAAE;SACP,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;SACjD,IAAI,CACH,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,UAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,EACzI,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,OAAiC;IACxD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,2EAA2E,CAAC;IAC9G,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,sBAAsB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAChG,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC5F,OAAO,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAU,EAAE,KAAmB,EAAE,OAAqB,EAAE,IAA2E;IACpK,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3F,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,gBAAgB,CAAC,wEAAwE,CAAC,CAAC;QAClI,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9D,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,KAAK,IAAkC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACnK,MAAM,YAAY,GAAG,KAAK,IAAkC,EAAE,CAC5D,YAAY,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACtH,IAAI,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3N,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,iEAAiE;YACjE,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;;gBAC7D,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;;gBACnJ,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YACzD,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;QACvO,CAAC;QACD,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACvD,mGAAmG;QACnG,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACrG,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;;YACnE,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAoB,CAAC,CAAC;YACpF,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,6DAA6D;YAC/F,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5G,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM,IAAI,gBAAgB,CAAC,yCAAyC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,yBAAyB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,oBAAoB,CAAC,CAAC;YACzK,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACxD,MAAM,IAAI,gBAAgB,CAAC,sCAAsC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,eAAe,CAAC,OAAO,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,8BAA8B,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,qBAAqB,CAAC,CAAC;YAC1P,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,gBAAgB;YAAE,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7F,4FAA4F;QAC5F,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjF,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,uBAAuB,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,iGAAiG;AAEjG,+HAA+H;AAC/H,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAAY;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,IAAI,OAA4B,CAAC;YACjC,IAAI,CAAC;gBACH,YAAY,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACrG,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;gBACnD,OAAO,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7C,CAAC;YACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CACX,GAAG,IAAI,IAAI,IAAI,iCAAiC,IAAI,QAAQ,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,yCAAyC,mFAAmF,CACnO,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAED,gHAAgH;AAChH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,IAAY;IAC9D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1E,IAAI,CAAC;QACH,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7B,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AA0BD,SAAS,2BAA2B,CAAC,GAAW,EAAE,SAA4B,EAAE,IAAY;IAC1F,IAAI,CAAC;QACH,6BAA6B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,8BAA8B;YAAE,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,0CAA0C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,aAAa,CAAC,CAAC;QAC9M,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,CAAc;IACnD,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,cAAc,CAAC,8EAA8E,CAAC,CAAC;IACxI,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACvE,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7D,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACpD,qGAAqG;IACrG,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;IAC3D,IAAI,OAAmC,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACzH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACtH,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAC5J,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,gBAAgB,IAAI,GAAG,YAAY,cAAc;YAAE,MAAM,GAAG,CAAC;QAChF,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACxI,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,SAAS,WAAW,CAAC,IAAa,EAAE,QAA2B;IAC7D,IAAI,GAAG,GAAY,IAAI,CAAC;IACxB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/G,GAAG,GAAI,GAA+B,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,YAAY,CAAC,GAAa;IACxC,OAAO,GAAG,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,mBAAmB,CAAC,CAAc,EAAE,GAAa;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACvE,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,2BAA2B,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACpE,2BAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;IAChF,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;QAAE,2BAA2B,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;IAClH,MAAM,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACzG,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;IAC3D,IAAI,OAAmC,CAAC;IACxC,IAAI,KAAyB,CAAC;IAC9B,IAAI,GAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACpH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACnD,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE;YAC9E,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,KAAK;YACvB,OAAO,EAAE,CAAC,CAAC,SAAS;SACrB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9F,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC/D,MAAM,IAAI,gBAAgB,CAAC,wBAAwB,KAAK,qBAAqB,MAAM,wBAAwB,MAAM,iCAAiC,CAAC,CAAC;YACtJ,CAAC;YACD,IAAI,QAAQ,KAAK,SAAS;gBAAE,MAAM,IAAI,gBAAgB,CAAC,wBAAwB,KAAK,kBAAkB,MAAM,qEAAqE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACpM,CAAC;aAAM,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YACzC,MAAM,IAAI,gBAAgB,CAAC,wBAAwB,KAAK,kBAAkB,MAAM,yBAAyB,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,oBAAoB,CAAC,CAAC;QACvK,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,IAAa,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,gBAAgB,CAAC,wBAAwB,KAAK,kBAAkB,MAAM,gDAAgD,GAAG,CAAC,SAAS,iBAAiB,CAAC,CAAC;YAClK,CAAC;YACD,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACtC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC9D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;gBAAE,KAAK,GAAG,CAAC,CAAC;;gBACjD,MAAM,IAAI,gBAAgB,CAAC,+CAA+C,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,oBAAoB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9K,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3I,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAuH,CAAC;QACpJ,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,gBAAgB,CAAC,wBAAwB,KAAK,kBAAkB,MAAM,4EAA4E,CAAC,CAAC;QAChK,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YACtC,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YACzE,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC;YAC5F,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,UAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACxI,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,CAAC;QACD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,GAAG,SAAS,CAAC;QACpB,IAAI,MAAM,GAAG,MAAM,CAAC;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3B,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,4FAA4F;YAC5F,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,cAAc,CAAC,CAAC;YAC5E,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9N,IAAI,CAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,KAAK,SAAS,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;YACjK,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;gBAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;YAChE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtB,GAAG,GAAG,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,gBAAgB;YAAE,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACpG,IAAI,GAAG,YAAY,cAAc;YAAE,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAChG,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/I,CAAC;YAAS,CAAC;QACT,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAiBD,6GAA6G;AAC7G,MAAM,SAAS,GAAG,KAAK,CAAC;AAExB;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,CAAsB;IACvD,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAC1E,6BAA6B,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACvJ,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,uEAAuE;QAC9F,CAAC;QACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5C,8FAA8F;QAC9F,6FAA6F;QAC7F,IAAI,OAAO,CAAC,EAAE;YAAE,MAAM,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC;IACjB,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,KAAK,UAAU,YAAY,CAAC,IAAU,EAAE,CAAsB;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACvC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,KAAK,sBAAsB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,mCAAmC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YAChK,CAAC;YACD,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,KAAK,sBAAsB,MAAM,CAAC,MAAM,CAAC,oFAAoF,EAAE,CAAC;YAClM,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;QACD,KAAK,aAAa;YAChB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBAClC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,KAAK,+CAA+C,MAAM,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAChM,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACrC,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,IAAI;iBACvB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACzB,KAAK,EAAE;iBACP,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;iBACpE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;iBAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO,OAAO;gBACZ,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;gBAChC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,KAAK,2CAA2C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,sBAAsB,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACvM,CAAC;QACD,KAAK,KAAK;YACR,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,+GAA+G;AAC/G,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAA6C,CAAC;IAClE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1D,MAAM,CAAC,GAAG,CAA0E,CAAC;QACrF,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAClJ,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,CAAiD,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC9E,MAAM,EAAE,GAAG,CAAwC,CAAC;YACpD,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ;gBAAE,GAAG,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAClI,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAAC,OAAuB,EAAE,IAAY;IACrE,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS,IAAI,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,SAAS;QAAE,OAAO;IAC9H,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QACxD,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,OAAO;YAAE,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;AACH,CAAC;AAeD,mHAAmH;AACnH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,CAAuB;IAChE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAClE,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7E,IAAI,KAA+B,CAAC;IACpC,IAAI,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,KAAK,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IACpI,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACpH,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACzM,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,cAAc,CAAC;YAAE,MAAM,GAAG,CAAC;QACtF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,mBAAmB,GAAG,YAAY,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC7I,CAAC;IACD,CAAC,CAAC,IAAI,EAAE,CAAC,aAAa,GAAG,KAAK,OAAO,0DAA0D,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7H,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACpD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,sCAAsC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;AACpH,CAAC;AAwBD,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,QAAgB,EAAE,MAA6C,EAAE,OAAgB;IACnI,MAAM,MAAM,GAAG,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,OAAO,IAAI,GAAG,MAAM,CAAC,MAAM,oJAAoJ,CAAC;IAC1O,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,cAAc;QACvB,cAAc,EAAE,cAAc;QAC9B,MAAM;QACN,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;QACjG,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1E,QAAQ,EAAE,CAAC;QACX,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,cAAuB,EAAE,UAAU,EAAE,YAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3G,OAAO,EAAE,EAAE;QACX,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;KAC9C,CAAC;AACJ,CAAC"}
package/dist/program.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Command } from "commander";
2
2
  import { registerDoctorCommand } from "./resource-preflight.js";
3
+ import { registerBrowserCommands } from "./browser-cli.js";
3
4
  import { fail } from "./envelope.js";
4
5
  import { registerLedgerCommands } from "./ledger-cli.js";
5
6
  import { registerAiCommands } from "./ai-cli.js";
@@ -96,6 +97,7 @@ export function buildProgram(deps) {
96
97
  registerReportCommands(program, { missionTargetsDir: resolveMissionTargetsDir(deps) });
97
98
  registerLogsCommands(program, deps);
98
99
  registerInvariantsCommands(program);
100
+ registerBrowserCommands(program); // #450: install-browser, browser-path
99
101
  registerDoctorCommand(program); // #205: resource governance — host load, machine browser slots, orphans
100
102
  useUsageExitCode(program);
101
103
  return program;