@skillcdn/console 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/README.md +15 -10
  2. package/dist/api.d.ts +6 -5
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +5 -4
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli/cli.d.ts +3 -0
  7. package/dist/cli/cli.d.ts.map +1 -1
  8. package/dist/cli/cli.js +251 -44
  9. package/dist/cli/cli.js.map +1 -1
  10. package/dist/cli/directory.d.ts +14 -0
  11. package/dist/cli/directory.d.ts.map +1 -0
  12. package/dist/cli/directory.js +46 -0
  13. package/dist/cli/directory.js.map +1 -0
  14. package/dist/cli/format.d.ts +15 -3
  15. package/dist/cli/format.d.ts.map +1 -1
  16. package/dist/cli/format.js +84 -6
  17. package/dist/cli/format.js.map +1 -1
  18. package/dist/cli/help.d.ts.map +1 -1
  19. package/dist/cli/help.js +78 -9
  20. package/dist/cli/help.js.map +1 -1
  21. package/dist/cli/main.js +2 -0
  22. package/dist/cli/main.js.map +1 -1
  23. package/dist/client.d.ts +69 -10
  24. package/dist/client.d.ts.map +1 -1
  25. package/dist/client.js +71 -33
  26. package/dist/client.js.map +1 -1
  27. package/dist/components/decision-list.d.ts +7 -1
  28. package/dist/components/decision-list.d.ts.map +1 -1
  29. package/dist/components/decision-list.js +21 -4
  30. package/dist/components/decision-list.js.map +1 -1
  31. package/dist/components/documents.d.ts +85 -0
  32. package/dist/components/documents.d.ts.map +1 -0
  33. package/dist/components/documents.js +103 -0
  34. package/dist/components/documents.js.map +1 -0
  35. package/dist/components/event-feed.d.ts.map +1 -1
  36. package/dist/components/event-feed.js +46 -14
  37. package/dist/components/event-feed.js.map +1 -1
  38. package/dist/components/markdown.d.ts +5 -2
  39. package/dist/components/markdown.d.ts.map +1 -1
  40. package/dist/components/markdown.js +8 -1
  41. package/dist/components/markdown.js.map +1 -1
  42. package/dist/components/projects.d.ts +41 -0
  43. package/dist/components/projects.d.ts.map +1 -0
  44. package/dist/components/projects.js +81 -0
  45. package/dist/components/projects.js.map +1 -0
  46. package/dist/components/runs.d.ts +5 -2
  47. package/dist/components/runs.d.ts.map +1 -1
  48. package/dist/components/runs.js +4 -4
  49. package/dist/components/runs.js.map +1 -1
  50. package/dist/components/shell.d.ts +5 -0
  51. package/dist/components/shell.d.ts.map +1 -1
  52. package/dist/components/shell.js +1 -1
  53. package/dist/components/shell.js.map +1 -1
  54. package/dist/components/task-view.d.ts +9 -1
  55. package/dist/components/task-view.d.ts.map +1 -1
  56. package/dist/components/task-view.js +3 -2
  57. package/dist/components/task-view.js.map +1 -1
  58. package/dist/console.css +253 -1
  59. package/dist/console.d.ts +3 -0
  60. package/dist/console.d.ts.map +1 -1
  61. package/dist/console.js +156 -58
  62. package/dist/console.js.map +1 -1
  63. package/dist/data.d.ts +44 -10
  64. package/dist/data.d.ts.map +1 -1
  65. package/dist/data.js +215 -81
  66. package/dist/data.js.map +1 -1
  67. package/dist/docs-page.d.ts +11 -0
  68. package/dist/docs-page.d.ts.map +1 -0
  69. package/dist/docs-page.js +146 -0
  70. package/dist/docs-page.js.map +1 -0
  71. package/dist/documents.d.ts +19 -0
  72. package/dist/documents.d.ts.map +1 -0
  73. package/dist/documents.js +64 -0
  74. package/dist/documents.js.map +1 -0
  75. package/dist/index.d.ts +6 -2
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +5 -1
  78. package/dist/index.js.map +1 -1
  79. package/dist/limits.d.ts +17 -0
  80. package/dist/limits.d.ts.map +1 -1
  81. package/dist/limits.js +17 -0
  82. package/dist/limits.js.map +1 -1
  83. package/dist/router.d.ts +28 -7
  84. package/dist/router.d.ts.map +1 -1
  85. package/dist/router.js +52 -23
  86. package/dist/router.js.map +1 -1
  87. package/dist/routes.d.ts +16 -12
  88. package/dist/routes.d.ts.map +1 -1
  89. package/dist/routes.js +31 -11
  90. package/dist/routes.js.map +1 -1
  91. package/dist/schemas.d.ts +414 -28
  92. package/dist/schemas.d.ts.map +1 -1
  93. package/dist/schemas.js +204 -27
  94. package/dist/schemas.js.map +1 -1
  95. package/dist/use-action.d.ts +8 -0
  96. package/dist/use-action.d.ts.map +1 -0
  97. package/dist/use-action.js +30 -0
  98. package/dist/use-action.js.map +1 -0
  99. package/dist/vocabulary.d.ts +10 -1
  100. package/dist/vocabulary.d.ts.map +1 -1
  101. package/dist/vocabulary.js +16 -0
  102. package/dist/vocabulary.js.map +1 -1
  103. package/package.json +1 -1
package/dist/cli/cli.js CHANGED
@@ -1,14 +1,15 @@
1
1
  import { basename, extname } from "node:path";
2
2
  import { parseArgs } from "node:util";
3
- import { ApiError, createClient } from "../client.js";
3
+ import { ApiError, createClient, } from "../client.js";
4
4
  import { MAX_OPTIONS, MIN_OPTIONS } from "../limits.js";
