articulated 1.2.0 → 1.3.1

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/README.md CHANGED
@@ -1,16 +1,15 @@
1
1
  # articulated
2
2
 
3
- A TypeScript library for managing stable element identifiers in mutable lists, perfect for collaborative editing and other applications where elements need persistent identities despite insertions and deletions.
3
+ A TypeScript library for managing stable element identifiers in mutable lists, intended for collaborative editing and other applications where elements need persistent identities despite insertions and deletions.
4
4
 
5
5
  [Demos](https://github.com/mweidner037/articulated-demos)
6
6
 
7
7
  ## Features
8
8
 
9
- - **Stable identifiers**: Elements keep their identity even as their indices change
10
- - **Efficient storage**: Optimized compression for sequential IDs
11
- - **Collaborative-ready**: Supports concurrent operations from multiple sources
12
- - **Tombstone support**: Deleted elements remain addressable
13
- - **TypeScript-first**: Full type safety and excellent IDE integration
9
+ - **Stable identifiers**: Elements keep their identity even as their indices change.
10
+ - **Efficient storage**: Optimized compression for sequential IDs.
11
+ - **Collaboration-ready**: Designed to handle operations from multiple sources.
12
+ - **Tombstone support**: Deleted elements remain addressable.
14
13
 
15
14
  ## Installation
16
15
 
@@ -132,6 +131,8 @@ let newList = IdList.load(savedState);
132
131
  - Any list where elements' positions change but need stable identifiers
133
132
  - Conflict-free replicated data type (CRDT) implementations
134
133
 
134
+ **Note**: IdList is not itself a CRDT. Concurrent insertAfter operations with the same `before` ID will _not_ commute with each other. However, you can implement a list/text CRDT on top of IdList, by processing collaborative insertAfter and delete operations in an [eventually consistent total order](https://mattweidner.com/2025/05/21/text-without-crdts.html#decentralized-variants).
135
+
135
136
  ## Internals
136
137
 
137
138
  IdList stores its state as a modified [B+Tree](https://en.wikipedia.org/wiki/B%2B_tree), described at the top of [its source code](./src/id_list.ts). Each leaf in the B+Tree represents multiple ElementIds (sharing a bunchId and sequential counters) in a compressed way; for normal collaborative text editing, expect 10-20 ElementIds per leaf.
@@ -22,6 +22,12 @@ export declare class ElementIdGenerator {
22
22
  * { bunchId: beforeId.bunchId, counter: beforeId.counter + 1 }
23
23
  * ```
24
24
  * which compresses well when inserted after beforeId.
25
+ *
26
+ * @param count Provide this if you are planning to bulk-insert `count` ids from left-to-right
27
+ * (by supplying the same `count` to insertAfter/insertBefore).
28
+ * Only the first id is returned, but we will reserve space for the other ids so that
29
+ * they are not generated again.
30
+ * @throws If count is provided but is not >= 1.
25
31
  */
26
- generateAfter(beforeId: ElementId | null): ElementId;
32
+ generateAfter(beforeId: ElementId | null, count?: number): ElementId;
27
33
  }
@@ -25,19 +25,28 @@ class ElementIdGenerator {
25
25
  * { bunchId: beforeId.bunchId, counter: beforeId.counter + 1 }
26
26
  * ```
27
27
  * which compresses well when inserted after beforeId.
28
+ *
29
+ * @param count Provide this if you are planning to bulk-insert `count` ids from left-to-right
30
+ * (by supplying the same `count` to insertAfter/insertBefore).
31
+ * Only the first id is returned, but we will reserve space for the other ids so that
32
+ * they are not generated again.
33
+ * @throws If count is provided but is not >= 1.
28
34
  */
29
- generateAfter(beforeId) {
35
+ generateAfter(beforeId, count = 1) {
36
+ if (!(Number.isSafeInteger(count) && count >= 1)) {
37
+ throw new Error(`Invalid count: ${count}`);
38
+ }
30
39
  if (beforeId !== null) {
31
40
  const nextCounter = this.nextCounterMap.get(beforeId.bunchId);
32
41
  if (nextCounter !== undefined && nextCounter === beforeId.counter + 1) {
33
42
  // It's our own ElementId and the last in its bunch. Extend the bunch.
34
- this.nextCounterMap.set(beforeId.bunchId, nextCounter + 1);
43
+ this.nextCounterMap.set(beforeId.bunchId, nextCounter + count);
35
44
  return { bunchId: beforeId.bunchId, counter: nextCounter };
36
45
  }
37
46
  }
38
47
  // In all other cases, start a new bunch.
39
48
  const bunchId = this.newBunchId();
40
- this.nextCounterMap.set(bunchId, 1);
49
+ this.nextCounterMap.set(bunchId, count);
41
50
  return { bunchId, counter: 0 };
42
51
  }
43
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"element_id_generator.js","sourceRoot":"","sources":["../../src/element_id_generator.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,kBAAkB;IAM7B;;;OAGG;IACH,YAA6B,UAAwB;QAAxB,eAAU,GAAV,UAAU,CAAc;QATrD;;WAEG;QACc,mBAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAMJ,CAAC;IAEzD;;;;;;;;;OASG;IACH,aAAa,CAAC,QAA0B;QACtC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACtE,sEAAsE;gBACtE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;gBAC3D,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC;CACF;AArCD,gDAqCC"}
1
+ {"version":3,"file":"element_id_generator.js","sourceRoot":"","sources":["../../src/element_id_generator.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,kBAAkB;IAM7B;;;OAGG;IACH,YAA6B,UAAwB;QAAxB,eAAU,GAAV,UAAU,CAAc;QATrD;;WAEG;QACc,mBAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAMJ,CAAC;IAEzD;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,QAA0B,EAAE,KAAK,GAAG,CAAC;QACjD,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACtE,sEAAsE;gBACtE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC;gBAC/D,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC;CACF;AA/CD,gDA+CC"}
@@ -205,7 +205,6 @@ export declare class IdList {
205
205
  * __Note__: To delete multiple ids at sequential *indexes*, use deleteRange.
206
206
  */
207
207
  delete(id: ElementId, count?: number): IdList;
208
- private deleteOne;
209
208
  /**
210
209
  * Deletes all ids with indexes in the range [from, to).
211
210
  *
@@ -225,7 +224,6 @@ export declare class IdList {
225
224
  * @throws If any deleted id is not known.
226
225
  */
227
226
  undelete(id: ElementId, count?: number): IdList;
228
- private undeleteOne;
229
227
  /**
230
228
  * Returns the path from id's leaf node to the root, or null if id is not found.
231
229
  *
@@ -448,24 +448,35 @@ class IdList {
448
448
  */
449
449
  delete(id, count = 1) {
450
450
  (0, misc_1.checkCount)(count);
451
+ if (count === 0)
452
+ return this;
451
453
  // eslint-disable-next-line @typescript-eslint/no-this-alias
452
454
  let ans = this;
453
- for (let i = 0; i < count; i++) {
454
- ans = ans.deleteOne({ bunchId: id.bunchId, counter: id.counter + i });
455
+ let currentCounter = id.counter;
456
+ while (currentCounter < id.counter + count) {
457
+ const currentId = {
458
+ bunchId: id.bunchId,
459
+ counter: currentCounter,
460
+ };
461
+ const located = ans.locate(currentId);
462
+ if (located === null) {
463
+ // Id is not known, skip
464
+ currentCounter++;
465
+ continue;
466
+ }
467
+ const leaf = located[0].node;
468
+ // Calculate how many ids can be deleted in this leaf
469
+ const leafEnd = leaf.startCounter + leaf.count;
470
+ const remaining = id.counter + count - currentCounter;
471
+ const canDeleteInLeaf = Math.min(leafEnd - currentCounter, remaining);
472
+ const newPresent = leaf.present.clone();
473
+ newPresent.delete(currentCounter, canDeleteInLeaf);
474
+ ans = ans.replaceLeaf(located, { ...leaf, present: newPresent });
475
+ // Move to the next batch
476
+ currentCounter += canDeleteInLeaf;
455
477
  }
456
478
  return ans;
457
479
  }
458
- deleteOne(id) {
459
- const located = this.locate(id);
460
- if (located === null)
461
- return this;
462
- const leaf = located[0].node;
463
- if (!leaf.present.has(id.counter))
464
- return this;
465
- const newPresent = leaf.present.clone();
466
- newPresent.delete(id.counter);
467
- return this.replaceLeaf(located, { ...leaf, present: newPresent });
468
- }
469
480
  /**
470
481
  * Deletes all ids with indexes in the range [from, to).
471
482
  *
@@ -496,25 +507,33 @@ class IdList {
496
507
  */
497
508
  undelete(id, count = 1) {
498
509
  (0, misc_1.checkCount)(count);
510
+ if (count === 0)
511
+ return this;
499
512
  // eslint-disable-next-line @typescript-eslint/no-this-alias
500
513
  let ans = this;
501
- for (let i = count - 1; i >= 0; i--) {
502
- ans = ans.undeleteOne({ bunchId: id.bunchId, counter: id.counter + i });
514
+ let currentCounter = id.counter;
515
+ while (currentCounter < id.counter + count) {
516
+ const currentId = {
517
+ bunchId: id.bunchId,
518
+ counter: currentCounter,
519
+ };
520
+ const located = ans.locate(currentId);
521
+ if (located === null) {
522
+ throw new Error("id is not known");
523
+ }
524
+ const leaf = located[0].node;
525
+ // Calculate how many ids can be undeleted in this leaf
526
+ const leafEnd = leaf.startCounter + leaf.count;
527
+ const remaining = id.counter + count - currentCounter;
528
+ const canUndeleteInLeaf = Math.min(leafEnd - currentCounter, remaining);
529
+ const newPresent = leaf.present.clone();
530
+ newPresent.set(currentCounter, canUndeleteInLeaf);
531
+ ans = ans.replaceLeaf(located, { ...leaf, present: newPresent });
532
+ // Move to the next batch
533
+ currentCounter += canUndeleteInLeaf;
503
534
  }
504
535
  return ans;
505
536
  }
506
- undeleteOne(id) {
507
- const located = this.locate(id);
508
- if (located === null) {
509
- throw new Error("id is not known");
510
- }
511
- const leaf = located[0].node;
512
- if (leaf.present.has(id.counter))
513
- return this;
514
- const newPresent = leaf.present.clone();
515
- newPresent.set(id.counter);
516
- return this.replaceLeaf(located, { ...leaf, present: newPresent });
517
- }
518
537
  /**
519
538
  * Returns the path from id's leaf node to the root, or null if id is not found.
520
539
  *
@@ -1 +1 @@
1
- {"version":3,"file":"id_list.js","sourceRoot":"","sources":["../../src/id_list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"id_list.js","sourceRoot":"","sources":["../../src/id_list.ts"],"names":[],"mappings":";;;AAAA,yDAAkD;AAElD,kDAA8D;AAC9D,0CAA6C;AAC7C,gDAA8E;AAkD9E;;GAEG;AACH,MAAa,cAAc;IAIzB;IACE;;OAEG;IACM,GAAW,EACX,QAA8B;IACvC;;;;;OAKG;IACH,aAAmC;QAR1B,QAAG,GAAH,GAAG,CAAQ;QACX,aAAQ,GAAR,QAAQ,CAAsB;QASvC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;YACnB,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;YAC7B,IAAI,aAAa,EAAE,CAAC;gBAClB,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AA9BD,wCA8BC;AAED;;GAEG;AACH,MAAa,aAAa;IAIxB;IACE;;OAEG;IACM,GAAW,EACX,QAA6B;IACtC;;;;OAIG;IACH,UAAiC;QAPxB,QAAG,GAAH,GAAG,CAAQ;QACX,aAAQ,GAAR,QAAQ,CAAqB;QAQtC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC9B,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC;YACzB,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AA7BD,sCA6BC;AAUD;;;;;;;;GAQG;AACU,QAAA,CAAC,GAAG,CAAC,CAAC;AAEnB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAa,MAAM;IAQjB;;OAEG;IACH,YACmB,IAAe;IAChC;;;;OAIG;IACc,OAAgB,EACjC,UAAkB;QAPD,SAAI,GAAJ,IAAI,CAAW;QAMf,YAAO,GAAP,OAAO,CAAS;QAGjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAG;QACR,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,kBAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,gBAAM,CAAC,GAAG,EAAE,EAAE,CAAC;QAC9C,OAAO,IAAI,IAAI,CACb,IAAI,aAAa,CAAC,IAAA,2BAAiB,EAAC,aAAa,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,EACnE,UAAU,CAAC,KAAK,EAChB,aAAa,CAAC,KAAK,CACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CACT,QAAyD;QAEzD,mDAAmD;QACnD,MAAM,UAAU,GAAgB,EAAE,CAAC;QAEnC,KAAK,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,QAAQ,EAAE,CAAC;YACzC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;gBACnC,IACE,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;oBAC9B,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK;oBACnD,SAAS,KAAK,OAAO,CAAC,SAAS,EAC/B,CAAC;oBACD,yEAAyE;oBACzE,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,SAAS;gBACX,CAAC;YACH,CAAC;YAED,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,YAAY,EAAE,EAAE,CAAC,OAAO;gBACxB,KAAK,EAAE,CAAC;gBACR,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,GAAwB;QACrC,OAAO,IAAI,CAAC,IAAI,CACd,CAAC,QAAQ,CAAC;YACR,KAAK,MAAM,EAAE,IAAI,GAAG;gBAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACvD,CAAC,CAAC,EAAE,CACL,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,MAAwB,EAAE,KAAgB,EAAE,KAAK,GAAG,CAAC;QAC/D,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,IAAA,iBAAU,EAAC,KAAK,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAE7B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpC,4CAA4C;gBAC5C,MAAM,OAAO,GAAG,iCAAa,CAAC,GAAG,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClC,MAAM,IAAI,GAAa;oBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,OAAO;oBAC3B,KAAK;oBACL,OAAO;iBACR,CAAC;gBAEF,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3C,OAAO,IAAI,MAAM,CACf,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,EACpD,UAAU,CAAC,KAAK,EAChB,IAAI,CAAC,UAAU,CAChB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,oCAAoC;gBACpC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7B,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC1D,2DAA2D;YAC3D,IACE,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;gBAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAChD,CAAC;gBACD,2BAA2B;gBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;oBAC/B,GAAG,IAAI;oBACP,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;oBACzB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,iCAAa,CAAC,GAAG,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;oBACrC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,OAAO;oBAC3B,KAAK;oBACL,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,MAAM,UAAU,GAAG,iCAAa,CAAC,GAAG,EAAE,CAAC;YACvC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,YAAY,CAC9C,IAAI,CAAC,OAAO,EACZ,MAAM,CAAC,OAAO,GAAG,CAAC,CACnB,CAAC;YACF,OAAO,IAAI,CAAC,WAAW,CACrB,OAAO,EACP;gBACE,GAAG,IAAI;gBACP,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY;gBAC7C,OAAO,EAAE,WAAW;aACrB,EACD;gBACE,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,YAAY,EAAE,KAAK,CAAC,OAAO;gBAC3B,KAAK;gBACL,OAAO,EAAE,UAAU;aACpB,EACD;gBACE,GAAG,IAAI;gBACP,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC;gBAChC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC5D,OAAO,EAAE,YAAY;aACtB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,KAAuB,EAAE,KAAgB,EAAE,KAAK,GAAG,CAAC;QAC/D,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,IAAA,iBAAU,EAAC,KAAK,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAE7B,gEAAgE;YAChE,OAAO,IAAI,CAAC,WAAW,CACrB,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACpD,KAAK,EACL,KAAK,CACN,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7B,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,4DAA4D;YAC5D,IACE,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;gBAC9B,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,OAAO,GAAG,KAAK,EAC3C,CAAC;gBACD,4BAA4B;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;oBAC/B,GAAG,IAAI;oBACP,YAAY,EAAE,IAAI,CAAC,YAAY,GAAG,KAAK;oBACvC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;oBACzB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,iCAAa,CAAC,GAAG,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClC,OAAO,IAAI,CAAC,WAAW,CACrB,OAAO,EACP;oBACE,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,OAAO;oBAC3B,KAAK;oBACL,OAAO;iBACR,EACD,IAAI,CACL,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,MAAM,OAAO,GAAG,iCAAa,CAAC,GAAG,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,YAAY,CAC9C,IAAI,CAAC,OAAO,EACZ,KAAK,CAAC,OAAO,CACd,CAAC;YACF,OAAO,IAAI,CAAC,WAAW,CACrB,OAAO,EACP;gBACE,GAAG,IAAI;gBACP,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY;gBACxC,OAAO,EAAE,WAAW;aACrB,EACD;gBACE,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,YAAY,EAAE,KAAK,CAAC,OAAO;gBAC3B,KAAK;gBACL,OAAO;aACR,EACD;gBACE,GAAG,IAAI;gBACP,YAAY,EAAE,KAAK,CAAC,OAAO;gBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;gBACvD,OAAO,EAAE,YAAY;aACtB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,EAAa,EAAE,KAAK,GAAG,CAAC;QAC/B,IAAA,iBAAU,EAAC,KAAK,CAAC,CAAC;QAClB,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7B,mFAAmF;QACnF,gBAAgB;QAChB,kEAAkE;QAClE,gGAAgG;QAChG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;gBAC1D,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;oBACrC,4BAA4B;oBAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,gCAAgC;oBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACrC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAClC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;wBAC/B,GAAG,IAAI;wBACP,KAAK,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY;wBACrC,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,4DAA4D;QAC5D,IAAI,GAAG,GAAW,IAAI,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,WAAW,CAAC,EAAa;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAElC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7B,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YACnC,8BAA8B;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3C,SAAS,CAAC,IAAI,CAAC;gBACb,GAAG,IAAI;gBACP,KAAK,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY;gBACrC,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACpD,6BAA6B;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAClC,SAAS,CAAC,IAAI,CAAC;gBACb,GAAG,IAAI;gBACP,YAAY,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC;gBAC5B,KAAK,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC;gBACxD,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,EAAa,EAAE,KAAK,GAAG,CAAC;QAC7B,IAAA,iBAAU,EAAC,KAAK,CAAC,CAAC;QAClB,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7B,4DAA4D;QAC5D,IAAI,GAAG,GAAW,IAAI,CAAC;QACvB,IAAI,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC;QAChC,OAAO,cAAc,GAAG,EAAE,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAc;gBAC3B,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,OAAO,EAAE,cAAc;aACxB,CAAC;YACF,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,wBAAwB;gBACxB,cAAc,EAAE,CAAC;gBACjB,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE7B,qDAAqD;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/C,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC;YACtD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,cAAc,EAAE,SAAS,CAAC,CAAC;YAEtE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YACnD,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YAEjE,yBAAyB;YACzB,cAAc,IAAI,eAAe,CAAC;QACpC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,IAAY,EAAE,EAAU;QAClC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,4DAA4D;QAC5D,IAAI,GAAG,GAAW,IAAI,CAAC;QACvB,KAAK,MAAM,EAAE,IAAI,MAAM;YAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE9C,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAa,EAAE,KAAK,GAAG,CAAC;QAC/B,IAAA,iBAAU,EAAC,KAAK,CAAC,CAAC;QAClB,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7B,4DAA4D;QAC5D,IAAI,GAAG,GAAW,IAAI,CAAC;QACvB,IAAI,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC;QAChC,OAAO,cAAc,GAAG,EAAE,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAc;gBAC3B,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,OAAO,EAAE,cAAc;aACxB,CAAC;YACF,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YAED,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7B,uDAAuD;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/C,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC;YACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,cAAc,EAAE,SAAS,CAAC,CAAC;YAExE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxC,UAAU,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;YAClD,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YAEjE,yBAAyB;YACzB,cAAc,IAAI,iBAAiB,CAAC;QACtC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,EAAa;QAC1B,uCAAuC;QACvC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACpC,IACE,CAAC,CACC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO;YAC3B,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,OAAO;YAC/B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAC5C,EACD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,0CAA0C;QAC1C,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,MAAM,GAAG,SAAS,CAAC;QACvB,OAAO,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,+DAA+D;QAC/D,yDAAyD;QACzD,MAAM,UAAU,GAAiD,EAAE,CAAC;QACpE,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,sEAAsE;QACtE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAI,SAA4B,CAAC,QAAQ,CAAC;YACxD,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CACnC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CACtC,CAAC;YACF,IAAI,UAAU,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YAEnC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5D,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,4EAA4E;QAC5E,MAAM,cAAc,GAAI,SAA2B,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3E,IAAI,cAAc,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC7D,OAAO;YACL,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE;YAC7C,GAAG,UAAU,CAAC,OAAO,EAAE;SACxB,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACK,WAAW,CAAC,OAAgB,EAAE,GAAG,SAAqB;QAC5D,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAEjD,mGAAmG;QACnG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE5D,MAAM,OAAO,GAAG,WAAW,CACzB,OAAO,EACP,IAAI,CAAC,IAAI,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,CAAC,CACF,CAAC;QACF,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,YAAY;IAEZ;;;;;;OAMG;IACH,GAAG,CAAC,EAAa;QACf,oDAAoD;QACpD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,EAAa;QACnB,oDAAoD;QACpD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;YACxC,OAAO,CACL,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,OAAO;gBAC/B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAC5C,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qBAAqB;IACrB;;OAEG;IACK,UAAU,CAAC,EAAa,EAAE,KAAa;QAC7C,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAE9B,8DAA8D;QAC9D,mEAAmE;QACnE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;QAExE,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;YACxC,uEAAuE;YACvE,0CAA0C;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC7C,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;YACrB,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,OAAe;QACxB,qDAAqD;QACrD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACtE,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,EAAE,CAAC,KAAa;QACd,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,aAAa,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,iDAAiD;QACjD,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;YACrB,IAAI,SAAS,YAAY,cAAc,EAAE,CAAC;gBACxC,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACvC,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC3B,WAAW;wBACX,SAAS,GAAG,KAAK,CAAC;wBAClB,SAAS,OAAO,CAAC;oBACnB,CAAC;yBAAM,CAAC;wBACN,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACvC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACxC,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;wBAC1B,YAAY;wBACZ,OAAO;4BACL,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;yBAC/C,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,SAAS,IAAI,SAAS,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAa,EAAE,OAAkC,MAAM;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEzD;;;WAGG;QACH,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,+CAA+C;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,CACb,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CACzC,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnC,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,MAAM,UAAU,GAAG,CACjB,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAClC,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAClD,CAAC;QAED,0BAA0B;QAC1B,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACnE,KAAK,IAAI,KAAK,CAAC;QACf,IAAI,GAAG;YAAE,OAAO,KAAK,CAAC;aACjB,CAAC;YACJ,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,MAAM;oBACT,OAAO,CAAC,CAAC,CAAC;gBACZ,KAAK,MAAM;oBACT,OAAO,KAAK,GAAG,CAAC,CAAC;gBACnB,KAAK,OAAO;oBACV,OAAO,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAa,EAAE,OAAyB,MAAM;QACrD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CACT,MAAwB,EACxB,OAAyB,MAAM;QAE/B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,sBAAsB;IAEtB;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,mBAAmB;QAIjB,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAID;;;OAGG;IACH,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB;IAEhB;;;;;OAKG;IACH,IAAI;QACF,MAAM,GAAG,GAAgB,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,UAAuB;QACjC,yCAAyC;QAEzC,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAE3B,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,IACE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,EACpE,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAChE,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;gBAAE,SAAS;YAE/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;gBAChC,IACE,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO;oBACjC,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,EAC5D,CAAC;oBACD,mBAAmB;oBACnB,4EAA4E;oBAC5E,mCAAmC;oBACnC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;wBACpB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtD,CAAC;oBACD,SAAS;gBACX,CAAC;YACH,CAAC;YAED,yCAAyC;YACzC,MAAM,OAAO,GAAG,iCAAa,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,4CAA4C;QAC5C,oFAAoF;QACpF,wDAAwD;QACxD,sFAAsF;QAEtF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC;QAE7C,oDAAoD;QACpD,4CAA4C;QAC5C,gEAAgE;QAEhE,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,kBAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,gBAAM,CAAC,GAAG,EAAE,EAAE,CAAC;QAE9C,sFAAsF;QACtF,kEAAkE;QAClE,MAAM,KAAK,GACT,MAAM,CAAC,MAAM,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAC,CAAC,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACpE,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;CACF;AAn6BD,wBAm6BC;AAED;;;;;;;GAOG;AACH,MAAa,WAAW;IACtB;;OAEG;IACH,YAAqB,IAAY,EAAmB,IAAe;QAA9C,SAAI,GAAJ,IAAI,CAAQ;QAAmB,SAAI,GAAJ,IAAI,CAAW;IAAG,CAAC;IAEvE,mDAAmD;IAEnD,YAAY;IAEZ;;;;;;OAMG;IACH,EAAE,CAAC,KAAa;QACd,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,aAAa,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,iDAAiD;QACjD,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;YACrB,IAAI,SAAS,YAAY,cAAc,EAAE,CAAC;gBACxC,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACvC,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;wBAChC,WAAW;wBACX,SAAS,GAAG,KAAK,CAAC;wBAClB,SAAS,OAAO,CAAC;oBACnB,CAAC;yBAAM,CAAC;wBACN,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACvC,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;wBAC5B,YAAY;wBACZ,OAAO;4BACL,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,SAAS;yBACxC,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,EAAa;QACnB,kCAAkC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEzD;;;WAGG;QACH,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,+CAA+C;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,CACb,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CACzC,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxC,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,MAAM,UAAU,GAAG,CACjB,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAClC,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;QACvB,CAAC;QAED,wBAAwB;QACxB,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,YAAY;IAEZ;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjC,CAAC;CACF;AArHD,kCAqHC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,IAAe;IAC9B,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,CAAC,YAAY,YAAY,aAAa,CAAC,EAAE,CAAC;QAChD,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,OAAO,EAAE,SAAS,CAAC,YAAY;KAChC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,MAAM,CAAC,IAAe;IAC7B,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,CAAC,YAAY,YAAY,aAAa,CAAC,EAAE,CAAC;QAChD,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;IAC/C,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;IAC/C,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,OAAO,EAAE,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC;KACpD,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,WAAW,CAClB,OAAgB,EAChB,IAAe,EACf,UAA0B,EAC1B,aAA4B,EAC5B,QAAkC,EAClC,CAAS;IAET,MAAM,MAAM,GACV,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAkB,CAAC;IACvE,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAC/C,iFAAiF;IACjF,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ;SAChC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC;SACvB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IAE9D,IAAI,WAAW,CAAC,MAAM,GAAG,SAAC,EAAE,CAAC;QAC3B,iEAAiE;QACjE,sDAAsD;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,IAAA,2BAAiB,EAAC,aAAa,CAAC,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG;YACjB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YAC3B,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;SACzB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CACpB,CAAC,KAAK,CAAC;YACL,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAsB,EAAE,UAAU,CAAC;YAChE,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAuB,EAAE,aAAa,CAAC,CACxE,CAAC;QACF,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,4DAA4D;YAC5D,OAAO,IAAI,cAAc,CACvB,IAAA,2BAAiB,EAAC,aAAa,CAAC,EAChC,UAAU,EACV,aAAa,CACd,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,WAAW,CAChB,OAAO,EACP,IAAI,EACJ,UAAU,EACV,aAAa,EACb,UAAU,EACV,CAAC,GAAG,CAAC,CACN,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,+DAA+D;QAC/D,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,+DAA+D;YAC/D,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,qCAAqC;QACrC,6EAA6E;QAC7E,gEAAgE;QAChE,sEAAsE;QACtE,6DAA6D;QAC7D,IAAI,SAAoB,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,SAAS,GAAG,IAAI,aAAa,CAC3B,MAAM,CAAC,GAAG,EACV,WAAyB,EACzB,IAAI,CACL,CAAC;YACF,KAAK,MAAM,OAAO,IAAI,QAAsB,EAAE,CAAC;gBAC7C,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,IAAI,cAAc,CAC5B,MAAM,CAAC,GAAG,EACV,WAA0B,EAC1B,IAAI,CACL,CAAC;YACF,KAAK,MAAM,OAAO,IAAI,QAAuB,EAAE,CAAC;gBAC9C,IAAI,OAAO,CAAC,GAAG,KAAM,OAAO,CAAC,CAAC,CAAC,CAAC,IAAkB,CAAC,GAAG,EAAE,CAAC;oBACvD,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAC3C,OAAO,CAAC,GAAG,EACX,MAAM,CAAC,GAAG,CACX,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,iBAAiB;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,WAAW,CAChB,OAAO,EACP,IAAI,EACJ,UAAU,EACV,aAAa,EACb,CAAC,SAAS,CAAC,EACX,CAAC,GAAG,CAAC,CACN,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,OAAsB,EACtB,YAAoB;IAEpB,MAAM,WAAW,GAAG,iCAAa,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,YAAY,GAAG,iCAAa,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;QAChE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACrC,CAAC;AAED,QAAQ,CAAC,CAAC,WAAW,CACnB,IAAe,EACf,cAAuB;IAEvB,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,cAAc,EAAE,CAAC;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBACpE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC3C,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,CAAC,wBAAwB,CAChC,IAAe;IAEf,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACzC,OAAO,SAAS,GAAG,KAAK,EAAE,CAAC;oBACzB,MAAM;wBACJ,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;wBAClD,SAAS,EAAE,IAAI;qBAChB,CAAC;oBACF,SAAS,EAAE,CAAC;gBACd,CAAC;gBACD,MAAM;oBACJ,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;oBAC9C,SAAS,EAAE,KAAK;iBACjB,CAAC;gBACF,SAAS,EAAE,CAAC;YACd,CAAC;YACD,OAAO,SAAS,GAAG,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBACpD,MAAM;oBACJ,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;oBAClD,SAAS,EAAE,IAAI;iBAChB,CAAC;gBACF,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,IAAe,EAAE,GAAgB;IACjD,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnD,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;oBACtB,uBAAuB;oBACvB,YAAY,CAAC,GAAG,EAAE;wBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,YAAY,EAAE,SAAS;wBACvB,KAAK,EAAE,KAAK,GAAG,SAAS;wBACxB,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;gBACL,CAAC;gBACD,YAAY,CAAC,GAAG,EAAE;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK;oBACnB,KAAK;oBACL,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;gBACH,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;YAC5B,CAAC;YACD,IAAI,SAAS,GAAG,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjD,YAAY,CAAC,GAAG,EAAE;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,SAAS;oBACvB,KAAK,EAAE,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,SAAS;oBACnD,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,YAAY,CAAC,GAAgB,EAAE,IAAyB;IAC/D,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;QAC7B,IACE,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;YACrC,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;YACjC,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,EAC5D,CAAC;YACD,iBAAiB;YACjB,yEAAyE;YACzE,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;YAC7B,OAAO;QACT,CAAC;IACH,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,SAAS,CAChB,MAAkB,EAClB,UAA0B,EAC1B,aAA4B,EAC5B,UAAkB,EAClB,cAAsB;IAEtB,MAAM,SAAS,GAAG,IAAA,2BAAiB,EAAC,aAAa,CAAC,CAAC;IACnD,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,aAAa,CACtB,SAAS,EACT,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,SAAC,CAAC,EACxC,UAAU,CACX,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAgB,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,SAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,eAAe,GAAG,UAAU,GAAG,CAAC,GAAG,cAAc,CAAC;YACxD,IAAI,eAAe,IAAI,MAAM,CAAC,MAAM;gBAAE,MAAM;YAC5C,QAAQ,CAAC,IAAI,CACX,SAAS,CACP,MAAM,EACN,UAAU,EACV,aAAa,EACb,eAAe,EACf,cAAc,GAAG,CAAC,CACnB,CACF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
@@ -22,6 +22,12 @@ export declare class ElementIdGenerator {
22
22
  * { bunchId: beforeId.bunchId, counter: beforeId.counter + 1 }
23
23
  * ```
24
24
  * which compresses well when inserted after beforeId.
25
+ *
26
+ * @param count Provide this if you are planning to bulk-insert `count` ids from left-to-right
27
+ * (by supplying the same `count` to insertAfter/insertBefore).
28
+ * Only the first id is returned, but we will reserve space for the other ids so that
29
+ * they are not generated again.
30
+ * @throws If count is provided but is not >= 1.
25
31
  */
26
- generateAfter(beforeId: ElementId | null): ElementId;
32
+ generateAfter(beforeId: ElementId | null, count?: number): ElementId;
27
33
  }
@@ -22,19 +22,28 @@ export class ElementIdGenerator {
22
22
  * { bunchId: beforeId.bunchId, counter: beforeId.counter + 1 }
23
23
  * ```
24
24
  * which compresses well when inserted after beforeId.
25
+ *
26
+ * @param count Provide this if you are planning to bulk-insert `count` ids from left-to-right
27
+ * (by supplying the same `count` to insertAfter/insertBefore).
28
+ * Only the first id is returned, but we will reserve space for the other ids so that
29
+ * they are not generated again.
30
+ * @throws If count is provided but is not >= 1.
25
31
  */
26
- generateAfter(beforeId) {
32
+ generateAfter(beforeId, count = 1) {
33
+ if (!(Number.isSafeInteger(count) && count >= 1)) {
34
+ throw new Error(`Invalid count: ${count}`);
35
+ }
27
36
  if (beforeId !== null) {
28
37
  const nextCounter = this.nextCounterMap.get(beforeId.bunchId);
29
38
  if (nextCounter !== undefined && nextCounter === beforeId.counter + 1) {
30
39
  // It's our own ElementId and the last in its bunch. Extend the bunch.
31
- this.nextCounterMap.set(beforeId.bunchId, nextCounter + 1);
40
+ this.nextCounterMap.set(beforeId.bunchId, nextCounter + count);
32
41
  return { bunchId: beforeId.bunchId, counter: nextCounter };
33
42
  }
34
43
  }
35
44
  // In all other cases, start a new bunch.
36
45
  const bunchId = this.newBunchId();
37
- this.nextCounterMap.set(bunchId, 1);
46
+ this.nextCounterMap.set(bunchId, count);
38
47
  return { bunchId, counter: 0 };
39
48
  }
40
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"element_id_generator.js","sourceRoot":"","sources":["../../src/element_id_generator.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAM7B;;;OAGG;IACH,YAA6B,UAAwB;QAAxB,eAAU,GAAV,UAAU,CAAc;QATrD;;WAEG;QACc,mBAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAMJ,CAAC;IAEzD;;;;;;;;;OASG;IACH,aAAa,CAAC,QAA0B;QACtC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACtE,sEAAsE;gBACtE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;gBAC3D,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"element_id_generator.js","sourceRoot":"","sources":["../../src/element_id_generator.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAM7B;;;OAGG;IACH,YAA6B,UAAwB;QAAxB,eAAU,GAAV,UAAU,CAAc;QATrD;;WAEG;QACc,mBAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAMJ,CAAC;IAEzD;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,QAA0B,EAAE,KAAK,GAAG,CAAC;QACjD,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACtE,sEAAsE;gBACtE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC;gBAC/D,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC;CACF"}
@@ -205,7 +205,6 @@ export declare class IdList {
205
205
  * __Note__: To delete multiple ids at sequential *indexes*, use deleteRange.
206
206
  */
207
207
  delete(id: ElementId, count?: number): IdList;
208
- private deleteOne;
209
208
  /**
210
209
  * Deletes all ids with indexes in the range [from, to).
211
210
  *
@@ -225,7 +224,6 @@ export declare class IdList {
225
224
  * @throws If any deleted id is not known.
226
225
  */
227
226
  undelete(id: ElementId, count?: number): IdList;
228
- private undeleteOne;
229
227
  /**
230
228
  * Returns the path from id's leaf node to the root, or null if id is not found.
231
229
  *
@@ -443,24 +443,35 @@ export class IdList {
443
443
  */
444
444
  delete(id, count = 1) {
445
445
  checkCount(count);
446
+ if (count === 0)
447
+ return this;
446
448
  // eslint-disable-next-line @typescript-eslint/no-this-alias
447
449
  let ans = this;
448
- for (let i = 0; i < count; i++) {
449
- ans = ans.deleteOne({ bunchId: id.bunchId, counter: id.counter + i });
450
+ let currentCounter = id.counter;
451
+ while (currentCounter < id.counter + count) {
452
+ const currentId = {
453
+ bunchId: id.bunchId,
454
+ counter: currentCounter,
455
+ };
456
+ const located = ans.locate(currentId);
457
+ if (located === null) {
458
+ // Id is not known, skip
459
+ currentCounter++;
460
+ continue;
461
+ }
462
+ const leaf = located[0].node;
463
+ // Calculate how many ids can be deleted in this leaf
464
+ const leafEnd = leaf.startCounter + leaf.count;
465
+ const remaining = id.counter + count - currentCounter;
466
+ const canDeleteInLeaf = Math.min(leafEnd - currentCounter, remaining);
467
+ const newPresent = leaf.present.clone();
468
+ newPresent.delete(currentCounter, canDeleteInLeaf);
469
+ ans = ans.replaceLeaf(located, { ...leaf, present: newPresent });
470
+ // Move to the next batch
471
+ currentCounter += canDeleteInLeaf;
450
472
  }
451
473
  return ans;
452
474
  }
453
- deleteOne(id) {
454
- const located = this.locate(id);
455
- if (located === null)
456
- return this;
457
- const leaf = located[0].node;
458
- if (!leaf.present.has(id.counter))
459
- return this;
460
- const newPresent = leaf.present.clone();
461
- newPresent.delete(id.counter);
462
- return this.replaceLeaf(located, { ...leaf, present: newPresent });
463
- }
464
475
  /**
465
476
  * Deletes all ids with indexes in the range [from, to).
466
477
  *
@@ -491,25 +502,33 @@ export class IdList {
491
502
  */
492
503
  undelete(id, count = 1) {
493
504
  checkCount(count);
505
+ if (count === 0)
506
+ return this;
494
507
  // eslint-disable-next-line @typescript-eslint/no-this-alias
495
508
  let ans = this;
496
- for (let i = count - 1; i >= 0; i--) {
497
- ans = ans.undeleteOne({ bunchId: id.bunchId, counter: id.counter + i });
509
+ let currentCounter = id.counter;
510
+ while (currentCounter < id.counter + count) {
511
+ const currentId = {
512
+ bunchId: id.bunchId,
513
+ counter: currentCounter,
514
+ };
515
+ const located = ans.locate(currentId);
516
+ if (located === null) {
517
+ throw new Error("id is not known");
518
+ }
519
+ const leaf = located[0].node;
520
+ // Calculate how many ids can be undeleted in this leaf
521
+ const leafEnd = leaf.startCounter + leaf.count;
522
+ const remaining = id.counter + count - currentCounter;
523
+ const canUndeleteInLeaf = Math.min(leafEnd - currentCounter, remaining);
524
+ const newPresent = leaf.present.clone();
525
+ newPresent.set(currentCounter, canUndeleteInLeaf);
526
+ ans = ans.replaceLeaf(located, { ...leaf, present: newPresent });
527
+ // Move to the next batch
528
+ currentCounter += canUndeleteInLeaf;
498
529
  }
499
530
  return ans;
500
531
  }
501
- undeleteOne(id) {
502
- const located = this.locate(id);
503
- if (located === null) {
504
- throw new Error("id is not known");
505
- }
506
- const leaf = located[0].node;
507
- if (leaf.present.has(id.counter))
508
- return this;
509
- const newPresent = leaf.present.clone();
510
- newPresent.set(id.counter);
511
- return this.replaceLeaf(located, { ...leaf, present: newPresent });
512
- }
513
532
  /**
514
533
  * Returns the path from id's leaf node to the root, or null if id is not found.
515
534
  *
@@ -1 +1 @@
1
- {"version":3,"file":"id_list.js","sourceRoot":"","sources":["../../src/id_list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"id_list.js","sourceRoot":"","sources":["../../src/id_list.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "articulated",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "A TypeScript library for managing stable element identifiers in mutable lists",
5
5
  "author": "Matthew Weidner",
6
6
  "license": "MIT",
@@ -24,20 +24,30 @@ export class ElementIdGenerator {
24
24
  * { bunchId: beforeId.bunchId, counter: beforeId.counter + 1 }
25
25
  * ```
26
26
  * which compresses well when inserted after beforeId.
27
+ *
28
+ * @param count Provide this if you are planning to bulk-insert `count` ids from left-to-right
29
+ * (by supplying the same `count` to insertAfter/insertBefore).
30
+ * Only the first id is returned, but we will reserve space for the other ids so that
31
+ * they are not generated again.
32
+ * @throws If count is provided but is not >= 1.
27
33
  */
28
- generateAfter(beforeId: ElementId | null): ElementId {
34
+ generateAfter(beforeId: ElementId | null, count = 1): ElementId {
35
+ if (!(Number.isSafeInteger(count) && count >= 1)) {
36
+ throw new Error(`Invalid count: ${count}`);
37
+ }
38
+
29
39
  if (beforeId !== null) {
30
40
  const nextCounter = this.nextCounterMap.get(beforeId.bunchId);
31
41
  if (nextCounter !== undefined && nextCounter === beforeId.counter + 1) {
32
42
  // It's our own ElementId and the last in its bunch. Extend the bunch.
33
- this.nextCounterMap.set(beforeId.bunchId, nextCounter + 1);
43
+ this.nextCounterMap.set(beforeId.bunchId, nextCounter + count);
34
44
  return { bunchId: beforeId.bunchId, counter: nextCounter };
35
45
  }
36
46
  }
37
47
 
38
48
  // In all other cases, start a new bunch.
39
49
  const bunchId = this.newBunchId();
40
- this.nextCounterMap.set(bunchId, 1);
50
+ this.nextCounterMap.set(bunchId, count);
41
51
  return { bunchId, counter: 0 };
42
52
  }
43
53
  }
package/src/id_list.ts CHANGED
@@ -570,26 +570,39 @@ export class IdList {
570
570
  */
571
571
  delete(id: ElementId, count = 1) {
572
572
  checkCount(count);
573
+ if (count === 0) return this;
573
574
 
574
575
  // eslint-disable-next-line @typescript-eslint/no-this-alias
575
576
  let ans: IdList = this;
576
- for (let i = 0; i < count; i++) {
577
- ans = ans.deleteOne({ bunchId: id.bunchId, counter: id.counter + i });
578
- }
579
- return ans;
580
- }
577
+ let currentCounter = id.counter;
578
+ while (currentCounter < id.counter + count) {
579
+ const currentId: ElementId = {
580
+ bunchId: id.bunchId,
581
+ counter: currentCounter,
582
+ };
583
+ const located = ans.locate(currentId);
584
+ if (located === null) {
585
+ // Id is not known, skip
586
+ currentCounter++;
587
+ continue;
588
+ }
581
589
 
582
- private deleteOne(id: ElementId) {
583
- const located = this.locate(id);
584
- if (located === null) return this;
590
+ const leaf = located[0].node;
585
591
 
586
- const leaf = located[0].node;
587
- if (!leaf.present.has(id.counter)) return this;
592
+ // Calculate how many ids can be deleted in this leaf
593
+ const leafEnd = leaf.startCounter + leaf.count;
594
+ const remaining = id.counter + count - currentCounter;
595
+ const canDeleteInLeaf = Math.min(leafEnd - currentCounter, remaining);
588
596
 
589
- const newPresent = leaf.present.clone();
590
- newPresent.delete(id.counter);
597
+ const newPresent = leaf.present.clone();
598
+ newPresent.delete(currentCounter, canDeleteInLeaf);
599
+ ans = ans.replaceLeaf(located, { ...leaf, present: newPresent });
591
600
 
592
- return this.replaceLeaf(located, { ...leaf, present: newPresent });
601
+ // Move to the next batch
602
+ currentCounter += canDeleteInLeaf;
603
+ }
604
+
605
+ return ans;
593
606
  }
594
607
 
595
608
  /**
@@ -624,28 +637,36 @@ export class IdList {
624
637
  */
625
638
  undelete(id: ElementId, count = 1) {
626
639
  checkCount(count);
640
+ if (count === 0) return this;
627
641
 
628
642
  // eslint-disable-next-line @typescript-eslint/no-this-alias
629
643
  let ans: IdList = this;
630
- for (let i = count - 1; i >= 0; i--) {
631
- ans = ans.undeleteOne({ bunchId: id.bunchId, counter: id.counter + i });
632
- }
633
- return ans;
634
- }
644
+ let currentCounter = id.counter;
645
+ while (currentCounter < id.counter + count) {
646
+ const currentId: ElementId = {
647
+ bunchId: id.bunchId,
648
+ counter: currentCounter,
649
+ };
650
+ const located = ans.locate(currentId);
651
+ if (located === null) {
652
+ throw new Error("id is not known");
653
+ }
635
654
 
636
- private undeleteOne(id: ElementId) {
637
- const located = this.locate(id);
638
- if (located === null) {
639
- throw new Error("id is not known");
640
- }
655
+ const leaf = located[0].node;
656
+ // Calculate how many ids can be undeleted in this leaf
657
+ const leafEnd = leaf.startCounter + leaf.count;
658
+ const remaining = id.counter + count - currentCounter;
659
+ const canUndeleteInLeaf = Math.min(leafEnd - currentCounter, remaining);
641
660
 
642
- const leaf = located[0].node;
643
- if (leaf.present.has(id.counter)) return this;
661
+ const newPresent = leaf.present.clone();
662
+ newPresent.set(currentCounter, canUndeleteInLeaf);
663
+ ans = ans.replaceLeaf(located, { ...leaf, present: newPresent });
644
664
 
645
- const newPresent = leaf.present.clone();
646
- newPresent.set(id.counter);
665
+ // Move to the next batch
666
+ currentCounter += canUndeleteInLeaf;
667
+ }
647
668
 
648
- return this.replaceLeaf(located, { ...leaf, present: newPresent });
669
+ return ans;
649
670
  }
650
671
 
651
672
  /**