@interop/wallet-core 0.65.0 → 0.67.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.
Files changed (256) hide show
  1. package/README.md +12 -8
  2. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +5 -4
  3. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
  4. package/dist/clientAnnex/credentialAnchoredGenesis.js +32 -50
  5. package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
  6. package/dist/clientAnnex/establish.d.ts +112 -21
  7. package/dist/clientAnnex/establish.d.ts.map +1 -1
  8. package/dist/clientAnnex/establish.js +248 -180
  9. package/dist/clientAnnex/establish.js.map +1 -1
  10. package/dist/clientAnnex/forget.d.ts +2 -6
  11. package/dist/clientAnnex/forget.d.ts.map +1 -1
  12. package/dist/clientAnnex/forget.js +31 -61
  13. package/dist/clientAnnex/forget.js.map +1 -1
  14. package/dist/clientAnnex/forgetLast.d.ts +48 -132
  15. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  16. package/dist/clientAnnex/forgetLast.js +88 -221
  17. package/dist/clientAnnex/forgetLast.js.map +1 -1
  18. package/dist/clientAnnex/gc.d.ts.map +1 -1
  19. package/dist/clientAnnex/gc.js +9 -0
  20. package/dist/clientAnnex/gc.js.map +1 -1
  21. package/dist/clientAnnex/heal.d.ts +97 -13
  22. package/dist/clientAnnex/heal.d.ts.map +1 -1
  23. package/dist/clientAnnex/heal.js +108 -174
  24. package/dist/clientAnnex/heal.js.map +1 -1
  25. package/dist/clientAnnex/index.d.ts +8 -8
  26. package/dist/clientAnnex/index.d.ts.map +1 -1
  27. package/dist/clientAnnex/index.js +6 -6
  28. package/dist/clientAnnex/index.js.map +1 -1
  29. package/dist/clientAnnex/ladder.d.ts +51 -4
  30. package/dist/clientAnnex/ladder.d.ts.map +1 -1
  31. package/dist/clientAnnex/ladder.js +310 -55
  32. package/dist/clientAnnex/ladder.js.map +1 -1
  33. package/dist/clientAnnex/ladderAnchored.d.ts +37 -3
  34. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  35. package/dist/clientAnnex/ladderAnchored.js +69 -34
  36. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  37. package/dist/clientAnnex/log.d.ts +148 -72
  38. package/dist/clientAnnex/log.d.ts.map +1 -1
  39. package/dist/clientAnnex/log.js +211 -137
  40. package/dist/clientAnnex/log.js.map +1 -1
  41. package/dist/clientAnnex/mend.d.ts.map +1 -1
  42. package/dist/clientAnnex/mend.js +63 -81
  43. package/dist/clientAnnex/mend.js.map +1 -1
  44. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +20 -1
  45. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  46. package/dist/clientAnnex/recoveryLadderAnchored.js +77 -294
  47. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  48. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts +13 -5
  49. package/dist/clientAnnex/rosterDeliveredEpochs.d.ts.map +1 -1
  50. package/dist/clientAnnex/rosterDeliveredEpochs.js +18 -9
  51. package/dist/clientAnnex/rosterDeliveredEpochs.js.map +1 -1
  52. package/dist/clientAnnex/selfEnroll.js +1 -1
  53. package/dist/clientAnnex/selfEnroll.js.map +1 -1
  54. package/dist/clientAnnex/zcap.d.ts +19 -0
  55. package/dist/clientAnnex/zcap.d.ts.map +1 -1
  56. package/dist/clientAnnex/zcap.js +80 -12
  57. package/dist/clientAnnex/zcap.js.map +1 -1
  58. package/dist/clients/index.d.ts +3 -2
  59. package/dist/clients/index.d.ts.map +1 -1
  60. package/dist/clients/index.js +3 -2
  61. package/dist/clients/index.js.map +1 -1
  62. package/dist/clients/listing.d.ts.map +1 -1
  63. package/dist/clients/listing.js +33 -15
  64. package/dist/clients/listing.js.map +1 -1
  65. package/dist/clients/policy.d.ts +18 -0
  66. package/dist/clients/policy.d.ts.map +1 -1
  67. package/dist/clients/policy.js +22 -8
  68. package/dist/clients/policy.js.map +1 -1
  69. package/dist/clients/revocation.d.ts +18 -30
  70. package/dist/clients/revocation.d.ts.map +1 -1
  71. package/dist/clients/revocation.js +12 -27
  72. package/dist/clients/revocation.js.map +1 -1
  73. package/dist/clients/rosterPolicy.d.ts +6 -1
  74. package/dist/clients/rosterPolicy.d.ts.map +1 -1
  75. package/dist/clients/rosterPolicy.js +27 -30
  76. package/dist/clients/rosterPolicy.js.map +1 -1
  77. package/dist/descriptors/errors.d.ts +6 -5
  78. package/dist/descriptors/errors.d.ts.map +1 -1
  79. package/dist/descriptors/errors.js +6 -5
  80. package/dist/descriptors/errors.js.map +1 -1
  81. package/dist/descriptors/index.d.ts +7 -3
  82. package/dist/descriptors/index.d.ts.map +1 -1
  83. package/dist/descriptors/index.js +7 -3
  84. package/dist/descriptors/index.js.map +1 -1
  85. package/dist/descriptors/logSource.d.ts +28 -6
  86. package/dist/descriptors/logSource.d.ts.map +1 -1
  87. package/dist/descriptors/logSource.js +33 -7
  88. package/dist/descriptors/logSource.js.map +1 -1
  89. package/dist/enrollment/enrollment.d.ts.map +1 -1
  90. package/dist/enrollment/enrollment.js +3 -7
  91. package/dist/enrollment/enrollment.js.map +1 -1
  92. package/dist/genesis/accountGenesis.d.ts +8 -10
  93. package/dist/genesis/accountGenesis.d.ts.map +1 -1
  94. package/dist/genesis/accountGenesis.js +39 -41
  95. package/dist/genesis/accountGenesis.js.map +1 -1
  96. package/dist/genesis/kmsAuthentication.d.ts +50 -0
  97. package/dist/genesis/kmsAuthentication.d.ts.map +1 -0
  98. package/dist/genesis/kmsAuthentication.js +49 -0
  99. package/dist/genesis/kmsAuthentication.js.map +1 -0
  100. package/dist/keyring/kdf.d.ts +16 -20
  101. package/dist/keyring/kdf.d.ts.map +1 -1
  102. package/dist/keyring/kdf.js +2 -2
  103. package/dist/keyring/kdf.js.map +1 -1
  104. package/dist/keyring/unlockSpace.d.ts +8 -30
  105. package/dist/keyring/unlockSpace.d.ts.map +1 -1
  106. package/dist/keyring/unlockSpace.js +8 -31
  107. package/dist/keyring/unlockSpace.js.map +1 -1
  108. package/dist/keys/clientKeyRecord.d.ts +2 -1
  109. package/dist/keys/clientKeyRecord.d.ts.map +1 -1
  110. package/dist/keys/clientKeyRecord.js +28 -11
  111. package/dist/keys/clientKeyRecord.js.map +1 -1
  112. package/dist/keys/index.d.ts +19 -5
  113. package/dist/keys/index.d.ts.map +1 -1
  114. package/dist/keys/index.js +17 -3
  115. package/dist/keys/index.js.map +1 -1
  116. package/dist/keys/rosterLogStore.d.ts +3 -1
  117. package/dist/keys/rosterLogStore.d.ts.map +1 -1
  118. package/dist/keys/rosterLogStore.js +20 -8
  119. package/dist/keys/rosterLogStore.js.map +1 -1
  120. package/dist/keys/spaceEpochs.d.ts +92 -3
  121. package/dist/keys/spaceEpochs.d.ts.map +1 -1
  122. package/dist/keys/spaceEpochs.js +110 -4
  123. package/dist/keys/spaceEpochs.js.map +1 -1
  124. package/dist/keys/userKeyCascade.d.ts +8 -5
  125. package/dist/keys/userKeyCascade.d.ts.map +1 -1
  126. package/dist/keys/userKeyCascade.js +7 -6
  127. package/dist/keys/userKeyCascade.js.map +1 -1
  128. package/dist/keys/userKeyRoster.d.ts +68 -4
  129. package/dist/keys/userKeyRoster.d.ts.map +1 -1
  130. package/dist/keys/userKeyRoster.js +146 -33
  131. package/dist/keys/userKeyRoster.js.map +1 -1
  132. package/dist/keys/userKeyRosterCascade.d.ts +110 -10
  133. package/dist/keys/userKeyRosterCascade.d.ts.map +1 -1
  134. package/dist/keys/userKeyRosterCascade.js +184 -40
  135. package/dist/keys/userKeyRosterCascade.js.map +1 -1
  136. package/dist/recovery/continuation.d.ts +255 -0
  137. package/dist/recovery/continuation.d.ts.map +1 -0
  138. package/dist/recovery/continuation.js +471 -0
  139. package/dist/recovery/continuation.js.map +1 -0
  140. package/dist/recovery/index.d.ts +12 -8
  141. package/dist/recovery/index.d.ts.map +1 -1
  142. package/dist/recovery/index.js +11 -7
  143. package/dist/recovery/index.js.map +1 -1
  144. package/dist/recovery/recoveryDelegation.d.ts +40 -120
  145. package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
  146. package/dist/recovery/recoveryDelegation.js +36 -268
  147. package/dist/recovery/recoveryDelegation.js.map +1 -1
  148. package/dist/recovery/recoveryWebvh.d.ts +42 -83
  149. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  150. package/dist/recovery/recoveryWebvh.js +44 -380
  151. package/dist/recovery/recoveryWebvh.js.map +1 -1
  152. package/dist/request/appKey.d.ts +35 -1
  153. package/dist/request/appKey.d.ts.map +1 -1
  154. package/dist/request/appKey.js +29 -10
  155. package/dist/request/appKey.js.map +1 -1
  156. package/dist/request/classify.d.ts +3 -14
  157. package/dist/request/classify.d.ts.map +1 -1
  158. package/dist/request/classify.js +19 -40
  159. package/dist/request/classify.js.map +1 -1
  160. package/dist/request/index.d.ts +1 -0
  161. package/dist/request/index.d.ts.map +1 -1
  162. package/dist/request/index.js +1 -0
  163. package/dist/request/index.js.map +1 -1
  164. package/dist/request/onboarding.d.ts.map +1 -1
  165. package/dist/request/onboarding.js +19 -27
  166. package/dist/request/onboarding.js.map +1 -1
  167. package/dist/request/parse.d.ts +5 -3
  168. package/dist/request/parse.d.ts.map +1 -1
  169. package/dist/request/parse.js +7 -6
  170. package/dist/request/parse.js.map +1 -1
  171. package/dist/request/processRequest.d.ts.map +1 -1
  172. package/dist/request/processRequest.js +2 -1
  173. package/dist/request/processRequest.js.map +1 -1
  174. package/dist/request/queryPredicates.d.ts +98 -0
  175. package/dist/request/queryPredicates.d.ts.map +1 -0
  176. package/dist/request/queryPredicates.js +107 -0
  177. package/dist/request/queryPredicates.js.map +1 -0
  178. package/dist/resourceLog/document.d.ts +39 -0
  179. package/dist/resourceLog/document.d.ts.map +1 -1
  180. package/dist/resourceLog/document.js +41 -0
  181. package/dist/resourceLog/document.js.map +1 -1
  182. package/dist/resourceLog/ladderRungs.d.ts.map +1 -1
  183. package/dist/resourceLog/ladderRungs.js +3 -2
  184. package/dist/resourceLog/ladderRungs.js.map +1 -1
  185. package/dist/sync/contactsConflict.d.ts.map +1 -1
  186. package/dist/sync/contactsConflict.js +8 -2
  187. package/dist/sync/contactsConflict.js.map +1 -1
  188. package/dist/sync/engine.d.ts +38 -23
  189. package/dist/sync/engine.d.ts.map +1 -1
  190. package/dist/sync/engine.js +36 -5
  191. package/dist/sync/engine.js.map +1 -1
  192. package/dist/sync/index.d.ts +9 -12
  193. package/dist/sync/index.d.ts.map +1 -1
  194. package/dist/sync/index.js +8 -11
  195. package/dist/sync/index.js.map +1 -1
  196. package/dist/sync/push.d.ts.map +1 -1
  197. package/dist/sync/push.js +1 -2
  198. package/dist/sync/push.js.map +1 -1
  199. package/dist/sync/remint.d.ts +0 -31
  200. package/dist/sync/remint.d.ts.map +1 -1
  201. package/dist/sync/remint.js +32 -1
  202. package/dist/sync/remint.js.map +1 -1
  203. package/dist/sync/types.d.ts +4 -41
  204. package/dist/sync/types.d.ts.map +1 -1
  205. package/dist/sync/types.js +4 -47
  206. package/dist/sync/types.js.map +1 -1
  207. package/dist/unlock/index.d.ts +1 -1
  208. package/dist/unlock/index.d.ts.map +1 -1
  209. package/dist/unlock/index.js +1 -1
  210. package/dist/unlock/index.js.map +1 -1
  211. package/dist/unlock/retire.d.ts +16 -56
  212. package/dist/unlock/retire.d.ts.map +1 -1
  213. package/dist/unlock/retire.js +7 -76
  214. package/dist/unlock/retire.js.map +1 -1
  215. package/dist/unlock/standingWebvh.d.ts +20 -40
  216. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  217. package/dist/unlock/standingWebvh.js +35 -76
  218. package/dist/unlock/standingWebvh.js.map +1 -1
  219. package/dist/unlock/unlockRecord.d.ts.map +1 -1
  220. package/dist/unlock/unlockRecord.js +69 -44
  221. package/dist/unlock/unlockRecord.js.map +1 -1
  222. package/dist/webvh/accountEntry.d.ts +63 -7
  223. package/dist/webvh/accountEntry.d.ts.map +1 -1
  224. package/dist/webvh/accountEntry.js +110 -19
  225. package/dist/webvh/accountEntry.js.map +1 -1
  226. package/dist/webvh/delegatedLogStore.d.ts +18 -12
  227. package/dist/webvh/delegatedLogStore.d.ts.map +1 -1
  228. package/dist/webvh/delegatedLogStore.js +32 -11
  229. package/dist/webvh/delegatedLogStore.js.map +1 -1
  230. package/dist/webvh/didWebvh.d.ts +39 -23
  231. package/dist/webvh/didWebvh.d.ts.map +1 -1
  232. package/dist/webvh/didWebvh.js +63 -45
  233. package/dist/webvh/didWebvh.js.map +1 -1
  234. package/dist/webvh/enrollClient.d.ts.map +1 -1
  235. package/dist/webvh/enrollClient.js +19 -23
  236. package/dist/webvh/enrollClient.js.map +1 -1
  237. package/dist/webvh/index.d.ts +11 -7
  238. package/dist/webvh/index.d.ts.map +1 -1
  239. package/dist/webvh/index.js +9 -6
  240. package/dist/webvh/index.js.map +1 -1
  241. package/dist/webvh/listClients.d.ts.map +1 -1
  242. package/dist/webvh/listClients.js +102 -65
  243. package/dist/webvh/listClients.js.map +1 -1
  244. package/dist/webvh/mergeMethods.d.ts +84 -0
  245. package/dist/webvh/mergeMethods.d.ts.map +1 -0
  246. package/dist/webvh/mergeMethods.js +46 -0
  247. package/dist/webvh/mergeMethods.js.map +1 -0
  248. package/dist/webvh/revokeClient.d.ts +12 -2
  249. package/dist/webvh/revokeClient.d.ts.map +1 -1
  250. package/dist/webvh/revokeClient.js +126 -48
  251. package/dist/webvh/revokeClient.js.map +1 -1
  252. package/dist/webvh/verifyLog.d.ts +21 -0
  253. package/dist/webvh/verifyLog.d.ts.map +1 -1
  254. package/dist/webvh/verifyLog.js +36 -14
  255. package/dist/webvh/verifyLog.js.map +1 -1
  256. package/package.json +11 -11
