@peerbit/string 5.0.120-48ac6de → 5.1.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/LICENSE +202 -0
- package/dist/src/query.js +213 -106
- package/dist/src/query.js.map +1 -1
- package/dist/src/range.js +69 -30
- package/dist/src/range.js.map +1 -1
- package/dist/src/string-index.js +105 -54
- package/dist/src/string-index.js.map +1 -1
- package/dist/src/string-store.js +196 -156
- package/dist/src/string-store.js.map +1 -1
- package/package.json +19 -19
- package/src/string-store.ts +5 -5
package/dist/src/range.js
CHANGED
|
@@ -1,36 +1,75 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
6
27
|
};
|
|
7
|
-
var
|
|
8
|
-
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
9
34
|
};
|
|
10
35
|
import { field, variant } from "@dao-xyz/borsh";
|
|
11
|
-
let Range =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
36
|
+
let Range = (() => {
|
|
37
|
+
let _classDecorators = [variant(0)];
|
|
38
|
+
let _classDescriptor;
|
|
39
|
+
let _classExtraInitializers = [];
|
|
40
|
+
let _classThis;
|
|
41
|
+
let _offset_decorators;
|
|
42
|
+
let _offset_initializers = [];
|
|
43
|
+
let _offset_extraInitializers = [];
|
|
44
|
+
let _length_decorators;
|
|
45
|
+
let _length_initializers = [];
|
|
46
|
+
let _length_extraInitializers = [];
|
|
47
|
+
var Range = class {
|
|
48
|
+
static { _classThis = this; }
|
|
49
|
+
static {
|
|
50
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
51
|
+
_offset_decorators = [field({ type: "u64" })];
|
|
52
|
+
_length_decorators = [field({ type: "u64" })];
|
|
53
|
+
__esDecorate(null, null, _offset_decorators, { kind: "field", name: "offset", static: false, private: false, access: { has: obj => "offset" in obj, get: obj => obj.offset, set: (obj, value) => { obj.offset = value; } }, metadata: _metadata }, _offset_initializers, _offset_extraInitializers);
|
|
54
|
+
__esDecorate(null, null, _length_decorators, { kind: "field", name: "length", static: false, private: false, access: { has: obj => "length" in obj, get: obj => obj.length, set: (obj, value) => { obj.length = value; } }, metadata: _metadata }, _length_initializers, _length_extraInitializers);
|
|
55
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
56
|
+
Range = _classThis = _classDescriptor.value;
|
|
57
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
58
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
20
59
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
60
|
+
offset = __runInitializers(this, _offset_initializers, void 0);
|
|
61
|
+
length = (__runInitializers(this, _offset_extraInitializers), __runInitializers(this, _length_initializers, void 0));
|
|
62
|
+
constructor(props) {
|
|
63
|
+
__runInitializers(this, _length_extraInitializers);
|
|
64
|
+
if (props) {
|
|
65
|
+
this.offset =
|
|
66
|
+
typeof props.offset === "number" ? BigInt(props.offset) : props.offset;
|
|
67
|
+
this.length =
|
|
68
|
+
typeof props.length === "number" ? BigInt(props.length) : props.length;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
return Range = _classThis;
|
|
73
|
+
})();
|
|
35
74
|
export { Range };
|
|
36
75
|
//# sourceMappingURL=range.js.map
|
package/dist/src/range.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.js","sourceRoot":"","sources":["../../src/range.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"range.js","sourceRoot":"","sources":["../../src/range.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;IAGnC,KAAK;4BADjB,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;kCAET,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;kCAGtB,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAFvB,oKAAA,MAAM,6BAAN,MAAM,uFAAS;YAGf,oKAAA,MAAM,6BAAN,MAAM,uFAAS;YALhB,6KAeC;;;YAfY,uDAAK;;QAEjB,MAAM,yDAAS;QAGf,MAAM,+GAAS;QAEf,YAAY,KAA4D;;YACvE,IAAI,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM;oBACV,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;gBACxE,IAAI,CAAC,MAAM;oBACV,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YACzE,CAAC;SACD;;;;SAdW,KAAK"}
|
package/dist/src/string-index.js
CHANGED
|
@@ -1,67 +1,118 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
6
27
|
};
|
|
7
|
-
var
|
|
8
|
-
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
9
34
|
};
|
|
10
35
|
import { field, option, variant } from "@dao-xyz/borsh";
|
|
11
36
|
import { BORSH_ENCODING, Log } from "@peerbit/log";
|
|
12
37
|
import { Entry } from "@peerbit/log";
|
|
13
38
|
import { Program } from "@peerbit/program";
|
|
14
39
|
import { Range } from "./range.js";
|
|
15
|
-
let StringOperation =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
40
|
+
let StringOperation = (() => {
|
|
41
|
+
let _classDecorators = [variant(0)];
|
|
42
|
+
let _classDescriptor;
|
|
43
|
+
let _classExtraInitializers = [];
|
|
44
|
+
let _classThis;
|
|
45
|
+
let _index_decorators;
|
|
46
|
+
let _index_initializers = [];
|
|
47
|
+
let _index_extraInitializers = [];
|
|
48
|
+
let _value_decorators;
|
|
49
|
+
let _value_initializers = [];
|
|
50
|
+
let _value_extraInitializers = [];
|
|
51
|
+
var StringOperation = class {
|
|
52
|
+
static { _classThis = this; }
|
|
53
|
+
static {
|
|
54
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
55
|
+
_index_decorators = [field({ type: Range })];
|
|
56
|
+
_value_decorators = [field({ type: option("string") })];
|
|
57
|
+
__esDecorate(null, null, _index_decorators, { kind: "field", name: "index", static: false, private: false, access: { has: obj => "index" in obj, get: obj => obj.index, set: (obj, value) => { obj.index = value; } }, metadata: _metadata }, _index_initializers, _index_extraInitializers);
|
|
58
|
+
__esDecorate(null, null, _value_decorators, { kind: "field", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
|
|
59
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
60
|
+
StringOperation = _classThis = _classDescriptor.value;
|
|
61
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
62
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
22
63
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
StringOperation =
|
|
34
|
-
|
|
35
|
-
__metadata("design:paramtypes", [Object])
|
|
36
|
-
], StringOperation);
|
|
64
|
+
index = __runInitializers(this, _index_initializers, void 0);
|
|
65
|
+
value = (__runInitializers(this, _index_extraInitializers), __runInitializers(this, _value_initializers, void 0));
|
|
66
|
+
constructor(props) {
|
|
67
|
+
__runInitializers(this, _value_extraInitializers);
|
|
68
|
+
if (props) {
|
|
69
|
+
this.index = props.index;
|
|
70
|
+
this.value = props.value;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
return StringOperation = _classThis;
|
|
75
|
+
})();
|
|
37
76
|
export { StringOperation };
|
|
38
77
|
export const encoding = BORSH_ENCODING(StringOperation);
|
|
39
|
-
let StringIndex =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
78
|
+
let StringIndex = (() => {
|
|
79
|
+
let _classDecorators = [variant("string_index")];
|
|
80
|
+
let _classDescriptor;
|
|
81
|
+
let _classExtraInitializers = [];
|
|
82
|
+
let _classThis;
|
|
83
|
+
let _classSuper = Program;
|
|
84
|
+
var StringIndex = class extends _classSuper {
|
|
85
|
+
static { _classThis = this; }
|
|
86
|
+
static {
|
|
87
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
88
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
89
|
+
StringIndex = _classThis = _classDescriptor.value;
|
|
90
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
91
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
92
|
+
}
|
|
93
|
+
_string;
|
|
94
|
+
_log;
|
|
95
|
+
constructor() {
|
|
96
|
+
super();
|
|
97
|
+
this._string = "";
|
|
98
|
+
}
|
|
99
|
+
get string() {
|
|
100
|
+
return this._string;
|
|
101
|
+
}
|
|
102
|
+
async open(store) {
|
|
103
|
+
this._log = store;
|
|
104
|
+
}
|
|
105
|
+
close(parent) {
|
|
106
|
+
this._string = "";
|
|
107
|
+
this._log = undefined;
|
|
108
|
+
return super.close(parent);
|
|
109
|
+
}
|
|
110
|
+
async updateIndex(_change) {
|
|
111
|
+
this._string = await applyOperations("", await this._log.toArray()); // TODO improve performance
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
return StringIndex = _classThis;
|
|
115
|
+
})();
|
|
65
116
|
export { StringIndex };
|
|
66
117
|
export const applyOperations = async (string, operations) => {
|
|
67
118
|
await Promise.all(operations.map((operation) => operation.getPayloadValue()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-index.js","sourceRoot":"","sources":["../../src/string-index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"string-index.js","sourceRoot":"","sources":["../../src/string-index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAe,GAAG,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;IAGtB,eAAe;4BAD3B,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;iCAET,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iCAGtB,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAFlC,iKAAA,KAAK,6BAAL,KAAK,qFAAQ;YAGb,iKAAA,KAAK,6BAAL,KAAK,qFAAU;YALhB,6KAaC;;;YAbY,uDAAe;;QAE3B,KAAK,wDAAQ;QAGb,KAAK,6GAAU;QAEf,YAAY,KAAwC;;YACnD,IAAI,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,CAAC;SACD;;;;SAZW,eAAe;AAc5B,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IAG3C,WAAW;4BADvB,OAAO,CAAC,cAAc,CAAC;;;;sBACS,OAAO;2BAAf,SAAQ,WAAO;;;;YAAxC,6KAwBC;;;YAxBY,uDAAW;;QACvB,OAAO,CAAS;QAChB,IAAI,CAAuB;QAC3B;YACC,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,MAAM;YACT,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAA2B;YACrC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,CAAC;QAED,KAAK,CAAC,MAAW;YAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,SAAU,CAAC;YACvB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,OAAgC;YACjD,IAAI,CAAC,OAAO,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,2BAA2B;QACjG,CAAC;;;;SAvBW,WAAW;AA0BxB,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EACnC,MAAc,EACd,UAAoC,EAClB,EAAE;IACpB,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAE9E,UAAU,CAAC,MAAM,CAAC,CAAC,OAAiB,EAAE,IAA4B,EAAE,CAAC,EAAE,EAAE;QACxE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC7B,CAAS,EACT,SAA0B,EACjB,EAAE;IACX,2BAA2B;IAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3E,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACnC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;YACA,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC1C,SAAS,CAAC,KAAK;gBACf,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACb,OAAO,CAAC,CAAC;IACV,CAAC;SAAM,CAAC;QACP,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC,CAAC"}
|