@paraswap/dex-lib 2.19.1 → 2.20.1

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 (123) hide show
  1. package/build/abi/DirectSwap.json +1018 -0
  2. package/build/dex/balancer-v2/balancer-v2.d.ts +9 -3
  3. package/build/dex/balancer-v2/balancer-v2.js +83 -0
  4. package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
  5. package/build/dex/balancer-v2/constants.d.ts +4 -0
  6. package/build/dex/balancer-v2/constants.js +6 -1
  7. package/build/dex/balancer-v2/constants.js.map +1 -1
  8. package/build/dex/balancer-v2/types.d.ts +20 -1
  9. package/build/dex/balancer-v2/types.js.map +1 -1
  10. package/build/dex/curve-v1/constants.d.ts +1 -0
  11. package/build/dex/curve-v1/constants.js +2 -1
  12. package/build/dex/curve-v1/constants.js.map +1 -1
  13. package/build/dex/curve-v1/curve-v1.d.ts +9 -3
  14. package/build/dex/curve-v1/curve-v1.js +92 -4
  15. package/build/dex/curve-v1/curve-v1.js.map +1 -1
  16. package/build/dex/curve-v1/types.d.ts +24 -0
  17. package/build/dex/curve-v1/types.js +6 -1
  18. package/build/dex/curve-v1/types.js.map +1 -1
  19. package/build/dex/curve-v1-factory/constants.d.ts +1 -0
  20. package/build/dex/curve-v1-factory/constants.js +2 -1
  21. package/build/dex/curve-v1-factory/constants.js.map +1 -1
  22. package/build/dex/curve-v1-factory/curve-v1-factory.d.ts +11 -4
  23. package/build/dex/curve-v1-factory/curve-v1-factory.js +87 -0
  24. package/build/dex/curve-v1-factory/curve-v1-factory.js.map +1 -1
  25. package/build/dex/curve-v1-factory/types.d.ts +24 -0
  26. package/build/dex/curve-v1-factory/types.js +6 -1
  27. package/build/dex/curve-v1-factory/types.js.map +1 -1
  28. package/build/dex/curve-v2.d.ts +29 -7
  29. package/build/dex/curve-v2.js +91 -1
  30. package/build/dex/curve-v2.js.map +1 -1
  31. package/build/dex/idex.d.ts +1 -1
  32. package/build/dex/pancakeswap-v3/pancakeswap-v3.d.ts +2 -2
  33. package/build/dex/pancakeswap-v3/utils.js.map +1 -1
  34. package/build/dex/simple-exchange.d.ts +2 -0
  35. package/build/dex/simple-exchange.js +1 -0
  36. package/build/dex/simple-exchange.js.map +1 -1
  37. package/build/dex/swaap-v2/swaap-v2.js +5 -1
  38. package/build/dex/swaap-v2/swaap-v2.js.map +1 -1
  39. package/build/dex/swaap-v2/utils.js.map +1 -1
  40. package/build/dex/swaap-v2/validators.js +1 -2
  41. package/build/dex/swaap-v2/validators.js.map +1 -1
  42. package/build/dex/uniswap-v2/uniswap-v2.d.ts +1 -1
  43. package/build/dex/uniswap-v2/uniswap-v2.js +1 -1
  44. package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
  45. package/build/dex/uniswap-v3/constants.d.ts +4 -0
  46. package/build/dex/uniswap-v3/constants.js +6 -1
  47. package/build/dex/uniswap-v3/constants.js.map +1 -1
  48. package/build/dex/uniswap-v3/types.d.ts +20 -3
  49. package/build/dex/uniswap-v3/types.js.map +1 -1
  50. package/build/dex/uniswap-v3/uniswap-v3.d.ts +7 -1
  51. package/build/dex/uniswap-v3/uniswap-v3.js +85 -1
  52. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  53. package/build/dex/zerox/index.d.ts +1 -1
  54. package/build/dex/zerox/index.js +1 -1
  55. package/build/dex/zerox/index.js.map +1 -1
  56. package/build/implementations/local-paraswap-sdk.js +5 -1
  57. package/build/implementations/local-paraswap-sdk.js.map +1 -1
  58. package/build/router/directswap.js +7 -1
  59. package/build/router/directswap.js.map +1 -1
  60. package/build/router/index.js.map +1 -1
  61. package/build/router/payload-encoder.js +15 -4
  62. package/build/router/payload-encoder.js.map +1 -1
  63. package/build/types.d.ts +1 -0
  64. package/build/utils.js.map +1 -1
  65. package/package.json +5 -3
  66. package/src/abi/DirectSwap.json +1018 -0
  67. package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +79 -0
  68. package/src/dex/balancer-v2/balancer-v2.ts +153 -4
  69. package/src/dex/balancer-v2/constants.ts +5 -0
  70. package/src/dex/balancer-v2/types.ts +21 -1
  71. package/src/dex/curve-v1/constants.ts +2 -0
  72. package/src/dex/curve-v1/curve-v1-e2e.test.ts +57 -0
  73. package/src/dex/curve-v1/curve-v1.ts +144 -5
  74. package/src/dex/curve-v1/types.ts +26 -0
  75. package/src/dex/curve-v1-factory/constants.ts +2 -0
  76. package/src/dex/curve-v1-factory/curve-v1-factory-e2e.test.ts +1 -0
  77. package/src/dex/curve-v1-factory/curve-v1-factory.ts +140 -4
  78. package/src/dex/curve-v1-factory/types.ts +26 -0
  79. package/src/dex/curve-v2.ts +169 -8
  80. package/src/dex/idex.ts +6 -0
  81. package/src/dex/pancakeswap-v3/pancakeswap-v3-e2e.test.ts +3 -6
  82. package/src/dex/pancakeswap-v3/pancakeswap-v3-integration.test.ts +3 -14
  83. package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +3 -3
  84. package/src/dex/pancakeswap-v3/utils.ts +1 -4
  85. package/src/dex/simple-exchange.ts +6 -0
  86. package/src/dex/solidly/solidly-e2e.test.ts +31 -32
  87. package/src/dex/swaap-v2/swaap-v2.ts +19 -11
  88. package/src/dex/swaap-v2/types.ts +4 -4
  89. package/src/dex/swaap-v2/utils.ts +4 -4
  90. package/src/dex/swaap-v2/validators.ts +4 -7
  91. package/src/dex/uniswap-v2/uniswap-v2.ts +6 -0
  92. package/src/dex/uniswap-v3/constants.ts +5 -0
  93. package/src/dex/uniswap-v3/types.ts +23 -3
  94. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +100 -2
  95. package/src/dex/uniswap-v3/uniswap-v3.ts +138 -3
  96. package/src/dex/zerox/index.ts +7 -0
  97. package/src/implementations/local-paraswap-sdk.ts +8 -1
  98. package/src/router/directswap.ts +23 -0
  99. package/src/router/index.ts +0 -2
  100. package/src/router/payload-encoder.ts +21 -4
  101. package/src/types.ts +1 -0
  102. package/src/utils.ts +1 -1
  103. package/tests/constants-e2e.ts +3 -3
  104. package/tests/utils-e2e.ts +136 -21
  105. package/tests/utils.ts +52 -0
  106. package/.idea/aws.xml +0 -17
  107. package/.idea/codeStyles/Project.xml +0 -19
  108. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  109. package/.idea/misc.xml +0 -6
  110. package/.idea/modules.xml +0 -8
  111. package/.idea/paraswap-dex-lib.iml +0 -9
  112. package/.idea/vcs.xml +0 -6
  113. package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
  114. package/build/dex/aave-v3/tokens/avalanche.json +0 -74
  115. package/build/dex/aave-v3/tokens/fantom.json +0 -62
  116. package/build/dex/aave-v3/tokens/optimism.json +0 -50
  117. package/build/dex/aave-v3/tokens/polygon.json +0 -116
  118. package/build/dex/pancakeswap-v3/types.d.ts +0 -14
  119. package/build/dex/pancakeswap-v3/types.js +0 -3
  120. package/build/dex/pancakeswap-v3/types.js.map +0 -1
  121. package/build/dex/solidly/forks-override/chronos.d.ts +0 -20
  122. package/build/dex/solidly/forks-override/chronos.js +0 -44
  123. package/build/dex/solidly/forks-override/chronos.js.map +0 -1