@@ -41,7 +41,7 @@ import { hkdf } from '@noble/hashes/hkdf.js';
41
41
  import { sha256 } from '@noble/hashes/sha2.js';
42
42
  import { currentLogParameters, effectiveParameters, updateKeyMultibase } from '../webvh/didWebvh.js';
43
43
  import { listEnrolledWebvhClients } from '../webvh/listClients.js';
44
- import { credentialKeyAgreementMethods, ladderVmIds, relationIds, resolvedKeyAgreementMethods } from '../resourceLog/document.js';
44
+ import { credentialKeyAgreementMethods, introducedCredentialKeys, ladderVmIds, relationIds, resolvedKeyAgreementMethods, retiredCredentialKeys } from '../resourceLog/document.js';
45
45
  import { survivingClientKeyProtection } from '../webvh/revokeClient.js';
46
46
  import { log as logger } from '../log.js';
47
47
  import { LADDER_SEED_BYTES } from '../unlock/unlockRecord.js';
@@ -143,6 +143,24 @@ export async function ladderRung({ ladderSeed, index }) {
143
143
  const seed = ladderRungSeed({ ladderSeed, index });
144
144
  return { index, seed, keyMultibase: await updateKeyMultibase({ seed }) };
145
145
  }
146
+ /**
147
+ * Derives rungs `0..maxScan - 1` and their `nextKeyHashes` commitments
148
+ * concurrently. Each rung is an HKDF expansion plus an Ed25519 keygen, so a
149
+ * seeded scan of the full range is worth deriving in parallel rather than one
150
+ * `await` per index. The result is in ascending rung order, so a caller that
151
+ * classifies over it sees the same order a serial loop did.
152
+ *
153
+ * @param options {object}
154
+ * @param options.ladderSeed {Uint8Array}
155
+ * @param options.maxScan {number} how many rungs to derive, from 0
156
+ * @returns {Promise<{ rung: LadderRung, hash: string }[]>}
157
+ */
158
+ async function deriveLadderRungs({ ladderSeed, maxScan }) {
159
+ return await Promise.all(Array.from({ length: maxScan }, async (unused, index) => {
160
+ const rung = await ladderRung({ ladderSeed, index });
161
+ return { rung, hash: await deriveNextKeyHash(rung.keyMultibase) };
162
+ }));
163
+ }
146
164
  /**
147
165
  * Derives the 32-byte Ed25519 seed of the ladder VM -- the STABLE SIBLING: a
148
166
  * dedicated key derived once from the ladder seed, distinct from every rung,
@@ -248,12 +266,14 @@ export async function clientAnnexRung({ ladderSeed, generationId }) {
248
266
  export async function attributeLadderRung({ ladderSeed, published, maxScan = LADDER_MAX_SCAN }) {
249
267
  const revealed = [];
250
268
  const committed = [];
251
- for (let index = 0; index < maxScan; index++) {
252
- const rung = await ladderRung({ ladderSeed, index });
269
+ // The whole range is derived up front: the ambiguity refusal below counts
270
+ // every match, so there is nothing to exit early for.
271
+ const scanned = await deriveLadderRungs({ ladderSeed, maxScan });
272
+ for (const { rung, hash } of scanned) {
253
273
  if (published.updateKeys.includes(rung.keyMultibase)) {
254
274
  revealed.push(rung);
255
275
  }
256
- else if (published.nextKeyHashes.includes(await deriveNextKeyHash(rung.keyMultibase))) {
276
+ else if (published.nextKeyHashes.includes(hash)) {
257
277
  committed.push(rung);
258
278
  }
259
279
  }
@@ -331,26 +351,6 @@ function credentialSurvives({ entry, vmId }) {
331
351
  // commitment.
332
352
  return relationIds(entry.state.keyAgreement).includes(vmId);
333
353
  }
334
- /**
335
- * The credential-class `keyAgreement` verification-method ids an entry
336
- * INTRODUCES: those its document publishes and the previous entry's document
337
- * did not. Credential-class means account-controlled
338
- * (`credentialKeyAgreementMethods`), so an enrolled client's marked twin
339
- * never counts. The co-introduction arm of the ladder-VM attribution reads
340
- * this and refuses to act unless the answer is exactly this credential.
341
- *
342
- * @param options {object}
343
- * @param options.doc {KeyAgreementDocument} the entry's document
344
- * @param [options.prevDoc] {KeyAgreementDocument} the previous entry's
345
- * @param options.did {string} the account DID
346
- * @returns {string[]} in document order
347
- */
348
- function introducedCredentialKeys({ doc, prevDoc, did }) {
349
- const before = new Set((prevDoc ? credentialKeyAgreementMethods({ doc: prevDoc, did }) : []).map(method => method.id));
350
- return credentialKeyAgreementMethods({ doc, did })
351
- .map(method => method.id)
352
- .filter((id) => id !== undefined && !before.has(id));
353
- }
354
354
  /**
355
355
  * The log-derived indexes every attribution walk starts from, computed once
356
356
  * per log rather than once per credential.
@@ -463,7 +463,11 @@ function indexLadderLog({ log, params }) {
463
463
  * ours yet, and at the spent recovery code whose reveal entry commits the
464
464
  * REPLACEMENT code's hash last -- without it the replacement's retirement
465
465
  * would recover the spent code's key and go on to strike the fresh
466
- * credential's rungs. The single-self-revealing-key test stops it at the bind
466
+ * credential's rungs. That last stop is load-bearing for the anchor rule of
467
+ * `decisions/0014`: a replacement code anchored on that last-position hash
468
+ * enters this walk through the climb rule, and its member is published one
469
+ * entry after the reveal that committed the hash, which is exactly what the
470
+ * test refuses on. The single-self-revealing-key test stops it at the bind
467
471
  * entry an enrolled client signs, which authorizes no key of its own, so the
468
472
  * binding client's update key is never recovered as a rung. The strictly
469
473
  * decreasing entry cursor and the already-recovered test keep the walk finite
@@ -639,11 +643,27 @@ function introducesEnrolledClient({ doc, prevDoc, did }) {
639
643
  * hash (the `publishUnlockKey` bind an enrolled client signs, and the
640
644
  * recovery-code issuance sharing it), so rung 0's hash is that hash.
641
645
  *
646
+ * A third shape is the recovery add-and-retire entry, which the two above
647
+ * cannot read: the transient continuation's introduces the fresh credential's
648
+ * member and the replacement code's together, and the remembered
649
+ * continuation's introduces the replacement's beside an enrolled client. Both
650
+ * are the HANDOVER of `decisions/0007`, read here as the anchor rule of
651
+ * `decisions/0014`: the entry authorized exactly one key, that key signed it,
652
+ * that key's hash was committed by an earlier reveal-and-commit entry whose
653
+ * signer this entry retires, and that earlier entry appended exactly three
654
+ * hashes with the successor's first. The reveal entry's LAST addition is then
655
+ * the replacement code's rung-0 hash (what an entry hands to a successor
656
+ * credential comes last), and the successor key is the fresh credential's
657
+ * rung 0. Which member is which is read off the `keyAgreement` relation's
658
+ * order, which the emitter fixes: the fresh credential's member precedes the
659
+ * replacement code's. So a two-member bind that publishes no enrolled client
660
+ * anchors its first member on the successor key and its second on the last
661
+ * addition; a one-member bind that publishes an enrolled client anchors that
662
+ * member on the last addition alone, since the successor key there is the
663
+ * client's.
664
+ *
642
665
  * Anything else is ambiguous and returns `undefined`, which the callers report
643
- * as unclaimed rather than acting on. The reachable ambiguity is a bind entry
644
- * introducing more than one credential-class member: a recovery
645
- * add-and-retire entry introduces the fresh credential and the replacement
646
- * code together, so neither is anchorable this way.
666
+ * as unclaimed rather than acting on.
647
667
  *
648
668
  * @param options {object}
649
669
  * @param options.log {DIDLog} a resolved, caller-verified log
@@ -653,8 +673,8 @@ function introducesEnrolledClient({ doc, prevDoc, did }) {
653
673
  * undefined>}
654
674
  */
