@fluidframework/merge-tree 1.2.1 → 2.0.0-internal.1.0.0
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/DEV.md +2 -2
- package/README.md +1 -1
- package/REFERENCEPOSITIONS.md +2 -2
- package/dist/MergeTreeTextHelper.d.ts +23 -0
- package/dist/MergeTreeTextHelper.d.ts.map +1 -0
- package/dist/MergeTreeTextHelper.js +136 -0
- package/dist/MergeTreeTextHelper.js.map +1 -0
- package/dist/base.d.ts +2 -26
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js.map +1 -1
- package/dist/client.d.ts +21 -12
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +87 -27
- package/dist/client.js.map +1 -1
- package/dist/collections/heap.d.ts +28 -0
- package/dist/collections/heap.d.ts.map +1 -0
- package/dist/collections/heap.js +65 -0
- package/dist/collections/heap.js.map +1 -0
- package/dist/collections/index.d.ts +11 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/index.js +23 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/collections/intervalTree.d.ts +60 -0
- package/dist/collections/intervalTree.d.ts.map +1 -0
- package/dist/collections/intervalTree.js +99 -0
- package/dist/collections/intervalTree.js.map +1 -0
- package/dist/collections/list.d.ts +39 -0
- package/dist/collections/list.d.ts.map +1 -0
- package/dist/collections/list.js +155 -0
- package/dist/collections/list.js.map +1 -0
- package/dist/collections/rbTree.d.ts +154 -0
- package/dist/collections/rbTree.d.ts.map +1 -0
- package/dist/{collections.js → collections/rbTree.js} +10 -448
- package/dist/collections/rbTree.js.map +1 -0
- package/dist/collections/stack.d.ts +16 -0
- package/dist/collections/stack.d.ts.map +1 -0
- package/dist/collections/stack.js +30 -0
- package/dist/collections/stack.js.map +1 -0
- package/dist/collections/tst.d.ts +55 -0
- package/dist/collections/tst.d.ts.map +1 -0
- package/dist/collections/tst.js +171 -0
- package/dist/collections/tst.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/localReference.d.ts +48 -99
- package/dist/localReference.d.ts.map +1 -1
- package/dist/localReference.js +132 -169
- package/dist/localReference.js.map +1 -1
- package/dist/mergeTree.d.ts +38 -299
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +214 -598
- package/dist/mergeTree.js.map +1 -1
- package/dist/mergeTreeDeltaCallback.d.ts +1 -1
- package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/dist/mergeTreeDeltaCallback.js.map +1 -1
- package/dist/mergeTreeNodes.d.ts +269 -0
- package/dist/mergeTreeNodes.d.ts.map +1 -0
- package/dist/mergeTreeNodes.js +383 -0
- package/dist/mergeTreeNodes.js.map +1 -0
- package/dist/mergeTreeTracking.d.ts +1 -1
- package/dist/mergeTreeTracking.d.ts.map +1 -1
- package/dist/mergeTreeTracking.js.map +1 -1
- package/dist/opBuilder.d.ts +1 -1
- package/dist/opBuilder.d.ts.map +1 -1
- package/dist/opBuilder.js.map +1 -1
- package/dist/partialLengths.d.ts +130 -15
- package/dist/partialLengths.d.ts.map +1 -1
- package/dist/partialLengths.js +230 -138
- package/dist/partialLengths.js.map +1 -1
- package/dist/properties.d.ts.map +1 -1
- package/dist/properties.js.map +1 -1
- package/dist/referencePositions.d.ts +6 -26
- package/dist/referencePositions.d.ts.map +1 -1
- package/dist/referencePositions.js.map +1 -1
- package/dist/segmentGroupCollection.d.ts +2 -1
- package/dist/segmentGroupCollection.d.ts.map +1 -1
- package/dist/segmentGroupCollection.js +3 -0
- package/dist/segmentGroupCollection.js.map +1 -1
- package/dist/segmentPropertiesManager.d.ts +10 -1
- package/dist/segmentPropertiesManager.d.ts.map +1 -1
- package/dist/segmentPropertiesManager.js +41 -6
- package/dist/segmentPropertiesManager.js.map +1 -1
- package/dist/snapshotLoader.d.ts.map +1 -1
- package/dist/snapshotLoader.js.map +1 -1
- package/dist/snapshotV1.d.ts +1 -1
- package/dist/snapshotV1.d.ts.map +1 -1
- package/dist/snapshotV1.js.map +1 -1
- package/dist/snapshotlegacy.d.ts +5 -1
- package/dist/snapshotlegacy.d.ts.map +1 -1
- package/dist/snapshotlegacy.js +4 -0
- package/dist/snapshotlegacy.js.map +1 -1
- package/dist/sortedSegmentSet.d.ts +1 -1
- package/dist/sortedSegmentSet.d.ts.map +1 -1
- package/dist/sortedSegmentSet.js.map +1 -1
- package/dist/textSegment.d.ts +7 -7
- package/dist/textSegment.d.ts.map +1 -1
- package/dist/textSegment.js +3 -125
- package/dist/textSegment.js.map +1 -1
- package/lib/MergeTreeTextHelper.d.ts +23 -0
- package/lib/MergeTreeTextHelper.d.ts.map +1 -0
- package/lib/MergeTreeTextHelper.js +132 -0
- package/lib/MergeTreeTextHelper.js.map +1 -0
- package/lib/base.d.ts +2 -26
- package/lib/base.d.ts.map +1 -1
- package/lib/base.js.map +1 -1
- package/lib/client.d.ts +21 -12
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +85 -25
- package/lib/client.js.map +1 -1
- package/lib/collections/heap.d.ts +28 -0
- package/lib/collections/heap.d.ts.map +1 -0
- package/lib/collections/heap.js +61 -0
- package/lib/collections/heap.js.map +1 -0
- package/lib/collections/index.d.ts +11 -0
- package/lib/collections/index.d.ts.map +1 -0
- package/lib/collections/index.js +11 -0
- package/lib/collections/index.js.map +1 -0
- package/lib/collections/intervalTree.d.ts +60 -0
- package/lib/collections/intervalTree.d.ts.map +1 -0
- package/lib/collections/intervalTree.js +94 -0
- package/lib/collections/intervalTree.js.map +1 -0
- package/lib/collections/list.d.ts +39 -0
- package/lib/collections/list.d.ts.map +1 -0
- package/lib/collections/list.js +149 -0
- package/lib/collections/list.js.map +1 -0
- package/lib/collections/rbTree.d.ts +154 -0
- package/lib/collections/rbTree.d.ts.map +1 -0
- package/lib/{collections.js → collections/rbTree.js} +9 -439
- package/lib/collections/rbTree.js.map +1 -0
- package/lib/collections/stack.d.ts +16 -0
- package/lib/collections/stack.d.ts.map +1 -0
- package/lib/collections/stack.js +26 -0
- package/lib/collections/stack.js.map +1 -0
- package/lib/collections/tst.d.ts +55 -0
- package/lib/collections/tst.d.ts.map +1 -0
- package/lib/collections/tst.js +167 -0
- package/lib/collections/tst.js.map +1 -0
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/localReference.d.ts +48 -99
- package/lib/localReference.d.ts.map +1 -1
- package/lib/localReference.js +132 -170
- package/lib/localReference.js.map +1 -1
- package/lib/mergeTree.d.ts +38 -299
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +190 -563
- package/lib/mergeTree.js.map +1 -1
- package/lib/mergeTreeDeltaCallback.d.ts +1 -1
- package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/lib/mergeTreeDeltaCallback.js.map +1 -1
- package/lib/mergeTreeNodes.d.ts +269 -0
- package/lib/mergeTreeNodes.d.ts.map +1 -0
- package/lib/mergeTreeNodes.js +369 -0
- package/lib/mergeTreeNodes.js.map +1 -0
- package/lib/mergeTreeTracking.d.ts +1 -1
- package/lib/mergeTreeTracking.d.ts.map +1 -1
- package/lib/mergeTreeTracking.js.map +1 -1
- package/lib/opBuilder.d.ts +1 -1
- package/lib/opBuilder.d.ts.map +1 -1
- package/lib/opBuilder.js.map +1 -1
- package/lib/partialLengths.d.ts +130 -15
- package/lib/partialLengths.d.ts.map +1 -1
- package/lib/partialLengths.js +227 -135
- package/lib/partialLengths.js.map +1 -1
- package/lib/properties.d.ts.map +1 -1
- package/lib/properties.js.map +1 -1
- package/lib/referencePositions.d.ts +6 -26
- package/lib/referencePositions.d.ts.map +1 -1
- package/lib/referencePositions.js.map +1 -1
- package/lib/segmentGroupCollection.d.ts +2 -1
- package/lib/segmentGroupCollection.d.ts.map +1 -1
- package/lib/segmentGroupCollection.js +3 -0
- package/lib/segmentGroupCollection.js.map +1 -1
- package/lib/segmentPropertiesManager.d.ts +10 -1
- package/lib/segmentPropertiesManager.d.ts.map +1 -1
- package/lib/segmentPropertiesManager.js +41 -6
- package/lib/segmentPropertiesManager.js.map +1 -1
- package/lib/snapshotLoader.d.ts.map +1 -1
- package/lib/snapshotLoader.js.map +1 -1
- package/lib/snapshotV1.d.ts +1 -1
- package/lib/snapshotV1.d.ts.map +1 -1
- package/lib/snapshotV1.js.map +1 -1
- package/lib/snapshotlegacy.d.ts +5 -1
- package/lib/snapshotlegacy.d.ts.map +1 -1
- package/lib/snapshotlegacy.js +4 -0
- package/lib/snapshotlegacy.js.map +1 -1
- package/lib/sortedSegmentSet.d.ts +1 -1
- package/lib/sortedSegmentSet.d.ts.map +1 -1
- package/lib/sortedSegmentSet.js.map +1 -1
- package/lib/textSegment.d.ts +7 -7
- package/lib/textSegment.d.ts.map +1 -1
- package/lib/textSegment.js +1 -122
- package/lib/textSegment.js.map +1 -1
- package/package.json +93 -17
- package/src/MergeTreeTextHelper.ts +172 -0
- package/src/base.ts +2 -35
- package/src/client.ts +114 -30
- package/src/collections/heap.ts +75 -0
- package/src/collections/index.ts +11 -0
- package/src/collections/intervalTree.ts +140 -0
- package/src/collections/list.ts +165 -0
- package/src/{collections.ts → collections/rbTree.ts} +79 -538
- package/src/collections/stack.ts +27 -0
- package/src/collections/tst.ts +212 -0
- package/src/index.ts +8 -2
- package/src/localReference.ts +152 -203
- package/src/mergeTree.ts +265 -868
- package/src/mergeTreeDeltaCallback.ts +1 -1
- package/src/mergeTreeNodes.ts +676 -0
- package/src/mergeTreeTracking.ts +1 -1
- package/src/opBuilder.ts +1 -1
- package/src/partialLengths.ts +295 -150
- package/src/properties.ts +1 -0
- package/src/referencePositions.ts +7 -27
- package/src/segmentGroupCollection.ts +5 -1
- package/src/segmentPropertiesManager.ts +45 -6
- package/src/snapshotLoader.ts +2 -1
- package/src/snapshotV1.ts +2 -2
- package/src/snapshotlegacy.ts +6 -2
- package/src/sortedSegmentSet.ts +1 -1
- package/src/textSegment.ts +10 -157
- package/dist/collections.d.ts +0 -197
- package/dist/collections.d.ts.map +0 -1
- package/dist/collections.js.map +0 -1
- package/lib/collections.d.ts +0 -197
- package/lib/collections.d.ts.map +0 -1
- package/lib/collections.js.map +0 -1
package/lib/partialLengths.d.ts
CHANGED
|
@@ -3,48 +3,163 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { RedBlackTree } from "./collections";
|
|
6
|
-
import { CollaborationWindow, IMergeBlock
|
|
6
|
+
import { CollaborationWindow, IMergeBlock } from "./mergeTreeNodes";
|
|
7
7
|
interface IOverlapClient {
|
|
8
8
|
clientId: number;
|
|
9
9
|
seglen: number;
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Tracks length information for a part of a MergeTree (block) at a given time (seq).
|
|
13
|
+
* These objects are associated with internal nodes (i.e. blocks).
|
|
14
|
+
*/
|
|
11
15
|
export interface PartialSequenceLength {
|
|
16
|
+
/**
|
|
17
|
+
* Sequence number
|
|
18
|
+
*/
|
|
12
19
|
seq: number;
|
|
20
|
+
/**
|
|
21
|
+
* The length of the associated block.
|
|
22
|
+
*/
|
|
13
23
|
len: number;
|
|
24
|
+
/**
|
|
25
|
+
* The delta between the current length of the associated block and its length at the previous seq number.
|
|
26
|
+
*/
|
|
14
27
|
seglen: number;
|
|
28
|
+
/**
|
|
29
|
+
* clientId for the client that submitted the op with sequence number `seq`.
|
|
30
|
+
*/
|
|
15
31
|
clientId?: number;
|
|
32
|
+
/**
|
|
33
|
+
* This field maps each client to the size of the intersection between segments deleted at this seq
|
|
34
|
+
* and segments concurrently deleted by that client.
|
|
35
|
+
*
|
|
36
|
+
* For example, this PartialSequenceLength:
|
|
37
|
+
* ```typescript
|
|
38
|
+
* {
|
|
39
|
+
* seq: 5,
|
|
40
|
+
* len: 100,
|
|
41
|
+
* seglen: -10,
|
|
42
|
+
* clientId: 0,
|
|
43
|
+
* overlapRemoveClients: <RedBlack tree with key-values expressed by>{
|
|
44
|
+
* 1: { clientId: 1, seglen: -5 },
|
|
45
|
+
* 3: { clientId: 3, seglen: -10 }
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* corresponds to an op submitted by client 0 which:
|
|
51
|
+
* - reduces the length of this block by 10 (it may have deleted a single segment of length 10,
|
|
52
|
+
* several segments totalling length 10, or even delete and add content for a total reduction of 10 length)
|
|
53
|
+
* - was concurrent to an op submitted by client 1 that also removed some of the same segments,
|
|
54
|
+
* whose length totalled 5
|
|
55
|
+
* - was concurrent to an op submitted by client 3 that removed some of the same segments,
|
|
56
|
+
* whose length totalled 10
|
|
57
|
+
*/
|
|
16
58
|
overlapRemoveClients?: RedBlackTree<number, IOverlapClient>;
|
|
17
59
|
}
|
|
18
60
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
61
|
+
* Keeps track of partial sums of segment lengths for all sequence numbers in the current collaboration window.
|
|
62
|
+
* Only used during active collaboration.
|
|
63
|
+
*
|
|
64
|
+
* This class is associated with an internal node (block) of a MergeTree. It efficiently answers queries of the form
|
|
65
|
+
* "What is the length of `block` from the perspective of some particular seq and clientId?".
|
|
66
|
+
*
|
|
67
|
+
* It also supports incremental updating of state for newly-sequenced ops that don't affect the structure of the
|
|
68
|
+
* MergeTree.
|
|
69
|
+
*
|
|
70
|
+
* To answer these queries, it pre-builds several lists which track the length of the block at a per-sequence-number
|
|
71
|
+
* level. These lists are:
|
|
72
|
+
*
|
|
73
|
+
* 1. (`partialLengths`): Stores the total length of the block.
|
|
74
|
+
* 2. (`clientSeqNumbers[clientId]`): Stores only the total lengths of segments submitted by `clientId`. [see footnote]
|
|
75
|
+
*
|
|
76
|
+
* The reason both lists are necessary is that resolving the length of the block from the perspective of
|
|
77
|
+
* (clientId, refSeq) requires including both of the following types of segments:
|
|
78
|
+
* 1. Segments sequenced before `refSeq`
|
|
79
|
+
* 2. Segments submitted by `clientId`
|
|
80
|
+
*
|
|
81
|
+
* This is possible with the above bookkeeping, using:
|
|
82
|
+
*
|
|
83
|
+
* (length of the block at the minimum sequence number)
|
|
84
|
+
* + (partialLengths total length at refSeq)
|
|
85
|
+
* + (clientSeqNumbers total length at most recent op)
|
|
86
|
+
* - (clientSeqNumbers total length at refSeq)
|
|
87
|
+
*
|
|
88
|
+
* where the subtraction avoids double-counting segments submitted by clientId sequenced within the collab window.
|
|
89
|
+
*
|
|
90
|
+
* This algorithm scales roughly linearly with number of editing clients and the size of the collab window.
|
|
91
|
+
* (certain unlikely sequences of operations may introduce log factors on those variables)
|
|
92
|
+
*
|
|
93
|
+
* Note: there is some slight complication with clientSeqNumbers resulting from the possibility of different clients
|
|
94
|
+
* concurrently removing the same segment. See the field's documentation for more details.
|
|
22
95
|
*/
|
|
23
96
|
export declare class PartialSequenceLengths {
|
|
97
|
+
/**
|
|
98
|
+
* The minimumSequenceNumber as defined by the collab window used in the last call to `update`,
|
|
99
|
+
* or if no such calls have been made, the one used on construction.
|
|
100
|
+
*/
|
|
24
101
|
minSeq: number;
|
|
25
102
|
static options: {
|
|
26
103
|
verify: boolean;
|
|
27
104
|
zamboni: boolean;
|
|
28
105
|
};
|
|
29
|
-
static combine(mergeTree: MergeTree, block: IMergeBlock, collabWindow: CollaborationWindow, recur?: boolean): PartialSequenceLengths;
|
|
30
106
|
/**
|
|
31
107
|
* Combine the partial lengths of block's children
|
|
32
|
-
* @param block - an interior node
|
|
33
|
-
* has its partials up to date
|
|
34
|
-
* @param collabWindow - segment window of the segment tree containing
|
|
108
|
+
* @param block - an interior node. If `recur` is false, it is assumed that each interior node child of this block
|
|
109
|
+
* has its partials up to date.
|
|
110
|
+
* @param collabWindow - segment window of the segment tree containing `block`.
|
|
111
|
+
* @param recur - whether to recursively compute partial lengths for internal children of `block`.
|
|
112
|
+
* This incurs more work, but gives correct bookkeeping in the case that a descendant in the merge tree has been
|
|
113
|
+
* modified without bubbling up the resulting partial length change to this block's partials.
|
|
114
|
+
*/
|
|
115
|
+
static combine(block: IMergeBlock, collabWindow: CollaborationWindow, recur?: boolean): PartialSequenceLengths;
|
|
116
|
+
/**
|
|
117
|
+
* @returns a PartialSequenceLengths structure which tracks only lengths of leaf children of the provided
|
|
118
|
+
* IMergeBlock.
|
|
35
119
|
*/
|
|
36
|
-
private static combineBranch;
|
|
37
120
|
private static fromLeaves;
|
|
38
121
|
private static getOverlapClients;
|
|
39
122
|
private static accumulateRemoveClientOverlap;
|
|
123
|
+
/**
|
|
124
|
+
* Inserts length information about the insertion of `segment` into `combinedPartialLengths.partialLengths`.
|
|
125
|
+
* Does not update the clientSeqNumbers field to account for this segment.
|
|
126
|
+
* If `removalInfo` is defined, this operation updates the bookkeeping to account for the removal of this
|
|
127
|
+
* segment at the removedSeq instead.
|
|
128
|
+
*/
|
|
40
129
|
private static insertSegment;
|
|
41
130
|
private static addSeq;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
131
|
+
/**
|
|
132
|
+
* Length of the block this PartialSequenceLength corresponds to when viewed at `minSeq`.
|
|
133
|
+
*/
|
|
134
|
+
private minLength;
|
|
135
|
+
/**
|
|
136
|
+
* Total number of segments in the subtree rooted at the block this PartialSequenceLength corresponds to.
|
|
137
|
+
*/
|
|
138
|
+
private segmentCount;
|
|
139
|
+
/**
|
|
140
|
+
* List of PartialSequenceLength objects--ordered by increasing seq--giving length information about
|
|
141
|
+
* the block associated with this PartialSequenceLengths object.
|
|
142
|
+
*
|
|
143
|
+
* `partialLengths[i].len` contains the length of this block considering only sequenced segments with
|
|
144
|
+
* `sequenceNumber <= partialLengths[i].seq`.
|
|
145
|
+
*/
|
|
146
|
+
private readonly partialLengths;
|
|
147
|
+
/**
|
|
148
|
+
* clientSeqNumbers[clientId] is a list of partial lengths for sequenced ops which either:
|
|
149
|
+
* - were submitted by `clientId`.
|
|
150
|
+
* - deleted a range containing segments that were concurrently deleted by `clientId`
|
|
151
|
+
*
|
|
152
|
+
* The second case is referred to as the "overlapping delete" case. It is necessary to avoid double-counting
|
|
153
|
+
* the removal of those segments in queries including clientId.
|
|
154
|
+
*/
|
|
155
|
+
private readonly clientSeqNumbers;
|
|
156
|
+
constructor(
|
|
157
|
+
/**
|
|
158
|
+
* The minimumSequenceNumber as defined by the collab window used in the last call to `update`,
|
|
159
|
+
* or if no such calls have been made, the one used on construction.
|
|
160
|
+
*/
|
|
161
|
+
minSeq: number);
|
|
162
|
+
update(node: IMergeBlock, seq: number, clientId: number, collabWindow: CollaborationWindow): void;
|
|
48
163
|
getPartialLength(refSeq: number, clientId: number): number;
|
|
49
164
|
toString(glc?: (id: number) => string, indentCount?: number): string;
|
|
50
165
|
private zamboni;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partialLengths.d.ts","sourceRoot":"","sources":["../src/partialLengths.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"partialLengths.d.ts","sourceRoot":"","sources":["../src/partialLengths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAY,YAAY,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EACH,mBAAmB,EAEnB,WAAW,EAId,MAAM,kBAAkB,CAAC;AAE1B,UAAU,cAAc;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAClB;AA2BD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,oBAAoB,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,sBAAsB;IAkT3B;;;MAGE;IACK,MAAM,EAAE,MAAM;IArTzB,OAAc,OAAO;;;MAGnB;IAEF;;;;;;;;OAQG;WACW,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,KAAK,UAAQ;IA4E1F;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAmDzB,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAQhC,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAmB5C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAiE5B,OAAO,CAAC,MAAM,CAAC,MAAM;IAgCrB;;OAEG;IACH,OAAO,CAAC,SAAS,CAAK;IAEtB;;OAEG;IACH,OAAO,CAAC,YAAY,CAAK;IAEzB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAE9D;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;;IAG9D;;;MAGE;IACK,MAAM,EAAE,MAAM;IAMlB,MAAM,CACT,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,mBAAmB;IAkD9B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAkCjD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,EAAE,WAAW,SAAI;IA2B7D,OAAO,CAAC,OAAO;IA+Bf,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,oBAAoB;IAqD5B,OAAO,CAAC,MAAM;CAqBjB"}
|