@cello-protocol/daemon 0.0.151 → 0.0.152

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.
@@ -1 +1 @@
1
- {"version":3,"file":"document-handlers.d.ts","sourceRoot":"","sources":["../src/document-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAmBH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAQxE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB,qFAAqF;IACrF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,CAAC;IAC3D,uFAAuF;IACvF,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrE,mFAAmF;IACnF,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C,+BAA+B;IAC/B,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9D,GAAG,IAAI,MAAM,CAAC;CACf;AAOD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAmnCxE"}
1
+ {"version":3,"file":"document-handlers.d.ts","sourceRoot":"","sources":["../src/document-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAmBH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAUxE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB,qFAAqF;IACrF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,CAAC;IAC3D,uFAAuF;IACvF,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrE,mFAAmF;IACnF,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C,+BAA+B;IAC/B,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9D,GAAG,IAAI,MAAM,CAAC;CACf;AAOD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAorCxE"}
@@ -27,6 +27,8 @@ import { randomBytes, randomUUID } from "node:crypto";
27
27
  import * as Y from "yjs";
28
28
  import { encodeDocumentProposal, buildDocumentProposalTbs, documentIdFromProposal, seamViolation, ASSURANCE_TIER_V1, TOPOLOGY_V1, DOCUMENT_FEATURE_VERSION, encodeDocumentProposalAck, buildDocumentProposalAckTbs, DOCUMENT_PROPOSAL_ACK_VERSION, MAX_PROPOSAL_REFUSAL_REASON_LENGTH, } from "@cello-protocol/protocol-types";
29
29
  import { lineHunks, isSupportedDocumentType, SUPPORTED_DOCUMENT_TYPES } from "./document-write-path.js";
30
+ import { openingNoticeFor, rootForDocumentType } from "./document-types.js";
31
+ import { projectDocumentText, parseJsonDocument, jsonKeyOperations } from "./document-json.js";
30
32
  import { profileViolation } from "./document-profile.js";
31
33
  import { screenText, SCREEN_RULE_ID } from "./document-screen.js";
32
34
  /** Document types the notification/diff path understands. Anything else is stored, not diffed. */
@@ -208,7 +210,26 @@ export function registerDocumentHandlers(deps) {
208
210
  // state, so the same proposal sent twice would produce different bytes and a different
209
211
  // document_id — and the id is meant to be a function of what was proposed.
210
212
  seed.clientID = 1;
211
- seed.getText("content").insert(0, startingText);
213
+ // SEEDED INTO THE ROOT THE TYPE USES. A JSON document seeded into the text root would be
214
+ // accepted, materialize as `{}`, and read as empty on both sides — the starting content
215
+ // silently discarded while every surface reported success.
216
+ if (rootForDocumentType(documentType) === "map") {
217
+ const seeded = parseJsonDocument(startingText);
218
+ if (!seeded.ok) {
219
+ return {
220
+ ok: false,
221
+ reason: "document_content_unparseable",
222
+ guidance: `This is a JSON document and starting_content is not valid JSON (${seeded.detail}). ` +
223
+ `Nothing was created, so there is nothing to clean up.`,
224
+ };
225
+ }
226
+ const map = seed.getMap("data");
227
+ for (const [key, value] of Object.entries(seeded.value))
228
+ map.set(key, value);
229
+ }
230
+ else {
231
+ seed.getText("content").insert(0, startingText);
232
+ }
212
233
  startingContent = Y.encodeStateAsUpdate(seed);
213
234
  }
214
235
  const properties = {
@@ -294,6 +315,11 @@ export function registerDocumentHandlers(deps) {
294
315
  proposalSent: true,
295
316
  peerAgentId,
296
317
  filePath: proposeFile.path,
318
+ // A file that RUNS when opened says so where the operator is handed its path — see
319
+ // `openingNoticeFor`. Only html carries one today, and only because a peer can write into it.
320
+ ...(proposeFile.path !== null && openingNoticeFor(documentType) !== undefined
321
+ ? { fileNotice: openingNoticeFor(documentType) }
322
+ : {}),
297
323
  // Said out loud rather than left as a silent null against a description that promises a path.
298
324
  ...(proposeFile.path === null
299
325
  ? {
@@ -428,6 +454,11 @@ export function registerDocumentHandlers(deps) {
428
454
  peerAgentId: outcome.envelope.proposer_agent_id,
429
455
  proposerNotified: told,
430
456
  filePath: acceptFile.path,
457
+ // Matters MORE here than on propose: the type came from the PROPOSER's envelope, so the
458
+ // accepter is being handed an executable file they did not choose the format of.
459
+ ...(acceptFile.path !== null && openingNoticeFor(outcome.envelope.document_type) !== undefined
460
+ ? { fileNotice: openingNoticeFor(outcome.envelope.document_type) }
461
+ : {}),
431
462
  ...(acceptFile.path === null
432
463
  ? {
433
464
  fileUnavailableReason: acceptFile.reason,
@@ -526,7 +557,10 @@ export function registerDocumentHandlers(deps) {
526
557
  // THROWS rather than returning empty when the log cannot be rebuilt — see LiveDocuments.get. An
527
558
  // empty document handed to an agent here would be written back over the peer's real content.
528
559
  const doc = layer.live.get(who.ownerAgentId, documentId);
529
- const content = doc.getText("content").toString();
560
+ // TYPE-AWARE. A JSON document's content is in the MAP root; reading the text root would answer
561
+ // `content: ""` for a full document — the exact "an empty document handed to an agent gets
562
+ // written back over the peer's real content" hazard this path warns about above.
563
+ const content = projectDocumentText(doc, document.documentType);
530
564
  // THE READ IS THE BOOKMARK. `cello_doc_diff` answers "what changed since I looked", and looking
531
565
  // is this call. Marking on an arriving update instead would erase the very change the diff
532
566
  // exists to show, silently, at the moment it arrived.
@@ -559,7 +593,7 @@ export function registerDocumentHandlers(deps) {
559
593
  guidance: `No document ${documentId.slice(0, 16)}… for this agent. See cello_doc_list.`,
560
594
  };
561
595
  }
562
- const after = layer.live.get(who.ownerAgentId, documentId).getText("content").toString();
596
+ const after = projectDocumentText(layer.live.get(who.ownerAgentId, documentId), document.documentType);
563
597
  const before = layer.notifications.lastSeen(who.ownerAgentId, documentId);
564
598
  if (before === null) {
565
599
  // NEVER READ is not "nothing changed", and it is not an empty before either. Diffing against
@@ -636,7 +670,21 @@ export function registerDocumentHandlers(deps) {
636
670
  return refused;
637
671
  const doc = layer.live.get(who.ownerAgentId, documentId);
638
672
  const text = doc.getText("content");
639
- const before = text.toString();
673
+ const before = projectDocumentText(doc, document.documentType);
674
+ const isMapRoot = rootForDocumentType(document.documentType) === "map";
675
+ // PARSED BEFORE ANYTHING IS TOUCHED. A structured document must not partially apply a write
676
+ // that does not parse — the operator would be left with half their edit in a signed envelope
677
+ // and no way to tell which half.
678
+ const parsedWrite = isMapRoot ? parseJsonDocument(content) : null;
679
+ if (parsedWrite !== null && !parsedWrite.ok) {
680
+ return {
681
+ ok: false,
682
+ reason: "document_content_unparseable",
683
+ guidance: `This is a JSON document and what you sent is not valid JSON (${parsedWrite.detail}). ` +
684
+ `Nothing was changed. Send the COMPLETE document, not a fragment — cello_doc_read gives ` +
685
+ `you the current text to edit.`,
686
+ };
687
+ }
640
688
  if (before === content) {
641
689
  // NO TEXT CHANGE IS NOT ALWAYS NOTHING TO DO, and this returned here unconditionally — which
642
690
  // made an applied-but-unpublished edit UNRECOVERABLE.
@@ -660,7 +708,7 @@ export function registerDocumentHandlers(deps) {
660
708
  if (unpublishedEdits.has(unpublishedKey(who.ownerAgentId, documentId))) {
661
709
  // Screened here too. A flush publishes text that was folded in on an EARLIER call, so
662
710
  // skipping it would be a way for content to reach the peer without ever passing the check.
663
- const stuckFault = screenText(doc.getText("content").toString());
711
+ const stuckFault = screenText(projectDocumentText(doc, document.documentType));
664
712
  if (stuckFault) {
665
713
  return {
666
714
  ok: false,
@@ -827,18 +875,39 @@ export function registerDocumentHandlers(deps) {
827
875
  `disappear the next time the daemon restarted.`,
828
876
  };
829
877
  }
830
- const hunks = lineHunks(before, content);
831
- // ONE TRANSACTION, so the whole edit is a single Yjs update rather than several — a peer
832
- // applying them separately would pass through states no operator ever wrote.
833
- doc.transact(() => {
834
- // Back to front, so earlier offsets stay valid as later ones are rewritten.
835
- for (const hunk of [...hunks].reverse()) {
836
- if (hunk.to > hunk.from)
837
- text.delete(hunk.from, hunk.to - hunk.from);
838
- if (hunk.insert.length > 0)
839
- text.insert(hunk.from, hunk.insert);
840
- }
841
- });
878
+ // ONE TRANSACTION either way, so the whole edit is a single Yjs update rather than several — a
879
+ // peer applying them separately would pass through states no operator ever wrote.
880
+ if (parsedWrite !== null && parsedWrite.ok) {
881
+ // PER KEY, which is the whole reason a JSON document uses the map root. Two agents editing
882
+ // different fields produce disjoint key sets and both survive; line-merging the serialized
883
+ // form would have them rewriting the same lines and interleaving into invalid JSON.
884
+ //
885
+ // Untouched keys are not rewritten at all — see `jsonKeyOperations`. Writing a key back with
886
+ // an identical value is still a CRDT operation and would clobber a peer's concurrent edit to
887
+ // a field this agent never looked at.
888
+ const map = doc.getMap("data");
889
+ const ops = jsonKeyOperations(map, parsedWrite.value);
890
+ doc.transact(() => {
891
+ for (const [key, value] of ops) {
892
+ if (value === undefined)
893
+ map.delete(key);
894
+ else
895
+ map.set(key, value);
896
+ }
897
+ });
898
+ }
899
+ else {
900
+ const hunks = lineHunks(before, content);
901
+ doc.transact(() => {
902
+ // Back to front, so earlier offsets stay valid as later ones are rewritten.
903
+ for (const hunk of [...hunks].reverse()) {
904
+ if (hunk.to > hunk.from)
905
+ text.delete(hunk.from, hunk.to - hunk.from);
906
+ if (hunk.insert.length > 0)
907
+ text.insert(hunk.from, hunk.insert);
908
+ }
909
+ });
910
+ }
842
911
  const result = await publish.publish(who.ownerAgentId, documentId, doc, deps.now());
843
912
  if (!result.ok) {
844
913
  // REMEMBER IT, so the retry above can flush it. Without this the operator's next identical
@@ -1040,7 +1109,7 @@ export function registerDocumentHandlers(deps) {
1040
1109
  return { ok: true, documentId, changed: false, published: false, reason: flushed.reason, guidance: flushed.detail };
1041
1110
  }
1042
1111
  unpublishedEdits.delete(unpublishedKey(who.ownerAgentId, documentId));
1043
- layer.notifications.markWritten(who.ownerAgentId, documentId, doc.getText("content").toString());
1112
+ layer.notifications.markWritten(who.ownerAgentId, documentId, projectDocumentText(doc, document.documentType));
1044
1113
  return { ok: true, documentId, changed: true, published: true, envelopeHash: flushed.envelopeHash };
1045
1114
  }
1046
1115
  // A publish is an INTENT. Nothing changed on disk, so there is nothing to say, and saying it
@@ -1057,7 +1126,7 @@ export function registerDocumentHandlers(deps) {
1057
1126
  // already in the local document when this refuses. The flag is deliberately NOT set: flushing
1058
1127
  // later would publish the offending bytes unscreened. Correcting the file is what removes it,
1059
1128
  // and the guidance says so.
1060
- const publishScreenFault = screenText(doc.getText("content").toString());
1129
+ const publishScreenFault = screenText(projectDocumentText(doc, document.documentType));
1061
1130
  if (publishScreenFault) {
1062
1131
  return {
1063
1132
  ok: false,
@@ -1083,7 +1152,7 @@ export function registerDocumentHandlers(deps) {
1083
1152
  unpublishedEdits.add(unpublishedKey(who.ownerAgentId, documentId));
1084
1153
  return { ok: true, documentId, changed: true, published: false, reason: result.reason, guidance: result.detail };
1085
1154
  }
1086
- layer.notifications.markWritten(who.ownerAgentId, documentId, doc.getText("content").toString());
1155
+ layer.notifications.markWritten(who.ownerAgentId, documentId, projectDocumentText(doc, document.documentType));
1087
1156
  return { ok: true, documentId, changed: true, published: true, envelopeHash: result.envelopeHash };
1088
1157
  });
1089
1158
  logger.debug("document.handlers.registered", {
@@ -1 +1 @@
1
- {"version":3,"file":"document-handlers.js","sourceRoot":"","sources":["../src/document-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC7B,kCAAkC,GAGnC,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElE,kGAAkG;AAClG,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAuBzC,MAAM,UAAU,wBAAwB,CAAC,IAAyB;IAChE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAElD;;;OAGG;IACH,SAAS,OAAO,CACd,MAA2C,EAC3C,YAAoB;QAEpB,MAAM,QAAQ,GAAG,OAAO,MAAM,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,6EAA6E;aACxF,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,4BAA4B;gBACpC,QAAQ,EAAE,UAAU,SAAS,gEAAgE;aAC9F,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,CAA2B,EAAwD,EAAE,CACrG,CAAoB,CAAC,EAAE,KAAK,KAAK,CAAC;IAErC;;;;;;;OAOG;IACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,MAAM,cAAc,GAAG,CAAC,YAAoB,EAAE,UAAkB,EAAE,EAAE,CAAC,GAAG,YAAY,SAAS,UAAU,EAAE,CAAC;IAE1G;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,WAAW,CAAC,GAAa,EAAE,UAAkB;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAC3C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,uBAAuB;YAC/B,QAAQ,EACN,kCAAkC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;gBAC7F,2FAA2F;gBAC3F,6DAA6D;SAChE,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,UAAU,WAAW,CACxB,YAAoB,EACpB,UAAkB,EAClB,YAAoB;QAEpB,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;QAClF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAC5C,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CACzC,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,yFAAyF;YACzF,8FAA8F;YAC9F,8FAA8F;YAC9F,2FAA2F;YAC3F,sBAAsB;YACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,IAAI,QAAQ,IAAI,GAAG;gBACpD,CAAC,CAAC,MAAM,CAAE,GAA2B,CAAC,MAAM,CAAC;gBAC7C,CAAC,CAAC,qBAAqB,CAAC;YAC1B,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAChF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAED,6FAA6F;IAE7F,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAE/B,+FAA+F;QAC/F,iGAAiG;QACjG,6FAA6F;QAC7F,4FAA4F;QAC5F,MAAM,OAAO,GAAG,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,eAAe,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC3D,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,4BAA4B;oBACpC,QAAQ,EACN,eAAe,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,kDAAkD;wBACrF,6CAA6C;iBAChD,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;gBAC9D,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa;gBAC1C,UAAU,EAAE,OAAO;gBACnB,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC9C,aAAa,EAAE,QAAQ;aACxB,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3G,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,gCAAgC,EAAE,CAAC;YAC3G,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACxE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3G,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,qBAAqB;gBAC7B,QAAQ,EACN,oFAAoF;oBACpF,+DAA+D;aAClE,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC;YACrC,6FAA6F;YAC7F,6FAA6F;YAC7F,oCAAoC;YACpC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,uBAAuB;gBAC/B,QAAQ,EAAE,yEAAyE;aACpF,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,MAAM,EAAE,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC9G,iGAAiG;QACjG,2FAA2F;QAC3F,+FAA+F;QAC/F,0FAA0F;QAC1F,+FAA+F;QAC/F,iFAAiF;QACjF,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,2BAA2B;gBACnC,QAAQ,EACN,IAAI,YAAY,4DAA4D;oBAC5E,GAAG,CAAC,GAAG,wBAAwB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC;oBACvF,yDAAyD;aAC5D,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,OAAO,MAAM,EAAE,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjG,gGAAgG;QAChG,gGAAgG;QAChG,+FAA+F;QAC/F,8FAA8F;QAC9F,wEAAwE;QACxE,IAAI,eAAe,GAAsB,IAAI,CAAC;QAC9C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;YACzB,wFAAwF;YACxF,uFAAuF;YACvF,2EAA2E;YAC3E,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YAChD,eAAe,GAAG,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,UAAU,GAAG;YACjB,cAAc,EAAE,iBAAiB;YACjC,kBAAkB,EAAE,KAAK;YACzB,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI;SAC1C,CAAC;QACF,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,8FAA8F;YAC9F,2FAA2F;YAC3F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC/E,CAAC;QAED,MAAM,QAAQ,GAA6B;YACzC,IAAI,EAAE,mBAAmB;YACzB,eAAe,EAAE,wBAAwB;YACzC,iBAAiB,EAAE,GAAG,CAAC,YAAY;YACnC,aAAa,EAAE,WAAW;YAC1B,aAAa,EAAE,YAAY;YAC3B,UAAU;YACV,gBAAgB,EAAE,eAAe;YACjC,8FAA8F;YAC9F,oFAAoF;YACpF,KAAK,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACtC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;YAC1B,SAAS,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC;SAC7B,CAAC;QACF,QAAQ,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAEpD,+FAA+F;QAC/F,8FAA8F;QAC9F,iGAAiG;QACjG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;YACzB,UAAU;YACV,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,WAAW;YACX,YAAY;YACZ,UAAU;YACV,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,QAAQ,CAAC,cAAc;SACrC,CAAC,CAAC;QACH,mFAAmF;QACnF,sCAAsC;QACtC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;QACpF,IAAI,eAAe,EAAE,CAAC;YACpB,4FAA4F;YAC5F,0BAA0B;YAC1B,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC;QAC/E,CAAC;QACD,gGAAgG;QAChG,+FAA+F;QAC/F,mDAAmD;QACnD,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAElF,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;YAC5D,WAAW;YACX,UAAU;YACV,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC;YACvC,aAAa;SACd,CAAC,CAAC;QACH,4FAA4F;QAC5F,wFAAwF;QACxF,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QAEjG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,wFAAwF;YACxF,0FAA0F;YAC1F,kFAAkF;YAClF,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,UAAU;gBACV,YAAY,EAAE,KAAK;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EACN,6EAA6E,IAAI,CAAC,MAAM,KAAK;oBAC7F,uEAAuE,UAAU,OAAO;oBACxF,wFAAwF;aAC3F,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3E,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU;YACV,YAAY,EAAE,IAAI;YAClB,WAAW;YACX,QAAQ,EAAE,WAAW,CAAC,IAAI;YAC1B,8FAA8F;YAC9F,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI;gBAC3B,CAAC,CAAC;oBACE,qBAAqB,EAAE,WAAW,CAAC,MAAM;oBACzC,QAAQ,EACN,6EAA6E;wBAC7E,IAAI,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS;wBACrF,iEAAiE;iBACpE;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH;;;;;;;;OAQG;IACH,KAAK,UAAU,YAAY,CACzB,GAAa,EACb,UAAkB,EAClB,eAAuB,EACvB,QAAiB,EACjB,MAA0B;QAE1B,MAAM,GAAG,GAAwB;YAC/B,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,UAAU;YACvB,cAAc,EAAE,GAAG,CAAC,YAAY;YAChC,QAAQ;YACR,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,kCAAkC,CAAC,EAAE,CAAC;YAC5G,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;YACzB,SAAS,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC;SAC7B,CAAC;QACF,iEAAiE;QACjE,EAAE;QACF,+FAA+F;QAC/F,+FAA+F;QAC/F,gGAAgG;QAChG,2DAA2D;QAC3D,EAAE;QACF,+FAA+F;QAC/F,6FAA6F;QAC7F,iGAAiG;QACjG,2FAA2F;QAC3F,IAAI,CAAC;YACH,GAAG,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC;YACjF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;gBAC5D,WAAW,EAAE,eAAe;gBAC5B,UAAU;gBACV,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC;gBACrC,aAAa,EAAE,UAAU,EAAE;aAC5B,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7F,CAAC;YACD,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,4FAA4F;YAC5F,6DAA6D;YAC7D,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACzC,UAAU;gBACV,QAAQ;gBACR,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,6FAA6F;IAE7F,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1D,OAAO;YACL,EAAE,EAAE,IAAI;YACR,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa;gBACtC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW;gBAC7C,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI;gBACxD,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc;aACxC,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,0CAA0C,EAAE,CAAC;QAC5G,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAExF,6FAA6F;QAC7F,6FAA6F;QAC7F,+EAA+E;QAC/E,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7D,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,2BAA2B;gBACnC,QAAQ,EACN,yBAAyB,OAAO,CAAC,QAAQ,CAAC,aAAa,+BAA+B;oBACtF,4BAA4B,CAAC,GAAG,wBAAwB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;oBACpF,qFAAqF;oBACrF,uFAAuF;aAC1F,CAAC;QACJ,CAAC;QAED,8FAA8F;QAC9F,gGAAgG;QAChG,sFAAsF;QACtF,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;YACzB,UAAU;YACV,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,iBAAiB;YAC/C,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa;YAC5C,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU;YACvC,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YACtC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACjG,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACnG,8FAA8F;QAC9F,4FAA4F;QAC5F,0CAA0C;QAC1C,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACtG,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU;YACV,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,iBAAiB;YAC/C,gBAAgB,EAAE,IAAI;YACtB,QAAQ,EAAE,UAAU,CAAC,IAAI;YACzB,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI;gBAC1B,CAAC,CAAC;oBACE,qBAAqB,EAAE,UAAU,CAAC,MAAM;oBACxC,QAAQ,EACN,2EAA2E;wBAC3E,IAAI,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS;wBAClF,iEAAiE;iBACpE;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,6FAA6F;QAC7F,8FAA8F;QAC9F,wEAAwE;QACxE,MAAM,KAAK,GAAG,OAAO,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC;QACjE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,0CAA0C,EAAE,CAAC;QAC5G,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACxF,6FAA6F;QAC7F,6FAA6F;QAC7F,MAAM,IAAI,GAAG,QAAQ;YACnB,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC;YAC9E,CAAC,CAAC,KAAK,CAAC;QACV,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,6FAA6F;IAE7F,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC/B,OAAO;YACL,EAAE,EAAE,IAAI;YACR,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACtE,gEAAgE;gBAChE,EAAE;gBACF,2FAA2F;gBAC3F,2FAA2F;gBAC3F,wFAAwF;gBACxF,sFAAsF;gBACtF,WAAW;gBACX,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;gBACrE,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC9E,OAAO;oBACL,GAAG,CAAC;oBACJ,YAAY,EAAE,QAAQ,EAAE,eAAe,KAAK,GAAG,CAAC,YAAY;oBAC5D,wFAAwF;oBACxF,yFAAyF;oBACzF,iFAAiF;oBACjF,EAAE;oBACF,uFAAuF;oBACvF,oFAAoF;oBACpF,qCAAqC;oBACrC,YAAY,EAAE,UAAU,CAAC,QAAQ;oBACjC,iBAAiB,EAAE,UAAU,CAAC,MAAM;oBACpC,uFAAuF;oBACvF,wFAAwF;oBACxF,wDAAwD;oBACxD,gBAAgB,EACd,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,GAAG,CAAC;oBACjG,YAAY,EAAE,QAAQ,EAAE,YAAY,IAAI,IAAI;oBAC5C,wFAAwF;oBACxF,wFAAwF;oBACxF,uFAAuF;oBACvF,4EAA4E;oBAC5E,YAAY,EACV,QAAQ,EAAE,eAAe,KAAK,GAAG,CAAC,YAAY;wBAC5C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;wBAC9D,CAAC,CAAC,IAAI;iBACX,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,yCAAyC,EAAE,CAAC;QAC3G,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,eAAe,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,uCAAuC;aACxF,CAAC;QACJ,CAAC;QACD,gGAAgG;QAChG,6FAA6F;QAC7F,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClD,gGAAgG;QAChG,2FAA2F;QAC3F,sDAAsD;QACtD,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAChF,2FAA2F;QAC3F,+DAA+D;QAC/D,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACxD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU;YACV,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,yCAAyC,EAAE,CAAC;QAC3G,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,eAAe,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,uCAAuC;aACxF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzF,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC1E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,6FAA6F;YAC7F,8FAA8F;YAC9F,6DAA6D;YAC7D,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,qBAAqB;gBAC7B,QAAQ,EACN,qBAAqB,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,iDAAiD;oBAC7F,4EAA4E;aAC/E,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5F,iGAAiG;QACjG,yCAAyC;QACzC,gGAAgG;QAChG,6FAA6F;QAC7F,4FAA4F;QAC5F,uDAAuD;QACvD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,6FAA6F;YAC7F,oEAAoE;YACpE,+FAA+F;YAC/F,0FAA0F;YAC1F,mFAAmF;YACnF,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,UAAU;gBACV,SAAS,EAAE,MAAM,KAAK,KAAK;gBAC3B,IAAI,EAAE,IAAI;gBACV,qBAAqB,EAAE,QAAQ,CAAC,MAAM;gBACtC,KAAK;aACN,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU;YACV,SAAS,EAAE,MAAM,KAAK,KAAK;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,KAAK;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,yCAAyC,EAAE,CAAC;QAC3G,CAAC;QACD,IAAI,OAAO,MAAM,EAAE,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,iBAAiB;gBACzB,QAAQ,EACN,uFAAuF;oBACvF,gFAAgF;oBAChF,8BAA8B;aACjC,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE/B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,eAAe,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,uCAAuC;aACxF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC7C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,6FAA6F;YAC7F,sDAAsD;YACtD,EAAE;YACF,8FAA8F;YAC9F,4FAA4F;YAC5F,0FAA0F;YAC1F,8FAA8F;YAC9F,0FAA0F;YAC1F,4FAA4F;YAC5F,+BAA+B;YAC/B,EAAE;YACF,4FAA4F;YAC5F,0FAA0F;YAC1F,yFAAyF;YACzF,kEAAkE;YAClE,EAAE;YACF,8FAA8F;YAC9F,6FAA6F;YAC7F,iFAAiF;YACjF,IAAI,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;gBACvE,sFAAsF;gBACtF,2FAA2F;gBAC3F,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACjE,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,0BAA0B;wBAClC,QAAQ,EACN,6CAA6C,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;4BACvF,oEAAoE;wBACtE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CAAC;qBAChE,CAAC;gBACJ,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACrF,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;oBACf,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;oBACtE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;oBACvE,MAAM,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACvE,OAAO;wBACL,EAAE,EAAE,IAAI;wBACR,UAAU;wBACV,OAAO,EAAE,KAAK;wBACd,SAAS,EAAE,IAAI;wBACf,YAAY,EAAE,OAAO,CAAC,YAAY;wBAClC,QAAQ,EACN,mFAAmF;4BACnF,0CAA0C;qBAC7C,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,UAAU;oBACV,OAAO,EAAE,KAAK;oBACd,SAAS,EAAE,KAAK;oBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,QAAQ,EACN,yEAAyE;wBACzE,IAAI,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;iBACxD,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACpE,CAAC;QAED,6FAA6F;QAC7F,8FAA8F;QAC9F,+FAA+F;QAC/F,6CAA6C;QAC7C,EAAE;QACF,8FAA8F;QAC9F,gGAAgG;QAChG,0FAA0F;QAC1F,qDAAqD;QACrD,MAAM,YAAY,GAAG,gBAAgB,CACnC,OAAO,QAAQ,CAAC,UAAU,CAAC,eAAe,KAAK,QAAQ;YACrD,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe;YACrC,CAAC,CAAC,SAAS,EACb,OAAO,CACR,CAAC;QACF,4FAA4F;QAC5F,+FAA+F;QAC/F,8FAA8F;QAC9F,wEAAwE;QACxE,EAAE;QACF,8FAA8F;QAC9F,8FAA8F;QAC9F,gGAAgG;QAChG,kCAAkC;QAClC,kEAAkE;QAClE,EAAE;QACF,iGAAiG;QACjG,4FAA4F;QAC5F,gGAAgG;QAChG,kDAAkD;QAClD,EAAE;QACF,8FAA8F;QAC9F,sDAAsD;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACnF,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;YACpC,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACzB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBACjF,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpB,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnB,CAAC;gBACD,EAAE,EAAE,CAAC;YACP,CAAC;YACD,yEAAyE;YACzE,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACrE,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClC,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBAClB,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBAChD,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YACD,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9B,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,4BAA4B;oBACpC,QAAQ,EACN,iCAAiC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB;wBAC9E,IAAI,OAAO,CAAC,MAAM,sCAAsC,OAAO,CAAC,CAAC,CAAC,sBAAsB;wBACxF,sFAAsF;wBACtF,0CAA0C;oBAC5C,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;iBAC5H,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,0BAA0B;gBAClC,QAAQ,EACN,qCAAqC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;oBACzE,IAAI,WAAW,CAAC,KAAK,sCAAsC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;oBACtF,2FAA2F;oBAC3F,sFAAsF;oBACtF,+EAA+E;gBACjF,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC;aACjE,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,4BAA4B;gBACpC,QAAQ,EACN,gCAAgC,YAAY,CAAC,OAAO,0BAA0B;oBAC9E,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,KAAK,2BAA2B;oBACvF,aAAa,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,uDAAuD;oBAC3F,yFAAyF;oBACzF,cAAc;gBAChB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;aACrC,CAAC;QACJ,CAAC;QACD,yFAAyF;QACzF,EAAE;QACF,8FAA8F;QAC9F,6FAA6F;QAC7F,0CAA0C;QAC1C,EAAE;QACF,qFAAqF;QACrF,oFAAoF;QACpF,EAAE;QACF,6FAA6F;QAC7F,+FAA+F;QAC/F,6FAA6F;QAC7F,6FAA6F;QAC7F,WAAW;QACX,EAAE;QACF,4FAA4F;QAC5F,iGAAiG;QACjG,4FAA4F;QAC5F,6DAA6D;QAC7D,EAAE;QACF,iGAAiG;QACjG,8EAA8E;QAC9E,gGAAgG;QAChG,2FAA2F;QAC3F,4FAA4F;QAC5F,sFAAsF;QACtF,EAAE;QACF,8FAA8F;QAC9F,+FAA+F;QAC/F,2CAA2C;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,MAAM,KAAK,uBAAuB,EAAE,CAAC;YACtE,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,QAAQ,EACN,GAAG,WAAW,CAAC,MAAM,IAAI,4CAA4C,eAAe;oBACpF,0FAA0F;oBAC1F,+CAA+C;aAClD,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,yFAAyF;QACzF,6EAA6E;QAC7E,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE;YAChB,4EAA4E;YAC5E,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI;oBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,2FAA2F;YAC3F,+EAA+E;YAC/E,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;YACnE,2FAA2F;YAC3F,4FAA4F;YAC5F,+DAA+D;YAC/D,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,UAAU;gBACV,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,MAAM;aACxB,CAAC;QACJ,CAAC;QACD,gGAAgG;QAChG,yFAAyF;QACzF,wFAAwF;QACxF,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACvE,wFAAwF;QACxF,8FAA8F;QAC9F,oCAAoC;QACpC,EAAE;QACF,gGAAgG;QAChG,gGAAgG;QAChG,2FAA2F;QAC3F,0FAA0F;QAC1F,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC3F,gGAAgG;QAChG,6FAA6F;QAC7F,2BAA2B;QAC3B,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU;YACV,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,8FAA8F;YAC9F,6FAA6F;YAC7F,kFAAkF;YAClF,6FAA6F;YAC7F,0FAA0F;YAC1F,yBAAyB;YACzB,WAAW,EAAE,WAAW,KAAK,IAAI;YACjC,GAAG,CAAC,WAAW,KAAK,IAAI;gBACtB,CAAC,CAAC;oBACE,QAAQ,EACN,iFAAiF;wBACjF,2EAA2E;wBAC3E,qDAAqD;iBACxD;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,6FAA6F;IAE7F,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,yCAAyC,EAAE,CAAC;QAC3G,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACxF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC;QAC1F,+FAA+F;QAC/F,gGAAgG;QAChG,oBAAoB;QACpB,EAAE;QACF,gGAAgG;QAChG,+FAA+F;QAC/F,+FAA+F;QAC/F,gGAAgG;QAChG,uFAAuF;QACvF,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU;YACV,MAAM;YACN,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,GAAG,CAAC,OAAO,CAAC,YAAY;gBACtB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,MAAM,EAAE,OAAO,CAAC,YAAY;oBAC5B,QAAQ,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC;iBAC9E,CAAC;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH;;;;;;;;OAQG;IACH,SAAS,cAAc,CAAC,IAAsB,EAAE,MAAe,EAAE,MAAe;QAC9E,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO;YAC3B,CAAC,CAAC,qHAAqH;YACvH,CAAC,CAAC,yGAAyG,CAAC;QAC9G,IAAI,MAAM,KAAK,2BAA2B,EAAE,CAAC;YAC3C,OAAO,CACL,QAAQ,IAAI,8EAA8E;gBAC1F,4BAA4B,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,gCAAgC;gBACxF,6BAA6B,IAAI,EAAE,CACpC,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;YAClC,OAAO,CACL,QAAQ,IAAI,iFAAiF;gBAC7F,yFAAyF,IAAI,EAAE,CAChG,CAAC;QACJ,CAAC;QACD,OAAO,CACL,QAAQ,IAAI,2CAA2C,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW;YAC9F,8CAA8C,IAAI,EAAE,CACrD,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,yCAAyC,EAAE,CAAC;QAC3G,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACxF,gGAAgG;QAChG,gGAAgG;QAChG,gGAAgG;QAChG,4CAA4C;QAC5C,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU;YACV,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,CAAC,OAAO,CAAC,YAAY;gBACtB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,MAAM,EAAE,OAAO,CAAC,YAAY;oBAC5B,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC;iBAC7E,CAAC;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,yCAAyC,EAAE,CAAC;QAC3G,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,4BAA4B;gBACpC,QAAQ,EAAE,wFAAwF;aACnG,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,eAAe,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,uCAAuC;aACxF,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACnD,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QAExC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACzD,IAAI,MAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,2FAA2F;YAC3F,2FAA2F;YAC3F,uFAAuF;YACvF,kCAAkC;YAClC,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACnG,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,IAAI,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAE,GAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;YAC7H,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM;gBACN,QAAQ,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC3D,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,6FAA6F;YAC7F,6FAA6F;YAC7F,gGAAgG;YAChG,uFAAuF;YACvF,8FAA8F;YAC9F,+FAA+F;YAC/F,wBAAwB;YACxB,IAAI,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACrF,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;oBAChB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBACtH,CAAC;gBACD,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;gBACtE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACjG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;YACtG,CAAC;YACD,6FAA6F;YAC7F,wCAAwC;YACxC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACpE,CAAC;QAED,iGAAiG;QACjG,gGAAgG;QAChG,gGAAgG;QAChG,6FAA6F;QAC7F,kGAAkG;QAClG,EAAE;QACF,4FAA4F;QAC5F,8FAA8F;QAC9F,8FAA8F;QAC9F,4BAA4B;QAC5B,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzE,IAAI,kBAAkB,EAAE,CAAC;YACvB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,0BAA0B;gBAClC,QAAQ,EACN,qCAAqC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;oBAChF,IAAI,kBAAkB,CAAC,KAAK,qCAAqC;oBACjE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,uDAAuD;oBACvF,uFAAuF;oBACvF,wFAAwF;oBACxF,uFAAuF;oBACvF,2BAA2B;gBAC7B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,kBAAkB,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,0FAA0F;YAC1F,yFAAyF;YACzF,8FAA8F;YAC9F,yBAAyB;YACzB,0FAA0F;YAC1F,+DAA+D;YAC/D,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;YACnE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACnH,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;IACrG,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;QAC3C,0FAA0F;QAC1F,6FAA6F;QAC7F,yFAAyF;QACzF,8CAA8C;QAC9C,yFAAyF;QACzF,2FAA2F;QAC3F,2FAA2F;QAC3F,0EAA0E;QAC1E,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;KACtE,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"document-handlers.js","sourceRoot":"","sources":["../src/document-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * DOD-DOC-TYPES-1 — rendering a JSON document to the bytes both sides must agree on.
3
+ *
4
+ * ── THE PROBLEM THIS SOLVES ──────────────────────────────────────────────────────────────────────
5
+ *
6
+ * The CRDT determines the map STATE. It does not determine the STRING that map is printed as.
7
+ * `Y.Map.toJSON()` returns keys in INSERTION order, so two peers who added the same keys in a
8
+ * different order hold the same document and render different files:
9
+ *
10
+ * Alice adds `owner` then `status` → {"owner": "a", "status": "open"}
11
+ * Bob adds `status` then `owner` → {"status": "open", "owner": "a"}
12
+ *
13
+ * Both faithful, both correct, and everything downstream breaks. The write path diffs the FILE
14
+ * against the recorded projection, so a re-serialization in a different order reads as a rewrite of
15
+ * the entire document and is PUBLISHED to the peer as a real, signed edit. Two machines comparing
16
+ * files disagree about a document they agree on. And pasting the rendered document to have a peer
17
+ * confirm they hold the same thing — which is how values get attested — stops working.
18
+ *
19
+ * ── THE RULE ─────────────────────────────────────────────────────────────────────────────────────
20
+ *
21
+ * Object keys sorted, recursively, at every depth. **Arrays are never sorted:** an array's order is
22
+ * content, and reordering a list of steps or a ranked set of options is a lie about what was agreed.
23
+ *
24
+ * Trailing newline, because most editors add one on save and its absence would make the first save
25
+ * of an untouched file publish an edit nobody made.
26
+ */
27
+ export type JsonValue = string | number | boolean | null | JsonValue[] | {
28
+ [key: string]: JsonValue;
29
+ };
30
+ /**
31
+ * The canonical text of a JSON document — the bytes written to the file, recorded as the diff
32
+ * baseline, and compared against a peer's.
33
+ *
34
+ * Indented rather than compact: a human and an agent both have to read this file, and a line diff
35
+ * needs nested values on their own lines to say anything useful about what changed.
36
+ */
37
+ export declare function serializeJsonDocument(value: JsonValue): string;
38
+ /** A parsed JSON object, or the reason it could not be parsed. */
39
+ export type ParsedJsonDocument = {
40
+ ok: true;
41
+ value: {
42
+ [key: string]: JsonValue;
43
+ };
44
+ } | {
45
+ ok: false;
46
+ detail: string;
47
+ };
48
+ /**
49
+ * Parse the text an agent supplied as a whole JSON document.
50
+ *
51
+ * A non-object top level is refused as firmly as a syntax error: the map root holds KEYS, so a bare
52
+ * array or string has nowhere to go, and accepting one would silently empty the document.
53
+ */
54
+ export declare function parseJsonDocument(text: string): ParsedJsonDocument;
55
+ /**
56
+ * The minimal set of key operations that turns `current` into `next`, as `[key, value]` pairs where
57
+ * a `value` of `undefined` means delete.
58
+ *
59
+ * **This is the per-key merge, and it is the whole point of the map root.** Two agents editing
60
+ * different fields of a shared plan produce disjoint key sets, so both survive; a line merge of the
61
+ * serialized form would have them rewriting the same lines and interleaving into broken JSON.
62
+ *
63
+ * Values are compared on their CANONICAL rendering. Plain `JSON.stringify` is order-sensitive for a
64
+ * nested object, so re-ordering a nested block — which any formatter may do — would count as a
65
+ * changed value, publish a change nobody made, and beat the peer's real edit to that key.
66
+ *
67
+ * Untouched keys are not written at all. Writing a key back with an identical value is still a CRDT
68
+ * operation, and it would clobber a peer's concurrent edit to a field this agent never looked at.
69
+ */
70
+ export declare function jsonKeyOperations(current: ReadonlyMap<string, unknown> | {
71
+ get(key: string): unknown;
72
+ keys(): Iterable<string>;
73
+ }, next: {
74
+ [key: string]: JsonValue;
75
+ }): Array<[string, JsonValue | undefined]>;
76
+ /**
77
+ * The document's content as the text an agent reads and writes back — whichever root it lives in.
78
+ *
79
+ * The three content verbs (`read`, `write`, `diff`) all called `doc.getText("content")` directly,
80
+ * which is why `json` had to be refused at the door: its content is in the MAP root, so those verbs
81
+ * saw an empty document and would have written that emptiness back over the peer's real content.
82
+ *
83
+ * Imported by both the handlers and the write path so one document has ONE textual form. Two
84
+ * renderings of the same map would make the file diff fight the tool surface.
85
+ */
86
+ export declare function projectDocumentText(doc: YDocLike, documentType: string): string;
87
+ /** The slice of `Y.Doc` this module needs, so it does not depend on the engine. */
88
+ interface YDocLike {
89
+ getMap(name: string): {
90
+ toJSON(): unknown;
91
+ };
92
+ getText(name: string): {
93
+ toString(): string;
94
+ };
95
+ }
96
+ export {};
97
+ //# sourceMappingURL=document-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-json.d.ts","sourceRoot":"","sources":["../src/document-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAiBtG;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAE9D;AAED,kEAAkE;AAClE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,GACjD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAWlE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;CAAE,EAC/F,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACjC,KAAK,CAAC,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC,CAexC;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAK/E;AAMD,mFAAmF;AACnF,UAAU,QAAQ;IAChB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,MAAM,IAAI,OAAO,CAAA;KAAE,CAAC;IAC5C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,CAAC;CAC/C"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * DOD-DOC-TYPES-1 — rendering a JSON document to the bytes both sides must agree on.
3
+ *
4
+ * ── THE PROBLEM THIS SOLVES ──────────────────────────────────────────────────────────────────────
5
+ *
6
+ * The CRDT determines the map STATE. It does not determine the STRING that map is printed as.
7
+ * `Y.Map.toJSON()` returns keys in INSERTION order, so two peers who added the same keys in a
8
+ * different order hold the same document and render different files:
9
+ *
10
+ * Alice adds `owner` then `status` → {"owner": "a", "status": "open"}
11
+ * Bob adds `status` then `owner` → {"status": "open", "owner": "a"}
12
+ *
13
+ * Both faithful, both correct, and everything downstream breaks. The write path diffs the FILE
14
+ * against the recorded projection, so a re-serialization in a different order reads as a rewrite of
15
+ * the entire document and is PUBLISHED to the peer as a real, signed edit. Two machines comparing
16
+ * files disagree about a document they agree on. And pasting the rendered document to have a peer
17
+ * confirm they hold the same thing — which is how values get attested — stops working.
18
+ *
19
+ * ── THE RULE ─────────────────────────────────────────────────────────────────────────────────────
20
+ *
21
+ * Object keys sorted, recursively, at every depth. **Arrays are never sorted:** an array's order is
22
+ * content, and reordering a list of steps or a ranked set of options is a lie about what was agreed.
23
+ *
24
+ * Trailing newline, because most editors add one on save and its absence would make the first save
25
+ * of an untouched file publish an edit nobody made.
26
+ */
27
+ /** A value that can live in a JSON document. */
28
+ import { rootForDocumentType } from "./document-types.js";
29
+ /**
30
+ * Return `value` with every object's keys in sorted order, at every depth.
31
+ *
32
+ * Arrays keep their order; only the objects INSIDE them are normalised. `JSON.stringify` walks
33
+ * objects in own-property order, so sorting the keys into a fresh object is what makes its output
34
+ * deterministic — there is no stringify option that does this.
35
+ */
36
+ function withSortedKeys(value) {
37
+ if (Array.isArray(value))
38
+ return value.map(withSortedKeys);
39
+ if (value === null || typeof value !== "object")
40
+ return value;
41
+ const sorted = {};
42
+ for (const key of Object.keys(value).sort())
43
+ sorted[key] = withSortedKeys(value[key]);
44
+ return sorted;
45
+ }
46
+ /**
47
+ * The canonical text of a JSON document — the bytes written to the file, recorded as the diff
48
+ * baseline, and compared against a peer's.
49
+ *
50
+ * Indented rather than compact: a human and an agent both have to read this file, and a line diff
51
+ * needs nested values on their own lines to say anything useful about what changed.
52
+ */
53
+ export function serializeJsonDocument(value) {
54
+ return `${JSON.stringify(withSortedKeys(value), null, 2)}\n`;
55
+ }
56
+ /**
57
+ * Parse the text an agent supplied as a whole JSON document.
58
+ *
59
+ * A non-object top level is refused as firmly as a syntax error: the map root holds KEYS, so a bare
60
+ * array or string has nowhere to go, and accepting one would silently empty the document.
61
+ */
62
+ export function parseJsonDocument(text) {
63
+ let parsed;
64
+ try {
65
+ parsed = JSON.parse(text);
66
+ }
67
+ catch (err) {
68
+ return { ok: false, detail: err instanceof Error ? err.message : String(err) };
69
+ }
70
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
71
+ return { ok: false, detail: "the top level of a JSON document must be an object" };
72
+ }
73
+ return { ok: true, value: parsed };
74
+ }
75
+ /**
76
+ * The minimal set of key operations that turns `current` into `next`, as `[key, value]` pairs where
77
+ * a `value` of `undefined` means delete.
78
+ *
79
+ * **This is the per-key merge, and it is the whole point of the map root.** Two agents editing
80
+ * different fields of a shared plan produce disjoint key sets, so both survive; a line merge of the
81
+ * serialized form would have them rewriting the same lines and interleaving into broken JSON.
82
+ *
83
+ * Values are compared on their CANONICAL rendering. Plain `JSON.stringify` is order-sensitive for a
84
+ * nested object, so re-ordering a nested block — which any formatter may do — would count as a
85
+ * changed value, publish a change nobody made, and beat the peer's real edit to that key.
86
+ *
87
+ * Untouched keys are not written at all. Writing a key back with an identical value is still a CRDT
88
+ * operation, and it would clobber a peer's concurrent edit to a field this agent never looked at.
89
+ */
90
+ export function jsonKeyOperations(current, next) {
91
+ const ops = [];
92
+ for (const [key, value] of Object.entries(next)) {
93
+ const before = current.get(key);
94
+ if (before === undefined ||
95
+ serializeJsonDocument(before) !== serializeJsonDocument(value)) {
96
+ ops.push([key, value]);
97
+ }
98
+ }
99
+ for (const key of [...current.keys()]) {
100
+ if (!(key in next))
101
+ ops.push([key, undefined]);
102
+ }
103
+ return ops;
104
+ }
105
+ /**
106
+ * The document's content as the text an agent reads and writes back — whichever root it lives in.
107
+ *
108
+ * The three content verbs (`read`, `write`, `diff`) all called `doc.getText("content")` directly,
109
+ * which is why `json` had to be refused at the door: its content is in the MAP root, so those verbs
110
+ * saw an empty document and would have written that emptiness back over the peer's real content.
111
+ *
112
+ * Imported by both the handlers and the write path so one document has ONE textual form. Two
113
+ * renderings of the same map would make the file diff fight the tool surface.
114
+ */
115
+ export function projectDocumentText(doc, documentType) {
116
+ if (rootForDocumentType(documentType) === "map") {
117
+ return serializeJsonDocument(doc.getMap(MAP_ROOT).toJSON());
118
+ }
119
+ return doc.getText(TEXT_ROOT).toString();
120
+ }
121
+ /** Yjs roots a document projects from — must match `DocumentEngine`'s. */
122
+ const TEXT_ROOT = "content";
123
+ const MAP_ROOT = "data";
124
+ //# sourceMappingURL=document-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-json.js","sourceRoot":"","sources":["../src/document-json.ts"],"names":[],"mappings":"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"}
@@ -34,8 +34,15 @@
34
34
  import type { DocumentStore } from "./document-store.js";
35
35
  import type { Logger } from "./types.js";
36
36
  /** Types `diff` can render. Decided in-unit; see the header for why the list is closed. */
37
- export declare const DIFFABLE_DOCUMENT_TYPES: readonly ["markdown", "text", "json"];
38
- export type DiffableDocumentType = (typeof DIFFABLE_DOCUMENT_TYPES)[number];
37
+ /**
38
+ * The types `cello_doc_diff` renders — DERIVED from the one registry, never listed here.
39
+ *
40
+ * This was a hardcoded `["markdown", "text", "json"]` sitting in parallel with the write path's
41
+ * admitted set, and the two had drifted: `plaintext` was admitted and could not be diffed, so the
42
+ * verb that says what changed was dead on a type the product offered.
43
+ */
44
+ export declare const DIFFABLE_DOCUMENT_TYPES: readonly string[];
45
+ export type DiffableDocumentType = string;
39
46
  export interface DocumentNotice {
40
47
  documentId: string;
41
48
  pending: number;