@w3lib/solana-batch-call 0.2.1 → 0.3.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.
- package/CHANGELOG.md +19 -0
- package/README.md +132 -2
- package/dist/client.d.ts +4 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -0
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +5 -0
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +16 -0
- package/dist/layout.js.map +1 -1
- package/dist/lp.d.ts +123 -0
- package/dist/lp.d.ts.map +1 -0
- package/dist/lp.js +631 -0
- package/dist/lp.js.map +1 -0
- package/dist/lpMath.d.ts +37 -0
- package/dist/lpMath.d.ts.map +1 -0
- package/dist/lpMath.js +176 -0
- package/dist/lpMath.js.map +1 -0
- package/dist/rpc.d.ts +3 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +70 -10
- package/dist/rpc.js.map +1 -1
- package/dist/shortcuts.d.ts +8 -0
- package/dist/shortcuts.d.ts.map +1 -1
- package/dist/shortcuts.js +1 -1
- package/dist/shortcuts.js.map +1 -1
- package/dist/subpaths/lp.d.ts +31 -0
- package/dist/subpaths/lp.d.ts.map +1 -0
- package/dist/subpaths/lp.js +33 -0
- package/dist/subpaths/lp.js.map +1 -0
- package/dist/subpaths/write.d.ts +22 -0
- package/dist/subpaths/write.d.ts.map +1 -0
- package/dist/subpaths/write.js +19 -0
- package/dist/subpaths/write.js.map +1 -0
- package/dist/write/batch.d.ts +41 -0
- package/dist/write/batch.d.ts.map +1 -0
- package/dist/write/batch.js +46 -0
- package/dist/write/batch.js.map +1 -0
- package/dist/write/collect.d.ts +50 -0
- package/dist/write/collect.d.ts.map +1 -0
- package/dist/write/collect.js +220 -0
- package/dist/write/collect.js.map +1 -0
- package/dist/write/instructions.d.ts +16 -0
- package/dist/write/instructions.d.ts.map +1 -0
- package/dist/write/instructions.js +89 -0
- package/dist/write/instructions.js.map +1 -0
- package/dist/write/send.d.ts +115 -0
- package/dist/write/send.d.ts.map +1 -0
- package/dist/write/send.js +720 -0
- package/dist/write/send.js.map +1 -0
- package/dist/write/signer.d.ts +94 -0
- package/dist/write/signer.d.ts.map +1 -0
- package/dist/write/signer.js +197 -0
- package/dist/write/signer.js.map +1 -0
- package/dist/write/transaction.d.ts +75 -0
- package/dist/write/transaction.d.ts.map +1 -0
- package/dist/write/transaction.js +133 -0
- package/dist/write/transaction.js.map +1 -0
- package/dist/write/transfer.d.ts +72 -0
- package/dist/write/transfer.d.ts.map +1 -0
- package/dist/write/transfer.js +127 -0
- package/dist/write/transfer.js.map +1 -0
- package/package.json +23 -12
- package/src/client.ts +10 -0
- package/src/index.ts +1 -0
- package/src/layout.ts +17 -0
- package/src/lp.ts +849 -0
- package/src/lpMath.ts +205 -0
- package/src/rpc.ts +77 -11
- package/src/shortcuts.ts +1 -1
- package/src/subpaths/lp.ts +62 -0
- package/src/subpaths/write.ts +29 -0
- package/src/write/batch.ts +78 -0
- package/src/write/collect.ts +286 -0
- package/src/write/instructions.ts +98 -0
- package/src/write/send.ts +876 -0
- package/src/write/signer.ts +314 -0
- package/src/write/transaction.ts +181 -0
- package/src/write/transfer.ts +189 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { ASSOCIATED_TOKEN_PROGRAM_ID, SYSTEM_PROGRAM_ID } from '../constants.js';
|
|
2
|
+
export const COMPUTE_BUDGET_PROGRAM_ID = 'ComputeBudget111111111111111111111111111111';
|
|
3
|
+
/** 单笔交易的计算单元上限 */
|
|
4
|
+
export const MAX_COMPUTE_UNITS = 1_400_000;
|
|
5
|
+
function bytes(size, write) {
|
|
6
|
+
const out = new Uint8Array(size);
|
|
7
|
+
write(new DataView(out.buffer));
|
|
8
|
+
return out;
|
|
9
|
+
}
|
|
10
|
+
/** System Program Transfer:转 SOL */
|
|
11
|
+
export function systemTransfer(from, to, lamports) {
|
|
12
|
+
return {
|
|
13
|
+
programId: SYSTEM_PROGRAM_ID,
|
|
14
|
+
keys: [
|
|
15
|
+
{ pubkey: from, isSigner: true, isWritable: true },
|
|
16
|
+
{ pubkey: to, isSigner: false, isWritable: true },
|
|
17
|
+
],
|
|
18
|
+
data: bytes(12, (v) => {
|
|
19
|
+
v.setUint32(0, 2, true);
|
|
20
|
+
v.setBigUint64(4, lamports, true);
|
|
21
|
+
}),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** SPL Token / Token-2022 TransferChecked(校验 mint 和精度) */
|
|
25
|
+
export function transferChecked(source, mint, destination, owner, amount, decimals, tokenProgram) {
|
|
26
|
+
return {
|
|
27
|
+
programId: tokenProgram,
|
|
28
|
+
keys: [
|
|
29
|
+
{ pubkey: source, isSigner: false, isWritable: true },
|
|
30
|
+
{ pubkey: mint, isSigner: false, isWritable: false },
|
|
31
|
+
{ pubkey: destination, isSigner: false, isWritable: true },
|
|
32
|
+
{ pubkey: owner, isSigner: true, isWritable: false },
|
|
33
|
+
],
|
|
34
|
+
data: bytes(10, (v) => {
|
|
35
|
+
v.setUint8(0, 12);
|
|
36
|
+
v.setBigUint64(1, amount, true);
|
|
37
|
+
v.setUint8(9, decimals);
|
|
38
|
+
}),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/** 创建关联代币账户(已存在时什么都不做),租金由 payer 付 */
|
|
42
|
+
export function createAssociatedTokenAccountIdempotent(payer, ata, owner, mint, tokenProgram) {
|
|
43
|
+
return {
|
|
44
|
+
programId: ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
45
|
+
keys: [
|
|
46
|
+
{ pubkey: payer, isSigner: true, isWritable: true },
|
|
47
|
+
{ pubkey: ata, isSigner: false, isWritable: true },
|
|
48
|
+
{ pubkey: owner, isSigner: false, isWritable: false },
|
|
49
|
+
{ pubkey: mint, isSigner: false, isWritable: false },
|
|
50
|
+
{ pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },
|
|
51
|
+
{ pubkey: tokenProgram, isSigner: false, isWritable: false },
|
|
52
|
+
],
|
|
53
|
+
data: new Uint8Array([1]),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/** 关闭代币账户(余额必须为 0),租金退给 destination */
|
|
57
|
+
export function closeAccount(account, destination, owner, tokenProgram) {
|
|
58
|
+
return {
|
|
59
|
+
programId: tokenProgram,
|
|
60
|
+
keys: [
|
|
61
|
+
{ pubkey: account, isSigner: false, isWritable: true },
|
|
62
|
+
{ pubkey: destination, isSigner: false, isWritable: true },
|
|
63
|
+
{ pubkey: owner, isSigner: true, isWritable: false },
|
|
64
|
+
],
|
|
65
|
+
data: new Uint8Array([9]),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export function setComputeUnitLimit(units) {
|
|
69
|
+
return {
|
|
70
|
+
programId: COMPUTE_BUDGET_PROGRAM_ID,
|
|
71
|
+
keys: [],
|
|
72
|
+
data: bytes(5, (v) => {
|
|
73
|
+
v.setUint8(0, 2);
|
|
74
|
+
v.setUint32(1, units, true);
|
|
75
|
+
}),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/** 优先费用:每个计算单元多付多少 micro-lamports */
|
|
79
|
+
export function setComputeUnitPrice(microLamports) {
|
|
80
|
+
return {
|
|
81
|
+
programId: COMPUTE_BUDGET_PROGRAM_ID,
|
|
82
|
+
keys: [],
|
|
83
|
+
data: bytes(9, (v) => {
|
|
84
|
+
v.setUint8(0, 3);
|
|
85
|
+
v.setBigUint64(1, microLamports, true);
|
|
86
|
+
}),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/write/instructions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { SolanaClient } from '../client.js';
|
|
2
|
+
import type { ResolvedSigner, SignerInput } from './signer.js';
|
|
3
|
+
import { type Instruction } from './transaction.js';
|
|
4
|
+
/**
|
|
5
|
+
* 每个调用的状态:
|
|
6
|
+
* - confirmed:已上链且执行成功
|
|
7
|
+
* - reverted:已上链但执行失败(手续费已扣);同一笔交易里的其他调用也一起回滚,同样是 reverted
|
|
8
|
+
* - failed:没有发出去(模拟失败、SOL 不够付手续费、交易过期且重试次数用完等),不花手续费
|
|
9
|
+
* - sent:已广播,没等确认(wait: false,或等待中途取消)。广播时节点都连不上(交易可能已经发出)也算 sent,error 里有说明
|
|
10
|
+
* - pending:等到 timeout 还没确认,交易的 blockhash 过期前仍可能上链
|
|
11
|
+
* - skipped:没有执行:前面的调用失败(continueOnError 为 false 时)、已取消、余额为 0 等
|
|
12
|
+
* - simulated:dryRun 模拟通过
|
|
13
|
+
*/
|
|
14
|
+
export type WriteStatus = 'confirmed' | 'reverted' | 'failed' | 'sent' | 'pending' | 'skipped' | 'simulated';
|
|
15
|
+
/** 发送参数(batchCall / batchTransfer / batchCollect 共用) */
|
|
16
|
+
export interface SendOptions {
|
|
17
|
+
/** 等待确认。默认 true;false 时广播后即返回,status 为 'sent'(不会在过期后重发) */
|
|
18
|
+
wait?: boolean;
|
|
19
|
+
/** 每笔交易等待确认的最长时间(毫秒),超时 status 为 'pending'。默认 120000 */
|
|
20
|
+
timeout?: number;
|
|
21
|
+
/** 查询确认状态的间隔(毫秒),默认 2000。等待期间每次都重发一次原交易(同一笔签名交易重复发送是安全的) */
|
|
22
|
+
pollInterval?: number;
|
|
23
|
+
/** 同时处理的手续费支付者数(同一支付者的交易按顺序发出,不等上一笔确认),默认 8 */
|
|
24
|
+
concurrency?: number;
|
|
25
|
+
/**
|
|
26
|
+
* 手续费支付者:所有交易的手续费(以及新建代币账户的租金)由它付,发送方的钱包不需要有 SOL。
|
|
27
|
+
* 不传时每个钱包自己付
|
|
28
|
+
*/
|
|
29
|
+
feePayer?: SignerInput;
|
|
30
|
+
/**
|
|
31
|
+
* 优先费用(每个计算单元多少 micro-lamports),或 'auto'(默认):按 getRecentPrioritizationFees 里这笔交易可写账户的最近费用取 75 分位,
|
|
32
|
+
* 不超过 maxPriorityFee。计算单元上限按模拟结果设置(× 1.1 + 1000),优先费用 = 单价 × 上限
|
|
33
|
+
*/
|
|
34
|
+
priorityFee?: number | bigint | 'auto';
|
|
35
|
+
/** 'auto' 时优先费用单价的上限(micro-lamports),默认 1000000 */
|
|
36
|
+
maxPriorityFee?: number | bigint;
|
|
37
|
+
/** 交易过期(blockhash 失效)仍未上链时,重新模拟、换新 blockhash 重发的次数。默认 2 */
|
|
38
|
+
retries?: number;
|
|
39
|
+
/** 等到什么确认级别,默认 'confirmed' */
|
|
40
|
+
commitment?: 'confirmed' | 'finalized';
|
|
41
|
+
/** 只模拟、不发送,status 为 'simulated' 或 'failed'。注意:依赖前一笔交易结果的调用模拟会失败 */
|
|
42
|
+
dryRun?: boolean;
|
|
43
|
+
/** 取消:不再发新交易,已发出的不再等待确认(status 为 'sent') */
|
|
44
|
+
signal?: AbortSignal;
|
|
45
|
+
/** 每个结果状态变化时回调,用于展示进度 */
|
|
46
|
+
onUpdate?: (result: WriteResult) => void;
|
|
47
|
+
}
|
|
48
|
+
/** 每个调用的结果,都是字符串 / 数字 / null,可以直接 JSON.stringify */
|
|
49
|
+
export interface WriteResult {
|
|
50
|
+
/** 在输入里的下标 */
|
|
51
|
+
index: number;
|
|
52
|
+
/** 发送的钱包地址 */
|
|
53
|
+
from: string;
|
|
54
|
+
status: WriteStatus;
|
|
55
|
+
/** 交易签名(同一笔交易里的多个调用相同) */
|
|
56
|
+
signature: string | null;
|
|
57
|
+
/** 上链的 slot */
|
|
58
|
+
slot: number | null;
|
|
59
|
+
/** 整笔交易的手续费(lamports):每个签名 5000 + 优先费用;同一笔交易里的多个调用相同,不含新建账户的租金 */
|
|
60
|
+
fee: string | null;
|
|
61
|
+
/** 模拟时整笔交易消耗的计算单元 */
|
|
62
|
+
computeUnits: number | null;
|
|
63
|
+
error: string | null;
|
|
64
|
+
}
|
|
65
|
+
/** 交易层面的结果 */
|
|
66
|
+
export interface TxOutcome {
|
|
67
|
+
status: WriteStatus;
|
|
68
|
+
signature: string | null;
|
|
69
|
+
slot: number | null;
|
|
70
|
+
fee: bigint | null;
|
|
71
|
+
computeUnits: number | null;
|
|
72
|
+
error: string | null;
|
|
73
|
+
}
|
|
74
|
+
/** 一个调用:要原子执行的一组指令(同一笔交易里的多个调用,任一失败整笔回滚) */
|
|
75
|
+
export interface Unit {
|
|
76
|
+
instructions: Instruction[];
|
|
77
|
+
/** 手续费支付者 */
|
|
78
|
+
payer: ResolvedSigner;
|
|
79
|
+
/** 指令需要的其他签名者 */
|
|
80
|
+
signers: ResolvedSigner[];
|
|
81
|
+
/** 单独成一笔交易,计算单元上限和优先费用固定(扫空 SOL 时手续费要事先算好) */
|
|
82
|
+
fixed?: {
|
|
83
|
+
computeUnits: number;
|
|
84
|
+
price: bigint;
|
|
85
|
+
};
|
|
86
|
+
/** 发送前失败时后面的调用是否继续,默认 false */
|
|
87
|
+
continueOnError?: boolean;
|
|
88
|
+
onUpdate(outcome: TxOutcome): void;
|
|
89
|
+
}
|
|
90
|
+
export declare function emptyOutcome(status: WriteStatus, error?: string | null): TxOutcome;
|
|
91
|
+
export declare function toWriteResult(index: number, from: string, outcome: TxOutcome): WriteResult;
|
|
92
|
+
/** 并发数为 limit 的 map,结果按输入顺序 */
|
|
93
|
+
export declare function mapPool<T, R>(items: readonly T[], limit: number, fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
|
|
94
|
+
/** 每个签名的基础手续费(lamports) */
|
|
95
|
+
export declare const LAMPORTS_PER_SIGNATURE = 5000n;
|
|
96
|
+
/** 交易手续费:签名数 × 5000 + 优先费用(单价 × 计算单元上限,向上取整) */
|
|
97
|
+
export declare function transactionFee(signatures: number, computeUnits: number, price: bigint): bigint;
|
|
98
|
+
/**
|
|
99
|
+
* 交易错误的可读说明:优先取日志(见 logDetail),否则按错误类型;
|
|
100
|
+
* programs 是每条指令的程序(按下标),用来翻译常见程序的自定义错误码
|
|
101
|
+
*/
|
|
102
|
+
export declare function transactionErrorText(err: unknown, logs?: readonly string[] | null, programs?: readonly string[]): string;
|
|
103
|
+
/** 按 SendOptions 取优先费用单价(micro-lamports / 计算单元);writable 是交易里的可写账户 */
|
|
104
|
+
export declare function priorityFeeFor(client: SolanaClient, options: SendOptions, writable: readonly string[]): Promise<bigint>;
|
|
105
|
+
export interface SendUnitsOptions {
|
|
106
|
+
/** 每笔交易最多打包几个调用,默认不限(按交易大小 1232 字节和 64 个账户的上限) */
|
|
107
|
+
batchSize?: number;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* 发送一批调用:按手续费支付者分组,组内按顺序把相邻的调用打包成交易(不超过交易大小上限),
|
|
111
|
+
* 逐笔模拟(失败的调用剔除后重新模拟其余的)、签名、发送,不等上一笔确认;不同支付者并发。
|
|
112
|
+
* 模拟失败且同一支付者还有未确认的交易时,先等它们确认再模拟一次(后一笔依赖前一笔时自动正确处理)
|
|
113
|
+
*/
|
|
114
|
+
export declare function sendUnits(client: SolanaClient, units: readonly Unit[], options: SendOptions, pack?: SendUnitsOptions): Promise<void>;
|
|
115
|
+
//# sourceMappingURL=send.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/write/send.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAIhD,OAAO,KAAK,EAAe,cAAc,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAA;AACzF,OAAO,EAAiJ,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAElM;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAA;AAE5G,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;IACtC,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,WAAW,GAAG,WAAW,CAAA;IACtC,mEAAmE;IACnE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;CACzC;AAED,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC1B,cAAc;IACd,KAAK,EAAE,MAAM,CAAA;IACb,cAAc;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,WAAW,CAAA;IACnB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,eAAe;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,kEAAkE;IAClE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,qBAAqB;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,cAAc;AACd,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,WAAW,CAAA;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,4CAA4C;AAC5C,MAAM,WAAW,IAAI;IACnB,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,aAAa;IACb,KAAK,EAAE,cAAc,CAAA;IACrB,iBAAiB;IACjB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,8CAA8C;IAC9C,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,+BAA+B;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAA;CACnC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW,GAAG,SAAS,CAExF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,WAAW,CAW1F;AAED,+BAA+B;AAC/B,wBAAsB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAWhI;AAkBD,2BAA2B;AAC3B,eAAO,MAAM,sBAAsB,QAAQ,CAAA;AAE3C,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9F;AAsDD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAgBxH;AAgID,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAEvH;AA+KD,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9I"}
|