5
5
  import { TASK_PRIORITIES, TASK_STATES } from "../vocabulary.js";
6
- import { formatAnswer, formatDecision, formatDecisionLine, formatOptions, formatRun, formatRunLine, formatSkills, formatTask, formatTaskLine, } from "./format.js";
6
+ import { formatAnswer, formatDecision, formatDecisionLine, formatDocument, formatDocuments, formatOptions, formatProjectLine, formatRun, formatRunLine, formatSkills, formatTask, formatTaskLine, formatVersion, formatVersionLine, } from "./format.js";
7
7
  import { COMMAND_HELP, helpFor, usage } from "./help.js";
8
8
  // The `console` command (docs/specs/cli.md): the agent's side of the console. A thin client of
9
9
  // the REST API with no logic of its own: every command is one or two requests and the words to
10
10
  // say what came back. It takes what it needs from `CliIo`, so that tests run it whole, against
11
- // the app and no socket, with a store and readers of their own.
11
+ // the app and no socket, with a store and readers of their own. The board is a project's: every
12
+ // command on it works in the project the flag, the environment or the working directory names.
12
13
  /** The exit codes of the command, for whoever runs it: a shell, a hook, an agent. */
13
14
  export const EXIT = {
14
15
  ok: 0,
@@ -38,7 +39,11 @@ class CliExit extends Error {
38
39
  }
39
40
  const failed = (message) => new CliExit(EXIT.failed, message);
40
41
  const misuse = (message) => new CliExit(EXIT.usage, message);
41
- const GLOBAL_OPTIONS = { json: { type: "boolean" }, url: { type: "string" } };
42
+ const GLOBAL_OPTIONS = {
43
+ json: { type: "boolean" },
44
+ url: { type: "string" },
45
+ project: { type: "string" },
46
+ };
42
47
  function parse(args, options, allowPositionals = true) {
43
48
  try {
44
49
  return parseArgs({
@@ -64,6 +69,7 @@ const texts = (values, name) => {
64
69
  }
65
70
  return typeof value === "string" ? [value] : [];
66
71
  };
72
+ const NO_PROJECT = "Say which project: --project <key>, CONSOLE_PROJECT in the environment, or console use <key> once in this directory. console projects lists the projects you may work in.";
67
73
  /** The console and the token to talk to it with: the flags, the environment, then what login kept. */
68
74
  async function open(io, values) {
69
75
  const stored = await io.store.load();
@@ -72,29 +78,39 @@ async function open(io, values) {
72
78
  if (url === undefined || token === undefined) {
73
79
  throw failed("Not signed in. A person signs the command in: console login --url <the console's origin>");
74
80
  }
81
+ const client = createClient({ baseUrl: url, token, fetch: io.fetch });
82
+ const projectKey = async () => text(values, "project") ?? io.env.CONSOLE_PROJECT ?? (await io.directory.load())?.project;
75
83
  return {
76
- client: createClient({ baseUrl: url, token, fetch: io.fetch }),
84
+ client,
77
85
  url,
78
86
  json: on(values, "json"),
87
+ projectKey,
88
+ async project() {
89
+ const key = await projectKey();
90
+ if (key === undefined) {
91
+ throw failed(NO_PROJECT);
92
+ }
93
+ return client.project(key);
94
+ },
79
95
  };
80
96
  }
81
97
  /** Prints what came back: the console's JSON on `--json`, the words otherwise. */
82
98
  function answer(io, session, value, words) {
83
99
  io.stdout(session.json ? `${JSON.stringify(value, null, 2)}\n` : `${words()}\n`);
84
100
  }
85
- /** The run a command on a run means: the one named, else the one open run of this token. */
86
- async function currentRun(session, values) {
101
+ /** The run a command on a run means: the one named, else the one open run of this token in the project. */
102
+ async function currentRun(project, values) {
87
103
  const given = text(values, "run");
88
104
  if (given !== undefined) {
89
105
  return given;
90
106
  }
91
- const { items } = await session.client.runs({ open: true, mine: true });
107
+ const { items } = await project.runs({ open: true, mine: true });
92
108
  const [only] = items;
93
109
  if (only !== undefined && items.length === 1) {
94
110
  return only.id;
95
111
  }
96
112
  if (items.length === 0) {
97
- throw failed("No run of yours is open. Take a task first: console take <number>");
113
+ throw failed("No run of yours is open in this project. Take a task first: console take <number>");
98
114
  }
99
115
  throw failed(`Several runs of yours are open; say which with --run <id>:\n${items.map((run) => ` ${formatRunLine(run)}`).join("\n")}`);
100
116
  }
@@ -159,7 +175,7 @@ function theOne(positionals, ask) {
159
175
  * The decision once answered, or as it stands when the wait is over. Each request asks the
160
176
  * console to hold it for a while, so the answer arrives as soon as a person gives it.
161
177
  */
162
- async function waitForAnswer(io, client, decision, seconds) {
178
+ async function waitForAnswer(io, project, decision, seconds) {
163
179
  const deadline = io.now() + seconds * 1000;
164
180
  let current = decision;
165
181
  for (;;) {
@@ -167,7 +183,7 @@ async function waitForAnswer(io, client, decision, seconds) {
167
183
  if (current.answer !== null || left <= 0) {
168
184
  return current;
169
185
  }
170
- current = await client.awaitDecision(current.id, Math.max(1, Math.min(Math.ceil(left / 1000), WAIT_STEP_SECONDS)));
186
+ current = await project.awaitDecision(current.id, Math.max(1, Math.min(Math.ceil(left / 1000), WAIT_STEP_SECONDS)));
171
187
  if (current.answer === null) {
172
188
  await io.sleep(WAIT_PAUSE_MS);
173
189
  }
@@ -178,9 +194,9 @@ const stillWaiting = (id) => `Decision ${id} still waits for a person; the run w
178
194
  * Waits for the answer and says what it is, or that it is still to come. On `--json`, a decision
179
195
  * printed already as it was raised (`shown`) is printed again only with its answer.
180
196
  */
181
- async function settle(io, session, decision, seconds, shown = false) {
197
+ async function settle(io, session, project, decision, seconds, shown = false) {
182
198
  const outcome = decision.answer === null && seconds > 0
183
- ? await waitForAnswer(io, session.client, decision, seconds)
199
+ ? await waitForAnswer(io, project, decision, seconds)
184
200
  : decision;
185
201
  if (session.json) {
186
202
  if (!shown || outcome.answer !== null) {
@@ -212,7 +228,7 @@ const login = async (args, io) => {
212
228
  throw failed("The console does not know this token. Make one on your Tokens page and try again.");
213
229
  }
214
230
  const kept = await io.store.save({ url, token });
215
- io.stdout(`Signed in to ${me.workspace.name} at ${url} as ${person.login} (${person.role}). The token is kept in ${kept}.\n`);
231
+ io.stdout(`Signed in to ${me.workspace.name} at ${url} as ${person.login} (${person.role}). The token is kept in ${kept}.\nNext, say which project this directory works in: console use <key> (console projects lists them).\n`);
216
232
  return EXIT.ok;
217
233
  };
218
234
  const logout = async (args, io) => {
@@ -229,21 +245,42 @@ const whoami = async (args, io) => {
229
245
  if (person === null) {
230
246
  throw failed("The console does not know this token. Sign in again: console login");
231
247
  }
232
- answer(io, session, me, () => `${person.login} (${person.role}) at ${me.workspace.name}, ${session.url}`);
248
+ const key = await session.projectKey();
249
+ answer(io, session, { ...me, project: key ?? null }, () => `${person.login} (${person.role}) at ${me.workspace.name}, ${session.url}${key === undefined ? "; no project named here" : `; project ${key}`}`);
250
+ return EXIT.ok;
251
+ };
252
+ const projects = async (args, io) => {
253
+ const { values } = parse(args, {}, false);
254
+ const session = await open(io, values);
255
+ const found = await session.client.projects();
256
+ answer(io, session, found, () => found.items.length === 0
257
+ ? "No projects you may work in. A person makes one on the console's Projects page."
258
+ : found.items.map(formatProjectLine).join("\n"));
259
+ return EXIT.ok;
260
+ };
261
+ const use = async (args, io) => {
262
+ const { values, positionals } = parse(args, {});
263
+ const key = theOne(positionals, "Say which project: console use <key>");
264
+ const session = await open(io, values);
265
+ const project = await session.client.project(key).get();
266
+ const kept = await io.directory.save({ project: project.key });
267
+ answer(io, session, project, () => `Working in ${project.name} (${project.key}) from this directory on: kept in ${kept}, which is meant to be committed.`);
233
268
  return EXIT.ok;
234
269
  };
235
270
  const tasks = async (args, io) => {
236
271
  const { values } = parse(args, { state: { type: "string" } }, false);
237
272
  const state = stateOf(text(values, "state"));
238
273
  const session = await open(io, values);
239
- const found = await session.client.tasks(state === undefined ? {} : { state });
274
+ const project = await session.project();
275
+ const found = await project.tasks(state === undefined ? {} : { state });
240
276
  answer(io, session, found, () => found.items.length === 0 ? "No tasks." : found.items.map(formatTaskLine).join("\n"));
241
277
  return EXIT.ok;
242
278
  };
243
279
  const skills = async (args, io) => {
244
280
  const { values } = parse(args, {}, false);
245
281
  const session = await open(io, values);
246
- const found = await session.client.skills();
282
+ const project = await session.project();
283
+ const found = await project.skills();
247
284
  answer(io, session, found, () => formatSkills(found));
248
285
  return EXIT.ok;
249
286
  };
@@ -259,7 +296,8 @@ const newTask = async (args, io) => {
259
296
  const priority = priorityOf(text(values, "priority"));
260
297
  const body = await bodyOf(io, values, text(values, "body"));
261
298
  const session = await open(io, values);
262
- const made = await session.client.createTask({
299
+ const project = await session.project();
300
+ const made = await project.createTask({
263
301
  title,
264
302
  ...(body === undefined ? {} : { body }),
265
303
  ...(state === undefined ? {} : { state }),
@@ -275,10 +313,11 @@ const task = async (args, io) => {
275
313
  const { values, positionals } = parse(args, {});
276
314
  const ref = theOne(positionals, "Say which task: console task <number|id>");
277
315
  const session = await open(io, values);
278
- const found = await session.client.task(ref);
316
+ const project = await session.project();
317
+ const found = await project.task(ref);
279
318
  const [decisions, runs] = await Promise.all([
280
- session.client.decisions({ task: found.id }),
281
- session.client.runs({ task: found.id }),
319
+ project.decisions({ task: found.id }),
320
+ project.runs({ task: found.id }),
282
321
  ]);
283
322
  answer(io, session, { task: found, decisions: decisions.items, runs: runs.items }, () => formatTask(found, decisions.items, runs.items));
284
323
  return EXIT.ok;
@@ -287,9 +326,10 @@ const take = async (args, io) => {
287
326
  const { values, positionals } = parse(args, { agent: { type: "string" } });
288
327
  const ref = theOne(positionals, "Say which task: console take <number|id>");
289
328
  const session = await open(io, values);
290
- const found = await session.client.task(ref);
329
+ const project = await session.project();
330
+ const found = await project.task(ref);
291
331
  const agent = text(values, "agent");
292
- const run = await session.client.startRun({
332
+ const run = await project.startRun({
293
333
  taskId: found.id,
294
334
  ...(agent === undefined ? {} : { agent }),
295
335
  });
@@ -316,8 +356,9 @@ const report = async (args, io) => {
316
356
  throw misuse('Say what to report: console report "<markdown>", or --file <path>, or - to read standard input.');
317
357
  }
318
358
  const session = await open(io, values);
319
- const runId = await currentRun(session, values);
320
- const run = await session.client.report(runId, { body });
359
+ const project = await session.project();
360
+ const runId = await currentRun(project, values);
361
+ const run = await project.report(runId, { body });
321
362
  answer(io, session, run, () => `Reported on run ${run.id}: ${run.reports.length} report${run.reports.length === 1 ? "" : "s"} so far.`);
322
363
  return EXIT.ok;
323
364
  };
@@ -349,11 +390,12 @@ const handIn = async (args, io) => {
349
390
  const what = theOne(positionals, "Say what to hand in: console hand-in <https url | file path> [--label <words>]");
350
391
  const label = text(values, "label");
351
392
  const session = await open(io, values);
352
- const runId = await currentRun(session, values);
393
+ const project = await session.project();
394
+ const runId = await currentRun(project, values);
353
395
  // A URL is handed in as a link, and the console says whether it takes it; anything else
354
396
  // names a file on this machine.
355
397
  if (/^[a-z][a-z0-9+.-]*:\/\//i.test(what)) {
356
- const run = await session.client.handIn(runId, {
398
+ const run = await project.handIn(runId, {
357
399
  url: what,
358
400
  ...(label === undefined ? {} : { label }),
359
401
  });
@@ -369,7 +411,7 @@ const handIn = async (args, io) => {
369
411
  }
370
412
  const name = basename(what);
371
413
  const contentType = CONTENT_TYPES[extname(name).toLowerCase()];
372
- const run = await session.client.handInFile(runId, {
414
+ const run = await project.handInFile(runId, {
373
415
  name,
374
416
  bytes,
375
417
  ...(contentType === undefined ? {} : { contentType }),
@@ -394,8 +436,9 @@ const ask = async (args, io) => {
394
436
  const seconds = secondsOf(text(values, "wait"), DEFAULT_ASK_WAIT_SECONDS);
395
437
  const body = await bodyOf(io, values, text(values, "body"));
396
438
  const session = await open(io, values);
397
- const runId = await currentRun(session, values);
398
- const raised = await session.client.raiseDecision({
439
+ const project = await session.project();
440
+ const runId = await currentRun(project, values);
441
+ const raised = await project.raiseDecision({
399
442
  question,
400
443
  options: options.map((label) => ({ label })),
401
444
  runId,
@@ -405,24 +448,168 @@ const ask = async (args, io) => {
405
448
  io.stdout(session.json
406
449
  ? `${JSON.stringify(raised, null, 2)}\n`
407
450
  : `Decision ${raised.id} raised on run ${runId}; the run waits for a person.\n${formatOptions(raised)}\n`);
408
- return settle(io, session, raised, seconds, true);
451
+ return settle(io, session, project, raised, seconds, true);
409
452
  };
410
453
  const decision = async (args, io) => {
411
- const { values, positionals } = parse(args, { wait: { type: "string" } });
412
- const id = theOne(positionals, "Say which decision: console decision <id> [--wait <seconds>]");
454
+ const { values, positionals } = parse(args, {
455
+ wait: { type: "string" },
456
+ outcome: { type: "string" },
457
+ file: { type: "string" },
458
+ });
459
+ const id = theOne(positionals, "Say which decision: console decision <id> [--wait <seconds>] [--outcome <markdown>|--file <path>]");
413
460
  const seconds = secondsOf(text(values, "wait"), 0);
461
+ const outcome = await bodyOf(io, values, text(values, "outcome"));
414
462
  const session = await open(io, values);
415
- const found = await session.client.decision(id);
463
+ const project = await session.project();
464
+ if (outcome !== undefined) {
465
+ // What followed the decision: the record grows, and is printed as it stands.
466
+ const grown = await project.updateDecision(id, { outcome });
467
+ answer(io, session, grown, () => formatDecision(grown));
468
+ return EXIT.ok;
469
+ }
470
+ const found = await project.decision(id);
416
471
  if (seconds === 0) {
417
472
  answer(io, session, found, () => formatDecision(found));
418
473
  return EXIT.ok;
419
474
  }
420
- return settle(io, session, found, seconds);
475
+ return settle(io, session, project, found, seconds);
476
+ };
477
+ const docs = async (args, io) => {
478
+ const { values, positionals } = parse(args, {
479
+ search: { type: "string" },
480
+ archived: { type: "boolean" },
481
+ });
482
+ if (positionals.length > 1) {
483
+ throw misuse("Say one folder: console docs [<folder>] [--search <words>] [--archived]");
484
+ }
485
+ const search = text(values, "search");
486
+ const session = await open(io, values);
487
+ const project = await session.project();
488
+ const found = await project.documents({
489
+ ...(positionals[0] === undefined ? {} : { folder: positionals[0] }),
490
+ ...(search === undefined ? {} : { q: search }),
491
+ ...(on(values, "archived") ? { archived: true } : {}),
492
+ });
493
+ answer(io, session, found, () => formatDocuments(found));
494
+ return EXIT.ok;
495
+ };
496
+ const doc = async (args, io) => {
497
+ const { values, positionals } = parse(args, {
498
+ version: { type: "string" },
499
+ versions: { type: "boolean" },
500
+ });
501
+ const path = theOne(positionals, "Say which page: console doc <path> [--version <n>|--versions]");
502
+ const session = await open(io, values);
503
+ const project = await session.project();
504
+ if (on(values, "versions")) {
505
+ const found = await project.documentVersions(path);
506
+ answer(io, session, found, () => found.items.map(formatVersionLine).join("\n"));
507
+ return EXIT.ok;
508
+ }
509
+ const wanted = text(values, "version");
510
+ if (wanted !== undefined) {
511
+ const number = Number(wanted);
512
+ if (!Number.isInteger(number) || number < 1) {
513
+ throw misuse(`Not a version number: ${wanted}`);
514
+ }
515
+ const found = await project.documentVersion(path, number);
516
+ answer(io, session, found, () => formatVersion(path, found));
517
+ return EXIT.ok;
518
+ }
519
+ const found = await project.document(path);
520
+ answer(io, session, found, () => formatDocument(found, (fileId) => project.documentFileUrl(path, fileId)));
521
+ return EXIT.ok;
522
+ };
523
+ const write = async (args, io) => {
524
+ const { values, positionals } = parse(args, {
525
+ title: { type: "string" },
526
+ body: { type: "string" },
527
+ file: { type: "string" },
528
+ base: { type: "string" },
529
+ });
530
+ const path = theOne(positionals, 'Say which page: console write <path> --title "<title>" --body <markdown>|--file <path>');
531
+ const body = await bodyOf(io, values, text(values, "body"));
532
+ if (body === undefined) {
533
+ throw misuse("Say what the page is to say: --body <markdown>, --file <path>, or --body - to read standard input.");
534
+ }
535
+ const base = text(values, "base");
536
+ const baseVersion = base === undefined ? undefined : Number(base);
537
+ if (baseVersion !== undefined && (!Number.isInteger(baseVersion) || baseVersion < 1)) {
538
+ throw misuse(`Not a version number: ${base}`);
539
+ }
540
+ const session = await open(io, values);
541
+ const project = await session.project();
542
+ let title = text(values, "title");
543
+ if (title === undefined) {
544
+ // Without a title, the page keeps the one it has; a new page needs one.
545
+ try {
546
+ title = (await project.document(path)).title;
547
+ }
548
+ catch (error) {
549
+ if (error instanceof ApiError && error.code === "document.not_found") {
550
+ throw misuse(`No page at ${path} yet. Say its title: --title "<title>"`);
551
+ }
552
+ throw error;
553
+ }
554
+ }
555
+ const written = await project.writeDocument(path, {
556
+ title,
557
+ body,
558
+ ...(baseVersion === undefined ? {} : { baseVersion }),
559
+ });
560
+ answer(io, session, written, () => `Wrote ${written.path} (${written.title}), version ${written.version}${written.links.length === 0 ? "" : `; refers to ${written.links.map((link) => link.path).join(", ")}`}`);
561
+ return EXIT.ok;
562
+ };
563
+ const attach = async (args, io) => {
564
+ const { values, positionals } = parse(args, { label: { type: "string" } });
565
+ const [path, file] = positionals;
566
+ if (path === undefined || file === undefined || positionals.length > 2) {
567
+ throw misuse("Say the page and the file: console attach <path> <file> [--label <words>]");
568
+ }
569
+ const label = text(values, "label");
570
+ const session = await open(io, values);
571
+ const project = await session.project();
572
+ let bytes;
573
+ try {
574
+ bytes = await io.readBytes(file);
575
+ }
576
+ catch {
577
+ throw failed(`No file could be read at ${file}.`);
578
+ }
579
+ const name = basename(file);
580
+ const contentType = CONTENT_TYPES[extname(name).toLowerCase()];
581
+ const written = await project.attachFile(path, {
582
+ name,
583
+ bytes,
584
+ ...(contentType === undefined ? {} : { contentType }),
585
+ ...(label === undefined ? {} : { label }),
586
+ });
587
+ answer(io, session, written, () => `Attached ${name} (${bytes.byteLength} bytes) to ${written.path}: ${written.files.length} file${written.files.length === 1 ? "" : "s"} on the page.`);
588
+ return EXIT.ok;
589
+ };
590
+ const archive = async (args, io) => {
591
+ const { values, positionals } = parse(args, {});
592
+ const path = theOne(positionals, "Say which page: console archive <path>");
593
+ const session = await open(io, values);
594
+ const project = await session.project();
595
+ const put = await project.archiveDocument(path);
596
+ answer(io, session, put, () => `Archived ${put.path} (${put.title}): out of the folders and the search, still readable here.`);
597
+ return EXIT.ok;
598
+ };
599
+ const restore = async (args, io) => {
600
+ const { values, positionals } = parse(args, {});
601
+ const path = theOne(positionals, "Say which page: console restore <path>");
602
+ const session = await open(io, values);
603
+ const project = await session.project();
604
+ const back = await project.restoreDocument(path);
605
+ answer(io, session, back, () => `Restored ${back.path} (${back.title}).`);
606
+ return EXIT.ok;
421
607
  };
422
608
  const decisions = async (args, io) => {
423
609
  const { values } = parse(args, { open: { type: "boolean" } }, false);
424
610
  const session = await open(io, values);
425
- const found = await session.client.decisions(on(values, "open") ? { open: true } : {});
611
+ const project = await session.project();
612
+ const found = await project.decisions(on(values, "open") ? { open: true } : {});
426
613
  answer(io, session, found, () => found.items.length === 0 ? "No decisions." : found.items.map(formatDecisionLine).join("\n"));
427
614
  return EXIT.ok;
428
615
  };
@@ -430,8 +617,9 @@ const ending = (status) => async (args, io) => {
430
617
  const { values } = parse(args, { summary: { type: "string" }, file: { type: "string" }, run: { type: "string" } }, false);
431
618
  const summary = await bodyOf(io, values, text(values, "summary"));
432
619
  const session = await open(io, values);
433
- const runId = await currentRun(session, values);
434
- const run = await session.client.endRun(runId, {
620
+ const project = await session.project();
621
+ const runId = await currentRun(project, values);
622
+ const run = await project.endRun(runId, {
435
623
  status,
436
624
  ...(summary === undefined ? {} : { summary }),
437
625
  });
@@ -451,8 +639,9 @@ const abandon = async (args, io) => {
451
639
  }
452
640
  const summary = await bodyOf(io, values, text(values, "summary"));
453
641
  const session = await open(io, values);
454
- const runId = positionals[0] ?? (await currentRun(session, values));
455
- const run = await session.client.endRun(runId, {
642
+ const project = await session.project();
643
+ const runId = positionals[0] ?? (await currentRun(project, values));
644
+ const run = await project.endRun(runId, {
456
645
  status: "abandoned",
457
646
  ...(summary === undefined ? {} : { summary }),
458
647
  });
@@ -462,9 +651,10 @@ const abandon = async (args, io) => {
462
651
  const runs = async (args, io) => {
463
652
  const { values } = parse(args, { task: { type: "string" }, open: { type: "boolean" }, mine: { type: "boolean" } }, false);
464
653
  const session = await open(io, values);
654
+ const project = await session.project();
465
655
  const ref = text(values, "task");
466
- const taskId = ref === undefined ? undefined : (await session.client.task(ref)).id;
467
- const found = await session.client.runs({
656
+ const taskId = ref === undefined ? undefined : (await project.task(ref)).id;
657
+ const found = await project.runs({
468
658
  ...(taskId === undefined ? {} : { task: taskId }),
469
659
  ...(on(values, "open") ? { open: true } : {}),
470
660
  ...(on(values, "mine") ? { mine: true } : {}),
@@ -476,14 +666,17 @@ const run = async (args, io) => {
476
666
  const { values, positionals } = parse(args, {});
477
667
  const id = theOne(positionals, "Say which run: console run <id>");
478
668
  const session = await open(io, values);
479
- const found = await session.client.run(id);
480
- answer(io, session, found, () => formatRun(found));
669
+ const project = await session.project();
670
+ const found = await project.run(id);
671
+ answer(io, session, found, () => formatRun(found, (artifactId) => project.fileUrl(artifactId)));
481
672
  return EXIT.ok;
482
673
  };
483
674
  const COMMANDS = {
484
675
  login,
485
676
  logout,
486
677
  whoami,
678
+ projects,
679
+ use,
487
680
  tasks,
488
681
  task,
489
682
  skills,
@@ -498,6 +691,12 @@ const COMMANDS = {
498
691
  abandon,
499
692
  runs,
500
693
  run,
694
+ docs,
695
+ doc,
696
+ write,
697
+ attach,
698
+ archive,
699
+ restore,
501
700
  };
502
701
  function help(io, name) {
503
702
  if (name === undefined) {
@@ -516,6 +715,14 @@ function hintFor(error) {
516
715
  switch (error.code) {
517
716
  case "auth.required":
518
717
  return "The token is not one the console knows, any more or at all. A person signs the command in again: console login\n";
718
+ case "project.not_found":
719
+ return "No project has this key, or it is not yours to see. console projects lists the projects you may work in.\n";
720
+ case "document.not_found":
721
+ return "No page has this path, in this project. console docs lists the pages of a folder; console write <path> writes one.\n";
722
+ case "document.conflict":
723
+ return "The page has moved on since the version you started from. Read it again, and write from there.\n";
724
+ case "document.archived":
725
+ return "The page is archived. console restore <path> brings it back first.\n";
519
726
  case "network":
520
727
  return "Is the console's address right? console whoami --url <origin> says what the command uses.\n";
521
728
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,QAAQ,EAER,YAAY,GAGb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAqC,MAAM,kBAAkB,CAAC;AAGnG,OAAO,EACL,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEzD,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,gGAAgG;AAChG,+FAA+F;AAE/F,qFAAqF;AACrF,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,EAAE,EAAE,CAAC;IACL,6EAA6E;IAC7E,MAAM,EAAE,CAAC;IACT,sCAAsC;IACtC,KAAK,EAAE,CAAC;IACR,6CAA6C;IAC7C,OAAO,EAAE,CAAC;CACF,CAAC;AAEX,wGAAwG;AACxG,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,6EAA6E;AAC7E,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,+FAA+F;AAC/F,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,oDAAoD;AACpD,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAwBhC,gEAAgE;AAChE,MAAM,OAAQ,SAAQ,KAAK;IAChB,IAAI,CAAS;IAEtB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,MAAM,GAAG,CAAC,OAAe,EAAW,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/E,MAAM,MAAM,GAAG,CAAC,OAAe,EAAW,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAM9E,MAAM,cAAc,GAAe;IACjC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;CAC5B,CAAC;AAEF,SAAS,KAAK,CAAC,IAAuB,EAAE,OAAmB,EAAE,gBAAgB,GAAG,IAAI;IAClF,IAAI,CAAC;QACH,OAAO,SAAS,CAAC;YACf,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;YACf,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE;YAC1C,gBAAgB;YAChB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAID,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,IAAY,EAAsB,EAAE;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC,CAAC;AACF,MAAM,EAAE,GAAG,CAAC,MAAc,EAAE,IAAY,EAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAC5E,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,IAAY,EAAY,EAAE;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC,CAAC;AAYF,MAAM,UAAU,GACd,2KAA2K,CAAC;AAE9K,sGAAsG;AACtG,KAAK,UAAU,IAAI,CAAC,EAAS,EAAE,MAAc;IAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,EAAE,GAAG,CAAC;IACrE,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,EAAE,KAAK,CAAC;IACpD,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,MAAM,CACV,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE,CAC5B,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5F,OAAO;QACL,MAAM;QACN,GAAG;QACH,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,UAAU;QACV,KAAK,CAAC,OAAO;YACX,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,SAAS,MAAM,CAAC,EAAS,EAAE,OAAgB,EAAE,KAAc,EAAE,KAAmB;IAC9E,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;AACnF,CAAC;AAED,2GAA2G;AAC3G,KAAK,UAAU,UAAU,CAAC,OAAsB,EAAE,MAAc;IAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACrB,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,CACV,mFAAmF,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,CACV,+DAA+D,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1H,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,KAAK,UAAU,MAAM,CACnB,EAAS,EACT,MAAc,EACd,KAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAChD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,IACE,GAAG,KAAK,SAAS;QACjB,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/B,GAAG,CAAC,QAAQ,KAAK,GAAG;QACpB,GAAG,CAAC,MAAM,KAAK,EAAE;QACjB,GAAG,CAAC,IAAI,KAAK,EAAE,EACf,CAAC;QACD,MAAM,MAAM,CACV,kBAAkB,KAAK,iFAAiF,CACzG,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAED,SAAS,OAAO,CAAC,KAAyB;IACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC3D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,MAAM,CAAC,gBAAgB,KAAK,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC;IACrE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,MAAM,CAAC,mBAAmB,KAAK,YAAY,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAyB,EAAE,QAAgB;IAC5D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,gBAAgB,EAAE,CAAC;QAC5E,MAAM,MAAM,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,wCAAwC;AACxC,SAAS,MAAM,CAAC,WAA8B,EAAE,GAAW;IACzD,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,aAAa,CAC1B,EAAS,EACT,OAAsB,EACtB,QAAsB,EACtB,OAAe;IAEf,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC;IAC3C,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CACnC,OAAO,CAAC,EAAE,EACV,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,iBAAiB,CAAC,CAAC,CACjE,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,EAAU,EAAU,EAAE,CAC1C,YAAY,EAAE,yFAAyF,EAAE,sGAAsG,CAAC;AAElN;;;GAGG;AACH,KAAK,UAAU,MAAM,CACnB,EAAS,EACT,OAAgB,EAChB,OAAsB,EACtB,QAAsB,EACtB,OAAe,EACf,KAAK,GAAG,KAAK;IAEb,MAAM,OAAO,GACX,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC;QACrC,CAAC,CAAC,MAAM,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;QACrD,CAAC,CAAC,QAAQ,CAAC;IACf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACtC,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1D,CAAC;AAID,MAAM,KAAK,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACxC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,EAAE,GAAG,CAAC;IACxE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,MAAM,CAAC,2EAA2E,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,CACZ,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;QACvB,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE;QACtB,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,yBAAyB,GAAG,WAAW,CAAC,CACjE,CAAC,IAAI,EAAE,CAAC;IACT,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC7E,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;IACzB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,MAAM,CACV,mFAAmF,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,EAAE,CAAC,MAAM,CACP,gBAAgB,EAAE,CAAC,SAAS,CAAC,IAAI,OAAO,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,2BAA2B,IAAI,wGAAwG,CACtN,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACzC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,EAAE,CAAC,MAAM,CAAC,qEAAqE,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;IACzB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,oEAAoE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IACvC,MAAM,CACJ,EAAE,EACF,OAAO,EACP,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,EAC/B,GAAG,EAAE,CACH,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,aAAa,GAAG,EAAE,EAAE,CAClJ,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAC9B,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACtB,CAAC,CAAC,iFAAiF;QACnF,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAClD,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,GAAG,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACtC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,sCAAsC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/D,MAAM,CACJ,EAAE,EACF,OAAO,EACP,OAAO,EACP,GAAG,EAAE,CACH,cAAc,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG,qCAAqC,IAAI,mCAAmC,CACzH,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,KAAK,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACxC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAC9B,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACpF,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;IACrC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IAC1C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;QAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC7B,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACpC,KAAK;QACL,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;KAChD,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,MAAM,aAAa,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACvC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;KACjC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CACtF,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAC/C,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACvC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3E,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC;QACjC,MAAM,EAAE,KAAK,CAAC,EAAE;QAChB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAC7C;QACE,OAAO,GAAG,CAAC,EAAE,cAAc,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,SAAS,GAAG,CAAC,KAAK,SAAS,GAAG,CAAC,MAAM,CAAC,KAAK,uCAAuC;QACxI,EAAE;QACF,UAAU,CAAC,KAAK,CAAC;QACjB,EAAE;QACF,4HAA4H;QAC5H,4JAA4J;KAC7J,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;QAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACxB,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,6DAA6D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,CACV,iGAAiG,CAClG,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,CACJ,EAAE,EACF,OAAO,EACP,GAAG,EACH,GAAG,EAAE,CACH,mBAAmB,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAC1G,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,+FAA+F;AAC/F,MAAM,aAAa,GAAqC;IACtD,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,kBAAkB;IAC1B,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,iBAAiB;CAC1B,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,KAAK,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AAE9F,MAAM,MAAM,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;QAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACxB,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CACjB,WAAW,EACX,gFAAgF,CACjF,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,wFAAwF;IACxF,gCAAgC;IAChC,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE;YACtC,GAAG,EAAE,IAAI;YACT,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SAC1C,CAAC,CAAC;QACH,MAAM,CACJ,EAAE,EACF,OAAO,EACP,GAAG,EACH,GAAG,EAAE,CAAC,aAAa,IAAI,WAAW,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAC3E,CAAC;QACF,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,KAAiB,CAAC;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,MAAM,CAAC,4BAA4B,IAAI,iDAAiD,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE;QAC1C,IAAI;QACJ,KAAK;QACL,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACrD,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,MAAM,CACJ,EAAE,EACF,OAAO,EACP,GAAG,EACH,GAAG,EAAE,CACH,sBAAsB,IAAI,KAAK,KAAK,CAAC,UAAU,kBAAkB,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAC5G,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,GAAG,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACtC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;QAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACzB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,CACrB,WAAW,EACX,kFAAkF,CACnF,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QACjE,MAAM,MAAM,CAAC,QAAQ,WAAW,OAAO,WAAW,8BAA8B,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,wBAAwB,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;QACzC,QAAQ;QACR,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,KAAK;QACL,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;KACxC,CAAC,CAAC;IACH,gFAAgF;IAChF,EAAE,CAAC,MAAM,CACP,OAAO,CAAC,IAAI;QACV,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;QACxC,CAAC,CAAC,YAAY,MAAM,CAAC,EAAE,kBAAkB,KAAK,kCAAkC,aAAa,CAAC,MAAM,CAAC,IAAI,CAC5G,CAAC;IACF,OAAO,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IAC3C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;QAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACzB,CAAC,CAAC;IACH,MAAM,EAAE,GAAG,MAAM,CACf,WAAW,EACX,mGAAmG,CACpG,CAAC;IACF,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,6EAA6E;QAC7E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,IAAI,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACvC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;QAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC9B,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,yEAAyE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC;QACpC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9C,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,GAAG,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACtC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;QAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC9B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,+DAA+D,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,MAAM,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAC9B,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CACzE,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,KAAK,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACxC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;QAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACzB,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CACjB,WAAW,EACX,wFAAwF,CACzF,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,CACV,oGAAoG,CACrG,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;QACrF,MAAM,MAAM,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,wEAAwE;QACxE,IAAI,CAAC;YACH,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACrE,MAAM,MAAM,CAAC,cAAc,IAAI,wCAAwC,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE;QAChD,KAAK;QACL,IAAI;QACJ,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;KACtD,CAAC,CAAC;IACH,MAAM,CACJ,EAAE,EACF,OAAO,EACP,OAAO,EACP,GAAG,EAAE,CACH,SAAS,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,cAAc,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAChL,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,MAAM,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvE,MAAM,MAAM,CAAC,2EAA2E,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,IAAI,KAAiB,CAAC;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,MAAM,CAAC,4BAA4B,IAAI,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE;QAC7C,IAAI;QACJ,KAAK;QACL,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACrD,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,MAAM,CACJ,EAAE,EACF,OAAO,EACP,OAAO,EACP,GAAG,EAAE,CACH,YAAY,IAAI,KAAK,KAAK,CAAC,UAAU,cAAc,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,QAAQ,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,eAAe,CACvJ,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IAC1C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,wCAAwC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,CACJ,EAAE,EACF,OAAO,EACP,GAAG,EACH,GAAG,EAAE,CACH,YAAY,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,4DAA4D,CACjG,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IAC1C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,wCAAwC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAC9B,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5F,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,MAAM,GACV,CAAC,MAA6B,EAAW,EAAE,CAC3C,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACjB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CACtB,IAAI,EACJ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAClF,KAAK,CACN,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE;QACtC,MAAM;QACN,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;KAC9C,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAC5B,MAAM,KAAK,UAAU;QACnB,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,uCAAuC;QACtD,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,mCAAmC,CACrD,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEJ,MAAM,OAAO,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IAC1C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;QAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACxB,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE;QACtC,MAAM,EAAE,WAAW;QACnB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;KAC9C,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE,sCAAsC,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACvC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CACtB,IAAI,EACJ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAClF,KAAK,CACN,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;QAC/B,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACjD,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAC9B,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAClF,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,GAAG,GAAY,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;IACtC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,iCAAiC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChG,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAsC;IAClD,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,GAAG;IACH,KAAK;IACL,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,MAAM;IACN,SAAS,EAAE,MAAM;IACjB,GAAG;IACH,QAAQ;IACR,SAAS;IACT,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC;IACtB,OAAO;IACP,IAAI;IACJ,GAAG;IACH,IAAI;IACJ,GAAG;IACH,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;CACR,CAAC;AAEF,SAAS,IAAI,CAAC,EAAS,EAAE,IAAwB;IAC/C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,MAAM,CAAC,kBAAkB,IAAI,mBAAmB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC;AAED,4FAA4F;AAC5F,SAAS,OAAO,CAAC,KAAe;IAC9B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,eAAe;YAClB,OAAO,kHAAkH,CAAC;QAC5H,KAAK,mBAAmB;YACtB,OAAO,4GAA4G,CAAC;QACtH,KAAK,oBAAoB;YACvB,OAAO,sHAAsH,CAAC;QAChI,KAAK,mBAAmB;YACtB,OAAO,kGAAkG,CAAC;QAC5G,KAAK,mBAAmB;YACtB,OAAO,sEAAsE,CAAC;QAChF,KAAK,SAAS;YACZ,OAAO,6FAA6F,CAAC;QACvG;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAuB,EAAE,EAAS;IAC7D,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAChE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,IAAI,mBAAmB,wBAAwB,CAAC,CAAC;YAChF,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChF,OAAO,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,CAAC,kBAAkB,IAAI,qBAAqB,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;YAC7B,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}