@superbee/core 0.2.0-pre.2 → 0.2.0-pre.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/document-codec.d.ts +1 -0
  2. package/dist/document-codec.d.ts.map +1 -1
  3. package/dist/document-codec.js +1 -0
  4. package/dist/document-codec.js.map +1 -1
  5. package/dist/frontmatter.d.ts +8 -0
  6. package/dist/frontmatter.d.ts.map +1 -1
  7. package/dist/frontmatter.js +14 -4
  8. package/dist/frontmatter.js.map +1 -1
  9. package/dist/governed-body-write.d.ts +99 -0
  10. package/dist/governed-body-write.d.ts.map +1 -0
  11. package/dist/governed-body-write.js +244 -0
  12. package/dist/governed-body-write.js.map +1 -0
  13. package/dist/index.d.ts +9 -4
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +5 -2
  16. package/dist/index.js.map +1 -1
  17. package/dist/indexeddb-backend.d.ts +4 -5
  18. package/dist/indexeddb-backend.d.ts.map +1 -1
  19. package/dist/indexeddb-backend.js +217 -91
  20. package/dist/indexeddb-backend.js.map +1 -1
  21. package/dist/journaled-backend.d.ts +103 -4
  22. package/dist/journaled-backend.d.ts.map +1 -1
  23. package/dist/journaled-backend.js +236 -0
  24. package/dist/journaled-backend.js.map +1 -1
  25. package/dist/memory-backend.d.ts +2 -2
  26. package/dist/memory-backend.d.ts.map +1 -1
  27. package/dist/memory-backend.js +21 -10
  28. package/dist/memory-backend.js.map +1 -1
  29. package/dist/remote-backend.d.ts +9 -54
  30. package/dist/remote-backend.d.ts.map +1 -1
  31. package/dist/remote-backend.js +15 -174
  32. package/dist/remote-backend.js.map +1 -1
  33. package/dist/remote-document-codec.d.ts +15 -0
  34. package/dist/remote-document-codec.d.ts.map +1 -0
  35. package/dist/remote-document-codec.js +103 -0
  36. package/dist/remote-document-codec.js.map +1 -0
  37. package/dist/remote-error.d.ts +22 -0
  38. package/dist/remote-error.d.ts.map +1 -0
  39. package/dist/remote-error.js +29 -0
  40. package/dist/remote-error.js.map +1 -0
  41. package/dist/remote-operations.d.ts +3 -1
  42. package/dist/remote-operations.d.ts.map +1 -1
  43. package/dist/remote-operations.js +6 -1
  44. package/dist/remote-operations.js.map +1 -1
  45. package/dist/remote-parsers.d.ts +86 -0
  46. package/dist/remote-parsers.d.ts.map +1 -0
  47. package/dist/remote-parsers.js +181 -0
  48. package/dist/remote-parsers.js.map +1 -0
  49. package/dist/remote.d.ts +5 -2
  50. package/dist/remote.d.ts.map +1 -1
  51. package/dist/remote.js +5 -1
  52. package/dist/remote.js.map +1 -1
  53. package/dist/uncertain-write.d.ts +4 -2
  54. package/dist/uncertain-write.d.ts.map +1 -1
  55. package/dist/uncertain-write.js +6 -3
  56. package/dist/uncertain-write.js.map +1 -1
  57. package/package.json +5 -1
@@ -40,9 +40,9 @@
40
40
  * This module touches NO filesystem and parses NO markdown — like {@link MemoryBackend},
41
41
  * it proves the engine leaks no assumptions beyond the {@link StorageBackend} contract.
42
42
  */
43
- import { type DocumentHead } from "./heads-digest.js";
43
+ import { type HeadsResult, type RemoteSnapshot } from "./remote-parsers.js";
44
44
  import { type Outcome } from "./uncertain-write.js";
45
- import type { BlobKey, ConceptId, DeleteOptions, Frontmatter, HeadResult, OkfDocument, QueryFilter, ReadBlobResult, ReadResult, ReservedFilename, ReservedReadResult, StorageBackend, Version, VersionInfo, WriteOptions } from "./types.js";
45
+ import type { BlobKey, ConceptId, DeleteOptions, HeadResult, OkfDocument, QueryFilter, ReadBlobResult, ReadResult, ReservedFilename, ReservedReadResult, StorageBackend, Version, VersionInfo, WriteOptions } from "./types.js";
46
46
  /**
47
47
  * An injectable fetch-like transport: given a `Request`, resolve a `Response`. This
48
48
  * is exactly the shape {@link createRouter} (in `@superbee/server`) returns,
@@ -75,20 +75,7 @@ export interface RemoteBackendOptions {
75
75
  */
76
76
  maxRetries?: number;
77
77
  }
78
- /**
79
- * A non-2xx wire response that is neither a `404` (ENOENT-shaped) nor a `412`
80
- * ({@link VersionConflict}) — the generic case, carrying the error envelope's `code` alongside
81
- * the raw HTTP `status`, so a caller can distinguish e.g.
82
- * `AUTH_REQUIRED` (401, an unauthenticated/misconfigured `--remote`) from `RUNTIME` (5xx, a
83
- * genuine server-side bug) instead of both collapsing into a generically-classified `Error`.
84
- */
85
- export declare class RemoteError extends Error {
86
- /** The envelope's `code` field, or a status-derived guess when the envelope is missing/unparseable. */
87
- readonly code: string;
88
- /** The raw HTTP status that produced this error. */
89
- readonly status: number;
90
- constructor(message: string, code: string, status: number, cause?: unknown);
91
- }
78
+ export { RemoteError } from "./remote-error.js";
92
79
  /** The deployment-scoped capability booleans a wire authority reports (`docs/WIRE-PROTOCOL.md`). */
