@katanaperps/katana-perps-sdk 1.0.0 → 1.0.2-beta.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 (86) hide show
  1. package/README.md +1 -1
  2. package/dist/abis/ExchangeLayerZeroAdapter_v1.json +728 -0
  3. package/dist/abis/IVaultComposerSync.json +537 -0
  4. package/dist/abis/KatanaPerpsStargateForwarder_v1.json +563 -0
  5. package/dist/bridge/config.d.ts +46 -57
  6. package/dist/bridge/config.d.ts.map +1 -1
  7. package/dist/bridge/config.js +39 -48
  8. package/dist/bridge/deposit.d.ts +23 -3
  9. package/dist/bridge/deposit.d.ts.map +1 -1
  10. package/dist/bridge/deposit.js +114 -42
  11. package/dist/bridge/utils.d.ts +26 -32
  12. package/dist/bridge/utils.d.ts.map +1 -1
  13. package/dist/bridge/withdraw.d.ts +1 -1
  14. package/dist/bridge/withdraw.d.ts.map +1 -1
  15. package/dist/bridge/withdraw.js +13 -32
  16. package/dist/client/rest/authenticated.d.ts +1 -0
  17. package/dist/client/rest/authenticated.d.ts.map +1 -1
  18. package/dist/client/rest/authenticated.js +24 -13
  19. package/dist/client/rest/public.d.ts +23 -0
  20. package/dist/client/rest/public.d.ts.map +1 -1
  21. package/dist/client/rest/public.js +25 -0
  22. package/dist/typechain-types/{ExchangeLayerZeroAdapter_v3.d.ts → ExchangeLayerZeroAdapter_v1.d.ts} +32 -37
  23. package/dist/typechain-types/ExchangeLayerZeroAdapter_v1.d.ts.map +1 -0
  24. package/dist/typechain-types/IVaultComposerSync.d.ts +247 -0
  25. package/dist/typechain-types/IVaultComposerSync.d.ts.map +1 -0
  26. package/dist/typechain-types/{KumaStargateForwarder_v2.d.ts → KatanaPerpsStargateForwarder_v1.d.ts} +38 -14
  27. package/dist/typechain-types/KatanaPerpsStargateForwarder_v1.d.ts.map +1 -0
  28. package/dist/typechain-types/factories/{ExchangeLayerZeroAdapter_v3__factory.d.ts → ExchangeLayerZeroAdapter_v1__factory.d.ts} +62 -36
  29. package/dist/typechain-types/factories/{ExchangeLayerZeroAdapter_v3__factory.d.ts.map → ExchangeLayerZeroAdapter_v1__factory.d.ts.map} +1 -1
  30. package/dist/typechain-types/factories/{ExchangeLayerZeroAdapter_v3__factory.js → ExchangeLayerZeroAdapter_v1__factory.js} +77 -42
  31. package/dist/typechain-types/factories/IVaultComposerSync__factory.d.ts +422 -0
  32. package/dist/typechain-types/factories/IVaultComposerSync__factory.d.ts.map +1 -0
  33. package/dist/typechain-types/factories/IVaultComposerSync__factory.js +554 -0
  34. package/dist/typechain-types/factories/{KumaStargateForwarder_v2__factory.d.ts → KatanaPerpsStargateForwarder_v1__factory.d.ts} +103 -31
  35. package/dist/typechain-types/factories/KatanaPerpsStargateForwarder_v1__factory.d.ts.map +1 -0
  36. package/dist/typechain-types/factories/{KumaStargateForwarder_v2__factory.js → KatanaPerpsStargateForwarder_v1__factory.js} +125 -31
  37. package/dist/typechain-types/factories/index.d.ts +3 -0
  38. package/dist/typechain-types/factories/index.d.ts.map +1 -1
  39. package/dist/typechain-types/factories/index.js +7 -1
  40. package/dist/typechain-types/index.d.ts +6 -0
  41. package/dist/typechain-types/index.d.ts.map +1 -1
  42. package/dist/typechain-types/index.js +7 -1
  43. package/dist/types/enums/request.d.ts +2 -4
  44. package/dist/types/enums/request.d.ts.map +1 -1
  45. package/dist/types/enums/request.js +1 -2
  46. package/dist/types/rest/endpoints/GetExchange.d.ts +10 -0
  47. package/dist/types/rest/endpoints/GetExchange.d.ts.map +1 -1
  48. package/dist/types/rest/endpoints/GetFundingRateSamples.d.ts +40 -0
  49. package/dist/types/rest/endpoints/GetFundingRateSamples.d.ts.map +1 -0
  50. package/dist/types/rest/endpoints/GetGasFees.d.ts +2 -0
  51. package/dist/types/rest/endpoints/GetGasFees.d.ts.map +1 -1
  52. package/dist/types/rest/endpoints/index.d.ts +1 -0
  53. package/dist/types/rest/endpoints/index.d.ts.map +1 -1
  54. package/dist/types/rest/endpoints/index.js +1 -0
  55. package/dist/types/rest/endpoints/internal.d.ts +3 -2
  56. package/dist/types/rest/endpoints/internal.d.ts.map +1 -1
  57. package/package.json +1 -1
  58. package/dist/typechain-types/ExchangeLayerZeroAdapter.d.ts +0 -253
  59. package/dist/typechain-types/ExchangeLayerZeroAdapter.d.ts.map +0 -1
  60. package/dist/typechain-types/ExchangeLayerZeroAdapter_v2.d.ts +0 -338
  61. package/dist/typechain-types/ExchangeLayerZeroAdapter_v2.d.ts.map +0 -1
  62. package/dist/typechain-types/ExchangeLayerZeroAdapter_v3.d.ts.map +0 -1
  63. package/dist/typechain-types/Exchange_v2.d.ts +0 -2148
  64. package/dist/typechain-types/Exchange_v2.d.ts.map +0 -1
  65. package/dist/typechain-types/KumaStargateForwarder_v1.d.ts +0 -252
  66. package/dist/typechain-types/KumaStargateForwarder_v1.d.ts.map +0 -1
  67. package/dist/typechain-types/KumaStargateForwarder_v1.js +0 -2
  68. package/dist/typechain-types/KumaStargateForwarder_v2.d.ts.map +0 -1
  69. package/dist/typechain-types/KumaStargateForwarder_v2.js +0 -2
  70. package/dist/typechain-types/factories/ExchangeLayerZeroAdapter__factory.d.ts +0 -359
  71. package/dist/typechain-types/factories/ExchangeLayerZeroAdapter__factory.d.ts.map +0 -1
  72. package/dist/typechain-types/factories/ExchangeLayerZeroAdapter__factory.js +0 -471
  73. package/dist/typechain-types/factories/ExchangeLayerZeroAdapter_v2__factory.d.ts +0 -419
  74. package/dist/typechain-types/factories/ExchangeLayerZeroAdapter_v2__factory.d.ts.map +0 -1
  75. package/dist/typechain-types/factories/ExchangeLayerZeroAdapter_v2__factory.js +0 -545
  76. package/dist/typechain-types/factories/Exchange_v2__factory.d.ts +0 -2832
  77. package/dist/typechain-types/factories/Exchange_v2__factory.d.ts.map +0 -1
  78. package/dist/typechain-types/factories/Exchange_v2__factory.js +0 -3636
  79. package/dist/typechain-types/factories/KumaStargateForwarder_v1__factory.d.ts +0 -354
  80. package/dist/typechain-types/factories/KumaStargateForwarder_v1__factory.d.ts.map +0 -1
  81. package/dist/typechain-types/factories/KumaStargateForwarder_v1__factory.js +0 -464
  82. package/dist/typechain-types/factories/KumaStargateForwarder_v2__factory.d.ts.map +0 -1
  83. /package/dist/typechain-types/{ExchangeLayerZeroAdapter.js → ExchangeLayerZeroAdapter_v1.js} +0 -0
  84. /package/dist/typechain-types/{ExchangeLayerZeroAdapter_v2.js → IVaultComposerSync.js} +0 -0
  85. /package/dist/typechain-types/{ExchangeLayerZeroAdapter_v3.js → KatanaPerpsStargateForwarder_v1.js} +0 -0
  86. /package/dist/{typechain-types/Exchange_v2.js → types/rest/endpoints/GetFundingRateSamples.js} +0 -0
