@mayanfinance/blink-sdk 0.1.8 → 0.1.9
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/dist/deposit.d.ts +2 -0
- package/dist/deposit.js +15 -0
- package/dist/gen/blink/v1/api_pb.d.ts +36 -0
- package/dist/gen/blink/v1/api_pb.js +13 -3
- package/dist/order.d.ts +1 -1
- package/dist/order.js +3 -1
- package/dist/svm.d.ts +2 -0
- package/dist/svm.js +32 -18
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/deposit.d.ts
CHANGED
|
@@ -11,9 +11,11 @@ export interface GaslessQuote {
|
|
|
11
11
|
sponsorGasBudget?: bigint;
|
|
12
12
|
depositDeadline?: string;
|
|
13
13
|
}
|
|
14
|
+
export type SvmComputeUnitPrice = "auto" | bigint;
|
|
14
15
|
export interface DepositOptions {
|
|
15
16
|
directTransfer?: boolean;
|
|
16
17
|
depositDeadline?: string;
|
|
18
|
+
svmComputeUnitPrice?: SvmComputeUnitPrice;
|
|
17
19
|
}
|
|
18
20
|
export interface ChainAdapter {
|
|
19
21
|
readonly kind: WalletKind;
|
package/dist/deposit.js
CHANGED
|
@@ -23,8 +23,19 @@ const rpcUrlOf = (chain) => {
|
|
|
23
23
|
}
|
|
24
24
|
return chain.rpcUrl;
|
|
25
25
|
};
|
|
26
|
+
const svmComputeUnitPriceMicroLamports = async (client, chain, price) => {
|
|
27
|
+
if (price !== "auto") {
|
|
28
|
+
return price;
|
|
29
|
+
}
|
|
30
|
+
if (!client) {
|
|
31
|
+
throw new Error("auto svm priority fees need an api client");
|
|
32
|
+
}
|
|
33
|
+
const fee = await client.blink.getPriorityFee({ chain });
|
|
34
|
+
return fee.computeUnitPriceMicroLamports;
|
|
35
|
+
};
|
|
26
36
|
const NATIVE_EVM_TOKEN = "0x0000000000000000000000000000000000000000";
|
|
27
37
|
const SVM_MIN_FEE_LAMPORTS = 2000000n;
|
|
38
|
+
const SVM_GASLESS_COMPUTE_UNIT_PRICE_MICRO_LAMPORTS = 10000n;
|
|
28
39
|
const SUI_MIN_FEE_MIST = 20000000n;
|
|
29
40
|
export class InsufficientGasError extends Error {
|
|
30
41
|
required;
|
|
@@ -305,6 +316,7 @@ export class SvmChainAdapter {
|
|
|
305
316
|
throw new Error("svm deposits are unavailable");
|
|
306
317
|
}
|
|
307
318
|
const rpcUrl = rpcUrlOf(this.chain);
|
|
319
|
+
const computeUnitPrice = options?.svmComputeUnitPrice ?? "auto";
|
|
308
320
|
if (isSourceSwap(params)) {
|
|
309
321
|
const client = this.client;
|
|
310
322
|
if (!client) {
|
|
@@ -331,6 +343,7 @@ export class SvmChainAdapter {
|
|
|
331
343
|
minBridgeOut: BigInt(params.minBridgeOut),
|
|
332
344
|
quoteHash,
|
|
333
345
|
swap: instructions.payload.value,
|
|
346
|
+
computeUnitPriceMicroLamports: await svmComputeUnitPriceMicroLamports(client, this.chain.chain, computeUnitPrice),
|
|
334
347
|
swapProgramSigner: this.chain.treasury,
|
|
335
348
|
});
|
|
336
349
|
return signAndSendSvmTransaction(wallet.wallet, wallet.address, transaction);
|
|
@@ -349,6 +362,7 @@ export class SvmChainAdapter {
|
|
|
349
362
|
token: params.srcToken,
|
|
350
363
|
amount: BigInt(params.amountIn),
|
|
351
364
|
quoteHash,
|
|
365
|
+
computeUnitPriceMicroLamports: await svmComputeUnitPriceMicroLamports(this.client, this.chain.chain, computeUnitPrice),
|
|
352
366
|
});
|
|
353
367
|
return signAndSendSvmTransaction(wallet.wallet, wallet.address, transaction);
|
|
354
368
|
},
|
|
@@ -387,6 +401,7 @@ export class SvmChainAdapter {
|
|
|
387
401
|
token: params.srcToken,
|
|
388
402
|
amount: BigInt(params.amountIn),
|
|
389
403
|
quoteHash,
|
|
404
|
+
computeUnitPriceMicroLamports: SVM_GASLESS_COMPUTE_UNIT_PRICE_MICRO_LAMPORTS,
|
|
390
405
|
feePayer: sponsor,
|
|
391
406
|
});
|
|
392
407
|
const signed = await signSvmTransaction(wallet.wallet, wallet.address, transaction);
|
|
@@ -1595,6 +1595,34 @@ export type ChainsResponse = Message<"blink.v1.ChainsResponse"> & {
|
|
|
1595
1595
|
* Use `create(ChainsResponseSchema)` to create a new message.
|
|
1596
1596
|
*/
|
|
1597
1597
|
export declare const ChainsResponseSchema: GenMessage<ChainsResponse>;
|
|
1598
|
+
/**
|
|
1599
|
+
* @generated from message blink.v1.PriorityFeeRequest
|
|
1600
|
+
*/
|
|
1601
|
+
export type PriorityFeeRequest = Message<"blink.v1.PriorityFeeRequest"> & {
|
|
1602
|
+
/**
|
|
1603
|
+
* @generated from field: string chain = 1;
|
|
1604
|
+
*/
|
|
1605
|
+
chain: string;
|
|
1606
|
+
};
|
|
1607
|
+
/**
|
|
1608
|
+
* Describes the message blink.v1.PriorityFeeRequest.
|
|
1609
|
+
* Use `create(PriorityFeeRequestSchema)` to create a new message.
|
|
1610
|
+
*/
|
|
1611
|
+
export declare const PriorityFeeRequestSchema: GenMessage<PriorityFeeRequest>;
|
|
1612
|
+
/**
|
|
1613
|
+
* @generated from message blink.v1.PriorityFee
|
|
1614
|
+
*/
|
|
1615
|
+
export type PriorityFee = Message<"blink.v1.PriorityFee"> & {
|
|
1616
|
+
/**
|
|
1617
|
+
* @generated from field: uint64 compute_unit_price_micro_lamports = 1;
|
|
1618
|
+
*/
|
|
1619
|
+
computeUnitPriceMicroLamports: bigint;
|
|
1620
|
+
};
|
|
1621
|
+
/**
|
|
1622
|
+
* Describes the message blink.v1.PriorityFee.
|
|
1623
|
+
* Use `create(PriorityFeeSchema)` to create a new message.
|
|
1624
|
+
*/
|
|
1625
|
+
export declare const PriorityFeeSchema: GenMessage<PriorityFee>;
|
|
1598
1626
|
/**
|
|
1599
1627
|
* @generated from message blink.v1.Voucher
|
|
1600
1628
|
*/
|
|
@@ -1800,6 +1828,14 @@ export declare const BlinkApi: GenService<{
|
|
|
1800
1828
|
input: typeof GetChainsRequestSchema;
|
|
1801
1829
|
output: typeof ChainsResponseSchema;
|
|
1802
1830
|
};
|
|
1831
|
+
/**
|
|
1832
|
+
* @generated from rpc blink.v1.BlinkApi.GetPriorityFee
|
|
1833
|
+
*/
|
|
1834
|
+
getPriorityFee: {
|
|
1835
|
+
methodKind: "unary";
|
|
1836
|
+
input: typeof PriorityFeeRequestSchema;
|
|
1837
|
+
output: typeof PriorityFeeSchema;
|
|
1838
|
+
};
|
|
1803
1839
|
/**
|
|
1804
1840
|
* @generated from rpc blink.v1.BlinkApi.SubmitGaslessOrder
|
|
1805
1841
|
*/
|
|
@@ -7,7 +7,7 @@ import { file_blink_v1_ratelimit } from "./ratelimit_pb.js";
|
|
|
7
7
|
/**
|
|
8
8
|
* Describes the file blink/v1/api.proto.
|
|
9
9
|
*/
|
|
10
|
-
export const file_blink_v1_api = /*@__PURE__*/ fileDesc("ChJibGluay92MS9hcGkucHJvdG8SCGJsaW5rLnYxIpABCg9Fdm1HYXNsZXNzT3JkZXISDQoFb3duZXIYASABKAkSFQoNcGVybWl0Ml9ub25jZRgCIAEoCRIQCghkZWFkbGluZRgDIAEoBBIRCglzaWduYXR1cmUYBCABKAkSHQoQcGVybWl0X3NpZ25hdHVyZRgFIAEoCUgAiAEBQhMKEV9wZXJtaXRfc2lnbmF0dXJlIiQKD1N2bUdhc2xlc3NPcmRlchIRCgl0eF9iYXNlNjQYASABKAkiNwoPU3VpR2FzbGVzc09yZGVyEhEKCXR4X2Jhc2U2NBgBIAEoCRIRCglzaWduYXR1cmUYAiABKAkitgEKGVN1Ym1pdEdhc2xlc3NPcmRlclJlcXVlc3QSEgoKcXVvdGVfaGFzaBgBIAEoCRIoCgNldm0YAiABKAsyGS5ibGluay52MS5Fdm1HYXNsZXNzT3JkZXJIABIoCgNzdm0YAyABKAsyGS5ibGluay52MS5Tdm1HYXNsZXNzT3JkZXJIABIoCgNzdWkYBCABKAsyGS5ibGluay52MS5TdWlHYXNsZXNzT3JkZXJIAEIHCgVvcmRlciJ3ChFHYXNsZXNzU3VibWlzc2lvbhISCgpxdW90ZV9oYXNoGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIUCgd0eF9oYXNoGAMgASgJSACIAQESEgoFZXJyb3IYBCABKAlIAYgBAUIKCghfdHhfaGFzaEIICgZfZXJyb3IiKAoIUmVmZXJyZXISDwoHYWRkcmVzcxgBIAEoCRILCgNicHMYAiABKA0ioAMKDFF1b3RlUmVxdWVzdBIRCglzcmNfY2hhaW4YASABKAkSEQoJZHN0X2NoYWluGAIgASgJEhEKCXNyY190b2tlbhgDIAEoCRIRCglkc3RfdG9rZW4YBCABKAkSDgoGYW1vdW50GAUgASgJEhEKCXJlY2lwaWVudBgGIAEoCRIWCg5yZWZ1bmRfYWRkcmVzcxgHIAEoCRIZCgxzbGlwcGFnZV9icHMYCCABKA1IAIgBARIdChBzcmNfc2xpcHBhZ2VfYnBzGAkgASgNSAGIAQESJQoJcmVmZXJyZXJzGAogAygLMhIuYmxpbmsudjEuUmVmZXJyZXISEAoIZ2FzX2Ryb3AYCyABKAkSDwoHZ2FzbGVzcxgMIAEoCBIUCgxzcG9uc29yX2ZlZXMYDSABKAgSJwoKdHJhZGVfdHlwZRgOIAEoDjITLmJsaW5rLnYxLlRyYWRlVHlwZRIgChhzdXBwb3J0ZWRfcGFyYW1zX3ZlcnNpb24YDyABKA1CDwoNX3NsaXBwYWdlX2Jwc0ITChFfc3JjX3NsaXBwYWdlX2JwcyKaBAoLT3JkZXJQYXJhbXMSEQoJc3JjX2NoYWluGAEgASgJEhEKCWRzdF9jaGFpbhgCIAEoCRIRCglzcmNfdG9rZW4YAyABKAkSEQoJZHN0X3Rva2VuGAQgASgJEhgKEGJyaWRnZV90b2tlbl9zcmMYBSABKAkSGAoQYnJpZGdlX3Rva2VuX2RzdBgGIAEoCRIRCglhbW91bnRfaW4YByABKAkSEgoKYW1vdW50X291dBgIIAEoCRIVCg1icmlkZ2VfYW1vdW50GAkgASgJEhYKDm1pbl9icmlkZ2Vfb3V0GAogASgJEhYKDm1pbl9hbW91bnRfb3V0GAsgASgJEhAKCGdhc19kcm9wGAwgASgJEhEKCXJlY2lwaWVudBgNIAEoCRIWCg5yZWZ1bmRfYWRkcmVzcxgOIAEoCRIUCgxyZWZ1bmRfdG9rZW4YDyABKAkSJQoJcmVmZXJyZXJzGBAgAygLMhIuYmxpbmsudjEuUmVmZXJyZXISFAoMc2xpcHBhZ2VfYnBzGBEgASgNEhgKEHNyY19zbGlwcGFnZV9icHMYEiABKA0SFgoOcm91dGVyX2FkZHJlc3MYEyABKAkSGQoRcmVmdW5kX2ZlZV9icmlkZ2UYFCABKAkSGQoRcmVmdW5kX2ZlZV9uYXRpdmUYFSABKAkSDQoFbm9uY2UYFiABKAwSFgoOcGFyYW1zX3ZlcnNpb24YFyABKA0iXgoMRmVlQ29tcG9uZW50EgwKBG5hbWUYASABKAkSDAoEc2lkZRgCIAEoCRISCgp1c2RfbWljcm9zGAMgASgJEhMKBm5hdGl2ZRgEIAEoCUgAiAEBQgkKB19uYXRpdmUipgEKDEZlZUJyZWFrZG93bhIqCgpjb21wb25lbnRzGAEgAygLMhYuYmxpbmsudjEuRmVlQ29tcG9uZW50EhwKFGRzdF90b3RhbF91c2RfbWljcm9zGAIgASgJEhwKFHNyY190b3RhbF91c2RfbWljcm9zGAMgASgJEhYKDmRzdF9nYXNfbmF0aXZlGAQgASgJEhYKDnNyY19nYXNfbmF0aXZlGAUgASgJIqAFCg9Dcm9zc0NoYWluUXVvdGUSEgoKcXVvdGVfaGFzaBgBIAEoCRIRCglhbW91bnRfaW4YECABKAkSEgoKYW1vdW50X291dBgCIAEoCRIWCg5taW5fYW1vdW50X291dBgDIAEoCRIhChRhbW91bnRfaW5fdXNkX21pY3JvcxgEIAEoCUgAiAEBEiIKFWFtb3VudF9vdXRfdXNkX21pY3JvcxgFIAEoCUgBiAEBEhQKDHNsaXBwYWdlX2JwcxgGIAEoDRItCg1mZWVfYnJlYWtkb3duGAcgASgLMhYuYmxpbmsudjEuRmVlQnJlYWtkb3duEhYKDnJvdXRlcl9hZGRyZXNzGAggASgJEisKDG9yZGVyX3BhcmFtcxgJIAEoCzIVLmJsaW5rLnYxLk9yZGVyUGFyYW1zEg8KB2dhc2xlc3MYCiABKAgSFAoMc3BvbnNvcl9mZWVzGAsgASgIEiMKFmdhc2xlc3Nfcm91dGVyX2FkZHJlc3MYDCABKAlIAogBARIcCg9zcG9uc29yX2FkZHJlc3MYDSABKAlIA4gBARIdChBmdWxmaWxsX2V0YV9zZWNzGA4gASgESASIAQESFwoPZGlyZWN0X3RyYW5zZmVyGA8gASgIEhgKEGRlcG9zaXRfZGVhZGxpbmUYESABKAkSHwoSc3BvbnNvcl9nYXNfYnVkZ2V0GBIgASgESAWIAQFCFwoVX2Ftb3VudF9pbl91c2RfbWljcm9zQhgKFl9hbW91bnRfb3V0X3VzZF9taWNyb3NCGQoXX2dhc2xlc3Nfcm91dGVyX2FkZHJlc3NCEgoQX3Nwb25zb3JfYWRkcmVzc0ITChFfZnVsZmlsbF9ldGFfc2Vjc0IVChNfc3BvbnNvcl9nYXNfYnVkZ2V0IrkDChJTYW1lQ2hhaW5Td2FwUXVvdGUSEgoKcXVvdGVfaGFzaBgBIAEoCRIRCglhbW91bnRfaW4YCyABKAkSEgoKYW1vdW50X291dBgCIAEoCRIWCg5taW5fYW1vdW50X291dBgDIAEoCRIhChRhbW91bnRfaW5fdXNkX21pY3JvcxgEIAEoCUgAiAEBEiIKFWFtb3VudF9vdXRfdXNkX21pY3JvcxgFIAEoCUgBiAEBEhQKDHNsaXBwYWdlX2JwcxgGIAEoDRItCg1mZWVfYnJlYWtkb3duGAcgASgLMhYuYmxpbmsudjEuRmVlQnJlYWtkb3duEhYKDnJvdXRlcl9hZGRyZXNzGAggASgJEisKDG9yZGVyX3BhcmFtcxgJIAEoCzIVLmJsaW5rLnYxLk9yZGVyUGFyYW1zEh0KEGZ1bGZpbGxfZXRhX3NlY3MYCiABKARIAogBARIYChBkZXBvc2l0X2RlYWRsaW5lGAwgASgJQhcKFV9hbW91bnRfaW5fdXNkX21pY3Jvc0IYChZfYW1vdW50X291dF91c2RfbWljcm9zQhMKEV9mdWxmaWxsX2V0YV9zZWNzIoMBCg1RdW90ZVJlc3BvbnNlEjAKC2Nyb3NzX2NoYWluGAEgASgLMhkuYmxpbmsudjEuQ3Jvc3NDaGFpblF1b3RlSAASNwoPc2FtZV9jaGFpbl9zd2FwGAIgASgLMhwuYmxpbmsudjEuU2FtZUNoYWluU3dhcFF1b3RlSABCBwoFcXVvdGUiswIKE1ByZXZpZXdRdW90ZVJlcXVlc3QSEQoJc3JjX2NoYWluGAEgASgJEhEKCWRzdF9jaGFpbhgCIAEoCRIRCglzcmNfdG9rZW4YAyABKAkSEQoJZHN0X3Rva2VuGAQgASgJEg4KBmFtb3VudBgFIAEoCRIZCgxzbGlwcGFnZV9icHMYBiABKA1IAIgBARIdChBzcmNfc2xpcHBhZ2VfYnBzGAcgASgNSAGIAQESJQoJcmVmZXJyZXJzGAggAygLMhIuYmxpbmsudjEuUmVmZXJyZXISEAoIZ2FzX2Ryb3AYCSABKAkSJwoKdHJhZGVfdHlwZRgKIAEoDjITLmJsaW5rLnYxLlRyYWRlVHlwZUIPCg1fc2xpcHBhZ2VfYnBzQhMKEV9zcmNfc2xpcHBhZ2VfYnBzItkCCgxRdW90ZVByZXZpZXcSEQoJYW1vdW50X2luGAkgASgJEhIKCmFtb3VudF9vdXQYASABKAkSFgoObWluX2Ftb3VudF9vdXQYAiABKAkSIQoUYW1vdW50X2luX3VzZF9taWNyb3MYAyABKAlIAIgBARIiChVhbW91bnRfb3V0X3VzZF9taWNyb3MYBCABKAlIAYgBARIUCgxzbGlwcGFnZV9icHMYBSABKA0SLQoNZmVlX2JyZWFrZG93bhgGIAEoCzIWLmJsaW5rLnYxLkZlZUJyZWFrZG93bhIXCg9zYW1lX2NoYWluX3N3YXAYByABKAgSHQoQZnVsZmlsbF9ldGFfc2VjcxgIIAEoBEgCiAEBQhcKFV9hbW91bnRfaW5fdXNkX21pY3Jvc0IYChZfYW1vdW50X291dF91c2RfbWljcm9zQhMKEV9mdWxmaWxsX2V0YV9zZWNzIi0KF1N3YXBJbnN0cnVjdGlvbnNSZXF1ZXN0EhIKCnF1b3RlX2hhc2gYASABKAkikwIKEFN3YXBJbnN0cnVjdGlvbnMSFgoOcm91dGVyX2FkZHJlc3MYASABKAkSEQoJc3JjX3Rva2VuGAIgASgJEhEKCWFtb3VudF9pbhgDIAEoCRIUCgxicmlkZ2VfdG9rZW4YBCABKAkSFgoObWluX2JyaWRnZV9vdXQYBSABKAkSLAoDZXZtGAYgASgLMh0uYmxpbmsudjEuRXZtU3dhcEluc3RydWN0aW9uc0gAEiwKA3N2bRgHIAEoCzIdLmJsaW5rLnYxLlN2bVN3YXBJbnN0cnVjdGlvbnNIABIsCgNzdWkYCCABKAsyHS5ibGluay52MS5TdWlTd2FwSW5zdHJ1Y3Rpb25zSABCCQoHcGF5bG9hZCJPChNFdm1Td2FwSW5zdHJ1Y3Rpb25zEhIKCmFnZ3JlZ2F0b3IYASABKAkSFQoNc3dhcF9jYWxsZGF0YRgCIAEoCRINCgV2YWx1ZRgDIAEoCSKCAgoTU3ZtU3dhcEluc3RydWN0aW9ucxInCgVzZXR1cBgBIAMoCzIYLmJsaW5rLnYxLlN2bUluc3RydWN0aW9uEiYKBHN3YXAYAiABKAsyGC5ibGluay52MS5Tdm1JbnN0cnVjdGlvbhIpCgdjbGVhbnVwGAMgAygLMhguYmxpbmsudjEuU3ZtSW5zdHJ1Y3Rpb24SLwoNbG9va3VwX3RhYmxlcxgEIAMoCzIYLmJsaW5rLnYxLlN2bUxvb2t1cFRhYmxlEh0KFWFsbG93ZWRfc3dhcF9wcm9ncmFtcxgFIAMoCRIfChdzd2FwX3Byb2dyYW1zX3NpZ25hdHVyZRgGIAEoCSJzChNTdWlTd2FwSW5zdHJ1Y3Rpb25zEhAKCGZyYWdtZW50GAEgASgJEhgKEGNvaW5fb3V0X2NvbW1hbmQYAiABKA0SHAoPY29pbl9vdXRfcmVzdWx0GAMgASgNSACIAQFCEgoQX2NvaW5fb3V0X3Jlc3VsdCJeCg5Tdm1JbnN0cnVjdGlvbhISCgpwcm9ncmFtX2lkGAEgASgJEioKCGFjY291bnRzGAIgAygLMhguYmxpbmsudjEuU3ZtQWNjb3VudE1ldGESDAoEZGF0YRgDIAEoCSJICg5Tdm1BY2NvdW50TWV0YRIOCgZwdWJrZXkYASABKAkSEQoJaXNfc2lnbmVyGAIgASgIEhMKC2lzX3dyaXRhYmxlGAMgASgIIjQKDlN2bUxvb2t1cFRhYmxlEg8KB2FkZHJlc3MYASABKAkSEQoJYWRkcmVzc2VzGAIgAygJIhMKEUxpc3RUb2tlbnNSZXF1ZXN0ItgBCgxDYXRhbG9nVG9rZW4SDQoFY2hhaW4YASABKAkSFQoIY2hhaW5faWQYAiABKARIAIgBARIPCgdhZGRyZXNzGAMgASgJEgwKBHRpZXIYBCABKAkSEwoGc3ltYm9sGAUgASgJSAGIAQESFQoIZGVjaW1hbHMYBiABKA1IAogBARIVCghsb2dvX3VybBgHIAEoCUgDiAEBEg4KBnBlcm1pdBgIIAEoCEILCglfY2hhaW5faWRCCQoHX3N5bWJvbEILCglfZGVjaW1hbHNCCwoJX2xvZ29fdXJsIjwKEkxpc3RUb2tlbnNSZXNwb25zZRImCgZ0b2tlbnMYASADKAsyFi5ibGluay52MS5DYXRhbG9nVG9rZW4iMgoQVG9rZW5JbmZvUmVxdWVzdBINCgVjaGFpbhgBIAEoCRIPCgdhZGRyZXNzGAIgASgJIpUBCglUb2tlbkluZm8SDQoFY2hhaW4YASABKAkSFQoIY2hhaW5faWQYAiABKARIAIgBARIPCgdhZGRyZXNzGAMgASgJEg4KBnN5bWJvbBgEIAEoCRIQCghkZWNpbWFscxgFIAEoDRIVCghsb2dvX3VybBgGIAEoCUgBiAEBQgsKCV9jaGFpbl9pZEILCglfbG9nb191cmwiJQoPR2V0T3JkZXJSZXF1ZXN0EhIKCnF1b3RlX2hhc2gYASABKAkiHgoNU2VhcmNoUmVxdWVzdBINCgVxdWVyeRgBIAEoCSI4Cg5TZWFyY2hSZXNwb25zZRImCgZvcmRlcnMYASADKAsyFi5ibGluay52MS5PcmRlclN1bW1hcnkiJwoUU2VhcmNoQWRkcmVzc1JlcXVlc3QSDwoHYWRkcmVzcxgBIAEoCSJrCgxBZGRyZXNzTWF0Y2gSEgoKcXVvdGVfaGFzaBgBIAEoCRINCgVzdGF0ZRgCIAEoCRIRCglzcmNfY2hhaW4YAyABKAkSEQoJZHN0X2NoYWluGAQgASgJEhIKCmNyZWF0ZWRfYXQYBSABKAkiQAoVU2VhcmNoQWRkcmVzc1Jlc3BvbnNlEicKB21hdGNoZXMYASADKAsyFi5ibGluay52MS5BZGRyZXNzTWF0Y2giPgoKVG9rZW5QcmljZRINCgVjaGFpbhgBIAEoCRINCgV0b2tlbhgCIAEoCRISCgp1c2RfbWljcm9zGAMgASgJIvoBCglRdW90ZVZpZXcSEgoKcXVvdGVfaGFzaBgBIAEoCRIrCgxvcmRlcl9wYXJhbXMYAiABKAsyFS5ibGluay52MS5PcmRlclBhcmFtcxItCg1mZWVfYnJlYWtkb3duGAMgASgLMhYuYmxpbmsudjEuRmVlQnJlYWtkb3duEhIKCmNyZWF0ZWRfYXQYBCABKAkSDwoHZ2FzbGVzcxgFIAEoCBISCgp0cmFkZV90eXBlGAYgASgJEhgKEGRlcG9zaXRfZGVhZGxpbmUYByABKAkSKgoMdG9rZW5fcHJpY2VzGAggAygLMhQuYmxpbmsudjEuVG9rZW5QcmljZSK4AgoFT3JkZXISCgoCaWQYASABKAkSEAoIcXVvdGVfaWQYAiABKAkSDQoFc3RhdGUYAyABKAkSEQoJc3JjX2NoYWluGAQgASgJEhEKCWRzdF9jaGFpbhgFIAEoCRITCgZzcmNfdHgYBiABKAlIAIgBARIYChBzcmNfYmxvY2tfbnVtYmVyGAcgASgDEhUKDXNyY19sb2dfaW5kZXgYCCABKAMSGQoRc3JjX2NvbmZpcm1hdGlvbnMYCSABKAMSHgoWcmVxdWlyZWRfY29uZmlybWF0aW9ucxgKIAEoAxIYCgtkc3RfdHhfaGFzaBgLIAEoCUgBiAEBEhIKCmNyZWF0ZWRfYXQYDCABKAkSEgoKdXBkYXRlZF9hdBgNIAEoCUIJCgdfc3JjX3R4Qg4KDF9kc3RfdHhfaGFzaCKwAQoHRGVwb3NpdBINCgVjaGFpbhgBIAEoCRIPCgd0eF9oYXNoGAIgASgJEhEKCWxvZ19pbmRleBgDIAEoAxIUCgxibG9ja19udW1iZXIYBCABKAMSDQoFdG9rZW4YBSABKAkSDgoGYW1vdW50GAYgASgJEhQKDGZyb21fYWRkcmVzcxgHIAEoCRISCgpibG9ja190aW1lGAggASgJEhMKC2RldGVjdGVkX2F0GAkgASgJIocDCgtGdWxmaWxsbWVudBIKCgJpZBgBIAEoCRITCgZkc3RfdHgYAiABKAlIAIgBARIOCgZzdGF0dXMYAyABKAkSEAoIYXR0ZW1wdHMYBCABKAMSFwoKbGFzdF9lcnJvchgFIAEoCUgBiAEBEhkKDGNvbmZpcm1lZF9hdBgGIAEoCUgCiAEBEhIKCmNyZWF0ZWRfYXQYByABKAkSFQoIZ2FzX3VzZWQYCCABKANIA4gBARIgChNlZmZlY3RpdmVfZ2FzX3ByaWNlGAkgASgJSASIAQESHwoSYWN0dWFsX25hdGl2ZV9jb3N0GAogASgJSAWIAQESGgoNZmlsbGVkX2Ftb3VudBgLIAEoCUgGiAEBQgkKB19kc3RfdHhCDQoLX2xhc3RfZXJyb3JCDwoNX2NvbmZpcm1lZF9hdEILCglfZ2FzX3VzZWRCFgoUX2VmZmVjdGl2ZV9nYXNfcHJpY2VCFQoTX2FjdHVhbF9uYXRpdmVfY29zdEIQCg5fZmlsbGVkX2Ftb3VudCKGAwoGUmVmdW5kEgoKAmlkGAEgASgJEhMKBnNyY190eBgCIAEoCUgAiAEBEg4KBnN0YXR1cxgDIAEoCRIQCghhdHRlbXB0cxgEIAEoAxIXCgpsYXN0X2Vycm9yGAUgASgJSAGIAQESGQoMY29uZmlybWVkX2F0GAYgASgJSAKIAQESEgoKY3JlYXRlZF9hdBgHIAEoCRIVCghnYXNfdXNlZBgIIAEoA0gDiAEBEiAKE2VmZmVjdGl2ZV9nYXNfcHJpY2UYCSABKAlIBIgBARIfChJhY3R1YWxfbmF0aXZlX2Nvc3QYCiABKAlIBYgBARIcCg9yZWZ1bmRlZF9hbW91bnQYCyABKAlIBogBAUIJCgdfc3JjX3R4Qg0KC19sYXN0X2Vycm9yQg8KDV9jb25maXJtZWRfYXRCCwoJX2dhc191c2VkQhYKFF9lZmZlY3RpdmVfZ2FzX3ByaWNlQhUKE19hY3R1YWxfbmF0aXZlX2Nvc3RCEgoQX3JlZnVuZGVkX2Ftb3VudCKIAgoLT3JkZXJEZXRhaWwSIgoFcXVvdGUYASABKAsyEy5ibGluay52MS5RdW90ZVZpZXcSIwoFb3JkZXIYAiABKAsyDy5ibGluay52MS5PcmRlckgAiAEBEicKB2RlcG9zaXQYAyABKAsyES5ibGluay52MS5EZXBvc2l0SAGIAQESLwoLZnVsZmlsbG1lbnQYBCABKAsyFS5ibGluay52MS5GdWxmaWxsbWVudEgCiAEBEiUKBnJlZnVuZBgFIAEoCzIQLmJsaW5rLnYxLlJlZnVuZEgDiAEBQggKBl9vcmRlckIKCghfZGVwb3NpdEIOCgxfZnVsZmlsbG1lbnRCCQoHX3JlZnVuZCJiChFMaXN0T3JkZXJzUmVxdWVzdBIPCgdhZGRyZXNzGAEgASgJEhIKBWxpbWl0GAIgASgDSACIAQESEwoGY3Vyc29yGAMgASgJSAGIAQFCCAoGX2xpbWl0QgkKB19jdXJzb3IipQIKDE9yZGVyU3VtbWFyeRISCgpxdW90ZV9oYXNoGAEgASgJEh4KBW9yZGVyGAIgASgLMg8uYmxpbmsudjEuT3JkZXISJwoHZGVwb3NpdBgDIAEoCzIRLmJsaW5rLnYxLkRlcG9zaXRIAIgBARIRCglzcmNfdG9rZW4YBCABKAkSEgoKc3JjX2Ftb3VudBgFIAEoCRIRCglkc3RfdG9rZW4YBiABKAkSEgoKZHN0X2Ftb3VudBgHIAEoCRIRCglyZWNpcGllbnQYCCABKAkSDwoHZ2FzbGVzcxgJIAEoCBIXCgpzZXR0bGVkX2F0GAogASgJSAGIAQESEgoKdHJhZGVfdHlwZRgLIAEoCUIKCghfZGVwb3NpdEINCgtfc2V0dGxlZF9hdCJdCgpPcmRlcnNQYWdlEiUKBWl0ZW1zGAEgAygLMhYuYmxpbmsudjEuT3JkZXJTdW1tYXJ5EhgKC25leHRfY3Vyc29yGAIgASgJSACIAQFCDgoMX25leHRfY3Vyc29yIlcKF0xpc3RSZWNlbnRPcmRlcnNSZXF1ZXN0EhIKBWxpbWl0GAEgASgDSACIAQESEwoGY3Vyc29yGAIgASgJSAGIAQFCCAoGX2xpbWl0QgkKB19jdXJzb3IiEgoQR2V0Q2hhaW5zUmVxdWVzdCKgBAoLQ2hhaW5TdGF0dXMSDQoFY2hhaW4YASABKAkSFQoNcXVvdGVfZW5hYmxlZBgCIAEoCBIXCg9pbmRleGVyX2VuYWJsZWQYAyABKAgSFwoPcmVsYXllcl9lbmFibGVkGAQgASgIEhwKD2xhc3RfaW5kZXhlZF9hdBgFIAEoCUgAiAEBEhMKBmN1cnNvchgGIAEoCUgBiAEBEhQKB3JwY191cmwYByABKAlIAogBARIcCg9leHBsb3Jlcl90eF91cmwYCCABKAlIA4gBARIVCgh0cmVhc3VyeRgJIAEoCUgEiAEBEhUKDW5hdGl2ZV9zeW1ib2wYCiABKAkSFwoPbmF0aXZlX2RlY2ltYWxzGAsgASgNEhAKCGxvZ29fdXJsGAwgASgJEiEKFGV4cGxvcmVyX2FkZHJlc3NfdXJsGA0gASgJSAWIAQESFAoMbWF4X2dhc19kcm9wGA4gASgJEhMKBnJvdXRlchgPIAEoCUgGiAEBEg8KB2dhc2xlc3MYECABKAgSCgoCdm0YESABKAkSEwoGZXNjcm93GBIgASgJSAeIAQFCEgoQX2xhc3RfaW5kZXhlZF9hdEIJCgdfY3Vyc29yQgoKCF9ycGNfdXJsQhIKEF9leHBsb3Jlcl90eF91cmxCCwoJX3RyZWFzdXJ5QhcKFV9leHBsb3Jlcl9hZGRyZXNzX3VybEIJCgdfcm91dGVyQgkKB19lc2Nyb3ciNwoOQ2hhaW5zUmVzcG9uc2USJQoGY2hhaW5zGAEgAygLMhUuYmxpbmsudjEuQ2hhaW5TdGF0dXMijgMKB1ZvdWNoZXISCgoCaWQYASABKAkSDQoFY2hhaW4YAiABKAkSFQoIY2hhaW5faWQYAyABKARIAIgBARIWCg5yb3V0ZXJfYWRkcmVzcxgEIAEoCRINCgV0b2tlbhgFIAEoCRIQCghyZWZlcnJlchgGIAEoCRIOCgZhbW91bnQYByABKAkSEQoJc2lnbmF0dXJlGAggASgJEhUKCGNhbGxkYXRhGAkgASgJSAGIAQESEAoIcmVkZWVtZWQYCiABKAgSFgoJcmVkZWVtX3R4GAsgASgJSAKIAQESEgoKY3JlYXRlZF9hdBgMIAEoCRIYCgtyZWRlZW1lZF9hdBgNIAEoCUgDiAEBEhkKDHRva2VuX3N5bWJvbBgOIAEoCUgEiAEBEhUKCGRlY2ltYWxzGA8gASgNSAWIAQFCCwoJX2NoYWluX2lkQgsKCV9jYWxsZGF0YUIMCgpfcmVkZWVtX3R4Qg4KDF9yZWRlZW1lZF9hdEIPCg1fdG9rZW5fc3ltYm9sQgsKCV9kZWNpbWFscyI7ChRMaXN0Vm91Y2hlcnNSZXNwb25zZRIjCgh2b3VjaGVycxgBIAMoCzIRLmJsaW5rLnYxLlZvdWNoZXIqrgEKCVRyYWRlVHlwZRIaChZUUkFERV9UWVBFX1VOU1BFQ0lGSUVEEAASGgoWVFJBREVfVFlQRV9FWEFDVF9JTlBVVBABEh4KGlRSQURFX1RZUEVfRVhQRUNURURfT1VUUFVUEAISLAooVFJBREVfVFlQRV9FWEFDVF9JTlBVVF9HVUFSQU5URUVEX09VVFBVVBADEhsKF1RSQURFX1RZUEVfRVhBQ1RfT1VUUFVUEAQy5AkKCEJsaW5rQXBpElUKCEdldFF1b3RlEhYuYmxpbmsudjEuUXVvdGVSZXF1ZXN0GhcuYmxpbmsudjEuUXVvdGVSZXNwb25zZSIYoLsYMoLT5JMCDjoBKiIJL3YxL3F1b3RlEmcKDFByZXZpZXdRdW90ZRIdLmJsaW5rLnYxLlByZXZpZXdRdW90ZVJlcXVlc3QaFi5ibGluay52MS5RdW90ZVByZXZpZXciIKC7GB6C0+STAhY6ASoiES92MS9xdW90ZS9wcmV2aWV3EoYBChNHZXRTd2FwSW5zdHJ1Y3Rpb25zEiEuYmxpbmsudjEuU3dhcEluc3RydWN0aW9uc1JlcXVlc3QaGi5ibGluay52MS5Td2FwSW5zdHJ1Y3Rpb25zIjCguxgZgtPkkwImEiQvdjEvcXVvdGVzL3txdW90ZV9oYXNofS9pbnN0cnVjdGlvbnMSXwoKTGlzdFRva2VucxIbLmJsaW5rLnYxLkxpc3RUb2tlbnNSZXF1ZXN0GhwuYmxpbmsudjEuTGlzdFRva2Vuc1Jlc3BvbnNlIhaguxgFgtPkkwIMEgovdjEvdG9rZW5zEmkKDEdldFRva2VuSW5mbxIaLmJsaW5rLnYxLlRva2VuSW5mb1JlcXVlc3QaEy5ibGluay52MS5Ub2tlbkluZm8iKKC7GA+C0+STAh4SHC92MS90b2tlbnMve2NoYWlufS97YWRkcmVzc30SYQoIR2V0T3JkZXISGS5ibGluay52MS5HZXRPcmRlclJlcXVlc3QaFS5ibGluay52MS5PcmRlckRldGFpbCIjoLsYBYLT5JMCGRIXL3YxL29yZGVycy97cXVvdGVfaGFzaH0SUwoGU2VhcmNoEhcuYmxpbmsudjEuU2VhcmNoUmVxdWVzdBoYLmJsaW5rLnYxLlNlYXJjaFJlc3BvbnNlIhaguxgKgtPkkwIMEgovdjEvc2VhcmNoEnAKDVNlYXJjaEFkZHJlc3MSHi5ibGluay52MS5TZWFyY2hBZGRyZXNzUmVxdWVzdBofLmJsaW5rLnYxLlNlYXJjaEFkZHJlc3NSZXNwb25zZSIeoLsYCoLT5JMCFBISL3YxL3NlYXJjaC9hZGRyZXNzElcKCkxpc3RPcmRlcnMSGy5ibGluay52MS5MaXN0T3JkZXJzUmVxdWVzdBoULmJsaW5rLnYxLk9yZGVyc1BhZ2UiFqC7GAWC0+STAgwSCi92MS9vcmRlcnMSagoQTGlzdFJlY2VudE9yZGVycxIhLmJsaW5rLnYxLkxpc3RSZWNlbnRPcmRlcnNSZXF1ZXN0GhQuYmxpbmsudjEuT3JkZXJzUGFnZSIdoLsYBYLT5JMCExIRL3YxL29yZGVycy9yZWNlbnQSWQoJR2V0Q2hhaW5zEhouYmxpbmsudjEuR2V0Q2hhaW5zUmVxdWVzdBoYLmJsaW5rLnYxLkNoYWluc1Jlc3BvbnNlIhaguxgFgtPkkwIMEgovdjEvY2hhaW5zEnkKElN1Ym1pdEdhc2xlc3NPcmRlchIjLmJsaW5rLnYxLlN1Ym1pdEdhc2xlc3NPcmRlclJlcXVlc3QaGy5ibGluay52MS5HYXNsZXNzU3VibWlzc2lvbiIhoLsYHoLT5JMCFzoBKiISL3YxL2dhc2xlc3Mvb3JkZXJzYgZwcm90bzM", [file_google_api_annotations, file_blink_v1_ratelimit]);
|
|
10
|
+
export const file_blink_v1_api = /*@__PURE__*/ fileDesc("ChJibGluay92MS9hcGkucHJvdG8SCGJsaW5rLnYxIpABCg9Fdm1HYXNsZXNzT3JkZXISDQoFb3duZXIYASABKAkSFQoNcGVybWl0Ml9ub25jZRgCIAEoCRIQCghkZWFkbGluZRgDIAEoBBIRCglzaWduYXR1cmUYBCABKAkSHQoQcGVybWl0X3NpZ25hdHVyZRgFIAEoCUgAiAEBQhMKEV9wZXJtaXRfc2lnbmF0dXJlIiQKD1N2bUdhc2xlc3NPcmRlchIRCgl0eF9iYXNlNjQYASABKAkiNwoPU3VpR2FzbGVzc09yZGVyEhEKCXR4X2Jhc2U2NBgBIAEoCRIRCglzaWduYXR1cmUYAiABKAkitgEKGVN1Ym1pdEdhc2xlc3NPcmRlclJlcXVlc3QSEgoKcXVvdGVfaGFzaBgBIAEoCRIoCgNldm0YAiABKAsyGS5ibGluay52MS5Fdm1HYXNsZXNzT3JkZXJIABIoCgNzdm0YAyABKAsyGS5ibGluay52MS5Tdm1HYXNsZXNzT3JkZXJIABIoCgNzdWkYBCABKAsyGS5ibGluay52MS5TdWlHYXNsZXNzT3JkZXJIAEIHCgVvcmRlciJ3ChFHYXNsZXNzU3VibWlzc2lvbhISCgpxdW90ZV9oYXNoGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIUCgd0eF9oYXNoGAMgASgJSACIAQESEgoFZXJyb3IYBCABKAlIAYgBAUIKCghfdHhfaGFzaEIICgZfZXJyb3IiKAoIUmVmZXJyZXISDwoHYWRkcmVzcxgBIAEoCRILCgNicHMYAiABKA0ioAMKDFF1b3RlUmVxdWVzdBIRCglzcmNfY2hhaW4YASABKAkSEQoJZHN0X2NoYWluGAIgASgJEhEKCXNyY190b2tlbhgDIAEoCRIRCglkc3RfdG9rZW4YBCABKAkSDgoGYW1vdW50GAUgASgJEhEKCXJlY2lwaWVudBgGIAEoCRIWCg5yZWZ1bmRfYWRkcmVzcxgHIAEoCRIZCgxzbGlwcGFnZV9icHMYCCABKA1IAIgBARIdChBzcmNfc2xpcHBhZ2VfYnBzGAkgASgNSAGIAQESJQoJcmVmZXJyZXJzGAogAygLMhIuYmxpbmsudjEuUmVmZXJyZXISEAoIZ2FzX2Ryb3AYCyABKAkSDwoHZ2FzbGVzcxgMIAEoCBIUCgxzcG9uc29yX2ZlZXMYDSABKAgSJwoKdHJhZGVfdHlwZRgOIAEoDjITLmJsaW5rLnYxLlRyYWRlVHlwZRIgChhzdXBwb3J0ZWRfcGFyYW1zX3ZlcnNpb24YDyABKA1CDwoNX3NsaXBwYWdlX2Jwc0ITChFfc3JjX3NsaXBwYWdlX2JwcyKaBAoLT3JkZXJQYXJhbXMSEQoJc3JjX2NoYWluGAEgASgJEhEKCWRzdF9jaGFpbhgCIAEoCRIRCglzcmNfdG9rZW4YAyABKAkSEQoJZHN0X3Rva2VuGAQgASgJEhgKEGJyaWRnZV90b2tlbl9zcmMYBSABKAkSGAoQYnJpZGdlX3Rva2VuX2RzdBgGIAEoCRIRCglhbW91bnRfaW4YByABKAkSEgoKYW1vdW50X291dBgIIAEoCRIVCg1icmlkZ2VfYW1vdW50GAkgASgJEhYKDm1pbl9icmlkZ2Vfb3V0GAogASgJEhYKDm1pbl9hbW91bnRfb3V0GAsgASgJEhAKCGdhc19kcm9wGAwgASgJEhEKCXJlY2lwaWVudBgNIAEoCRIWCg5yZWZ1bmRfYWRkcmVzcxgOIAEoCRIUCgxyZWZ1bmRfdG9rZW4YDyABKAkSJQoJcmVmZXJyZXJzGBAgAygLMhIuYmxpbmsudjEuUmVmZXJyZXISFAoMc2xpcHBhZ2VfYnBzGBEgASgNEhgKEHNyY19zbGlwcGFnZV9icHMYEiABKA0SFgoOcm91dGVyX2FkZHJlc3MYEyABKAkSGQoRcmVmdW5kX2ZlZV9icmlkZ2UYFCABKAkSGQoRcmVmdW5kX2ZlZV9uYXRpdmUYFSABKAkSDQoFbm9uY2UYFiABKAwSFgoOcGFyYW1zX3ZlcnNpb24YFyABKA0iXgoMRmVlQ29tcG9uZW50EgwKBG5hbWUYASABKAkSDAoEc2lkZRgCIAEoCRISCgp1c2RfbWljcm9zGAMgASgJEhMKBm5hdGl2ZRgEIAEoCUgAiAEBQgkKB19uYXRpdmUipgEKDEZlZUJyZWFrZG93bhIqCgpjb21wb25lbnRzGAEgAygLMhYuYmxpbmsudjEuRmVlQ29tcG9uZW50EhwKFGRzdF90b3RhbF91c2RfbWljcm9zGAIgASgJEhwKFHNyY190b3RhbF91c2RfbWljcm9zGAMgASgJEhYKDmRzdF9nYXNfbmF0aXZlGAQgASgJEhYKDnNyY19nYXNfbmF0aXZlGAUgASgJIqAFCg9Dcm9zc0NoYWluUXVvdGUSEgoKcXVvdGVfaGFzaBgBIAEoCRIRCglhbW91bnRfaW4YECABKAkSEgoKYW1vdW50X291dBgCIAEoCRIWCg5taW5fYW1vdW50X291dBgDIAEoCRIhChRhbW91bnRfaW5fdXNkX21pY3JvcxgEIAEoCUgAiAEBEiIKFWFtb3VudF9vdXRfdXNkX21pY3JvcxgFIAEoCUgBiAEBEhQKDHNsaXBwYWdlX2JwcxgGIAEoDRItCg1mZWVfYnJlYWtkb3duGAcgASgLMhYuYmxpbmsudjEuRmVlQnJlYWtkb3duEhYKDnJvdXRlcl9hZGRyZXNzGAggASgJEisKDG9yZGVyX3BhcmFtcxgJIAEoCzIVLmJsaW5rLnYxLk9yZGVyUGFyYW1zEg8KB2dhc2xlc3MYCiABKAgSFAoMc3BvbnNvcl9mZWVzGAsgASgIEiMKFmdhc2xlc3Nfcm91dGVyX2FkZHJlc3MYDCABKAlIAogBARIcCg9zcG9uc29yX2FkZHJlc3MYDSABKAlIA4gBARIdChBmdWxmaWxsX2V0YV9zZWNzGA4gASgESASIAQESFwoPZGlyZWN0X3RyYW5zZmVyGA8gASgIEhgKEGRlcG9zaXRfZGVhZGxpbmUYESABKAkSHwoSc3BvbnNvcl9nYXNfYnVkZ2V0GBIgASgESAWIAQFCFwoVX2Ftb3VudF9pbl91c2RfbWljcm9zQhgKFl9hbW91bnRfb3V0X3VzZF9taWNyb3NCGQoXX2dhc2xlc3Nfcm91dGVyX2FkZHJlc3NCEgoQX3Nwb25zb3JfYWRkcmVzc0ITChFfZnVsZmlsbF9ldGFfc2Vjc0IVChNfc3BvbnNvcl9nYXNfYnVkZ2V0IrkDChJTYW1lQ2hhaW5Td2FwUXVvdGUSEgoKcXVvdGVfaGFzaBgBIAEoCRIRCglhbW91bnRfaW4YCyABKAkSEgoKYW1vdW50X291dBgCIAEoCRIWCg5taW5fYW1vdW50X291dBgDIAEoCRIhChRhbW91bnRfaW5fdXNkX21pY3JvcxgEIAEoCUgAiAEBEiIKFWFtb3VudF9vdXRfdXNkX21pY3JvcxgFIAEoCUgBiAEBEhQKDHNsaXBwYWdlX2JwcxgGIAEoDRItCg1mZWVfYnJlYWtkb3duGAcgASgLMhYuYmxpbmsudjEuRmVlQnJlYWtkb3duEhYKDnJvdXRlcl9hZGRyZXNzGAggASgJEisKDG9yZGVyX3BhcmFtcxgJIAEoCzIVLmJsaW5rLnYxLk9yZGVyUGFyYW1zEh0KEGZ1bGZpbGxfZXRhX3NlY3MYCiABKARIAogBARIYChBkZXBvc2l0X2RlYWRsaW5lGAwgASgJQhcKFV9hbW91bnRfaW5fdXNkX21pY3Jvc0IYChZfYW1vdW50X291dF91c2RfbWljcm9zQhMKEV9mdWxmaWxsX2V0YV9zZWNzIoMBCg1RdW90ZVJlc3BvbnNlEjAKC2Nyb3NzX2NoYWluGAEgASgLMhkuYmxpbmsudjEuQ3Jvc3NDaGFpblF1b3RlSAASNwoPc2FtZV9jaGFpbl9zd2FwGAIgASgLMhwuYmxpbmsudjEuU2FtZUNoYWluU3dhcFF1b3RlSABCBwoFcXVvdGUiswIKE1ByZXZpZXdRdW90ZVJlcXVlc3QSEQoJc3JjX2NoYWluGAEgASgJEhEKCWRzdF9jaGFpbhgCIAEoCRIRCglzcmNfdG9rZW4YAyABKAkSEQoJZHN0X3Rva2VuGAQgASgJEg4KBmFtb3VudBgFIAEoCRIZCgxzbGlwcGFnZV9icHMYBiABKA1IAIgBARIdChBzcmNfc2xpcHBhZ2VfYnBzGAcgASgNSAGIAQESJQoJcmVmZXJyZXJzGAggAygLMhIuYmxpbmsudjEuUmVmZXJyZXISEAoIZ2FzX2Ryb3AYCSABKAkSJwoKdHJhZGVfdHlwZRgKIAEoDjITLmJsaW5rLnYxLlRyYWRlVHlwZUIPCg1fc2xpcHBhZ2VfYnBzQhMKEV9zcmNfc2xpcHBhZ2VfYnBzItkCCgxRdW90ZVByZXZpZXcSEQoJYW1vdW50X2luGAkgASgJEhIKCmFtb3VudF9vdXQYASABKAkSFgoObWluX2Ftb3VudF9vdXQYAiABKAkSIQoUYW1vdW50X2luX3VzZF9taWNyb3MYAyABKAlIAIgBARIiChVhbW91bnRfb3V0X3VzZF9taWNyb3MYBCABKAlIAYgBARIUCgxzbGlwcGFnZV9icHMYBSABKA0SLQoNZmVlX2JyZWFrZG93bhgGIAEoCzIWLmJsaW5rLnYxLkZlZUJyZWFrZG93bhIXCg9zYW1lX2NoYWluX3N3YXAYByABKAgSHQoQZnVsZmlsbF9ldGFfc2VjcxgIIAEoBEgCiAEBQhcKFV9hbW91bnRfaW5fdXNkX21pY3Jvc0IYChZfYW1vdW50X291dF91c2RfbWljcm9zQhMKEV9mdWxmaWxsX2V0YV9zZWNzIi0KF1N3YXBJbnN0cnVjdGlvbnNSZXF1ZXN0EhIKCnF1b3RlX2hhc2gYASABKAkikwIKEFN3YXBJbnN0cnVjdGlvbnMSFgoOcm91dGVyX2FkZHJlc3MYASABKAkSEQoJc3JjX3Rva2VuGAIgASgJEhEKCWFtb3VudF9pbhgDIAEoCRIUCgxicmlkZ2VfdG9rZW4YBCABKAkSFgoObWluX2JyaWRnZV9vdXQYBSABKAkSLAoDZXZtGAYgASgLMh0uYmxpbmsudjEuRXZtU3dhcEluc3RydWN0aW9uc0gAEiwKA3N2bRgHIAEoCzIdLmJsaW5rLnYxLlN2bVN3YXBJbnN0cnVjdGlvbnNIABIsCgNzdWkYCCABKAsyHS5ibGluay52MS5TdWlTd2FwSW5zdHJ1Y3Rpb25zSABCCQoHcGF5bG9hZCJPChNFdm1Td2FwSW5zdHJ1Y3Rpb25zEhIKCmFnZ3JlZ2F0b3IYASABKAkSFQoNc3dhcF9jYWxsZGF0YRgCIAEoCRINCgV2YWx1ZRgDIAEoCSKCAgoTU3ZtU3dhcEluc3RydWN0aW9ucxInCgVzZXR1cBgBIAMoCzIYLmJsaW5rLnYxLlN2bUluc3RydWN0aW9uEiYKBHN3YXAYAiABKAsyGC5ibGluay52MS5Tdm1JbnN0cnVjdGlvbhIpCgdjbGVhbnVwGAMgAygLMhguYmxpbmsudjEuU3ZtSW5zdHJ1Y3Rpb24SLwoNbG9va3VwX3RhYmxlcxgEIAMoCzIYLmJsaW5rLnYxLlN2bUxvb2t1cFRhYmxlEh0KFWFsbG93ZWRfc3dhcF9wcm9ncmFtcxgFIAMoCRIfChdzd2FwX3Byb2dyYW1zX3NpZ25hdHVyZRgGIAEoCSJzChNTdWlTd2FwSW5zdHJ1Y3Rpb25zEhAKCGZyYWdtZW50GAEgASgJEhgKEGNvaW5fb3V0X2NvbW1hbmQYAiABKA0SHAoPY29pbl9vdXRfcmVzdWx0GAMgASgNSACIAQFCEgoQX2NvaW5fb3V0X3Jlc3VsdCJeCg5Tdm1JbnN0cnVjdGlvbhISCgpwcm9ncmFtX2lkGAEgASgJEioKCGFjY291bnRzGAIgAygLMhguYmxpbmsudjEuU3ZtQWNjb3VudE1ldGESDAoEZGF0YRgDIAEoCSJICg5Tdm1BY2NvdW50TWV0YRIOCgZwdWJrZXkYASABKAkSEQoJaXNfc2lnbmVyGAIgASgIEhMKC2lzX3dyaXRhYmxlGAMgASgIIjQKDlN2bUxvb2t1cFRhYmxlEg8KB2FkZHJlc3MYASABKAkSEQoJYWRkcmVzc2VzGAIgAygJIhMKEUxpc3RUb2tlbnNSZXF1ZXN0ItgBCgxDYXRhbG9nVG9rZW4SDQoFY2hhaW4YASABKAkSFQoIY2hhaW5faWQYAiABKARIAIgBARIPCgdhZGRyZXNzGAMgASgJEgwKBHRpZXIYBCABKAkSEwoGc3ltYm9sGAUgASgJSAGIAQESFQoIZGVjaW1hbHMYBiABKA1IAogBARIVCghsb2dvX3VybBgHIAEoCUgDiAEBEg4KBnBlcm1pdBgIIAEoCEILCglfY2hhaW5faWRCCQoHX3N5bWJvbEILCglfZGVjaW1hbHNCCwoJX2xvZ29fdXJsIjwKEkxpc3RUb2tlbnNSZXNwb25zZRImCgZ0b2tlbnMYASADKAsyFi5ibGluay52MS5DYXRhbG9nVG9rZW4iMgoQVG9rZW5JbmZvUmVxdWVzdBINCgVjaGFpbhgBIAEoCRIPCgdhZGRyZXNzGAIgASgJIpUBCglUb2tlbkluZm8SDQoFY2hhaW4YASABKAkSFQoIY2hhaW5faWQYAiABKARIAIgBARIPCgdhZGRyZXNzGAMgASgJEg4KBnN5bWJvbBgEIAEoCRIQCghkZWNpbWFscxgFIAEoDRIVCghsb2dvX3VybBgGIAEoCUgBiAEBQgsKCV9jaGFpbl9pZEILCglfbG9nb191cmwiJQoPR2V0T3JkZXJSZXF1ZXN0EhIKCnF1b3RlX2hhc2gYASABKAkiHgoNU2VhcmNoUmVxdWVzdBINCgVxdWVyeRgBIAEoCSI4Cg5TZWFyY2hSZXNwb25zZRImCgZvcmRlcnMYASADKAsyFi5ibGluay52MS5PcmRlclN1bW1hcnkiJwoUU2VhcmNoQWRkcmVzc1JlcXVlc3QSDwoHYWRkcmVzcxgBIAEoCSJrCgxBZGRyZXNzTWF0Y2gSEgoKcXVvdGVfaGFzaBgBIAEoCRINCgVzdGF0ZRgCIAEoCRIRCglzcmNfY2hhaW4YAyABKAkSEQoJZHN0X2NoYWluGAQgASgJEhIKCmNyZWF0ZWRfYXQYBSABKAkiQAoVU2VhcmNoQWRkcmVzc1Jlc3BvbnNlEicKB21hdGNoZXMYASADKAsyFi5ibGluay52MS5BZGRyZXNzTWF0Y2giPgoKVG9rZW5QcmljZRINCgVjaGFpbhgBIAEoCRINCgV0b2tlbhgCIAEoCRISCgp1c2RfbWljcm9zGAMgASgJIvoBCglRdW90ZVZpZXcSEgoKcXVvdGVfaGFzaBgBIAEoCRIrCgxvcmRlcl9wYXJhbXMYAiABKAsyFS5ibGluay52MS5PcmRlclBhcmFtcxItCg1mZWVfYnJlYWtkb3duGAMgASgLMhYuYmxpbmsudjEuRmVlQnJlYWtkb3duEhIKCmNyZWF0ZWRfYXQYBCABKAkSDwoHZ2FzbGVzcxgFIAEoCBISCgp0cmFkZV90eXBlGAYgASgJEhgKEGRlcG9zaXRfZGVhZGxpbmUYByABKAkSKgoMdG9rZW5fcHJpY2VzGAggAygLMhQuYmxpbmsudjEuVG9rZW5QcmljZSK4AgoFT3JkZXISCgoCaWQYASABKAkSEAoIcXVvdGVfaWQYAiABKAkSDQoFc3RhdGUYAyABKAkSEQoJc3JjX2NoYWluGAQgASgJEhEKCWRzdF9jaGFpbhgFIAEoCRITCgZzcmNfdHgYBiABKAlIAIgBARIYChBzcmNfYmxvY2tfbnVtYmVyGAcgASgDEhUKDXNyY19sb2dfaW5kZXgYCCABKAMSGQoRc3JjX2NvbmZpcm1hdGlvbnMYCSABKAMSHgoWcmVxdWlyZWRfY29uZmlybWF0aW9ucxgKIAEoAxIYCgtkc3RfdHhfaGFzaBgLIAEoCUgBiAEBEhIKCmNyZWF0ZWRfYXQYDCABKAkSEgoKdXBkYXRlZF9hdBgNIAEoCUIJCgdfc3JjX3R4Qg4KDF9kc3RfdHhfaGFzaCKwAQoHRGVwb3NpdBINCgVjaGFpbhgBIAEoCRIPCgd0eF9oYXNoGAIgASgJEhEKCWxvZ19pbmRleBgDIAEoAxIUCgxibG9ja19udW1iZXIYBCABKAMSDQoFdG9rZW4YBSABKAkSDgoGYW1vdW50GAYgASgJEhQKDGZyb21fYWRkcmVzcxgHIAEoCRISCgpibG9ja190aW1lGAggASgJEhMKC2RldGVjdGVkX2F0GAkgASgJIocDCgtGdWxmaWxsbWVudBIKCgJpZBgBIAEoCRITCgZkc3RfdHgYAiABKAlIAIgBARIOCgZzdGF0dXMYAyABKAkSEAoIYXR0ZW1wdHMYBCABKAMSFwoKbGFzdF9lcnJvchgFIAEoCUgBiAEBEhkKDGNvbmZpcm1lZF9hdBgGIAEoCUgCiAEBEhIKCmNyZWF0ZWRfYXQYByABKAkSFQoIZ2FzX3VzZWQYCCABKANIA4gBARIgChNlZmZlY3RpdmVfZ2FzX3ByaWNlGAkgASgJSASIAQESHwoSYWN0dWFsX25hdGl2ZV9jb3N0GAogASgJSAWIAQESGgoNZmlsbGVkX2Ftb3VudBgLIAEoCUgGiAEBQgkKB19kc3RfdHhCDQoLX2xhc3RfZXJyb3JCDwoNX2NvbmZpcm1lZF9hdEILCglfZ2FzX3VzZWRCFgoUX2VmZmVjdGl2ZV9nYXNfcHJpY2VCFQoTX2FjdHVhbF9uYXRpdmVfY29zdEIQCg5fZmlsbGVkX2Ftb3VudCKGAwoGUmVmdW5kEgoKAmlkGAEgASgJEhMKBnNyY190eBgCIAEoCUgAiAEBEg4KBnN0YXR1cxgDIAEoCRIQCghhdHRlbXB0cxgEIAEoAxIXCgpsYXN0X2Vycm9yGAUgASgJSAGIAQESGQoMY29uZmlybWVkX2F0GAYgASgJSAKIAQESEgoKY3JlYXRlZF9hdBgHIAEoCRIVCghnYXNfdXNlZBgIIAEoA0gDiAEBEiAKE2VmZmVjdGl2ZV9nYXNfcHJpY2UYCSABKAlIBIgBARIfChJhY3R1YWxfbmF0aXZlX2Nvc3QYCiABKAlIBYgBARIcCg9yZWZ1bmRlZF9hbW91bnQYCyABKAlIBogBAUIJCgdfc3JjX3R4Qg0KC19sYXN0X2Vycm9yQg8KDV9jb25maXJtZWRfYXRCCwoJX2dhc191c2VkQhYKFF9lZmZlY3RpdmVfZ2FzX3ByaWNlQhUKE19hY3R1YWxfbmF0aXZlX2Nvc3RCEgoQX3JlZnVuZGVkX2Ftb3VudCKIAgoLT3JkZXJEZXRhaWwSIgoFcXVvdGUYASABKAsyEy5ibGluay52MS5RdW90ZVZpZXcSIwoFb3JkZXIYAiABKAsyDy5ibGluay52MS5PcmRlckgAiAEBEicKB2RlcG9zaXQYAyABKAsyES5ibGluay52MS5EZXBvc2l0SAGIAQESLwoLZnVsZmlsbG1lbnQYBCABKAsyFS5ibGluay52MS5GdWxmaWxsbWVudEgCiAEBEiUKBnJlZnVuZBgFIAEoCzIQLmJsaW5rLnYxLlJlZnVuZEgDiAEBQggKBl9vcmRlckIKCghfZGVwb3NpdEIOCgxfZnVsZmlsbG1lbnRCCQoHX3JlZnVuZCJiChFMaXN0T3JkZXJzUmVxdWVzdBIPCgdhZGRyZXNzGAEgASgJEhIKBWxpbWl0GAIgASgDSACIAQESEwoGY3Vyc29yGAMgASgJSAGIAQFCCAoGX2xpbWl0QgkKB19jdXJzb3IipQIKDE9yZGVyU3VtbWFyeRISCgpxdW90ZV9oYXNoGAEgASgJEh4KBW9yZGVyGAIgASgLMg8uYmxpbmsudjEuT3JkZXISJwoHZGVwb3NpdBgDIAEoCzIRLmJsaW5rLnYxLkRlcG9zaXRIAIgBARIRCglzcmNfdG9rZW4YBCABKAkSEgoKc3JjX2Ftb3VudBgFIAEoCRIRCglkc3RfdG9rZW4YBiABKAkSEgoKZHN0X2Ftb3VudBgHIAEoCRIRCglyZWNpcGllbnQYCCABKAkSDwoHZ2FzbGVzcxgJIAEoCBIXCgpzZXR0bGVkX2F0GAogASgJSAGIAQESEgoKdHJhZGVfdHlwZRgLIAEoCUIKCghfZGVwb3NpdEINCgtfc2V0dGxlZF9hdCJdCgpPcmRlcnNQYWdlEiUKBWl0ZW1zGAEgAygLMhYuYmxpbmsudjEuT3JkZXJTdW1tYXJ5EhgKC25leHRfY3Vyc29yGAIgASgJSACIAQFCDgoMX25leHRfY3Vyc29yIlcKF0xpc3RSZWNlbnRPcmRlcnNSZXF1ZXN0EhIKBWxpbWl0GAEgASgDSACIAQESEwoGY3Vyc29yGAIgASgJSAGIAQFCCAoGX2xpbWl0QgkKB19jdXJzb3IiEgoQR2V0Q2hhaW5zUmVxdWVzdCKgBAoLQ2hhaW5TdGF0dXMSDQoFY2hhaW4YASABKAkSFQoNcXVvdGVfZW5hYmxlZBgCIAEoCBIXCg9pbmRleGVyX2VuYWJsZWQYAyABKAgSFwoPcmVsYXllcl9lbmFibGVkGAQgASgIEhwKD2xhc3RfaW5kZXhlZF9hdBgFIAEoCUgAiAEBEhMKBmN1cnNvchgGIAEoCUgBiAEBEhQKB3JwY191cmwYByABKAlIAogBARIcCg9leHBsb3Jlcl90eF91cmwYCCABKAlIA4gBARIVCgh0cmVhc3VyeRgJIAEoCUgEiAEBEhUKDW5hdGl2ZV9zeW1ib2wYCiABKAkSFwoPbmF0aXZlX2RlY2ltYWxzGAsgASgNEhAKCGxvZ29fdXJsGAwgASgJEiEKFGV4cGxvcmVyX2FkZHJlc3NfdXJsGA0gASgJSAWIAQESFAoMbWF4X2dhc19kcm9wGA4gASgJEhMKBnJvdXRlchgPIAEoCUgGiAEBEg8KB2dhc2xlc3MYECABKAgSCgoCdm0YESABKAkSEwoGZXNjcm93GBIgASgJSAeIAQFCEgoQX2xhc3RfaW5kZXhlZF9hdEIJCgdfY3Vyc29yQgoKCF9ycGNfdXJsQhIKEF9leHBsb3Jlcl90eF91cmxCCwoJX3RyZWFzdXJ5QhcKFV9leHBsb3Jlcl9hZGRyZXNzX3VybEIJCgdfcm91dGVyQgkKB19lc2Nyb3ciNwoOQ2hhaW5zUmVzcG9uc2USJQoGY2hhaW5zGAEgAygLMhUuYmxpbmsudjEuQ2hhaW5TdGF0dXMiIwoSUHJpb3JpdHlGZWVSZXF1ZXN0Eg0KBWNoYWluGAEgASgJIjgKC1ByaW9yaXR5RmVlEikKIWNvbXB1dGVfdW5pdF9wcmljZV9taWNyb19sYW1wb3J0cxgBIAEoBCKOAwoHVm91Y2hlchIKCgJpZBgBIAEoCRINCgVjaGFpbhgCIAEoCRIVCghjaGFpbl9pZBgDIAEoBEgAiAEBEhYKDnJvdXRlcl9hZGRyZXNzGAQgASgJEg0KBXRva2VuGAUgASgJEhAKCHJlZmVycmVyGAYgASgJEg4KBmFtb3VudBgHIAEoCRIRCglzaWduYXR1cmUYCCABKAkSFQoIY2FsbGRhdGEYCSABKAlIAYgBARIQCghyZWRlZW1lZBgKIAEoCBIWCglyZWRlZW1fdHgYCyABKAlIAogBARISCgpjcmVhdGVkX2F0GAwgASgJEhgKC3JlZGVlbWVkX2F0GA0gASgJSAOIAQESGQoMdG9rZW5fc3ltYm9sGA4gASgJSASIAQESFQoIZGVjaW1hbHMYDyABKA1IBYgBAUILCglfY2hhaW5faWRCCwoJX2NhbGxkYXRhQgwKCl9yZWRlZW1fdHhCDgoMX3JlZGVlbWVkX2F0Qg8KDV90b2tlbl9zeW1ib2xCCwoJX2RlY2ltYWxzIjsKFExpc3RWb3VjaGVyc1Jlc3BvbnNlEiMKCHZvdWNoZXJzGAEgAygLMhEuYmxpbmsudjEuVm91Y2hlciquAQoJVHJhZGVUeXBlEhoKFlRSQURFX1RZUEVfVU5TUEVDSUZJRUQQABIaChZUUkFERV9UWVBFX0VYQUNUX0lOUFVUEAESHgoaVFJBREVfVFlQRV9FWFBFQ1RFRF9PVVRQVVQQAhIsCihUUkFERV9UWVBFX0VYQUNUX0lOUFVUX0dVQVJBTlRFRURfT1VUUFVUEAMSGwoXVFJBREVfVFlQRV9FWEFDVF9PVVRQVVQQBDLYCgoIQmxpbmtBcGkSVQoIR2V0UXVvdGUSFi5ibGluay52MS5RdW90ZVJlcXVlc3QaFy5ibGluay52MS5RdW90ZVJlc3BvbnNlIhiguxgygtPkkwIOOgEqIgkvdjEvcXVvdGUSZwoMUHJldmlld1F1b3RlEh0uYmxpbmsudjEuUHJldmlld1F1b3RlUmVxdWVzdBoWLmJsaW5rLnYxLlF1b3RlUHJldmlldyIgoLsYHoLT5JMCFjoBKiIRL3YxL3F1b3RlL3ByZXZpZXcShgEKE0dldFN3YXBJbnN0cnVjdGlvbnMSIS5ibGluay52MS5Td2FwSW5zdHJ1Y3Rpb25zUmVxdWVzdBoaLmJsaW5rLnYxLlN3YXBJbnN0cnVjdGlvbnMiMKC7GBmC0+STAiYSJC92MS9xdW90ZXMve3F1b3RlX2hhc2h9L2luc3RydWN0aW9ucxJfCgpMaXN0VG9rZW5zEhsuYmxpbmsudjEuTGlzdFRva2Vuc1JlcXVlc3QaHC5ibGluay52MS5MaXN0VG9rZW5zUmVzcG9uc2UiFqC7GAWC0+STAgwSCi92MS90b2tlbnMSaQoMR2V0VG9rZW5JbmZvEhouYmxpbmsudjEuVG9rZW5JbmZvUmVxdWVzdBoTLmJsaW5rLnYxLlRva2VuSW5mbyIooLsYD4LT5JMCHhIcL3YxL3Rva2Vucy97Y2hhaW59L3thZGRyZXNzfRJhCghHZXRPcmRlchIZLmJsaW5rLnYxLkdldE9yZGVyUmVxdWVzdBoVLmJsaW5rLnYxLk9yZGVyRGV0YWlsIiOguxgFgtPkkwIZEhcvdjEvb3JkZXJzL3txdW90ZV9oYXNofRJTCgZTZWFyY2gSFy5ibGluay52MS5TZWFyY2hSZXF1ZXN0GhguYmxpbmsudjEuU2VhcmNoUmVzcG9uc2UiFqC7GAqC0+STAgwSCi92MS9zZWFyY2gScAoNU2VhcmNoQWRkcmVzcxIeLmJsaW5rLnYxLlNlYXJjaEFkZHJlc3NSZXF1ZXN0Gh8uYmxpbmsudjEuU2VhcmNoQWRkcmVzc1Jlc3BvbnNlIh6guxgKgtPkkwIUEhIvdjEvc2VhcmNoL2FkZHJlc3MSVwoKTGlzdE9yZGVycxIbLmJsaW5rLnYxLkxpc3RPcmRlcnNSZXF1ZXN0GhQuYmxpbmsudjEuT3JkZXJzUGFnZSIWoLsYBYLT5JMCDBIKL3YxL29yZGVycxJqChBMaXN0UmVjZW50T3JkZXJzEiEuYmxpbmsudjEuTGlzdFJlY2VudE9yZGVyc1JlcXVlc3QaFC5ibGluay52MS5PcmRlcnNQYWdlIh2guxgFgtPkkwITEhEvdjEvb3JkZXJzL3JlY2VudBJZCglHZXRDaGFpbnMSGi5ibGluay52MS5HZXRDaGFpbnNSZXF1ZXN0GhguYmxpbmsudjEuQ2hhaW5zUmVzcG9uc2UiFqC7GAWC0+STAgwSCi92MS9jaGFpbnMScgoOR2V0UHJpb3JpdHlGZWUSHC5ibGluay52MS5Qcmlvcml0eUZlZVJlcXVlc3QaFS5ibGluay52MS5Qcmlvcml0eUZlZSIroLsYBYLT5JMCIRIfL3YxL2NoYWlucy97Y2hhaW59L3ByaW9yaXR5LWZlZRJ5ChJTdWJtaXRHYXNsZXNzT3JkZXISIy5ibGluay52MS5TdWJtaXRHYXNsZXNzT3JkZXJSZXF1ZXN0GhsuYmxpbmsudjEuR2FzbGVzc1N1Ym1pc3Npb24iIaC7GB6C0+STAhc6ASoiEi92MS9nYXNsZXNzL29yZGVyc2IGcHJvdG8z", [file_google_api_annotations, file_blink_v1_ratelimit]);
|
|
11
11
|
/**
|
|
12
12
|
* Describes the message blink.v1.EvmGaslessOrder.
|
|
13
13
|
* Use `create(EvmGaslessOrderSchema)` to create a new message.
|
|
@@ -248,16 +248,26 @@ export const ChainStatusSchema = /*@__PURE__*/ messageDesc(file_blink_v1_api, 46
|
|
|
248
248
|
* Use `create(ChainsResponseSchema)` to create a new message.
|
|
249
249
|
*/
|
|
250
250
|
export const ChainsResponseSchema = /*@__PURE__*/ messageDesc(file_blink_v1_api, 47);
|
|
251
|
+
/**
|
|
252
|
+
* Describes the message blink.v1.PriorityFeeRequest.
|
|
253
|
+
* Use `create(PriorityFeeRequestSchema)` to create a new message.
|
|
254
|
+
*/
|
|
255
|
+
export const PriorityFeeRequestSchema = /*@__PURE__*/ messageDesc(file_blink_v1_api, 48);
|
|
256
|
+
/**
|
|
257
|
+
* Describes the message blink.v1.PriorityFee.
|
|
258
|
+
* Use `create(PriorityFeeSchema)` to create a new message.
|
|
259
|
+
*/
|
|
260
|
+
export const PriorityFeeSchema = /*@__PURE__*/ messageDesc(file_blink_v1_api, 49);
|
|
251
261
|
/**
|
|
252
262
|
* Describes the message blink.v1.Voucher.
|
|
253
263
|
* Use `create(VoucherSchema)` to create a new message.
|
|
254
264
|
*/
|
|
255
|
-
export const VoucherSchema = /*@__PURE__*/ messageDesc(file_blink_v1_api,
|
|
265
|
+
export const VoucherSchema = /*@__PURE__*/ messageDesc(file_blink_v1_api, 50);
|
|
256
266
|
/**
|
|
257
267
|
* Describes the message blink.v1.ListVouchersResponse.
|
|
258
268
|
* Use `create(ListVouchersResponseSchema)` to create a new message.
|
|
259
269
|
*/
|
|
260
|
-
export const ListVouchersResponseSchema = /*@__PURE__*/ messageDesc(file_blink_v1_api,
|
|
270
|
+
export const ListVouchersResponseSchema = /*@__PURE__*/ messageDesc(file_blink_v1_api, 51);
|
|
261
271
|
/**
|
|
262
272
|
* @generated from enum blink.v1.TradeType
|
|
263
273
|
*/
|
package/dist/order.d.ts
CHANGED
|
@@ -38,5 +38,5 @@ export interface OrderExpectation {
|
|
|
38
38
|
}
|
|
39
39
|
export declare const assertOrderMatches: (quote: CrossChainQuote, expected: OrderExpectation) => void;
|
|
40
40
|
export declare const evmOrderDepositCall: (order: BlinkOrder, signature?: EvmDepositSignature) => EvmDepositCall;
|
|
41
|
-
export declare const svmOrderDepositInstructions: (order: BlinkOrder, rpcUrl: string, owner: string) => Promise<SvmDepositInstructions>;
|
|
41
|
+
export declare const svmOrderDepositInstructions: (order: BlinkOrder, rpcUrl: string, owner: string, computeUnitPriceMicroLamports: bigint) => Promise<SvmDepositInstructions>;
|
|
42
42
|
export declare const suiOrderDepositCall: (order: BlinkOrder, tx: Transaction, payment: SuiDepositCall["payment"]) => void;
|
package/dist/order.js
CHANGED
|
@@ -96,7 +96,7 @@ export const evmOrderDepositCall = (order, signature) => buildEvmDepositCall({
|
|
|
96
96
|
directTransfer: order.quote.directTransfer,
|
|
97
97
|
router: order.chain?.router,
|
|
98
98
|
}, signature);
|
|
99
|
-
export const svmOrderDepositInstructions = async (order, rpcUrl, owner) => {
|
|
99
|
+
export const svmOrderDepositInstructions = async (order, rpcUrl, owner, computeUnitPriceMicroLamports) => {
|
|
100
100
|
const params = paramsOf(order.quote);
|
|
101
101
|
const amount = BigInt(params.amountIn);
|
|
102
102
|
if (!isSourceSwap(params)) {
|
|
@@ -108,6 +108,7 @@ export const svmOrderDepositInstructions = async (order, rpcUrl, owner) => {
|
|
|
108
108
|
token: params.srcToken,
|
|
109
109
|
amount,
|
|
110
110
|
quoteHash: order.quote.quoteHash,
|
|
111
|
+
computeUnitPriceMicroLamports,
|
|
111
112
|
}),
|
|
112
113
|
lookupTables: [],
|
|
113
114
|
};
|
|
@@ -131,6 +132,7 @@ export const svmOrderDepositInstructions = async (order, rpcUrl, owner) => {
|
|
|
131
132
|
minBridgeOut: BigInt(params.minBridgeOut),
|
|
132
133
|
quoteHash: order.quote.quoteHash,
|
|
133
134
|
swap: swap.payload.value,
|
|
135
|
+
computeUnitPriceMicroLamports,
|
|
134
136
|
swapProgramSigner,
|
|
135
137
|
});
|
|
136
138
|
};
|
package/dist/svm.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface SvmDepositRequest {
|
|
|
10
10
|
token: string;
|
|
11
11
|
amount: bigint;
|
|
12
12
|
quoteHash: string;
|
|
13
|
+
computeUnitPriceMicroLamports: bigint;
|
|
13
14
|
feePayer?: string;
|
|
14
15
|
}
|
|
15
16
|
export declare const resolveSwapPrograms: (chain: string, swap: SvmSwapInstructions, expectedSigner: string | undefined) => PublicKey[];
|
|
@@ -24,6 +25,7 @@ export interface SvmSwapDepositRequest {
|
|
|
24
25
|
minBridgeOut: bigint;
|
|
25
26
|
quoteHash: string;
|
|
26
27
|
swap: SvmSwapInstructions;
|
|
28
|
+
computeUnitPriceMicroLamports: bigint;
|
|
27
29
|
swapProgramSigner?: string;
|
|
28
30
|
}
|
|
29
31
|
export interface SvmDepositInstructions {
|
package/dist/svm.js
CHANGED
|
@@ -25,7 +25,13 @@ const TOKEN_ACCOUNT_LEN = 165;
|
|
|
25
25
|
const TOKEN_2022_ACCOUNT_TYPE_ACCOUNT = 2;
|
|
26
26
|
export const isNativeSvmToken = (address) => address === SystemProgram.programId.toBase58();
|
|
27
27
|
const DEPOSIT_COMPUTE_UNIT_LIMIT = 50_000;
|
|
28
|
-
const
|
|
28
|
+
const MAX_COMPUTE_UNIT_LIMIT = 1_400_000;
|
|
29
|
+
const SWAP_COMPUTE_UNIT_HEADROOM = 1.3;
|
|
30
|
+
const computeBudgetInstructions = (units, microLamports) => [
|
|
31
|
+
ComputeBudgetProgram.setComputeUnitLimit({ units }),
|
|
32
|
+
ComputeBudgetProgram.setComputeUnitPrice({ microLamports }),
|
|
33
|
+
];
|
|
34
|
+
const swapComputeUnitLimit = (simulatedUnits) => Math.min(MAX_COMPUTE_UNIT_LIMIT, Math.ceil(simulatedUnits * SWAP_COMPUTE_UNIT_HEADROOM));
|
|
29
35
|
const connection = (rpcUrl) => new Connection(rpcUrl, "confirmed");
|
|
30
36
|
const tokenProgramOf = async (rpc, mint) => {
|
|
31
37
|
const info = await rpc.getAccountInfo(mint);
|
|
@@ -349,10 +355,7 @@ const collectDepositorTokenAccounts = async (rpc, writable, authority) => {
|
|
|
349
355
|
}
|
|
350
356
|
return watched;
|
|
351
357
|
};
|
|
352
|
-
const
|
|
353
|
-
if (watched.length === 0) {
|
|
354
|
-
return;
|
|
355
|
-
}
|
|
358
|
+
const simulateSwapDeposit = async (rpc, transaction, watched, inputAccount, maxInputSpend) => {
|
|
356
359
|
const sim = await rpc.simulateTransaction(transaction, {
|
|
357
360
|
sigVerify: false,
|
|
358
361
|
replaceRecentBlockhash: true,
|
|
@@ -386,6 +389,10 @@ const assertSwapBalances = async (rpc, transaction, watched, inputAccount, maxIn
|
|
|
386
389
|
rejectSwap(`simulated balance of depositor token account ${pubkey.toBase58()} drops from ${preAmount} to ${postAmount}, beyond the swap input`);
|
|
387
390
|
}
|
|
388
391
|
}
|
|
392
|
+
if (sim.value.unitsConsumed === undefined) {
|
|
393
|
+
throw new Error("swap deposit simulation did not report compute units");
|
|
394
|
+
}
|
|
395
|
+
return sim.value.unitsConsumed;
|
|
389
396
|
};
|
|
390
397
|
const swapDepositData = (quoteHash, srcMint, srcAmount, minBridgeOut, swapData) => {
|
|
391
398
|
const out = new Uint8Array(92 + swapData.length);
|
|
@@ -465,16 +472,28 @@ const assembleSvmSwapDeposit = async (request) => {
|
|
|
465
472
|
}));
|
|
466
473
|
return { rpc, owner, watched, inputAccount, instructions, lookupTables: tables };
|
|
467
474
|
};
|
|
468
|
-
|
|
469
|
-
const
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
475
|
+
const budgetedSwapDeposit = async (request, assembled) => {
|
|
476
|
+
const probe = await compileSwapDeposit(assembled.rpc, assembled.owner, {
|
|
477
|
+
instructions: [
|
|
478
|
+
ComputeBudgetProgram.setComputeUnitLimit({ units: MAX_COMPUTE_UNIT_LIMIT }),
|
|
479
|
+
...assembled.instructions,
|
|
480
|
+
],
|
|
481
|
+
lookupTables: assembled.lookupTables,
|
|
482
|
+
});
|
|
483
|
+
const simulatedUnits = await simulateSwapDeposit(assembled.rpc, probe, assembled.watched, assembled.inputAccount, request.amount);
|
|
484
|
+
return {
|
|
485
|
+
instructions: [
|
|
486
|
+
...computeBudgetInstructions(swapComputeUnitLimit(simulatedUnits), request.computeUnitPriceMicroLamports),
|
|
487
|
+
...assembled.instructions,
|
|
488
|
+
],
|
|
489
|
+
lookupTables: assembled.lookupTables,
|
|
490
|
+
};
|
|
473
491
|
};
|
|
492
|
+
export const buildSvmSwapDepositInstructions = async (request) => budgetedSwapDeposit(request, await assembleSvmSwapDeposit(request));
|
|
474
493
|
export const buildSvmSwapDeposit = async (request) => {
|
|
475
494
|
const assembled = await assembleSvmSwapDeposit(request);
|
|
476
|
-
const
|
|
477
|
-
await
|
|
495
|
+
const deposit = await budgetedSwapDeposit(request, assembled);
|
|
496
|
+
const transaction = await compileSwapDeposit(assembled.rpc, assembled.owner, deposit);
|
|
478
497
|
return transaction.serialize();
|
|
479
498
|
};
|
|
480
499
|
export const buildSvmDepositInstructions = async (request) => {
|
|
@@ -483,12 +502,7 @@ export const buildSvmDepositInstructions = async (request) => {
|
|
|
483
502
|
? depositNativeInstruction(request)
|
|
484
503
|
: await depositTokenInstruction(rpc, request);
|
|
485
504
|
return [
|
|
486
|
-
|
|
487
|
-
units: DEPOSIT_COMPUTE_UNIT_LIMIT,
|
|
488
|
-
}),
|
|
489
|
-
ComputeBudgetProgram.setComputeUnitPrice({
|
|
490
|
-
microLamports: DEPOSIT_COMPUTE_UNIT_PRICE_MICRO_LAMPORTS,
|
|
491
|
-
}),
|
|
505
|
+
...computeBudgetInstructions(DEPOSIT_COMPUTE_UNIT_LIMIT, request.computeUnitPriceMicroLamports),
|
|
492
506
|
instruction,
|
|
493
507
|
];
|
|
494
508
|
};
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "0.1.
|
|
1
|
+
export declare const SDK_VERSION = "0.1.9";
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SDK_VERSION = "0.1.
|
|
1
|
+
export const SDK_VERSION = "0.1.9";
|