93
80
  export interface WireCapabilities {
94
81
  history: boolean;
@@ -108,38 +95,6 @@ export interface HeadsOptions {
108
95
  /** A digest from an earlier `heads` or `snapshot` answer; the authority answers `304` when it still holds it. */
109
96
  ifNoneMatch?: string;
110
97
  }
111
- /** A `200` from `GET /heads`: every document id and version, and the digest over them. */
112
- export interface HeadsResult {
113
- digest: string;
114
- heads: DocumentHead[];
115
- }
116
- /** The snapshot's first line: how many documents follow and the digest `heads` would return for this state. */
117
- export interface SnapshotHeader {
118
- count: number;
119
- digest: string;
120
- }
121
- /** One `doc` line of a snapshot. */
122
- export interface SnapshotDocument {
123
- id: ConceptId;
124
- version: Version;
125
- frontmatter: Frontmatter;
126
- body: string;
127
- }
128
- /**
129
- * A snapshot as {@link RemoteBackend.snapshot} hands it over: the header, already parsed, and
130
- * the documents as they stream. Iterating `docs` to completion is the completeness signal: the
131
- * loop ends only after the `end` line arrived with the announced count and the digest recomputed
132
- * over the received `{ id, version }` rows equals the header's, and it throws
133
- * `SNAPSHOT_TRUNCATED` (the body ended or failed first) or `SNAPSHOT_DIGEST_MISMATCH` (the body
134
- * was whole but describes a state the header did not announce) otherwise, so a consumer that
135
- * writes batches as they arrive has one control path and never needs to inspect a terminator
136
- * or a digest itself. A consumer records the header digest as matched only after the loop
137
- * ended normally.
138
- */
139
- export interface RemoteSnapshot {
140
- header: SnapshotHeader;
141
- docs: AsyncIterable<SnapshotDocument>;
142
- }
143
98
  /**
144
99
  * The client half of the wire-protocol v0 contract: implements {@link StorageBackend}
145
100
  * over HTTP against a `@superbee/server` instance (or any conformant
@@ -176,10 +131,9 @@ export declare class RemoteBackend implements StorageBackend {
176
131
  * `200` is diffed against the caller's own copy: an id missing from `heads` was deleted, a
177
132
  * differing version changed. A `200` without a well-formed digest, whose `count` and rows
178
133
  * disagree, or whose rows digest by the documented recipe to something other than the served
179
- * digest, is rejected rather than trusted, as is a `304` to a request that sent no
180
- * `ifNoneMatch`. The recomputation is what stops a listing that is whole by its own count
181
- * but not the state its digest names (a shortened listing under the real digest) from being
182
- * diffed as a mass deletion. Not part of the {@link StorageBackend} seam.
134
+ * digest, is rejected rather than trusted ({@link parseHeadsAnswer} owns that admission), as
135
+ * is a `304` to a request that sent no `ifNoneMatch`. Not part of the {@link StorageBackend}
136
+ * seam.
183
137
  */
184
138
  heads(options?: HeadsOptions): Promise<HeadsResult | null>;
185
139
  /**
@@ -188,8 +142,9 @@ export declare class RemoteBackend implements StorageBackend {
188
142
  * the documents then stream through {@link RemoteSnapshot.docs}. Transient retry applies only
189
143
  * to obtaining the response: a body cut mid-stream is reported to the consumer as
190
144
  * `SNAPSHOT_TRUNCATED`, a whole body whose heads do not digest to the header's announcement as
191
- * `SNAPSHOT_DIGEST_MISMATCH`, and re-requesting is the consumer's decision. Reserved files are
192
- * not part of a snapshot. Not part of the {@link StorageBackend} seam.
145
+ * `SNAPSHOT_DIGEST_MISMATCH` ({@link readSnapshotStream} owns the grammar), and re-requesting
146
+ * is the consumer's decision. Reserved files are not part of a snapshot. Not part of the
147
+ * {@link StorageBackend} seam.
193
148
  */
194
149
  snapshot(): Promise<RemoteSnapshot>;
195
150
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"remote-backend.d.ts","sourceRoot":"","sources":["../src/remote-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-backend.d.ts","sourceRoot":"","sources":["../src/remote-backend.ts"],"names":[],"mappings":"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"}
@@ -42,29 +42,15 @@
42
42
  */
43
43
  import { DEFAULT_BLOB_CONTENT_TYPE } from "./content-type.js";
44
44
  import { InvalidInputError } from "./errors.js";
45
- import { headsDigest, isHeadsDigest } from "./heads-digest.js";
45
+ import { encodeRemoteDocument } from "./remote-document-codec.js";
46
+ import { RemoteError, malformed } from "./remote-error.js";
47
+ import { SNAPSHOT_TRUNCATED, parseHeadsAnswer, readSnapshotStream } from "./remote-parsers.js";
46
48
  import { assertSafeBlobKey, assertSafeConceptId, assertSafeReservedDir, assertSafeReservedFilename, compareStorageKeys } from "./paths.js";
47
49
  import { isRequestIdentity } from "./uncertain-write.js";
48
50
  import { VersionConflict, stripETagWrapper } from "./version-transport.js";
49
- /**
50
- * A non-2xx wire response that is neither a `404` (ENOENT-shaped) nor a `412`
51
- * ({@link VersionConflict}) — the generic case, carrying the error envelope's `code` alongside
52
- * the raw HTTP `status`, so a caller can distinguish e.g.
53
- * `AUTH_REQUIRED` (401, an unauthenticated/misconfigured `--remote`) from `RUNTIME` (5xx, a
54
- * genuine server-side bug) instead of both collapsing into a generically-classified `Error`.
55
- */
56
- export class RemoteError extends Error {
57
- /** The envelope's `code` field, or a status-derived guess when the envelope is missing/unparseable. */
58
- code;
59
- /** The raw HTTP status that produced this error. */
60
- status;
61
- constructor(message, code, status, cause) {
62
- super(message, cause === undefined ? undefined : { cause });
63
- this.name = "RemoteError";
64
- this.code = code;
65
- this.status = status;
66
- }
67
- }
51
+ // The typed rejection lives in `remote-error.ts`, shared with the heads and snapshot parsers this
52
+ // backend calls; it stays importable from here for every existing consumer.
53
+ export { RemoteError } from "./remote-error.js";
68
54
  /** An ENOENT-shaped rejection so missing-document handling matches the local adapters. */
69
55
  function notFound(id) {
70
56
  const err = new Error(`no concept document '${id}'`);
@@ -123,129 +109,10 @@ function assertRequestIdentity(requestId) {
123
109
  }
124
110
  /** The lookup route's `200` body: a recorded outcome, never `unknown`. */
125
111
  const RECORDED_OUTCOME_KINDS = new Set(["committed", "conflict", "refused"]);
126
- /** A snapshot body that ended, or failed, before its terminator arrived with the announced count. */
127
- const SNAPSHOT_TRUNCATED = "SNAPSHOT_TRUNCATED";
128
- /**
129
- * A snapshot whose body arrived whole, with its terminator and the announced count, but whose
130
- * rows digest to something other than the header announced. Not truncation: re-requesting will
131
- * not necessarily repair it, since the authority contradicted itself. A consumer discards the
132
- * documents' claim to the header digest either way.
133
- */
134
- const SNAPSHOT_DIGEST_MISMATCH = "SNAPSHOT_DIGEST_MISMATCH";
135
- function isDocumentHead(value) {
136
- if (typeof value !== "object" || value === null)
137
- return false;
138
- const head = value;
139
- return typeof head.id === "string" && typeof head.version === "string";
140
- }
141
- /** A wire payload the authority produced but the contract does not admit: not retried, not truncation. */
142
- function malformed(message) {
143
- return new RemoteError(message, "RUNTIME", 502);
144
- }
145
112
  /** Quote a bare digest for `If-None-Match`; an already quoted or weak form passes through. */
146
113
  function etagForm(token) {
147
114
  return token.startsWith('"') || token.startsWith("W/") ? token : `"${token}"`;
148
115
  }
149
- /**
150
- * Split a response body into its NDJSON lines as they arrive, decoding UTF-8 across chunk
151
- * boundaries. Only `TextDecoder` and the Web Streams reader are used, so the same code runs in a
152
- * browser. A partial trailing line at the end of the body is a cut line and is not yielded; a
153
- * transport failure while reading is reported as truncation, since either way the terminator
154
- * never arrived. Leaving the loop early cancels the reader so the connection is released.
155
- */
156
- async function* ndjsonLines(body, status) {
157
- const reader = body.getReader();
158
- const decoder = new TextDecoder();
159
- let buffered = "";
160
- try {
161
- for (;;) {
162
- let chunk;
163
- try {
164
- chunk = await reader.read();
165
- }
166
- catch (cause) {
167
- throw new RemoteError("snapshot body failed before its end line arrived", SNAPSHOT_TRUNCATED, status, cause);
168
- }
169
- buffered += decoder.decode(chunk.value, { stream: !chunk.done });
170
- let start = 0;
171
- for (let newline = buffered.indexOf("\n"); newline !== -1; newline = buffered.indexOf("\n", start)) {
172
- yield buffered.slice(start, newline);
173
- start = newline + 1;
174
- }
175
- buffered = buffered.slice(start);
176
- if (chunk.done)
177
- return;
178
- }
179
- }
180
- finally {
181
- await reader.cancel().catch(() => undefined);
182
- }
183
- }
184
- function parseSnapshotLine(line) {
185
- let record;
186
- try {
187
- record = JSON.parse(line);
188
- }
189
- catch {
190
- throw malformed("snapshot line is not JSON");
191
- }
192
- if (typeof record !== "object" || record === null)
193
- throw malformed("snapshot line is not a JSON object");
194
- return record;
195
- }
196
- function parseSnapshotHeader(line) {
197
- const record = parseSnapshotLine(line);
198
- if (record.kind !== "snapshot")
199
- throw malformed("snapshot did not begin with its header line");
200
- if (typeof record.count !== "number" || !Number.isInteger(record.count) || record.count < 0) {
201
- throw malformed("snapshot header carries no document count");
202
- }
203
- if (!isHeadsDigest(record.digest))
204
- throw malformed("snapshot header carries no well-formed digest");
205
- return { count: record.count, digest: record.digest };
206
- }
207
- /**
208
- * The document lines of a snapshot, ending normally only at an `end` line whose count equals
209
- * both the header's announcement and the documents actually seen, and only when the digest
210
- * recomputed over the received heads equals the header's. Anything else is a rejection: a body
211
- * that ends first is `SNAPSHOT_TRUNCATED`; a whole body whose heads digest differently is
212
- * `SNAPSHOT_DIGEST_MISMATCH`; a line the contract does not admit is malformed. The digest is the
213
- * client's own check of the listing it is about to trust: a count and a terminator say the body
214
- * is whole, only the recipe says it is the state the header named.
215
- */
216
- async function* snapshotDocuments(lines, header, status) {
217
- let seen = 0;
218
- const received = [];
219
- for await (const line of lines) {
220
- const record = parseSnapshotLine(line);
221
- if (record.kind === "doc") {
222
- if (typeof record.id !== "string" || typeof record.version !== "string" || typeof record.body !== "string") {
223
- throw malformed("snapshot doc line lacks id, version, or body");
224
- }
225
- if (typeof record.frontmatter !== "object" || record.frontmatter === null || Array.isArray(record.frontmatter)) {
226
- throw malformed("snapshot doc line lacks a frontmatter object");
227
- }
228
- seen += 1;
229
- if (seen > header.count)
230
- throw malformed(`snapshot delivered more than the ${header.count} announced document(s)`);
231
- received.push({ id: record.id, version: record.version });
232
- yield { id: record.id, version: record.version, frontmatter: record.frontmatter, body: record.body };
233
- continue;
234
- }
235
- if (record.kind === "end") {
236
- if (record.count !== seen || seen !== header.count) {
237
- throw new RemoteError(`snapshot end line counts ${String(record.count)} document(s), but ${seen} of ${header.count} announced arrived`, SNAPSHOT_TRUNCATED, status);
238
- }
239
- const recomputed = headsDigest(received);
240
- if (recomputed !== header.digest) {
241
- throw new RemoteError(`snapshot header announced digest ${header.digest}, but its ${seen} document(s) digest to ${recomputed}`, SNAPSHOT_DIGEST_MISMATCH, status);
242
- }
243
- return;
244
- }
245
- throw malformed(`snapshot line has unexpected kind ${JSON.stringify(record.kind)}`);
246
- }
247
- throw new RemoteError(`snapshot ended after ${seen} of ${header.count} document(s) without its end line`, SNAPSHOT_TRUNCATED, status);
248
- }
249
116
  /**
250
117
  * Transient HTTP statuses worth retrying: 500 (a Cloudflare D1 cold-start surfaces as a 500
251
118
  * "storage caused object to be reset" the first time a hibernated database is hit), plus the edge
@@ -440,7 +307,7 @@ export class RemoteBackend {
440
307
  const res = await this.send(`/docs/${encodeId(id)}`, {
441
308
  method: "PUT",
442
309
  headers,
443
- body: JSON.stringify({ frontmatter: doc.frontmatter, body: doc.body ?? "" }),
310
+ body: encodeRemoteDocument(doc.frontmatter, doc.body ?? ""),
444
311
  });
445
312
  if (!res.ok)
446
313
  throw await this.toError(res, id);
@@ -477,10 +344,9 @@ export class RemoteBackend {
477
344
  * `200` is diffed against the caller's own copy: an id missing from `heads` was deleted, a
478
345
  * differing version changed. A `200` without a well-formed digest, whose `count` and rows
479
346
  * disagree, or whose rows digest by the documented recipe to something other than the served
480
- * digest, is rejected rather than trusted, as is a `304` to a request that sent no
481
- * `ifNoneMatch`. The recomputation is what stops a listing that is whole by its own count
482
- * but not the state its digest names (a shortened listing under the real digest) from being
483
- * diffed as a mass deletion. Not part of the {@link StorageBackend} seam.
347
+ * digest, is rejected rather than trusted ({@link parseHeadsAnswer} owns that admission), as
348
+ * is a `304` to a request that sent no `ifNoneMatch`. Not part of the {@link StorageBackend}
349
+ * seam.
484
350
  */
485
351
  async heads(options = {}) {
486
352
  const headers = {};
@@ -496,21 +362,7 @@ export class RemoteBackend {
496
362
  }
497
363
  if (!res.ok)
498
364
  throw await this.toError(res, "heads");
499
- const payload = (await res.json());
500
- if (!isHeadsDigest(payload?.digest))
501
- throw malformed("wire heads answered without a well-formed digest");
502
- if (!Array.isArray(payload.heads) || !payload.heads.every(isDocumentHead)) {
503
- throw malformed("wire heads answered without a heads array of { id, version } rows");
504
- }
505
- if (payload.count !== payload.heads.length) {
506
- throw malformed(`wire heads count ${String(payload.count)} disagrees with its ${payload.heads.length} row(s)`);
507
- }
508
- const heads = payload.heads.map(({ id, version }) => ({ id, version }));
509
- const recomputed = headsDigest(heads);
510
- if (recomputed !== payload.digest) {
511
- throw malformed(`wire heads served digest ${payload.digest}, but its ${heads.length} row(s) digest to ${recomputed}`);
512
- }
513
- return { digest: payload.digest, heads };
365
+ return parseHeadsAnswer(await res.json());
514
366
  }
515
367
  /**
516
368
  * `GET /snapshot`: the whole bundle in one response. The header line is parsed before this
@@ -518,8 +370,9 @@ export class RemoteBackend {
518
370
  * the documents then stream through {@link RemoteSnapshot.docs}. Transient retry applies only
519
371
  * to obtaining the response: a body cut mid-stream is reported to the consumer as
520
372
  * `SNAPSHOT_TRUNCATED`, a whole body whose heads do not digest to the header's announcement as
521
- * `SNAPSHOT_DIGEST_MISMATCH`, and re-requesting is the consumer's decision. Reserved files are
522
- * not part of a snapshot. Not part of the {@link StorageBackend} seam.
373
+ * `SNAPSHOT_DIGEST_MISMATCH` ({@link readSnapshotStream} owns the grammar), and re-requesting
374
+ * is the consumer's decision. Reserved files are not part of a snapshot. Not part of the
375
+ * {@link StorageBackend} seam.
523
376
  */
524
377
  async snapshot() {
525
378
  const res = await this.send("/snapshot", { method: "GET" });
@@ -527,19 +380,7 @@ export class RemoteBackend {
527
380
  throw await this.toError(res, "snapshot");
528
381
  if (!res.body)
529
382
  throw new RemoteError("snapshot response carried no body", SNAPSHOT_TRUNCATED, res.status);
530
- const lines = ndjsonLines(res.body, res.status);
531
- const first = await lines.next();
532
- if (first.done)
533
- throw new RemoteError("snapshot ended before its header line", SNAPSHOT_TRUNCATED, res.status);
534
- let header;
535
- try {
536
- header = parseSnapshotHeader(first.value);
537
- }
538
- catch (err) {
539
- await lines.return(undefined);
540
- throw err;
541
- }
542
- return { header, docs: snapshotDocuments(lines, header, res.status) };
383
+ return readSnapshotStream(res.body, { status: res.status });
543
384
  }
544
385
  /**
545
386
  * `GET /operations/{requestId}`: the authority's recorded outcome for an identified write, or
@@ -1 +1 @@
1
- {"version":3,"file":"remote-backend.js","sourceRoot":"","sources":["../src/remote-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAqB,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC3I,OAAO,EAAE,iBAAiB,EAAgB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA8D3E;;;;;;GAMG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,uGAAuG;IAC9F,IAAI,CAAS;IACtB,oDAAoD;IAC3C,MAAM,CAAS;IAExB,YAAY,OAAe,EAAE,IAAY,EAAE,MAAc,EAAE,KAAe;QACxE,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AA2DD,0FAA0F;AAC1F,SAAS,QAAQ,CAAC,EAAU;IAC1B,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAA0B,CAAC;IAC9E,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;IACpB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,GAAa,EAAE,OAAe;IACpD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,IAAI;QAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,WAAW,CACnB,qBAAqB,OAAO,iEAAiE;QAC3F,yFAAyF;QACzF,uFAAuF;QACvF,2BAA2B,EAC7B,iBAAiB,EACjB,GAAG,CAAC,MAAM,CACX,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,0BAA0B,CAAC,eAAgD;IAClF,IAAI,eAAe,KAAK,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,iBAAiB,CACzB,gFAAgF;YAC9E,2EAA2E,CAC9E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,iBAAiB,CACzB,kGAAkG,CACnG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAE7E,qGAAqG;AACrG,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD;;;;;GAKG;AACH,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AAE5D,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,IAAI,GAAG,KAA4C,CAAC;IAC1D,OAAO,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC;AACzE,CAAC;AAED,0GAA0G;AAC1G,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,8FAA8F;AAC9F,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;AAChF,CAAC;AAED;;;;;;GAMG;AACH,KAAK,SAAS,CAAC,CAAC,WAAW,CAAC,IAAgC,EAAE,MAAc;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,SAAS,CAAC;YACR,IAAI,KAA8C,CAAC;YACnD,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,WAAW,CAAC,kDAAkD,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC/G,CAAC;YACD,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;gBACnG,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACrC,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,KAAK,CAAC,IAAI;gBAAE,OAAO;QACzB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,SAAS,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,MAAM,SAAS,CAAC,oCAAoC,CAAC,CAAC;IACzG,OAAO,MAAsD,CAAC;AAChE,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;QAAE,MAAM,SAAS,CAAC,6CAA6C,CAAC,CAAC;IAC/F,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC5F,MAAM,SAAS,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,MAAM,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACpG,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACxD,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,SAAS,CAAC,CAAC,iBAAiB,CAAC,KAA6B,EAAE,MAAsB,EAAE,MAAc;IACrG,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3G,MAAM,SAAS,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/G,MAAM,SAAS,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,IAAI,CAAC,CAAC;YACV,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK;gBAAE,MAAM,SAAS,CAAC,oCAAoC,MAAM,CAAC,KAAK,wBAAwB,CAAC,CAAC;YACnH,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,WAA0B,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YACpH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;gBACnD,MAAM,IAAI,WAAW,CACnB,4BAA4B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,OAAO,MAAM,CAAC,KAAK,oBAAoB,EAChH,kBAAkB,EAClB,MAAM,CACP,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM,IAAI,WAAW,CACnB,oCAAoC,MAAM,CAAC,MAAM,aAAa,IAAI,0BAA0B,UAAU,EAAE,EACxG,wBAAwB,EACxB,MAAM,CACP,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,SAAS,CAAC,qCAAqC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,WAAW,CACnB,wBAAwB,IAAI,OAAO,MAAM,CAAC,KAAK,mCAAmC,EAClF,kBAAkB,EAClB,MAAM,CACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEvD,uGAAuG;AACvG,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,wFAAwF;AACxF,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;IACrE,OAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC;AAC/D,CAAC;AAED,uCAAuC;AACvC,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,8FAA8F;AAC9F,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,6FAA6F;AAC7F,SAAS,QAAQ,CAAC,EAAa;IAC7B,OAAO,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;SACrC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,2FAA2F;AAC3F,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;SACrC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACP,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,SAAS,CAAY;IACrB,SAAS,CAAU;IACnB,UAAU,CAAS;IAEpC,YAAY,OAA6B;QACvC,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,wEAAwE;IACxE,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,wFAAwF;IAChF,GAAG,CAAC,kBAA0B;QACpC,OAAO,GAAG,IAAI,CAAC,OAAO,eAAe,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,kBAAkB,EAAE,CAAC;IAC9F,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAAoB,EAAE,EAAE,QAAiC,QAAQ;QAChG,wFAAwF;QACxF,sFAAsF;QACtF,sFAAsF;QACtF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACzD,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;QAC9B,CAAC;QACD,yEAAyE;QACzE,MAAM,GAAG,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QAC3E,gGAAgG;QAChG,8FAA8F;QAC9F,iGAAiG;QACjG,+FAA+F;QAC/F,gGAAgG;QAChG,2FAA2F;QAC3F,2FAA2F;QAC3F,8FAA8F;QAC9F,2DAA2D;QAC3D,EAAE;QACF,4FAA4F;QAC5F,4FAA4F;QAC5F,+FAA+F;QAC/F,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBACzD,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClE,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnC,SAAS;gBACX,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC9B,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnC,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,OAAO,CAAC,GAAa,EAAE,UAAkB;QACrD,IAAI,QAAQ,GAAyB,IAAI,CAAC;QAC1C,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkB,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;YAC5D,MAAM,MAAM,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;YACxD,OAAO,IAAI,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,IAAI,mCAAmC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC5F,wFAAwF;QACxF,uFAAuF;QACvF,+CAA+C;QAC/C,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvH,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAa;QACtB,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqD,CAAC;QACvF,2FAA2F;QAC3F,6FAA6F;QAC7F,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAgB;QAC7B,KAAK,MAAM,EAAE,IAAI,GAAG;YAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,IAAI,OAAO,GAAa,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkB,CAAC;gBACrD,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;YAC9C,CAAC;YACD,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAEhC,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,WAAW,CACnB,2BAA2B,OAAO,CAAC,OAAO,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAM,kBAAkB,EAC/F,SAAS,EACT,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACxC,2FAA2F;YAC3F,2EAA2E;YAC3E,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAClE,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,EAAa,EAAE,GAAgB,EAAE,UAAwB,EAAE;QACrE,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;aAChE,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;QAC9F,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QACtD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QAC/C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;YACnD,MAAM,EAAE,KAAK;YACb,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;SAC7E,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqD,CAAC;QACvF,MAAM,IAAI,GAAG,CAAC,IAA4B,EAAW,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;QACjF,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;YACxB,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;YAChC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;YAC5B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;YACpB,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;YACpB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;SAC3B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CAAC,UAAwB,EAAE;QACpC,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChG,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAClE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,oFAAoF;YACpF,6FAA6F;YAC7F,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;gBAAE,MAAM,SAAS,CAAC,iEAAiE,CAAC,CAAC;YAC1H,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkE,CAAC;QACpG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC;YAAE,MAAM,SAAS,CAAC,kDAAkD,CAAC,CAAC;QACzG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1E,MAAM,SAAS,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,SAAS,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,OAAO,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;QACjH,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,UAAU,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,SAAS,CAAC,4BAA4B,OAAO,CAAC,MAAM,aAAa,KAAK,CAAC,MAAM,qBAAqB,UAAU,EAAE,CAAC,CAAC;QACxH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,mCAAmC,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1G,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,uCAAuC,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/G,IAAI,MAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9B,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;QACzD,IAAI,OAAO,OAAO,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,WAAW,CAAC,oBAAoB,SAAS,gCAAgC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACvG,CAAC;QACD,OAAO,OAAkB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAa;QACxB,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,QAAQ,CACpB,UAA2B,EAC3B,MAAmF,EACnF,YAAoB;QAEpB,MAAM,IAAI,GAAU,EAAE,CAAC;QACvB,IAAI,MAA0B,CAAC;QAC/B,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAGhC,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,CAAC,WAAW;gBAAE,MAAM;YAChC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAe;QACxB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/F,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,UAAU,CAAC,SAAsB,EAAE;QACvC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,QAAQ,CAClB,MAAM,EACN,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAC7E,MAAM,CAAC,MAAM,IAAI,EAAE,CACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAa;QAC1B,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,yFAAyF;QACzF,yFAAyF;QACzF,8EAA8E;QAC9E,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAEhC,CAAC;QACF,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,CAAC,CAAC,KAAK,KAAK,SAAS;YACnB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE;YAChE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CACnF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,IAAsB;QACpD,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC3B,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwB,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,GAAW,EACX,IAAsB,EACtB,OAAe,EACf,UAAwB,EAAE;QAE1B,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC3B,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;aAChE,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;QAC9F,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAEtD,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE,EAAE,EAAE;YACpD,MAAM,EAAE,KAAK;YACb,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,EAAa,EAAE,UAAyB,EAAE;QACrD,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;QACzF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QAC/C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,gFAAgF;IAChF,EAAE;IACF,+EAA+E;IAC/E,mFAAmF;IACnF,oFAAoF;IACpF,4FAA4F;IAC5F,qBAAqB;IAErB,KAAK,CAAC,QAAQ,CAAC,GAAY;QACzB,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/E,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,EAAE,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,yBAAyB,CAAC;QACjF,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CACb,GAAY,EACZ,KAAiB,EACjB,WAAoB,EACpB,UAAwB,EAAE;QAE1B,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,WAAW;YAAE,OAAO,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;QACvD,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;aAChE,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;QAC9F,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAEtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;YAC1D,MAAM,EAAE,KAAK;YACb,OAAO;YACP,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,8FAA8F;IAC9F,KAAK,CAAC,UAAU,CAAC,GAAY,EAAE,UAAyB,EAAE;QACxD,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;QAEzF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAY;QAC3B,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAChF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAe;QAC7B,MAAM,IAAI,GAAc,EAAE,CAAC;QAC3B,IAAI,MAA0B,CAAC;QAC/B,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoD,CAAC;YACtF,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,WAAW;gBAAE,MAAM;YAChC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"remote-backend.js","sourceRoot":"","sources":["../src/remote-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAyC,MAAM,qBAAqB,CAAC;AACtI,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC3I,OAAO,EAAE,iBAAiB,EAAgB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA8D3E,kGAAkG;AAClG,4EAA4E;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAuBhD,0FAA0F;AAC1F,SAAS,QAAQ,CAAC,EAAU;IAC1B,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAA0B,CAAC;IAC9E,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;IACpB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,GAAa,EAAE,OAAe;IACpD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,IAAI;QAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,WAAW,CACnB,qBAAqB,OAAO,iEAAiE;QAC3F,yFAAyF;QACzF,uFAAuF;QACvF,2BAA2B,EAC7B,iBAAiB,EACjB,GAAG,CAAC,MAAM,CACX,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,0BAA0B,CAAC,eAAgD;IAClF,IAAI,eAAe,KAAK,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,iBAAiB,CACzB,gFAAgF;YAC9E,2EAA2E,CAC9E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,iBAAiB,CACzB,kGAAkG,CACnG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAE7E,8FAA8F;AAC9F,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;AAChF,CAAC;AAED;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEvD,uGAAuG;AACvG,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,wFAAwF;AACxF,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;IACrE,OAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC;AAC/D,CAAC;AAED,uCAAuC;AACvC,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,8FAA8F;AAC9F,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,6FAA6F;AAC7F,SAAS,QAAQ,CAAC,EAAa;IAC7B,OAAO,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;SACrC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,2FAA2F;AAC3F,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;SACrC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACP,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,SAAS,CAAY;IACrB,SAAS,CAAU;IACnB,UAAU,CAAS;IAEpC,YAAY,OAA6B;QACvC,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,wEAAwE;IACxE,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,wFAAwF;IAChF,GAAG,CAAC,kBAA0B;QACpC,OAAO,GAAG,IAAI,CAAC,OAAO,eAAe,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,kBAAkB,EAAE,CAAC;IAC9F,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAAoB,EAAE,EAAE,QAAiC,QAAQ;QAChG,wFAAwF;QACxF,sFAAsF;QACtF,sFAAsF;QACtF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACzD,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;QAC9B,CAAC;QACD,yEAAyE;QACzE,MAAM,GAAG,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QAC3E,gGAAgG;QAChG,8FAA8F;QAC9F,iGAAiG;QACjG,+FAA+F;QAC/F,gGAAgG;QAChG,2FAA2F;QAC3F,2FAA2F;QAC3F,8FAA8F;QAC9F,2DAA2D;QAC3D,EAAE;QACF,4FAA4F;QAC5F,4FAA4F;QAC5F,+FAA+F;QAC/F,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBACzD,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClE,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnC,SAAS;gBACX,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC9B,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnC,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,OAAO,CAAC,GAAa,EAAE,UAAkB;QACrD,IAAI,QAAQ,GAAyB,IAAI,CAAC;QAC1C,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkB,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;YAC5D,MAAM,MAAM,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;YACxD,OAAO,IAAI,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,IAAI,mCAAmC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC5F,wFAAwF;QACxF,uFAAuF;QACvF,+CAA+C;QAC/C,MAAM,IAAI,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvH,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAa;QACtB,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqD,CAAC;QACvF,2FAA2F;QAC3F,6FAA6F;QAC7F,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAgB;QAC7B,KAAK,MAAM,EAAE,IAAI,GAAG;YAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,IAAI,OAAO,GAAa,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkB,CAAC;gBACrD,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;YAC9C,CAAC;YACD,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAEhC,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,WAAW,CACnB,2BAA2B,OAAO,CAAC,OAAO,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAM,kBAAkB,EAC/F,SAAS,EACT,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACxC,2FAA2F;YAC3F,2EAA2E;YAC3E,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAClE,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,EAAa,EAAE,GAAgB,EAAE,UAAwB,EAAE;QACrE,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;aAChE,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;QAC9F,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QACtD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QAC/C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;YACnD,MAAM,EAAE,KAAK;YACb,OAAO;YACP,IAAI,EAAE,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;SAC5D,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqD,CAAC;QACvF,MAAM,IAAI,GAAG,CAAC,IAA4B,EAAW,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;QACjF,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;YACxB,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;YAChC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;YAC5B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;YACpB,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;YACpB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;SAC3B,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CAAC,UAAwB,EAAE;QACpC,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChG,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAClE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,oFAAoF;YACpF,6FAA6F;YAC7F,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;gBAAE,MAAM,SAAS,CAAC,iEAAiE,CAAC,CAAC;YAC1H,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,mCAAmC,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1G,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;QACzD,IAAI,OAAO,OAAO,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,WAAW,CAAC,oBAAoB,SAAS,gCAAgC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACvG,CAAC;QACD,OAAO,OAAkB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAa;QACxB,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,QAAQ,CACpB,UAA2B,EAC3B,MAAmF,EACnF,YAAoB;QAEpB,MAAM,IAAI,GAAU,EAAE,CAAC;QACvB,IAAI,MAA0B,CAAC;QAC/B,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAGhC,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,CAAC,WAAW;gBAAE,MAAM;YAChC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAe;QACxB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/F,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,UAAU,CAAC,SAAsB,EAAE;QACvC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,QAAQ,CAClB,MAAM,EACN,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAC7E,MAAM,CAAC,MAAM,IAAI,EAAE,CACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAa;QAC1B,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,yFAAyF;QACzF,yFAAyF;QACzF,8EAA8E;QAC9E,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAEhC,CAAC;QACF,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,CAAC,CAAC,KAAK,KAAK,SAAS;YACnB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE;YAChE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CACnF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,IAAsB;QACpD,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC3B,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwB,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,GAAW,EACX,IAAsB,EACtB,OAAe,EACf,UAAwB,EAAE;QAE1B,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC3B,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;aAChE,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;QAC9F,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAEtD,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE,EAAE,EAAE;YACpD,MAAM,EAAE,KAAK;YACb,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,EAAa,EAAE,UAAyB,EAAE;QACrD,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;QACzF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QAC/C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,gFAAgF;IAChF,EAAE;IACF,+EAA+E;IAC/E,mFAAmF;IACnF,oFAAoF;IACpF,4FAA4F;IAC5F,qBAAqB;IAErB,KAAK,CAAC,QAAQ,CAAC,GAAY;QACzB,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/E,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,EAAE,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,yBAAyB,CAAC;QACjF,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CACb,GAAY,EACZ,KAAiB,EACjB,WAAoB,EACpB,UAAwB,EAAE;QAE1B,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,WAAW;YAAE,OAAO,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;QACvD,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;aAChE,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;QAC9F,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAEtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;YAC1D,MAAM,EAAE,KAAK;YACb,OAAO;YACP,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,8FAA8F;IAC9F,KAAK,CAAC,UAAU,CAAC,GAAY,EAAE,UAAyB,EAAE;QACxD,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;QAEzF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QAC3D,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAY;QAC3B,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAChF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAe;QAC7B,MAAM,IAAI,GAAc,EAAE,CAAC;QAC3B,IAAI,MAA0B,CAAC;QAC/B,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoD,CAAC;YACtF,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,WAAW;gBAAE,MAAM;YAChC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvC,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import { InvalidInputError } from "./errors.js";
2
+ /** Metadata cannot be represented by the JSON document transport without loss. */
3
+ export declare class RemoteDocumentValueError extends InvalidInputError {
4
+ readonly path: string;
5
+ constructor(path: string, reason: string);
6
+ }
7
+ type JsonValue = null | string | boolean | number | JsonValue[] | {
8
+ [key: string]: JsonValue;
9
+ };
10
+ /** Capture the wire value once, without invoking accessors or custom serialization hooks. */
11
+ export declare function captureRemoteFrontmatter(frontmatter: unknown): JsonValue;
12
+ /** Encode only the captured value, never the caller's live metadata a second time. */
13
+ export declare function encodeRemoteDocument(frontmatter: unknown, body: string): string;
14
+ export {};
15
+ //# sourceMappingURL=remote-document-codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-document-codec.d.ts","sourceRoot":"","sources":["../src/remote-document-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,kFAAkF;AAClF,qBAAa,wBAAyB,SAAQ,iBAAiB;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAKzC;AAED,KAAK,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE/F,6FAA6F;AAC7F,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,CAuExE;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/E"}
@@ -0,0 +1,103 @@
1
+ import { InvalidInputError } from "./errors.js";
2
+ /** Metadata cannot be represented by the JSON document transport without loss. */
3
+ export class RemoteDocumentValueError extends InvalidInputError {
4
+ path;
5
+ constructor(path, reason) {
6
+ super(`Remote document ${path}: ${reason}. Supply JSON-compatible metadata explicitly.`);
7
+ this.name = "RemoteDocumentValueError";
8
+ this.path = path;
9
+ }
10
+ }
11
+ /** Capture the wire value once, without invoking accessors or custom serialization hooks. */
12
+ export function captureRemoteFrontmatter(frontmatter) {
13
+ const ancestors = new Set();
14
+ const refuse = (path, reason) => { throw new RemoteDocumentValueError(path, reason); };
15
+ const visit = (value, path, depth) => {
16
+ if (depth > 512)
17
+ return refuse(path, "metadata nesting exceeds the supported depth");
18
+ if (value === null || typeof value === "string" || typeof value === "boolean")
19
+ return value;
20
+ if (typeof value === "number") {
21
+ if (!Number.isFinite(value) || Object.is(value, -0))
22
+ return refuse(path, "number would change during JSON encoding");
23
+ return value;
24
+ }
25
+ if (typeof value !== "object")
26
+ return refuse(path, `${typeof value} is not a JSON value`);
27
+ if (ancestors.has(value))
28
+ return refuse(path, "cyclic metadata cannot be represented in JSON");
29
+ const prototype = Object.getPrototypeOf(value);
30
+ const descriptors = Object.getOwnPropertyDescriptors(value);
31
+ const hook = descriptors.toJSON;
32
+ if (hook && (!("value" in hook) || typeof hook.value === "function")) {
33
+ return refuse(`${path}["toJSON"]`, "custom serialization hooks are not supported");
34
+ }
35
+ for (const key of Reflect.ownKeys(descriptors)) {
36
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
37
+ if (typeof key === "symbol" && descriptor.enumerable)
38
+ return refuse(path, "enumerable symbol keys would be omitted");
39
+ }
40
+ if (prototype === Date.prototype) {
41
+ if (Object.values(descriptors).some(descriptor => descriptor.enumerable))
42
+ return refuse(path, "Date properties would be omitted");
43
+ let instant;
44
+ try {
45
+ instant = Date.prototype.getTime.call(value);
46
+ }
47
+ catch {
48
+ return refuse(path, "object has no Date value");
49
+ }
50
+ if (!Number.isFinite(instant))
51
+ return refuse(path, "invalid Date would become null");
52
+ return Date.prototype.toISOString.call(value);
53
+ }
54
+ const array = Array.isArray(value);
55
+ if (array ? prototype !== Array.prototype && prototype !== null : prototype !== Object.prototype && prototype !== null) {
56
+ return refuse(path, "only plain records, arrays, and valid Dates are supported");
57
+ }
58
+ ancestors.add(value);
59
+ try {
60
+ if (array) {
61
+ const length = value.length;
62
+ const result = [];
63
+ // Keep prototype serialization hooks out of the captured payload as well.
64
+ Object.setPrototypeOf(result, null);
65
+ for (const key of Object.keys(descriptors)) {
66
+ if (descriptors[key].enumerable && !(String(Number(key)) === key && Number.isInteger(Number(key)) && Number(key) >= 0 && Number(key) < length)) {
67
+ return refuse(`${path}[${JSON.stringify(key)}]`, "extra array properties would be omitted");
68
+ }
69
+ }
70
+ for (let index = 0; index < length; index++) {
71
+ const descriptor = descriptors[String(index)];
72
+ if (!descriptor)
73
+ return refuse(`${path}[${index}]`, "array holes would become null");
74
+ if (!("value" in descriptor))
75
+ return refuse(`${path}[${index}]`, "accessors are not supported");
76
+ result[index] = visit(descriptor.value, `${path}[${index}]`, depth + 1);
77
+ }
78
+ return result;
79
+ }
80
+ const result = Object.create(null);
81
+ for (const key of Object.keys(descriptors)) {
82
+ const descriptor = descriptors[key];
83
+ if (!descriptor.enumerable)
84
+ continue;
85
+ const field = `${path}[${JSON.stringify(key)}]`;
86
+ if (!("value" in descriptor))
87
+ return refuse(field, "accessors are not supported");
88
+ result[key] = visit(descriptor.value, field, depth + 1);
89
+ }
90
+ return result;
91
+ }
92
+ finally {
93
+ ancestors.delete(value);
94
+ }
95
+ };
96
+ return visit(frontmatter, "frontmatter", 0);
97
+ }
98
+ /** Encode only the captured value, never the caller's live metadata a second time. */
99
+ export function encodeRemoteDocument(frontmatter, body) {
100
+ const payload = Object.assign(Object.create(null), { frontmatter: captureRemoteFrontmatter(frontmatter), body });
101
+ return JSON.stringify(payload);
102
+ }
103
+ //# sourceMappingURL=remote-document-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-document-codec.js","sourceRoot":"","sources":["../src/remote-document-codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The typed rejection of the wire client, shared by {@link RemoteBackend} and the heads and
3
+ * snapshot parsers in `remote-parsers.ts`, which the backend calls; a module of its own so the
4
+ * two need no import cycle. Runtime-neutral: nothing from Node.
5
+ */
6
+ /**
7
+ * A non-2xx wire response that is neither a `404` (ENOENT-shaped) nor a `412`
8
+ * ({@link VersionConflict}): the generic case, carrying the error envelope's `code` alongside
9
+ * the raw HTTP `status`, so a caller can distinguish e.g.
10
+ * `AUTH_REQUIRED` (401, an unauthenticated/misconfigured `--remote`) from `RUNTIME` (5xx, a
11
+ * genuine server-side bug) instead of both collapsing into a generically-classified `Error`.
12
+ */
13
+ export declare class RemoteError extends Error {
14
+ /** The envelope's `code` field, or a status-derived guess when the envelope is missing/unparseable. */
15
+ readonly code: string;
16
+ /** The raw HTTP status that produced this error. */
17
+ readonly status: number;
18
+ constructor(message: string, code: string, status: number, cause?: unknown);
19
+ }
20
+ /** A wire payload the authority produced but the contract does not admit: not retried, not truncation. */
21
+ export declare function malformed(message: string): RemoteError;
22
+ //# sourceMappingURL=remote-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-error.d.ts","sourceRoot":"","sources":["../src/remote-error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,uGAAuG;IACvG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAM3E;AAED,0GAA0G;AAC1G,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAEtD"}