@@ -1,62 +0,0 @@
1
- [
2
- {
3
- "aSymbol": "aFanAAVE",
4
- "aAddress": "0xf329e36c7bf6e5e86ce2150875a84ce77f477375",
5
- "address": "0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b",
6
- "decimals": 18
7
- },
8
- {
9
- "aSymbol": "aFanDAI",
10
- "aAddress": "0x82e64f49ed5ec1bc6e43dad4fc8af9bb3a2312ee",
11
- "address": "0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e",
12
- "decimals": 18
13
- },
14
- {
15
- "aSymbol": "aFanUSDT",
16
- "aAddress": "0x6ab707aca953edaefbc4fd23ba73294241490620",
17
- "address": "0x049d68029688eabf473097a2fc38ef61633a3c7a",
18
- "decimals": 6
19
- },
20
- {
21
- "aSymbol": "aFanLINK",
22
- "aAddress": "0x191c10aa4af7c30e871e70c95db0e4eb77237530",
23
- "address": "0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8",
24
- "decimals": 18
25
- },
26
- {
27
- "aSymbol": "aFanWFTM",
28
- "aAddress": "0x6d80113e533a2c0fe82eabd35f1875dcea89ea97",
29
- "address": "0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83",
30
- "decimals": 18
31
- },
32
- {
33
- "aSymbol": "aFanUSDC",
34
- "aAddress": "0x625e7708f30ca75bfd92586e17077590c60eb4cd",
35
- "address": "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
36
- "decimals": 6
37
- },
38
- {
39
- "aSymbol": "aFanWBTC",
40
- "aAddress": "0x078f358208685046a11c85e8ad32895ded33a249",
41
- "address": "0x321162cd933e2be498cd2267a90534a804051b11",
42
- "decimals": 8
43
- },
44
- {
45
- "aSymbol": "aFanWETH",
46
- "aAddress": "0xe50fa9b3c56ffb159cb0fca61f5c9d750e8128c8",
47
- "address": "0x74b23882a30290451a17c44f4f05243b6b58c76d",
48
- "decimals": 18
49
- },
50
- {
51
- "aSymbol": "aFanCRV",
52
- "aAddress": "0x513c7e3a9c69ca3e22550ef58ac1c0088e918fff",
53
- "address": "0x1e4f97b9f9f913c46f1632781732927b9019c68b",
54
- "decimals": 18
55
- },
56
- {
57
- "aSymbol": "aFanSUSHI",
58
- "aAddress": "0xc45a479877e1e9dfe9fcd4056c699575a1045daa",
59
- "address": "0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc",
60
- "decimals": 18
61
- }
62
- ]
@@ -1,50 +0,0 @@
1
- [
2
- {
3
- "aSymbol": "aOptDAI",
4
- "aAddress": "0x82E64f49Ed5EC1bC6e43DAD4FC8Af9bb3A2312EE",
5
- "address": "0xda10009cbd5d07dd0cecc66161fc93d7c9000da1",
6
- "decimals": 18
7
- },
8
- {
9
- "aSymbol": "aOptSUSD",
10
- "aAddress": "0x6d80113e533a2C0fe82EaBD35f1875DcEA89Ea97",
11
- "address": "0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9",
12
- "decimals": 18
13
- },
14
- {
15
- "aSymbol": "aOptUSDC",
16
- "aAddress": "0x625E7708f30cA75bfd92586e17077590C60eb4cD",
17
- "address": "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
18
- "decimals": 6
19
- },
20
- {
21
- "aSymbol": "aOptUSDT",
22
- "aAddress": "0x6ab707aca953edaefbc4fd23ba73294241490620",
23
- "address": "0x94b008aa00579c1307b0ef2c499ad98a8ce58e58",
24
- "decimals": 6
25
- },
26
- {
27
- "aSymbol": "aOptAAVE",
28
- "aAddress": "0xf329e36C7bF6E5E86ce2150875a84Ce77f477375",
29
- "address": "0x76fb31fb4af56892a25e32cfc43de717950c9278",
30
- "decimals": 18
31
- },
32
- {
33
- "aSymbol": "aOptLINK",
34
- "aAddress": "0x191c10Aa4AF7C30e871E70C95dB0E4eb77237530",
35
- "address": "0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6",
36
- "decimals": 18
37
- },
38
- {
39
- "aSymbol": "aOptWBTC",
40
- "aAddress": "0x078f358208685046a11C85e8ad32895DED33A249",
41
- "address": "0x68f180fcce6836688e9084f035309e29bf0a2095",
42
- "decimals": 8
43
- },
44
- {
45
- "aSymbol": "aOptWETH",
46
- "aAddress": "0xe50fA9b3c56FfB159cB0FCA61F5c9D750e8128c8",
47
- "address": "0x4200000000000000000000000000000000000006",
48
- "decimals": 18
49
- }
50
- ]
@@ -1,116 +0,0 @@
1
- [
2
- {
3
- "aSymbol": "aPolAGEUR",
4
- "aAddress": "0x8437d7c167dfb82ed4cb79cd44b7a32a1dd95c77",
5
- "address": "0xe0b52e49357fd4daf2c15e02058dce6bc0057db4",
6
- "decimals": 18
7
- },
8
- {
9
- "aSymbol": "aPolDAI",
10
- "aAddress": "0x82e64f49ed5ec1bc6e43dad4fc8af9bb3a2312ee",
11
- "address": "0x8f3cf7ad23cd3cadbd9735aff958023239c6a063",
12
- "decimals": 18
13
- },
14
- {
15
- "aSymbol": "aPolEURS",
16
- "aAddress": "0x38d693ce1df5aadf7bc62595a37d667ad57922e5",
17
- "address": "0xe111178a87a3bff0c8d18decba5798827539ae99",
18
- "decimals": 2
19
- },
20
- {
21
- "aSymbol": "aPolJEUR",
22
- "aAddress": "0x6533afac2e7bccb20dca161449a13a32d391fb00",
23
- "address": "0x4e3decbb3645551b8a19f0ea1678079fcb33fb4c",
24
- "decimals": 18
25
- },
26
- {
27
- "aSymbol": "aPolMIMATIC",
28
- "aAddress": "0xeBe517846d0F36eCEd99C735cbF6131e1fEB775D",
29
- "address": "0xa3Fa99A148fA48D14Ed51d610c367C61876997F1",
30
- "decimals": 18
31
- },
32
- {
33
- "aSymbol": "aPolUSDC",
34
- "aAddress": "0x625e7708f30ca75bfd92586e17077590c60eb4cd",
35
- "address": "0x2791bca1f2de4661ed88a30c99a7a9449aa84174",
36
- "decimals": 6
37
- },
38
- {
39
- "aSymbol": "aPolUSDT",
40
- "aAddress": "0x6ab707aca953edaefbc4fd23ba73294241490620",
41
- "address": "0xc2132d05d31c914a87c6611c10748aeb04b58e8f",
42
- "decimals": 6
43
- },
44
- {
45
- "aSymbol": "aPolAAVE",
46
- "aAddress": "0xf329e36c7bf6e5e86ce2150875a84ce77f477375",
47
- "address": "0xd6df932a45c0f255f85145f286ea0b292b21c90b",
48
- "decimals": 18
49
- },
50
- {
51
- "aSymbol": "aPolBAL",
52
- "aAddress": "0x8ffdf2de812095b1d19cb146e4c004587c0a0692",
53
- "address": "0x9a71012b13ca4d3d0cdc72a177df3ef03b0e76a3",
54
- "decimals": 18
55
- },
56
- {
57
- "aSymbol": "aPolCRV",
58
- "aAddress": "0x513c7e3a9c69ca3e22550ef58ac1c0088e918fff",
59
- "address": "0x172370d5cd63279efa6d502dab29171933a610af",
60
- "decimals": 18
61
- },
62
- {
63
- "aSymbol": "aPolDPI",
64
- "aAddress": "0x724dc807b04555b71ed48a6896b6f41593b8c637",
65
- "address": "0x85955046df4668e1dd369d2de9f3aeb98dd2a369",
66
- "decimals": 18
67
- },
68
- {
69
- "aSymbol": "aPolGHST",
70
- "aAddress": "0x8eb270e296023e9d92081fdf967ddd7878724424",
71
- "address": "0x385eeac5cb85a38a9a07a70c73e0a3271cfb54a7",
72
- "decimals": 18
73
- },
74
- {
75
- "aSymbol": "aPolLINK",
76
- "aAddress": "0x191c10aa4af7c30e871e70c95db0e4eb77237530",
77
- "address": "0x53e0bca35ec356bd5dddfebbd1fc0fd03fabad39",
78
- "decimals": 18
79
- },
80
- {
81
- "aSymbol": "aPolMATICX",
82
- "aAddress": "0x80cA0d8C38d2e2BcbaB66aA1648Bd1C7160500FE",
83
- "address": "0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6",
84
- "decimals": 18
85
- },
86
- {
87
- "aSymbol": "aPolSTMATIC",
88
- "aAddress": "0xEA1132120ddcDDA2F119e99Fa7A27a0d036F7Ac9",
89
- "address": "0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4",
90
- "decimals": 18
91
- },
92
- {
93
- "aSymbol": "aPolSUSHI",
94
- "aAddress": "0xc45a479877e1e9dfe9fcd4056c699575a1045daa",
95
- "address": "0x0b3f868e0be5597d5db7feb59e1cadbb0fdda50a",
96
- "decimals": 18
97
- },
98
- {
99
- "aSymbol": "aPolWBTC",
100
- "aAddress": "0x078f358208685046a11c85e8ad32895ded33a249",
101
- "address": "0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6",
102
- "decimals": 8
103
- },
104
- {
105
- "aSymbol": "aPolWETH",
106
- "aAddress": "0xe50fa9b3c56ffb159cb0fca61f5c9d750e8128c8",
107
- "address": "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619",
108
- "decimals": 18
109
- },
110
- {
111
- "aSymbol": "aPolWMATIC",
112
- "aAddress": "0x6d80113e533a2c0fe82eabd35f1875dcea89ea97",
113
- "address": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
114
- "decimals": 18
115
- }
116
- ]
@@ -1,14 +0,0 @@
1
- import { Address } from '../../types';
2
- export declare type DexParams = {
3
- router: Address;
4
- quoter: Address;
5
- factory: Address;
6
- stateMulticall: Address;
7
- uniswapMulticall: Address;
8
- supportedFees: bigint[];
9
- feeProtocols: bigint[];
10
- chunksCount: number;
11
- deployer?: Address;
12
- subgraphURL: string;
13
- initHash: string;
14
- };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-v3/types.ts"],"names":[],"mappings":""}
@@ -1,20 +0,0 @@
1
- import { Solidly } from '../solidly';
2
- import { SolidlyPair } from '../types';
3
- import { Network } from '../../../constants';
4
- import { IDexHelper } from '../../../dex-helper';
5
- export declare class Chronos extends Solidly {
6
- protected network: Network;
7
- protected dexHelper: IDexHelper;
8
- static dexKeysWithNetwork: {
9
- key: string;
10
- networks: Network[];
11
- }[];
12
- constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
13
- protected getFeesMultiCallData(pair: SolidlyPair): {
14
- callEntry: {
15
- target: string;
16
- callData: string;
17
- };
18
- callDecoder: (values: any[]) => number;
19
- };
20
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Chronos = void 0;
7
- const solidly_1 = require("../solidly");
8
- const abi_1 = require("@ethersproject/abi");
9
- const utils_1 = require("../../../utils");
10
- const config_1 = require("../config");
11
- const lodash_1 = __importDefault(require("lodash"));
12
- const ChronosFactoryABI = [
13
- {
14
- inputs: [{ internalType: 'bool', name: '_stable', type: 'bool' }],
15
- name: 'getFee',
16
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
17
- stateMutability: 'view',
18
- type: 'function',
19
- },
20
- ];
21
- const chronosFactoryIface = new abi_1.Interface(ChronosFactoryABI);
22
- class Chronos extends solidly_1.Solidly {
23
- constructor(network, dexKey, dexHelper) {
24
- super(network, dexKey, dexHelper, true);
25
- this.network = network;
26
- this.dexHelper = dexHelper;
27
- }
28
- getFeesMultiCallData(pair) {
29
- const callEntry = {
30
- target: this.factoryAddress,
31
- callData: chronosFactoryIface.encodeFunctionData('getFee', [pair.stable]),
32
- };
33
- const callDecoder = (values) => parseInt(chronosFactoryIface
34
- .decodeFunctionResult('getFee', values)[0]
35
- .toString());
36
- return {
37
- callEntry,
38
- callDecoder,
39
- };
40
- }
41
- }
42
- exports.Chronos = Chronos;
43
- Chronos.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyConfig, ['Chronos']));
44
- //# sourceMappingURL=chronos.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chronos.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/chronos.ts"],"names":[],"mappings":";;;;;;AAAA,wCAAqC;AAIrC,4CAA+C;AAC/C,0CAAuD;AACvD,sCAA0C;AAC1C,oDAAuB;AAEvB,MAAM,iBAAiB,GAAG;IACxB;QACE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACjE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACjE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,mBAAmB,GAAG,IAAI,eAAS,CAAC,iBAAiB,CAAC,CAAC;AAE7D,MAAa,OAAQ,SAAQ,iBAAO;IAIlC,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB;QAE/B,KAAK,CACH,OAAO,EACP,MAAM,EACN,SAAS,EACT,IAAI,CACL,CAAC;QATQ,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;IAQjC,CAAC;IAES,oBAAoB,CAAC,IAAiB;QAC9C,MAAM,SAAS,GAAG;YAChB,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,QAAQ,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1E,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,MAAa,EAAE,EAAE,CACpC,QAAQ,CACN,mBAAmB;aAChB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aACzC,QAAQ,EAAE,CACd,CAAC;QAEJ,OAAO;YACL,SAAS;YACT,WAAW;SACZ,CAAC;IACJ,CAAC;;AAjCH,0BAkCC;AAjCe,0BAAkB,GAC9B,IAAA,6BAAqB,EAAC,gBAAC,CAAC,IAAI,CAAC,sBAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC"}