@vuer-ai/vuer-rtc 0.7.0 → 0.8.2
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.
- package/CLAUDE.md +3 -2
- package/dist/client/EditBuffer.d.ts +4 -4
- package/dist/client/EditBuffer.d.ts.map +1 -1
- package/dist/client/EditBuffer.js +26 -25
- package/dist/client/EditBuffer.js.map +1 -1
- package/dist/client/actions.d.ts +3 -3
- package/dist/client/actions.d.ts.map +1 -1
- package/dist/client/actions.js +71 -70
- package/dist/client/actions.js.map +1 -1
- package/dist/client/coalesceGraphOps.d.ts +4 -4
- package/dist/client/coalesceGraphOps.js +4 -4
- package/dist/client/coalesceTextOperations.d.ts.map +1 -1
- package/dist/client/coalesceTextOperations.js +23 -20
- package/dist/client/coalesceTextOperations.js.map +1 -1
- package/dist/client/coalescence/lwwOperations.js +3 -3
- package/dist/client/coalescence/lwwOperations.js.map +1 -1
- package/dist/client/coalescence/numberOperations.js +2 -2
- package/dist/client/coalescence/numberOperations.js.map +1 -1
- package/dist/client/coalescence/registry.d.ts +3 -3
- package/dist/client/coalescence/registry.d.ts.map +1 -1
- package/dist/client/coalescence/registry.js +11 -11
- package/dist/client/coalescence/registry.js.map +1 -1
- package/dist/client/coalescence/textDeletes.d.ts +8 -7
- package/dist/client/coalescence/textDeletes.d.ts.map +1 -1
- package/dist/client/coalescence/textDeletes.js +11 -11
- package/dist/client/coalescence/textDeletes.js.map +1 -1
- package/dist/client/coalescence/textInserts.d.ts +8 -5
- package/dist/client/coalescence/textInserts.d.ts.map +1 -1
- package/dist/client/coalescence/textInserts.js +32 -12
- package/dist/client/coalescence/textInserts.js.map +1 -1
- package/dist/client/coalescence/utils.d.ts +3 -9
- package/dist/client/coalescence/utils.d.ts.map +1 -1
- package/dist/client/coalescence/utils.js +10 -8
- package/dist/client/coalescence/utils.js.map +1 -1
- package/dist/client/coalescence/vector3Operations.js +2 -2
- package/dist/client/coalescence/vector3Operations.js.map +1 -1
- package/dist/client/createGraph.d.ts +2 -2
- package/dist/client/createGraph.js +4 -4
- package/dist/client/createGraph.js.map +1 -1
- package/dist/client/createTextDocument.d.ts +1 -1
- package/dist/client/createTextDocument.js +3 -3
- package/dist/client/createTextDocument.js.map +1 -1
- package/dist/client/hooks.d.ts +3 -3
- package/dist/client/hooks.d.ts.map +1 -1
- package/dist/client/hooks.js +4 -4
- package/dist/client/hooks.js.map +1 -1
- package/dist/client/textActions.d.ts +2 -2
- package/dist/client/textActions.d.ts.map +1 -1
- package/dist/client/textActions.js +47 -47
- package/dist/client/textActions.js.map +1 -1
- package/dist/client/textTypes.d.ts +8 -8
- package/dist/client/textTypes.d.ts.map +1 -1
- package/dist/client/types.d.ts +4 -4
- package/dist/client/types.d.ts.map +1 -1
- package/dist/crdt/GraphTextCRDT.d.ts +2 -2
- package/dist/crdt/GraphTextCRDT.d.ts.map +1 -1
- package/dist/crdt/GraphTextCRDT.js +6 -6
- package/dist/crdt/GraphTextCRDT.js.map +1 -1
- package/dist/crdt/Rope.d.ts +13 -14
- package/dist/crdt/Rope.d.ts.map +1 -1
- package/dist/crdt/Rope.js +130 -59
- package/dist/crdt/Rope.js.map +1 -1
- package/dist/crdt/index.d.ts +1 -1
- package/dist/crdt/index.d.ts.map +1 -1
- package/dist/crdt/index.js +1 -1
- package/dist/crdt/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/operations/OperationTypes.d.ts +45 -48
- package/dist/operations/OperationTypes.d.ts.map +1 -1
- package/dist/operations/OperationValidator.js +11 -11
- package/dist/operations/OperationValidator.js.map +1 -1
- package/dist/operations/apply/node.js +3 -3
- package/dist/operations/apply/node.js.map +1 -1
- package/dist/operations/apply/text.d.ts.map +1 -1
- package/dist/operations/apply/text.js +35 -32
- package/dist/operations/apply/text.js.map +1 -1
- package/dist/operations/apply/types.d.ts +4 -4
- package/dist/operations/apply/types.d.ts.map +1 -1
- package/dist/operations/apply/types.js +8 -8
- package/dist/operations/apply/types.js.map +1 -1
- package/dist/operations/dispatcher.d.ts.map +1 -1
- package/dist/operations/dispatcher.js +52 -13
- package/dist/operations/dispatcher.js.map +1 -1
- package/dist/serdes.d.ts +1 -1
- package/dist/serdes.d.ts.map +1 -1
- package/dist/state/ConflictResolver.d.ts +9 -9
- package/dist/state/ConflictResolver.d.ts.map +1 -1
- package/dist/state/ConflictResolver.js +20 -20
- package/dist/state/ConflictResolver.js.map +1 -1
- package/dist/state/DType.d.ts +2 -2
- package/dist/state/DType.d.ts.map +1 -1
- package/dist/state/DType.js +14 -14
- package/dist/state/DType.js.map +1 -1
- package/dist/state/VectorClock.d.ts +6 -6
- package/dist/state/VectorClock.d.ts.map +1 -1
- package/dist/state/VectorClock.js +14 -14
- package/dist/state/VectorClock.js.map +1 -1
- package/dist/state/index.d.ts +1 -1
- package/dist/state/index.js +1 -1
- package/examples/01-basic-usage.ts +16 -16
- package/examples/02-concurrent-edits.ts +29 -29
- package/examples/03-scene-building.ts +28 -28
- package/examples/04-conflict-resolution.ts +56 -56
- package/examples/05-coalescence-usage.ts +23 -23
- package/examples/README.md +12 -12
- package/package.json +1 -1
- package/src/client/EditBuffer.ts +28 -27
- package/src/client/TEXT_DOCUMENT_API.md +9 -9
- package/src/client/actions.ts +74 -70
- package/src/client/coalesceGraphOps.ts +4 -4
- package/src/client/coalesceTextOperations.ts +26 -22
- package/src/client/coalescence/lwwOperations.ts +3 -3
- package/src/client/coalescence/numberOperations.ts +2 -2
- package/src/client/coalescence/registry.ts +13 -12
- package/src/client/coalescence/textDeletes.ts +22 -18
- package/src/client/coalescence/textInserts.ts +49 -25
- package/src/client/coalescence/utils.ts +14 -11
- package/src/client/coalescence/vector3Operations.ts +2 -2
- package/src/client/createGraph.ts +4 -4
- package/src/client/createTextDocument.ts +3 -3
- package/src/client/hooks.tsx +5 -5
- package/src/client/textActions.ts +47 -47
- package/src/client/textTypes.ts +8 -8
- package/src/client/types.ts +4 -4
- package/src/crdt/GraphTextCRDT.ts +6 -6
- package/src/crdt/Rope.ts +156 -71
- package/src/crdt/index.ts +2 -0
- package/src/index.ts +2 -0
- package/src/operations/OperationTypes.ts +47 -47
- package/src/operations/OperationValidator.ts +11 -11
- package/src/operations/apply/node.ts +3 -3
- package/src/operations/apply/text.ts +38 -32
- package/src/operations/apply/types.ts +11 -11
- package/src/operations/dispatcher.ts +57 -13
- package/src/serdes.ts +1 -1
- package/src/state/ConflictResolver.ts +23 -23
- package/src/state/DType.ts +16 -16
- package/src/state/VectorClock.ts +14 -14
- package/src/state/index.ts +1 -1
- package/tests/client/actions.test.ts +76 -76
- package/tests/client/coalesce-graph-operations.test.ts +84 -84
- package/tests/client/coalesce-text-operations.test.ts +91 -114
- package/tests/client/compaction.test.ts +18 -18
- package/tests/client/delete-coalescence-bug.test.ts +34 -34
- package/tests/client/edit-buffer.test.ts +27 -30
- package/tests/client/graph-coalescence-phase1.test.ts +66 -66
- package/tests/client/graph-coalescence.test.ts +50 -50
- package/tests/client/journal-benchmark.test.ts +5 -5
- package/tests/crdt/graph-text-crdt.test.ts +60 -64
- package/tests/crdt/rope.test.ts +9 -8
- package/tests/crdt/text-operations.test.ts +28 -28
- package/tests/fixtures/array-ops.jsonl +6 -6
- package/tests/fixtures/boolean-ops.jsonl +6 -6
- package/tests/fixtures/color-ops.jsonl +4 -4
- package/tests/fixtures/edit-buffer.jsonl +3 -3
- package/tests/fixtures/node-ops.jsonl +6 -6
- package/tests/fixtures/number-ops.jsonl +7 -7
- package/tests/fixtures/object-ops.jsonl +4 -4
- package/tests/fixtures/operations.jsonl +7 -7
- package/tests/fixtures/string-ops.jsonl +4 -4
- package/tests/fixtures/undo-redo.jsonl +3 -3
- package/tests/fixtures/vector-ops.jsonl +17 -17
- package/tests/operations/collections.test.ts +4 -4
- package/tests/operations/nodes.test.ts +5 -5
- package/tests/operations/operation-ordering.test.ts +406 -0
- package/tests/operations/primitives.test.ts +4 -4
- package/tests/operations/unified-schema.test.ts +27 -27
- package/tests/operations/vectors.test.ts +4 -4
- package/tests/sync/digest.test.ts +5 -5
|
@@ -25,10 +25,10 @@ import { create, getText, insert, insertWithSplit, remove, replace, apply, apply
|
|
|
25
25
|
*/
|
|
26
26
|
export class GraphTextCRDT {
|
|
27
27
|
_state;
|
|
28
|
-
|
|
29
|
-
constructor(
|
|
28
|
+
_client;
|
|
29
|
+
constructor(client) {
|
|
30
30
|
this._state = new Map();
|
|
31
|
-
this.
|
|
31
|
+
this._client = client;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Get or create TextRope for a text property
|
|
@@ -41,7 +41,7 @@ export class GraphTextCRDT {
|
|
|
41
41
|
}
|
|
42
42
|
let rope = nodeState.get(path);
|
|
43
43
|
if (!rope) {
|
|
44
|
-
rope = create(this.
|
|
44
|
+
rope = create(this._client);
|
|
45
45
|
nodeState.set(path, rope);
|
|
46
46
|
}
|
|
47
47
|
return rope;
|
|
@@ -67,7 +67,7 @@ export class GraphTextCRDT {
|
|
|
67
67
|
*/
|
|
68
68
|
insertLocal(nodeKey, path, position, text) {
|
|
69
69
|
const rope = this.getOrCreate(nodeKey, path);
|
|
70
|
-
return insertWithSplit(rope, position, text, this.
|
|
70
|
+
return insertWithSplit(rope, position, text, this._client);
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
73
|
* Apply remote insert operation
|
|
@@ -96,7 +96,7 @@ export class GraphTextCRDT {
|
|
|
96
96
|
*/
|
|
97
97
|
replaceLocal(nodeKey, path, position, length, text) {
|
|
98
98
|
const rope = this.getOrCreate(nodeKey, path);
|
|
99
|
-
return replace(rope, position, length, text, this.
|
|
99
|
+
return replace(rope, position, length, text, this._client);
|
|
100
100
|
}
|
|
101
101
|
/**
|
|
102
102
|
* Apply remote replace operation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphTextCRDT.js","sourceRoot":"","sources":["../../src/crdt/GraphTextCRDT.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EACL,MAAM,EACN,OAAO,EACP,MAAM,EACN,eAAe,EACf,MAAM,EACN,OAAO,EACP,KAAK,EACL,WAAW,EACX,YAAY,GAKb,MAAM,WAAW,CAAC;AAEnB,+CAA+C;AAC/C,QAAQ;AACR,+CAA+C;AAE/C;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAqC;IAC3C,
|
|
1
|
+
{"version":3,"file":"GraphTextCRDT.js","sourceRoot":"","sources":["../../src/crdt/GraphTextCRDT.ts"],"names":[],"mappings":"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"}
|
package/dist/crdt/Rope.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface Item {
|
|
|
15
15
|
id: ItemId;
|
|
16
16
|
content: string;
|
|
17
17
|
isDeleted: boolean;
|
|
18
|
-
|
|
18
|
+
anchor?: ItemId;
|
|
19
19
|
seq: number;
|
|
20
20
|
ts: number;
|
|
21
21
|
}
|
|
@@ -54,29 +54,28 @@ export declare class TextRope {
|
|
|
54
54
|
toJSON(): string;
|
|
55
55
|
}
|
|
56
56
|
export interface InsertOp {
|
|
57
|
-
|
|
57
|
+
ot: 'insert';
|
|
58
58
|
id: ItemId;
|
|
59
|
-
|
|
60
|
-
parentId: ItemId | null;
|
|
59
|
+
value: [ItemId | null, string];
|
|
61
60
|
seq: number;
|
|
62
61
|
ts: number;
|
|
63
62
|
}
|
|
64
63
|
export interface DeleteOp {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
id: ItemId;
|
|
68
|
-
length: number;
|
|
69
|
-
}>;
|
|
64
|
+
ot: 'delete';
|
|
65
|
+
rm: Array<[ItemId, number]>;
|
|
70
66
|
}
|
|
71
67
|
export interface MoveOp {
|
|
72
|
-
|
|
68
|
+
ot: 'move';
|
|
73
69
|
delete: DeleteOp;
|
|
74
70
|
insert: InsertOp;
|
|
75
71
|
}
|
|
76
72
|
export interface ReplaceOp {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
73
|
+
ot: 'replace';
|
|
74
|
+
rm: Array<[ItemId, number]>;
|
|
75
|
+
id: ItemId;
|
|
76
|
+
value: [ItemId | null, string];
|
|
77
|
+
seq: number;
|
|
78
|
+
ts: number;
|
|
80
79
|
}
|
|
81
80
|
/**
|
|
82
81
|
* Compare two ItemIds for equality
|
|
@@ -121,7 +120,7 @@ export declare function applyMove(rope: TextRope, op: MoveOp): void;
|
|
|
121
120
|
export declare function merge(rope: TextRope, other: TextRope): void;
|
|
122
121
|
export declare function snapshot(rope: TextRope): TextRope;
|
|
123
122
|
export declare function compact(rope: TextRope): TextRope;
|
|
124
|
-
export type RawTextRope = [string, number, number, Array<[string, string, string |
|
|
123
|
+
export type RawTextRope = [string, number, number, Array<[string, string, string | undefined, number, number]>];
|
|
125
124
|
export declare function toRaw(rope: TextRope): RawTextRope;
|
|
126
125
|
export declare function fromRaw(raw: RawTextRope, newAgentId?: string): TextRope;
|
|
127
126
|
export declare function fromSnapshot(snap: TextRope, newAgentId?: string): TextRope;
|
package/dist/crdt/Rope.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rope.d.ts","sourceRoot":"","sources":["../../src/crdt/Rope.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAMpB;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,
|
|
1
|
+
{"version":3,"file":"Rope.d.ts","sourceRoot":"","sources":["../../src/crdt/Rope.ts"],"names":[],"mappings":"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"}
|
package/dist/crdt/Rope.js
CHANGED
|
@@ -213,7 +213,7 @@ function splitItem(rope, ordinal, offset) {
|
|
|
213
213
|
id: createItemId(itemParsed.agent, itemParsed.seq),
|
|
214
214
|
content: item.content.slice(0, offset),
|
|
215
215
|
isDeleted: item.isDeleted,
|
|
216
|
-
|
|
216
|
+
...(item.anchor !== undefined && { anchor: item.anchor }),
|
|
217
217
|
seq: item.seq,
|
|
218
218
|
ts: item.ts,
|
|
219
219
|
};
|
|
@@ -221,7 +221,7 @@ function splitItem(rope, ordinal, offset) {
|
|
|
221
221
|
id: createItemId(itemParsed.agent, itemParsed.seq + offset),
|
|
222
222
|
content: item.content.slice(offset),
|
|
223
223
|
isDeleted: item.isDeleted,
|
|
224
|
-
|
|
224
|
+
anchor: createItemId(itemParsed.agent, itemParsed.seq + offset - 1),
|
|
225
225
|
seq: item.seq,
|
|
226
226
|
ts: item.ts,
|
|
227
227
|
};
|
|
@@ -243,10 +243,10 @@ function containsItemId(rope, id) {
|
|
|
243
243
|
return false;
|
|
244
244
|
return aiFind(entries, parsed.seq) !== -1;
|
|
245
245
|
}
|
|
246
|
-
function findParentOrdinal(rope,
|
|
247
|
-
if (
|
|
246
|
+
function findParentOrdinal(rope, anchor) {
|
|
247
|
+
if (anchor === undefined)
|
|
248
248
|
return -1;
|
|
249
|
-
const parsed = parseItemId(
|
|
249
|
+
const parsed = parseItemId(anchor);
|
|
250
250
|
const entries = rope._agentIndex.get(parsed.agent);
|
|
251
251
|
if (!entries)
|
|
252
252
|
return -1;
|
|
@@ -255,10 +255,10 @@ function findParentOrdinal(rope, parentId) {
|
|
|
255
255
|
return -1;
|
|
256
256
|
return computeOrdinal(rope._tree, entries[ei].item);
|
|
257
257
|
}
|
|
258
|
-
function splitForParent(rope,
|
|
259
|
-
if (
|
|
258
|
+
function splitForParent(rope, anchor) {
|
|
259
|
+
if (anchor === undefined)
|
|
260
260
|
return -1;
|
|
261
|
-
const parsedParent = parseItemId(
|
|
261
|
+
const parsedParent = parseItemId(anchor);
|
|
262
262
|
const entries = rope._agentIndex.get(parsedParent.agent);
|
|
263
263
|
if (!entries)
|
|
264
264
|
return -1;
|
|
@@ -319,7 +319,7 @@ function integrate(rope, newItem, parentOrdinal) {
|
|
|
319
319
|
// First, compare by Lamport timestamp (seq) - higher seq means happened later
|
|
320
320
|
if (newItem.seq > existingItem.seq)
|
|
321
321
|
break;
|
|
322
|
-
const existingParentOrdinal = findParentOrdinal(rope, existingItem.
|
|
322
|
+
const existingParentOrdinal = findParentOrdinal(rope, existingItem.anchor);
|
|
323
323
|
// If existing item's parent is before our parent in the document, insert here
|
|
324
324
|
if (existingParentOrdinal < parentOrdinal) {
|
|
325
325
|
break;
|
|
@@ -347,18 +347,20 @@ function integrate(rope, newItem, parentOrdinal) {
|
|
|
347
347
|
function _applyLocal(rope, op, parentOrdinal) {
|
|
348
348
|
if (op.seq > rope.maxSeq)
|
|
349
349
|
rope.maxSeq = op.seq;
|
|
350
|
+
const anchor = op.value[0];
|
|
351
|
+
const content = op.value[1];
|
|
350
352
|
const newItem = {
|
|
351
353
|
id: op.id,
|
|
352
|
-
content
|
|
354
|
+
content,
|
|
353
355
|
isDeleted: false,
|
|
354
|
-
|
|
356
|
+
...(anchor !== null && { anchor }),
|
|
355
357
|
seq: op.seq,
|
|
356
358
|
ts: op.ts,
|
|
357
359
|
};
|
|
358
360
|
integrate(rope, newItem, parentOrdinal);
|
|
359
361
|
const idParsed = parseItemId(op.id);
|
|
360
362
|
if (idParsed.agent === rope.agentId) {
|
|
361
|
-
const maxSeqInItem = idParsed.seq +
|
|
363
|
+
const maxSeqInItem = idParsed.seq + content.length - 1;
|
|
362
364
|
if (maxSeqInItem >= rope.clock)
|
|
363
365
|
rope.clock = maxSeqInItem + 1;
|
|
364
366
|
}
|
|
@@ -389,14 +391,13 @@ export function insert(rope, position, content, agentId) {
|
|
|
389
391
|
switchAgent(rope, agentId);
|
|
390
392
|
const parentId = findInsertPosition(rope, position);
|
|
391
393
|
const op = {
|
|
392
|
-
|
|
394
|
+
ot: 'insert',
|
|
393
395
|
id: createItemId(rope.agentId, rope.clock),
|
|
394
|
-
content,
|
|
395
|
-
parentId,
|
|
396
|
+
value: [parentId, content],
|
|
396
397
|
seq: rope.maxSeq + 1,
|
|
397
398
|
ts: Date.now() / 1000,
|
|
398
399
|
};
|
|
399
|
-
const parentOrdinal = splitForParent(rope, op.
|
|
400
|
+
const parentOrdinal = splitForParent(rope, op.value[0] ?? undefined);
|
|
400
401
|
_applyLocal(rope, op, parentOrdinal);
|
|
401
402
|
return op;
|
|
402
403
|
}
|
|
@@ -421,10 +422,9 @@ export function insertWithSplit(rope, position, content, agentId) {
|
|
|
421
422
|
}
|
|
422
423
|
}
|
|
423
424
|
const op = {
|
|
424
|
-
|
|
425
|
+
ot: 'insert',
|
|
425
426
|
id: createItemId(rope.agentId, rope.clock),
|
|
426
|
-
content,
|
|
427
|
-
parentId,
|
|
427
|
+
value: [parentId, content],
|
|
428
428
|
seq: rope.maxSeq + 1,
|
|
429
429
|
ts: Date.now() / 1000,
|
|
430
430
|
};
|
|
@@ -441,19 +441,21 @@ export function apply(rope, op) {
|
|
|
441
441
|
rope.maxSeq = op.seq;
|
|
442
442
|
if (containsItemId(rope, op.id))
|
|
443
443
|
return;
|
|
444
|
-
const
|
|
444
|
+
const anchor = op.value[0];
|
|
445
|
+
const content = op.value[1];
|
|
446
|
+
const parentOrdinal = splitForParent(rope, anchor ?? undefined);
|
|
445
447
|
const newItem = {
|
|
446
448
|
id: op.id,
|
|
447
|
-
content
|
|
449
|
+
content,
|
|
448
450
|
isDeleted: false,
|
|
449
|
-
|
|
451
|
+
...(anchor !== null && { anchor }),
|
|
450
452
|
seq: op.seq,
|
|
451
453
|
ts: op.ts,
|
|
452
454
|
};
|
|
453
455
|
integrate(rope, newItem, parentOrdinal);
|
|
454
456
|
const idParsed = parseItemId(op.id);
|
|
455
457
|
if (idParsed.agent === rope.agentId) {
|
|
456
|
-
const maxSeqInItem = idParsed.seq +
|
|
458
|
+
const maxSeqInItem = idParsed.seq + content.length - 1;
|
|
457
459
|
if (maxSeqInItem >= rope.clock)
|
|
458
460
|
rope.clock = maxSeqInItem + 1;
|
|
459
461
|
}
|
|
@@ -475,11 +477,11 @@ function canMergeDeletions(lastId, lastLength, currentId) {
|
|
|
475
477
|
}
|
|
476
478
|
export function remove(rope, position, length) {
|
|
477
479
|
if (length === 0)
|
|
478
|
-
return {
|
|
480
|
+
return { ot: 'delete', rm: [] };
|
|
479
481
|
// Invalidate insert tracking when deleting
|
|
480
482
|
rope.lastInsertId = null;
|
|
481
483
|
rope.lastInsertPos = 0;
|
|
482
|
-
const
|
|
484
|
+
const rm = [];
|
|
483
485
|
let remaining = length;
|
|
484
486
|
while (remaining > 0) {
|
|
485
487
|
const result = findByVisiblePos(rope._tree, position);
|
|
@@ -504,32 +506,34 @@ export function remove(rope, position, length) {
|
|
|
504
506
|
item.isDeleted = true;
|
|
505
507
|
recalcCountsFor(rope._tree, item);
|
|
506
508
|
// Try to merge with previous deletion if consecutive
|
|
507
|
-
const lastDeletion =
|
|
508
|
-
if (lastDeletion && canMergeDeletions(lastDeletion
|
|
509
|
+
const lastDeletion = rm[rm.length - 1];
|
|
510
|
+
if (lastDeletion && canMergeDeletions(lastDeletion[0], lastDeletion[1], item.id)) {
|
|
509
511
|
// Merge: extend the previous deletion
|
|
510
|
-
lastDeletion
|
|
512
|
+
lastDeletion[1] += item.content.length;
|
|
511
513
|
}
|
|
512
514
|
else {
|
|
513
515
|
// Cannot merge: add new deletion entry
|
|
514
|
-
|
|
516
|
+
rm.push([item.id, item.content.length]);
|
|
515
517
|
}
|
|
516
518
|
remaining -= toDelete;
|
|
517
519
|
}
|
|
518
|
-
return {
|
|
520
|
+
return { ot: 'delete', rm };
|
|
519
521
|
}
|
|
520
522
|
export function applyDelete(rope, op) {
|
|
521
|
-
if (op.
|
|
523
|
+
if (op.rm.length === 0)
|
|
522
524
|
return;
|
|
523
525
|
// Group and merge deletion ranges by agent
|
|
524
526
|
const byAgent = new Map();
|
|
525
|
-
for (const del of op.
|
|
526
|
-
const
|
|
527
|
+
for (const del of op.rm) {
|
|
528
|
+
const itemId = del[0];
|
|
529
|
+
const len = del[1];
|
|
530
|
+
const parsed = parseItemId(itemId);
|
|
527
531
|
let ranges = byAgent.get(parsed.agent);
|
|
528
532
|
if (!ranges) {
|
|
529
533
|
ranges = [];
|
|
530
534
|
byAgent.set(parsed.agent, ranges);
|
|
531
535
|
}
|
|
532
|
-
ranges.push({ start: parsed.seq, end: parsed.seq +
|
|
536
|
+
ranges.push({ start: parsed.seq, end: parsed.seq + len });
|
|
533
537
|
}
|
|
534
538
|
for (const [, ranges] of byAgent) {
|
|
535
539
|
if (ranges.length > 1) {
|
|
@@ -612,16 +616,78 @@ function applyDeleteRange(rope, agent, start, end) {
|
|
|
612
616
|
export function replace(rope, position, deleteLength, insertText, agentId) {
|
|
613
617
|
if (agentId !== undefined)
|
|
614
618
|
switchAgent(rope, agentId);
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
619
|
+
// Capture parent ID for insert BEFORE delete (delete mutates rope and loses parent info)
|
|
620
|
+
let insertParentId = null;
|
|
621
|
+
let insertParentOrdinal = -1;
|
|
622
|
+
let needsSplit = false;
|
|
623
|
+
let splitOffset = 0;
|
|
624
|
+
if (insertText.length > 0) {
|
|
625
|
+
// Check if we're continuing from the last insert position (continuous typing)
|
|
626
|
+
if (position === rope.lastInsertPos && rope.lastInsertId !== null) {
|
|
627
|
+
insertParentId = rope.lastInsertId;
|
|
628
|
+
insertParentOrdinal = splitForParent(rope, insertParentId);
|
|
629
|
+
}
|
|
630
|
+
else {
|
|
631
|
+
// Cursor moved or first insert - capture parent info before delete
|
|
632
|
+
const result = findInsertPositionWithSplit(rope, position);
|
|
633
|
+
insertParentId = result.parentId;
|
|
634
|
+
insertParentOrdinal = result.parentOrdinal;
|
|
635
|
+
needsSplit = result.needsSplit;
|
|
636
|
+
splitOffset = result.splitOffset;
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
// Delete operation invalidates insert tracking
|
|
640
|
+
const deleteOp = deleteLength > 0 ? remove(rope, position, deleteLength) : { ot: 'delete', rm: [] };
|
|
641
|
+
// Create flattened replace operation
|
|
642
|
+
const replaceOp = {
|
|
643
|
+
ot: 'replace',
|
|
644
|
+
rm: deleteOp.rm,
|
|
645
|
+
id: createItemId(rope.agentId, rope.clock),
|
|
646
|
+
value: [insertParentId, insertText],
|
|
647
|
+
seq: rope.maxSeq + 1,
|
|
648
|
+
ts: Date.now() / 1000,
|
|
649
|
+
};
|
|
650
|
+
// Apply insert if there's text to insert
|
|
651
|
+
if (insertText.length > 0) {
|
|
652
|
+
// Split item if needed (parent ordinal may have changed after delete)
|
|
653
|
+
if (needsSplit && insertParentOrdinal >= 0) {
|
|
654
|
+
splitItem(rope, insertParentOrdinal, splitOffset);
|
|
655
|
+
}
|
|
656
|
+
const insertOp = {
|
|
657
|
+
ot: 'insert',
|
|
658
|
+
id: replaceOp.id,
|
|
659
|
+
value: replaceOp.value,
|
|
660
|
+
seq: replaceOp.seq,
|
|
661
|
+
ts: replaceOp.ts,
|
|
662
|
+
};
|
|
663
|
+
_applyLocal(rope, insertOp, insertParentOrdinal);
|
|
664
|
+
// Update last insert tracking
|
|
665
|
+
const opIdParsed = parseItemId(insertOp.id);
|
|
666
|
+
const lastCharSeq = opIdParsed.seq + insertText.length - 1;
|
|
667
|
+
rope.lastInsertId = createItemId(rope.agentId, lastCharSeq);
|
|
668
|
+
rope.lastInsertPos = position + insertText.length;
|
|
669
|
+
}
|
|
670
|
+
else {
|
|
671
|
+
rope.lastInsertId = null;
|
|
672
|
+
rope.lastInsertPos = 0;
|
|
673
|
+
}
|
|
674
|
+
return replaceOp;
|
|
620
675
|
}
|
|
621
676
|
export function applyReplace(rope, op) {
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
677
|
+
// Apply delete side
|
|
678
|
+
const deleteOp = { ot: 'delete', rm: op.rm };
|
|
679
|
+
applyDelete(rope, deleteOp);
|
|
680
|
+
// Apply insert side
|
|
681
|
+
const content = op.value[1];
|
|
682
|
+
if (content.length > 0) {
|
|
683
|
+
const insertOp = {
|
|
684
|
+
ot: 'insert',
|
|
685
|
+
id: op.id,
|
|
686
|
+
value: op.value,
|
|
687
|
+
seq: op.seq,
|
|
688
|
+
ts: op.ts,
|
|
689
|
+
};
|
|
690
|
+
apply(rope, insertOp);
|
|
625
691
|
}
|
|
626
692
|
}
|
|
627
693
|
export function move(rope, fromPosition, length, toPosition, agentId) {
|
|
@@ -653,7 +719,7 @@ export function move(rope, fromPosition, length, toPosition, agentId) {
|
|
|
653
719
|
if (toPosition > fromPosition)
|
|
654
720
|
adjustedTo = toPosition - length;
|
|
655
721
|
const insertOp = insertWithSplit(rope, adjustedTo, content);
|
|
656
|
-
return {
|
|
722
|
+
return { ot: 'move', delete: deleteOp, insert: insertOp };
|
|
657
723
|
}
|
|
658
724
|
export function applyMove(rope, op) {
|
|
659
725
|
applyDelete(rope, op.delete);
|
|
@@ -666,15 +732,14 @@ export function merge(rope, other) {
|
|
|
666
732
|
for (const treeItem of iterateAll(other._tree)) {
|
|
667
733
|
const item = treeItem;
|
|
668
734
|
apply(rope, {
|
|
669
|
-
|
|
735
|
+
ot: 'insert',
|
|
670
736
|
id: item.id,
|
|
671
|
-
|
|
672
|
-
parentId: item.parentId,
|
|
737
|
+
value: [item.anchor ?? null, item.content],
|
|
673
738
|
seq: item.seq,
|
|
674
739
|
ts: item.ts,
|
|
675
740
|
});
|
|
676
741
|
if (item.isDeleted) {
|
|
677
|
-
applyDelete(rope, {
|
|
742
|
+
applyDelete(rope, { ot: 'delete', rm: [[item.id, item.content.length]] });
|
|
678
743
|
}
|
|
679
744
|
}
|
|
680
745
|
}
|
|
@@ -715,7 +780,7 @@ export function toRaw(rope) {
|
|
|
715
780
|
const rawItems = items.map(item => [
|
|
716
781
|
item.id,
|
|
717
782
|
item.content,
|
|
718
|
-
item.
|
|
783
|
+
item.anchor,
|
|
719
784
|
item.seq,
|
|
720
785
|
item.ts,
|
|
721
786
|
]);
|
|
@@ -723,11 +788,11 @@ export function toRaw(rope) {
|
|
|
723
788
|
}
|
|
724
789
|
export function fromRaw(raw, newAgentId) {
|
|
725
790
|
const [agentId, clock, maxSeq, rawItems] = raw;
|
|
726
|
-
const items = rawItems.map(([id, content,
|
|
791
|
+
const items = rawItems.map(([id, content, anchor, seq, ts]) => ({
|
|
727
792
|
id,
|
|
728
793
|
content,
|
|
729
794
|
isDeleted: false,
|
|
730
|
-
|
|
795
|
+
...(anchor !== undefined && { anchor }),
|
|
731
796
|
seq,
|
|
732
797
|
ts,
|
|
733
798
|
}));
|
|
@@ -776,15 +841,21 @@ function extractItemsFromSerializedTree(node) {
|
|
|
776
841
|
const items = n.items;
|
|
777
842
|
if (!Array.isArray(items))
|
|
778
843
|
return [];
|
|
779
|
-
return items.map((item) =>
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
844
|
+
return items.map((item) => {
|
|
845
|
+
const result = {
|
|
846
|
+
id: typeof item.id === 'string' ? item.id : createItemId(item.id.agent, item.id.seq),
|
|
847
|
+
content: item.content,
|
|
848
|
+
isDeleted: item.isDeleted ?? false,
|
|
849
|
+
seq: item.seq,
|
|
850
|
+
ts: item.ts ?? Date.now() / 1000,
|
|
851
|
+
};
|
|
852
|
+
// Handle both old 'parentId' and new 'anchor' field names
|
|
853
|
+
const anchorValue = item.anchor ?? item.parentId;
|
|
854
|
+
if (anchorValue !== undefined && anchorValue !== null) {
|
|
855
|
+
result.anchor = typeof anchorValue === 'string' ? anchorValue : createItemId(anchorValue.agent, anchorValue.seq);
|
|
856
|
+
}
|
|
857
|
+
return result;
|
|
858
|
+
});
|
|
788
859
|
}
|
|
789
860
|
else if (n.type === 'internal') {
|
|
790
861
|
// Internal node: recursively collect from children
|
package/dist/crdt/Rope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rope.js","sourceRoot":"","sources":["../../src/crdt/Rope.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EACrD,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAClD,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,GAEhE,MAAM,YAAY,CAAC;AA2BpB;;;;;GAKG;AACH,MAAM,OAAO,QAAQ;IACnB,KAAK,CAAW;IAChB,WAAW,CAA2B;IACtC,OAAO,CAAS;IAChB,KAAK,CAAS;IACd,MAAM,CAAS;IACf,YAAY,CAAgB,CAAK,wCAAwC;IACzE,aAAa,CAAS,CAAY,mCAAmC;IAErE,YACE,IAAc,EACd,UAAoC,EACpC,OAAe,EACf,KAAa,EACb,MAAc;QAEd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,MAAM;QACJ,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AA4BD,+CAA+C;AAC/C,YAAY;AACZ,+CAA+C;AAE/C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,CAAgB,EAAE,CAAgB;IAC7D,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,CAAS;IAChD,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO;QACL,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;QAC5B,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,GAAW;IACrD,OAAO,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC;AAC3B,CAAC;AAED,+CAA+C;AAC/C,sBAAsB;AACtB,+CAA+C;AAE/C,SAAS,MAAM,CAAC,OAAoB,EAAE,GAAW;IAC/C,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,GAAG,GAAG,CAAC,CAAC,QAAQ;YAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;aAC9B,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;YAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;;YAClC,OAAO,GAAG,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,KAAK,CAAC,KAA+B,EAAE,IAAU;IACxD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAc;QACvB,QAAQ,EAAE,MAAM,CAAC,GAAG;QACpB,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;QACxC,IAAI;KACL,CAAC;IACF,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QAAC,GAAG,GAAG,EAAE,CAAC;QAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAAC,CAAC;IACrD,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;IAC5B,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;YAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;;YAChD,EAAE,GAAG,GAAG,CAAC;IAChB,CAAC;IACD,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,KAA+B,EAAE,IAAU;IAC3D,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YAAC,GAAG,GAAG,EAAE,CAAC;YAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAAC,CAAC;QACrD,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C;AAE/C,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAc;IACrC,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAW,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,EAAiB;IAC5D,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;QAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAc;IAMrC,IAAI,SAAS,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAAC,YAAY,EAAE,CAAC;QAAC,CAAC;aAClC,CAAC;YAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAAC,YAAY,EAAE,CAAC;QAAC,CAAC;IAC5D,CAAC;IACD,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,SAAS;QACT,YAAY;QACZ,aAAa,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,oCAAoC;AACpC,+CAA+C;AAE/C,SAAS,SAAS,CAAC,IAAc,EAAE,OAAe,EAAE,MAAc;IAChE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAS,CAAC;IAChD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAExC,MAAM,MAAM,GAAS;QACnB,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC;QAClD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;QACtC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,EAAE,EAAE,IAAI,CAAC,EAAE;KACZ,CAAC;IAEF,MAAM,KAAK,GAAS;QAClB,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC;QAC3D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC;QACrE,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,EAAE,EAAE,IAAI,CAAC,EAAE;KACZ,CAAC;IAEF,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE/B,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9D,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,YAAY,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,IAAc,EAAE,EAAU;IAChD,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAc,EAAE,QAAuB;IAChE,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACzB,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,cAAc,CAAC,IAAc,EAAE,QAAuB;IAC7D,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAC9B,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1D,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+CAA+C;AAC/C,yCAAyC;AACzC,+CAA+C;AAE/C,SAAS,kBAAkB,CAAC,IAAc,EAAE,QAAgB;IAC1D,IAAI,QAAQ,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhE,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAY,CAAC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAc,EAAE,QAAgB;IAMnE,IAAI,QAAQ,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAClF,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAClF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAY,CAAC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAW,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAExD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC;AAC9F,CAAC;AAED,+CAA+C;AAC/C,sCAAsC;AACtC,+CAA+C;AAE/C,SAAS,SAAS,CAAC,IAAc,EAAE,OAAa,EAAE,aAAqB;IACrE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC;IAEtC,IAAI,aAAa,GAAG,KAAK,EAAE,CAAC;QAC1B,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC;YAC9D,MAAM,YAAY,GAAG,QAAgB,CAAC;YACtC,8EAA8E;YAC9E,IAAI,OAAO,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG;gBAAE,MAAM;YAE1C,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;YAE7E,8EAA8E;YAC9E,IAAI,qBAAqB,GAAG,aAAa,EAAE,CAAC;gBAC1C,MAAM;YACR,CAAC;YAED,iFAAiF;YACjF,IAAI,qBAAqB,KAAK,aAAa,IAAI,OAAO,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,EAAE,CAAC;gBAChF,4DAA4D;gBAC5D,IAAI,OAAO,CAAC,EAAE,GAAG,YAAY,CAAC,EAAE,EAAE,CAAC;oBACjC,MAAM;gBACR,CAAC;gBACD,sEAAsE;gBACtE,IAAI,OAAO,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrF,MAAM;gBACR,CAAC;YACH,CAAC;YAED,6DAA6D;YAC7D,6DAA6D;YAC7D,mDAAmD;YAEnD,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,IAAc,EAAE,EAAY,EAAE,aAAqB;IACtE,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC;IAE/C,MAAM,OAAO,GAAS;QACpB,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,GAAG,EAAE,EAAE,CAAC,GAAG;QACX,EAAE,EAAE,EAAE,CAAC,EAAE;KACV,CAAC;IAEF,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1D,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,YAAY,GAAG,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,kBAAkB;AAClB,+CAA+C;AAE/C;;;;GAIG;AACH,SAAS,WAAW,CAAC,IAAc,EAAE,OAAe;IAClD,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO;QAAE,OAAO;IACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,sBAAsB;AACtB,+CAA+C;AAE/C,MAAM,UAAU,MAAM,CAAC,IAAc,EAAE,QAAgB,EAAE,OAAe,EAAE,OAAgB;IACxF,IAAI,OAAO,KAAK,SAAS;QAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEpD,MAAM,EAAE,GAAa;QACnB,KAAK,EAAE,QAAQ;QACf,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QAC1C,OAAO;QACP,QAAQ;QACR,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;QACpB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;KACtB,CAAC;IAEF,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IACxD,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc,EAAE,QAAgB,EAAE,OAAe,EAAE,OAAgB;IACjG,IAAI,OAAO,KAAK,SAAS;QAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtD,IAAI,QAAuB,CAAC;IAC5B,IAAI,aAAqB,CAAC;IAE1B,8EAA8E;IAC9E,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QAClE,mFAAmF;QACnF,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7B,aAAa,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,2DAA2D;QAC3D,MAAM,MAAM,GAAG,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3D,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAErC,IAAI,MAAM,CAAC,UAAU,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;YAC5C,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAa;QACnB,KAAK,EAAE,QAAQ;QACf,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QAC1C,OAAO;QACP,QAAQ;QACR,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;QACpB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;KACtB,CAAC;IAEF,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;IAErC,uEAAuE;IACvE,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,CAAC,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAc,EAAE,EAAY;IAChD,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC;IAC/C,IAAI,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAAE,OAAO;IAExC,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IAExD,MAAM,OAAO,GAAS;QACpB,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,GAAG,EAAE,EAAE,CAAC,GAAG;QACX,EAAE,EAAE,EAAE,CAAC,EAAE;KACV,CAAC;IAEF,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1D,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,YAAY,GAAG,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,sBAAsB;AACtB,+CAA+C;AAE/C;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,UAAkB,EAAE,SAAiB;IAC9E,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAE7C,uEAAuE;IACvE,OAAO,UAAU,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK;QACxC,UAAU,CAAC,GAAG,GAAG,UAAU,KAAK,aAAa,CAAC,GAAG,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAc,EAAE,QAAgB,EAAE,MAAc;IACrE,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAE5D,2CAA2C;IAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAEvB,MAAM,SAAS,GAA0C,EAAE,CAAC;IAC5D,IAAI,SAAS,GAAG,MAAM,CAAC;IAEvB,OAAO,SAAS,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM;YAAE,MAAM;QAEnB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAY,CAAC;QAC/B,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAErC,qDAAqD;QACrD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YACrC,OAAO,EAAE,CAAC;YACV,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAS,CAAC;QAC5C,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE1D,yDAAyD;QACzD,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAS,CAAC;QAC5C,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAElC,qDAAqD;QACrD,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,YAAY,IAAI,iBAAiB,CAAC,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACrF,sCAAsC;YACtC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,uCAAuC;YACvC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,SAAS,IAAI,QAAQ,CAAC;IACxB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAc,EAAE,EAAY;IACtD,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEtC,2CAA2C;IAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4C,CAAC;IACpE,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YAAC,MAAM,GAAG,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACrC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc,EAAE,KAAa,EAAE,KAAa,EAAE,GAAW;IACjF,OAAO,KAAK,GAAG,GAAG,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE7C,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACd,gCAAgC;YAChC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK;oBAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;;oBAC1C,EAAE,GAAG,GAAG,CAAC;YAChB,CAAC;YACD,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,IAAI,GAAG;gBAAE,OAAO;YAChE,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;QAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC;QACjC,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAE1C,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YACzD,eAAe;YACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,GAAG,UAAU,CAAC;QACrB,CAAC;aAAM,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;YACpC,0CAA0C;YAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjD,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;YACnD,6DAA6D;QAC/D,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjD,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAS,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;gBAC1B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC5B,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,GAAG,UAAU,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,8BAA8B;AAC9B,+CAA+C;AAE/C,MAAM,UAAU,OAAO,CACrB,IAAc,EACd,QAAgB,EAChB,YAAoB,EACpB,UAAkB,EAClB,OAAgB;IAEhB,IAAI,OAAO,KAAK,SAAS;QAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAa,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACxH,MAAM,QAAQ,GAAa,UAAU,CAAC,MAAM,GAAG,CAAC;QAC9C,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC;QAC7C,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC1I,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,EAAa;IACxD,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAc,EAAE,YAAoB,EAAE,MAAc,EAAE,UAAkB,EAAE,OAAgB;IAC7G,IAAI,OAAO,KAAK,SAAS;QAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtD,kCAAkC;IAClC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,SAAS,GAAG,MAAM,CAAC;IACvB,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC/D,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,WAAW,CAAC,IAAY,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QACpF,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QAC1F,SAAS,IAAI,IAAI,CAAC;QAElB,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxE,IAAI,SAAS,IAAI,CAAC;oBAAE,MAAM;gBAC1B,IAAI,QAAQ,CAAC,SAAS;oBAAE,SAAS;gBACjC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvD,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxC,SAAS,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,UAAU,GAAG,UAAU,CAAC;IAC5B,IAAI,UAAU,GAAG,YAAY;QAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IAChE,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAE5D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAc,EAAE,EAAU;IAClD,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAED,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C,MAAM,UAAU,KAAK,CAAC,IAAc,EAAE,KAAe;IACnD,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,QAAgB,CAAC;QAC9B,KAAK,CAAC,IAAI,EAAE;YACV,KAAK,EAAE,QAAQ;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,WAAW,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAc;IACrC,MAAM,KAAK,GAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9E,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,MAAM,YAAY,GAAW,EAAE,CAAC;IAChC,IAAI,QAAQ,GAAgB,IAAI,CAAC;IAEjC,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,QAAgB,CAAC;QAC9B,IAAI,IAAI,CAAC,SAAS;YAAE,SAAS;QAC7B,MAAM,OAAO,GAAS,EAAE,GAAG,IAAI,EAAE,CAAC;QAClC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK;gBACpC,UAAU,CAAC,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;gBAC/D,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,QAAQ,GAAG,OAAO,CAAC;YACrB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,QAAQ,GAAG,OAAO,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5G,CAAC;AAQD,MAAM,UAAU,KAAK,CAAC,IAAc;IAClC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAW,CAAC;IACtD,MAAM,QAAQ,GAA2D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACzF,IAAI,CAAC,EAAE;QACP,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,EAAE;KACR,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAgB,EAAE,UAAmB;IAC3D,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC;IAC/C,MAAM,KAAK,GAAW,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,EAAE;QACF,OAAO;QACP,SAAS,EAAE,KAAK;QAChB,QAAQ;QACR,GAAG;QACH,EAAE;KACH,CAAC,CAAC,CAAC;IACJ,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9G,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,UAAmB;IAC9D,MAAM,KAAK,GAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9E,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7H,CAAC;AAED,+CAA+C;AAC/C,2DAA2D;AAC3D,+CAA+C;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,KAAK,YAAY,QAAQ;QAAE,OAAO,KAAK,CAAC,CAAC,8BAA8B;IAC3E,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,sCAAsC;IACtC,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0DAA0D;IAC1D,OAAO,CACL,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;QAC7B,GAAG,CAAC,KAAK,KAAK,IAAI;QAClB,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC/B,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;QAC7B,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAC/B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,8BAA8B,CAAC,IAAa;IACnD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEjD,MAAM,CAAC,GAAG,IAA+B,CAAC;IAE1C,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtB,iCAAiC;QACjC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAkB,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;YAC/B,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;YACpF,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5G,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;SACjC,CAAC,CAAC,CAAC;IACN,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACjC,mDAAmD;QACnD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAqB,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAW,EAAE,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qDAAqD;IACrD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,YAAY,QAAQ;QAAE,OAAO,GAAG,CAAC,CAAC,qBAAqB;IAE9D,MAAM,KAAK,GAAG,GAA8B,CAAC;IAE7C,mCAAmC;IACnC,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO,OAAO,CAAC,KAAK,CAAC,GAAkB,CAAC,CAAC;IAC3C,CAAC;IAED,uDAAuD;IACvD,MAAM,KAAK,GAAG,8BAA8B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAI,KAAK,CAAC,OAAkB,IAAI,SAAS,CAAC;IACvD,MAAM,KAAK,GAAI,KAAK,CAAC,KAAgB,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAI,KAAK,CAAC,MAAiB,IAAI,CAAC,CAAC;IAE7C,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/E,CAAC"}
|
|
1
|
+
{"version":3,"file":"Rope.js","sourceRoot":"","sources":["../../src/crdt/Rope.ts"],"names":[],"mappings":"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"}
|