655
675
  export async function credentialLadderAnchor({ log, credentialVmId }) {
656
- const { facts } = indexedLadderLog(log);
657
- return resolveBindAnchor({ log, facts, credentialVmId });
676
+ const { facts, commitIndex } = indexedLadderLog(log);
677
+ return resolveBindAnchor({ log, facts, commitIndex, credentialVmId });
658
678
  }
659
679
  /**
660
680
  * The ladder VMs the log introduced ALONGSIDE something of this credential's
@@ -736,16 +756,142 @@ export async function ladderVmIdsIntroducedWithCredential({ log, credentialVmId,
736
756
  return [...new Set(candidates)];
737
757
  }
738
758
  /**
739
- * The synchronous core of {@link credentialLadderAnchor}, over a pre-pass the
740
- * caller already ran.
759
+ * The earlier attempts behind a RESUMED reveal entry: one that appended
760
+ * exactly two hashes, the successor's and its staged partner's, because the
761
+ * replacement's was already committed by an earlier attempt. A transient
762
+ * continuation torn at its seam and re-run mints a fresh ladder seed while
763
+ * reusing the replacement (both as its contract asks), so every reveal entry
764
+ * after the first dedups the replacement's hash away. Such an entry's own
765
+ * last addition is the ladder's rung 1, not a handover; the replacement's
766
+ * hash is the last addition of a three-addition entry the same retired
767
+ * signer wrote earlier.
768
+ *
769
+ * Every earlier entry that signer wrote is read. A two-addition one is
770
+ * another resumed reveal, walked past (a continuation torn at its seam twice
771
+ * leaves one behind). A three-addition one is an attempt that committed a
772
+ * replacement, and its last addition is collected. Any other size is no
773
+ * attempt of this continuation's, and the answer is refused. The two readers
774
+ * ask different questions of the result: the forward walk asks only whether
775
+ * an attempt committed a replacement at all (so the two-addition entry's last
776
+ * position is the ladder's own rung), while the anchor rule needs exactly one
777
+ * such attempt, since more than one means the replacement changed between
778
+ * resumes, which the contract forbids and which no last position can settle.
779
+ *
780
+ * @param options {object}
781
+ * @param options.facts {LadderEntryFacts[]} from {@link indexLadderLog}
782
+ * @param options.before {number} the resumed reveal entry's index
783
+ * @param options.retiredSigners {string[]} the signers the add-and-retire
784
+ * entry retires
785
+ * @returns {string[] | undefined} the replacement hashes the earlier
786
+ * attempts committed, nearest first; `undefined` on a refusal
787
+ */
788
+ function resumedRevealReplacementHashes({ facts, before, retiredSigners }) {
789
+ const replacementHashes = [];
790
+ for (let index = before - 1; index >= 0; index--) {
791
+ const attempt = facts[index];
792
+ if (!attempt.signers.some(key => retiredSigners.includes(key))) {
793
+ continue;
794
+ }
795
+ if (attempt.addedHashes.length === 2) {
796
+ continue;
797
+ }
798
+ if (attempt.addedHashes.length !== 3) {
799
+ return undefined;
800
+ }
801
+ replacementHashes.push(attempt.addedHashes[2]);
802
+ }
803
+ return replacementHashes;
804
+ }
805
+ /**
806
+ * The recovery add-and-retire arm of {@link resolveBindAnchor}: the handover
807
+ * shape of `decisions/0007` read as an anchor, per `decisions/0014`. Every
808
+ * test is fail-closed. A shape that passes them all names the successor key
809
+ * the entry authorized and, when the reveal entry that committed its hash
810
+ * (or, on a resumed reveal, the attempt before it) ends on one, the
811
+ * replacement code's hash. The two are decoupled on purpose: the successor
812
+ * key is unambiguous from the bind entry alone, so a replacement lookup that
813
+ * refuses leaves the fresh credential anchored and retirable.
814
+ *
815
+ * The between-entries test is what refuses a remembered continuation whose
816
+ * reveal entry was published twice with a DIFFERENT replacement code, which
817
+ * the continuation's contract forbids. The retired signer then signed an
818
+ * entry after the reveal, and no last addition is the replacement's. A reveal
819
+ * published twice with the SAME replacement is the resumed shape
820
+ * {@link resumedRevealReplacementHashes} reads.
821
+ *
822
+ * The retired-member test is what keeps the arm off a self-enrollment's add
823
+ * entry, which passes every other clause: its reveal entry also commits
824
+ * exactly three hashes with the successor's first, and its add entry also
825
+ * authorizes one self-signing key while retiring the reveal's signer. Only a
826
+ * spend strikes a credential-class `keyAgreement` member in that entry, and
827
+ * a self-enrollment's third hash is the acting ladder's own next rung, not a
828
+ * successor's.
829
+ *
830
+ * @param options {object}
831
+ * @param options.facts {LadderEntryFacts[]} from {@link indexLadderLog}
832
+ * @param options.commitIndex {Map<string, LadderCommitOrigin>} likewise
833
+ * @param options.bind {LadderEntryFacts} the bind entry's facts
834
+ * @param options.index {number} the bind entry's index
835
+ * @param options.successorKeyMultibase {string} the one key it authorized
836
+ * @param options.successorHash {string} that key's hash
837
+ * @param options.retiresCredentialMember {boolean} whether the bind entry
838
+ * struck a credential-class `keyAgreement` member (the spent code's)
839
+ * @returns {{ successorKeyMultibase: string, replacementHash?: string } |
840
+ * undefined}
841
+ */
842
+ function resolveHandoverShape({ facts, commitIndex, bind, index, successorKeyMultibase, successorHash, retiresCredentialMember }) {
843
+ if (!retiresCredentialMember ||
844
+ bind.addedKeys.length !== 1 ||
845
+ !bind.signers.includes(successorKeyMultibase)) {
846
+ return undefined;
847
+ }
848
+ // The reveal entry: it committed the successor's hash first among exactly
849
+ // three additions (or two, on a resumed reveal), and this entry retires a
850
+ // key that signed it.
851
+ const origin = commitIndex.get(successorHash);
852
+ if (origin === undefined || origin.entryIndex >= index || origin.at !== 0) {
853
+ return undefined;
854
+ }
855
+ const reveal = facts[origin.entryIndex];
856
+ const retiredSigners = reveal.signers.filter(signer => bind.removedKeys.includes(signer));
857
+ if (retiredSigners.length === 0) {
858
+ return undefined;
859
+ }
860
+ for (let between = origin.entryIndex + 1; between < index; between++) {
861
+ if (facts[between].signers.some(key => retiredSigners.includes(key))) {
862
+ return undefined;
863
+ }
864
+ }
865
+ const earlier = reveal.addedHashes.length === 2
866
+ ? resumedRevealReplacementHashes({
867
+ facts,
868
+ before: origin.entryIndex,
869
+ retiredSigners
870
+ })
871
+ : undefined;
872
+ const replacementHash = reveal.addedHashes.length === 3
873
+ ? reveal.addedHashes[2]
874
+ : earlier?.length === 1
875
+ ? earlier[0]
876
+ : undefined;
877
+ return {
878
+ successorKeyMultibase,
879
+ ...(replacementHash !== undefined ? { replacementHash } : {})
880
+ };
881
+ }
882
+ /**
883
+ * The core of {@link credentialLadderAnchor}, over a pre-pass the caller
884
+ * already ran.
741
885
  *
742
886
  * @param options {object}
743
887
  * @param options.log {DIDLog}
744
888
  * @param options.facts {LadderEntryFacts[]} from {@link indexLadderLog}
889
+ * @param options.commitIndex {Map<string, LadderCommitOrigin>} likewise
745
890
  * @param options.credentialVmId {string}
746
- * @returns {{ anchorKeyMultibase?: string, anchorHash?: string } | undefined}
891
+ * @returns {Promise<{ anchorKeyMultibase?: string, anchorHash?: string } |
892
+ * undefined>}
747
893
  */
