@enbox/agent 0.5.1 → 0.5.2

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.
@@ -23,11 +23,18 @@ import { isRecordsWrite } from './utils.js';
23
23
  import { topologicalSort } from './sync-topological-sort.js';
24
24
  import { pullMessages, pushMessages } from './sync-messages.js';
25
25
  /**
26
- * Maximum bit prefix depth before falling back to leaf enumeration.
27
- * At depth 16, each subtree covers ~1/65536 of the key space, which is a good
28
- * balance between round-trip count and leaf-set size.
26
+ * Maximum bit prefix depth for the per-node tree walk (legacy fallback).
27
+ * At depth 16, each subtree covers ~1/65536 of the key space.
29
28
  */
30
29
  const MAX_DIFF_DEPTH = 16;
30
+ /**
31
+ * Bit depth for the batched diff protocol.
32
+ * Lower than MAX_DIFF_DEPTH because the batched diff sends all subtree hashes
33
+ * in a single request — fine granularity comes from the server-side leaf
34
+ * enumeration, not from deeper prefixes. Depth 8 = 256 buckets, which is
35
+ * a good balance between hash map size and leaf-set resolution.
36
+ */
37
+ const BATCHED_DIFF_DEPTH = 8;
31
38
  /**
32
39
  * Maximum number of concurrent remote HTTP requests during a tree diff.
33
40
  * The binary tree walk fans out in parallel — without a limit, depth N
@@ -220,14 +227,46 @@ export class SyncEngineLevel {
220
227
  // Trees are identical — nothing to sync for this target.
221
228
  continue;
222
229
  }
223
- // Phase 2: Walk the tree to find differing subtrees.
224
- const diff = yield this.walkTreeDiff({
230
+ // Phase 2: Compute the diff in a single round-trip using the
231
+ // batched 'diff' action. This replaces the per-node tree walk
232
+ // that previously required dozens of HTTP requests.
233
+ const diff = yield this.diffWithRemote({
225
234
  did, dwnUrl, delegateDid, protocol,
226
235
  });
227
236
  // Phase 3: Pull missing messages (remote has, local doesn't).
237
+ // The diff response may include inline message data — use it
238
+ // directly instead of re-fetching via individual MessagesRead calls.
228
239
  if (!direction || direction === 'pull') {
229
240
  if (diff.onlyRemote.length > 0) {
230
- yield this.pullMessages({ did, dwnUrl, delegateDid, protocol, messageCids: diff.onlyRemote });
241
+ // Separate entries into three categories:
242
+ // 1. Fully prefetched: have message + inline data (or no data needed)
243
+ // 2. Need data fetch: have message but missing data for RecordsWrite
244
+ // 3. Need full fetch: no message at all
245
+ const prefetched = [];
246
+ const needsFetchCids = [];
247
+ for (const entry of diff.onlyRemote) {
248
+ if (!entry.message) {
249
+ // No message at all — need full fetch.
250
+ needsFetchCids.push(entry.messageCid);
251
+ }
252
+ else if (entry.message.descriptor.interface === 'Records' &&
253
+ entry.message.descriptor.method === 'Write' &&
254
+ entry.message.descriptor.dataCid &&
255
+ !entry.encodedData) {
256
+ // RecordsWrite with data but data wasn't inlined (too large).
257
+ // Need to fetch individually to get the data stream.
258
+ needsFetchCids.push(entry.messageCid);
259
+ }
260
+ else {
261
+ // Fully prefetched (message + data or no data needed).
262
+ prefetched.push(entry);
263
+ }
264
+ }
265
+ yield this.pullMessages({
266
+ did, dwnUrl, delegateDid, protocol,
267
+ messageCids: needsFetchCids,
268
+ prefetched,
269
+ });
231
270
  }
232
271
  }
233
272
  // Phase 4: Push missing messages (local has, remote doesn't).
@@ -704,16 +743,52 @@ export class SyncEngineLevel {
704
743
  return (_a = this._defaultHashHex.get(depth)) !== null && _a !== void 0 ? _a : '';
705
744
  });
706
745
  }
746
+ /**
747
+ * Parse a bit prefix string (e.g. "0110101") into a boolean array
748
+ * for the StateIndex API. Each '1' maps to `true` (right child),
749
+ * each '0' maps to `false` (left child).
750
+ */
751
+ static parseBitPrefix(prefix) {
752
+ return Array.from(prefix, (ch) => ch === '1');
753
+ }
707
754
  // ---------------------------------------------------------------------------
708
755
  // SMT Root Comparison
709
756
  // ---------------------------------------------------------------------------
710
757
  /**
711
- * Get the SMT root hash from the local DWN via a MessagesSync 'root' action.
758
+ * Access the local DWN's StateIndex directly, bypassing the `processMessage`
759
+ * pipeline. The sync engine runs in the same process as the local DWN, so
760
+ * there is no need for message signing, schema validation, or authentication
761
+ * when querying our own state.
762
+ *
763
+ * Returns `undefined` in remote mode (no in-process DWN). The local methods
764
+ * fall back to `processRequest` in that case, routing through RPC to the
765
+ * local DWN server.
766
+ */
767
+ get stateIndex() {
768
+ if (this.agent.dwn.isRemoteMode) {
769
+ return undefined;
770
+ }
771
+ return this.agent.dwn.node.storage.stateIndex;
772
+ }
773
+ /**
774
+ * Get the SMT root hash from the local DWN.
775
+ *
776
+ * In local mode: queries the StateIndex directly (fast, no processMessage overhead).
777
+ * In remote mode: constructs a signed MessagesSync message and routes through RPC.
778
+ *
712
779
  * Returns a hex-encoded root hash string.
713
780
  */
