@bananapus/nana-sdk-core 2.24.5 → 2.25.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 (71) hide show
  1. package/dist/cjs/jbcenter/publish.d.ts +6 -5
  2. package/dist/cjs/jbcenter/publish.d.ts.map +1 -1
  3. package/dist/cjs/jbcenter/publish.js +37 -18
  4. package/dist/cjs/jbcenter/publish.js.map +1 -1
  5. package/dist/cjs/jbcenter/rateLimit.d.ts +12 -2
  6. package/dist/cjs/jbcenter/rateLimit.d.ts.map +1 -1
  7. package/dist/cjs/jbcenter/rateLimit.js +20 -3
  8. package/dist/cjs/jbcenter/rateLimit.js.map +1 -1
  9. package/dist/cjs/jbcenter.d.ts +1 -1
  10. package/dist/cjs/jbcenter.d.ts.map +1 -1
  11. package/dist/cjs/jbcenter.js +2 -1
  12. package/dist/cjs/jbcenter.js.map +1 -1
  13. package/dist/cjs/review/contractWrite.d.ts +3 -1
  14. package/dist/cjs/review/contractWrite.d.ts.map +1 -1
  15. package/dist/cjs/review/contractWrite.js +13 -11
  16. package/dist/cjs/review/contractWrite.js.map +1 -1
  17. package/dist/cjs/review/index.d.ts +1 -0
  18. package/dist/cjs/review/index.d.ts.map +1 -1
  19. package/dist/cjs/review/index.js +1 -0
  20. package/dist/cjs/review/index.js.map +1 -1
  21. package/dist/cjs/review/relayr.d.ts +32 -5
  22. package/dist/cjs/review/relayr.d.ts.map +1 -1
  23. package/dist/cjs/review/relayr.js +65 -13
  24. package/dist/cjs/review/relayr.js.map +1 -1
  25. package/dist/cjs/review/safeRelayr.d.ts.map +1 -1
  26. package/dist/cjs/review/safeRelayr.js +4 -2
  27. package/dist/cjs/review/safeRelayr.js.map +1 -1
  28. package/dist/cjs/review/transaction-message.d.ts +3 -0
  29. package/dist/cjs/review/transaction-message.d.ts.map +1 -0
  30. package/dist/cjs/review/transaction-message.js +19 -0
  31. package/dist/cjs/review/transaction-message.js.map +1 -0
  32. package/dist/cjs/safeService.d.ts +152 -1
  33. package/dist/cjs/safeService.d.ts.map +1 -1
  34. package/dist/cjs/safeService.js +325 -1
  35. package/dist/cjs/safeService.js.map +1 -1
  36. package/dist/esm/jbcenter/publish.d.ts +6 -5
  37. package/dist/esm/jbcenter/publish.d.ts.map +1 -1
  38. package/dist/esm/jbcenter/publish.js +37 -18
  39. package/dist/esm/jbcenter/publish.js.map +1 -1
  40. package/dist/esm/jbcenter/rateLimit.d.ts +12 -2
  41. package/dist/esm/jbcenter/rateLimit.d.ts.map +1 -1
  42. package/dist/esm/jbcenter/rateLimit.js +19 -3
  43. package/dist/esm/jbcenter/rateLimit.js.map +1 -1
  44. package/dist/esm/jbcenter.d.ts +1 -1
  45. package/dist/esm/jbcenter.d.ts.map +1 -1
  46. package/dist/esm/jbcenter.js +1 -1
  47. package/dist/esm/jbcenter.js.map +1 -1
  48. package/dist/esm/review/contractWrite.d.ts +3 -1
  49. package/dist/esm/review/contractWrite.d.ts.map +1 -1
  50. package/dist/esm/review/contractWrite.js +13 -11
  51. package/dist/esm/review/contractWrite.js.map +1 -1
  52. package/dist/esm/review/index.d.ts +1 -0
  53. package/dist/esm/review/index.d.ts.map +1 -1
  54. package/dist/esm/review/index.js +1 -0
  55. package/dist/esm/review/index.js.map +1 -1
  56. package/dist/esm/review/relayr.d.ts +32 -5
  57. package/dist/esm/review/relayr.d.ts.map +1 -1
  58. package/dist/esm/review/relayr.js +61 -12
  59. package/dist/esm/review/relayr.js.map +1 -1
  60. package/dist/esm/review/safeRelayr.d.ts.map +1 -1
  61. package/dist/esm/review/safeRelayr.js +5 -3
  62. package/dist/esm/review/safeRelayr.js.map +1 -1
  63. package/dist/esm/review/transaction-message.d.ts +3 -0
  64. package/dist/esm/review/transaction-message.d.ts.map +1 -0
  65. package/dist/esm/review/transaction-message.js +16 -0
  66. package/dist/esm/review/transaction-message.js.map +1 -0
  67. package/dist/esm/safeService.d.ts +152 -1
  68. package/dist/esm/safeService.d.ts.map +1 -1
  69. package/dist/esm/safeService.js +314 -2
  70. package/dist/esm/safeService.js.map +1 -1
  71. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SAFE_SERVICE_MAX_RETRY_WAIT_MS = exports.SAFE_EXEC_ABI = exports.SAFE_TX_TYPES = exports.SAFE_NONCE_GUIDANCE = exports.SAFE_SERVICE_PREFIX = exports.SAFE_PREFIX = void 0;
3
+ exports.SAFE_SERVICE_MAX_RETRY_WAIT_MS = exports.SAFE_PROPOSAL_AWAITING = exports.SAFE_PROPOSAL_UNCONFIRMED = exports.SAFE_EXEC_ABI = exports.SAFE_TX_TYPES = exports.SAFE_NONCE_GUIDANCE = exports.SAFE_SERVICE_PREFIX = exports.SAFE_PREFIX = void 0;
4
4
  exports.safeServiceBase = safeServiceBase;
5
5
  exports.swapDeadline = swapDeadline;
6
6
  exports.safeQueueUrl = safeQueueUrl;
@@ -11,6 +11,18 @@ exports.safeTransactionHash = safeTransactionHash;
11
11
  exports.canonicalSafeTxHash = canonicalSafeTxHash;
12
12
  exports.safeExecutionResult = safeExecutionResult;
13
13
  exports.requireSafeExecutionSuccess = requireSafeExecutionSuccess;
14
+ exports.safeTransactionRunsCalls = safeTransactionRunsCalls;
15
+ exports.safeExecutionRunsCalls = safeExecutionRunsCalls;
16
+ exports.readSafeAppExecution = readSafeAppExecution;
17
+ exports.requireSafeProposalSuccess = requireSafeProposalSuccess;
18
+ exports.heldCall = heldCall;
19
+ exports.stampedDeadline = stampedDeadline;
20
+ exports.findPendingSafeAppProposal = findPendingSafeAppProposal;
21
+ exports.lookAtSafeProposal = lookAtSafeProposal;
22
+ exports.watchSafeProposal = watchSafeProposal;
23
+ exports.atOnceExecution = atOnceExecution;
24
+ exports.chainAnswer = chainAnswer;
25
+ exports.reportedSafeExecution = reportedSafeExecution;
14
26
  exports.usableSafeConfirmations = usableSafeConfirmations;
15
27
  exports.safeExecutionSignatures = safeExecutionSignatures;
16
28
  exports.safeExecutionArgs = safeExecutionArgs;
@@ -560,6 +572,318 @@ function requireSafeExecutionSuccess(receipt, safe, hash) {
560
572
  }
561
573
  throw new Error(result.reason);
562
574
  }
