@ivlev-dev/silent-reactivity 0.0.0-stage → 0.1.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ivlev-dev
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/deep.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export declare function markReactiveClass(ctor: Function): void;
2
+ export declare function isReactiveClass(value: unknown): boolean;
3
+ export declare function isReactive(value: unknown): boolean;
4
+ export declare function unwrap<T>(value: T): T;
5
+ export declare function deepReactive<T>(value: T): T;
6
+ //# sourceMappingURL=deep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep.d.ts","sourceRoot":"","sources":["../src/deep.ts"],"names":[],"mappings":"AAymBA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAEtD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEvD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAElD;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAUrC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAgB3C"}
package/dist/deep.js ADDED
@@ -0,0 +1,589 @@
1
+ import { createSignalHandle } from "./graph.js";
2
+ const MAX_ARRAY_INDEX = 4294967295;
3
+ const rawToRecord = new WeakMap();
4
+ const proxyToRecord = new WeakMap();
5
+ const reactiveClasses = new WeakSet();
6
+ function hasOwn(target, key) {
7
+ return Object.prototype.hasOwnProperty.call(target, key);
8
+ }
9
+ function toArrayIndex(key) {
10
+ if (key === "") {
11
+ return null;
12
+ }
13
+ const index = Number(key);
14
+ if (!Number.isInteger(index) || index < 0 || index >= MAX_ARRAY_INDEX) {
15
+ return null;
16
+ }
17
+ if (String(index) !== key) {
18
+ return null;
19
+ }
20
+ return index;
21
+ }
22
+ function getPropertyDescriptor(target, key) {
23
+ let current = target;
24
+ while (current !== null) {
25
+ const descriptor = Reflect.getOwnPropertyDescriptor(current, key);
26
+ if (descriptor !== undefined) {
27
+ return descriptor;
28
+ }
29
+ current = Object.getPrototypeOf(current);
30
+ }
31
+ return undefined;
32
+ }
33
+ function ensureField(record, key, initial) {
34
+ const existing = record.fields.get(key);
35
+ if (existing !== undefined) {
36
+ return existing;
37
+ }
38
+ const field = createSignalHandle(initial);
39
+ record.fields.set(key, field);
40
+ return field;
41
+ }
42
+ function getField(record, key) {
43
+ const existing = record.fields.get(key);
44
+ if (existing !== undefined) {
45
+ return existing;
46
+ }
47
+ const initial = Reflect.get(record.raw, key, record.raw);
48
+ return ensureField(record, key, initial);
49
+ }
50
+ function bumpKeys(record) {
51
+ record.keysVersion += 1;
52
+ record.keysSignal.write(record.keysVersion);
53
+ }
54
+ function notifyLength(record, value) {
55
+ const signal = record.lengthSignal;
56
+ if (signal !== null) {
57
+ signal.write(value);
58
+ }
59
+ }
60
+ function writeIndex(record, index, oldValue, newValue) {
61
+ ensureField(record, index, oldValue).write(newValue);
62
+ }
63
+ function notifyChangedIndices(record, previous) {
64
+ const array = record.raw;
65
+ const length = Math.max(previous.length, array.length);
66
+ for (let index = 0; index < length; index += 1) {
67
+ const before = previous[index];
68
+ const after = array[index];
69
+ if (!Object.is(before, after)) {
70
+ writeIndex(record, index, before, after);
71
+ }
72
+ }
73
+ }
74
+ function unwrapValue(value) {
75
+ return unwrap(value);
76
+ }
77
+ function arrayPush(record, items) {
78
+ const array = record.raw;
79
+ const start = array.length;
80
+ const values = items.map(unwrapValue);
81
+ const result = array.push(...values);
82
+ for (let offset = 0; offset < values.length; offset += 1) {
83
+ writeIndex(record, start + offset, undefined, values[offset]);
84
+ }
85
+ notifyLength(record, array.length);
86
+ if (values.length > 0) {
87
+ bumpKeys(record);
88
+ }
89
+ return result;
90
+ }
91
+ function arrayPop(record) {
92
+ const array = record.raw;
93
+ if (array.length === 0) {
94
+ return undefined;
95
+ }
96
+ const index = array.length - 1;
97
+ const hadOwn = hasOwn(array, index);
98
+ const previous = array[index];
99
+ const removed = array.pop();
100
+ writeIndex(record, index, previous, undefined);
101
+ notifyLength(record, array.length);
102
+ if (hadOwn) {
103
+ bumpKeys(record);
104
+ }
105
+ return deepReactive(removed);
106
+ }
107
+ function arrayShift(record) {
108
+ const array = record.raw;
109
+ if (array.length === 0) {
110
+ return undefined;
111
+ }
112
+ const previous = array.slice();
113
+ const removed = array.shift();
114
+ const length = array.length;
115
+ for (let index = 0; index < length; index += 1) {
116
+ writeIndex(record, index, previous[index], array[index]);
117
+ }
118
+ writeIndex(record, length, previous[length], undefined);
119
+ notifyLength(record, length);
120
+ bumpKeys(record);
121
+ return deepReactive(removed);
122
+ }
123
+ function arrayUnshift(record, items) {
124
+ const array = record.raw;
125
+ const previous = array.slice();
126
+ const values = items.map(unwrapValue);
127
+ const result = array.unshift(...values);
128
+ const length = array.length;
129
+ for (let index = 0; index < length; index += 1) {
130
+ writeIndex(record, index, previous[index], array[index]);
131
+ }
132
+ notifyLength(record, length);
133
+ if (values.length > 0) {
134
+ bumpKeys(record);
135
+ }
136
+ return result;
137
+ }
138
+ function arraySplice(record, args) {
139
+ const array = record.raw;
140
+ const previousLength = array.length;
141
+ const previous = array.slice();
142
+ const previousOwn = [];
143
+ for (let index = 0; index < previousLength; index += 1) {
144
+ previousOwn[index] = hasOwn(array, index);
145
+ }
146
+ const start = args[0];
147
+ const deleteCount = args[1];
148
+ const inserted = args.length > 2 ? args.slice(2).map(unwrapValue) : [];
149
+ let removed;
150
+ if (args.length === 0) {
151
+ removed = [];
152
+ }
153
+ else if (args.length === 1) {
154
+ removed = array.splice(start);
155
+ }
156
+ else {
157
+ removed = array.splice(start, deleteCount, ...inserted);
158
+ }
159
+ const length = array.length;
160
+ const limit = Math.max(previousLength, length);
161
+ let keysChanged = previousLength !== length;
162
+ for (let index = 0; index < limit; index += 1) {
163
+ const before = previous[index];
164
+ const after = array[index];
165
+ const owned = hasOwn(array, index);
166
+ const wasOwn = previousOwn[index] === true;
167
+ if (!Object.is(before, after) || wasOwn !== owned) {
168
+ writeIndex(record, index, before, after);
169
+ }
170
+ if (!keysChanged && wasOwn !== owned) {
171
+ keysChanged = true;
172
+ }
173
+ }
174
+ notifyLength(record, length);
175
+ if (keysChanged) {
176
+ bumpKeys(record);
177
+ }
178
+ return deepReactive(removed);
179
+ }
180
+ function arraySort(record, args) {
181
+ const array = record.raw;
182
+ const previous = array.slice();
183
+ const comparator = args[0];
184
+ if (typeof comparator === "function") {
185
+ array.sort(comparator);
186
+ }
187
+ else {
188
+ array.sort();
189
+ }
190
+ notifyChangedIndices(record, previous);
191
+ return record.proxy;
192
+ }
193
+ function arrayReverse(record) {
194
+ const array = record.raw;
195
+ const previous = array.slice();
196
+ array.reverse();
197
+ notifyChangedIndices(record, previous);
198
+ return record.proxy;
199
+ }
200
+ function arrayFill(record, args) {
201
+ const array = record.raw;
202
+ const previous = array.slice();
203
+ const wasOwn = [];
204
+ for (let index = 0; index < previous.length; index += 1) {
205
+ wasOwn[index] = hasOwn(array, index);
206
+ }
207
+ const value = unwrapValue(args[0]);
208
+ if (args.length > 2) {
209
+ array.fill(value, args[1], args[2]);
210
+ }
211
+ else if (args.length > 1) {
212
+ array.fill(value, args[1]);
213
+ }
214
+ else {
215
+ array.fill(value);
216
+ }
217
+ notifyChangedIndices(record, previous);
218
+ let keysChanged = false;
219
+ for (let index = 0; index < array.length; index += 1) {
220
+ if (wasOwn[index] === false && hasOwn(array, index)) {
221
+ keysChanged = true;
222
+ break;
223
+ }
224
+ }
225
+ if (keysChanged) {
226
+ bumpKeys(record);
227
+ }
228
+ return record.proxy;
229
+ }
230
+ function arrayCopyWithin(record, args) {
231
+ const array = record.raw;
232
+ const previous = array.slice();
233
+ const wasOwn = [];
234
+ for (let index = 0; index < previous.length; index += 1) {
235
+ wasOwn[index] = hasOwn(array, index);
236
+ }
237
+ if (args.length > 2) {
238
+ array.copyWithin(args[0], args[1], args[2]);
239
+ }
240
+ else if (args.length > 1) {
241
+ array.copyWithin(args[0], args[1]);
242
+ }
243
+ else {
244
+ array.copyWithin(args[0], 0);
245
+ }
246
+ notifyChangedIndices(record, previous);
247
+ let keysChanged = false;
248
+ for (let index = 0; index < array.length; index += 1) {
249
+ if (wasOwn[index] === false && hasOwn(array, index)) {
250
+ keysChanged = true;
251
+ break;
252
+ }
253
+ }
254
+ if (keysChanged) {
255
+ bumpKeys(record);
256
+ }
257
+ return record.proxy;
258
+ }
259
+ function createArrayMethods(record) {
260
+ const methods = new Map();
261
+ methods.set("push", (...items) => arrayPush(record, items));
262
+ methods.set("pop", () => arrayPop(record));
263
+ methods.set("shift", () => arrayShift(record));
264
+ methods.set("unshift", (...items) => arrayUnshift(record, items));
265
+ methods.set("splice", (...args) => arraySplice(record, args));
266
+ methods.set("sort", (...args) => arraySort(record, args));
267
+ methods.set("reverse", () => arrayReverse(record));
268
+ methods.set("fill", (...args) => arrayFill(record, args));
269
+ methods.set("copyWithin", (...args) => arrayCopyWithin(record, args));
270
+ return methods;
271
+ }
272
+ function setObjectField(record, key, value) {
273
+ const raw = record.raw;
274
+ const hadOwn = hasOwn(raw, key);
275
+ const previous = Reflect.get(raw, key, raw);
276
+ const success = Reflect.set(raw, key, value, raw);
277
+ if (!success) {
278
+ return false;
279
+ }
280
+ const next = Reflect.get(raw, key, raw);
281
+ ensureField(record, key, previous).write(next);
282
+ if (!hadOwn) {
283
+ bumpKeys(record);
284
+ }
285
+ return true;
286
+ }
287
+ function setArrayIndex(record, index, value) {
288
+ const array = record.raw;
289
+ const hadOwn = hasOwn(array, index);
290
+ const previousLength = array.length;
291
+ const previous = hadOwn ? array[index] : undefined;
292
+ const success = Reflect.set(array, index, value, array);
293
+ if (!success) {
294
+ return false;
295
+ }
296
+ writeIndex(record, index, previous, array[index]);
297
+ const length = array.length;
298
+ if (length !== previousLength) {
299
+ notifyLength(record, length);
300
+ }
301
+ if (!hadOwn) {
302
+ bumpKeys(record);
303
+ }
304
+ return true;
305
+ }
306
+ function setArrayLength(record, value) {
307
+ const array = record.raw;
308
+ const previousLength = array.length;
309
+ const previous = array.slice();
310
+ const previousOwn = [];
311
+ for (let index = 0; index < previousLength; index += 1) {
312
+ previousOwn[index] = hasOwn(array, index);
313
+ }
314
+ const success = Reflect.set(array, "length", value, array);
315
+ if (!success) {
316
+ return false;
317
+ }
318
+ const length = array.length;
319
+ if (length < previousLength) {
320
+ let keysChanged = false;
321
+ for (let index = length; index < previousLength; index += 1) {
322
+ writeIndex(record, index, previous[index], undefined);
323
+ if (previousOwn[index] === true) {
324
+ keysChanged = true;
325
+ }
326
+ }
327
+ if (keysChanged) {
328
+ bumpKeys(record);
329
+ }
330
+ }
331
+ notifyLength(record, length);
332
+ return true;
333
+ }
334
+ function isDomNode(value) {
335
+ return typeof Node !== "undefined" && value instanceof Node;
336
+ }
337
+ function hasReactivePrototype(value) {
338
+ let current = Object.getPrototypeOf(value);
339
+ while (current !== null) {
340
+ const descriptor = Reflect.getOwnPropertyDescriptor(current, "constructor");
341
+ if (descriptor !== undefined &&
342
+ typeof descriptor.value === "function" &&
343
+ reactiveClasses.has(descriptor.value)) {
344
+ return true;
345
+ }
346
+ current = Object.getPrototypeOf(current);
347
+ }
348
+ return false;
349
+ }
350
+ function isNonReactiveObject(value) {
351
+ if (isDomNode(value)) {
352
+ return true;
353
+ }
354
+ const tag = Object.prototype.toString.call(value);
355
+ switch (tag) {
356
+ case "[object Date]":
357
+ case "[object Map]":
358
+ case "[object Set]":
359
+ case "[object WeakMap]":
360
+ case "[object WeakSet]":
361
+ case "[object Promise]":
362
+ case "[object RegExp]":
363
+ case "[object Error]":
364
+ case "[object ArrayBuffer]":
365
+ case "[object SharedArrayBuffer]":
366
+ case "[object DataView]":
367
+ case "[object Number]":
368
+ case "[object String]":
369
+ case "[object Boolean]":
370
+ case "[object BigInt]":
371
+ case "[object Symbol]":
372
+ case "[object WeakRef]":
373
+ case "[object FinalizationRegistry]":
374
+ return true;
375
+ default:
376
+ return false;
377
+ }
378
+ }
379
+ function shouldWrap(value) {
380
+ if (hasReactivePrototype(value)) {
381
+ return false;
382
+ }
383
+ if (Array.isArray(value)) {
384
+ return true;
385
+ }
386
+ if (isNonReactiveObject(value)) {
387
+ return false;
388
+ }
389
+ return Object.prototype.toString.call(value) === "[object Object]";
390
+ }
391
+ function createHandler(record) {
392
+ return {
393
+ get(target, key, receiver) {
394
+ const raw = record.raw;
395
+ if (record.isArray) {
396
+ if (key === "length") {
397
+ const signal = record.lengthSignal;
398
+ if (signal !== null) {
399
+ return signal.read();
400
+ }
401
+ }
402
+ if (typeof key === "string") {
403
+ const methods = record.arrayMethods;
404
+ if (methods !== null && !hasOwn(raw, key)) {
405
+ const method = methods.get(key);
406
+ if (method !== undefined) {
407
+ return method;
408
+ }
409
+ }
410
+ const index = toArrayIndex(key);
411
+ if (index !== null) {
412
+ return deepReactive(getField(record, index).read());
413
+ }
414
+ }
415
+ }
416
+ const descriptor = getPropertyDescriptor(raw, key);
417
+ if (descriptor !== undefined && descriptor.get !== undefined) {
418
+ return deepReactive(Reflect.get(raw, key, record.proxy));
419
+ }
420
+ if (descriptor !== undefined &&
421
+ descriptor.configurable === false &&
422
+ descriptor.get === undefined &&
423
+ descriptor.set === undefined &&
424
+ descriptor.writable === false) {
425
+ return descriptor.value;
426
+ }
427
+ return deepReactive(getField(record, key).read());
428
+ },
429
+ set(target, key, value, receiver) {
430
+ const raw = record.raw;
431
+ if (receiver !== record.proxy) {
432
+ return Reflect.set(target, key, value, receiver);
433
+ }
434
+ const descriptor = getPropertyDescriptor(raw, key);
435
+ if (descriptor !== undefined && descriptor.set !== undefined) {
436
+ return Reflect.set(raw, key, value, record.proxy);
437
+ }
438
+ const rawValue = unwrapValue(value);
439
+ if (record.isArray) {
440
+ if (key === "length") {
441
+ return setArrayLength(record, rawValue);
442
+ }
443
+ if (typeof key === "string") {
444
+ const index = toArrayIndex(key);
445
+ if (index !== null) {
446
+ return setArrayIndex(record, index, rawValue);
447
+ }
448
+ }
449
+ }
450
+ return setObjectField(record, key, rawValue);
451
+ },
452
+ has(target, key) {
453
+ record.keysSignal.read();
454
+ return Reflect.has(target, key);
455
+ },
456
+ ownKeys(target) {
457
+ record.keysSignal.read();
458
+ return Reflect.ownKeys(target);
459
+ },
460
+ getOwnPropertyDescriptor(target, key) {
461
+ record.keysSignal.read();
462
+ return Reflect.getOwnPropertyDescriptor(target, key);
463
+ },
464
+ deleteProperty(target, key) {
465
+ const hadOwn = hasOwn(target, key);
466
+ const previous = hadOwn ? Reflect.get(target, key, target) : undefined;
467
+ const deleted = Reflect.deleteProperty(target, key);
468
+ if (deleted && hadOwn) {
469
+ let fieldKey = key;
470
+ if (record.isArray && typeof key === "string") {
471
+ const index = toArrayIndex(key);
472
+ if (index !== null) {
473
+ fieldKey = index;
474
+ }
475
+ }
476
+ ensureField(record, fieldKey, previous).write(undefined);
477
+ bumpKeys(record);
478
+ }
479
+ return deleted;
480
+ },
481
+ defineProperty(target, key, descriptor) {
482
+ const raw = record.raw;
483
+ if (record.isArray && key === "length" && "value" in descriptor) {
484
+ return setArrayLength(record, descriptor.value);
485
+ }
486
+ if (record.isArray && typeof key === "string" && "value" in descriptor) {
487
+ const index = toArrayIndex(key);
488
+ if (index !== null) {
489
+ const hadOwn = hasOwn(raw, index);
490
+ const previousLength = raw.length;
491
+ const previousValue = hadOwn ? Reflect.get(raw, index, raw) : undefined;
492
+ const nextDescriptor = {
493
+ ...descriptor,
494
+ value: unwrapValue(descriptor.value),
495
+ };
496
+ const success = Reflect.defineProperty(raw, index, nextDescriptor);
497
+ if (!success) {
498
+ return false;
499
+ }
500
+ writeIndex(record, index, previousValue, Reflect.get(raw, index, raw));
501
+ const length = raw.length;
502
+ if (length !== previousLength) {
503
+ notifyLength(record, length);
504
+ }
505
+ if (!hadOwn) {
506
+ bumpKeys(record);
507
+ }
508
+ return true;
509
+ }
510
+ }
511
+ const hadOwn = hasOwn(raw, key);
512
+ const previous = Reflect.get(raw, key, raw);
513
+ const normalized = "value" in descriptor
514
+ ? { ...descriptor, value: unwrapValue(descriptor.value) }
515
+ : descriptor;
516
+ const success = Reflect.defineProperty(raw, key, normalized);
517
+ if (!success) {
518
+ return false;
519
+ }
520
+ if ("value" in normalized) {
521
+ ensureField(record, key, previous).write(Reflect.get(raw, key, raw));
522
+ }
523
+ if (!hadOwn) {
524
+ bumpKeys(record);
525
+ }
526
+ return true;
527
+ },
528
+ };
529
+ }
530
+ function createRecord(raw) {
531
+ const record = {
532
+ raw,
533
+ proxy: raw,
534
+ isArray: Array.isArray(raw),
535
+ fields: new Map(),
536
+ keysSignal: createSignalHandle(0),
537
+ lengthSignal: Array.isArray(raw)
538
+ ? createSignalHandle(raw.length)
539
+ : null,
540
+ arrayMethods: null,
541
+ keysVersion: 0,
542
+ };
543
+ const proxy = new Proxy(raw, createHandler(record));
544
+ record.proxy = proxy;
545
+ if (record.isArray) {
546
+ record.arrayMethods = createArrayMethods(record);
547
+ }
548
+ rawToRecord.set(raw, record);
549
+ proxyToRecord.set(proxy, record);
550
+ return record;
551
+ }
552
+ export function markReactiveClass(ctor) {
553
+ reactiveClasses.add(ctor);
554
+ }
555
+ export function isReactiveClass(value) {
556
+ return typeof value === "function" && reactiveClasses.has(value);
557
+ }
558
+ export function isReactive(value) {
559
+ return typeof value === "object" && value !== null && proxyToRecord.has(value);
560
+ }
561
+ export function unwrap(value) {
562
+ let current = value;
563
+ while (typeof current === "object" && current !== null) {
564
+ const record = proxyToRecord.get(current);
565
+ if (record === undefined) {
566
+ break;
567
+ }
568
+ current = record.raw;
569
+ }
570
+ return current;
571
+ }
572
+ export function deepReactive(value) {
573
+ if (value === null || typeof value !== "object") {
574
+ return value;
575
+ }
576
+ const existingProxy = proxyToRecord.get(value);
577
+ if (existingProxy !== undefined) {
578
+ return existingProxy.proxy;
579
+ }
580
+ const existingRaw = rawToRecord.get(value);
581
+ if (existingRaw !== undefined) {
582
+ return existingRaw.proxy;
583
+ }
584
+ if (!shouldWrap(value)) {
585
+ return value;
586
+ }
587
+ return createRecord(value).proxy;
588
+ }
589
+ //# sourceMappingURL=deep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep.js","sourceRoot":"","sources":["../src/deep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,YAAY,CAAC;AAanE,MAAM,eAAe,GAAG,UAAU,CAAC;AAEnC,MAAM,WAAW,GAAG,IAAI,OAAO,EAA0B,CAAC;AAC1D,MAAM,aAAa,GAAG,IAAI,OAAO,EAA0B,CAAC;AAC5D,MAAM,eAAe,GAAG,IAAI,OAAO,EAAY,CAAC;AAEhD,SAAS,MAAM,CAAC,MAAc,EAAE,GAAgB;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,eAAe,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAc,EACd,GAAgB;IAEhB,IAAI,OAAO,GAAkB,MAAM,CAAC;IACpC,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAkB,CAAC;IAC5D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAClB,MAAsB,EACtB,GAAgB,EAChB,OAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,kBAAkB,CAAU,OAAO,CAAC,CAAC;IACnD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,MAAsB,EAAE,GAAgB;IACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,MAAsB;IACtC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;IACxB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,YAAY,CAAC,MAAsB,EAAE,KAAa;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;IACnC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,MAAsB,EACtB,KAAa,EACb,QAAiB,EACjB,QAAiB;IAEjB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAsB,EACtB,QAA4B;IAE5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YAC9B,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,SAAS,CAAC,MAAsB,EAAE,KAAgB;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IACrC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QACzD,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,MAAsB;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,UAAU,CAAC,MAAsB;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IACxD,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjB,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,YAAY,CAAC,MAAsB,EAAE,KAAgB;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,MAAsB,EAAE,IAAe;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,IAAI,OAAkB,CAAC;IACvB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAe,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAe,EAAE,WAAqB,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,WAAW,GAAG,cAAc,KAAK,MAAM,CAAC;IAC5C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAClD,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,WAAW,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrC,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IACD,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,WAAW,EAAE,CAAC;QAChB,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,MAAsB,EAAE,IAAe;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,UAAgD,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IACD,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,MAAsB;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,KAAK,CAAC,OAAO,EAAE,CAAC;IAChB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,MAAsB,EAAE,IAAe;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAW,EAAE,IAAI,CAAC,CAAC,CAAW,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAW,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACpD,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,MAAsB,EAAE,IAAe;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,IAAI,CAAC,CAAC,CAAW,EAAE,IAAI,CAAC,CAAC,CAAW,CAAC,CAAC;IAC5E,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,IAAI,CAAC,CAAC,CAAW,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACpD,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAsB;IAEtB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2C,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,KAAgB,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,KAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACjF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CACrB,MAAsB,EACtB,GAAgB,EAChB,KAAc;IAEd,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CACpB,MAAsB,EACtB,KAAa,EACb,KAAc;IAEd,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IACD,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,MAAsB,EAAE,KAAc;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAgB,CAAC;IACtC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;QAC5B,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,KAAK,IAAI,KAAK,GAAG,MAAM,EAAE,KAAK,GAAG,cAAc,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC5D,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;YACtD,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChC,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,OAAO,IAAI,KAAK,WAAW,IAAI,KAAK,YAAY,IAAI,CAAC;AAC9D,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,IAAI,OAAO,GAAkB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAkB,CAAC;IAC3E,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC5E,IACE,UAAU,KAAK,SAAS;YACxB,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU;YACtC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EACrC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAkB,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC;QACpB,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB,CAAC;QACxB,KAAK,iBAAiB,CAAC;QACvB,KAAK,gBAAgB,CAAC;QACtB,KAAK,sBAAsB,CAAC;QAC5B,KAAK,4BAA4B,CAAC;QAClC,KAAK,mBAAmB,CAAC;QACzB,KAAK,iBAAiB,CAAC;QACvB,KAAK,iBAAiB,CAAC;QACvB,KAAK,kBAAkB,CAAC;QACxB,KAAK,iBAAiB,CAAC;QACvB,KAAK,iBAAiB,CAAC;QACvB,KAAK,kBAAkB,CAAC;QACxB,KAAK,+BAA+B;YAClC,OAAO,IAAI,CAAC;QACd;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC;AACrE,CAAC;AAED,SAAS,aAAa,CAAC,MAAsB;IAC3C,OAAO;QACL,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YACvB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;oBACrB,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;oBACnC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;wBACpB,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;oBACvB,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;oBACpC,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;wBAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;4BACzB,OAAO,MAAM,CAAC;wBAChB,CAAC;oBACH,CAAC;oBACD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;oBAChC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACnB,OAAO,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7D,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,IACE,UAAU,KAAK,SAAS;gBACxB,UAAU,CAAC,YAAY,KAAK,KAAK;gBACjC,UAAU,CAAC,GAAG,KAAK,SAAS;gBAC5B,UAAU,CAAC,GAAG,KAAK,SAAS;gBAC5B,UAAU,CAAC,QAAQ,KAAK,KAAK,EAC7B,CAAC;gBACD,OAAO,UAAU,CAAC,KAAK,CAAC;YAC1B,CAAC;YACD,OAAO,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ;YAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YACvB,IAAI,QAAQ,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;oBACrB,OAAO,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;oBAChC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACnB,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAChD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,GAAG;YACb,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,CAAC,MAAM;YACZ,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,wBAAwB,CAAC,MAAM,EAAE,GAAG;YAClC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;QACD,cAAc,CAAC,MAAM,EAAE,GAAG;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gBACtB,IAAI,QAAQ,GAAgB,GAAG,CAAC;gBAChC,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;oBAChC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACnB,QAAQ,GAAG,KAAK,CAAC;oBACnB,CAAC;gBACH,CAAC;gBACD,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACzD,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU;YACpC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YACvB,IAAI,MAAM,CAAC,OAAO,IAAI,GAAG,KAAK,QAAQ,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;gBAChE,OAAO,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;gBACvE,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAClC,MAAM,cAAc,GAAI,GAAiB,CAAC,MAAM,CAAC;oBACjD,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACxE,MAAM,cAAc,GAAuB;wBACzC,GAAG,UAAU;wBACb,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;qBACrC,CAAC;oBACF,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;oBACnE,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;oBACvE,MAAM,MAAM,GAAI,GAAiB,CAAC,MAAM,CAAC;oBACzC,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;wBAC9B,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAC/B,CAAC;oBACD,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,UAAU,GACd,OAAO,IAAI,UAAU;gBACnB,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACzD,CAAC,CAAC,UAAU,CAAC;YACjB,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;gBAC1B,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,MAAM,GAAmB;QAC7B,GAAG;QACH,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3B,MAAM,EAAE,IAAI,GAAG,EAAsC;QACrD,UAAU,EAAE,kBAAkB,CAAS,CAAC,CAAC;QACzC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAC9B,CAAC,CAAC,kBAAkB,CAAS,GAAG,CAAC,MAAM,CAAC;YACxC,CAAC,CAAC,IAAI;QACR,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,CAAC;KACf,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAc;IAC9C,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,KAAQ;IAChC,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM;QACR,CAAC;QACD,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,CAAC;IACD,OAAO,OAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,KAAQ;IACtC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC,KAAU,CAAC;IAClC,CAAC;IACD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC,KAAU,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,KAAU,CAAC;AACxC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Accessor, MemoOptions, Owner, Setter, SignalOptions } from "./types.js";
2
+ export interface SignalHandle<T> {
3
+ read(): T;
4
+ peek(): T;
5
+ write(value: T): T;
6
+ }
7
+ export declare function createSignalHandle<T>(value: T, equals?: (a: T, b: T) => boolean): SignalHandle<T>;
8
+ export declare function createSignal<T>(value: T, options?: SignalOptions<T>): [Accessor<T>, Setter<T>];
9
+ export declare function createMemo<T>(fn: () => T, options?: MemoOptions<T>): Accessor<T>;
10
+ export declare function createEffect(fn: () => void): void;
11
+ export declare function createRenderEffect(fn: () => void): void;
12
+ export declare function createRoot<T>(fn: (dispose: () => void) => T): T;
13
+ export declare function getOwner(): Owner | null;
14
+ export declare function runWithOwner<T>(owner: Owner | null, fn: () => T): T;
15
+ export declare function onCleanup(fn: () => void): void;
16
+ export declare function untrack<T>(fn: () => T): T;
17
+ export declare function batch<T>(fn: () => T): T;
18
+ export declare function flushSync(): void;
19
+ //# sourceMappingURL=graph.d.ts.map