@aztec-labs/ethereum 6.0.0-rc.1 → 6.0.0-rc.2
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/dest/contracts/log.d.ts +23 -5
- package/dest/contracts/log.d.ts.map +1 -1
- package/dest/contracts/log.js +82 -8
- package/dest/contracts/rollup.d.ts +96 -83
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +114 -3
- package/dest/deploy_aztec_l1_contracts.d.ts +1 -1
- package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_aztec_l1_contracts.js +133 -49
- package/dest/l1_artifacts.d.ts +582 -1649
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_tx_utils/amsterdam.d.ts +42 -0
- package/dest/l1_tx_utils/amsterdam.d.ts.map +1 -0
- package/dest/l1_tx_utils/amsterdam.js +61 -0
- package/dest/l1_tx_utils/constants.d.ts +3 -1
- package/dest/l1_tx_utils/constants.d.ts.map +1 -1
- package/dest/l1_tx_utils/constants.js +11 -1
- package/dest/l1_tx_utils/index.d.ts +2 -1
- package/dest/l1_tx_utils/index.d.ts.map +1 -1
- package/dest/l1_tx_utils/index.js +1 -0
- package/package.json +4 -4
- package/src/contracts/log.ts +101 -6
- package/src/contracts/rollup.ts +153 -2
- package/src/deploy_aztec_l1_contracts.ts +148 -43
- package/src/l1_tx_utils/amsterdam.ts +74 -0
- package/src/l1_tx_utils/constants.ts +12 -1
- package/src/l1_tx_utils/index.ts +1 -0
package/dest/contracts/log.d.ts
CHANGED
|
@@ -10,11 +10,29 @@ export type L1EventLog<T> = {
|
|
|
10
10
|
/** Event-specific arguments. */
|
|
11
11
|
args: T;
|
|
12
12
|
};
|
|
13
|
+
/** Whether a provider refused a log query for its range or response size, which a narrower range can fix. */
|
|
14
|
+
export declare function isLogRangeLimitError(err: unknown): boolean;
|
|
15
|
+
/** Whether a log query failed for a reason that fails every sub-range too, such as authentication or a rate limit. */
|
|
16
|
+
export declare function isPersistentLogFetchError(err: unknown): boolean;
|
|
13
17
|
/**
|
|
14
|
-
* Fetches L1 logs in a block range, halving the range at complete-block boundaries when the provider
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
+
* Fetches L1 logs in a block range, halving the range at complete-block boundaries when the provider refuses it for
|
|
19
|
+
* its range or response size.
|
|
20
|
+
*
|
|
21
|
+
* Only a refusal worded as a range or response-size limit is split on, and not when it also carries the marks of a
|
|
22
|
+
* failure that fails every sub-range too (an authentication failure, a rate limit, state the provider does not have).
|
|
23
|
+
* Anything else is rethrown as it arrived. Splitting on an unrecognized failure would turn one outage into hundreds of
|
|
24
|
+
* identical requests before reporting the same thing, and telling a range refusal apart from an outage by probing a
|
|
25
|
+
* narrower range adds requests and a heuristic that can misread a flaky provider. Failing is deliberate: a provider
|
|
26
|
+
* whose range-limit wording is not recognized is fixed by adding its wording to {@link LOG_RANGE_LIMIT_PATTERNS}, and
|
|
27
|
+
* the caller retries the whole fetch on its next sync.
|
|
28
|
+
*
|
|
29
|
+
* No request budget caps a call, because the recursion bounds itself: a refusal that persists down to a single block
|
|
30
|
+
* is thrown once the halving reaches that block, and a provider that serves only narrow ranges costs fewer than two
|
|
31
|
+
* requests per block in the range. A budget below that bound would fail a window that is making progress, and since
|
|
32
|
+
* the window is fetched again whole on the next sync, it would fail the same way every time.
|
|
33
|
+
*
|
|
34
|
+
* A single block the provider cannot serve is a provider or history failure and is thrown as such: a range this
|
|
35
|
+
* function returns is complete, and a failure is never reported as an absence of logs.
|
|
18
36
|
*/
|
|
19
37
|
export declare function fetchLogsBisectingRange<T>(fromBlock: bigint, toBlock: bigint, fetch: (fromBlock: bigint, toBlock: bigint) => Promise<readonly T[]>): Promise<T[]>;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCw0Q0FBNEM7QUFDNUMsTUFBTSxNQUFNLFVBQVUsQ0FBQyxDQUFDLElBQUk7SUFDMUIsbURBQW1EO0lBQ25ELGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIscUJBQXFCO0lBQ3JCLFdBQVcsRUFBRSxRQUFRLENBQUM7SUFDdEIsa0RBQWtEO0lBQ2xELGlCQUFpQixFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7SUFDakMsZ0NBQWdDO0lBQ2hDLElBQUksRUFBRSxDQUFDLENBQUM7Q0FDVCxDQUFDO0FBZ0NGLDZHQUE2RztBQUM3Ryx3QkFBZ0Isb0JBQW9CLENBQUMsR0FBRyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBRzFEO0FBRUQsc0hBQXNIO0FBQ3RILHdCQUFnQix5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FNL0Q7QUE4QkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCx3QkFBc0IsdUJBQXVCLENBQUMsQ0FBQyxFQUM3QyxTQUFTLEVBQUUsTUFBTSxFQUNqQixPQUFPLEVBQUUsTUFBTSxFQUNmLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUNuRSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FnQmQifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/contracts/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,4CAA4C;AAC5C,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,WAAW,EAAE,QAAQ,CAAC;IACtB,kDAAkD;IAClD,iBAAiB,EAAE,KAAK,MAAM,EAAE,CAAC;IACjC,gCAAgC;IAChC,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/contracts/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,4CAA4C;AAC5C,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,WAAW,EAAE,QAAQ,CAAC;IACtB,kDAAkD;IAClD,iBAAiB,EAAE,KAAK,MAAM,EAAE,CAAC;IACjC,gCAAgC;IAChC,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAgCF,6GAA6G;AAC7G,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAG1D;AAED,sHAAsH;AACtH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAM/D;AA8BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,GACnE,OAAO,CAAC,CAAC,EAAE,CAAC,CAgBd"}
|
package/dest/contracts/log.js
CHANGED
|
@@ -1,15 +1,82 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Message fragments providers use to refuse a log query for being too wide or returning too much, the failures a
|
|
3
|
+
* narrower range is known to fix. Matched on text because the JSON-RPC boundary leaves no error class or code behind
|
|
4
|
+
* that is common across providers. A refusal worded some other way is reported rather than split on: see
|
|
5
|
+
* {@link fetchLogsBisectingRange}.
|
|
6
|
+
*/ const LOG_RANGE_LIMIT_PATTERNS = [
|
|
7
|
+
/(exceeds?|exceeded|over|beyond|limited to|no more than|maximum|max) .{0,40}blocks? range/i,
|
|
8
|
+
/blocks? range .{0,40}(too (large|wide|big)|exceed|limit)/i,
|
|
9
|
+
/range is too (large|wide|big)/i,
|
|
10
|
+
/too many (results|logs)/i,
|
|
11
|
+
/query returned more than/i,
|
|
12
|
+
/response size (is too large|exceeded)/i,
|
|
13
|
+
/result set too large/i,
|
|
14
|
+
/query timeout exceeded/i
|
|
15
|
+
];
|
|
16
|
+
/**
|
|
17
|
+
* Message fragments of failures no narrower range can fix — an authentication failure, a rate limit, state or history
|
|
18
|
+
* the provider does not have — so splitting on them only multiplies the same request.
|
|
19
|
+
*/ const LOG_FETCH_PERSISTENT_FAILURE_PATTERNS = [
|
|
20
|
+
/unauthori[sz]ed|forbidden|must be authenticated|invalid api key|api key is (missing|invalid)/i,
|
|
21
|
+
/rate limit|too many requests|compute units per second/i,
|
|
22
|
+
/missing trie node|header not found|unavailable on this node|pruned/i
|
|
23
|
+
];
|
|
24
|
+
/** HTTP statuses a provider answers with for an authentication failure or a rate limit, whatever the range. */ const LOG_FETCH_PERSISTENT_HTTP_STATUSES = new Set([
|
|
25
|
+
401,
|
|
26
|
+
403,
|
|
27
|
+
429
|
|
28
|
+
]);
|
|
29
|
+
/** Whether a provider refused a log query for its range or response size, which a narrower range can fix. */ export function isLogRangeLimitError(err) {
|
|
30
|
+
const text = errorText(err);
|
|
31
|
+
return LOG_RANGE_LIMIT_PATTERNS.some((pattern)=>pattern.test(text));
|
|
32
|
+
}
|
|
33
|
+
/** Whether a log query failed for a reason that fails every sub-range too, such as authentication or a rate limit. */ export function isPersistentLogFetchError(err) {
|
|
34
|
+
if (errorChain(err).some((e)=>hasPersistentHttpStatus(e))) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
const text = errorText(err);
|
|
38
|
+
return LOG_FETCH_PERSISTENT_FAILURE_PATTERNS.some((pattern)=>pattern.test(text));
|
|
39
|
+
}
|
|
40
|
+
function hasPersistentHttpStatus(err) {
|
|
41
|
+
return typeof err === 'object' && err !== null && 'status' in err && typeof err.status === 'number' && LOG_FETCH_PERSISTENT_HTTP_STATUSES.has(err.status);
|
|
42
|
+
}
|
|
43
|
+
/** An error followed by its causes, since viem nests the provider's own error, not always as an `Error`. */ function errorChain(err) {
|
|
44
|
+
const chain = [];
|
|
45
|
+
let current = err;
|
|
46
|
+
for(let depth = 0; current !== undefined && current !== null && depth < 5; depth++){
|
|
47
|
+
chain.push(current);
|
|
48
|
+
current = typeof current === 'object' && 'cause' in current ? current.cause : undefined;
|
|
49
|
+
}
|
|
50
|
+
return chain;
|
|
51
|
+
}
|
|
52
|
+
/** The messages of an error and its causes, since viem nests the provider's own text. */ function errorText(err) {
|
|
53
|
+
return errorChain(err).map((e)=>e instanceof Error ? e.message : typeof e === 'string' ? e : JSON.stringify(e)).join(' | ');
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Fetches L1 logs in a block range, halving the range at complete-block boundaries when the provider refuses it for
|
|
57
|
+
* its range or response size.
|
|
58
|
+
*
|
|
59
|
+
* Only a refusal worded as a range or response-size limit is split on, and not when it also carries the marks of a
|
|
60
|
+
* failure that fails every sub-range too (an authentication failure, a rate limit, state the provider does not have).
|
|
61
|
+
* Anything else is rethrown as it arrived. Splitting on an unrecognized failure would turn one outage into hundreds of
|
|
62
|
+
* identical requests before reporting the same thing, and telling a range refusal apart from an outage by probing a
|
|
63
|
+
* narrower range adds requests and a heuristic that can misread a flaky provider. Failing is deliberate: a provider
|
|
64
|
+
* whose range-limit wording is not recognized is fixed by adding its wording to {@link LOG_RANGE_LIMIT_PATTERNS}, and
|
|
65
|
+
* the caller retries the whole fetch on its next sync.
|
|
66
|
+
*
|
|
67
|
+
* No request budget caps a call, because the recursion bounds itself: a refusal that persists down to a single block
|
|
68
|
+
* is thrown once the halving reaches that block, and a provider that serves only narrow ranges costs fewer than two
|
|
69
|
+
* requests per block in the range. A budget below that bound would fail a window that is making progress, and since
|
|
70
|
+
* the window is fetched again whole on the next sync, it would fail the same way every time.
|
|
71
|
+
*
|
|
72
|
+
* A single block the provider cannot serve is a provider or history failure and is thrown as such: a range this
|
|
73
|
+
* function returns is complete, and a failure is never reported as an absence of logs.
|
|
6
74
|
*/ export async function fetchLogsBisectingRange(fromBlock, toBlock, fetch) {
|
|
75
|
+
let result;
|
|
7
76
|
try {
|
|
8
|
-
|
|
9
|
-
...await fetch(fromBlock, toBlock)
|
|
10
|
-
];
|
|
77
|
+
result = await fetch(fromBlock, toBlock);
|
|
11
78
|
} catch (err) {
|
|
12
|
-
if (fromBlock >= toBlock) {
|
|
79
|
+
if (fromBlock >= toBlock || !shouldSplit(err)) {
|
|
13
80
|
throw err;
|
|
14
81
|
}
|
|
15
82
|
const midBlock = fromBlock + (toBlock - fromBlock) / 2n;
|
|
@@ -22,4 +89,11 @@
|
|
|
22
89
|
...upper
|
|
23
90
|
];
|
|
24
91
|
}
|
|
92
|
+
return [
|
|
93
|
+
...result
|
|
94
|
+
];
|
|
95
|
+
}
|
|
96
|
+
/** Whether a multi-block range that failed with `err` should be split. */ function shouldSplit(err) {
|
|
97
|
+
// Persistent first: a rate-limited response whose text also reads as a range limit still fails every sub-range.
|
|
98
|
+
return !isPersistentLogFetchError(err) && isLogRangeLimitError(err);
|
|
25
99
|
}
|
|
@@ -4,7 +4,7 @@ import { Buffer32 } from '@aztec-labs/foundation/buffer';
|
|
|
4
4
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
5
5
|
import { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
6
6
|
import { type ViemSignature } from '@aztec-labs/foundation/eth-signature';
|
|
7
|
-
import { type AbiParameter, type Account, type GetContractReturnType, type Hex, type Log, type StateOverride, type TypedDataDefinition, type WatchContractEventReturnType } from 'viem';
|
|
7
|
+
import { type AbiParameter, type Account, type GetContractReturnType, type Hex, type Log, type StateOverride, type TransactionReceipt, type TypedDataDefinition, type WatchContractEventReturnType } from 'viem';
|
|
8
8
|
import type { DeployAztecL1ContractsReturnType } from '../deploy_aztec_l1_contracts.js';
|
|
9
9
|
import type { L1ContractAddresses } from '../l1_contract_addresses.js';
|
|
10
10
|
import type { L1ReaderConfig } from '../l1_reader.js';
|
|
@@ -183,6 +183,14 @@ export type AttesterExitAuthorization = {
|
|
|
183
183
|
deadline: bigint;
|
|
184
184
|
signature: ViemSignature;
|
|
185
185
|
};
|
|
186
|
+
/** Receipt and the unprocessed half-open range of a submitted authorization array. */
|
|
187
|
+
export type AttesterExitBatchResult = {
|
|
188
|
+
receipt: TransactionReceipt;
|
|
189
|
+
processedCount: number;
|
|
190
|
+
remainingCount: number;
|
|
191
|
+
remainingStartIndex: number | undefined;
|
|
192
|
+
remainingEndIndexExclusive: number | undefined;
|
|
193
|
+
};
|
|
186
194
|
/**
|
|
187
195
|
* Exit information for a validator
|
|
188
196
|
*/
|
|
@@ -506,22 +514,34 @@ export declare class RollupContract {
|
|
|
506
514
|
buildAttesterExitTypedData(attester: EthAddress, deadline: bigint): TypedDataDefinition;
|
|
507
515
|
/** Creates an attester exit authorization that can be submitted by another account. */
|
|
508
516
|
createAttesterExitAuthorization(attester: EthAddress, deadline: bigint, signer: (typedData: TypedDataDefinition) => Promise<Hex>): Promise<AttesterExitAuthorization>;
|
|
517
|
+
/** Validates uniqueness, deadlines and EIP-712 signatures locally, without checking on-chain eligibility. */
|
|
518
|
+
validateAttesterExitAuthorizations(authorizations: AttesterExitAuthorization[]): Promise<void>;
|
|
519
|
+
/**
|
|
520
|
+
* Checks one authorization's signature against this rollup and chain with the rollup's ECDSA rules (v of 27 or 28,
|
|
521
|
+
* low s), without checking its deadline or other entries. `index` names the entry in errors.
|
|
522
|
+
*/
|
|
523
|
+
validateAttesterExitSignature(authorization: AttesterExitAuthorization, index: number): Promise<void>;
|
|
524
|
+
private assertAttesterExitRollup;
|
|
509
525
|
/** Initiates an attester exit. The transaction signer must be the position's attester. */
|
|
510
526
|
initiateWithdrawByAttester(l1TxUtils: L1TxUtils, attester: EthAddress): ReturnType<L1TxUtils['sendAndMonitorTransaction']>;
|
|
511
527
|
/** Relays one signed attester exit authorization. */
|
|
512
528
|
initiateWithdrawByAttesterWithSignature(l1TxUtils: L1TxUtils, authorization: AttesterExitAuthorization): ReturnType<L1TxUtils['sendAndMonitorTransaction']>;
|
|
529
|
+
/** Simulates the selected batch endpoint without sending a transaction and returns the prefix that fits now. */
|
|
530
|
+
simulateAttesterExitBatch(authorizations: AttesterExitAuthorization[], upToLimit?: boolean): Promise<number>;
|
|
513
531
|
/** Relays a signed attester exit batch that reverts unless every authorization can be processed. */
|
|
514
532
|
initiateWithdrawByAttesterBatch(l1TxUtils: L1TxUtils, authorizations: AttesterExitAuthorization[]): ReturnType<L1TxUtils['sendAndMonitorTransaction']>;
|
|
515
533
|
/** Relays the largest permitted prefix of a signed attester exit batch. */
|
|
516
534
|
initiateWithdrawByAttesterBatchUpToLimit(l1TxUtils: L1TxUtils, authorizations: AttesterExitAuthorization[]): ReturnType<L1TxUtils['sendAndMonitorTransaction']>;
|
|
535
|
+
/** Submits signed exits and reports the processed prefix and remaining half-open index range from receipt events. */
|
|
536
|
+
submitAttesterExitBatch(l1TxUtils: L1TxUtils, authorizations: AttesterExitAuthorization[], upToLimit?: boolean): Promise<AttesterExitBatchResult>;
|
|
517
537
|
getStakingAsset(): Promise<EthAddress>;
|
|
518
538
|
getRewardConfig(): Promise<RewardConfig>;
|
|
519
539
|
setupEpoch(l1TxUtils: L1TxUtils): Promise<{
|
|
520
|
-
receipt:
|
|
540
|
+
receipt: TransactionReceipt;
|
|
521
541
|
state: import("../l1_tx_utils/types.js").L1TxState;
|
|
522
542
|
}>;
|
|
523
543
|
vote(l1TxUtils: L1TxUtils, proposalId: bigint): Promise<{
|
|
524
|
-
receipt:
|
|
544
|
+
receipt: TransactionReceipt;
|
|
525
545
|
state: import("../l1_tx_utils/types.js").L1TxState;
|
|
526
546
|
}>;
|
|
527
547
|
/**
|
|
@@ -1442,25 +1462,6 @@ export declare class RollupContract {
|
|
|
1442
1462
|
readonly internalType: "FeeAssetValue";
|
|
1443
1463
|
}];
|
|
1444
1464
|
readonly stateMutability: "view";
|
|
1445
|
-
}, {
|
|
1446
|
-
readonly type: "function";
|
|
1447
|
-
readonly name: "getRegistryRewardOverrides";
|
|
1448
|
-
readonly inputs: readonly [];
|
|
1449
|
-
readonly outputs: readonly [{
|
|
1450
|
-
readonly name: "";
|
|
1451
|
-
readonly type: "tuple[2]";
|
|
1452
|
-
readonly internalType: "struct RegistryRewardOverride[2]";
|
|
1453
|
-
readonly components: readonly [{
|
|
1454
|
-
readonly name: "registry";
|
|
1455
|
-
readonly type: "address";
|
|
1456
|
-
readonly internalType: "address";
|
|
1457
|
-
}, {
|
|
1458
|
-
readonly name: "sequencerReward";
|
|
1459
|
-
readonly type: "uint96";
|
|
1460
|
-
readonly internalType: "uint96";
|
|
1461
|
-
}];
|
|
1462
|
-
}];
|
|
1463
|
-
readonly stateMutability: "view";
|
|
1464
1465
|
}, {
|
|
1465
1466
|
readonly type: "function";
|
|
1466
1467
|
readonly name: "getRewardConfig";
|
|
@@ -1498,6 +1499,16 @@ export declare class RollupContract {
|
|
|
1498
1499
|
readonly internalType: "contract IRewardDistributor";
|
|
1499
1500
|
}];
|
|
1500
1501
|
readonly stateMutability: "view";
|
|
1502
|
+
}, {
|
|
1503
|
+
readonly type: "function";
|
|
1504
|
+
readonly name: "getSequencerRewardCalculator";
|
|
1505
|
+
readonly inputs: readonly [];
|
|
1506
|
+
readonly outputs: readonly [{
|
|
1507
|
+
readonly name: "";
|
|
1508
|
+
readonly type: "address";
|
|
1509
|
+
readonly internalType: "address";
|
|
1510
|
+
}];
|
|
1511
|
+
readonly stateMutability: "view";
|
|
1501
1512
|
}, {
|
|
1502
1513
|
readonly type: "function";
|
|
1503
1514
|
readonly name: "getSlasher";
|
|
@@ -2048,14 +2059,6 @@ export declare class RollupContract {
|
|
|
2048
2059
|
}];
|
|
2049
2060
|
}];
|
|
2050
2061
|
readonly anonymous: false;
|
|
2051
|
-
}, {
|
|
2052
|
-
readonly type: "error";
|
|
2053
|
-
readonly name: "RewardLib__DuplicateRegistryRewardOverride";
|
|
2054
|
-
readonly inputs: readonly [{
|
|
2055
|
-
readonly name: "registry";
|
|
2056
|
-
readonly type: "address";
|
|
2057
|
-
readonly internalType: "address";
|
|
2058
|
-
}];
|
|
2059
2062
|
}, {
|
|
2060
2063
|
readonly type: "error";
|
|
2061
2064
|
readonly name: "RewardLib__ZeroShares";
|
|
@@ -3331,6 +3334,16 @@ export declare class RollupContract {
|
|
|
3331
3334
|
}];
|
|
3332
3335
|
readonly outputs: readonly [];
|
|
3333
3336
|
readonly stateMutability: "nonpayable";
|
|
3337
|
+
}, {
|
|
3338
|
+
readonly type: "function";
|
|
3339
|
+
readonly name: "setSequencerRewardCalculator";
|
|
3340
|
+
readonly inputs: readonly [{
|
|
3341
|
+
readonly name: "_calculator";
|
|
3342
|
+
readonly type: "address";
|
|
3343
|
+
readonly internalType: "address";
|
|
3344
|
+
}];
|
|
3345
|
+
readonly outputs: readonly [];
|
|
3346
|
+
readonly stateMutability: "nonpayable";
|
|
3334
3347
|
}, {
|
|
3335
3348
|
readonly type: "function";
|
|
3336
3349
|
readonly name: "status";
|
|
@@ -4349,30 +4362,6 @@ export declare class RollupContract {
|
|
|
4349
4362
|
readonly type: "address";
|
|
4350
4363
|
readonly internalType: "address";
|
|
4351
4364
|
}];
|
|
4352
|
-
}, {
|
|
4353
|
-
readonly type: "error";
|
|
4354
|
-
readonly name: "RewardLib__CheckpointRewardsAboveMaximum";
|
|
4355
|
-
readonly inputs: readonly [{
|
|
4356
|
-
readonly name: "checkpointRewards";
|
|
4357
|
-
readonly type: "uint256";
|
|
4358
|
-
readonly internalType: "uint256";
|
|
4359
|
-
}, {
|
|
4360
|
-
readonly name: "maximumCheckpointRewards";
|
|
4361
|
-
readonly type: "uint256";
|
|
4362
|
-
readonly internalType: "uint256";
|
|
4363
|
-
}];
|
|
4364
|
-
}, {
|
|
4365
|
-
readonly type: "error";
|
|
4366
|
-
readonly name: "RewardLib__InvalidRegistryRewardOverride";
|
|
4367
|
-
readonly inputs: readonly [{
|
|
4368
|
-
readonly name: "registry";
|
|
4369
|
-
readonly type: "address";
|
|
4370
|
-
readonly internalType: "address";
|
|
4371
|
-
}, {
|
|
4372
|
-
readonly name: "sequencerReward";
|
|
4373
|
-
readonly type: "uint256";
|
|
4374
|
-
readonly internalType: "uint256";
|
|
4375
|
-
}];
|
|
4376
4365
|
}, {
|
|
4377
4366
|
readonly type: "error";
|
|
4378
4367
|
readonly name: "Rollup__CheckpointNotProven";
|
|
@@ -4769,6 +4758,33 @@ export declare class RollupContract {
|
|
|
4769
4758
|
readonly type: "uint256";
|
|
4770
4759
|
readonly internalType: "uint256";
|
|
4771
4760
|
}];
|
|
4761
|
+
}, {
|
|
4762
|
+
readonly type: "error";
|
|
4763
|
+
readonly name: "SequencerRewardCalculatorLib__InsufficientGas";
|
|
4764
|
+
readonly inputs: readonly [{
|
|
4765
|
+
readonly name: "required";
|
|
4766
|
+
readonly type: "uint256";
|
|
4767
|
+
readonly internalType: "uint256";
|
|
4768
|
+
}, {
|
|
4769
|
+
readonly name: "available";
|
|
4770
|
+
readonly type: "uint256";
|
|
4771
|
+
readonly internalType: "uint256";
|
|
4772
|
+
}];
|
|
4773
|
+
}, {
|
|
4774
|
+
readonly type: "event";
|
|
4775
|
+
readonly name: "SequencerRewardCalculatorUpdated";
|
|
4776
|
+
readonly inputs: readonly [{
|
|
4777
|
+
readonly name: "oldCalculator";
|
|
4778
|
+
readonly type: "address";
|
|
4779
|
+
readonly indexed: false;
|
|
4780
|
+
readonly internalType: "address";
|
|
4781
|
+
}, {
|
|
4782
|
+
readonly name: "newCalculator";
|
|
4783
|
+
readonly type: "address";
|
|
4784
|
+
readonly indexed: false;
|
|
4785
|
+
readonly internalType: "address";
|
|
4786
|
+
}];
|
|
4787
|
+
readonly anonymous: false;
|
|
4772
4788
|
}, {
|
|
4773
4789
|
readonly type: "error";
|
|
4774
4790
|
readonly name: "SignatureLib__InvalidSignature";
|
|
@@ -5509,22 +5525,6 @@ export declare class RollupContract {
|
|
|
5509
5525
|
readonly type: "uint256";
|
|
5510
5526
|
readonly internalType: "uint256";
|
|
5511
5527
|
}];
|
|
5512
|
-
}, {
|
|
5513
|
-
readonly type: "error";
|
|
5514
|
-
readonly name: "RewardLib__RegistryRewardOverrideAboveDefault";
|
|
5515
|
-
readonly inputs: readonly [{
|
|
5516
|
-
readonly name: "registry";
|
|
5517
|
-
readonly type: "address";
|
|
5518
|
-
readonly internalType: "address";
|
|
5519
|
-
}, {
|
|
5520
|
-
readonly name: "sequencerReward";
|
|
5521
|
-
readonly type: "uint256";
|
|
5522
|
-
readonly internalType: "uint256";
|
|
5523
|
-
}, {
|
|
5524
|
-
readonly name: "defaultSequencerReward";
|
|
5525
|
-
readonly type: "uint256";
|
|
5526
|
-
readonly internalType: "uint256";
|
|
5527
|
-
}];
|
|
5528
5528
|
}, {
|
|
5529
5529
|
readonly type: "error";
|
|
5530
5530
|
readonly name: "Rollup__UnavailableTempCheckpointLog";
|
|
@@ -5645,6 +5645,28 @@ export declare class RollupContract {
|
|
|
5645
5645
|
readonly internalType: "bool";
|
|
5646
5646
|
}];
|
|
5647
5647
|
readonly stateMutability: "view";
|
|
5648
|
+
}, {
|
|
5649
|
+
readonly type: "function";
|
|
5650
|
+
readonly name: "getHasSubmittedFullEpoch";
|
|
5651
|
+
readonly inputs: readonly [{
|
|
5652
|
+
readonly name: "_epoch";
|
|
5653
|
+
readonly type: "uint256";
|
|
5654
|
+
readonly internalType: "Epoch";
|
|
5655
|
+
}, {
|
|
5656
|
+
readonly name: "_length";
|
|
5657
|
+
readonly type: "uint256";
|
|
5658
|
+
readonly internalType: "uint256";
|
|
5659
|
+
}, {
|
|
5660
|
+
readonly name: "_prover";
|
|
5661
|
+
readonly type: "address";
|
|
5662
|
+
readonly internalType: "address";
|
|
5663
|
+
}];
|
|
5664
|
+
readonly outputs: readonly [{
|
|
5665
|
+
readonly name: "";
|
|
5666
|
+
readonly type: "bool";
|
|
5667
|
+
readonly internalType: "bool";
|
|
5668
|
+
}];
|
|
5669
|
+
readonly stateMutability: "view";
|
|
5648
5670
|
}, {
|
|
5649
5671
|
readonly type: "function";
|
|
5650
5672
|
readonly name: "invalidateInsufficientAttestations";
|
|
@@ -6422,18 +6444,9 @@ export declare class RollupContract {
|
|
|
6422
6444
|
readonly type: "uint256";
|
|
6423
6445
|
readonly internalType: "uint256";
|
|
6424
6446
|
}, {
|
|
6425
|
-
readonly name: "
|
|
6426
|
-
readonly type: "
|
|
6427
|
-
readonly internalType: "
|
|
6428
|
-
readonly components: readonly [{
|
|
6429
|
-
readonly name: "registry";
|
|
6430
|
-
readonly type: "address";
|
|
6431
|
-
readonly internalType: "address";
|
|
6432
|
-
}, {
|
|
6433
|
-
readonly name: "sequencerReward";
|
|
6434
|
-
readonly type: "uint96";
|
|
6435
|
-
readonly internalType: "uint96";
|
|
6436
|
-
}];
|
|
6447
|
+
readonly name: "sequencerRewardCalculator";
|
|
6448
|
+
readonly type: "address";
|
|
6449
|
+
readonly internalType: "address";
|
|
6437
6450
|
}];
|
|
6438
6451
|
}];
|
|
6439
6452
|
readonly stateMutability: "nonpayable";
|
|
@@ -6603,4 +6616,4 @@ export declare class RollupContract {
|
|
|
6603
6616
|
getTempCheckpointLogStorageSlot(checkpointNumber: CheckpointNumber, field: TempCheckpointLogField): Promise<bigint>;
|
|
6604
6617
|
private computeTempCheckpointLogStorageSlot;
|
|
6605
6618
|
}
|
|
6606
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL3JvbGx1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQWEsS0FBSyxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUtyRixPQUFPLEVBQ0wsS0FBSyxZQUFZLEVBQ2pCLEtBQUssT0FBTyxFQUVaLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssR0FBRyxFQUNSLEtBQUssR0FBRyxFQUVSLEtBQUssYUFBYSxFQUNsQixLQUFLLG1CQUFtQixFQUN4QixLQUFLLDRCQUE0QixFQVFsQyxNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekYsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0UsT0FBTyxLQUFLLEVBQUUsVUFB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQ0FHMUM7SUFFRCxzRUFBc0U7SUFDaEUsMkJBQTJCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBOEJ0RztJQUVELHNGQUFzRjtJQUN0RixNQUFNLENBQUMsYUFBYSxDQUFDLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUU1RjtJQUVELGdGQUFnRjtJQUNoRixNQUFNLEtBQUssb0JBQW9CLElBQUksTUFBTSxDQUV4QztJQUVEOzs7O09BSUc7SUFDRywrQkFBK0IsQ0FDbkMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLEtBQUssRUFBRSxzQkFBc0IsR0FDNUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQU1qQjtJQUVELE9BQU8sQ0FBQyxtQ0FBbUM7Q0FpQjVDIn0=
|
|
6619
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbHVwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL3JvbGx1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQWEsS0FBSyxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUtyRixPQUFPLEVBQ0wsS0FBSyxZQUFZLEVBQ2pCLEtBQUssT0FBTyxFQUlaLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssR0FBRyxFQUNSLEtBQUssR0FBRyxFQUVSLEtBQUssYUFBYSxFQUNsQixLQUFLLGtCQUFrQixFQUN2QixLQUFLLG1CQUFtQixFQUN4QixLQUFLLDRCQUE0QixFQVdsQyxNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekYsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0Us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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQ0FHMUM7SUFFRCxzRUFBc0U7SUFDaEUsMkJBQTJCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBOEJ0RztJQUVELHNGQUFzRjtJQUN0RixNQUFNLENBQUMsYUFBYSxDQUFDLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUU1RjtJQUVELGdGQUFnRjtJQUNoRixNQUFNLEtBQUssb0JBQW9CLElBQUksTUFBTSxDQUV4QztJQUVEOzs7O09BSUc7SUFDRywrQkFBK0IsQ0FDbkMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLEtBQUssRUFBRSxzQkFBc0IsR0FDNUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQU1qQjtJQUVELE9BQU8sQ0FBQyxtQ0FBbUM7Q0FpQjVDIn0=
|