575
+ /** What a Safe app flow says when it cannot confirm its proposal ran. */
576
+ exports.SAFE_PROPOSAL_UNCONFIRMED = "Safe proposal submitted, but confirmation is unavailable. Check Safe before taking another action.";
577
+ /** What a Safe app flow says while its proposal waits for the Safe's other signers. */
578
+ exports.SAFE_PROPOSAL_AWAITING = "Proposed to your Safe. Its other signers can approve it there.";
579
+ /**
580
+ * Whether the Safe transaction runs exactly the reviewed calls: one CALL,
581
+ * or, when `batch` permits it, a zero-value MultiSendCallOnly DELEGATECALL
582
+ * running every call in order. Persisted decimal values compare in wei.
583
+ */
584
+ function safeTransactionRunsCalls(tx, calls, batch = true) {
585
+ if (calls.length === 1 && tx.operation === 0 && sameCall(calls[0], tx))
586
+ return true;
587
+ if (!batch || tx.value !== 0n)
588
+ return false;
589
+ const inner = (0, safe_js_1.multiSendCallsOf)(tx);
590
+ return (!!inner &&
591
+ inner.length === calls.length &&
592
+ inner.every((call, index) => sameCall(calls[index], call)));
593
+ }
594
+ /** Whether a transaction calls `safe`'s execTransaction of exactly the reviewed calls. */
595
+ function safeExecutionRunsCalls(transaction, safe, calls, batch = true) {
596
+ if (!transaction.to ||
597
+ !transaction.input ||
598
+ !(0, viem_1.isAddressEqual)(transaction.to, safe))
599
+ return false;
600
+ let decoded;
601
+ try {
602
+ decoded = (0, viem_1.decodeFunctionData)({
603
+ abi: exports.SAFE_EXEC_ABI,
604
+ data: transaction.input,
605
+ });
606
+ }
607
+ catch {
608
+ return false;
609
+ }
610
+ if (decoded.functionName !== "execTransaction")
611
+ return false;
612
+ const [to, value, data, operation] = decoded.args;
613
+ return safeTransactionRunsCalls({ to, value, data, operation }, calls, batch);
614
+ }
615
+ /**
616
+ * What the execution's receipt proves about the proposal a Safe app returned
617
+ * ({@link safeExecutionResult}). When Safe{Wallet} executed it at once, the
618
+ * reply is the execution's own hash and the SDK takes the Safe's one
619
+ * execution event in that receipt whatever its safeTxHash, so the execution
620
+ * must also be the Safe's execTransaction of exactly the reviewed calls, or
621
+ * the result is unproven.
622
+ */
623
+ async function readSafeAppExecution({ client, receipt, safe, proposalHash, calls, batch = true, }) {
624
+ const result = safeExecutionResult(receipt, safe, proposalHash);
625
+ const atOnce = typeof receipt.transactionHash === "string" &&
626
+ receipt.transactionHash.toLowerCase() === proposalHash.toLowerCase();
627
+ if (!atOnce || (result.status !== "success" && result.status !== "failed")) {
628
+ return result;
629
+ }
630
+ const transaction = await client
631
+ .getTransaction({ hash: proposalHash })
632
+ .catch(() => null);
633
+ return transaction && safeExecutionRunsCalls(transaction, safe, calls, batch)
634
+ ? result
635
+ : {
636
+ status: "unproven",
637
+ reason: `Transaction ${proposalHash} is not Safe ${safe}'s execution of the reviewed call.`,
638
+ };
639
+ }
640
+ /**
641
+ * Throws unless the execution proves the Safe ran the reviewed proposal and
642
+ * its call succeeded ({@link readSafeAppExecution}): `failure` when the Safe
643
+ * ran it and it failed, and SAFE_PROPOSAL_UNCONFIRMED when it does not show
644
+ * this proposal ran.
645
+ */
646
+ async function requireSafeProposalSuccess(execution, failure) {
647
+ const { status } = await readSafeAppExecution(execution);
648
+ if (status === "unproven")
649
+ throw new Error(exports.SAFE_PROPOSAL_UNCONFIRMED);
650
+ if (status !== "success")
651
+ throw new Error(failure);
652
+ }
653
+ /**
654
+ * The calls this app stamps with a field at send time, by selector: the
655
+ * stamp's argument, and whether the contract refuses the call once the chain
656
+ * passes it. Universal Router's `execute` and PositionManager's
657
+ * `modifyLiquidities` check a deadline; the expiration Permit2's `approve`
658
+ * sets only bounds the allowance it grants.
659
+ */
660
+ const STAMPED_CALLS = {
661
+ // execute(bytes commands, bytes[] inputs, uint256 deadline)
662
+ "0x3593564c": {
663
+ params: [{ type: "bytes" }, { type: "bytes[]" }, { type: "uint256" }],
664
+ stamp: 2,
665
+ reverts: true,
666
+ },
667
+ // modifyLiquidities(bytes unlockData, uint256 deadline)
668
+ "0xdd46508f": {
669
+ params: [{ type: "bytes" }, { type: "uint256" }],
670
+ stamp: 1,
671
+ reverts: true,
672
+ },
673
+ // approve(address token, address spender, uint160 amount, uint48 expiration)
674
+ "0x87517c45": {
675
+ params: [
676
+ { type: "address" },
677
+ { type: "address" },
678
+ { type: "uint160" },
679
+ { type: "uint48" },
680
+ ],
681
+ stamp: 3,
682
+ reverts: false,
683
+ },
684
+ };
685
+ /** A stamped call's shape and arguments, when its data is exactly their ABI encoding. */
686
+ function stampedArgs(call) {
687
+ const shape = STAMPED_CALLS[call.data.slice(0, 10).toLowerCase()];
688
+ if (!shape)
689
+ return null;
690
+ const encoded = `0x${call.data.slice(10)}`;
691
+ try {
692
+ const args = (0, viem_1.decodeAbiParameters)(shape.params, encoded);
693
+ // Any other encoding of the same arguments is held exactly as sent.
694
+ return (0, viem_1.encodeAbiParameters)(shape.params, args).toLowerCase() ===
695
+ encoded.toLowerCase()
696
+ ? { shape, args }
697
+ : null;
698
+ }
699
+ catch {
700
+ return null;
701
+ }
702
+ }
703
+ /**
704
+ * The call a Safe proposal of `call` holds: `call` with the field it is
705
+ * stamped with at send time zeroed, so the same action sent again with a later
706
+ * stamp is the action the proposal already holds. Any other call is held
707
+ * exactly as sent.
708
+ */
709
+ function heldCall(call) {
710
+ const stamped = stampedArgs(call);
711
+ if (!stamped)
712
+ return call;
713
+ const args = [...stamped.args];
714
+ args[stamped.shape.stamp] = 0n;
715
+ return {
716
+ ...call,
717
+ data: `${call.data.slice(0, 10)}${(0, viem_1.encodeAbiParameters)(stamped.shape.params, args).slice(2)}`,
718
+ };
719
+ }
720
+ /** The deadline after which the contract refuses `call`, or null for a call without one. */
721
+ function stampedDeadline(call) {
722
+ const stamped = stampedArgs(call);
723
+ return stamped?.shape.reverts
724
+ ? BigInt(stamped.args[stamped.shape.stamp])
725
+ : null;
726
+ }
727
+ function sameCall(a, b) {
728
+ return ((0, viem_1.isAddressEqual)(a.to, b.to) &&
729
+ BigInt(a.value ?? 0n) === BigInt(b.value ?? 0n) &&
730
+ a.data.toLowerCase() === b.data.toLowerCase());
731
+ }
732
+ /** A Safe app proposal's one call, or null for any other Safe transaction. */
733
+ function proposedCall(tx) {
734
+ // Both callers have authenticated the record through the service reader.
735
+ const { to, data, value } = safeTransactionMessage(tx);
736
+ // A zero-refund CALL, as a Safe app proposes it.
737
+ return safeTransactionMatchesCall(tx, { to, data, value })
738
+ ? { to, data, value }
739
+ : null;
740
+ }
741
+ /**
742
+ * A pending proposal of the action `call` makes in `safe`'s queue (its
743
+ * service record, its safeTxHash and the call it runs), read from Safe's
744
+ * service from the Safe's nonce in the latest block, or null: a Safe app
745
+ * never proposes an action that is already queued, whoever queued it,
746
+ * whatever its stamp ({@link heldCall}). A queued call the contract refuses
747
+ * once its deadline passed is passed over when that block is past the
748
+ * deadline: it can no longer run. Throws when the block, the nonce or the
749
+ * queue can't be read.
750
+ */
751
+ async function findPendingSafeAppProposal(client, chainId, safe, call, service) {
752
+ // One block's view: its time, and the Safe's nonce in it. A proposal listed
753
+ // from that nonce had not run by that block, so a deadline already past then
754
+ // proves it never will.
755
+ const block = await client.getBlock();
756
+ const nonce = await (0, safe_js_1.readBoundedSafeNonce)(client, safe, {
757
+ blockNumber: block.number ?? undefined,
758
+ }).catch(() => null);
759
+ if (nonce === null || nonce > BigInt(Number.MAX_SAFE_INTEGER)) {
760
+ throw new Error("Could not read the Safe nonce.");
761
+ }
762
+ const held = heldCall(call);
763
+ const queued = (await listPendingSafeTransactions(chainId, safe, Number(nonce), service)).flatMap((tx) => {
764
+ const proposed = proposedCall(tx);
765
+ return proposed && sameCall(heldCall(proposed), held)
766
+ ? [{ tx, call: proposed, deadline: stampedDeadline(proposed) }]
767
+ : [];
768
+ });
769
+ const live = queued.find(({ deadline }) => deadline === null || deadline >= block.timestamp);
770
+ return live
771
+ ? {
772
+ tx: live.tx,
773
+ proposalHash: canonicalSafeTxHash(chainId, safe, live.tx),
774
+ call: live.call,
775
+ }
776
+ : null;
777
+ }
778
+ /**
779
+ * One look at `safe`'s proposal `proposalHash`: the latest block, the Safe's
780
+ * nonce in that block, and Safe's authenticated record of the proposal. A read
781
+ * that fails makes the look live.
782
+ */
783
+ async function lookAtSafeProposal(client, chainId, safe, proposalHash, service) {
784
+ try {
785
+ const block = await client.getBlock();
786
+ const nonce = await (0, safe_js_1.readBoundedSafeNonce)(client, safe, {
787
+ blockNumber: block.number ?? undefined,
788
+ });
789
+ const record = await readSafeTransaction(chainId, safe, proposalHash, service);
790
+ if (nonce === null || record.isExecuted)
791
+ return "live";
792
+ if (nonce > safeTransactionMessage(record).nonce)
793
+ return "passed";
794
+ const call = proposedCall(record);
795
+ const deadline = call && stampedDeadline(call);
796
+ return deadline !== null && block.timestamp > deadline ? "expired" : "live";
797
+ }
798
+ catch {
799
+ return "live";
800
+ }
801
+ }
802
+ /** A watch looks at its proposal once a minute, so it reads the Safe's nonce at most that often. */
803
+ const SAFE_LOOK_MS = 60_000;
804
+ /** How long looks in a row must find the Safe past a proposal before it counts as replaced. */
805
+ const SAFE_REPLACED_AFTER_MS = 10 * 60_000;
806
+ /**
807
+ * Watches a proposal awaiting its signers, one {@link lookAtSafeProposal} a
808
+ * minute, until `signal` aborts. It ends `expired` at the first look that
809
+ * finds it expired, and `replaced` once looks in a row have found it passed
810
+ * for ten minutes: one such look proves nothing, since Safe's service may list
811
+ * the proposal's own execution later. Any other look starts that count again.
812
+ */
813
+ async function watchSafeProposal(client, chainId, safe, proposalHash, signal, service) {
814
+ let passedSince = null;
815
+ for (;;) {
816
+ await (0, pause_js_1.pause)(SAFE_LOOK_MS, signal, waitAborted);
817
+ const look = await lookAtSafeProposal(client, chainId, safe, proposalHash, service);
818
+ if (look === "expired")
819
+ return look;
820
+ passedSince = look === "passed" ? (passedSince ?? Date.now()) : null;
821
+ if (passedSince !== null &&
822
+ Date.now() - passedSince >= SAFE_REPLACED_AFTER_MS)
823
+ return "replaced";
824
+ }
825
+ }
826
+ /** Looks at the chain for an execution returned at once, and the pause between them. */
827
+ const AT_ONCE_LOOKS = 5;
828
+ const AT_ONCE_LOOK_MS = 2_000;
829
+ /**
830
+ * The transaction `hash` names on the chain, or null: Safe{Wallet} replies
831
+ * with the execution's own hash when the owner executes at once, and the node
832
+ * may learn it a moment later. It looks up to 5 times, 2 seconds apart (8
833
+ * seconds at most), before the reply counts as a proposal.
834
+ */
835
+ async function atOnceExecution(client, hash) {
836
+ for (let look = 1; look <= AT_ONCE_LOOKS; look += 1) {
837
+ try {
838
+ return await client.getTransaction({ hash });
839
+ }
840
+ catch {
841
+ if (look < AT_ONCE_LOOKS) {
842
+ await (0, pause_js_1.pause)(AT_ONCE_LOOK_MS, undefined, waitAborted);
843
+ }
844
+ }
845
+ }
846
+ return null;
847
+ }
848
+ /**
849
+ * The chain's last word before a proposal ends unproven: what `read` returns,
850
+ * or null when the chain says there is none (viem's transaction or receipt
851
+ * not-found). A node that can't answer says nothing, so it is asked again a
852
+ * minute later, for as long as it takes, with `onRetry` called first. With
853
+ * `exists`, the chain already proved the thing exists (its receipt is in
854
+ * hand), so a not-found only says the node is behind, and is asked again too.
855
+ */
856
+ async function chainAnswer(read, { exists = false, onRetry } = {}) {
857
+ for (;;) {
858
+ try {
859
+ return await read();
860
+ }
861
+ catch (error) {
862
+ const notFound = error instanceof viem_1.TransactionNotFoundError ||
863
+ error instanceof viem_1.TransactionReceiptNotFoundError;
864
+ if (notFound && !exists)
865
+ return null;
866
+ }
867
+ onRetry?.();
868
+ await (0, pause_js_1.pause)(SAFE_LOOK_MS, undefined, waitAborted);
869
+ }
870
+ }
871
+ /**
872
+ * The execution Safe's authenticated record names for `safeTxHash` when
873
+ * `error` is its service's report that the proposal ran and failed, or null.
874
+ * Only that execution's receipt decides the proposal, never the report alone.
875
+ */
876
+ async function reportedSafeExecution(error, chainId, safe, safeTxHash, service) {
877
+ if (!(error instanceof Error) ||
878
+ !/executed the proposal.*failed/i.test(error.message))
879
+ return null;
880
+ const record = await readSafeTransaction(chainId, safe, safeTxHash, service).catch(() => null);
881
+ const hash = record
882
+ ?.transactionHash;
883
+ return typeof hash === "string" && /^0x[0-9a-fA-F]{64}$/u.test(hash)
884
+ ? hash
885
+ : null;
886
+ }
563
887
  // ── Signatures ───────────────────────────────────────────────────────────────
