@hyperlane-xyz/sdk 3.3.0 → 3.4.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 (108) hide show
  1. package/dist/consts/chainMetadata.d.ts +18 -28
  2. package/dist/consts/chainMetadata.d.ts.map +1 -1
  3. package/dist/consts/chainMetadata.js +495 -543
  4. package/dist/consts/chainMetadata.js.map +1 -1
  5. package/dist/consts/chains.d.ts +5 -5
  6. package/dist/consts/chains.d.ts.map +1 -1
  7. package/dist/consts/chains.js +4 -4
  8. package/dist/consts/chains.js.map +1 -1
  9. package/dist/consts/environments/index.d.ts +114 -114
  10. package/dist/consts/environments/index.js +1 -1
  11. package/dist/consts/multisigIsm.d.ts.map +1 -1
  12. package/dist/consts/multisigIsm.js +123 -120
  13. package/dist/consts/multisigIsm.js.map +1 -1
  14. package/dist/core/HyperlaneCore.d.ts +5 -4
  15. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  16. package/dist/core/HyperlaneCore.js.map +1 -1
  17. package/dist/core/HyperlaneCoreDeployer.d.ts +1 -2
  18. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  19. package/dist/core/HyperlaneCoreDeployer.js +11 -8
  20. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  21. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  22. package/dist/deploy/HyperlaneDeployer.js +2 -2
  23. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  24. package/dist/deploy/contracts.d.ts.map +1 -1
  25. package/dist/deploy/contracts.js +0 -4
  26. package/dist/deploy/contracts.js.map +1 -1
  27. package/dist/hook/HyperlaneHookDeployer.js +5 -1
  28. package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
  29. package/dist/index.d.ts +8 -3
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +21 -10
  32. package/dist/index.js.map +1 -1
  33. package/dist/ism/HyperlaneIsmFactory.d.ts +26 -8
  34. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  35. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +175 -10
  36. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  37. package/dist/ism/HyperlaneIsmFactory.js +193 -65
  38. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  39. package/dist/ism/types.d.ts +10 -2
  40. package/dist/ism/types.d.ts.map +1 -1
  41. package/dist/ism/types.js +4 -1
  42. package/dist/ism/types.js.map +1 -1
  43. package/dist/logger.d.ts +3 -0
  44. package/dist/logger.d.ts.map +1 -0
  45. package/dist/logger.js +11 -0
  46. package/dist/logger.js.map +1 -0
  47. package/dist/metadata/ChainMetadataManager.d.ts +7 -7
  48. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  49. package/dist/metadata/ChainMetadataManager.js +18 -42
  50. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  51. package/dist/metadata/agentConfig.d.ts +724 -1
  52. package/dist/metadata/agentConfig.d.ts.map +1 -1
  53. package/dist/metadata/blockExplorer.d.ts +6 -0
  54. package/dist/metadata/blockExplorer.d.ts.map +1 -0
  55. package/dist/metadata/blockExplorer.js +60 -0
  56. package/dist/metadata/blockExplorer.js.map +1 -0
  57. package/dist/metadata/chainMetadataTypes.d.ts +233 -0
  58. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  59. package/dist/metadata/chainMetadataTypes.js +4 -0
  60. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  61. package/dist/metadata/health.d.ts +9 -0
  62. package/dist/metadata/health.d.ts.map +1 -0
  63. package/dist/metadata/health.js +120 -0
  64. package/dist/metadata/health.js.map +1 -0
  65. package/dist/providers/MultiProvider.d.ts.map +1 -1
  66. package/dist/providers/MultiProvider.js +1 -1
  67. package/dist/providers/MultiProvider.js.map +1 -1
  68. package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.d.ts +21 -0
  69. package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.d.ts.map +1 -0
  70. package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.js +120 -0
  71. package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.js.map +1 -0
  72. package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.d.ts +16 -0
  73. package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.d.ts.map +1 -0
  74. package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js +115 -0
  75. package/dist/providers/SmartProvider/HyperlaneJsonRpcProvider.js.map +1 -0
  76. package/dist/providers/SmartProvider/ProviderMethods.d.ts +21 -0
  77. package/dist/providers/SmartProvider/ProviderMethods.d.ts.map +1 -0
  78. package/dist/providers/SmartProvider/ProviderMethods.js +25 -0
  79. package/dist/providers/SmartProvider/ProviderMethods.js.map +1 -0
  80. package/dist/providers/SmartProvider/SmartProvider.d.ts +44 -0
  81. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -0
  82. package/dist/providers/SmartProvider/SmartProvider.foundry-test.d.ts +2 -0
  83. package/dist/providers/SmartProvider/SmartProvider.foundry-test.d.ts.map +1 -0
  84. package/dist/providers/SmartProvider/SmartProvider.foundry-test.js +67 -0
  85. package/dist/providers/SmartProvider/SmartProvider.foundry-test.js.map +1 -0
  86. package/dist/providers/SmartProvider/SmartProvider.js +248 -0
  87. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -0
  88. package/dist/providers/SmartProvider/SmartProvider.test.d.ts +2 -0
  89. package/dist/providers/SmartProvider/SmartProvider.test.d.ts.map +1 -0
  90. package/dist/providers/SmartProvider/SmartProvider.test.js +171 -0
  91. package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -0
  92. package/dist/providers/SmartProvider/types.d.ts +36 -0
  93. package/dist/providers/SmartProvider/types.d.ts.map +1 -0
  94. package/dist/providers/SmartProvider/types.js +10 -0
  95. package/dist/providers/SmartProvider/types.js.map +1 -0
  96. package/dist/providers/providerBuilders.d.ts +10 -11
  97. package/dist/providers/providerBuilders.d.ts.map +1 -1
  98. package/dist/providers/providerBuilders.js +6 -34
  99. package/dist/providers/providerBuilders.js.map +1 -1
  100. package/dist/test/metadata-check.d.ts +2 -0
  101. package/dist/test/metadata-check.d.ts.map +1 -0
  102. package/dist/test/metadata-check.js +116 -0
  103. package/dist/test/metadata-check.js.map +1 -0
  104. package/package.json +10 -8
  105. package/dist/providers/RetryProvider.d.ts +0 -12
  106. package/dist/providers/RetryProvider.d.ts.map +0 -1
  107. package/dist/providers/RetryProvider.js +0 -21
  108. package/dist/providers/RetryProvider.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"providerBuilders.js","sourceRoot":"","sources":["../../src/providers/providerBuilders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providerBuilders.js","sourceRoot":"","sources":["../../src/providers/providerBuilders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=metadata-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-check.d.ts","sourceRoot":"","sources":["../../src/test/metadata-check.ts"],"names":[],"mappings":""}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable no-console */
4
+ const ethers_1 = require("ethers");
5
+ const utils_1 = require("@hyperlane-xyz/utils");
6
+ const chainMetadata_1 = require("../consts/chainMetadata");
7
+ const chains_1 = require("../consts/chains");
8
+ const health_1 = require("../metadata/health");
9
+ const PROTOCOL_TO_ADDRESS = {
10
+ [utils_1.ProtocolType.Ethereum]: ethers_1.ethers.constants.AddressZero,
11
+ [utils_1.ProtocolType.Sealevel]: '00000000000000000000000000000000000000000000',
12
+ [utils_1.ProtocolType.Cosmos]: 'cosmos100000000000000000000000000000000000000',
13
+ [utils_1.ProtocolType.Fuel]: '',
14
+ };
15
+ // A random tx hash for each chain, used to test explorer link
16
+ const CHAIN_TO_TX_HASH = {
17
+ [chains_1.Chains.alfajores]: '0xf566f1ba4af5ac53081dc4b22fcac29fe5e9a25f5e134ca5464231ed7d2ffc81',
18
+ [chains_1.Chains.arbitrum]: '0x30093a67a823ca6b024eb5ca6f7d5cf7e967557662155e783827efcfeb29690f',
19
+ [chains_1.Chains.arbitrumgoerli]: '0xa86668384160a1b580bdbeabfce212524663143e94b68eb1e7fc48f20bbedc8c',
20
+ [chains_1.Chains.avalanche]: '0x244ae94a424906c88b2f7fc7697ce78f26fbfc74bee5040d63e1a1c6ef9eb84b',
21
+ [chains_1.Chains.base]: '0x27c0d75d1a38c0a31b0f41fd20d28a62be4ac83999abdf4f6ea607379b3f3d0d',
22
+ [chains_1.Chains.basegoerli]: '0xea6274abba0ad633d0155fc6cb5d25edb24bb7005c7b4aed33390716cf773c32',
23
+ [chains_1.Chains.bsc]: '0x18bd183cd2dc56a462b27331b8d28cddabde0c556698da29d69ee04c1b8b2c9c',
24
+ [chains_1.Chains.bsctestnet]: '0xcfa8f9c0b601913ddf0f99e03e0e2c211ef59bde7eba72eb8f7df739f913466f',
25
+ [chains_1.Chains.celo]: '0xb217245342d224c96876849bc2964cac6c648b7b054fd0b0278c5e98e540843b',
26
+ [chains_1.Chains.chiado]: '0x29d0828c8d1852097736220dd439716ec342caceb41d9edf4be9fda598c837df',
27
+ [chains_1.Chains.ethereum]: '0xf2f0373bdbdff84640b6d7f37ea999746715df499190b7a1095266066d1b7356',
28
+ [chains_1.Chains.fuji]: '0xb1b93727cea040b3164056d0b97785e8f0e4b7a749b0a56f9d1c2cf37bec0455',
29
+ [chains_1.Chains.gnosis]: '0x9f6d46b6be0adbcf6fa4517c6897a11763d4a5aa5e31e6b6b66a0463de958c25',
30
+ [chains_1.Chains.goerli]: '0xf9eeb8068f02d086fe100bc420af57384eff0fdc4f88e68e4e17e1985a7e2bf0',
31
+ [chains_1.Chains.lineagoerli]: '0xe0fad79e60d6178452bc07cf15c07cdda97deccd2b197af7790e978a8e5835ac',
32
+ [chains_1.Chains.mantapacific]: '0x045adb06cae25de2c90be0a8610f7adc226c34d0b03d4383ce3cb2157561d656',
33
+ [chains_1.Chains.moonbasealpha]: '0xe6711bc12bc1cef88f29e3bbabd9fbb050cfca086a5449f7d4da3819bdc77859',
34
+ [chains_1.Chains.moonbeam]: '0xf387fa67cf7f4a33d30c0c53900d21c4eff7867f5457a8b9f54802087a07eb96',
35
+ [chains_1.Chains.mumbai]: '0xeff94a58c83814e3c0fbaa721e95cd76f2dd00274ab547ed2e7d9a78b029c62a',
36
+ [chains_1.Chains.nautilus]: '',
37
+ [chains_1.Chains.neutron]: '4663DAD97C53850A2BAE898514971BACC8EB8B3C1FE9DBA3E62F5AC86D600E73',
38
+ [chains_1.Chains.optimism]: '0x139b9beec241a1258630367a2ec0c6567bfd5ce23cfc0c189fbd26b5eb657a33',
39
+ [chains_1.Chains.optimismgoerli]: '0xd84ae2271533f83c2adea10bd1bebcb97a9bad70ccfb7d771b4159ab0cadfda3',
40
+ [chains_1.Chains.polygon]: '0x7cf70156dbf12005875f73f48e903e40914d9a69a9487f0834e2d79132ec22f3',
41
+ [chains_1.Chains.polygonzkevm]: '0xf3fd1213a7b8db63031e83de929169896cbfae33004bb7a55234a1f72cb53d5f',
42
+ [chains_1.Chains.polygonzkevmtestnet]: '0xf758cfe7f83c9556300f687b01e0f9fcb15156f70406cb54122a0531394ce496',
43
+ [chains_1.Chains.proteustestnet]: '',
44
+ [chains_1.Chains.scroll]: '0x262a4c4ee74f1a81ed414ffad3a8e2046ad2521252b2091f1acb053239aab5b7',
45
+ [chains_1.Chains.scrollsepolia]: '0xe2093b1a4c6a0d9d34e6441b449e7cb4e7a785a41e5df2df9a981968888813ae',
46
+ [chains_1.Chains.sepolia]: '0xdacc9d206b55ba553afc42e2c207e355aacaf96855845b3a746f294fefd4f39d',
47
+ [chains_1.Chains.solana]: '23346vC32nGAaq4ADj8zJqzVv9DGcY6oqnEbM7g1d1Ydqh8wziEgavKXx1qNqqqHMwKq3LRqaGwMMH7wK9UhAuz4',
48
+ [chains_1.Chains.solanadevnet]: '58XxWq2AD5Hw58cJxbhLNXsbycHUmHhkUpdacZWBTTz5kFW4dstTHVcb8MKJMRxiG4eVsnmb3Qhbf3TVriuCad4n',
49
+ [chains_1.Chains.test1]: '',
50
+ [chains_1.Chains.test2]: '',
51
+ [chains_1.Chains.test3]: '',
52
+ };
53
+ // Note: run with DEBUG=hyperlane for more detailed logs
54
+ async function main() {
55
+ const results = {};
56
+ const badList = [];
57
+ for (const metadata of Object.values(chainMetadata_1.chainMetadata)) {
58
+ if (chains_1.TestChains.includes(metadata.name))
59
+ continue;
60
+ console.log(`Checking metadata health for ${metadata.name}`);
61
+ if (!metadata.rpcUrls) {
62
+ console.error(`No rpcUrls for ${metadata.name}, invalid chain metadata`);
63
+ }
64
+ if (!metadata.blockExplorers?.length) {
65
+ console.warn(`No block explorers for ${metadata.name}, consider adding one`);
66
+ }
67
+ results[metadata.name] = {
68
+ goodRpcs: 0,
69
+ badRpcs: 0,
70
+ goodExplorers: 0,
71
+ badExplorers: 0,
72
+ };
73
+ for (const rpc of metadata.rpcUrls) {
74
+ const isHealthy = await (0, health_1.isRpcHealthy)(rpc, metadata.chainId, metadata.protocol);
75
+ if (!isHealthy) {
76
+ console.error(`RPC ${rpc.http} for ${metadata.name} is not healthy`);
77
+ results[metadata.name].badRpcs += 1;
78
+ badList.push(rpc.http);
79
+ }
80
+ else {
81
+ results[metadata.name].goodRpcs += 1;
82
+ }
83
+ }
84
+ if (!metadata.blockExplorers?.length)
85
+ continue;
86
+ // This only tests the first explorer since that's
87
+ // what the related utils use anyway
88
+ const firstExplorerUrl = metadata.blockExplorers[0].url;
89
+ const isHealthy = await (0, health_1.isBlockExplorerHealthy)(metadata, PROTOCOL_TO_ADDRESS[metadata.protocol], CHAIN_TO_TX_HASH[metadata.name]);
90
+ if (!isHealthy) {
91
+ console.error(`Explorer ${firstExplorerUrl} for ${metadata.name} is not healthy`);
92
+ results[metadata.name].badExplorers += 1;
93
+ badList.push(firstExplorerUrl);
94
+ }
95
+ else {
96
+ results[metadata.name].goodExplorers += 1;
97
+ }
98
+ }
99
+ console.table(results);
100
+ console.log('The bad ones:\n===============');
101
+ console.log(badList);
102
+ if (badList.length) {
103
+ console.error('Some RPCs or block explorers are unhealthy');
104
+ process.exit(1);
105
+ }
106
+ }
107
+ main()
108
+ .then(() => {
109
+ console.log('Done');
110
+ process.exit(0);
111
+ })
112
+ .catch((err) => {
113
+ console.error('Unhandled error running test:', err);
114
+ process.exit(1);
115
+ });
116
+ //# sourceMappingURL=metadata-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-check.js","sourceRoot":"","sources":["../../src/test/metadata-check.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@hyperlane-xyz/sdk",
3
3
  "description": "The official SDK for the Hyperlane Network",
4
- "version": "3.3.0",
4
+ "version": "3.4.0",
5
5
  "dependencies": {
6
6
  "@cosmjs/cosmwasm-stargate": "^0.31.3",
7
7
  "@cosmjs/stargate": "^0.31.3",
8
- "@hyperlane-xyz/core": "3.3.0",
9
- "@hyperlane-xyz/utils": "3.3.0",
8
+ "@hyperlane-xyz/core": "3.4.0",
9
+ "@hyperlane-xyz/utils": "3.4.0",
10
10
  "@solana/spl-token": "^0.3.8",
11
11
  "@solana/web3.js": "^1.78.0",
12
12
  "@types/coingecko-api": "^1.0.10",
13
13
  "@types/debug": "^4.1.7",
14
- "@wagmi/chains": "^0.2.6",
14
+ "@wagmi/chains": "^1.8.0",
15
15
  "bignumber.js": "^9.1.1",
16
16
  "coingecko-api": "^1.0.10",
17
17
  "cosmjs-types": "^0.9.0",
18
18
  "cross-fetch": "^3.1.5",
19
19
  "debug": "^4.3.4",
20
20
  "ethers": "^5.7.2",
21
- "viem": "^1.3.1",
21
+ "viem": "^1.20.0",
22
22
  "zod": "^3.21.2"
23
23
  },
24
24
  "devDependencies": {
@@ -60,9 +60,11 @@
60
60
  "lint": "eslint src --ext .ts",
61
61
  "prepublishOnly": "yarn build",
62
62
  "prettier": "prettier --write ./src",
63
- "test": "yarn test:unit && yarn test:hardhat",
64
- "test:unit": "mocha --config .mocharc.json './src/**/*.test.ts'",
65
- "test:hardhat": "hardhat test $(find ./src -name \"*.hardhat-test.ts\")"
63
+ "test": "yarn test:unit && yarn test:hardhat && yarn test:foundry",
64
+ "test:unit": "mocha --config .mocharc.json './src/**/*.test.ts' --exit",
65
+ "test:hardhat": "hardhat test $(find ./src -name \"*.hardhat-test.ts\")",
66
+ "test:metadata": "ts-node ./src/test/metadata-check.ts",
67
+ "test:foundry": "./scripts/foundry-test.sh"
66
68
  },
67
69
  "types": "dist/index.d.ts",
68
70
  "peerDependencies": {
@@ -1,12 +0,0 @@
1
- import { ethers } from 'ethers';
2
- export type RetryProviderOptions = {
3
- maxRequests: number;
4
- baseRetryMs: number;
5
- };
6
- export declare class RetryJsonRpcProvider extends ethers.providers
7
- .StaticJsonRpcProvider {
8
- readonly retryOptions: RetryProviderOptions;
9
- constructor(retryOptions: RetryProviderOptions, url?: ethers.utils.ConnectionInfo | string, network?: ethers.providers.Networkish);
10
- send(method: string, params: Array<any>): Promise<any>;
11
- }
12
- //# sourceMappingURL=RetryProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RetryProvider.d.ts","sourceRoot":"","sources":["../../src/providers/RetryProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,MAAM,MAAM,oBAAoB,GAAG;IAEjC,WAAW,EAAE,MAAM,CAAC;IAGpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,oBAAqB,SAAQ,MAAM,CAAC,SAAS;KACvD,qBAAqB;IACtB,SAAgB,YAAY,EAAE,oBAAoB,CAAC;gBAEjD,YAAY,EAAE,oBAAoB,EAClC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,EAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;IAcjC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAO7D"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RetryJsonRpcProvider = void 0;
4
- // RetryProvider Mostly taken from the removed version that was in ethers.js
5
- // See: https://github.com/ethers-io/ethers.js/discussions/3006
6
- const ethers_1 = require("ethers");
7
- const utils_1 = require("@hyperlane-xyz/utils");
8
- class RetryJsonRpcProvider extends ethers_1.ethers.providers
9
- .StaticJsonRpcProvider {
10
- constructor(retryOptions, url, network) {
11
- super(url, network);
12
- (0, utils_1.assert)(retryOptions.maxRequests >= 1, 'RetryOptions.maxRequests must be >= 1');
13
- (0, utils_1.assert)(retryOptions.baseRetryMs >= 1, 'RetryOptions.baseRetryMs must be >= 1');
14
- this.retryOptions = retryOptions;
15
- }
16
- async send(method, params) {
17
- return (0, utils_1.retryAsync)(() => super.send(method, params), this.retryOptions.maxRequests, this.retryOptions.baseRetryMs);
18
- }
19
- }
20
- exports.RetryJsonRpcProvider = RetryJsonRpcProvider;
21
- //# sourceMappingURL=RetryProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RetryProvider.js","sourceRoot":"","sources":["../../src/providers/RetryProvider.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC5E,+DAA+D;AAC/D,mCAAgC;AAEhC,gDAA0D;AAU1D,MAAa,oBAAqB,SAAQ,eAAM,CAAC,SAAS;KACvD,qBAAqB;IAEtB,YACE,YAAkC,EAClC,GAA0C,EAC1C,OAAqC;QAErC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpB,IAAA,cAAM,EACJ,YAAY,CAAC,WAAW,IAAI,CAAC,EAC7B,uCAAuC,CACxC,CAAC;QACF,IAAA,cAAM,EACJ,YAAY,CAAC,WAAW,IAAI,CAAC,EAC7B,uCAAuC,CACxC,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,MAAkB;QAC3C,OAAO,IAAA,kBAAU,EACf,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,IAAI,CAAC,YAAY,CAAC,WAAW,EAC7B,IAAI,CAAC,YAAY,CAAC,WAAW,CAC9B,CAAC;IACJ,CAAC;CACF;AA3BD,oDA2BC"}