@@ -0,0 +1,422 @@
1
+ import { type ContractRunner } from 'ethers';
2
+ import type { IVaultComposerSync, IVaultComposerSyncInterface } from '../IVaultComposerSync';
3
+ export declare class IVaultComposerSync__factory {
4
+ static readonly abi: readonly [{
5
+ readonly inputs: readonly [{
6
+ readonly internalType: "address";
7
+ readonly name: "assetERC20";
8
+ readonly type: "address";
9
+ }, {
10
+ readonly internalType: "address";
11
+ readonly name: "vaultAsset";
12
+ readonly type: "address";
13
+ }];
14
+ readonly name: "AssetTokenNotVaultAsset";
15
+ readonly type: "error";
16
+ }, {
17
+ readonly inputs: readonly [{
18
+ readonly internalType: "uint256";
19
+ readonly name: "expectedMsgValue";
20
+ readonly type: "uint256";
21
+ }, {
22
+ readonly internalType: "uint256";
23
+ readonly name: "actualMsgValue";
24
+ readonly type: "uint256";
25
+ }];
26
+ readonly name: "InsufficientMsgValue";
27
+ readonly type: "error";
28
+ }, {
29
+ readonly inputs: readonly [{
30
+ readonly internalType: "address";
31
+ readonly name: "caller";
32
+ readonly type: "address";
33
+ }];
34
+ readonly name: "OnlyEndpoint";
35
+ readonly type: "error";
36
+ }, {
37
+ readonly inputs: readonly [{
38
+ readonly internalType: "address";
39
+ readonly name: "caller";
40
+ readonly type: "address";
41
+ }];
42
+ readonly name: "OnlySelf";
43
+ readonly type: "error";
44
+ }, {
45
+ readonly inputs: readonly [{
46
+ readonly internalType: "address";
47
+ readonly name: "caller";
48
+ readonly type: "address";
49
+ }];
50
+ readonly name: "OnlyValidComposeCaller";
51
+ readonly type: "error";
52
+ }, {
53
+ readonly inputs: readonly [{
54
+ readonly internalType: "address";
55
+ readonly name: "shareOFT";
56
+ readonly type: "address";
57
+ }];
58
+ readonly name: "ShareOFTNotAdapter";
59
+ readonly type: "error";
60
+ }, {
61
+ readonly inputs: readonly [{
62
+ readonly internalType: "address";
63
+ readonly name: "shareERC20";
64
+ readonly type: "address";
65
+ }, {
66
+ readonly internalType: "address";
67
+ readonly name: "vault";
68
+ readonly type: "address";
69
+ }];
70
+ readonly name: "ShareTokenNotVault";
71
+ readonly type: "error";
72
+ }, {
73
+ readonly inputs: readonly [{
74
+ readonly internalType: "uint256";
75
+ readonly name: "vaultAmountOut";
76
+ readonly type: "uint256";
77
+ }, {
78
+ readonly internalType: "uint256";
79
+ readonly name: "minVaultAmountOut";
80
+ readonly type: "uint256";
81
+ }];
82
+ readonly name: "SlippageExceeded";
83
+ readonly type: "error";
84
+ }, {
85
+ readonly anonymous: false;
86
+ readonly inputs: readonly [{
87
+ readonly indexed: false;
88
+ readonly internalType: "bytes32";
89
+ readonly name: "sender";
90
+ readonly type: "bytes32";
91
+ }, {
92
+ readonly indexed: false;
93
+ readonly internalType: "bytes32";
94
+ readonly name: "recipient";
95
+ readonly type: "bytes32";
96
+ }, {
97
+ readonly indexed: false;
98
+ readonly internalType: "uint32";
99
+ readonly name: "dstEid";
100
+ readonly type: "uint32";
101
+ }, {
102
+ readonly indexed: false;
103
+ readonly internalType: "uint256";
104
+ readonly name: "assetAmt";
105
+ readonly type: "uint256";
106
+ }, {
107
+ readonly indexed: false;
108
+ readonly internalType: "uint256";
109
+ readonly name: "shareAmt";
110
+ readonly type: "uint256";
111
+ }];
112
+ readonly name: "Deposited";
113
+ readonly type: "event";
114
+ }, {
115
+ readonly anonymous: false;
116
+ readonly inputs: readonly [{
117
+ readonly indexed: false;
118
+ readonly internalType: "bytes32";
119
+ readonly name: "sender";
120
+ readonly type: "bytes32";
121
+ }, {
122
+ readonly indexed: false;
123
+ readonly internalType: "bytes32";
124
+ readonly name: "recipient";
125
+ readonly type: "bytes32";
126
+ }, {
127
+ readonly indexed: false;
128
+ readonly internalType: "uint32";
129
+ readonly name: "dstEid";
130
+ readonly type: "uint32";
131
+ }, {
132
+ readonly indexed: false;
133
+ readonly internalType: "uint256";
134
+ readonly name: "shareAmt";
135
+ readonly type: "uint256";
136
+ }, {
137
+ readonly indexed: false;
138
+ readonly internalType: "uint256";
139
+ readonly name: "assetAmt";
140
+ readonly type: "uint256";
141
+ }];
142
+ readonly name: "Redeemed";
143
+ readonly type: "event";
144
+ }, {
145
+ readonly anonymous: false;
146
+ readonly inputs: readonly [{
147
+ readonly indexed: true;
148
+ readonly internalType: "bytes32";
149
+ readonly name: "guid";
150
+ readonly type: "bytes32";
151
+ }];
152
+ readonly name: "Refunded";
153
+ readonly type: "event";
154
+ }, {
155
+ readonly anonymous: false;
156
+ readonly inputs: readonly [{
157
+ readonly indexed: true;
158
+ readonly internalType: "bytes32";
159
+ readonly name: "guid";
160
+ readonly type: "bytes32";
161
+ }];
162
+ readonly name: "Sent";
163
+ readonly type: "event";
164
+ }, {
165
+ readonly inputs: readonly [];
166
+ readonly name: "ASSET_ERC20";
167
+ readonly outputs: readonly [{
168
+ readonly internalType: "address";
169
+ readonly name: "";
170
+ readonly type: "address";
171
+ }];
172
+ readonly stateMutability: "view";
173
+ readonly type: "function";
174
+ }, {
175
+ readonly inputs: readonly [];
176
+ readonly name: "ASSET_OFT";
177
+ readonly outputs: readonly [{
178
+ readonly internalType: "address";
179
+ readonly name: "";
180
+ readonly type: "address";
181
+ }];
182
+ readonly stateMutability: "view";
183
+ readonly type: "function";
184
+ }, {
185
+ readonly inputs: readonly [];
186
+ readonly name: "ENDPOINT";
187
+ readonly outputs: readonly [{
188
+ readonly internalType: "address";
189
+ readonly name: "";
190
+ readonly type: "address";
191
+ }];
192
+ readonly stateMutability: "view";
193
+ readonly type: "function";
194
+ }, {
195
+ readonly inputs: readonly [];
196
+ readonly name: "SHARE_ERC20";
197
+ readonly outputs: readonly [{
198
+ readonly internalType: "address";
199
+ readonly name: "";
200
+ readonly type: "address";
201
+ }];
202
+ readonly stateMutability: "view";
203
+ readonly type: "function";
204
+ }, {
205
+ readonly inputs: readonly [];
206
+ readonly name: "SHARE_OFT";
207
+ readonly outputs: readonly [{
208
+ readonly internalType: "address";
209
+ readonly name: "";
210
+ readonly type: "address";
211
+ }];
212
+ readonly stateMutability: "view";
213
+ readonly type: "function";
214
+ }, {
215
+ readonly inputs: readonly [];
216
+ readonly name: "VAULT";
217
+ readonly outputs: readonly [{
218
+ readonly internalType: "contract IERC4626";
219
+ readonly name: "";
220
+ readonly type: "address";
221
+ }];
222
+ readonly stateMutability: "view";
223
+ readonly type: "function";
224
+ }, {
225
+ readonly inputs: readonly [];
226
+ readonly name: "VAULT_EID";
227
+ readonly outputs: readonly [{
228
+ readonly internalType: "uint32";
229
+ readonly name: "";
230
+ readonly type: "uint32";
231
+ }];
232
+ readonly stateMutability: "view";
233
+ readonly type: "function";
234
+ }, {
235
+ readonly inputs: readonly [{
236
+ readonly internalType: "uint256";
237
+ readonly name: "assetAmount";
238
+ readonly type: "uint256";
239
+ }, {
240
+ readonly components: readonly [{
241
+ readonly internalType: "uint32";
242
+ readonly name: "dstEid";
243
+ readonly type: "uint32";
244
+ }, {
245
+ readonly internalType: "bytes32";
246
+ readonly name: "to";
247
+ readonly type: "bytes32";
248
+ }, {
249
+ readonly internalType: "uint256";
250
+ readonly name: "amountLD";
251
+ readonly type: "uint256";
252
+ }, {
253
+ readonly internalType: "uint256";
254
+ readonly name: "minAmountLD";
255
+ readonly type: "uint256";
256
+ }, {
257
+ readonly internalType: "bytes";
258
+ readonly name: "extraOptions";
259
+ readonly type: "bytes";
260
+ }, {
261
+ readonly internalType: "bytes";
262
+ readonly name: "composeMsg";
263
+ readonly type: "bytes";
264
+ }, {
265
+ readonly internalType: "bytes";
266
+ readonly name: "oftCmd";
267
+ readonly type: "bytes";
268
+ }];
269
+ readonly internalType: "struct SendParam";
270
+ readonly name: "sendParam";
271
+ readonly type: "tuple";
272
+ }, {
273
+ readonly internalType: "address";
274
+ readonly name: "refundAddress";
275
+ readonly type: "address";
276
+ }];
277
+ readonly name: "depositAndSend";
278
+ readonly outputs: readonly [];
279
+ readonly stateMutability: "payable";
280
+ readonly type: "function";
281
+ }, {
282
+ readonly inputs: readonly [{
283
+ readonly internalType: "address";
284
+ readonly name: "_from";
285
+ readonly type: "address";
286
+ }, {
287
+ readonly internalType: "bytes32";
288
+ readonly name: "_guid";
289
+ readonly type: "bytes32";
290
+ }, {
291
+ readonly internalType: "bytes";
292
+ readonly name: "_message";
293
+ readonly type: "bytes";
294
+ }, {
295
+ readonly internalType: "address";
296
+ readonly name: "_executor";
297
+ readonly type: "address";
298
+ }, {
299
+ readonly internalType: "bytes";
300
+ readonly name: "_extraData";
301
+ readonly type: "bytes";
302
+ }];
303
+ readonly name: "lzCompose";
304
+ readonly outputs: readonly [];
305
+ readonly stateMutability: "payable";
306
+ readonly type: "function";
307
+ }, {
308
+ readonly inputs: readonly [{
309
+ readonly internalType: "address";
310
+ readonly name: "from";
311
+ readonly type: "address";
312
+ }, {
313
+ readonly internalType: "address";
314
+ readonly name: "targetOft";
315
+ readonly type: "address";
316
+ }, {
317
+ readonly internalType: "uint256";
318
+ readonly name: "vaultInAmount";
319
+ readonly type: "uint256";
320
+ }, {
321
+ readonly components: readonly [{
322
+ readonly internalType: "uint32";
323
+ readonly name: "dstEid";
324
+ readonly type: "uint32";
325
+ }, {
326
+ readonly internalType: "bytes32";
327
+ readonly name: "to";
328
+ readonly type: "bytes32";
329
+ }, {
330
+ readonly internalType: "uint256";
331
+ readonly name: "amountLD";
332
+ readonly type: "uint256";
333
+ }, {
334
+ readonly internalType: "uint256";
335
+ readonly name: "minAmountLD";
336
+ readonly type: "uint256";
337
+ }, {
338
+ readonly internalType: "bytes";
339
+ readonly name: "extraOptions";
340
+ readonly type: "bytes";
341
+ }, {
342
+ readonly internalType: "bytes";
343
+ readonly name: "composeMsg";
344
+ readonly type: "bytes";
345
+ }, {
346
+ readonly internalType: "bytes";
347
+ readonly name: "oftCmd";
348
+ readonly type: "bytes";
349
+ }];
350
+ readonly internalType: "struct SendParam";
351
+ readonly name: "sendParam";
352
+ readonly type: "tuple";
353
+ }];
354
+ readonly name: "quoteSend";
355
+ readonly outputs: readonly [{
356
+ readonly components: readonly [{
357
+ readonly internalType: "uint256";
358
+ readonly name: "nativeFee";
359
+ readonly type: "uint256";
360
+ }, {
361
+ readonly internalType: "uint256";
362
+ readonly name: "lzTokenFee";
363
+ readonly type: "uint256";
364
+ }];
365
+ readonly internalType: "struct MessagingFee";
366
+ readonly name: "";
367
+ readonly type: "tuple";
368
+ }];
369
+ readonly stateMutability: "view";
370
+ readonly type: "function";
371
+ }, {
372
+ readonly inputs: readonly [{
373
+ readonly internalType: "uint256";
374
+ readonly name: "shareAmount";
375
+ readonly type: "uint256";
376
+ }, {
377
+ readonly components: readonly [{
378
+ readonly internalType: "uint32";
379
+ readonly name: "dstEid";
380
+ readonly type: "uint32";
381
+ }, {
382
+ readonly internalType: "bytes32";
383
+ readonly name: "to";
384
+ readonly type: "bytes32";
385
+ }, {
386
+ readonly internalType: "uint256";
387
+ readonly name: "amountLD";
388
+ readonly type: "uint256";
389
+ }, {
390
+ readonly internalType: "uint256";
391
+ readonly name: "minAmountLD";
392
+ readonly type: "uint256";
393
+ }, {
394
+ readonly internalType: "bytes";
395
+ readonly name: "extraOptions";
396
+ readonly type: "bytes";
397
+ }, {
398
+ readonly internalType: "bytes";
399
+ readonly name: "composeMsg";
400
+ readonly type: "bytes";
401
+ }, {
402
+ readonly internalType: "bytes";
403
+ readonly name: "oftCmd";
404
+ readonly type: "bytes";
405
+ }];
406
+ readonly internalType: "struct SendParam";
407
+ readonly name: "sendParam";
408
+ readonly type: "tuple";
409
+ }, {
410
+ readonly internalType: "address";
411
+ readonly name: "refundAddress";
412
+ readonly type: "address";
413
+ }];
414
+ readonly name: "redeemAndSend";
415
+ readonly outputs: readonly [];
416
+ readonly stateMutability: "payable";
417
+ readonly type: "function";
418
+ }];
419
+ static createInterface(): IVaultComposerSyncInterface;
420
+ static connect(address: string, runner?: ContractRunner | null): IVaultComposerSync;
421
+ }
422
+ //# sourceMappingURL=IVaultComposerSync__factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IVaultComposerSync__factory.d.ts","sourceRoot":"","sources":["../../../src/typechain-types/factories/IVaultComposerSync__factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,KAAK,EACV,kBAAkB,EAClB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AA4hB/B,qBAAa,2BAA2B;IACtC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,2BAA2B;IAGrD,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAC7B,kBAAkB;CAGtB"}