748
- function resolveBindAnchor({ log, facts, credentialVmId }) {
894
+ async function resolveBindAnchor({ log, facts, commitIndex, credentialVmId }) {
749
895
  const did = credentialVmId.split('#')[0];
750
896
  if (did === undefined || did === '') {
751
897
  return undefined;
@@ -773,26 +919,71 @@ function resolveBindAnchor({ log, facts, credentialVmId }) {
773
919
  if (!introduced.includes(credentialVmId)) {
774
920
  continue;
775
921
  }
776
- // The bind entry. More than one credential-class member introduced here
777
- // and nothing below can say which addition is whose.
778
- if (introduced.length !== 1) {
779
- return undefined;
780
- }
922
+ // The bind entry.
781
923
  const bind = facts[index];
782
924
  if (bind === undefined) {
783
925
  return undefined;
784
926
  }
927
+ const publishesClient = introducesEnrolledClient({
928
+ doc: doc,
929
+ prevDoc: prevDocBefore,
930
+ did
931
+ });
932
+ // The recovery add-and-retire arm, on the two shapes the continuations
933
+ // write: two credential-class members and no client (the transient
934
+ // continuation), or one member beside a client (the remembered one). The
935
+ // successor key is an anchor only on the first shape, and only when the
936
+ // log attributes it to no enrolled client; on the second it is the
937
+ // client's update key, and only the replacement's hash is read.
938
+ const successorKey = bind.addedKeys[0];
939
+ const handover = successorKey === undefined || introduced.length > 2
940
+ ? undefined
941
+ : resolveHandoverShape({
942
+ facts,
943
+ commitIndex,
944
+ bind,
945
+ index,
946
+ successorKeyMultibase: successorKey,
947
+ successorHash: await deriveNextKeyHash(successorKey),
948
+ retiresCredentialMember: retiredCredentialKeys({ doc, prevDoc: prevDocBefore, did })
949
+ .length > 0
950
+ });
951
+ if (handover !== undefined) {
952
+ const replacementAnchor = handover.replacementHash === undefined
953
+ ? undefined
954
+ : { anchorHash: handover.replacementHash };
955
+ if (introduced.length === 2 && !publishesClient) {
956
+ if (credentialVmId === introduced[0]) {
957
+ return enrolledClientKeys.has(handover.successorKeyMultibase)
958
+ ? undefined
959
+ : { anchorKeyMultibase: handover.successorKeyMultibase };
960
+ }
961
+ return replacementAnchor;
962
+ }
963
+ if (introduced.length === 1 && publishesClient) {
964
+ return replacementAnchor;
965
+ }
966
+ // A handover whose members match neither continuation's shape. The
967
+ // continuation refuses to re-bind a standing credential's own member
968
+ // (`RecoveryCredentialStandingError`), so no emitter writes a
969
+ // one-member transient entry; a log that carries one is refused here
970
+ // rather than have the self-signed-key arm below anchor the
971
+ // replacement on the fresh credential's rung 0.
972
+ return undefined;
973
+ }
974
+ // More than one credential-class member introduced here and nothing
975
+ // below can say which addition is whose.
976
+ if (introduced.length !== 1) {
977
+ return undefined;
978
+ }
785
979
  // The fourth condition: an entry that also publishes an enrolled client
786
980
  // names no credential's rung. The remembered recovery's add-and-retire
787
- // entry is exactly this shape -- the new client's key-agreement method is
981
+ // entry is this shape -- the new client's key-agreement method is
788
982
  // client-marked, so the credential-class count above sees only the
789
983
  // replacement code and the ambiguity guard does not fire, while the one
790
- // key the entry authorizes is the CLIENT's update key.
791
- if (introducesEnrolledClient({
792
- doc: doc,
793
- prevDoc: prevDocBefore,
794
- did
795
- })) {
984
+ // key the entry authorizes is the CLIENT's update key -- and the handover
985
+ // arm above is the only reading of it.
986
+ if (publishesClient) {
796
987
  return undefined;
797
988
  }
798
989
  const revealed = bind.addedKeys[0];
@@ -837,6 +1028,59 @@ async function claimLadderInventory({ log, credentialVmId, maxScan }) {
837
1028
  return undefined;
838
1029
  }
839
1030
  }
1031
+ /**
1032
+ * The committed rung hashes of every standing credential the head document
1033
+ * lists, read off the log alone -- the latent commitments a client removal
1034
+ * must exclude before it attributes the removed client's staged hash. Each
1035
+ * credential-class `keyAgreement` member (an unmarked method, verbatim key or
1036
+ * commitment) is anchored from its bind entry and walked
1037
+ * ({@link attributeLadderInventory}); a credential whose anchor or walk
1038
+ * refuses claims nothing and is named on `unclaimedCredentialVmIds`, so the
1039
+ * caller can tell "no latent hashes stand" from "one credential's could not
1040
+ * be read" rather than treating both as an empty list.
1041
+ *
1042
+ * Read-only and under-claiming by construction: a walk that refuses is
1043
+ * reported, never guessed, and the surviving-client protection is not applied
1044
+ * here (a claimed hash is only ever EXCLUDED from a staged-hash attribution,
1045
+ * so an over-claim can at worst leave the removed client's staged hash to the
1046
+ * positional rule, while an under-claim leaves it to the same rule).
1047
+ *
1048
+ * @param options {object}
1049
+ * @param options.log {DIDLog} a resolved, caller-verified log
1050
+ * @param [options.maxScan] {number} the ladder walk's bound
1051
+ * @returns {Promise<{ hashes: string[], unclaimedCredentialVmIds: string[] }>}
1052
+ * the claimed committed hashes, deduplicated, and the credentials whose
1053
+ * walk refused
1054
+ */
1055
+ export async function standingCredentialLatentHashes({ log, maxScan = LADDER_MAX_SCAN }) {
1056
+ const hashes = new Set();
1057
+ const unclaimedCredentialVmIds = [];
1058
+ if (log.length === 0) {
1059
+ return { hashes: [], unclaimedCredentialVmIds };
1060
+ }
1061
+ const head = log[log.length - 1].state;
1062
+ for (const method of credentialKeyAgreementMethods({
1063
+ doc: head,
1064
+ did: head.id
1065
+ })) {
1066
+ if (method.id === undefined) {
1067
+ continue;
1068
+ }
1069
+ const inventory = await claimLadderInventory({
1070
+ log,
1071
+ credentialVmId: method.id,
1072
+ maxScan
1073
+ });
1074
+ if (inventory === undefined) {
1075
+ unclaimedCredentialVmIds.push(method.id);
1076
+ continue;
1077
+ }
1078
+ for (const hash of inventory.committedHashes) {
1079
+ hashes.add(hash);
1080
+ }
1081
+ }
1082
+ return { hashes: [...hashes], unclaimedCredentialVmIds };
1083
+ }
840
1084
  /**
841
1085
  * The strike a retirement entry ALREADY published, recomputed by re-running
842
1086
  * {@link attributeRetiredCredentialRungs} over the log as it stood just before
@@ -1148,7 +1392,7 @@ export async function attributeLadderInventory({ log, anchorKeyMultibase, anchor
1148
1392
  if (anchorKey === undefined && anchorHash === undefined) {
1149
1393
  const resolved = credentialVmId === undefined
1150
1394
  ? undefined
1151
- : resolveBindAnchor({ log, facts, credentialVmId });
1395
+ : await resolveBindAnchor({ log, facts, commitIndex, credentialVmId });
1152
1396
  if (resolved === undefined) {
1153
1397
  throw new LadderAttributionError('The ladder walk was given no anchor, and the log does not name an ' +
1154
1398
  'unambiguous bind entry for this credential; refusing to ' +
@@ -1168,12 +1412,11 @@ export async function attributeLadderInventory({ log, anchorKeyMultibase, anchor
1168
1412
  const derivedHashes = new Set([anchorHash]);
1169
1413
  const ladderHashes = new Set([anchorHash]);
1170
1414
  if (ladderSeed) {
1171
- for (let index = 0; index < maxScan; index++) {
1172
- const rung = await ladderRung({ ladderSeed, index });
1415
+ const scanned = await deriveLadderRungs({ ladderSeed, maxScan });
1416
+ for (const { rung, hash } of scanned) {
1173
1417
  ladderKeys.add(rung.keyMultibase);
1174
- const rungHash = await deriveNextKeyHash(rung.keyMultibase);
1175
- derivedHashes.add(rungHash);
1176
- ladderHashes.add(rungHash);
1418
+ derivedHashes.add(hash);
1419
+ ladderHashes.add(hash);
1177
1420
  }
1178
1421
  }
1179
1422
  // Without the seed, the anchor alone would hide every entry a spent rung
@@ -1327,9 +1570,21 @@ export async function attributeLadderInventory({ log, anchorKeyMultibase, anchor
1327
1570
  if (origin !== undefined && originFacts !== undefined) {
1328
1571
  const successor = originFacts.addedHashes[origin.at + 1];
1329
1572
  const successorLast = origin.at + 2 === originFacts.addedHashes.length;
1573
+ const retiredSigners = originFacts.signers.filter(signer => removedKeys.includes(signer));
1574
+ // A RESUMED reveal entry -- two additions, the replacement's hash
1575
+ // already committed by an earlier attempt of the same retired
1576
+ // signer -- hands nothing in its last position: that is the
1577
+ // ladder's own next rung ({@link resumedRevealReplacementHashes}).
1578
+ const resumedReveal = origin.at === 0 &&
1579
+ originFacts.addedHashes.length === 2 &&
1580
+ (resumedRevealReplacementHashes({
1581
+ facts,
1582
+ before: origin.entryIndex,
1583
+ retiredSigners
1584
+ })?.length ?? 0) > 0;
1330
1585
  if (successor !== undefined &&
1331
- !successorLast &&
1332
- originFacts.signers.some(signer => removedKeys.includes(signer))) {
1586
+ (!successorLast || resumedReveal) &&
1587
+ retiredSigners.length > 0) {
1333
1588
  pending.claims.unshift(successor);
1334
1589
  ladderHashes.add(successor);
1335
1590
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ladder.js","sourceRoot":"","sources":["../../src/clientAnnex/ladder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ladder.js","sourceRoot":"","sources":["../../src/clientAnnex/ladder.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,WAAW,EACX,WAAW,EACX,2BAA2B,EAC3B,qBAAqB,EAEtB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D;;;;GAIG;AACH,MAAM,WAAW,GAAG,oCAAoC,CAAA;AACxD,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAEvC;;;;;GAKG;AACH,MAAM,cAAc,GAAG,IAAI,CAAA;AAE3B;;;;;;;;;;;GAWG;AACH,MAAM,6BAA6B,GAAG,SAAS,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;AAElC;;;;;;GAMG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAA;IACtC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAClE,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CAAC,EACpB,UAAU,EACV,IAAI,EAIL;IACC,OAAO,IAAI,CACT,MAAM,EACN,UAAU,EACV,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EACrC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAC9B,EAAE,CACH,CAAA;AACH,CAAC;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,UAAU,EACV,KAAK,EAIN;IACC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,YAAY,CAAC;QAClB,UAAU;QACV,IAAI,EAAE,GAAG,uBAAuB,GAAG,KAAK,EAAE;KAC3C,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAC/B,UAAU,EACV,KAAK,EAIN;IACC,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;IAClD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AAC1E,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,iBAAiB,CAAC,EAC/B,UAAU,EACV,OAAO,EAIR;IACC,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAA;IACnE,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,UAAU,EAGX;IACC,OAAO,YAAY,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,UAAU,EAGX;IACC,OAAO,kBAAkB,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;AACnE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,UAAU,EACV,YAAY,EAIb;IACC,OAAO,YAAY,CAAC;QAClB,UAAU;QACV,IAAI,EAAE,GAAG,YAAY,GAAG,6BAA6B,EAAE;KACxD,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,UAAU,EACV,YAAY,EAIb;IACC,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;IAC9D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AACnE,CAAC;AAUD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACxC,UAAU,EACV,SAAS,EACT,OAAO,GAAG,eAAe,EAK1B;IACC,MAAM,QAAQ,GAAiB,EAAE,CAAA;IACjC,MAAM,SAAS,GAAiB,EAAE,CAAA;IAClC,0EAA0E;IAC1E,sDAAsD;IACtD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;IAChE,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;QACrC,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,IAAI,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,sBAAsB,CAC9B,qEAAqE;YACnE,iEAAiE,CACpE,CAAA;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;IAClD,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACpD,CAAC;IACD,MAAM,IAAI,sBAAsB,CAC9B,uEAAuE;QACrE,wEAAwE,CAC3E,CAAA;AACH,CAAC;AAmBD;;;;;;;;;;;;GAYG;AACH,SAAS,YAAY,CAAC,EACpB,KAAK,EACL,UAAU,EAIX;IACC,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,EAAE,KAAK,EAAsC;IACjE,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,kBAAkB,CAAA;QACnC,MAAM,YAAY,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACpE,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,kBAAkB,CAAC,EAC1B,KAAK,EACL,IAAI,EAIL;IACC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QACxC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,0DAA0D;IAC1D,0EAA0E;IAC1E,8EAA8E;IAC9E,wEAAwE;IACxE,cAAc;IACd,OAAO,WAAW,CAChB,KAAK,CAAC,KAAK,CAAC,YAA2D,CACxE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAClB,CAAC;AA2BD;;;;;;;;;;;GAWG;AACH,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAOjC,CAAA;AAEH;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,GAAW;IAKnC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACxC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IAC9C,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAClC,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAGrC,CAAA;AAEH,SAAS,sBAAsB,CAC7B,GAAW;IAEX,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,OAAO,GAAG,wBAAwB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IACjD,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACtC,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,cAAc,CAAC,EACtB,GAAG,EACH,MAAM,EAIP;IAIC,MAAM,KAAK,GAAuB,EAAE,CAAA;IACpC,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAA;IACzD,IAAI,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,IAAI,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1E,MAAM,WAAW,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,MAAM,CAC5C,GAAG,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CACnC,CAAA;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAC5C,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAC9B,CAAA;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACxD,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QAC5D,cAAc,GAAG,iBAAiB,CAAA;QAClC,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;AAC/B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,KAAK,UAAU,mBAAmB,CAAC,EACjC,GAAG,EACH,KAAK,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,OAAO,EAQR;IACC,MAAM,SAAS,GAAyC,EAAE,CAAA;IAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IAChD,IAAI,UAAU,GAAG,UAAU,CAAA;IAC3B,IAAI,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAC1C,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC1C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;YAC7D,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAE,CAAA;QAC7C,IAAI,MAAM,CAAC,EAAE,KAAK,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,mDAAmD;YACnD,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YAC5C,IACE,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAClC,WAAW,KAAK,SAAS;gBACzB,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC1C,CAAC,kBAAkB,CAAC;oBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC7B,IAAI,EAAE,cAAc;iBACrB,CAAC,EACF,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAA;YACjD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;YAC1C,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACpB,UAAU,GAAG,IAAI,CAAA;YACjB,WAAW,GAAG,MAAM,CAAC,UAAU,CAAA;YAC/B,SAAQ;QACV,CAAC;QACD,kDAAkD;QAClD,MAAM,OAAO,GACX,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACpE,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;YAClC,KAAK;YACL,KAAK,EAAE,MAAM,CAAC,UAAU;YACxB,gBAAgB,EAAE,WAAW,CAAC,OAAO;YACrC,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;QACF,IACE,MAAM,KAAK,SAAS;YACpB,CAAC,kBAAkB,CAAC;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC7B,IAAI,EAAE,cAAc;aACrB,CAAC,EACF,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAClD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvB,UAAU,GAAG,OAAO,CAAA;QACpB,WAAW,GAAG,MAAM,CAAC,UAAU,CAAA;IACjC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,cAAc,CAAC,EAC5B,KAAK,EACL,KAAK,EACL,gBAAgB,EAChB,IAAI,EAML;IACC,KAAK,IAAI,UAAU,GAAG,KAAK,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAE,CAAA;QACpC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACvE,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;IACvC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,aAAa,EACb,QAAQ,EAIT;IACC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,uBAAuB,CAC/B,cAAc,QAAQ,iDAAiD;YACrE,oEAAoE,CACvE,CAAA;IACH,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC;AAUD;;;;;;;;;;;;;GAaG;AACH,SAAS,wBAAwB,CAAC,EAChC,GAAG,EACH,OAAO,EACP,GAAG,EAKJ;IACC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAC5E,IACE,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAC3E,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,SAAS,GAAG,CAChB,QAA0C,EAC7B,EAAE;QACf,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,GAAG,EAAE,CAAA;QAClB,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,6BAA6B,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CACvD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CACpB,CACF,CAAA;QACD,OAAO,IAAI,GAAG,CACZ,2BAA2B,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;aAC3C,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;aACxB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACzE,CAAA;IACH,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IACjC,OAAO,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,GAAG,EACH,cAAc,EAIf;IACC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACpD,OAAO,iBAAiB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAA;AACvE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,KAAK,UAAU,mCAAmC,CAAC,EACxD,GAAG,EACH,cAAc,EACd,kBAAkB,EAClB,UAAU,EAMX;IACC,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpC,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,QAAQ,GACZ,UAAU;QACV,CAAC,kBAAkB,KAAK,SAAS;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAClD,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,IAAI,OAAyC,CAAA;IAC7C,IAAI,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IACvC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,KAKL,CAAA;QACb,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,SAAQ;QACV,CAAC;QACD,MAAM,cAAc,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1E,MAAM,UAAU,GAAG,wBAAwB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;QAClE,OAAO,GAAG,GAAG,CAAA;QACb,eAAe,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAA;QACzC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QACzB,MAAM,aAAa,GACjB,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC;YACnC,UAAU,CAAC,MAAM,KAAK,CAAC;YACvB,CAAC,QAAQ,KAAK,SAAS;gBACrB,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;YAClD,CAAC,kBAAkB,KAAK,SAAS;gBAC/B,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,CAAC,CAAA;QAC5D,IAAI,aAAa,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAS,8BAA8B,CAAC,EACtC,KAAK,EACL,MAAM,EACN,cAAc,EAKf;IACC,MAAM,iBAAiB,GAAa,EAAE,CAAA;IACtC,KAAK,IAAI,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAE,CAAA;QAC7B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/D,SAAQ;QACV,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,SAAQ;QACV,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,SAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,IAAI,EACJ,KAAK,EACL,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EASxB;IACC,IACE,CAAC,uBAAuB;QACxB,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAC3B,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAC7C,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,0EAA0E;IAC1E,0EAA0E;IAC1E,sBAAsB;IACtB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC7C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,KAAK,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAE,CAAA;IACxC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACpD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAClC,CAAA;IACD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,KAAK,IAAI,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;QACrE,IAAI,KAAK,CAAC,OAAO,CAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACtE,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GACX,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAC7B,CAAC,CAAC,8BAA8B,CAAC;YAC7B,KAAK;YACL,MAAM,EAAE,MAAM,CAAC,UAAU;YACzB,cAAc;SACf,CAAC;QACJ,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,eAAe,GACnB,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAC7B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC;YACrB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC,CAAC,SAAS,CAAA;IACjB,OAAO;QACL,qBAAqB;QACrB,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAA;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,iBAAiB,CAAC,EAC/B,GAAG,EACH,KAAK,EACL,WAAW,EACX,cAAc,EAMf;IACC,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,0CAA0C;IAC1C,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACnD,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,KAAK,SAAS,CAAC,EAAE,CAAC;QAC5E,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAChC,eAAe;SACZ,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC;SACxC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CACrD,CAAA;IACD,IAAI,OAAyC,CAAA;IAC7C,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAyC,CAAA;QAC3D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,SAAQ;QACV,CAAC;QACD,MAAM,UAAU,GAAG,wBAAwB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;QAClE,MAAM,aAAa,GAAG,OAA0C,CAAA;QAChE,OAAO,GAAG,GAAG,CAAA;QACb,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,SAAQ;QACV,CAAC;QACD,kBAAkB;QAClB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,eAAe,GAAG,wBAAwB,CAAC;YAC/C,GAAG,EAAE,GAA0B;YAC/B,OAAO,EAAE,aAAa;YACtB,GAAG;SACJ,CAAC,CAAA;QACF,uEAAuE;QACvE,mEAAmE;QACnE,yEAAyE;QACzE,wEAAwE;QACxE,mEAAmE;QACnE,gEAAgE;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,QAAQ,GACZ,YAAY,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YACjD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,oBAAoB,CAAC;gBACnB,KAAK;gBACL,WAAW;gBACX,IAAI;gBACJ,KAAK;gBACL,qBAAqB,EAAE,YAAY;gBACnC,aAAa,EAAE,MAAM,iBAAiB,CAAC,YAAY,CAAC;gBACpD,uBAAuB,EACrB,qBAAqB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;qBACxD,MAAM,GAAG,CAAC;aAChB,CAAC,CAAA;QACR,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,iBAAiB,GACrB,QAAQ,CAAC,eAAe,KAAK,SAAS;gBACpC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAA;YAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChD,IAAI,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrC,OAAO,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;wBAC3D,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,EAAE,kBAAkB,EAAE,QAAQ,CAAC,qBAAqB,EAAE,CAAA;gBAC5D,CAAC;gBACD,OAAO,iBAAiB,CAAA;YAC1B,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC;gBAC/C,OAAO,iBAAiB,CAAA;YAC1B,CAAC;YACD,mEAAmE;YACnE,qEAAqE;YACrE,8DAA8D;YAC9D,qEAAqE;YACrE,4DAA4D;YAC5D,gDAAgD;YAChD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,oEAAoE;QACpE,yCAAyC;QACzC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,wEAAwE;QACxE,uEAAuE;QACvE,kEAAkE;QAClE,mEAAmE;QACnE,wEAAwE;QACxE,0EAA0E;QAC1E,uCAAuC;QACvC,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAClC,IACE,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAC3B,QAAQ,KAAK,SAAS;YACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC/B,wEAAwE;YACxE,sEAAsE;YACtE,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EACjC,CAAC;YACD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAA;QACzC,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjE,oEAAoE;YACpE,sEAAsE;YACtE,mBAAmB;YACnB,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,EAAE,CAAA;QAC7C,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,oBAAoB,CAAC,EAClC,GAAG,EACH,cAAc,EACd,OAAO,EAKR;IACC,IAAI,CAAC;QACH,OAAO,MAAM,wBAAwB,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAA;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;QAC5D,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,EACnD,GAAG,EACH,OAAO,GAAG,eAAe,EAI1B;IACC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,MAAM,wBAAwB,GAAa,EAAE,CAAA;IAC7C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,wBAAwB,EAAE,CAAA;IACjD,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,KAEjC,CAAA;IACD,KAAK,MAAM,MAAM,IAAI,6BAA6B,CAAC;QACjD,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,IAAI,CAAC,EAAE;KACb,CAAC,EAAE,CAAC;QACH,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAQ;QACV,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC;YAC3C,GAAG;YACH,cAAc,EAAE,MAAM,CAAC,EAAE;YACzB,OAAO;SACR,CAAC,CAAA;QACF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACxC,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,wBAAwB,EAAE,CAAA;AAC1D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,EACpD,GAAG,EACH,sBAAsB,EACtB,eAAe,EACf,eAAe,GAAG,EAAE,EACpB,aAAa,GAAG,EAAE,EAClB,OAAO,GAAG,eAAe,EAQ1B;IAKC,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC1C,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAClD,CAAA;IACD,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,4CACE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBACxC,eAAe,sBAAsB,iCAAiC,CACvE,CAAA;IACH,CAAC;IACD,OAAO,+BAA+B,CAAC;QACrC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;QAC7B,eAAe;QACf,eAAe;QACf,aAAa;QACb,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,EACpD,GAAG,EACH,eAAe,EACf,eAAe,GAAG,EAAE,EACpB,aAAa,GAAG,EAAE,EAClB,OAAO,GAAG,eAAe,EAO1B;IAKC,0EAA0E;IAC1E,6DAA6D;IAC7D,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+C,CAAA;IACrE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;IACvC,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC;YAC3C,GAAG;YACH,cAAc;YACd,OAAO;SACR,CAAC,CAAA;QACF,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QACrC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,eAAe,IAAI,EAAE,EAAE,CAAC;YACpD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,kEAAkE;IAClE,MAAM,SAAS,GAAG,MAAM,4BAA4B,CAAC;QACnD,GAAG;QACH,YAAY,EAAE,eAAe;QAC7B,iBAAiB,EAAE,CAAC,GAAG,aAAa,CAAC;KACtC,CAAC,CAAA;IACF,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CACT,iEAAiE;YAC/D,iEAAiE,EACnE,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,CACjC,CAAA;QACD,OAAO;YACL,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE;YACd,wBAAwB,EAAE,CAAC,GAAG,eAAe,CAAC;SAC/C,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IACpC,MAAM,wBAAwB,GAAa,EAAE,CAAA;IAC7C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAC5C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,wBAAwB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC7C,SAAQ;QACV,CAAC;QACD,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YAC7C,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAA;gBACf,SAAQ;YACV,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACtB,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YACzC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,QAAQ,GAAG,IAAI,CAAA;gBACf,SAAQ;YACV,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACnB,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC;QACD,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,wBAAwB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IACD,OAAO;QACL,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC;QAC/B,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC;QAC3B,wBAAwB;KACzB,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC7C,GAAG,EACH,kBAAkB,EAClB,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EACV,cAAc,EACd,OAAO,GAAG,eAAe,EAQ1B;IACC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC5D,4EAA4E;IAC5E,6EAA6E;IAC7E,6DAA6D;IAC7D,IAAI,SAAS,GAAG,kBAAkB,CAAA;IAClC,IAAI,UAAU,GAAG,kBAAkB,CAAA;IACnC,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,QAAQ,GACZ,cAAc,KAAK,SAAS;YAC1B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,iBAAiB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAA;QAC1E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,sBAAsB,CAC9B,oEAAoE;gBAClE,0DAA0D;gBAC1D,iCAAiC,CACpC,CAAA;QACH,CAAC;QACD,SAAS,GAAG,QAAQ,CAAC,kBAAkB,CAAA;QACvC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IAClC,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,UAAU,GAAG,MAAM,iBAAiB,CAAC,SAAU,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9E,wEAAwE;IACxE,sEAAsE;IACtE,qEAAqE;IACrE,8CAA8C;IAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IACnD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IAClD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;QAChE,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;YACrC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACjC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACvB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,CAAC,UAAU,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;YACxC,GAAG;YACH,KAAK;YACL,WAAW;YACX,UAAU;YACV,cAAc;YACd,OAAO;SACR,CAAC,CAAA;QACF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACxB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,OAAsD,CAAA;IAC1D,IAAI,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,4EAA4E;IAC5E,sEAAsE;IACtE,yEAAyE;IACzE,qDAAqD;IACrD,IAAI,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IACvC,IAAI,YAA8C,CAAA;IAClD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAmB,CAAA;IACjD,yEAAyE;IACzE,8DAA8D;IAC9D,qEAAqE;IACrE,wBAAwB;IACxB,MAAM,aAAa,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACnD,uEAAuE;QACvE,0EAA0E;QAC1E,yEAAyE;QACzE,wBAAwB;QACxB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAE,CAAA;QAE7D,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,aAAa;QACb,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,KAKhB,CAAA;QACb,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACrE,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1E,MAAM,UAAU,GACd,aAAa,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YACnD,CAAC,CAAC,wBAAwB,CAAC;gBACvB,GAAG,EAAE,QAAQ;gBACb,OAAO,EAAE,YAAY;gBACrB,GAAG,EAAE,aAAa;aACnB,CAAC;YACJ,CAAC,CAAC,EAAE,CAAA;QACR,uEAAuE;QACvE,0EAA0E;QAC1E,uEAAuE;QACvE,wEAAwE;QACxE,cAAc;QACd,MAAM,eAAe,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAC/C,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAC1C,CAAA;QACD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAA;QAClE,+DAA+D;QAC/D,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,qEAAqE;QACrE,mEAAmE;QACnE,WAAW;QACX,MAAM,wBAAwB,GAC5B,mBAAmB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC,CAAA;QAErE,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,+CAA+C;QAC/C,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;YACrC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC/D,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;oBACd,SAAQ;gBACV,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAE,CAAC,CAAA;gBACpC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;gBACrC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBACzB,CAAC;gBACD,MAAK;YACP,CAAC;YACD,mEAAmE;YACnE,iEAAiE;YACjE,uEAAuE;YACvE,sEAAsE;YACtE,oEAAoE;YACpE,wEAAwE;YACxE,uEAAuE;YACvE,oBAAoB;YACpB,MAAM,MAAM,GAAG,kBAAkB,CAAC;gBAChC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC;gBACjB,IAAI,EAAE,cAAc;aACrB,CAAC,CAAA;YACF,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBAClE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;YACD,OAAO,GAAG,SAAS,CAAA;QACrB,CAAC;QAED,yEAAyE;QACzE,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IACE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;gBACnB,YAAY,CAAC,GAAG,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAC9C,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,sBAAsB,CAC9B,iEAAiE;gBAC/D,mDAAmD,CACtD,CAAA;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;YACvB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACnB,OAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE,CAAA;YAC3C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;YACD,uEAAuE;YACvE,mEAAmE;YACnE,mEAAmE;YACnE,mEAAmE;YACnE,2DAA2D;YAC3D,sEAAsE;YACtE,qEAAqE;YACrE,sEAAsE;YACtE,qEAAqE;YACrE,wEAAwE;YACxE,qEAAqE;YACrE,yDAAyD;YACzD,kEAAkE;YAClE,wEAAwE;YACxE,oEAAoE;YACpE,qEAAqE;YACrE,mEAAmE;YACnE,8CAA8C;YAC9C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;YAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;gBACpC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAS,CAAA;YACb,MAAM,WAAW,GACf,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC7D,IAAI,MAAM,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBACtD,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;gBACxD,MAAM,aAAa,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,WAAW,CAAC,WAAW,CAAC,MAAM,CAAA;gBACtE,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACzD,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC7B,CAAA;gBACD,kEAAkE;gBAClE,8DAA8D;gBAC9D,4DAA4D;gBAC5D,mEAAmE;gBACnE,MAAM,aAAa,GACjB,MAAM,CAAC,EAAE,KAAK,CAAC;oBACf,WAAW,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;oBACpC,CAAC,8BAA8B,CAAC;wBAC9B,KAAK;wBACL,MAAM,EAAE,MAAM,CAAC,UAAU;wBACzB,cAAc;qBACf,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBACtB,IACE,SAAS,KAAK,SAAS;oBACvB,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC;oBACjC,cAAc,CAAC,MAAM,GAAG,CAAC,EACzB,CAAC;oBACD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;oBACjC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IACL,OAAO;YACP,CAAC,wBAAwB;YACzB,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,EAC/C,CAAC;YACD,qEAAqE;YACrE,iEAAiE;YACjE,UAAU;YACV,mEAAmE;YACnE,qEAAqE;YACrE,oEAAoE;YACpE,uEAAuE;YACvE,2CAA2C;YAC3C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAA;YACnC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,uEAAuE;QACvE,sEAAsE;QACtE,eAAe;QACf,wEAAwE;QACxE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,YAAY,GAChB,cAAc,KAAK,SAAS;YAC5B,QAAQ,CAAC,MAAM,KAAK,CAAC;YACrB,UAAU,CAAC,MAAM,KAAK,CAAC;YACvB,UAAU,CAAC,CAAC,CAAC,KAAK,cAAc,CAAA;QAClC,uEAAuE;QACvE,0EAA0E;QAC1E,0EAA0E;QAC1E,sEAAsE;QACtE,kEAAkE;QAClE,wEAAwE;QACxE,wEAAwE;QACxE,2DAA2D;QAC3D,MAAM,iBAAiB,GACrB,cAAc,KAAK,SAAS;YAC5B,QAAQ,CAAC,MAAM,KAAK,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjD,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC,CAAA;QAC/C,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,wEAAwE;QACxE,wEAAwE;QACxE,wEAAwE;QACxE,yEAAyE;QACzE,0DAA0D;QAC1D,EAAE;QACF,yEAAyE;QACzE,kEAAkE;QAClE,oEAAoE;QACpE,yEAAyE;QACzE,+DAA+D;QAC/D,oEAAoE;QACpE,kEAAkE;QAClE,yEAAyE;QACzE,oEAAoE;QACpE,MAAM,aAAa,GACjB,QAAQ,CAAC,MAAM,KAAK,CAAC;YACrB,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;YAC/C,CAAC,mBAAmB;YACpB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBACtB,CAAC,cAAc,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;QAC1E,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,cAAc,CAAC,GAAG,CAChB,IAAI,EACJ,YAAY,IAAI,iBAAiB,IAAI,aAAa,CACnD,CAAA;QACH,CAAC;QACD,eAAe,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAA;QACzC,YAAY,GAAG,QAAQ,CAAA;QAEvB,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC3C,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjE,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3E,WAAW,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,MAAM,CACtC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAC1C;KACF,CAAA;AACH,CAAC"}