564
888
  /**
565
889
  * One confirmation's part of Safe's `signatures` bytes, without 0x:
@@ -1 +1 @@
1
- {"version":3,"file":"safeService.js","sourceRoot":"","sources":["../../src/safeService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safeService.js","sourceRoot":"","sources":["../../src/safeService.ts"],"names":[],"mappings":";;;AA4DA,0CAWC;AAcD,oCAQC;AAED,oCAKC;AAoBD,4CAMC;AAqGD,4DAuFC;AAiJD,wDA4BC;AAiBD,kDAcC;AAOD,kDA+CC;AA2FD,kDA8DC;AAGD,kEAkBC;AAwCD,4DAcC;AAGD,wDAwBC;AAUD,oDAwBC;AAQD,gEAOC;AAgED,4BASC;AAGD,0CAKC;AAmCD,gEAwCC;AAoBD,gDA0BC;AAcD,8CA0BC;AAYD,0CAcC;AAUD,kCAgBC;AAOD,sDAuBC;AAwED,0DA+BC;AASD,0DAsBC;AAGD,8CAiBC;AASD,4DAEC;AAKD,0CAmBC;AAMD,oDAWC;AAOD,gEAuBC;AAMD,8CAQC;AAOD,kDAoBC;AA+BD,wCAEC;AAGD,gDAUC;AAuGD,kEA2DC;AAGD,gEAcC;AAMD,kDAiCC;AAqCD,wDAwCC;AAMD,wDAeC;AAWD,8CAkCC;AAGD,0CAIC;AAOD,4DA0BC;AAQD,8CAiBC;AA75DD,+BAcc;AACd,uCAOmB;AACnB,yCAAmC;AACnC,iDAA8E;AAE9E;;;GAGG;AACU,QAAA,WAAW,GAAoC;IAC1D,CAAC,EAAE,KAAK;IACR,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF;;;;;;;GAOG;AACU,QAAA,mBAAmB,GAAoC;IAClE,CAAC,EAAE,KAAK;IACR,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF;6EAC6E;AAC7E,SAAgB,eAAe,CAAC,OAAe;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAC7B,CAAC;QACnC,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;IACD,MAAM,MAAM,GAAG,2BAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,CAAC,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC;AAEY,QAAA,mBAAmB,GAC9B,+IAA+I,CAAC;AAElJ;qCACqC;AACrC,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,CAAC;AACtC;;qEAEqE;AACrE,MAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAErD,uEAAuE;AACvE,SAAgB,YAAY,CAC1B,MAAe,EACf,QAAgB,IAAI,CAAC,GAAG,EAAE;IAE1B,OAAO,MAAM,CACX,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAChE,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,OAAe,EAAE,IAAa;IACzD,MAAM,MAAM,GAAG,mBAAW,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,MAAM;QACX,CAAC,CAAC,mDAAmD,MAAM,IAAI,IAAI,EAAE;QACrE,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,GAAuB;IACtD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,yBAAyB,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,OAAO,IAAI,KAAK,CACd,qDAAqD,OAAO,6HAA6H,CAC1L,CAAC;AACJ,CAAC;AAUD;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,iBAAiB,CAC9B,MAA2B,EAC3B,IAAS;IAET,OAAO,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACzC,GAAG,EAAE,CAAC,OAAO,EACb,CAAC,KAAc,EAAE,EAAE,CAChB,KAA+C,EAAE,IAAI;QACtD,0BAA0B;QACxB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,YAAY,CACnB,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,MAAM,wBAAyB,SAAQ,KAAK;CAAG;AAE/C,oDAAoD;AACpD,SAAS,WAAW;IAClB,OAAO,IAAI,YAAY,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAChB,IAAgB,EAChB,MAA+B,EAC/B,OAAsB;IAEtB,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,SAAS,OAAO;YACd,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAC9B,IAAI;aACD,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aAC3D,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,KAAK,UAAU,wBAAwB,CAC5C,OAAe,EACf,UAAe,EACf,UAII,EAAE;IAEN,IAAI,CAAC,IAAA,wBAAS,EAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,IAAI,KAAK,CAAC;IACpD,MAAM,QAAQ,GACZ,IAAI,IAAI,GAAG,IAAI,iCAAiC,UAAU,GAAG,CAAC;IAChE,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,SAAS,CAAC;QACR,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,MAAM,WAAW,EAAE,CAAC;QACjD,IAAI,IAAI,GAAG,QAAQ,CAAC;QACpB,MAAM,IAAI,GACR,MAAM;YACN,CAAC,MAAM,SAAS,CACd,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,EACrC,OAAO,CAAC,MAAM,EACd,WAAW,CACZ,CAAC,CAAC;QACL,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,UAAU,CAAC;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,uEAAuE;YACvE,yEAAyE;YACzE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,eAAe,IAAI,CAAC,CAAC;gBACrB,IAAI,eAAe,IAAI,8BAA8B,EAAE,CAAC;oBACtD,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,QAAQ,EACR,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAC7B,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,CACpD,CAAC;gBACF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,eAAe,GAAG,CAAC,CAAC;oBACpB,MAAM,WAAW,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIzC,CAAC;oBACF,IAAI,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;wBACjE,MAAM,IAAI,wBAAwB,CAChC,iEAAiE,CAClE,CAAC;oBACJ,CAAC;oBACD,IAAI,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;wBAC1D,IAAI,CAAC,IAAA,wBAAS,EAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;4BAC5C,MAAM,IAAI,wBAAwB,CAChC,uCAAuC,UAAU,8CAA8C,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,uCAAuC,CAC1K,CAAC;wBACJ,CAAC;wBACD,OAAO,WAAW,CAAC,eAAe,CAAC;oBACrC,CAAC;gBACH,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnC,eAAe,IAAI,CAAC,CAAC;oBACrB,IAAI,eAAe,IAAI,8BAA8B,EAAE,CAAC;wBACtD,MAAM,IAAI,wBAAwB,CAChC,6LAA6L,CAC9L,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnC,MAAM,KAAK,GAAG,IAAA,2BAAY,EAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;oBAChE,8DAA8D;oBAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,QAAQ;wBAAE,IAAI,GAAG,KAAK,CAAC;gBACvD,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,wBAAwB;oBAAE,MAAM,KAAK,CAAC;gBAC3D,yEAAyE;gBACzE,+DAA+D;YACjE,CAAC;QACH,CAAC;QACD,MAAM,IAAA,gBAAK,EAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,sEAAsE;AACzD,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;QAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;QAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;QACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;QACpC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;KACnC;CACO,CAAC;AAEX,iFAAiF;AACpE,QAAA,aAAa,GAAG;IAC3B;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,iBAAiB;QACvB,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;YACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;YACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;YACrC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;SACtC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAC7C;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,aAAa;QACnB,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACpD,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;SACrD;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;SACrD;KACF;CACO,CAAC;AA6CX,SAAS,YAAY,CAAC,IAAY,EAAE,KAAc;IAChD,OAAO,IAAI,KAAK,CACd,0BAA0B,IAAI,gBAAgB,MAAM,CAAC,KAAK,CAAC,GAAG,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAc;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,IAAA,iBAAU,EAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,KAAc;IAC7C,MAAM,MAAM,GAAG,IAAA,sBAAO,EAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,MAAM,KAAK,IAAI;QAAE,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wDAAwD;AACxD,SAAS,OAAO,CAAC,KAAc;IAC7B,MAAM,MAAM,GAAG,IAAA,sBAAO,EAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChE,MAAM,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,EAAyB;IAEzB,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ;QAAE,MAAM,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,SAAS,GAAG,EAAE;QAAE,MAAM,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC;IAC7B,IAAI,CAAC,IAAA,yBAAU,EAAC,IAAI,CAAC;QAAE,MAAM,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO;QACL,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC7B,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC;QACnC,IAAI;QACJ,SAAS,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,SAAS,CAAC;QAC/C,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC;QACzC,QAAQ,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC;QAC5C,yEAAyE;QACzE,2EAA2E;QAC3E,QAAQ,EACN,EAAE,CAAC,QAAQ,KAAK,IAAI;YAClB,CAAC,CAAC,kBAAW;YACb,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC;QAC3C,cAAc,EACZ,EAAE,CAAC,cAAc,KAAK,IAAI;YACxB,CAAC,CAAC,kBAAW;YACb,CAAC,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC,cAAc,CAAC;QACvD,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,IAAa;IAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,0EAA0E;AAC1E,SAAgB,mBAAmB,CACjC,OAAe,EACf,IAAa,EACb,EAAyB;IAEzB,OAAO,IAAA,oBAAa,EAAC;QACnB,MAAM,EAAE;YACN,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;YAChC,iBAAiB,EAAE,WAAW,CAAC,IAAI,CAAC;SACrC;QACD,KAAK,EAAE,qBAAa;QACpB,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,sBAAsB,CAAC,EAAE,CAAC;KACpC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CACjC,OAAe,EACf,IAAa,EACb,EAAyB,EACzB,QAAc;IAEd,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,IACE,EAAE,EAAE,IAAI,KAAK,SAAS;QACtB,EAAE,CAAC,IAAI,KAAK,IAAI;QAChB,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;YAC1B,CAAC,IAAA,gBAAS,EAAC,EAAE,CAAC,IAAI,CAAC;YACnB,CAAC,IAAA,qBAAc,EAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EACpC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,mCAAmC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,CACtE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI;QAC/B,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC;QAC7B,CAAC,yBAAyB,EAAE,EAAE,CAAC,uBAAuB,CAAC;KAC/C,EAAE,CAAC;QACX,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAC9D,IACE,CAAC,IAAA,wBAAS,EAAC,UAAU,CAAC;YACtB,UAAU,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,EACnD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,6CAA6C,QAAQ,GAAG,CAC7G,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAA,wBAAS,EAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,2CAA2C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAC/D,CAAC;IACJ,CAAC;IACD,IACE,QAAQ,KAAK,SAAS;QACtB,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,EACjD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,8CAA8C,QAAQ,sBAAsB,QAAQ,GAAG,CACxF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,gFAAgF;AAEhF,iHAAiH;AACjH,MAAM,uBAAuB,GAC3B,oEAAoE,CAAC;AACvE,MAAM,uBAAuB,GAC3B,oEAAoE,CAAC;AACvE,MAAM,SAAS,GACb,kEAAkE,CAAC;AAyBrE;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,GAG3B;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,IAAI,KAAK,KAAK,uBAAuB,IAAI,KAAK,KAAK,uBAAuB,EAAE,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,KAAK,uBAAuB,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC9D,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,IAAA,wBAAS,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,OAAO,eAAe,IAAI,QAAQ,CAAC;QACrC,CAAC;QACD,OAAO;YACL,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YAC/B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;SACtB,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,eAAe,IAAI,QAAQ,CAAC;QACvE,OAAO;YACL,MAAM;YACN,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACzB,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;SACvC,CAAC;IACJ,CAAC;IACD,OAAO,eAAe,IAAI,QAAQ,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,mBAAmB,CACjC,OAIC,EACD,IAAa,EACb,IAAS;IAET,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,IAAI,CAAC,IAAA,wBAAS,EAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,OAAO,EAAE,MAAM,KAAK,UAAU;QAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAuB,EAAE,CAAC,CAAC;QACzD,MAAM,EAAE,UAAU;QAClB,MAAM;KACP,CAAC,CAAC;IACH,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClE,OAAO,QAAQ,CACb,uDAAuD,IAAI,YAAY,IAAI,GAAG,CAC/E,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GACV,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ;QAC3C,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAyB,EAAE,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAIvB,EAAE,CAAC;QACJ,IACE,OAAO,GAAG,EAAE,OAAO,KAAK,QAAQ;YAChC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,EACrC,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,QAAQ,CAAC,QAAQ,IAAI,WAAW,KAAK,GAAG,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC,oBAAoB,IAAI,EAAE,CAAC;IAC5E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CACb,qEAAqE,IAAI,QAAQ,OAAO,GAAG,CAC5F,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,QAAQ,CACb,QAAQ,IAAI,WAAW,MAAM,CAAC,MAAM,uBAAuB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,OAAO,uCAAuC,CAC7M,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IACvB,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC3C,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC;AAED,kHAAkH;AAClH,SAAgB,2BAA2B,CACzC,OAAkD,EAClD,IAAa,EACb,IAAS;IAET,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO;IACxC,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,YAAY,IAAI,qCAAqC,CACvF,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,QAAQ,IAAI,QAAQ,IAAI,2CAA2C,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,yEAAyE;AAC5D,QAAA,yBAAyB,GACpC,oGAAoG,CAAC;AAEvG,uFAAuF;AAC1E,QAAA,sBAAsB,GACjC,gEAAgE,CAAC;AA2BnE;;;;GAIG;AACH,SAAgB,wBAAwB,CACtC,EAAgE,EAChE,KAAkC,EAClC,KAAK,GAAG,IAAI;IAEZ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAA,0BAAgB,EAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CACL,CAAC,CAAC,KAAK;QACP,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,SAAgB,sBAAsB,CACpC,WAAiD,EACjD,IAAa,EACb,KAAkC,EAClC,KAAK,GAAG,IAAI;IAEZ,IACE,CAAC,WAAW,CAAC,EAAE;QACf,CAAC,WAAW,CAAC,KAAK;QAClB,CAAC,IAAA,qBAAc,EAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC;QAErC,OAAO,KAAK,CAAC;IACf,IAAI,OAAoE,CAAC;IACzE,IAAI,CAAC;QACH,OAAO,GAAG,IAAA,yBAAkB,EAAC;YAC3B,GAAG,EAAE,qBAAa;YAClB,IAAI,EAAE,WAAW,CAAC,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAC7D,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAClD,OAAO,wBAAwB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,oBAAoB,CAAC,EACzC,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,KAAK,GAAG,IAAI,GACK;IACjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAChE,MAAM,MAAM,GACV,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ;QAC3C,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;IACvE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC3E,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,MAAM;SAC7B,cAAc,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;SACtC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,WAAW,IAAI,sBAAsB,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;QAC3E,CAAC,CAAC,MAAM;QACR,CAAC,CAAC;YACE,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,eAAe,YAAY,gBAAgB,IAAI,oCAAoC;SAC5F,CAAC;AACR,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,0BAA0B,CAC9C,SAA2B,EAC3B,OAAe;IAEf,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,MAAM,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAyB,CAAC,CAAC;IACtE,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,aAAa,GAGf;IACF,4DAA4D;IAC5D,YAAY,EAAE;QACZ,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACrE,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,IAAI;KACd;IACD,wDAAwD;IACxD,YAAY,EAAE;QACZ,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAChD,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,IAAI;KACd;IACD,6EAA6E;IAC7E,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE;YACnB,EAAE,IAAI,EAAE,SAAS,EAAE;YACnB,EAAE,IAAI,EAAE,SAAS,EAAE;YACnB,EAAE,IAAI,EAAE,QAAQ,EAAE;SACnB;QACD,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;KACf;CACF,CAAC;AAEF,yFAAyF;AACzF,SAAS,WAAW,CAAC,IAAiB;IACpC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAS,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,0BAAmB,EAC9B,KAAK,CAAC,MAAM,EACZ,OAAO,CACc,CAAC;QACxB,oEAAoE;QACpE,OAAO,IAAA,0BAAmB,EAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE;YAC1D,OAAO,CAAC,WAAW,EAAE;YACrB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;YACjB,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,IAAiB;IACxC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC/B,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAA,0BAAmB,EAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAS;KACpG,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,SAAgB,eAAe,CAAC,IAAiB;IAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,OAAO,EAAE,KAAK,CAAC,OAAO;QAC3B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAW,CAAC;QACrD,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,CAAmB,EAAE,CAAmB;IACxD,OAAO,CACL,IAAA,qBAAc,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAC9C,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,SAAS,YAAY,CAAC,EAAyB;IAC7C,yEAAyE;IACzE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IACvD,iDAAiD;IACjD,OAAO,0BAA0B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACxD,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACrB,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAOD;;;;;;;;;GASG;AACI,KAAK,UAAU,0BAA0B,CAC9C,MAAuB,EACvB,OAAe,EACf,IAAa,EACb,IAAiB,EACjB,OAA4B;IAM5B,4EAA4E;IAC5E,6EAA6E;IAC7E,wBAAwB;IACxB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,IAAA,8BAAoB,EAAC,MAAM,EAAE,IAAI,EAAE;QACrD,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS;KACvC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,CACb,MAAM,2BAA2B,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CACzE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACf,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;YACnD,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CACtB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,SAAS,CACnE,CAAC;IACF,OAAO,IAAI;QACT,CAAC,CAAC;YACE,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,YAAY,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACzD,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB;QACH,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAeD;;;;GAIG;AACI,KAAK,UAAU,kBAAkB,CACtC,MAAuB,EACvB,OAAe,EACf,IAAa,EACb,YAAiB,EACjB,OAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,IAAA,8BAAoB,EAAC,MAAM,EAAE,IAAI,EAAE;YACrD,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS;SACvC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,OAAO,CACR,CAAC;QACF,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU;YAAE,OAAO,MAAM,CAAC;QACvD,IAAI,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,KAAK;YAAE,OAAO,QAAQ,CAAC;QAClE,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,+FAA+F;AAC/F,MAAM,sBAAsB,GAAG,EAAE,GAAG,MAAM,CAAC;AAE3C;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAAuB,EACvB,OAAe,EACf,IAAa,EACb,YAAiB,EACjB,MAAmB,EACnB,OAA4B;IAE5B,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,SAAS,CAAC;QACR,MAAM,IAAA,gBAAK,EAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,kBAAkB,CACnC,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,OAAO,CACR,CAAC;QACF,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACpC,WAAW,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,IACE,WAAW,KAAK,IAAI;YACpB,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,IAAI,sBAAsB;YAElD,OAAO,UAAU,CAAC;IACtB,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B;;;;;GAKG;AACI,KAAK,UAAU,eAAe,CACnC,MAA2D,EAC3D,IAAS;IAET,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,aAAa,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,IAAI,GAAG,aAAa,EAAE,CAAC;gBACzB,MAAM,IAAA,gBAAK,EAAC,eAAe,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,WAAW,CAC/B,IAAsB,EACtB,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,KAAiD,EAAE;IAE5E,SAAS,CAAC;QACR,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GACZ,KAAK,YAAY,+BAAwB;gBACzC,KAAK,YAAY,sCAA+B,CAAC;YACnD,IAAI,QAAQ,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;QACvC,CAAC;QACD,OAAO,EAAE,EAAE,CAAC;QACZ,MAAM,IAAA,gBAAK,EAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,qBAAqB,CACzC,KAAc,EACd,OAAe,EACf,IAAa,EACb,UAAe,EACf,OAA4B;IAE5B,IACE,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QACzB,CAAC,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAErD,OAAO,IAAI,CAAC;IACd,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,OAAO,EACP,IAAI,EACJ,UAAU,EACV,OAAO,CACR,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACpB,MAAM,IAAI,GAAI,MAA+C;QAC3D,EAAE,eAAe,CAAC;IACpB,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QAClE,CAAC,CAAE,IAAY;QACf,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;;;;GAYG;AACH,SAAS,aAAa,CACpB,KAAc,EACd,SAAkB;IAElB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5D,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACtE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,IAAA,yBAAU,EAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,IACE,KAAK,CAAC,MAAM,GAAG,GAAG;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI;QAC3B,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,EAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7D,IACE,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG;QACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EACrC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,aAAa,CAAC,MAA0B;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,GAAG,CACZ,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACnB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,EAAgD,EAChD,MAA0B;IAE1B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACpD,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC;QACzD,CAAC,CAAC,EAAE,CAAC,aAAa;QAClB,CAAC,CAAC,EAAE,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,YAAY,EAAE,KAAK,CAAC;QAClC,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC;YACjB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACjC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EACrD,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;gBACf,KAAK,EAAE,IAAA,iBAAU,EAAC,KAAK,CAAC;gBACxB,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,IAAI;aAC1C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,mDAAmD;IACnD,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClD,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CACrC,EAAgD,EAChD,MAA0B;IAE1B,MAAM,KAAK,GAAG,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CACnD,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACzB,KAAK;QACL,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,SAAS,CAAE;KACvC,CAAC,CACH,CAAC;IACF,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;QACpC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC;QACtG,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzF,CAAC;IACD,OAAO,KAAK,IAAI,GAAG,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,gGAAgG;AAChG,SAAgB,iBAAiB,CAC/B,EAAyB,EACzB,MAA0B;IAE1B,MAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3C,OAAO;QACL,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK;QACb,OAAO,CAAC,IAAI;QACZ,OAAO,CAAC,SAAS;QACjB,OAAO,CAAC,SAAS;QACjB,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,QAAQ;QAChB,OAAO,CAAC,QAAQ;QAChB,OAAO,CAAC,cAAc;QACtB,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC;KAC3B,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,EAAyB;IAChE,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;AAClD,CAAC;AAED,gFAAgF;AAEhF,mFAAmF;AACnF,SAAgB,eAAe,CAC7B,IAAgD,EAChD,KAAa;IAEb,MAAM,EAAE,GAA0B;QAChC,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QAChC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;QACvD,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,kBAAW;QACrB,cAAc,EAAE,kBAAW;QAC3B,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;QACrB,aAAa,EAAE,EAAE;KAClB,CAAC;IACF,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAClC,KAA4D,EAC5D,KAAa;IAEb,OAAO;QACL,GAAG,eAAe,CAChB,EAAE,EAAE,EAAE,8BAAoB,EAAE,IAAI,EAAE,IAAA,yBAAe,EAAC,KAAK,CAAC,EAAE,EAC1D,KAAK,CACN;QACD,SAAS,EAAE,CAAC;KACb,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CACxC,EAAyB,EACzB,IAAmE;IAEnE,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,OAAO,IAAI,EAAE,EAAE,KAAK,QAAQ;QAC5B,IAAA,gBAAS,EAAC,IAAI,CAAC,EAAE,CAAC;QAClB,IAAA,qBAAc,EAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;QAC9D,OAAO,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,SAAS,KAAK,EAAE;QACxB,OAAO,CAAC,OAAO,KAAK,EAAE;QACtB,OAAO,CAAC,QAAQ,KAAK,EAAE;QACvB,IAAA,qBAAc,EAAC,OAAO,CAAC,QAAQ,EAAE,kBAAW,CAAC;QAC7C,IAAA,qBAAc,EAAC,OAAO,CAAC,cAAc,EAAE,kBAAW,CAAC,CACpD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAC/B,YAAoB,EACpB,OAAwD;IAExD,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EACpD,OAAO,CAAC,YAAY,CAAC,CACtB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,QAAQ,EACR,SAAS,GAMV;IAIC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAA,qBAAc,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QACtC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;QACrB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC1B,CAAC;AAuBD,sHAAsH;AACzG,QAAA,8BAA8B,GAAG,MAAM,CAAC;AAErD,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC,mGAAmG;AACnG,SAAgB,cAAc,CAAC,OAAe;IAC5C,OAAO,eAAe,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAC3C,CAAC;AAED,sDAAsD;AACtD,SAAgB,kBAAkB,CAChC,OAAe,EACf,IAAa,EACb,UAAe;IAEf,MAAM,MAAM,GAAG,mBAAW,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzE,IAAI,CAAC,IAAA,wBAAS,EAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,OAAO,GAAG,IAAA,iBAAU,EAAC,IAAI,CAAC,CAAC;IACjC,OAAO,gDAAgD,MAAM,IAAI,OAAO,gBAAgB,OAAO,IAAI,UAAU,EAAE,CAAC;AAClH,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,qDAAqD,OAAO,GAAG,CAChE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,SAAS,cAAc,CAAC,IAAI,GAAG,KAAK;IAClC,MAAM,OAAO,GAA2B,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACvE,IAAI,IAAI;QAAE,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,GAAG;YAAE,OAAO,CAAC,aAAa,GAAG,UAAU,GAAG,EAAE,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;IACzB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CACzB,GAAW,EACX,IAAiB,EACjB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAsB;IAE/D,MAAM,OAAO,GAAG,MAAM,IAAI,KAAK,CAAC;IAChC,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,gBAAgB,KAAK,KAAK,EAAE,CAAC;YAC1E,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvD,MAAM,IAAI,GACR,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAY,EAAC,UAAU,CAAC,CAAC;QACxE,2DAA2D;QAC3D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,sCAA8B;YAAE,OAAO,QAAQ,CAAC;QAC5E,MAAM,IAAA,gBAAK,EAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAkB;IAC7C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,+EAA+E;AAC/E,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC;;;;GAIG;AACH,SAAS,UAAU,CACjB,OAAe,EACf,IAAa,EACb,GAAY;IAEZ,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,GAA4B,CAAC;QACxC,IACE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,IAAI,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC;YACxD,CAAC,EAAE,EAAE,uBAAuB,KAAK,SAAS;gBACxC,EAAE,CAAC,uBAAuB,KAAK,IAAI,CAAC,EACtC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,IACE,EAAE,CAAC,aAAa,KAAK,SAAS;YAC9B,EAAE,CAAC,aAAa,KAAK,IAAI;YACzB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC;gBAC/B,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,qBAAqB,CAAC,EAClD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,+CAA+C,qBAAqB,GAAG,CACxE,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,4DAA4D,IAAI,aAAa,OAAO,4BAA6B,KAAe,CAAC,OAAO,EAAE,CAC3I,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,2BAA2B,CAC/C,OAAe,EACf,IAAa,EACb,YAAoB,EACpB,UAA8B,EAAE;IAEhC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvE,MAAM,GAAG,GACP,GAAG,IAAI,iBAAiB,OAAO,yBAAyB;YACxD,qDAAqD,iBAAiB,EAAE;YACxE,WAAW,MAAM,eAAe,SAAS,EAAE,CAAC;QAC9C,IAAI,QAAQ,GAAG,MAAM,YAAY,CAC/B,GAAG,EACH,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAC7B,OAAO,CACR,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5C,uEAAuE;YACvE,+CAA+C;YAC/C,MAAM,IAAA,gBAAK,EAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC;YAC/D,QAAQ,GAAG,MAAM,YAAY,CAC3B,GAAG,EACH,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAC7B,OAAO,CACR,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,CAAC,MAAM,8BAA8B,OAAO,aAAa,OAAO,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,EAAE,CAClJ,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAGlC,CAAC;QACF,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,oEAAoE,OAAO,aAAa,OAAO,GAAG,CACnG,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,CAAC,OAAO,CAAC,MAAM,8BAA8B,iBAAiB,aAAa,OAAO,aAAa,OAAO,GAAG,CACrJ,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,iBAAiB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,CAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,QAAQ,OAAO,kBAAkB,WAAW,iCAAiC,OAAO,8DAA8D,CACnJ,CAAC;AACJ,CAAC;AAED,kHAAkH;AAC3G,KAAK,UAAU,0BAA0B,CAC9C,OAAe,EACf,IAAa,EACb,YAAoB,EACpB,IAAsD,EACtD,UAA8B,EAAE;IAEhC,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAC/C,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,OAAO,CACR,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,0BAA0B,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,IAAa,EACb,UAAe,EACf,UAA8B,EAAE;IAEhC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,IAAA,wBAAS,EAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,GAAG,IAAI,iCAAiC,UAAU,GAAG,EACrD,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAC7B,OAAO,CACR,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,CAAC,MAAM,iBAAiB,UAAU,aAAa,OAAO,mCAAmC,CACzI,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0B,CAAC;IAChE,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,6BAA6B,UAAU,wBAAwB,OAAO,aAAa,OAAO,KAAM,KAAe,CAAC,OAAO,EAAE,CAC1H,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,GAAW,EACX,IAAa,EACb,IAAY,EACZ,OAA2B;IAE3B,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,GAAG,EACH;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,EACD,OAAO,CACR,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,KAAK,QAAQ,CAAC,MAAM,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,EAAE,CAClG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAkB;IAC1C,IAAI,CAAC,IAAA,yBAAU,EAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,sBAAsB,CAC1C,OAAe,EACf,IAAa,EACb,EAAyB,EACzB,EACE,MAAM,EACN,SAAS,EACT,MAAM,GAC8C,EACtD,UAA8B,EAAE;IAEhC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,aAAa,CACjB,GAAG,IAAI,iBAAiB,OAAO,yBAAyB,EACxD;QACE,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;QACvC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC/B,uBAAuB,EAAE,UAAU;QACnC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACtC,MAAM;KACP,EACD,gBAAgB,UAAU,aAAa,OAAO,aAAa,OAAO,EAAE,EACpE,OAAO,CACR,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,sBAAsB,CAC1C,OAAe,EACf,IAAa,EACb,EAAyB,EACzB,SAAc,EACd,UAA8B,EAAE;IAEhC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,aAAa,CACjB,GAAG,IAAI,iCAAiC,UAAU,iBAAiB,EACnE,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAC1C,uBAAuB,UAAU,aAAa,OAAO,EAAE,EACvD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,QAA2B,EAC3B,UAA8B,EAAE;IAEhC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAA,iBAAU,EAAC,KAAK,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,GAAG,IAAI,kBAAkB,OAAO,SAAS,EACzC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAC7B,OAAO,CACR,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAwB,CAAC;YAC5D,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC/B,CAAC,CAAC,IAAI,CAAC,KAAK;qBACP,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC;qBACzB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAChB,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAA,gBAAS,EAAC,IAAI,CAAC;oBACzC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAA,iBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,CAAC,CAAC,EAAE,CACP;gBACL,CAAC,CAAC,EAAE,CAAC;QACT,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,4EAA4E;AAC5E,SAAgB,eAAe,CAAC,OAAe,EAAE,IAAY;IAC3D,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,OAAO,GAAG,IAAI,iBAAiB,IAAA,iBAAU,EAAC,IAAI,CAAC,YAAY,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB,CACtC,OAAgB;IAEhB,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,MAAM,GAAG,OAAkC,CAAC;IAClD,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACpE,IACE,OAAO,cAAc,KAAK,QAAQ;QAClC,OAAO,UAAU,KAAK,QAAQ;QAC9B,CAAC,IAAA,gBAAS,EAAC,cAAc,CAAC;QAC1B,CAAC,IAAA,gBAAS,EAAC,UAAU,CAAC;QACtB,CAAC,IAAA,yBAAU,EAAC,SAAS,CAAC;QACtB,SAAS,CAAC,MAAM,GAAG,EAAE;QACrB,OAAO,SAAS,KAAK,QAAQ;QAC7B,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QACxB,IAAA,sBAAO,EAAC,SAAS,CAAC,KAAK,IAAI;QAC3B,CAAC,IAAA,oCAA0B,EAAC,cAAc,EAAE,UAAU,CAAC,EACvD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAA,iBAAU,EAAC,cAAc,CAAC;QACnC,SAAS,EAAE,IAAA,iBAAU,EAAC,UAAU,CAAC;QACjC,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB,CACrC,IAAa,EACb,aAAqB,EACrB,UAA8B,EAAE;IAEhC,MAAM,GAAG,GAAG,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,GAAG,EACH,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAC7B,OAAO,CACR,CAAC;QACF,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,9 +1,9 @@
1
- import type { Address, Hex } from "viem";
1
+ import { type Address, type Hex } from "viem";
2
2
  import type { JBCenterClient, JBCenterIntent, JBCenterIntentInput, JBCenterJsonObject, JBCenterRequestOptions } from "../jbcenter.js";
3
3
  /** JB Center prepared something other than the intent the caller built. */
