@legendapp/state 0.11.0-next.3 → 0.11.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/index.d.ts CHANGED
@@ -11,4 +11,4 @@ export { isArray, isObject, isPrimitive, isFunction } from './src/is';
11
11
  /** @internal */
12
12
  export { onChange, onChangeShallow } from './src/on';
13
13
  /** @internal */
14
- export { tracking } from './src/state';
14
+ export { tracking } from './src/tracking';
package/index.js CHANGED
@@ -26,28 +26,53 @@ function isSymbol(obj) {
26
26
  }
27
27
 
28
28
  const tracking = {
29
- nodes: [],
29
+ nodes: undefined,
30
+ listeners: undefined,
31
+ updates: undefined,
30
32
  };
31
- function updateTracking(node, shallow) {
32
- tracking.nodes.push({
33
- node,
34
- shallow: shallow,
35
- });
33
+ function updateTracking(node, parent, shallow, manual) {
34
+ if (parent) {
35
+ untrack(parent);
36
+ }
37
+ const existing = tracking.nodes.get(node.id);
38
+ if (existing) {
39
+ existing.shallow = existing.shallow || shallow;
40
+ existing.manual = existing.manual || manual;
41
+ }
42
+ else {
43
+ tracking.nodes.set(node.id, { node, shallow, manual });
44
+ }
45
+ }
46
+ function untrack(node) {
47
+ const tracked = tracking.nodes.get(node.id);
48
+ if (tracked && !tracked.manual) {
49
+ tracking.nodes.delete(node.id);
50
+ }
36
51
  }
37
52
 
38
53
  const symbolDateModified = Symbol('dateModified');
39
54
  const symbolIsObservable = Symbol('isObservable');
40
- function get(node) {
55
+ const nextNodeID = { current: 0 };
56
+ function getOutputValue(node) {
41
57
  let value = getNodeValue(node);
42
58
  if (node.root.isPrimitive) {
43
59
  value = value.current;
44
60
  }
45
61
  return value;
46
62
  }
47
- function observe(node, shallow) {
48
- const value = get(node);
63
+ function get(node) {
49
64
  if (tracking.nodes)
50
- updateTracking(node, shallow);
65
+ untrack(node);
66
+ return getOutputValue(node);
67
+ }
68
+ function observe(node, shallow) {
69
+ const value = getOutputValue(node);
70
+ if (tracking.nodes) {
71
+ updateTracking(node, undefined, shallow, /*manual*/ true);
72
+ }
73
+ else if (process.env.NODE_ENV === 'development') {
74
+ console.error('[legend-state]: observe() has no effect outside of an observer component.');
75
+ }
51
76
  return value;
52
77
  }
53
78
  function getNodeValue(node) {
@@ -78,6 +103,7 @@ function getChildNode(node, key) {
78
103
  // Create the child node if it doesn't already exist
79
104
  if (!child) {
80
105
  child = {
106
+ id: nextNodeID.current++,
81
107
  root: node.root,
82
108
  parent: node,
83
109
  key,
@@ -151,7 +177,7 @@ function observableBatcherNotify(b) {
151
177
  }
152
178
  }
153
179
  else {
154
- b.cb(b.value, b.getPrevious, b.path, b.valueAtPath, b.prevAtPath);
180
+ b.cb(b.value, b.getPrevious, b.path, b.valueAtPath, b.prevAtPath, b.node);
155
181
  }
156
182
  }
157
183
  exports.observableBatcher = void 0;
@@ -179,8 +205,8 @@ exports.observableBatcher = void 0;
179
205
  _batch = [];
180
206
  _batchMap = new WeakMap();
181
207
  for (let i = 0; i < batch.length; i++) {
182
- const { cb, value, getPrevious: prev, path, valueAtPath, prevAtPath } = batch[i];
183
- cb(value, prev, path, valueAtPath, prevAtPath);
208
+ const { cb, value, getPrevious: prev, path, valueAtPath, prevAtPath, node } = batch[i];
209
+ cb(value, prev, path, valueAtPath, prevAtPath, node);
184
210
  }
185
211
  }
186
212
  }
@@ -240,6 +266,7 @@ function onChangeShallow(node, callback) {
240
266
  let lastAccessedNode;
241
267
  let lastAccessedPrimitive;
242
268
  let inSetFn = false;
269
+ const undef = Symbol('undef');
243
270
  const ArrayModifiers = new Set([
244
271
  'copyWithin',
245
272
  'fill',
@@ -262,7 +289,8 @@ const objectFns = new Map([
262
289
  ['onEquals', onEquals],
263
290
  ['onHasValue', onHasValue],
264
291
  ['onTrue', onTrue],
265
- ['ref', getProxy],
292
+ ['ref', ref],
293
+ ['prop', prop],
266
294
  ['assign', assign],
267
295
  ['delete', deleteFn],
268
296
  ]);
@@ -386,6 +414,18 @@ function getProxy(node, p) {
386
414
  }
387
415
  return proxy;
388
416
  }
417
+ function ref(node) {
418
+ if (tracking.nodes)
419
+ untrack(node);
420
+ return getProxy(node);
421
+ }
422
+ function prop(node, p) {
423
+ // Update that this node was accessed for observers
424
+ if (tracking.nodes) {
425
+ updateTracking(getChildNode(node, p), node);
426
+ }
427
+ return getProxy(node, p);
428
+ }
389
429
  const proxyHandler = {
390
430
  get(target, p) {
391
431
  var _a;
@@ -397,6 +437,11 @@ const proxyHandler = {
397
437
  const fn = objectFns.get(p);
398
438
  // If this is an observable function, call it
399
439
  if (fn) {
440
+ if (p === 'set' || p === 'assign') {
441
+ // Set operations do not create listeners
442
+ if (tracking.nodes)
443
+ untrack(node);
444
+ }
400
445
  return function (a, b, c) {
401
446
  const l = arguments.length;
402
447
  return l > 2 ? fn(node, a, b, c) : l > 1 ? fn(node, a, b) : fn(node, a);
@@ -418,8 +463,9 @@ const proxyHandler = {
418
463
  }
419
464
  else if (ArrayLoopers.has(p)) {
420
465
  // Update that this node was accessed for observers
466
+ // Listen to the array shallowly
421
467
  if (tracking.nodes) {
422
- updateTracking(getChildNode(node, p));
468
+ updateTracking(node, undefined, true);
423
469
  }
424
470
  return function (cbOrig, thisArg) {
425
471
  function cb(_, index, array) {
@@ -432,16 +478,21 @@ const proxyHandler = {
432
478
  // Return the function bound to the value
433
479
  return vProp.bind(value);
434
480
  }
435
- // Accessing primitives tracks and returns
481
+ // Update that this node was accessed for observers
482
+ if (tracking.nodes) {
483
+ if (isArray(value) && p === 'length') {
484
+ updateTracking(node, undefined, /*shallow*/ true);
485
+ }
486
+ else {
487
+ updateTracking(getChildNode(node, p), node);
488
+ }
489
+ }
490
+ // Accessing primitive returns the raw value
436
491
  if (vProp === undefined || vProp === null ? !hasProxy(target, p) : isPrimitive(vProp)) {
437
492
  // Accessing a primitive saves the last accessed so that the observable functions
438
493
  // bound to primitives can know which node was accessed
439
494
  lastAccessedNode = node;
440
495
  lastAccessedPrimitive = p;
441
- // Update that this node was accessed for observers
442
- if (tracking.nodes) {
443
- updateTracking(getChildNode(node, p));
444
- }
445
496
  return vProp;
446
497
  }
447
498
  return getProxy(target, p);
@@ -454,6 +505,10 @@ const proxyHandler = {
454
505
  ownKeys(target) {
455
506
  const value = getNodeValue(target);
456
507
  const keys = value ? Reflect.ownKeys(value) : [];
508
+ // Update that this node was accessed for observers
509
+ if (tracking.nodes) {
510
+ updateTracking(target, undefined, true);
511
+ }
457
512
  // This is required to fix this error:
458
513
  // TypeError: 'getOwnPropertyDescriptor' on proxy: trap reported non-configurability for
459
514
  // property 'length' which is either non-existent or configurable in the proxy target
@@ -501,24 +556,38 @@ function set(node, keyOrNewValue, newValue) {
501
556
  return setProp(node, 'current', keyOrNewValue);
502
557
  }
503
558
  else if (!node.parent) {
504
- return assign(node, keyOrNewValue);
559
+ return set(node, undef, keyOrNewValue);
505
560
  }
506
561
  else {
507
562
  return setProp(node.parent, node.key, keyOrNewValue);
508
563
  }
509
564
  }
510
565
  function setProp(node, key, newValue, level) {
511
- newValue = newValue && isObject(newValue) && (newValue === null || newValue === void 0 ? void 0 : newValue[symbolIsObservable]) ? newValue.get() : newValue;
512
- const isPrim = isPrimitive(newValue);
513
566
  inSetFn = true;
567
+ const isRoot = key === undef;
514
568
  // Get the child node for updating and notifying
515
- let childNode = getChildNode(node, key);
569
+ let childNode = isRoot ? node : getChildNode(node, key);
570
+ // Set operations do not create listeners
571
+ if (tracking.nodes)
572
+ untrack(childNode);
516
573
  // Get the value of the parent
517
- let parentValue = getNodeValue(node);
574
+ let parentValue = isRoot ? node.root : getNodeValue(node);
575
+ if (isRoot) {
576
+ key = '_';
577
+ }
518
578
  // Save the previous value first
519
579
  const prevValue = parentValue[key];
580
+ // Compute newValue if newValue is a function or an observable
581
+ newValue = isFunction(newValue)
582
+ ? newValue(prevValue)
583
+ : isObject(newValue) && (newValue === null || newValue === void 0 ? void 0 : newValue[symbolIsObservable])
584
+ ? newValue.get()
585
+ : newValue;
586
+ const isPrim = isPrimitive(newValue);
520
587
  // Save the new value
521
588
  parentValue[key] = newValue;
589
+ // Make sure we don't call too many listeners for ever property set
590
+ exports.observableBatcher.begin();
522
591
  let hasADiff = isPrim;
523
592
  // If new value is an object or array update notify down the tree
524
593
  if (!isPrim) {
@@ -528,8 +597,9 @@ function setProp(node, key, newValue, level) {
528
597
  if (!isPrim || newValue !== prevValue) {
529
598
  notify(node.root.isPrimitive ? node : childNode, newValue, prevValue, (level !== null && level !== void 0 ? level : prevValue === undefined) ? -1 : hasADiff ? 0 : 1);
530
599
  }
600
+ exports.observableBatcher.end();
531
601
  inSetFn = false;
532
- return getProxy(node, key);
602
+ return isRoot ? getProxy(node) : getProxy(node, key);
533
603
  }
534
604
  function createPreviousHandler(value, path, prevAtPath) {
535
605
  // Create a function that clones the current state and injects the previous data at the changed path
@@ -561,7 +631,7 @@ function _notify(node, value, path, valueAtPath, prevAtPath, level) {
561
631
  if (!getPrevious) {
562
632
  getPrevious = createPreviousHandler(value, path, prevAtPath);
563
633
  }
564
- observableBatcherNotify({ cb: listener, value, getPrevious, path, valueAtPath, prevAtPath });
634
+ observableBatcherNotify({ cb: listener, value, getPrevious, path, valueAtPath, prevAtPath, node });
565
635
  }
566
636
  }
567
637
  }
@@ -583,6 +653,9 @@ function notify(node, value, prev, level) {
583
653
  _notifyParents(node, value, [], value, prev, level);
584
654
  }
585
655
  function assign(node, value) {
656
+ // Set operations do not create listeners
657
+ if (tracking.nodes)
658
+ untrack(node);
586
659
  exports.observableBatcher.begin();
587
660
  // Assign calls set with all assigned properties
588
661
  const keys = Object.keys(value);
@@ -590,9 +663,8 @@ function assign(node, value) {
590
663
  for (let i = 0; i < length; i++) {
591
664
  setProp(node, keys[i], value[keys[i]]);
592
665
  }
593
- const ret = getNodeValue(node);
594
666
  exports.observableBatcher.end();
595
- return ret;
667
+ return getProxy(node);
596
668
  }
597
669
  function deleteFn(node, key) {
598
670
  // If called without a key, delete by key from the parent node
@@ -625,6 +697,7 @@ function observable(obj) {
625
697
  isPrimitive: isPrim,
626
698
  };
627
699
  const node = {
700
+ id: nextNodeID.current++,
628
701
  root: obs,
629
702
  parent: undefined,
630
703
  key: undefined,
@@ -633,17 +706,15 @@ function observable(obj) {
633
706
  }
634
707
 
635
708
  function observableComputed(compute) {
636
- // Create an observable for this computed variable
637
- // Initialize it to 0 temporarily to make it a primitive, but it will change immediately
638
709
  const update = () => {
639
710
  obs.set(compute());
640
711
  };
641
- tracking.nodes = [];
712
+ tracking.nodes = new Map();
642
713
  const computed = compute();
714
+ // Create an observable for this computed variable set to the initial value
643
715
  const obs = observable(computed);
644
- // Todo shallow
645
- for (let { node } of tracking.nodes) {
646
- onChange(node, update);
716
+ for (let tracked of tracking.nodes) {
717
+ onChange(tracked[1].node, update);
647
718
  }
648
719
  tracking.nodes = undefined;
649
720
  return obs;
@@ -659,6 +730,7 @@ function observableEvent() {
659
730
  obs.set(obs.current + 1);
660
731
  },
661
732
  on: obs.onChange,
733
+ observe: obs.observe,
662
734
  };
663
735
  }
664
736
 
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/is.ts","../../src/state.ts","../../src/globals.ts","../../src/helpers.ts","../../src/observableBatcher.ts","../../src/on.ts","../../src/observable.ts","../../src/observableComputed.ts","../../src/observableEvent.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["observableBatcher"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/is.ts","../../src/tracking.ts","../../src/globals.ts","../../src/helpers.ts","../../src/observableBatcher.ts","../../src/on.ts","../../src/observable.ts","../../src/observableComputed.ts","../../src/observableEvent.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["observableBatcher"],"mappings":";;;;AAAM,SAAU,OAAO,CAAC,GAAY,EAAA;AAChC,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AACK,SAAU,QAAQ,CAAC,GAAY,EAAA;AACjC,IAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,CAAC;AACK,SAAU,QAAQ,CAAC,GAAY,EAAA;AACjC,IAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AACK,SAAU,UAAU,CAAC,GAAY,EAAA;AACnC,IAAA,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACrC,CAAC;AACK,SAAU,WAAW,CAAC,GAAG,EAAA;AAC3B,IAAA,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC;AACtB,IAAA,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,UAAU,CAAC,CAAC;AACnE,CAAC;AACK,SAAU,aAAa,CAAC,GAAW,EAAA;AACrC,IAAA,OAAO,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACjE,CAAC;AACK,SAAU,QAAQ,CAAC,GAAY,EAAA;AACjC,IAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC;;ACnBa,MAAA,QAAQ,GAAG;AACpB,IAAA,KAAK,EAAE,SAAsC;AAC7C,IAAA,SAAS,EAAE,SAAuD;AAClE,IAAA,OAAO,EAAE,SAA2C;EACtD;AAEI,SAAU,cAAc,CAAC,IAAe,EAAE,MAAkB,EAAE,OAAiB,EAAE,MAAgB,EAAA;AACnG,IAAA,IAAI,MAAM,EAAE;QACR,OAAO,CAAC,MAAM,CAAC,CAAC;AACnB,KAAA;AACD,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7C,IAAA,IAAI,QAAQ,EAAE;QACV,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC;QAC/C,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC;AAC/C,KAAA;AAAM,SAAA;AACH,QAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1D,KAAA;AACL,CAAC;AAEK,SAAU,OAAO,CAAC,IAAe,EAAA;AACnC,IAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,IAAA,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QAC5B,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClC,KAAA;AACL;;MCtBa,kBAAkB,GAAG,MAAM,CAAC,cAAc,EAAE;MAC5C,kBAAkB,GAAG,MAAM,CAAC,cAAc,EAAE;AAElD,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAEnC,SAAU,cAAc,CAAC,IAAe,EAAA;AAC1C,IAAA,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAA,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACvB,QAAA,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;AACzB,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAEK,SAAU,GAAG,CAAC,IAAe,EAAA;IAC/B,IAAI,QAAQ,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAClC,IAAA,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAEe,SAAA,OAAO,CAAC,IAAe,EAAE,OAAiB,EAAA;AACtD,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,QAAQ,CAAC,KAAK,EAAE;QAChB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,aAAa,IAAI,CAAC,CAAC;AAC7D,KAAA;AAAM,SAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;AAC/C,QAAA,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;AAC9F,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAEK,SAAU,YAAY,CAAC,IAAe,EAAA;IACxC,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,IAAI,CAAC,GAAG,IAAI,CAAC;IACb,OAAO,CAAA,CAAC,KAAA,IAAA,IAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,GAAG,MAAK,SAAS,EAAE;AACzB,QAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChB,QAAA,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAChB,KAAA;AACD,IAAA,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxB,IAAA,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,EAAE;YAC/B,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAEe,SAAA,YAAY,CAAC,IAAe,EAAE,GAAoB,EAAA;;AAC9D,IAAA,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;AACf,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;;AAEf,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,GAAG,GAAG,CAAC,CAAC;AAC1B,KAAA;;IAGD,IAAI,KAAK,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAC,GAAG,CAAC,CAAC;;IAGpC,IAAI,CAAC,KAAK,EAAE;AACR,QAAA,KAAK,GAAG;AACJ,YAAA,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,IAAI;YACZ,GAAG;;SAEN,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,SAAA;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACjC,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACjB;;ACxEM,SAAU,YAAY,CAAC,GAAQ,EAAA;IACjC,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAyB,CAAC,CAAC;AACnD,CAAC;SAEe,mBAAmB,CAAC,MAA+B,EAAE,GAAG,OAAc,EAAA;;IAClF,IAAI,CAAC,OAAO,CAAC,MAAM;AAAE,QAAA,OAAO,MAAM,CAAC;AAEnC,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;AAE/B,IAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AACtC,QAAA,IAAI,MAAM,CAAC,kBAAyB,CAAC,EAAE;AACnC,YAAA,IAAI,QAAQ,EAAE;gBACV,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,kBAAyB,CAAC,CAAC,CAAC;AACrE,aAAA;AAAM,iBAAA;gBACH,MAAM,CAAC,kBAAyB,CAAC,GAAG,MAAM,CAAC,kBAAyB,CAAC,CAAC;AACzE,aAAA;AACJ,SAAA;QACD,MAAM,KAAK,GAAG,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAI,KAAI,MAAM,CAAC;AACvC,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtB,YAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;oBACtC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACvD,iBAAA;gBACD,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,aAAA;AAAM,iBAAA;AACH,gBAAA,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,aAAA;AACJ,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,mBAAmB,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;AACnD;;ACzBA,IAAI,OAAO,CAAC;AACZ,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAI,MAAM,GAAgB,EAAE,CAAC;AAC7B;AACA,IAAI,SAAS,GAAG,IAAI,OAAO,EAAyB,CAAC;AAErD,SAAS,eAAe,GAAA;AACpB,IAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,QAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;AACxC,YAAA,OAAO,CAAC,KAAK,CACT,uIAAuI,CAC1I,CAAC;AACL,SAAA;AACD,QAAAA,yBAAiB,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC;AACzC,KAAA;AACL,CAAC;AAEK,SAAU,uBAAuB,CAAC,CAAY,EAAA;IAChD,IAAI,UAAU,GAAG,CAAC,EAAE;QAChB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;;AAErC,QAAA,IAAI,QAAQ,EAAE;YACV,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1B,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1B,SAAA;AACJ,KAAA;AAAM,SAAA;QACH,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7E,KAAA;AACL,CAAC;AAEgBA,mCA2BhB;AA3BD,CAAA,UAAiB,iBAAiB,EAAA;IAC9B,SAAgB,KAAK,CAAC,EAAc,EAAA;AAChC,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,GAAG,EAAE,CAAC;KACT;AAJe,IAAA,iBAAA,CAAA,KAAK,QAIpB,CAAA;AACD,IAAA,SAAgB,KAAK,GAAA;AACjB,QAAA,UAAU,EAAE,CAAC;;AAEb,QAAA,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;KAC5C;AAJe,IAAA,iBAAA,CAAA,KAAK,QAIpB,CAAA;IACD,SAAgB,GAAG,CAAC,KAAe,EAAA;AAC/B,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,IAAI,UAAU,IAAI,CAAC,IAAI,KAAK,EAAE;YAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,UAAU,GAAG,CAAC,CAAC;;;YAGf,MAAM,KAAK,GAAG,MAAM,CAAC;YACrB,MAAM,GAAG,EAAE,CAAC;AACZ,YAAA,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;AAC1B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACvF,gBAAA,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACxD,aAAA;AACJ,SAAA;KACJ;AAfe,IAAA,iBAAA,CAAA,GAAG,MAelB,CAAA;AACL,CAAC,EA3BgBA,yBAAiB,KAAjBA,yBAAiB,GA2BjC,EAAA,CAAA,CAAA;;AC5DD,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;SAE5B,QAAQ,CAAI,IAAe,EAAE,KAAQ,EAAE,QAA4B,EAAA;AAC/E,IAAA,IAAI,OAAkC,CAAC;IAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAM,CAAC,OAAO,KAAI;QACzC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,SAAS,KAAK,CAAC,QAAQ,EAAA;AACnB,YAAA,IACI,CAAC,MAAM;iBACN,KAAK,KAAM,cAAsB;AAC9B;wBACE,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;AACzE,sBAAE,QAAQ,KAAK,KAAK,CAAC,EAC3B;gBACE,MAAM,GAAG,IAAI,CAAC;AACb,gBAAA,QAA+B,aAA/B,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAA0B,QAAQ,CAAC,CAAC;gBAC7C,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElB,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA;AACD,YAAA,OAAO,MAAM,CAAC;SACjB;QACD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE;YAC5B,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,cAAc,IAAI,CAAC,CAAC;AACrD,SAAA;AACL,KAAC,CAAC,CAAC;IAEH,OAAO;QACH,OAAO;QACP,OAAO;KACV,CAAC;AACN,CAAC;AAEe,SAAA,UAAU,CAAI,IAAe,EAAE,QAA4B,EAAA;IACvE,OAAO,QAAQ,CAAC,IAAI,EAAE,cAAqB,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAEe,SAAA,MAAM,CAAoB,IAAe,EAAE,QAAqB,EAAA;IAC5E,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAS,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;SAEe,QAAQ,CAAC,IAAe,EAAE,QAAyB,EAAE,OAAiB,EAAA;IAClF,MAAM,CAAC,GAAG,QAA2B,CAAC;AACtC,IAAA,IAAI,OAAO,EAAE;AACT,QAAA,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,KAAA;AACD,IAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC/B,IAAI,CAAC,SAAS,EAAE;AACZ,QAAA,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC9B,KAAA;AACD,IAAA,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEjB,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAEe,SAAA,eAAe,CAAC,IAAe,EAAE,QAAyB,EAAA;IACtE,OAAO,QAAQ,CAAC,IAAI,EAAE,QAAQ,cAAc,IAAI,CAAC,CAAC;AACtD;;ACxDA,IAAI,gBAA2B,CAAC;AAChC,IAAI,qBAA6B,CAAC;AAClC,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAE9B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC3B,YAAY;IACZ,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,QAAQ;IACR,SAAS;AACZ,CAAA,CAAC,CAAC;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAE9F,MAAM,SAAS,GAAG,IAAI,GAAG,CAAmB;IACxC,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,CAAC,iBAAiB,EAAE,eAAe,CAAC;IACpC,CAAC,UAAU,EAAE,QAAQ,CAAC;IACtB,CAAC,YAAY,EAAE,UAAU,CAAC;IAC1B,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClB,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,MAAM,EAAE,IAAI,CAAC;IACd,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACvB,CAAA,CAAC,CAAC;AAEH;AACA,MAAM,MAAM,GAAG,CAAC,EAAY,KACxB,UAAU,GAAG,IAAS,EAAA;IAClB,IAAI,gBAAgB,IAAI,qBAAqB,EAAE;QAC3C,MAAM,IAAI,GAAc,YAAY,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;AAC9E,QAAA,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;AAC7B,YAAA,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AAC5B,SAAA;AACJ,KAAA;AACL,CAAC,CAAC;AAEN,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7C,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,KAAI;AAC1B,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAA,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7C,KAAA;AACL,CAAC,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,IAAe,EAAE,MAAW,EAAE,IAAY,EAAE,GAAG,IAAW,EAAA;AAChF,IAAA,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,MAAM,CAAC;AAEhE,IAAA,MAAM,GAAG,GAAI,MAAM,CAAC,IAAI,CAAc,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAE3D,IAAA,IAAI,IAAI,EAAE;AACN,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;;AAGzC,YAAA,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;;YAGlC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACrC,SAAA;AACJ,KAAA;;AAGD,IAAA,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,MAAiB,EAAE,GAAkC,EAAE,SAAe,EAAA;AACvF,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;;AAE3B,IAAA,MAAM,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAE3B,IAAI,QAAQ,GAAG,CAAC,KAAK,IAAI,CAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,MAAM,OAAK,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAA,CAAC;IAC3D,MAAM,SAAS,GAAG,QAAQ,CAAC;AAE3B,IAAA,IAAI,MAAoC,CAAC;AACzC,IAAA,IAAI,KAA4B,CAAC;IAEjC,IAAI,KAAK,KAAI,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,EAAE;AACnF,QAAA,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACnB,KAAK,GAAG,EAAE,CAAC;AACX,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,YAAA,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAClC,SAAA;AACJ,KAAA;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7B,QAAA,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAG,GAAG,CAAC,CAAC;AAE9B,QAAA,IAAI,MAAM,GAAG,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACzC,QAAA,IAAI,MAAM,EAAE;YACR,MAAM,EAAE,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,EAAE,CAAC;YAErB,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;;;AAItC,YAAA,IAAI,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE;;gBAE3B,MAAM,QAAQ,GAAG,EAAE,KAAK,SAAS,GAAG,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;gBAChE,IAAI,QAAQ,KAAK,SAAS,EAAE;oBACxB,IAAI,QAAQ,KAAK,GAAG,EAAE;;AAElB,wBAAA,IAAI,SAAS,EAAE;AACX,4BAAA,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,4BAAA,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;4BAChB,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5B,yBAAA;;AAGD,wBAAA,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AACvC,wBAAA,MAAM,GAAG,UAAU,KAAK,KAAK,CAAC;AACjC,qBAAA;AACJ,iBAAA;AACJ,aAAA;AAED,YAAA,IAAI,MAAM,EAAE;;gBAER,QAAQ,GAAG,IAAI,CAAC;;AAEhB,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AACrB,oBAAA,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACnC,iBAAA;AACJ,aAAA;AACD,YAAA,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE;;;;;AAKtB,gBAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;AACnC,gBAAA,IAAI,QAAQ,EAAE;AACV,oBAAA,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7C,iBAAA;AACJ,aAAA;AACJ,SAAA;AACJ,KAAA;AAED,IAAA,IAAI,KAAK,EAAE;AACP,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACnC,SAAA;AACJ,KAAA;AAED,IAAA,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAe,EAAE,CAAmB,EAAA;;IAElD,IAAI,CAAC,KAAK,SAAS;AAAE,QAAA,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;;AAGlD,IAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAe,EAAE,CAAmB,EAAA;;IAElD,IAAI,CAAC,KAAK,SAAS;AAAE,QAAA,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;;AAGlD,IAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACvB,IAAI,CAAC,KAAK,EAAE;AACR,QAAA,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAY,IAAI,EAAE,YAAY,CAAC,CAAC;AACjE,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,SAAS,GAAG,CAAC,IAAe,EAAA;IACxB,IAAI,QAAQ,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAClC,IAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AACD,SAAS,IAAI,CAAC,IAAe,EAAE,CAAkB,EAAA;;IAE7C,IAAI,QAAQ,CAAC,KAAK,EAAE;QAChB,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC/C,KAAA;AACD,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,YAAY,GAAsB;IACpC,GAAG,CAAC,MAAiB,EAAE,CAAM,EAAA;;;QAEzB,IAAI,CAAC,KAAK,kBAAkB,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,MAAM,IAAI,GAAG,MAAM,CAAC;QACpB,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;AAE5B,QAAA,IAAI,EAAE,EAAE;AACJ,YAAA,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,QAAQ,EAAE;;gBAE/B,IAAI,QAAQ,CAAC,KAAK;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACrC,aAAA;AACD,YAAA,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAA;AACpB,gBAAA,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;AAC3B,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5E,aAAC,CAAC;AACL,SAAA;AAED,QAAA,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC,CAAC;;;QAIzB,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,KAAI,CAAA,EAAA,GAAA,KAAK,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,EAAG,CAAC,CAAC,CAAA,CAAC,EAAE;AAC9F,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;;AAED,QAAA,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;AACnB,YAAA,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;AAChB,gBAAA,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;AAEvB,oBAAA,OAAO,CAAC,GAAG,IAAI,KAAK,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AACjE,iBAAA;AAAM,qBAAA,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;;oBAG5B,IAAI,QAAQ,CAAC,KAAK,EAAE;AAChB,wBAAA,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACzC,qBAAA;oBACD,OAAO,UAAU,MAAM,EAAE,OAAO,EAAA;AAC5B,wBAAA,SAAS,EAAE,CAAC,CAAC,EAAE,KAAa,EAAE,KAAY,EAAA;AACtC,4BAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;yBACtD;wBACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACjC,qBAAC,CAAC;AACL,iBAAA;AACJ,aAAA;;AAED,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAA;;QAGD,IAAI,QAAQ,CAAC,KAAK,EAAE;YAChB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;gBAClC,cAAc,CAAC,IAAI,EAAE,SAAS,cAAc,IAAI,CAAC,CAAC;AACrD,aAAA;AAAM,iBAAA;gBACH,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC/C,aAAA;AACJ,SAAA;;QAGD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE;;;YAGnF,gBAAgB,GAAG,IAAI,CAAC;YACxB,qBAAqB,GAAG,CAAC,CAAC;AAE1B,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KAC9B;;AAED,IAAA,cAAc,CAAC,MAAM,EAAA;AACjB,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,OAAO,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KACxC;AACD,IAAA,OAAO,CAAC,MAAiB,EAAA;AACrB,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,MAAM,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;;QAGjD,IAAI,QAAQ,CAAC,KAAK,EAAE;AAChB,YAAA,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC3C,SAAA;;;;AAKD,QAAA,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;YAChB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;IACD,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAA;AAC9B,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACrD;AACD,IAAA,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAA;;AAEnB,QAAA,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACjC,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;KACJ;IACD,cAAc,CAAC,MAAM,EAAE,IAAI,EAAA;;AAEvB,QAAA,IAAI,OAAO,EAAE;AACT,YAAA,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrC,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;KACJ;IACD,GAAG,CAAC,MAAM,EAAE,IAAI,EAAA;AACZ,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACnC;CACJ,CAAC;AAEF,SAAS,GAAG,CAAC,IAAe,EAAE,aAAkB,EAAE,QAAc,EAAA;AAC5D,IAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,OAAO,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;AACjD,KAAA;AAAM,SAAA,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QAC9B,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAClD,KAAA;AAAM,SAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QACrB,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1C,KAAA;AAAM,SAAA;AACH,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AACxD,KAAA;AACL,CAAC;AAED,SAAS,OAAO,CAAC,IAAe,EAAE,GAAoB,EAAE,QAAc,EAAE,KAAc,EAAA;IAClF,OAAO,GAAG,IAAI,CAAC;AACf,IAAA,MAAM,MAAM,GAAI,GAAW,KAAK,KAAK,CAAC;;AAGtC,IAAA,IAAI,SAAS,GAAc,MAAM,GAAG,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;;IAGnE,IAAI,QAAQ,CAAC,KAAK;QAAE,OAAO,CAAC,SAAS,CAAC,CAAC;;AAGvC,IAAA,IAAI,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAE1D,IAAA,IAAI,MAAM,EAAE;QACR,GAAG,GAAG,GAAG,CAAC;AACb,KAAA;;AAGD,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;;AAGnC,IAAA,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;AAC3B,UAAE,QAAQ,CAAC,SAAS,CAAC;AACrB,UAAE,QAAQ,CAAC,QAAQ,CAAC,KAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAG,kBAAyB,CAAC,CAAA;AAC7D,cAAE,QAAQ,CAAC,GAAG,EAAE;cACd,QAAQ,CAAC;AAEf,IAAA,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;;AAGrC,IAAA,WAAW,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;;IAG5BA,yBAAiB,CAAC,KAAK,EAAE,CAAC;IAE1B,IAAI,QAAQ,GAAG,MAAM,CAAC;;IAEtB,IAAI,CAAC,MAAM,EAAE;QACT,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC1D,KAAA;;AAGD,IAAA,IAAI,CAAC,MAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;QACnC,MAAM,CACF,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,EACxC,QAAQ,EACR,SAAS,EACT,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,cAAL,KAAK,GAAI,SAAS,KAAK,SAAS,IAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,CAC3D,CAAC;AACL,KAAA;IAEDA,yBAAiB,CAAC,GAAG,EAAE,CAAC;IAExB,OAAO,GAAG,KAAK,CAAC;AAEhB,IAAA,OAAO,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAU,EAAE,IAAyB,EAAE,UAAe,EAAA;;IAEjF,OAAO,YAAA;AACH,QAAA,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACrF,IAAI,CAAC,GAAG,KAAK,CAAC;AACd,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACjB,YAAA,IAAI,CAAS,CAAC;AACd,YAAA,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,aAAA;YACD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AAC3B,SAAA;AAAM,aAAA;YACH,KAAK,GAAG,UAAU,CAAC;AACtB,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;AACjB,KAAC,CAAC;AACN,CAAC;AAED,SAAS,OAAO,CACZ,IAAe,EACf,KAAU,EACV,IAAyB,EACzB,WAAgB,EAChB,UAAe,EACf,KAAa,EAAA;AAEb,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACjC,IAAA,IAAI,SAAS,EAAE;AACX,QAAA,IAAI,WAAW,CAAC;AAChB,QAAA,KAAK,IAAI,QAAQ,IAAI,SAAS,EAAE;;YAE5B,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,KAAK,IAAI,CAAC,EAAE;;;gBAGjC,IAAI,CAAC,WAAW,EAAE;oBACd,WAAW,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAChE,iBAAA;AACD,gBAAA,uBAAuB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AACtG,aAAA;AACJ,SAAA;AACJ,KAAA;AACL,CAAC;AAED,SAAS,cAAc,CACnB,IAAe,EACf,KAAU,EACV,IAAyB,EACzB,WAAgB,EAChB,UAAe,EACf,KAAa,EAAA;;AAGb,IAAA,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;;IAE3D,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACzC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AACpG,SAAA;AACJ,KAAA;AACL,CAAC;AACD,SAAS,MAAM,CAAC,IAAe,EAAE,KAAU,EAAE,IAAS,EAAE,KAAa,EAAA;;AAEjE,IAAA,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,MAAM,CAAC,IAAe,EAAE,KAAU,EAAA;;IAEvC,IAAI,QAAQ,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAElCA,yBAAiB,CAAC,KAAK,EAAE,CAAC;;IAG1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7B,QAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,KAAA;IAEDA,yBAAiB,CAAC,GAAG,EAAE,CAAC;AAExB,IAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAe,EAAE,GAAqB,EAAA;;IAEpD,IAAI,GAAG,KAAK,SAAS,EAAE;AACnB,QAAA,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,KAAA;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE;QACpB,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,KAAA;AACL,CAAC;AACD,SAAS,aAAa,CAAC,IAAe,EAAE,GAAoB,EAAA;AACxD,IAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;;AAExB,QAAA,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC;AAC/C,KAAA;IAED,OAAO,GAAG,IAAI,CAAC;;AAEf,IAAA,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/B,IAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAElB,OAAO,GAAG,KAAK,CAAC;AACpB,CAAC;AAOK,SAAU,UAAU,CAAI,GAAM,EAAA;AAChC,IAAA,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;;AAEhC,IAAA,IAAI,MAAM,EAAE;AACR,QAAA,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAS,CAAC;AACjC,KAAA;AAED,IAAA,MAAM,GAAG,GAAG;AACR,QAAA,CAAC,EAAE,GAAoB;AACvB,QAAA,WAAW,EAAE,MAAM;KACD,CAAC;AAEvB,IAAA,MAAM,IAAI,GAAc;AACpB,QAAA,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE;AACxB,QAAA,IAAI,EAAE,GAAG;AACT,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,GAAG,EAAE,SAAS;KACjB,CAAC;AAEF,IAAA,OAAO,QAAQ,CAAC,IAAI,CAAmC,CAAC;AAC5D;;AC5gBM,SAAU,kBAAkB,CAAI,OAAgB,EAAA;IAClD,MAAM,MAAM,GAAG,MAAK;AAChB,QAAA,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AACvB,KAAC,CAAC;AAEF,IAAA,QAAQ,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;AAE3B,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;;AAG3B,IAAA,MAAM,GAAG,GAAG,UAAU,CAAC,QAAe,CAAC,CAAC;AAExC,IAAA,KAAK,IAAI,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE;QAChC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrC,KAAA;AAED,IAAA,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;AAE3B,IAAA,OAAO,GAAuC,CAAC;AACnD;;SCrBgB,eAAe,GAAA;;;AAG3B,IAAA,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO;QACH,QAAQ,EAAE,MAAK;;YAEX,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;SAC5B;QACD,EAAE,EAAE,GAAG,CAAC,QAAe;QACvB,OAAO,EAAE,GAAG,CAAC,OAAO;KACvB,CAAC;AACN;;;;;;;;;;;;;;;;;"}