714
781
  getLocalRoot(did, delegateDid, protocol) {
715
782
  return __awaiter(this, void 0, void 0, function* () {
716
783
  var _a;
784
+ const si = this.stateIndex;
785
+ if (si) {
786
+ const rootHash = protocol !== undefined
787
+ ? yield si.getProtocolRoot(did, protocol)
788
+ : yield si.getRoot(did);
789
+ return hashToHex(rootHash);
790
+ }
791
+ // Remote mode fallback: go through processRequest → RPC.
717
792
  const permissionGrantId = yield this.getSyncPermissionGrantId(did, delegateDid, protocol);
718
793
  const response = yield this.agent.dwn.processRequest({
719
794
  author: did,
@@ -833,9 +908,127 @@ export class SyncEngineLevel {
833
908
  return { onlyLocal, onlyRemote };
834
909
  });
835
910
  }
911
+ // ---------------------------------------------------------------------------
912
+ // Batched Diff — single round-trip set reconciliation
913
+ // ---------------------------------------------------------------------------
914
+ /**
915
+ * Compute the diff between local and remote in a single HTTP round-trip.
916
+ *
917
+ * 1. Walk the local SMT directly (no processMessage) to collect subtree
918
+ * hashes at `MAX_DIFF_DEPTH`.
919
+ * 2. Send a single `MessagesSync action:'diff'` to the remote with all
920
+ * non-empty subtree hashes.
921
+ * 3. The remote compares and returns `onlyRemote` (with inline messages)
922
+ * and `onlyLocal` prefixes.
923
+ * 4. Enumerate local leaves for the `onlyLocal` prefixes directly.
924
+ *
925
+ * This replaces `walkTreeDiff()` which required one HTTP call per tree node.
926
+ */
927
+ diffWithRemote(_a) {
928
+ return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol }) {
929
+ var _b, _c;
930
+ // Step 1: Collect local subtree hashes at BATCHED_DIFF_DEPTH directly from StateIndex.
931
+ const localHashes = yield this.collectLocalSubtreeHashes(did, protocol, BATCHED_DIFF_DEPTH);
932
+ // Step 2: Send a single 'diff' request to the remote with our hashes.
933
+ const permissionGrantId = yield this.getSyncPermissionGrantId(did, delegateDid, protocol);
934
+ const syncMessage = yield this.agent.dwn.processRequest({
935
+ store: false,
936
+ author: did,
937
+ target: did,
938
+ messageType: DwnInterface.MessagesSync,
939
+ granteeDid: delegateDid,
940
+ messageParams: {
941
+ action: 'diff',
942
+ protocol,
943
+ hashes: localHashes,
944
+ depth: BATCHED_DIFF_DEPTH,
945
+ permissionGrantId,
946
+ }
947
+ });
948
+ const reply = yield this.agent.rpc.sendDwnRequest({
949
+ dwnUrl,
950
+ targetDid: did,
951
+ message: syncMessage.message,
952
+ });
953
+ if (reply.status.code !== 200) {
954
+ throw new Error(`SyncEngineLevel: diff failed with ${reply.status.code}: ${reply.status.detail}`);
955
+ }
956
+ // Step 3: Enumerate local leaves for prefixes the remote reported as onlyLocal.
957
+ const permissionGrantIdForLeaves = yield this.getSyncPermissionGrantId(did, delegateDid, protocol);
958
+ const onlyLocalCids = [];
959
+ for (const prefix of (_b = reply.onlyLocal) !== null && _b !== void 0 ? _b : []) {
960
+ const leaves = yield this.getLocalLeaves(did, prefix, delegateDid, protocol, permissionGrantIdForLeaves);
961
+ onlyLocalCids.push(...leaves);
962
+ }
963
+ return {
964
+ onlyRemote: (_c = reply.onlyRemote) !== null && _c !== void 0 ? _c : [],
965
+ onlyLocal: onlyLocalCids,
966
+ };
967
+ });
968
+ }
969
+ /**
970
+ * Walk the local SMT to a given depth and collect non-empty subtree hashes.
971
+ * Returns a `{ prefix: hexHash }` map. Empty subtrees (matching the default
972
+ * hash) are omitted.
973
+ *
974
+ * Uses direct StateIndex access in local mode. In remote mode, falls back
975
+ * to `getLocalSubtreeHash` which routes through RPC.
976
+ */
977
+ collectLocalSubtreeHashes(did, protocol, depth) {
978
+ return __awaiter(this, void 0, void 0, function* () {
979
+ const result = {};
980
+ const defaultHash = yield this.getDefaultHashHex(depth);
981
+ const si = this.stateIndex;
982
+ const walk = (prefix, currentDepth) => __awaiter(this, void 0, void 0, function* () {
983
+ let hexHash;
984
+ if (si) {
985
+ // Fast path: direct StateIndex access (local mode).
986
+ const bitPath = SyncEngineLevel.parseBitPrefix(prefix);
987
+ const hash = protocol !== undefined
988
+ ? yield si.getProtocolSubtreeHash(did, protocol, bitPath)
989
+ : yield si.getSubtreeHash(did, bitPath);
990
+ hexHash = hashToHex(hash);
991
+ }
992
+ else {
993
+ // Remote mode fallback.
994
+ hexHash = yield this.getLocalSubtreeHash(did, prefix, undefined, protocol);
995
+ }
996
+ if (hexHash === defaultHash) {
997
+ // Empty subtree — omit from the map.
998
+ return;
999
+ }
1000
+ if (currentDepth >= depth) {
1001
+ result[prefix] = hexHash;
1002
+ return;
1003
+ }
1004
+ // Recurse into children.
1005
+ yield Promise.all([
1006
+ walk(prefix + '0', currentDepth + 1),
1007
+ walk(prefix + '1', currentDepth + 1),
1008
+ ]);
1009
+ });
1010
+ yield walk('', 0);
1011
+ return result;
1012
+ });
1013
+ }
1014
+ /**
1015
+ * Get the subtree hash at a given bit prefix from the local DWN.
1016
+ *
1017
+ * In local mode: queries the StateIndex directly.
1018
+ * In remote mode: constructs a signed MessagesSync message and routes through RPC.
1019
+ */
836
1020
  getLocalSubtreeHash(did, prefix, delegateDid, protocol, permissionGrantId) {
837
1021
  return __awaiter(this, void 0, void 0, function* () {
838
1022
  var _a;
1023
+ const si = this.stateIndex;
1024
+ if (si) {
1025
+ const bitPath = SyncEngineLevel.parseBitPrefix(prefix);
1026
+ const hash = protocol !== undefined
1027
+ ? yield si.getProtocolSubtreeHash(did, protocol, bitPath)
1028
+ : yield si.getSubtreeHash(did, bitPath);
1029
+ return hashToHex(hash);
1030
+ }
1031
+ // Remote mode fallback.
839
1032
  const response = yield this.agent.dwn.processRequest({
840
1033
  author: did,
841
1034
  target: did,
@@ -876,9 +1069,23 @@ export class SyncEngineLevel {
876
1069
  return (_a = reply.hash) !== null && _a !== void 0 ? _a : '';
877
1070
  });
878
1071
  }
1072
+ /**
1073
+ * Get all leaf messageCids under a given prefix from the local DWN.
1074
+ *
1075
+ * In local mode: queries the StateIndex directly.
1076
+ * In remote mode: constructs a signed MessagesSync message and routes through RPC.
1077
+ */
879
1078
  getLocalLeaves(did, prefix, delegateDid, protocol, permissionGrantId) {
880
1079
  return __awaiter(this, void 0, void 0, function* () {
881
1080
  var _a;
1081
+ const si = this.stateIndex;
1082
+ if (si) {
1083
+ const bitPath = SyncEngineLevel.parseBitPrefix(prefix);
1084
+ return protocol !== undefined
1085
+ ? yield si.getProtocolLeaves(did, protocol, bitPath)
1086
+ : yield si.getLeaves(did, bitPath);
1087
+ }
1088
+ // Remote mode fallback.
882
1089
  const response = yield this.agent.dwn.processRequest({
883
1090
  author: did,
884
1091
  target: did,
@@ -925,11 +1132,15 @@ export class SyncEngineLevel {
925
1132
  /**
926
1133
  * Fetches missing messages from the remote DWN and processes them locally
927
1134
  * in dependency order (topological sort).
1135
+ *
1136
+ * When prefetched entries are provided (from the batched diff response),
1137
+ * they are processed directly without additional HTTP round-trips.
1138
+ * Only `messageCids` that were NOT prefetched are fetched individually.
928
1139
  */
929
1140
  pullMessages(_a) {
930
- return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol, messageCids }) {
1141
+ return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol, messageCids, prefetched }) {
931
1142
  return pullMessages({
932
- did, dwnUrl, delegateDid, protocol, messageCids,
1143
+ did, dwnUrl, delegateDid, protocol, messageCids, prefetched,
933
1144
  agent: this.agent,
934
1145
  permissionsApi: this._permissionsApi,
935
1146
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine-level.js","sourceRoot":"","sources":["../../src/sync-engine-level.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-engine-level.js","sourceRoot":"","sources":["../../src/sync-engine-level.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAM1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQhE;;;GAGG;AACH,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B;;;GAGG;AACH,MAAM,SAAS;IAIb,YAAY,OAAe;QAFV,aAAQ,GAAmB,EAAE,CAAC;QAG7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,0DAA0D;IACpD,OAAO;;YACX,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED,uDAAuD;IACvD,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;QACT,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,0EAA0E;IACpE,GAAG,CAAI,EAAoB;;YAC/B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAC;YACpB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;KAAA;CACF;AAED;;;GAGG;AACH,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;;GAGG;AACH,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAoB7B,MAAM,OAAO,eAAe;IAwD1B,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAyB;QAxClD,cAAS,GAAG,KAAK,CAAC;QAS1B,8EAA8E;QAC9E,kBAAkB;QAClB,8EAA8E;QAE9E,6CAA6C;QACrC,cAAS,GAAa,MAAM,CAAC;QAErC,8EAA8E;QACtE,uBAAkB,GAAuB,EAAE,CAAC;QAEpD,+EAA+E;QACvE,wBAAmB,GAAwB,EAAE,CAAC;QAEtD,2DAA2D;QACnD,uBAAkB,GAA0B,SAAS,CAAC;QAK9D,4EAA4E;QACpE,qBAAgB,GAA0G,IAAI,GAAG,EAAE,CAAC;QAE5I,yEAAyE;QACjE,yBAAoB,GAAG,CAAC,CAAC;QAS/B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAmB,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAiB,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,uBAAuB,CAAC,CAAC;IACxF,CAAC;IAED;;;;;OAKG;IACH,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,KAAyB;QACjC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAmB,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAEY,KAAK;;YAChB,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;KAAA;IAEY,KAAK;;YAChB,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;KAAA;IAEY,gBAAgB;6DAAC,EAAE,GAAG,EAAE,OAAO,EAAkD;YAC5F,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YAEvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,yBAAyB,CAAC,CAAC;YACtF,CAAC;YAED,2FAA2F;YAC3F,OAAO,aAAP,OAAO,cAAP,OAAO,IAAP,OAAO,GAAK,EAAE,SAAS,EAAE,EAAE,EAAE,EAAC;YAE9B,MAAM,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/D,CAAC;KAAA;IAEY,kBAAkB,CAAC,GAAW;;YACzC,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,qBAAqB,CAAC,CAAC;YAClF,CAAC;YAED,MAAM,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;KAAA;IAEY,kBAAkB,CAAC,GAAW;;YACzC,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YACvE,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpD,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAwB,CAAC;gBACpD,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,KAAyB,CAAC;gBACpC,sFAAsF;gBACtF,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACjC,OAAO;gBACT,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEY,qBAAqB;6DAAC,EAAE,GAAG,EAAE,OAAO,EAAiD;YAChG,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YACvE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC3D,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,qBAAqB,CAAC,CAAC;YAClF,CAAC;YAED,MAAM,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/D,CAAC;KAAA;IAED,8EAA8E;IAC9E,yCAAyC;IACzC,8EAA8E;IAEjE,IAAI,CAAC,SAA2B;;YAC3C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC7E,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC;gBACH,kEAAkE;gBAClE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;gBAClC,IAAI,UAAU,GAAG,KAAK,CAAC;gBAEvB,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;oBACjC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;oBAEtD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBACxB,SAAS;oBACX,CAAC;oBAED,IAAI,CAAC;wBACH,uDAAuD;wBACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;wBACtE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;wBAEhF,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;4BAC7B,yDAAyD;4BACzD,SAAS;wBACX,CAAC;wBAED,6DAA6D;wBAC7D,+DAA+D;wBAC/D,oDAAoD;wBACpD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;4BACrC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ;yBACnC,CAAC,CAAC;wBAEH,8DAA8D;wBAC9D,6DAA6D;wBAC7D,qEAAqE;wBACrE,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;4BACvC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC/B,0CAA0C;gCAC1C,sEAAsE;gCACtE,qEAAqE;gCACrE,wCAAwC;gCACxC,MAAM,UAAU,GAA4D,EAAE,CAAC;gCAC/E,MAAM,cAAc,GAAa,EAAE,CAAC;gCAEpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oCACpC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;wCACnB,uCAAuC;wCACvC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oCACxC,CAAC;yCAAM,IACL,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS;wCAChD,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO;wCAC1C,KAAK,CAAC,OAAO,CAAC,UAAkB,CAAC,OAAO;wCACzC,CAAC,KAAK,CAAC,WAAW,EAClB,CAAC;wCACD,8DAA8D;wCAC9D,qDAAqD;wCACrD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oCACxC,CAAC;yCAAM,CAAC;wCACN,uDAAuD;wCACvD,UAAU,CAAC,IAAI,CAAC,KAA4D,CAAC,CAAC;oCAChF,CAAC;gCACH,CAAC;gCACD,MAAM,IAAI,CAAC,YAAY,CAAC;oCACtB,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ;oCAClC,WAAW,EAAE,cAAc;oCAC3B,UAAU;iCACX,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;wBAED,8DAA8D;wBAC9D,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;4BACvC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC9B,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;4BAC/F,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBACpB,uEAAuE;wBACvE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBACpB,UAAU,GAAG,IAAI,CAAC;wBAClB,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,SAAS,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC/E,CAAC;gBACH,CAAC;gBAED,uDAAuD;gBACvD,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC5B,IAAI,IAAI,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;wBACzC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;oBACtC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;oBAC9B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3B,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;oBACrC,CAAC;gBACH,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;KAAA;IAED,8EAA8E;IAC9E,uBAAuB;IACvB,8EAA8E;IAEjE,SAAS,CAAC,MAAuB;;;YAC5C,MAAM,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,MAAM,CAAC;YACnC,MAAM,WAAW,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,oBAAoB,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;YAE7C,8DAA8D;YAC9D,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9E,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChC,CAAC;YACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACpC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACnC,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;KAAA;IAED;;;OAGG;IACU,QAAQ;6DAAC,UAAkB,IAAI;YAC1C,IAAI,cAAc,GAAG,CAAC,CAAC;YAEvB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtB,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,oEAAoE,OAAO,gBAAgB,CAAC,CAAC;gBAC/G,CAAC;gBAED,cAAc,IAAI,GAAG,CAAC;gBACtB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAQ,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChG,CAAC;YAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACpC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACnC,CAAC;YAED,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC;KAAA;IAED,8EAA8E;IAC9E,0BAA0B;IAC1B,8EAA8E;IAEhE,aAAa,CAAC,oBAA4B;;YACtD,MAAM,YAAY,GAAG,GAAwB,EAAE;gBAC7C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,OAAO;gBACT,CAAC;gBAED,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACpC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;gBAEjC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;gBACvE,CAAC;gBAED,yCAAyC;gBACzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAChC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,EACtC,eAAe,CAAC,sBAAsB,CACvC,CAAC;gBACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,GAAG,CAAC;oBACrD,CAAC,CAAC,oBAAoB,GAAG,iBAAiB;oBAC1C,CAAC,CAAC,oBAAoB,CAAC;gBAEzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC1B,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC,CAAA,CAAC;YAEF,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACtC,CAAC;YAED,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;YAEvE,8BAA8B;YAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;KAAA;IAED,8EAA8E;IAC9E,iBAAiB;IACjB,8EAA8E;IAE9E;;;;;;OAMG;IACW,aAAa,CAAC,oBAA4B;;YACtD,gCAAgC;YAChC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,KAAK,CAAC,CAAC;YACnF,CAAC;YAED,wDAAwD;YACxD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAChD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;oBAC5C,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC,yDAAyD,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;gBAClH,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,MAAM,cAAc,GAAG,GAAwB,EAAE;gBAC/C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC,CAAA,CAAC;YAEF,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;QAC3E,CAAC;KAAA;IAED;;OAEG;IACW,gBAAgB;;YAC5B,iCAAiC;YACjC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACtC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACtC,CAAC;YAED,+BAA+B;YAC/B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAE9B,qCAAqC;YACrC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1C,IAAI,CAAC;oBACH,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;gBACpB,CAAC;gBAAC,WAAM,CAAC;oBACP,uBAAuB;gBACzB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAE7B,sCAAsC;YACtC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;gBACpB,CAAC;gBAAC,WAAM,CAAC;oBACP,uBAAuB;gBACzB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAChC,CAAC;KAAA;IAED,8EAA8E;IAC9E,6CAA6C;IAC7C,8EAA8E;IAE9E;;;OAGG;IACW,wBAAwB,CAAC,MAEtC;;YACC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YAEtD,qDAAqD;YACrD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAE/C,uCAAuC;YACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE/C,sEAAsE;YACtE,IAAI,iBAAqC,CAAC;YAC1C,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC;wBAC/D,YAAY,EAAG,GAAG;wBAClB,WAAW,EAAI,YAAY,CAAC,iBAAiB;wBAC7C,WAAW;wBACX,QAAQ;wBACR,MAAM,EAAS,IAAI;qBACpB,CAAC,CAAC;oBACH,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,CAAC;gBAAC,WAAM,CAAC;oBACP,6DAA6D;oBAC7D,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC;4BAC/D,YAAY,EAAG,GAAG;4BAClB,WAAW,EAAI,YAAY,CAAC,YAAY;4BACxC,WAAW;4BACX,QAAQ;4BACR,MAAM,EAAS,IAAI;yBACpB,CAAC,CAAC;wBACH,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrC,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBACpB,OAAO,CAAC,KAAK,CAAC,6EAA6E,EAAE,KAAK,CAAC,CAAC;wBACpG,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,MAAM,mBAAmB,GAAG,CAAO,UAA+B,EAAiB,EAAE;gBACnF,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC/B,4DAA4D;oBAC5D,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;oBACnD,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;oBACnC,OAAO;gBACT,CAAC;gBAED,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAChC,MAAM,KAAK,GAAiB,UAAU,CAAC,KAAK,CAAC;oBAC7C,IAAI,CAAC;wBACH,+BAA+B;wBAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;wBACjD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;oBAC7E,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBACpB,OAAO,CAAC,KAAK,CAAC,yDAAyD,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;oBACvF,CAAC;oBAED,0CAA0C;oBAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC,CAAA,CAAC;YAEF,6DAA6D;YAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;gBAChD,MAAM,EAAU,GAAG;gBACnB,MAAM,EAAU,GAAG;gBACnB,WAAW,EAAK,YAAY,CAAC,iBAAiB;gBAC9C,UAAU,EAAM,WAAW;gBAC3B,aAAa,EAAG;oBACd,OAAO;oBACP,MAAM;oBACN,iBAAiB;iBAClB;gBACD,mBAAmB,EAAE,mBAA0B;aAChD,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,KAA+B,CAAC;YACvD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBACrD,OAAO,CAAC,KAAK,CAAC,iDAAiD,GAAG,OAAO,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAChI,OAAO;YACT,CAAC;YAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,GAAG;gBACH,MAAM;gBACN,WAAW;gBACX,QAAQ;gBACR,KAAK,EAAE,GAAwB,EAAE,gDAAG,MAAM,KAAK,CAAC,YAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;aACzE,CAAC,CAAC;YAEH,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;QACrC,CAAC;KAAA;IAED,8EAA8E;IAC9E,4DAA4D;IAC5D,8EAA8E;IAE9E;;;OAGG;IACW,yBAAyB,CAAC,MAEvC;;YACC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YAEtD,iDAAiD;YACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE/C,mDAAmD;YACnD,IAAI,iBAAqC,CAAC;YAC1C,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC;wBAC/D,YAAY,EAAG,GAAG;wBAClB,WAAW,EAAI,YAAY,CAAC,YAAY;wBACxC,WAAW;wBACX,QAAQ;wBACR,MAAM,EAAS,IAAI;qBACpB,CAAC,CAAC;oBACH,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,CAAC;gBAAC,WAAM,CAAC;oBACP,2DAA2D;oBAC3D,OAAO;gBACT,CAAC;YACH,CAAC;YAED,yCAAyC;YACzC,MAAM,mBAAmB,GAAG,CAAC,UAA+B,EAAQ,EAAE;gBACpE,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAChC,OAAO;gBACT,CAAC;gBAED,mDAAmD;gBACnD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,OAAO;gBACT,CAAC;gBAED,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;oBAC3D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEvB,qBAAqB;gBACrB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC5B,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACxC,CAAC;gBACD,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,GAAS,EAAE;oBAC9C,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACjC,CAAC,EAAE,gBAAgB,CAAC,CAAC;YACvB,CAAC,CAAC;YAEF,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBACnD,MAAM,EAAgB,GAAG;gBACzB,MAAM,EAAgB,GAAG;gBACzB,WAAW,EAAW,YAAY,CAAC,iBAAiB;gBACpD,UAAU,EAAY,WAAW;gBACjC,aAAa,EAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE;gBACpD,mBAAmB,EAAG,mBAA0B;aACjD,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,KAA+B,CAAC;YACvD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBACrD,OAAO,CAAC,KAAK,CAAC,uDAAuD,GAAG,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzH,OAAO;YACT,CAAC;YAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,GAAG;gBACH,MAAM;gBACN,WAAW;gBACX,QAAQ;gBACR,KAAK,EAAE,GAAwB,EAAE,gDAAG,MAAM,KAAK,CAAC,YAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;aACzE,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACW,kBAAkB;;YAC9B,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YAEpC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAE9B,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;gBAClC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;gBAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,YAAY,CAAC;wBACjB,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ;wBAClC,WAAW,EAAM,IAAI;wBACrB,KAAK,EAAY,IAAI,CAAC,KAAK;wBAC3B,cAAc,EAAG,IAAI,CAAC,eAAe;qBACtC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC,6CAA6C,GAAG,OAAO,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED,8EAA8E;IAC9E,qBAAqB;IACrB,8EAA8E;IAEtE,cAAc,CAAC,GAAW,EAAE,MAAc,EAAE,QAAiB;QACnE,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,gBAAgB,GAAG,MAAM,EAAE,CAAC;QAClD,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,gBAAgB,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC;IAEa,SAAS,CAAC,GAAW;;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACjD,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,KAAyB,CAAC;gBACpC,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACjC,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAEa,SAAS,CAAC,GAAW,EAAE,MAAc;;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACjD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;KAAA;IAED,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAE9E;;OAEG;IACK,iBAAiB,CAAC,KAAmB;QAC3C,IAAI,cAAc,CAAC,KAAK,CAAC,IAAK,KAAa,CAAC,IAAI,EAAE,CAAC;YACjD,OAAQ,KAAa,CAAC,IAAI,CAAC;QAC7B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,OAAuB;;QAC3C,qEAAqE;QACrE,4DAA4D;QAC5D,yEAAyE;QACzE,IAAI,GAAuB,CAAC;QAC5B,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAQ,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,6DAA6D;QAC7D,yEAAyE;QACzE,OAAO,MAAA,GAAG,aAAH,GAAG,cAAH,GAAG,GAAK,OAAe,CAAC,UAAU,mCAAI,SAAS,CAAC;IACzD,CAAC;IAED,8EAA8E;IAC9E,qBAAqB;IACrB,8EAA8E;IAE9E;;;OAGG;IACW,iBAAiB,CAAC,KAAa;;;YAC3C,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;gBAC3C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;gBACtC,2EAA2E;gBAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC7B,CAAC;YACD,OAAO,MAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC;QAC/C,CAAC;KAAA;IAED;;;;OAIG;IACK,MAAM,CAAC,cAAc,CAAC,MAAc;QAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAW,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,8EAA8E;IAC9E,sBAAsB;IACtB,8EAA8E;IAE9E;;;;;;;;;OASG;IACH,IAAY,UAAU;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IAChD,CAAC;IAED;;;;;;;OAOG;IACW,YAAY,CAAC,GAAW,EAAE,WAAoB,EAAE,QAAiB;;;YAC7E,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAC3B,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS;oBACrC,CAAC,CAAC,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC;oBACzC,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;YAED,yDAAyD;YACzD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC1F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBACnD,MAAM,EAAU,GAAG;gBACnB,MAAM,EAAU,GAAG;gBACnB,WAAW,EAAK,YAAY,CAAC,YAAY;gBACzC,UAAU,EAAM,WAAW;gBAC3B,aAAa,EAAG;oBACd,MAAM,EAAE,MAAM;oBACd,QAAQ;oBACR,iBAAiB;iBAClB;aACF,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,KAA0B,CAAC;YAClD,OAAO,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;QAC1B,CAAC;KAAA;IAED;;;OAGG;IACW,aAAa,CAAC,GAAW,EAAE,MAAc,EAAE,WAAoB,EAAE,QAAiB;;;YAC9F,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAE1F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBACtD,KAAK,EAAW,KAAK;gBACrB,MAAM,EAAU,GAAG;gBACnB,MAAM,EAAU,GAAG;gBACnB,WAAW,EAAK,YAAY,CAAC,YAAY;gBACzC,UAAU,EAAM,WAAW;gBAC3B,aAAa,EAAG;oBACd,MAAM,EAAE,MAAM;oBACd,QAAQ;oBACR,iBAAiB;iBAClB;aACF,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBAChD,MAAM;gBACN,SAAS,EAAG,GAAG;gBACf,OAAO,EAAK,WAAW,CAAC,OAAO;aAChC,CAAsB,CAAC;YAExB,OAAO,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;QAC1B,CAAC;KAAA;IAED,8EAA8E;IAC9E,uDAAuD;IACvD,8EAA8E;IAE9E;;;;;OAKG;IACW,YAAY;6DAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAK9D;YACC,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAa,EAAE,CAAC;YAEhC,0FAA0F;YAC1F,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAE1F,wEAAwE;YACxE,sEAAsE;YACtE,2CAA2C;YAC3C,MAAM,eAAe,GAAG,IAAI,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAE1D,MAAM,IAAI,GAAG,CAAO,MAAc,EAAiB,EAAE;gBACnD,4DAA4D;gBAC5D,qDAAqD;gBACrD,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAChD,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC;oBAC/E,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;iBACpH,CAAC,CAAC;gBAEH,qDAAqD;gBACrD,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBAED,8EAA8E;gBAC9E,gFAAgF;gBAChF,2EAA2E;gBAC3E,yDAAyD;gBACzD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC9D,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;oBACrG,SAAS,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBACD,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBACxD,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,GAAG,CAC5C,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAC1F,CAAC;oBACF,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,6DAA6D;gBAC7D,IAAI,MAAM,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;oBACpC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBACpD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC;wBAC1E,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;qBAC/G,CAAC,CAAC;oBAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;oBACtC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;oBAExC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;wBAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BACxB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACtB,CAAC;oBACH,CAAC;oBACD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;wBAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BACvB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACvB,CAAC;oBACH,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,4DAA4D;gBAC5D,MAAM,OAAO,CAAC,GAAG,CAAC;oBAChB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;oBAClB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;iBACnB,CAAC,CAAC;YACL,CAAC,CAAA,CAAC;YAEF,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACnC,CAAC;KAAA;IAED,8EAA8E;IAC9E,sDAAsD;IACtD,8EAA8E;IAE9E;;;;;;;;;;;;OAYG;IACW,cAAc;6DAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAKhE;;YACC,uFAAuF;YACvF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAE5F,sEAAsE;YACtE,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAE1F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBACtD,KAAK,EAAW,KAAK;gBACrB,MAAM,EAAU,GAAG;gBACnB,MAAM,EAAU,GAAG;gBACnB,WAAW,EAAK,YAAY,CAAC,YAAY;gBACzC,UAAU,EAAM,WAAW;gBAC3B,aAAa,EAAG;oBACd,MAAM,EAAG,MAAM;oBACf,QAAQ;oBACR,MAAM,EAAG,WAAW;oBACpB,KAAK,EAAI,kBAAkB;oBAC3B,iBAAiB;iBAClB;aACF,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBAChD,MAAM;gBACN,SAAS,EAAG,GAAG;gBACf,OAAO,EAAK,WAAW,CAAC,OAAO;aAChC,CAAsB,CAAC;YAExB,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACpG,CAAC;YAED,gFAAgF;YAChF,MAAM,0BAA0B,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YACnG,MAAM,aAAa,GAAa,EAAE,CAAC;YACnC,KAAK,MAAM,MAAM,IAAI,MAAA,KAAK,CAAC,SAAS,mCAAI,EAAE,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,0BAA0B,CAAC,CAAC;gBACzG,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;YAChC,CAAC;YAED,OAAO;gBACL,UAAU,EAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,EAAE;gBACnC,SAAS,EAAI,aAAa;aAC3B,CAAC;QACJ,CAAC;KAAA;IAED;;;;;;;OAOG;IACW,yBAAyB,CACrC,GAAW,EACX,QAA4B,EAC5B,KAAa;;YAEb,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAE3B,MAAM,IAAI,GAAG,CAAO,MAAc,EAAE,YAAoB,EAAiB,EAAE;gBACzE,IAAI,OAAe,CAAC;gBAEpB,IAAI,EAAE,EAAE,CAAC;oBACP,oDAAoD;oBACpD,MAAM,OAAO,GAAG,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACvD,MAAM,IAAI,GAAG,QAAQ,KAAK,SAAS;wBACjC,CAAC,CAAC,MAAM,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;wBACzD,CAAC,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBAC1C,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,wBAAwB;oBACxB,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC7E,CAAC;gBAED,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;oBAC5B,qCAAqC;oBACrC,OAAO;gBACT,CAAC;gBAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;oBAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;oBACzB,OAAO;gBACT,CAAC;gBAED,yBAAyB;gBACzB,MAAM,OAAO,CAAC,GAAG,CAAC;oBAChB,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,YAAY,GAAG,CAAC,CAAC;oBACpC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,YAAY,GAAG,CAAC,CAAC;iBACrC,CAAC,CAAC;YACL,CAAC,CAAA,CAAC;YAEF,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClB,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAED;;;;;OAKG;IACW,mBAAmB,CAC/B,GAAW,EAAE,MAAc,EAAE,WAAoB,EAAE,QAAiB,EAAE,iBAA0B;;;YAEhG,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAC3B,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,OAAO,GAAG,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,QAAQ,KAAK,SAAS;oBACjC,CAAC,CAAC,MAAM,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;oBACzD,CAAC,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC1C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAED,wBAAwB;YACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBACnD,MAAM,EAAU,GAAG;gBACnB,MAAM,EAAU,GAAG;gBACnB,WAAW,EAAK,YAAY,CAAC,YAAY;gBACzC,UAAU,EAAM,WAAW;gBAC3B,aAAa,EAAG;oBACd,MAAM,EAAE,SAAS;oBACjB,MAAM;oBACN,QAAQ;oBACR,iBAAiB;iBAClB;aACF,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,KAA0B,CAAC;YAClD,OAAO,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;QAC1B,CAAC;KAAA;IAEa,oBAAoB,CAChC,GAAW,EAAE,MAAc,EAAE,MAAc,EAAE,WAAoB,EAAE,QAAiB,EAAE,iBAA0B;;;YAEhH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBACtD,KAAK,EAAW,KAAK;gBACrB,MAAM,EAAU,GAAG;gBACnB,MAAM,EAAU,GAAG;gBACnB,WAAW,EAAK,YAAY,CAAC,YAAY;gBACzC,UAAU,EAAM,WAAW;gBAC3B,aAAa,EAAG;oBACd,MAAM,EAAE,SAAS;oBACjB,MAAM;oBACN,QAAQ;oBACR,iBAAiB;iBAClB;aACF,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBAChD,MAAM;gBACN,SAAS,EAAG,GAAG;gBACf,OAAO,EAAK,WAAW,CAAC,OAAO;aAChC,CAAsB,CAAC;YAExB,OAAO,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;QAC1B,CAAC;KAAA;IAED;;;;;OAKG;IACW,cAAc,CAC1B,GAAW,EAAE,MAAc,EAAE,WAAoB,EAAE,QAAiB,EAAE,iBAA0B;;;YAEhG,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAC3B,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,OAAO,GAAG,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACvD,OAAO,QAAQ,KAAK,SAAS;oBAC3B,CAAC,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;oBACpD,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACvC,CAAC;YAED,wBAAwB;YACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBACnD,MAAM,EAAU,GAAG;gBACnB,MAAM,EAAU,GAAG;gBACnB,WAAW,EAAK,YAAY,CAAC,YAAY;gBACzC,UAAU,EAAM,WAAW;gBAC3B,aAAa,EAAG;oBACd,MAAM,EAAE,QAAQ;oBAChB,MAAM;oBACN,QAAQ;oBACR,iBAAiB;iBAClB;aACF,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,KAA0B,CAAC;YAClD,OAAO,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAC;QAC7B,CAAC;KAAA;IAEa,eAAe,CAC3B,GAAW,EAAE,MAAc,EAAE,MAAc,EAAE,WAAoB,EAAE,QAAiB,EAAE,iBAA0B;;;YAEhH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBACtD,KAAK,EAAW,KAAK;gBACrB,MAAM,EAAU,GAAG;gBACnB,MAAM,EAAU,GAAG;gBACnB,WAAW,EAAK,YAAY,CAAC,YAAY;gBACzC,UAAU,EAAM,WAAW;gBAC3B,aAAa,EAAG;oBACd,MAAM,EAAE,QAAQ;oBAChB,MAAM;oBACN,QAAQ;oBACR,iBAAiB;iBAClB;aACF,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;gBAChD,MAAM;gBACN,SAAS,EAAG,GAAG;gBACf,OAAO,EAAK,WAAW,CAAC,OAAO;aAChC,CAAsB,CAAC;YAExB,OAAO,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAC;QAC7B,CAAC;KAAA;IAED,8EAA8E;IAC9E,sEAAsE;IACtE,8EAA8E;IAE9E;;;;;;;OAOG;IACW,YAAY;6DAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAOvF;YACC,OAAO,YAAY,CAAC;gBAClB,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU;gBAC3D,KAAK,EAAY,IAAI,CAAC,KAAK;gBAC3B,cAAc,EAAG,IAAI,CAAC,eAAe;aACtC,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;;OAGG;IACW,YAAY;6DAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAM3E;YACC,OAAO,YAAY,CAAC;gBAClB,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW;gBAC/C,KAAK,EAAY,IAAI,CAAC,KAAK;gBAC3B,cAAc,EAAG,IAAI,CAAC,eAAe;aACtC,CAAC,CAAC;QACL,CAAC;KAAA;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,8EAA8E;IAE9E;;;OAGG;IACI,MAAM,CAAC,eAAe,CAC3B,QAAa;QAEb,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACW,cAAc;;;YAM1B,MAAM,OAAO,GAA+E,EAAE,CAAC;;gBAE/F,KAAmC,eAAA,KAAA,cAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE,CAAA,IAAA,sDAAE,CAAC;oBAAvD,cAAoD;oBAApD,WAAoD;oBAA5E,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,KAAA,CAAA;oBAC7B,IAAI,MAA2B,CAAC;oBAChC,IAAI,CAAC;wBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAwB,CAAC;oBACtD,CAAC;oBAAC,WAAM,CAAC;wBACP,MAAM,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;oBAC7B,CAAC;oBACD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;oBAE1C,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;oBAC9E,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACjC,SAAS;oBACX,CAAC;oBAED,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;wBACrC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC3B,oCAAoC;4BACpC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;wBAC7C,CAAC;6BAAM,CAAC;4BACN,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gCACjC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;4BACvD,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;;;;;;;;;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IAED;;;OAGG;IACW,wBAAwB,CAAC,GAAW,EAAE,WAAoB,EAAE,QAAiB;;YACzF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC;oBAC3E,YAAY,EAAG,GAAG;oBAClB,WAAW,EAAI,YAAY,CAAC,YAAY;oBACxC,WAAW;oBACX,QAAQ;oBACR,MAAM,EAAS,IAAI;iBACpB,CAAC,CAAC;gBACH,OAAO,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,gFAAgF,EAAE,KAAK,CAAC,CAAC;gBACvG,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;KAAA;;AA5sCD,4DAA4D;AACpC,wCAAwB,GAAG,CAAC,AAAJ,CAAK;AAErD,wFAAwF;AAChE,sCAAsB,GAAG,CAAC,AAAJ,CAAK"}
@@ -7,10 +7,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { DwnInterfaceName, DwnMethodName, Message } from '@enbox/dwn-sdk-js';
10
+ import { DwnInterfaceName, DwnMethodName, Encoder, Message } from '@enbox/dwn-sdk-js';
11
11
  import { DwnInterface } from './types/dwn.js';
12
12
  import { isRecordsWrite } from './utils.js';
13
13
  import { topologicalSort } from './sync-topological-sort.js';
14
+ /** Maximum data size (in bytes) to buffer in memory for retry. Larger payloads are re-fetched. */
15
+ const MAX_BUFFER_SIZE = 1048576; // 1 MB
14
16
  /**
15
17
  * 202: message was successfully written to the remote DWN
16
18
  * 204: an initial write message was written without any data
@@ -43,37 +45,82 @@ export function getMessageCid(message) {
43
45
  * Fetches missing messages from the remote DWN and processes them on the local DWN
44
46
  * in dependency order (topological sort).
45
47
  *
46
- * Messages that fail processing are re-fetched from the remote before each retry
47
- * pass rather than buffered in memory. ReadableStream is single-use, so a failed
48
- * message's data stream is consumed on the first attempt. Re-fetching provides a
49
- * fresh stream without holding all record data in memory simultaneously.
48
+ * Small data payloads (≤ 1 MB) are buffered during the initial fetch so that
49
+ * retries can replay the data from memory instead of re-fetching from remote.
50
+ * Large payloads are re-fetched on retry since buffering them would consume
51
+ * too much memory.
50
52
  */
51
53
  export function pullMessages(_a) {
52
- return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi }) {
53
- // Step 1: Fetch all missing messages from the remote in parallel.
54
- const fetched = yield fetchRemoteMessages({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi });
54
+ return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol, messageCids, prefetched, agent, permissionsApi }) {
55
+ // Convert prefetched diff entries into SyncMessageEntry format.
56
+ const prefetchedEntries = [];
57
+ if (prefetched) {
58
+ for (const entry of prefetched) {
59
+ if (!entry.message) {
60
+ continue;
61
+ }
62
+ const syncEntry = { message: entry.message };
63
+ if (entry.encodedData) {
64
+ // Convert base64url-encoded data to a ReadableStream.
65
+ const bytes = Encoder.base64UrlToBytes(entry.encodedData);
66
+ syncEntry.bufferedData = bytes;
67
+ syncEntry.dataStream = new ReadableStream({
68
+ start(controller) {
69
+ controller.enqueue(bytes);
70
+ controller.close();
71
+ }
72
+ });
73
+ }
74
+ prefetchedEntries.push(syncEntry);
75
+ }
76
+ }
77
+ // Step 1: Fetch remaining messages (not prefetched) from the remote.
78
+ const fetched = messageCids.length > 0
79
+ ? yield fetchRemoteMessages({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi })
80
+ : [];
81
+ // Merge prefetched entries with remotely fetched ones.
82
+ const allFetched = [...prefetchedEntries, ...fetched];
55
83
  // Step 2: Build dependency graph and topological sort.
56
- const sorted = topologicalSort(fetched);
57
- // Step 3: Process messages in dependency order with multi-pass retry.
58
- // Retry up to MAX_RETRY_PASSES times for messages that fail due to
59
- // dependency ordering issues (e.g., a RecordsWrite whose ProtocolsConfigure
60
- // hasn't committed yet). Failed messages are re-fetched from the remote
61
- // to obtain a fresh data stream, since ReadableStream is single-use.
84
+ const sorted = topologicalSort(allFetched);
85
+ // Step 3: Buffer small data streams so they can be replayed on retry.
86
+ yield bufferSmallStreams(sorted);
87
+ // Step 4: Process messages in dependency order with multi-pass retry.
62
88
  const MAX_RETRY_PASSES = 3;
63
89
  let pending = sorted;
64
90
  for (let pass = 0; pass <= MAX_RETRY_PASSES && pending.length > 0; pass++) {
65
- const failedCids = [];
91
+ const failed = [];
66
92
  for (const entry of pending) {
67
- const pullReply = yield agent.dwn.processRawMessage(did, entry.message, { dataStream: entry.dataStream });
93
+ // Create a fresh ReadableStream from the buffer if available (stream is single-use).
94
+ const dataStream = entry.bufferedData
95
+ ? new ReadableStream({ start(c) { c.enqueue(entry.bufferedData); c.close(); } })
96
+ : entry.dataStream;
97
+ const pullReply = yield agent.dwn.processRawMessage(did, entry.message, { dataStream });
68
98
  if (!syncMessageReplyIsSuccessful(pullReply)) {
69
- const cid = yield getMessageCid(entry.message);
70
- failedCids.push(cid);
99
+ failed.push(entry);
71
100
  }
72
101
  }
73
- // Re-fetch failed messages from the remote to get fresh data streams.
74
- if (failedCids.length > 0) {
75
- const reFetched = yield fetchRemoteMessages({ did, dwnUrl, delegateDid, protocol, messageCids: failedCids, agent, permissionsApi });
76
- pending = topologicalSort(reFetched);
102
+ if (failed.length > 0) {
103
+ // Separate entries that have a buffer (can retry locally) from those
104
+ // that need a fresh fetch (large payloads whose stream was consumed).
105
+ const needsRefetch = [];
106
+ const canRetry = [];
107
+ for (const entry of failed) {
108
+ if (entry.bufferedData || !entry.dataStream) {
109
+ // Has a buffer or has no data — can retry without re-fetching.
110
+ canRetry.push(entry);
111
+ }
112
+ else {
113
+ // Large payload whose stream was consumed — must re-fetch.
114
+ const cid = yield getMessageCid(entry.message);
115
+ needsRefetch.push(cid);
116
+ }
117
+ }
118
+ // Re-fetch only the large-payload messages that we couldn't buffer.
119
+ if (needsRefetch.length > 0) {
120
+ const reFetched = yield fetchRemoteMessages({ did, dwnUrl, delegateDid, protocol, messageCids: needsRefetch, agent, permissionsApi });
121
+ canRetry.push(...reFetched);
122
+ }
123
+ pending = topologicalSort(canRetry);
77
124
  }
78
125
  else {
79
126
  pending = [];
@@ -81,6 +128,63 @@ export function pullMessages(_a) {
81
128
  }
82
129
  });
83
130
  }
131
+ /**
132
+ * Buffers small data streams into `Uint8Array` so they can be replayed on retry.
133
+ * Streams larger than `MAX_BUFFER_SIZE` are left as-is (will be re-fetched on retry).
134
+ */
135
+ function bufferSmallStreams(entries) {
136
+ return __awaiter(this, void 0, void 0, function* () {
137
+ for (const entry of entries) {
138
+ if (!entry.dataStream) {
139
+ continue;
140
+ }
141
+ // Read the stream into memory. If it exceeds the threshold, stop and
142
+ // leave the entry without a buffer (it will be re-fetched on retry).
143
+ const chunks = [];
144
+ let totalSize = 0;
145
+ let exceededThreshold = false;
146
+ const reader = entry.dataStream.getReader();
147
+ try {
148
+ for (;;) {
149
+ const { done, value } = yield reader.read();
150
+ if (done) {
151
+ break;
152
+ }
153
+ totalSize += value.byteLength;
154
+ if (totalSize > MAX_BUFFER_SIZE) {
155
+ exceededThreshold = true;
156
+ break;
157
+ }
158
+ chunks.push(value);
159
+ }
160
+ }
161
+ finally {
162
+ reader.releaseLock();
163
+ }
164
+ if (exceededThreshold) {
165
+ // Stream exceeded the buffer threshold. Leave dataStream consumed —
166
+ // the retry path will re-fetch from remote.
167
+ entry.dataStream = undefined;
168
+ continue;
169
+ }
170
+ // Combine chunks into a single Uint8Array buffer.
171
+ const buffer = new Uint8Array(totalSize);
172
+ let offset = 0;
173
+ for (const chunk of chunks) {
174
+ buffer.set(chunk, offset);
175
+ offset += chunk.byteLength;
176
+ }
177
+ entry.bufferedData = buffer;
178
+ // Create a fresh ReadableStream from the buffer for the first processing attempt.
179
+ entry.dataStream = new ReadableStream({
180
+ start(controller) {
181
+ controller.enqueue(buffer);
182
+ controller.close();
183
+ }
184
+ });
185
+ }
186
+ });
187
+ }
84
188
  /**
85
189
  * Fetches messages from a remote DWN by their CIDs using MessagesRead.
86
190
  */