4
4
  export declare class JBCenterIntentMismatchError extends Error {
5
- readonly reason: "envelope" | "message";
6
- constructor(reason: "envelope" | "message");
5
+ readonly reason: "envelope" | "message" | "contentHash" | "publication";
6
+ constructor(reason: "envelope" | "message" | "contentHash" | "publication");
7
7
  }
8
8
  export type PublishSignedIntentOptions = {
9
9
  /** The address whose signature `sign` returns. */
@@ -19,8 +19,9 @@ export type PublishSignedIntentOptions = {
19
19
  * Publish an intent, signing only JB Center's prepared message and only once
20
20
  * it has been checked: the prepared envelope must carry the same values as
21
21
  * the intent built here, and the message must be the whole signing message
22
- * for the content hash of what is being signed. `sign` is the caller's own
23
- * signer; this package never reaches a wallet itself.
22
+ * for the locally computed content hash of that exact envelope. The same
23
+ * snapshot is published, and the returned publication must name its hash.
24
+ * `sign` is the caller's own signer; this package never reaches a wallet itself.
24
25
  */
25
26
  export declare function publishSignedIntent<TJb extends JBCenterJsonObject>(client: JBCenterClient, intent: JBCenterIntentInput<TJb>, sign: (message: string) => Promise<Hex>, options: PublishSignedIntentOptions): Promise<JBCenterIntent<TJb>>;
26
27
  //# sourceMappingURL=publish.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/jbcenter/publish.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AA+DxB,2EAA2E;AAC3E,qBAAa,2BAA4B,SAAQ,KAAK;IACxC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS;gBAA9B,MAAM,EAAE,UAAU,GAAG,SAAS;CAQpD;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,MAAM,CAAC;IAC7C,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,SAAS,kBAAkB,EACtE,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,EACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAmB9B"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/jbcenter/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAsExB,2EAA2E;AAC3E,qBAAa,2BAA4B,SAAQ,KAAK;IAElD,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa;gBAA9D,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa;CAgB1E;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,MAAM,CAAC;IAC7C,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,SAAS,kBAAkB,EACtE,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,EACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CA2B9B"}
@@ -1,19 +1,26 @@
1
+ import { keccak256, toBytes } from "viem";
1
2
  /**
2
3
  * Key order and the casing of addresses and calldata are JB Center's to
3
4
  * choose; the values are not. Sorting keys and lowercasing hex long enough to
4
5
  * be an address or calldata puts both sides in one form so the comparison
5
6
  * reads values only. Shorter hex-looking text is a value like any other and is
6
- * compared as written.
7
+ * compared as written. For hashing, retain string case: Center hashes exact
8
+ * canonical JSON, including lexicographic order for integer-looking keys.
7
9
  */
8
- function canonical(value) {
9
- return JSON.stringify(value, (_key, item) => {
10
- if (typeof item === "string") {
11
- return /^0x[0-9a-fA-F]{40,}$/u.test(item) ? item.toLowerCase() : item;
12
- }
13
- if (!item || typeof item !== "object" || Array.isArray(item))
14
- return item;
15
- return Object.fromEntries(Object.entries(item).sort(([a], [b]) => a < b ? -1 : 1));
16
- });
10
+ function canonical(value, lowercaseHex = true) {
11
+ if (typeof value === "string" &&
12
+ lowercaseHex &&
13
+ /^0x[0-9a-fA-F]{40,}$/u.test(value)) {
14
+ return JSON.stringify(value.toLowerCase());
15
+ }
16
+ if (value === null || typeof value !== "object")
17
+ return JSON.stringify(value);
18
+ if (Array.isArray(value))
19
+ return `[${value.map((item) => canonical(item, lowercaseHex)).join(",")}]`;
20
+ return `{${Object.keys(value)
21
+ .sort()
22
+ .map((key) => `${JSON.stringify(key)}:${canonical(value[key], lowercaseHex)}`)
23
+ .join(",")}}`;
17
24
  }
18
25
  /**
19
26
  * The shape JB Center normalizes an envelope into before it hashes: unique
@@ -49,9 +56,12 @@ function withLowercaseHash(message, contentHash) {
49
56
  /** JB Center prepared something other than the intent the caller built. */
50
57
  export class JBCenterIntentMismatchError extends Error {
51
58
  constructor(reason) {
52
- super(reason === "envelope"
53
- ? "JB Center prepared a different intent than the one built here"
54
- : "JB Center's prepared message is not Center's signing message for that content hash");
59
+ super({
60
+ envelope: "JB Center prepared a different intent than the one built here",
61
+ message: "JB Center's prepared message is not Center's signing message for that content hash",
62
+ contentHash: "JB Center's content hash does not match the prepared intent",
63
+ publication: "JB Center returned a different published intent; the publication could not be verified",
64
+ }[reason]);
55
65
  this.reason = reason;
56
66
  this.name = "JBCenterIntentMismatchError";
57
67
  }
@@ -60,22 +70,31 @@ export class JBCenterIntentMismatchError extends Error {
60
70
  * Publish an intent, signing only JB Center's prepared message and only once
61
71
  * it has been checked: the prepared envelope must carry the same values as
62
72
  * the intent built here, and the message must be the whole signing message
63
- * for the content hash of what is being signed. `sign` is the caller's own
64
- * signer; this package never reaches a wallet itself.
73
+ * for the locally computed content hash of that exact envelope. The same
74
+ * snapshot is published, and the returned publication must name its hash.
75
+ * `sign` is the caller's own signer; this package never reaches a wallet itself.
65
76
  */
66
77
  export async function publishSignedIntent(client, intent, sign, options) {
67
78
  const checked = snapshot(normalized(intent));
68
79
  const prepared = await client.prepareIntent(checked, options.request);
69
- if (canonical(normalized(prepared.envelope)) !== canonical(checked)) {
80
+ const envelope = snapshot(prepared.envelope);
81
+ if (canonical(normalized(envelope)) !== canonical(checked)) {
70
82
  throw new JBCenterIntentMismatchError("envelope");
71
83
  }
72
- const contentHash = prepared.contentHash.toLowerCase();
84
+ const contentHash = keccak256(toBytes(canonical(envelope, false)));
85
+ if (prepared.contentHash.toLowerCase() !== contentHash) {
86
+ throw new JBCenterIntentMismatchError("contentHash");
87
+ }
73
88
  const expected = (options.expectMessage ?? centerSigningMessage)(contentHash);
74
89
  if (withLowercaseHash(prepared.message, contentHash) !==
75
90
  withLowercaseHash(expected, contentHash)) {
76
91
  throw new JBCenterIntentMismatchError("message");
77
92
  }
78
93
  const signature = await sign(prepared.message);
79
- return client.publishIntent({ ...checked, publisher: options.publisher, signature }, options.request);
94
+ const published = await client.publishIntent({ ...envelope, publisher: options.publisher, signature }, options.request);
95
+ if (published.contentHash.toLowerCase() !== contentHash) {
96
+ throw new JBCenterIntentMismatchError("publication");
97
+ }
98
+ return published;
80
99
  }
81
100
  //# sourceMappingURL=publish.js.map